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 :

Variable enumérée en externe d'un modèle Simulink possible ? Comment ?


Sujet :

Simulink

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Juin 2014
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2014
    Messages : 87
    Par défaut Variable enumérée en externe d'un modèle Simulink possible ? Comment ?
    Bonjour
    J’ai un modele simulink (relativement complexe) qui utilise des variables de type Simulink.IntEnumType

    Je veux passer une variable Simulink.IntEnumType en external input vers un modele
    Pour ce test mon modele comprend un In1 et un scope (et c’est tout).

    Ces variables ENUM sont définies dans un fichier de définition de classe tel que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    % Definition  classe pumpOrder  
     
    classdef pumpOrder < Simulink.IntEnumType
        enumeration
            noOrder(1000)          %unknown(0)
            start_pump(1011)       % Running (11) a modifier plus tard en runningPV (11)  runningGV (12)(12)
            stop_pump(1010)        % standby(10)
            mnt_pump (1019)        % maintenance (19)
        end
    end
    Dans le workspace je peux définir des variable de la class pumpOrder par
    Je veux ensuite passer cette variable W au modele en utilisant « External input » et un port d’entré par ex In1 et l’option input du configuration parameter [t,u]
    (jai choisit d'avoir une seule valeur pour simplifier mais avec 2 ou 10 valeurs c'est le même probleme)

    ca ne marche par j’ai le message d’errreur suivant
    Error evaluating expression '[t,u]' for 'ExternalInput' specified in the Configuration Parameters dialog for block diagram 'EssaiSimplifiedpump2': Cannot find a member of the 'pumpOrder' enumeration class that corresponds to each element of the given input argument.
    Dans given input argument , je n’ai que un element « noOrder » et cet élément existe bien dans la description de class pumpOrder

    Donc je ne comprend pas ce qui ce passe...
    j'ai essayer de passer le type du bloc In1 à pumpOrder (au lieu de inhereted) mais ca ne change rien...

    j'ai l'impression que c'est l'interpolation de u pour les différentes valeur de t qui pose pb, mais je ne sais pas coment régler cela.

    Est-ce que l’utilisation de Simulink.IntEnumType est possible en entré « External input » et comment ?

    l'exemple est dans le ZIP

    Mise a jour 24-01-2019 :
    en cherchant sur le site matworks j'ai trouvé plusieurs choses
    1) que les entrée externe acceptent tout type de signez yc les ENUM
    2) que dans le cas des ENUM il faut décocher la case interpolate data du inblock correspondant
    puis ailleurs "
    to load discrete signals data from the workspace , in the inport block dialog box
    1) Set the sample time parameter to a discrete value such 2
    2) Clear the interpolate data parameter

    j'ai essayé mais ce ne marche pas même message que avant

    Après divers indice me laissene à penser que le bout de logiciel qui interprete [t,u] ne trouve pas les membres de la classe que j'ai défini (alors que le fichier de définition de class est dans le path matlab)
    est ce que il y a une operation spéciale à faire ?

    enfin la syntaxe de [t,u] n'est pas claire pour moi dans le cas de plusieurs entrées de classe différentes. Je ne peux pas les concaténer en une seul matrice u .
    comment faire dans ce cas ?

    pour résumer j'ai besoin d'aide sur ce sujet aucun progres en 4 jours et la voie de contournement si elle existe sera compliquée

    merci
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. modèle simulink --> .m
    Par Wassim123 dans le forum Simulink
    Réponses: 2
    Dernier message: 24/02/2009, 16h36
  2. Transmettre une variable à un script externe ?
    Par renaud26 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 17/01/2009, 12h31
  3. Intégration de code C à un modèle Simulink
    Par ManiMatworker dans le forum Simulink
    Réponses: 2
    Dernier message: 19/05/2008, 15h45
  4. Réponses: 4
    Dernier message: 26/07/2007, 13h07
  5. variable global fichier externe?
    Par molesqualeux dans le forum C
    Réponses: 4
    Dernier message: 01/02/2006, 16h13

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