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 :

comment choisir une sortie precise du outputVector


Sujet :

Simulink

  1. #1
    Membre du Club
    Homme Profil pro
    ingenieur systemes industriels
    Inscrit en
    Août 2011
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingenieur systemes industriels
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 53
    Points : 43
    Points
    43
    Par défaut comment choisir une sortie precise du outputVector
    Bonjour,
    je realise une interface qui lance un simulink.

    Dans ce simulink j'ai plusieurs variables de sortie que j'aimerai visualiser a travers des bouttons plot dans l'interface.
    ci joint une photo de l'interface.
    A droite je fixe les valeurs des variables d'entrées , a gauche une listbox pour pouvoir comparer plusieurs simulation en changant les variables d'entrées.
    Dans le Callback du boutton simuler voici une partie de mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     [timeVector,stateVector,outputVector] = sim('modele_velo');
     speed = get(handles.vit,'Value');
      level = get(handles.niveau,'String');
      slope = get(handles.pente,'Value');
     
      ResultsData(ResultNum).RunName = ['Run',num2str(ResultNum)];
      ResultsData(ResultNum).RunNumber = ResultNum;
      ResultsData(ResultNum).vitValue = speed;
      ResultsData(ResultNum).niveauValue = level;
      ResultsData(ResultNum).penteValue = slope;
      ResultsData(ResultNum).timeVector = timeVector;
      ResultsData(ResultNum).outputVector = outputVector;
    Suivant ce code le ' outputVector' contient toutes les variables de sorties de mon simulink (couple , vitesse, puissance ,etc).

    ma question est :
    comment je peux definir un vecteur pour chaque sortie??

    j'ai essayé de remplacer la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ResultsData(ResultNum).outputVector = outputVector;
    Par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ResultsData(ResultNum).output1 = outputVector.out1;
    Ou:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ResultsData(ResultNum).outputVector = outputVector.outport1;
    Mais ca ne marche pas, ca m'affiche :
    ??? Attempt to reference field of non-structure array.
    Dans le simulink j'ai envoyé mes variables de sortie dans des outport qui figurent sur le simulink sous cette notation : out1, out2 (out#)..

    Quelqu'un a une idée?? MERCI
    Images attachées Images attachées  

  2. #2
    Membre du Club
    Homme Profil pro
    ingenieur systemes industriels
    Inscrit en
    Août 2011
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingenieur systemes industriels
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 53
    Points : 43
    Points
    43
    Par défaut
    j'ai essayé d'ajouter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Cd=get_param('modele_velo/Out1','Value');
    mais ca ne marche pas aussi , ca m'affiche :

     ??? Error using ==> interfaceVelo>simuler_Callback at 819
    Outport block does not have a parameter named 'Value' 

  3. #3
    Membre du Club
    Homme Profil pro
    ingenieur systemes industriels
    Inscrit en
    Août 2011
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingenieur systemes industriels
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 53
    Points : 43
    Points
    43
    Par défaut
    En fait j'ai trouvé la methode, c'est bien avec get_param.
    mais je ne sais pas quel parametre il faut prendre.

    Cd=get_param('modele_velo/To Workspace','????');

    voila je souhaite avoir le vecteur des valeurs de ce block ou bien d'un block outport.

    qu'est-ce que je met comme param?? j'ai essayé String,Value,Array,List..
    mais tout ca ne marche pas

    Svp si quelqu'un peut m'aider!!

  4. #4
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Points : 4 661
    Points
    4 661
    Par défaut
    Bonjour,

    Pour récupérer les sorties, elles sont dans ta variable outputVector où chaque colonne correspond à l'un de tes output ports.

    Donc
    contient les valeurs de ton premier port de sortie.

    Et ainsi de suite pour les autres.

    Si,par exemple, tes sorties sont, dans l'ordre, vitesse, puissance, couple, tu peux créer 3 variables de cette façon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    vitesse = outputVector(:,1);
    puissance = outputVector(:,2);
    couple = outputVector(:,3);
    GET_PARAM te permet de récupérer la valeur d'un paramètre or dans ce cas ce n'est pas un paramètre que tu veux récupérer mais la valeur d'un signal.

    Duf

  5. #5
    Membre du Club
    Homme Profil pro
    ingenieur systemes industriels
    Inscrit en
    Août 2011
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingenieur systemes industriels
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 53
    Points : 43
    Points
    43
    Par défaut
    Merci beaucoup , je vais essayé de faire comme ca.
    j'ai deja pensé a ca , mais j'ai cru que c'etait un vecteur et non pas une matrice.

  6. #6
    Membre du Club
    Homme Profil pro
    ingenieur systemes industriels
    Inscrit en
    Août 2011
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingenieur systemes industriels
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 53
    Points : 43
    Points
    43
    Par défaut

    ca m'a donné un message d'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ??? Error using ==> plot
    Vectors must be the same lengths.
    Mais j'ai fait pareil pour le timeVector et ca marche bien
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 10
    Dernier message: 27/11/2008, 16h36
  2. Comment choisir une carte graphique.
    Par ZJP972 dans le forum Composants
    Réponses: 2
    Dernier message: 03/07/2007, 18h06
  3. Réponses: 5
    Dernier message: 16/03/2007, 12h16
  4. Comment choisir une carte mère?
    Par be_tnt dans le forum Composants
    Réponses: 72
    Dernier message: 03/07/2006, 09h57
  5. Comment choisir une langue differente de la locale?
    Par julian_ross dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 01/03/2004, 18h08

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