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

MATLAB Discussion :

Lien entre MATLAB et Simulink


Sujet :

MATLAB

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 14
    Points : 4
    Points
    4
    Par défaut Lien entre MATLAB et Simulink
    Bonjour,

    Je rencontre un petit problème dans mon projet. J'ai programmé plusieurs fonctions sous matlab. Tous les résultats utiles pour mon projet sont stockés dans mon main (qui n'est pas une fonction). Les résultats sont des matrices.
    J'aimerai à la fin de mon main.m envoyer ces résultats sur Simulink afin de les exploiter au mieux. Cependant je ne trouve pas le lien pour envoyer des matrices de Matlab à Simulink. Je tiens à préciser que les résultats obtenus à la fin du main sont des résultats finaux qui n'ont pas besoin d'être incrémentés.

    Je vous remercie pour votre aide

    Benjamin

  2. #2
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Ce que tu cherches ce sont les blocs dans Simulink ?
    Dans ton cas je pense qu'il faut que tu regardes du côté du bloc FromWorkspace.

    A moins que tu ne puisses passer ces données en paramètres à la commande SIM, ça dépend.
    Règles du Forum

    Adepte de la maïeutique

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 14
    Points : 4
    Points
    4
    Par défaut
    Bonjour Caro-Line,

    Merci pour ta réponse.

    Je recherche soit des blocs dans Simulink qui me permettent de faire le lien, soit une fonction matlab qui ferait la même chose.

    Pour la fonction sim : [T,X,Y] = SIM('model',TIMESPAN,OPTIONS,UT)
    Je n'arrive pas à saisir son fonctionnement. C'est la première fois que j'utilise Simulink, (j'ai toujours travaillé avec matlab). Dois-je stocker mes variables dans UT?

    Merci

    Benjamin

  4. #4
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Je t'avoue que je ne sais.

    Comme je l'ai dit : "ça dépend".
    C'est-à-dire que cela dépend de tu veux envoyer tes variables.

    En fait ton problème n'est pas très clair.

    Que veux-tu faire de tes résultats dans Simulink ?
    As-tu déjà construit ton modèle ?
    Règles du Forum

    Adepte de la maïeutique

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 14
    Points : 4
    Points
    4
    Par défaut
    Dans un premier temps j'aimerai juste afficher mes résultats à l'aide du bloc Scope. Chaque matrice correspond à un signal.

    Mon objectif final est de simuler l'amplification de mes signaux.

    Pour résumé: J'ai trois matrices sous matlab contenant les valeurs de trois signaux. Je souhaiterai envoyer ces valeurs à Simulink. Et je cherche la fonction matlab OU le bloc sous simulink.

    Merci

  6. #6
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Et donc tu as regarder le bloc FromWorkspace ?
    C'est celui qui correspond le mieux.

    Par contre tu parles de Scope donc ton signal doit évoluer avec le temps, là ça devient un peu bizarre
    Règles du Forum

    Adepte de la maïeutique

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 14
    Points : 4
    Points
    4
    Par défaut
    Ah, je croyais que Scope avait la fonction d'afficher les courbes.

    J'ai utilisé le block FromWorkspace avec ma variable TGG :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
      864.9590    1.0000
      878.1160    2.0000
      873.7303    3.0000
      878.1160    4.0000
      875.3472    5.0000
      877.9940    6.0000
      876.0337    7.0000
      877.9330    8.0000
      876.6189    9.0000
      878.1619   10.0000
    J'ai lancé mon code matlab. Donc j'ai bien les valeurs de TGG en mémoire. La première colonne correspond aux valeurs alors que la seconde correspond au temps.

    Puis, j'applique le bloc FromWorkspace. J'indique que ma variable est TGG :
    Data :TGG
    Sample Time : 0

    Et j'ai le message d'erreur suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Invalid workspace variable specified as workspace input. Time values  must be monotonically increasing.
    Une petite idée?

  8. #8
    Membre habitué
    Avatar de mr_langelot
    Profil pro
    Inscrit en
    Août 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 113
    Points : 150
    Points
    150
    Par défaut
    hé bien, francisé, le message d'erreur te dit que ton vecteur temps doit être croissant, ce qui n'est pas le cas dans ta variable.

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 14
    Points : 4
    Points
    4
    Par défaut
    Merci mr_langelot pour ta répons,

    J'ai juste inversé les colonnes dans le bloc FromWorkspace merci beaucoup.

    Et mon temps est bien croissant dans mon exemple

    Derniere question : quelle serait le bloc qui me permettrait de traver les valeurs, colonne 1, en fonction du temps, colonne 2 ?

    Merci

  10. #10
    Membre habitué
    Avatar de mr_langelot
    Profil pro
    Inscrit en
    Août 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 113
    Points : 150
    Points
    150
    Par défaut
    Tu mets un scope dans simulink ou tu le traces dans matlab (il faut mettre une bloc simout dans ton modèle simulink) avec plot.

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 14
    Points : 4
    Points
    4
    Par défaut
    Euuuh je n'ai pas tout compris... dsl.

    Je veux traver le signal avec simulink. Donc j'ai besoin d'un bloc scope ? Quelle est l'utilité du bloc simout ?

    J'ai mis un bloc scope juste à la suite de mon bloc From Workspace. J'ai fait un run, je double clique sur le scope mais il y a un écran noir qui s'affiche...

  12. #12
    Membre habitué
    Avatar de mr_langelot
    Profil pro
    Inscrit en
    Août 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 113
    Points : 150
    Points
    150
    Par défaut
    tu mets dans un modèle vierge un simin connecté à un scope.

    tu tapes ça dans matlab,


    tu ouvres le scope et tu exécutes le modèle.

    PS tu éloignes aussi la touche V de la touche C de ton clavier

  13. #13
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 14
    Points : 4
    Points
    4
    Par défaut
    Ca marche!!! trop bien!

    Merci beaucoup!!!

    Une dernière petite question : j'obtiens un signal rectangulaire, comment fait on pour obtenir un signal sinusoidal avec scope??

    Merci

    PS je vais mettre une frontière entre mon c et mon v

  14. #14
    Membre habitué
    Avatar de mr_langelot
    Profil pro
    Inscrit en
    Août 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 113
    Points : 150
    Points
    150
    Par défaut
    Tu crées une variable sinus dans matlab ou tu mets un block simulink (sin dans math).

    Si tu choisis matlab, tu tapes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    t = [ 0 : 0.1 : 10 ];
    simin = [ t ; sin(t) ];

  15. #15
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 14
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par mr_langelot Voir le message
    tu mets un block simulink (sin dans math).

    L'intitulé du bloc se nomme Sine Wave function ??

  16. #16
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 14
    Points : 4
    Points
    4
    Par défaut
    Enfin ma dernière question ( du moins j'espère :-) ) : Comment fait on pour envoyer une variable de Matlab vers Simulink si celle ne dépend pas du temps (donc une constante) ?

    En effet la méthode From workspace marche ssi la variable est liée au temps. Mais je calcule une constante sous matlab je souhaiterai l'envoyer sous Simulink.

    Une petite idée?

    Merci

    Benjamin

  17. #17
    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 cela, il te suffit d'utiliser un bloc Constante dans Simulink en remplissant le champs valeur avec le nom de la constante MATLAB.

    Bonne apm,
    Duf
    Simulink & Embedded Coder

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

  18. #18
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 14
    Points : 4
    Points
    4
    Par défaut
    Merci duf42,

    Aurais tu la réponse à la première question ? Comment fait on pour afficher le signal en sinusoidal sans changer les valeurs de celui ci ?

    PS: C'est bizar pour un lyonnais d'avoir comme numéro 42

  19. #19
    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 kbenjamin Voir le message
    Aurais tu la réponse à la première question ? Comment fait on pour afficher le signal en sinusoidal sans changer les valeurs de celui ci ?
    Euh je comprends pas vraiment le problème Tu as un signal rectangulaire comme résultat mais tu préfèrerais un sinus?

    Citation Envoyé par kbenjamin Voir le message
    PS: C'est bizar pour un lyonnais d'avoir comme numéro 42
    C'est juste parce que pour nous pauvre ligérien, c'est plus facile de trouver du travail à Lyon que chez nous... Mais je NE suis PAS lyonnais
    Simulink & Embedded Coder

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

  20. #20
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 14
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par duf42 Voir le message
    Euh je comprends pas vraiment le problème Tu as un signal rectangulaire comme résultat mais tu préfèrerais un sinus?

    Oui c'est exactement ca. J'ai essayé de rajouté un bloc sinus. Cependant ca change mes valeurs...

Discussions similaires

  1. Entrée de données Simulink-Matlab
    Par Youni92 dans le forum MATLAB
    Réponses: 10
    Dernier message: 22/06/2010, 13h56
  2. faire le lien entre java et matlab
    Par naoufal_bago dans le forum MATLAB
    Réponses: 4
    Dernier message: 27/03/2008, 10h22
  3. lien entre les table de paradox
    Par salim_intic1 dans le forum Bases de données
    Réponses: 2
    Dernier message: 13/05/2004, 16h00
  4. Réponses: 3
    Dernier message: 11/04/2004, 01h05
  5. [debutant][servlet]lien entre formulaire et servlet
    Par omega dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 05/03/2004, 08h54

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