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 :

[Simulink 7.8] Modifier les paramètres d'un masque durant la simulation


Sujet :

Simulink

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 27
    Points : 15
    Points
    15
    Par défaut [Simulink 7.8] Modifier les paramètres d'un masque durant la simulation
    Bonjour à tous,

    J'utilise Simulink comme simulateur temps réel, c'est-à-dire que je met un temps de simulation infini et je modifie des paramètres pendant que la simulation s'effectue.

    Je cherche intensément une solution qui me permettrait de modifier une variable du workspace que j'entre en paramètre dans un sous-système masqué. J'ai joint un modèle Simulink (test.zip) très simpliste pour expliquer ce que je recherche.

    J’ai un subystem masqué ayant un paramètre que j’assigne avec la variable " trig_val". Ce que je cherche à faire est de pouvoir modifier la valeur de "trig_val" sans arrêter ni même mettre la simulation en pause. En fait, je voudrais utiliser de la logique pour modifier "trig_val" ou simplement le paramètre "trig" directement dans mon masque. Le sous-système en question est cryptée par une S-Function, c'est pourquoi mes seuls contrôles se retrouvent dans le masque.

    J'ai déjà fait ça avec un "Pulse Generator" auquel je pouvais contrôler la période et le duty cycle avec de la logique externe (voir Tunable_PWM.zip), mais je n'arrive pas à l'adapter pour un sous-système ne faisant pas parti de la librairie Simulink.

    Toutes les idées sont les bienvenues,

    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,

    Si tu modifies la valeur de ton paramètre dans le workspace durant la simulation, tu peux utiliser la commande: set_param(bdroot, 'SimulationCommand', 'update') pour que la nouvelle valeur soit prise en compte dans ton modèle.

    Duf
    Simulink & Embedded Coder

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

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 27
    Points : 15
    Points
    15
    Par défaut
    Cette dernière solution ne semble pas fonctionner. J'ai cependant une piste de solution que je viens de découvrir avec set_param également.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set_param(gcb,'MaskVariables','trig=@1','MaskValues',{'0'});
    set_param(gcb,'MaskVariables','trig=@1','MaskValues',{'1'});
    Ces commandes permettent de modifier directement le paramètre du masque. Je n'ai donc plus besoin de "trig_var" pour assigner la valeur au paramètre du masque. À l'aide d'un MATLAB Function, je crois même que je pourrais ajouter de la logique pour contrôler à quel moment j'envoie ma commande set_param. C'est à voir!

  4. #4
    Membre à l'essai
    Inscrit en
    Avril 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 27
    Points : 15
    Points
    15
    Par défaut
    Il y a un problème, les Embedded MATLAB Function ne supportent pas les cells alors je ne peux pas appeller le dernier paramètre de la fonction set_param. Je n'ai pas le choix de passer par l'interpréteur de MATLAB pour l'appeler. Je dois absolument utiliser la génération de code C alors je n'ai pas le choix d'utiliser les Embedded MATLAB function. Cette solution tombe à l'eau .

  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
    Question bête: si tes paramètres changent en cours de simulation, n'est-ce pas des variables donc des signaux?
    Simulink & Embedded Coder

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

  6. #6
    Membre à l'essai
    Inscrit en
    Avril 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 27
    Points : 15
    Points
    15
    Par défaut
    Effectivement, ce sont des signaux. Je voudrais pouvoir contrôler ces paramètres avec de la logique externe au subsystem masqué. La commande set_param fonctionne bien pour ça, mais elle nécessite absolument l'interpréteur MATLAB.

  7. #7
    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
    Si c'est des signaux que tu veux contrôler, pourquoi ne les mets-tu pas en entrée du sous-système en question?
    Simulink & Embedded Coder

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

  8. #8
    Membre à l'essai
    Inscrit en
    Avril 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 27
    Points : 15
    Points
    15
    Par défaut
    Parce que je n'ai pas accès aux paramètres du mask à l'intérieur du subsystem, c'est une S-Function. Ma seule solution est vraiment de contrôler le masque.

Discussions similaires

  1. Réponses: 0
    Dernier message: 22/11/2007, 12h42
  2. Comment vérifier et/ou modifier les paramètres de IE7 via Javascript
    Par droog dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 21/11/2007, 11h50
  3. modifier les paramètres d'initialisation
    Par gaara49 dans le forum Administration
    Réponses: 9
    Dernier message: 19/11/2007, 19h02
  4. code pour modifier les paramètres ILO HP
    Par thierry007 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 03/10/2007, 19h38
  5. Modifier les paramètres d'affichage sous Fedora core 4
    Par al1_24 dans le forum Matériel
    Réponses: 5
    Dernier message: 19/01/2006, 16h39

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