IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Simulink Discussion :

récuperer vecteur de sortie d'un model simulink


Sujet :

Simulink

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 7
    Points : 5
    Points
    5
    Par défaut récuperer vecteur de sortie d'un model simulink
    Bonjour,

    Je suis nouveau sur le forum et sur matlab simulink aussi , j'ai fais une interface graphique avec le model simulink qui va avec j'arrive a retrouver les valeurs entrées sur le pannel sur le vecteur d'entrée de simulink, aussi les résultats ( sur simulink ), mais je n'arrive pas à récuperer ce vecteur de sorti sur le workspace pour pouvoir l'afficher sur le panel .

    aidez-moi svp à comprends ce qui ce passe ( ou ce qui manque ).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    function equation_s (ModelName)
     
    ModelName = 'equation';
    mainPanel = figure(1);[ATTACH=CONFIG]173234[/ATTACH]
    light_grey = [0.9 0.9 0.9];
    grey = [0.8 0.8 0.8];
    red = [1 0 0];
    green = [0 1 0];
    white = [1 1 1];
    param_vector = zeros(1,3);
     
    set(mainPanel, 'Name', 'Panel Name', 'Resize', 'off',...
        'units', 'pixels', 'Position', [100 100 260 300], 'color', grey);
     
     
     
    %% creation des sub Panel
     
    strPanel.subPanel01 =uipanel('Fontsize', 10, 'units', 'pixels', 'Position', [10 10 120 280]...
        , 'BackGroundColor', light_grey, 'Title', 'Coefficients');
     
    strPanel.subPanel02 =uipanel('Fontsize', 10, 'units', 'pixels', 'Position', [130 10 120 280]...
        , 'BackGroundColor', light_grey, 'Title', 'solution(s)');
     
     
    %% Def des champs de text
     
    strPanel.a_txt = uicontrol('parent', strPanel.subPanel01,'fontsize',20, 'Style', 'text', 'string', ...
        'a :', 'units', 'pixels', 'Position', [10 180 40 40], 'BackGroundColor', light_grey, ...
        'Enable', 'on', 'BackGroundColor', grey);
     
    strPanel.b_txt = uicontrol('parent', strPanel.subPanel01, 'fontsize',20, 'Style', 'text', 'string', ...
        'b :', 'units', 'pixels', 'Position', [10 120 40 40], 'BackGroundColor', light_grey, ...
        'Enable', 'on', 'BackGroundColor', grey);
     
    strPanel.c_txt = uicontrol('parent', strPanel.subPanel01, 'fontsize',20, 'Style', 'text', 'string', ...
        'c :', 'units', 'pixels', 'Position', [10 60 40 40], 'BackGroundColor', light_grey, ...
        'Enable', 'on', 'BackGroundColor', grey);
     
    strPanel.X1_txt = uicontrol('parent', strPanel.subPanel02, 'fontsize',15, 'Style', 'text', 'string', ...
        'X1 :', 'units', 'pixels', 'Position', [10 200 40 40], 'BackGroundColor', grey, ...
        'Enable', 'on', 'BackGroundColor', grey);
     
    strPanel.X2_txt = uicontrol('parent', strPanel.subPanel02, 'fontsize',15, 'Style', 'text', 'string', ...
        'X2 :', 'units', 'pixels', 'Position', [10 160 40 40], 'BackGroundColor', grey, ...
        'Enable', 'on', 'BackGroundColor', grey);
     
    strPanel.X0_txt = uicontrol('parent', strPanel.subPanel02, 'fontsize',15, 'Style', 'text', 'string', ...
        'X0 :', 'units', 'pixels', 'Position', [10 120 40 40], 'BackGroundColor', grey, ...
        'Enable', 'on', 'BackGroundColor', grey);
     
    strPanel.Delta_txt = uicontrol('parent', strPanel.subPanel02, 'fontsize',13, 'Style', 'text', 'string', ...
        'Delta :', 'units', 'pixels', 'Position', [10 50 60 40], 'BackGroundColor', grey, ...
        'Enable', 'on', 'BackGroundColor', grey);
     
    %% Les edits
     
    strPanel.a = uicontrol('Parent', strPanel.subPanel01, 'Style', 'Edit', 'units',...
        'pixels', 'Position', [60 180 40 40], 'Enable', 'on', 'BackGroundColor', white, ...
        'Callback', @a_callback);
     
    strPanel.b = uicontrol('Parent', strPanel.subPanel01, 'Style', 'Edit', 'units',...
        'pixels', 'Position', [60 120 40 40], 'Enable', 'on', 'BackGroundColor', white, ...
        'Callback', @a_callback);
     
    strPanel.c = uicontrol('Parent', strPanel.subPanel01, 'Style', 'Edit', 'units',...
        'pixels', 'Position', [60 60 40 40], 'Enable', 'on', 'BackGroundColor', white, ...
        'Callback', @a_callback);
     
    strPanel.X1 = uicontrol('Parent', strPanel.subPanel02, 'Style', 'Edit', 'units',...
        'pixels', 'Position', [60 200 40 40], 'Enable', 'off','string',0, 'BackGroundColor', white );
     
    strPanel.X2 = uicontrol('Parent', strPanel.subPanel02, 'Style', 'Edit', 'units',...
        'pixels', 'Position', [60 160 40 40], 'Enable', 'off','string',0, 'BackGroundColor', white );
     
    strPanel.X0 = uicontrol('Parent', strPanel.subPanel02, 'Style', 'Edit', 'units',...
        'pixels', 'Position', [60 120 40 40], 'Enable', 'off','string',0, 'BackGroundColor', white );
     
    strPanel.Delta = uicontrol('Parent', strPanel.subPanel02, 'Style', 'Edit', 'units',...
        'pixels', 'Position', [60 50 40 40], 'Enable', 'off', 'BackGroundColor', white );
     
    %% Workspace assignement
     
    assignin('base','strPanel',strPanel);
    assignin ('base', 'param_vector' , param_vector);
     
    %% CallBACKS
     
        function a_callback(hObject,~)
     
            param_vector(1,1) = str2double(get(strPanel.a,'String'));
            param_vector(1,2) = str2double(get(strPanel.b,'String'));
            param_vector(1,3) = str2double(get(strPanel.c,'String'));
     
            assignin('base','param_vector', param_vector);
            set_param([ModelName '/param_vector'],'value', 'param_vector');
     
        end
     
            delta = get_param([ModelName '/sol_vector'],'value');
            delta = delta(1,4);         %%!!!!
            if delta == 0
                set(strPanel.X1, 'backGroundColor', red);set(strPanel.X2, 'backGroundColor', red);set(strPanel.X0, 'backGroundColor', green);
            end
            if delta > 0
                set(strPanel.X1, 'backGroundColor', green);set(strPanel.X2, 'backGroundColor', green);set(strPanel.X0, 'backGroundColor', red);
            end
            if delta < 0
                set(strPanel.X1, 'backGroundColor', red);set(strPanel.X2, 'backGroundColor', red);set(strPanel.X0, 'backGroundColor', red);
            end
     
            t = get_param([ModelName '/sol_vector'],'RunTimeObject');
            set(strPanel.X1,'string',num2str(t.InputPort(1).Data));
            set(strPanel.X2,'string',num2str(t.InputPort(1).Data));
            set(strPanel.X0,'string',num2str(t.InputPort(1).Data));
     
    end
    Nom : Capture.PNG
Affichages : 2198
Taille : 49,2 Ko

  2. #2
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 882
    Points : 3 432
    Points
    3 432
    Par défaut
    salut

    pour récupérer les résultats il faut lancer la simulation soit manuellement soit avec la fonction sim
    si tu spécifies la sortie simOut de la fonction sim, les résultats seront dedans, sinon ils sont dans le workspace de base et tu peux aller les chercher avec un evalin

    je te conseille d'utiliser sim avec la sortie simout
    et je te conseille également d'utiliser sim sur le workspace de ta fonction (simOut = sim('monModele','scrworkspace','current');)
    et du coup tu n'as plus besoin d'assigner tes variables dans le workspace de base

    Fabien

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Merci pour ta réponse rapide et précise, mais je dois impérativment lancer la simulation manualement ( et que ça reste en simulation ) ensuite je dois rentrer des paramètres sur l'interface et les récuperer sur la meme intérface ( vecteur de sorti de simulink ) . Je ne comprends pas pk le get_param(.......) ne fonctionne pas, sachant que le vecteur sol_vector n'apparait dans le workspace qu'à la fin de la simulation alors que j'ai besoin de le récuperer en temps réel .

    Merci

  4. #4
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 882
    Points : 3 432
    Points
    3 432
    Par défaut
    get_param sert à récupérer les paramètres de ton blocs
    les signaux résultat de simulation n'en font pas parti
    par contre les signaux résultat sont dans le workspace principal et tu peux aller les chercher avec la fonction evalin ... mais en effet qu'en fin de simulation

    pour que ta fonction utilise des données résultats en temps réels, tu peut l'inclure dans ton modèle via un bloc matlab function ou interpreted matlab function, et tu lui donne à manger ton signal directement, sans passer par un to workspace

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Comme je suis débutant sur matlab simulink je ne sais pas trop comment utiliser les deux blocs matlab function et interpreted matlab function (je ne sais pas comment je dois paramétrer les blocs pour avoir le résultat souhaité .

    Merci
    Amine

Discussions similaires

  1. implémentation du model simulink sur dsp
    Par pesonne dans le forum Simulink
    Réponses: 1
    Dernier message: 06/08/2016, 11h12
  2. [Débutant] mettre un vecteur de sorti ( simulink ) sur une interface graphique
    Par amine_wn dans le forum Interfaces Graphiques
    Réponses: 0
    Dernier message: 30/03/2015, 14h45
  3. Lister les entrées sorties d'un modele
    Par anthony.faucogney dans le forum Simulink
    Réponses: 1
    Dernier message: 19/08/2009, 21h51
  4. Réponses: 4
    Dernier message: 16/06/2009, 08h25
  5. Composante pour stoquer un modele simulink dans un gui
    Par mihaispr dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 04/05/2009, 18h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo