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

Interfaces Graphiques Discussion :

probléme pour afficher un graph. Simulink -> GUI


Sujet :

Interfaces Graphiques

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 77
    Points : 38
    Points
    38
    Par défaut probléme pour afficher un graph. Simulink -> GUI
    Bonjour,
    J'ai déjà posé une question similaire, mais les réponses n'ont pas été concluante.

    je vous explique mon problème.

    j'ai un bouton "start". Lorsque je clique dessus, je lance Simulink(il fonctionne correctement). je peux visualiser sur Simulink l'allure de ma régulation grâce à un "scope"(scopdata2)

    et j'aimerai afficher ce graph (que je peux voir dans le scopdata2) dans mon gui dans un graph appelé axes1.
    Sauf que j'ai des beugs. rien ne marche dans toutes mes tentatives.
    J'ai l'impression que la variable que je récupère est vide au lancement du programme.


    par contre si je lance ma simulation sous simulink, et qu'ensuite je lance mon gui. vu que dans le workspace, j'ai bien scopdata2.
    A ce moment la mon graph(axes1) dessine correctement ma régulation.

    Quelqu'un aurait-il une ligne de code pour moi. de l'aide svp...


    Merci

  2. #2
    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,

    Je suis pas sur d'avoir bien compris

    Tu veux récupérer en temps réel les données de Simulink pour les tracer dans un graphe dans un GUI séparé? Si c'est ca je ne vois pas trop comment tu peux faire

    Sinon s'il s'agit de récupérer les données à la fin de la simulation, il y a des solutions en réglant le paramètre DstWorkspace à l'aide de la fonction SIMSET, pour pouvoir ainsi récupérer les données dans le workspace de la fonction et non de MATLAB.

    Bon courage,
    Duf
    Simulink & Embedded Coder

    Au boulot : Windows 7 , MATLAB r2016b
    A la maison : ArchLinux mais pas MATLAB

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 77
    Points : 38
    Points
    38
    Par défaut
    Salut duf.
    Oui c'est bien ça, je voudrais l'afficher en temps réelle. C'est la derniére chose a faire qu'il me reste a faire, avant que mon projet ne soit finit :S

    Le problème d'utiliser ta deuxième méthodes, C'est que ma simulation sous simulink dure entre 1 et 4 min. Ça serait compliqué de faire un TP de régulation pour des étudiants dans de tel condition d'attente.

    Je continue les recherches, et je vais aussi me renseigner sur ta fonction. Merci pour ton aide..

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 77
    Points : 38
    Points
    38
    Par défaut
    Je viens d'avoir une illumination divine


    lorsque je lance mon programme et que je fais une pause sous simulink, le graph se dessine dans mon axes1 du début de la simulation jusqu'à la pause.

    Peut être qu'en faisant une boucle avec des pause et des reprise, cela pourrait marcher??
    C'est a dire mettre a jour la variable à afficher. Donc de dessiner petit a petit ma régulation.

    Est tu sur de ce que tu m'a dit sur l'ancien post?(qu'il est impossible de récupérer en temps réel le graph).
    Merci de ton aide.

  5. #5
    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
    Citation Envoyé par kwich-bow Voir le message
    Est tu sur de ce que tu m'a dit sur l'ancien post?(qu'il est impossible de récupérer en temps réel le graph).
    Non, j'ai jamais poussé les investigations aussi loin, après si tu réussi à récupérer les données en temps réel (ou presque avec des pause), c'est gagné
    Simulink & Embedded Coder

    Au boulot : Windows 7 , MATLAB r2016b
    A la maison : ArchLinux mais pas MATLAB

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 77
    Points : 38
    Points
    38
    Par défaut
    malheureusement pour une simulation normale de 2 min, je vais mettre casiement 3 a 7 fois plus de temps.
    Donc je cherche une autre méthode ou quelqu'un qui aurait un code à me proposé pour cette technique...
    voila mon code

    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
     
    %_______________Test affichage________________________
    set_param('finalclock', 'SimulationCommand', 'start');
    pause(0.2);
    set_param('finalclock', 'SimulationCommand', 'pause');
    Ob= evalin('base','Ob');% Ob récup de simulink
    o= evalin('base','o');% recup de simulink
    t=o(1:end-1);% permet de mettre les deux vecteurs a la meme dimension
    p=plot(handles.testa,t(1),Ob(1));
    %xlim([min(t) max(t)]);
    %ylim([min(Ob) max(Ob)]);
    pause(0.1);
    set_param('finalclock', 'SimulationCommand', 'continue');
    %set(handles.ma_deuxieme_fenetre,'doublebuffer','on')
    for n=2:numel(t)
    pause(1)
    set_param('finalclock', 'SimulationCommand', 'pause');
    Ob= evalin('base','Ob');
    o= evalin('base','o');
    t=o(1:end-1);
    plot(handles.testa,t(n),Ob(n),'c+:')
    hold on
    plot(handles.testa,t(n),60)
    set_param('finalclock', 'SimulationCommand', 'continue');
    refresh
    drawnow
    end

    la je simule, mais il n'y a pas moyen d'avoir une ligne, soit ce sont des points, soit des +. Et si je ne met rien ou juste r (pour rouge) je n'est rien du tout...


    une idée?

    merci

Discussions similaires

  1. Problème pour afficher un contrôle dans un formulaire
    Par JahRastafari dans le forum IHM
    Réponses: 5
    Dernier message: 16/06/2005, 10h15
  2. Problème pour afficher une image bmp
    Par homeostasie dans le forum MFC
    Réponses: 6
    Dernier message: 08/05/2005, 18h36
  3. [MFC]Problème pour afficher une image.
    Par Deedier dans le forum MFC
    Réponses: 4
    Dernier message: 25/03/2005, 16h13
  4. Réponses: 13
    Dernier message: 23/12/2004, 18h01
  5. Réponses: 3
    Dernier message: 29/08/2003, 10h57

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