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 :

Problème de configuration du temps


Sujet :

Simulink

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2014
    Messages : 39
    Points : 17
    Points
    17
    Par défaut Problème de configuration du temps
    Bonjour à tous,

    J'ai un soucis avec le temps dans simulink.
    Dans le workspace, j'ai trois vecteurs : time, E et H. Tous sont de dimension 24x1.
    J'ai ensuite créé un modèle simulink dans lequel j'ai mis E et H en blocs "input", puis dans les paramètres de configuration de la simulation j'ai coché la case input et écrit [time, E, H].
    Ensuite j'ai deux blocs embedded function, l'un utilise E, l'autre utilise H. Donc j'ai deux sorties : SE et SH.
    Je voudrais faire en sorte que SE ne donne une valeur que si time est compris entre 10 et 16, mais pas pour SH. Comment puis-je faire sachant que time est associée à E et H ?

    j'ai essayé de créé une "embedded function" à la suite de E, mais forcément il me dit qu'il ne connaît pas la variable time, et même si je la définie dans le code cela ne fonctionne pas.
    Avez-vous une idée ?

    Merci.
    .

  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

    tu peux encapsuler ta fonction dans "enable subsystem" que tu n'active que pour la période souhaité (à l'aide de "compare to constant")

    Fabien

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2014
    Messages : 39
    Points : 17
    Points
    17
    Par défaut
    Bonjour Fabien,

    Je ne suis pas sûre de faire la bonne manip...
    Pour encapsuler ma fonction, je créé un bloc "enable subsystem" que je mets derrière ma fonction ? Il y a trois ports dans ce bloc, ma fonction va dans le "in" et le "out" sera ma sortie et j'ai une troisième sortie qui ressemble à un signal rectangulaire, je mets quoi sur celle-là ?
    Parce que je ne peux y connecter un bloc "compare to constant" puisqu'il a deux sorties...
    Est-ce que tu penses sinon qu'il est possible d'utiliser une fonction "callback" ? J'ai essayé mais pour l'instant je n'ai pas réussi.

    Cleindorie

  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
    non, tu met ta fonction à l’intérieur du sous système
    tu peux rajouter autant d'entrées / sorties que tu veux à ton sous système, de manière à ce qu'il ait la même interface que ta fonction
    avec un port en plus, le port "enable" sur le dessus
    lorsque le signal sera égal à 1 que tu branchera sur ce port supplémentaire, le contenu du sous sytème (ta fonction donc) sera exécuté, lorsqu'il sera égal à 0, ta fonction ne sera pas exécutée

  5. #5
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2014
    Messages : 39
    Points : 17
    Points
    17
    Par défaut
    Bon alors je n'y arrive pas, je pense que je n'ai pas compris.
    Ma fonction est la suivante :
    Nom : eolienne.GIF
Affichages : 851
Taille : 5,1 Ko

    Cette fonction est un sous-système, donc j'ai créé mon bloc "enable subsystem" et j'ai mis cette fonction à l'intérieur. Ensuite sur le port enable j'ai connecté un bloc "compare to constant" avec en entrée la sortie de mon bloc "enable" et en sortie le port de forme rectangulaire comme suit :
    Nom : system.GIF
Affichages : 697
Taille : 3,4 Ko

    Mais cela me donne une valeur constante à chaque fois, ce qui n'est pas du tout ce que je veux...

  6. #6
    Membre régulier
    Homme Profil pro
    dev
    Inscrit en
    Avril 2011
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : dev
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 174
    Points : 110
    Points
    110
    Par défaut
    Bonjour,

    Ce que tu dois comparer a 10 c'est ton vecteur de temps, et pas la sortie comme tu viens de faire sur le modèle.

  7. #7
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2014
    Messages : 39
    Points : 17
    Points
    17
    Par défaut
    Le problème, c'est que si je mets un nouveau bloc "input" avec le vecteur temps:
    Nom : system.GIF
Affichages : 615
Taille : 3,4 Ko

    j'ai le message d'erreur suivant qui apparaît :

    Invalid external input specified. The specified input has 3 element(s) for each sample while the sum of the port widths of all root level input port blocks in the model is 4

    Ce que je comprends puisque le temps n'intervient pas dans mon modèle d'éolienne. Ce que je veux dire c'est qu'en cochant dans les paramètres de simulation "input" et en écrivant "time" comme première variable, simulink me trace toutes mes fonctions avec le temps en abscisse, mais le vecteur "time" n'apparaît pas dans mes fonctions proprement dite.

  8. #8
    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
    il faut utiliser le bloc horloge ("clock" dans "sources") de manière à avoir le temps courant lors de la simu

  9. #9
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2014
    Messages : 39
    Points : 17
    Points
    17
    Par défaut
    Parfait ! J'ai presque réussi grâce à toi Fabien ! Merci beaucoup !

    Maintenant il faut que je comprenne comment mettre deux blocs compare to constant à la suite ou comment mettre deux ports enable sur le bloc "enabled subsystem". Parce que là j'ai bien réussi à ne faire commencer la simulation qu'à 10, mais je veux qu'elle s'arrête à 16.

  10. #10
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2014
    Messages : 39
    Points : 17
    Points
    17
    Par défaut
    Re bonjour,

    J'ai mis un bloc "and" pour pouvoir mettre mes deux comparaisons, donc j'ai bien le signal qui est à 0 quand le temps est inférieur à 10, par contre quand le temps est supérieur à 16, je ne reviens pas à 0...
    Je vous mets les images :
    Nom : comparateur.GIF
Affichages : 636
Taille : 3,3 Ko
    Nom : scope.GIF
Affichages : 566
Taille : 9,7 Ko

    Savez-vous d'où cela peut-il venir ? J'ai vérifié les caractéristiques de mes blocs comparateurs, ils sont tous les deux en booléen.

    Merci.

  11. #11
    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

    la solution que je t'ai proposé correspond à ton cahier des charges :
    Citation Envoyé par cleindorie Voir le message
    Je voudrais faire en sorte que SE ne donne une valeur que si time est compris entre 10 et 16
    SE ne calcule rien si time n'est pas dans la même fourchette
    le signal de sortie garde alors la valeur précédemment calculée

    si tu branche cette sortie sur un to workspace tu constatera des enregistrement que pour la période voulue

    maintenant si tu veux que ton signal prenne la valeur 0 en dehors de l'intervalle de temps 10-16, il faut faire autrement :
    branche la sortie de ton and sur un block switch , ton bloc ES sur la première entré de ton switch et un bloc constant à 0 sur la dernière entrée de ton switch
    attention au paramétrage du switch, qui par défaut fait une comparaison ">=0", qui sera tjrs vraie pour la sortie logique de ton and

  12. #12
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2014
    Messages : 39
    Points : 17
    Points
    17
    Par défaut
    Magique ! Cela fonctionne !
    Merci beaucoup Fabien, non seulement tu as résolu mon problème, mais en plus j'ai appris comment utiliser deux nouveaux blocs !

    A bientôt sur le forum !

    Cleindorie

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

Discussions similaires

  1. [Install]Problème de configuration d'éclipse
    Par Jean Claude90 dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 26/02/2005, 17h33
  2. [Log4j]petit problème de configuration
    Par mikey_ufc dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 09/01/2005, 23h32
  3. [Tomcat 5 + Eclipse] Problème de configuration
    Par seb55555 dans le forum Tomcat et TomEE
    Réponses: 4
    Dernier message: 26/10/2004, 15h20
  4. [EJB] Problème avec configuration jonas
    Par SteelBox dans le forum JBuilder
    Réponses: 30
    Dernier message: 11/03/2004, 21h30
  5. Problème de configuration
    Par lsdInside dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 09/10/2003, 12h34

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