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 :

[Embedded Function] Gérer une variable dans le Workspace


Sujet :

Simulink

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 25
    Points : 16
    Points
    16
    Par défaut [Embedded Function] Gérer une variable dans le Workspace
    Bonjour,
    J'utilise une embedded matlab function dans un modèle Simulink. Dans cette fonction, j'ai besoin de lire une variable à partir du workspace et de modifier ça valeur à la fin. Les variables globales ne marche pas pour une embedded function. Quelqu'un a une idée?

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Salut
    A partir du ton ficher .m , vous enregistre votre variable sous .mat, (par exemple save x.mat x, n'oublie pas le temps) et vous utiliser le bloc 'From File' en remplaçant untitled.mat par x.mat comme une entrée de l'embedded matlab function. Je ne sais pas si j'ai répondu à ta question.

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 25
    Points : 16
    Points
    16
    Par défaut
    Bonjour,
    L'embedded matlab function ne supporte pas "load", en plus, ma fonction va modifier une variable (de type scalaire sans le temps) en boucle, donc l'utilisation d'un fichier n'est pas très esthétique. J'ai pas trouvé l'astuce.

  4. #4
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 25
    Points : 16
    Points
    16
    Par défaut
    J'ai essayé une asctuce en utilisant deux bloc To workspace et From workspace.
    Le problème c'est que la valeur de la variable n'est pas modifiée par To workspace à l'itération suivante. Meme chose pour le bloc To file. Aidez moi svp

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    permettez moi de vous tutoyez , peux tu donner un petit d'exemple de ton problème, parce que tu parles de load, je pensais directement à de données qui évolue dans le temps. Une petite explication de ton problème STP pour voir si je une idée pour ton probleme.

  6. #6
    Membre du Club
    Inscrit en
    Février 2008
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 78
    Points : 61
    Points
    61
    Par défaut
    salut,

    je pense qu'il faut utiliser ça dans ton m.file :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    assignin('base','nom',variable);  % avec nom est le nom de ta variable qui va apparaitre dans le worspace 
    % tu  peux utiliser  le meme nom c à d variable si tu veux, et biensure variable est le nom de ta variable dans le m file
    MATLAB 7.6 (R2008a) & Windows XP SP2

  7. #7
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 25
    Points : 16
    Points
    16
    Par défaut
    Salut,
    Ca ne marche pas !! En mode debug, la variable n'apparait pas dans le workspace. Un vrai problème cette embedded function. Y aurait t il un moyen pour mémoriser la valeur dans un tampon. Je rappelle que ma fonction utilise une valeur sauvegardée et modifie cette valeur à la fin. Je vais tanter une S-function.

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Bonjour
    J'espère que tu trouveras une solution pour ton problème. Comme tu utilise embedded fonction j'aimerai te poser une question. Existe il une maniéré de stoker de données dans embedded function. par exemple j'ai un vecteur de mesure d=[x1;x2;.....xn] à l'instant t et d=[x1;x21;.....xn1] à l'instant t+1 ainsi de suite. Avez vous une idée pour stoker ces mesure, ou bien existe t'il un outil dans simulink qui me permetra de stoker ces valeur et de les re-utiliser apres .
    t1 t1+1 t1+2 t1+3 t1+4
    0.1419 0.9595 0.9340 0.3922 0.0318
    0.4218 0.6557 0.6787 0.6555 0.2769
    0.9157 0.0357 0.7577 0.1712 0.0462
    0.7922 0.8491 0.7431 0.7060 0.0971

    Merci

  9. #9
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 25
    Points : 16
    Points
    16
    Par défaut
    Salut,
    C'est le problème que j'ai roilait, sauf que toi tu utilise des vecteurs et moi des scalaire. Essaye To workspace (pour moi ça n'a pas marché car impossible d'utiliser des variables global avec une embedded function)

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Bonjour prince013
    Je ne sais pas si tu as résolu ton problème, mais le mien c'est ok. Je te conseille de regarde ou d'utiliser le bloc Matlab fonction lui il supporte GLOBAL, ça te permettra de définir tous tes variable dans une function, et tu prends la sortie de cette function comme une entrée de ton embedded matlab function. J'espère que ça t'aidera, bonne chance. Le problème ce n'est pas le problème lui même mais le vrai problème c'est de bien poser le problème.

Discussions similaires

  1. [PHP 5.3] Passer une variable dans une class / function
    Par Invité dans le forum Langage
    Réponses: 5
    Dernier message: 17/05/2013, 20h33
  2. Réponses: 4
    Dernier message: 16/01/2009, 17h46
  3. [langage] trouver une variable dans une autre
    Par BEAUJAULT dans le forum Langage
    Réponses: 2
    Dernier message: 19/08/2004, 15h04
  4. comment recuperer une variable dans flash
    Par krépuscul dans le forum Flash
    Réponses: 30
    Dernier message: 16/10/2003, 09h40
  5. Réponses: 13
    Dernier message: 14/06/2003, 22h15

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