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 :

Comment utiliser ScopeData ?


Sujet :

Simulink

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 109
    Par défaut Comment utiliser ScopeData ?
    Bonjour à tous.

    J'aimerais envoyer des données depuis simulink dans le workspace.
    J'ai choisi pour l'instant l'oscilloscope qui à l'air plus simple d'utilisation.
    Mon problème est simple :
    je simule le .mdl
    je reviens dans matlab où je peux voir le ScopeData
    je lance le script pour tracer les courbes
    plantage
    Undefined function or variable "ScopeData".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    plot(ScopeData.time,ScopeData.signals.values(:,1),'-bd')
    Est-ce que vous voyez une piste de recherche ?

    merci pour votre aide.

  2. #2
    Membre Expert
    Avatar de tug83
    Homme Profil pro
    MATLAB Geek !
    Inscrit en
    Juin 2006
    Messages
    1 781
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : MATLAB Geek !
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 781
    Par défaut
    à mon avis c'est que cette variable n'est pas affectée au workspace de matlab.
    Utilise un bloc To workspace ou vu que tu utilises un script utilise la commande assignin:

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 109
    Par défaut
    extrait de la doc matlab/simulink
    Save data to workspace

    You can automatically save the data collected by the Scope at the end of the simulation by selecting the Save data to workspace check box. If you select this option, the Variable name and Format fields become active.
    Et je confirme que ScopeData est dans le workspace. Je le vois et je vois les valeurs que je veux tracer.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 109
    Par défaut
    Voici ce qui est affiché dans le command window

    >> run('C:\Documents and Settings\Mathias\Mes documents\Taff\Données CACG du 10-07\fonction de transfert\biefs\test.m')
    msg =
    load init.m
    Te =
    10800
    msg =
    open ftransferts.mdl
    msg =
    start simulation
    msg =
    plotage
    ??? Error using ==> run
    Undefined function or variable "ScopeData".

    >> ScopeData.signals.values
    ans =
    2.0000 0 0
    2.0000 0 0
    3.0000 0 0
    5.0000 0 0
    5.0000 0 0
    5.0000 0.9400 0
    5.0000 0.9946 0
    5.0000 1.3482 0
    5.0000 2.3578 0
    5.0000 2.3485 0
    5.0000 2.2513 0.4982
    5.0000 2.2921 0.5695
    5.0000 2.2851 0.7056
    5.0000 2.2839 1.2678
    5.0000 2.2851 1.2886
    5.0000 2.2847 1.1832
    5.0000 2.2848 1.2166
    >> ScopeData.time
    ans =
    0
    10800
    21600
    32400
    43200
    54000
    64800
    75600
    86400
    97200
    108000
    118800
    129600
    140400
    151200
    162000
    172800

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 109
    Par défaut
    et voici le script qui plante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    % plotage.m permet de tracer les résultats de simulation
     
    figure
    subplot(3,1,1)
    plot(ScopeData.time,ScopeData.signals.values(:,1),'-bd','LineWidth',2,'MarkerEdgeColor','k','MarkerFaceColor','k','MarkerSize',3)
    [x y] = size(ScopeData.time);
    z = max(ScopeData.signals.values(:,1));
    axis([0 (x-1) 0 (z)])
    grid
    text((0.75*x),(-z/4),'Temps [jours]')
    ylabel('entrée [m^3/s]')
    text(((x-1)/2),(-z/4),'(a)')
     
    subplot(3,1,2)
    plot(ScopeData.time,ScopeData.signals.values(:,2),'-bd','LineWidth',2,'MarkerEdgeColor','k','MarkerFaceColor','k','MarkerSize',3)
    [x y] = size(ScopeData.time);
    z = max(ScopeData.signals.values(:,2));
    axis([0 (x-1) 0 (z)])
    grid
    text((0.75*x),(-z/4),'Temps [jours]')
    ylabel('inter [m^3/s]')
    text(((x-1)/2),(-z/4),'(b)')
     
    subplot(3,1,3)
    plot(ScopeData.time,ScopeData.signals.values(:,3),'-bd','LineWidth',2,'MarkerEdgeColor','k','MarkerFaceColor','k','MarkerSize',3)
    [x y] = size(ScopeData.time);
    z = max(ScopeData.signals.values(:,3));
    axis([0 (x-1) 0 (z)])
    grid
    text((0.75*x),(-z/4),'Temps [jours]')
    ylabel('sortie [m^3/s]')
    text(((x-1)/2),(-z/4),'(c)')

  6. #6
    Expert confirmé
    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
    Par défaut
    Je suppose qu'en fait test.m est une fonction et non pas un script.
    Et une fonction ne connait pas les variables du workspace MATLAB (voir à ce sujet : Existe-t-il plusieurs types de définitions de variables ?)
    Pour récupérer cette variable (connue dans le workspace MATLAB) dans ta fonction tu peux faire comme suit dans ta fonction test.m : :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ScopeData=evalin('base','ScopeData')

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 109
    Par défaut
    bon, je suis arrivé à trouver mon erreur.

    Ça ne vient pas du tout de ScopeData.

    C'est dans mon code qu'il y une bourde phénoménale.

    devient
    Merci quand même pour votre aide.

    J'ai passé la matinée sur ce truc et j'ai failli casser mon ordinateur deux ou trois fois alors que c'était de ma faute. La programmation, c'est valorisant à certains moments et très dévalorisant à d'autres (je me sens bête, la, maintenant, très très bête).

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 24/02/2009, 12h06
  2. Comment utiliser un cache ?
    Par TOM-Z dans le forum XMLRAD
    Réponses: 4
    Dernier message: 14/03/2003, 09h55
  3. comment utiliser actionscript ?
    Par webs dans le forum Flash
    Réponses: 3
    Dernier message: 09/02/2003, 23h11
  4. Comment utiliser OUT ?
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 3
    Dernier message: 20/07/2002, 09h35
  5. Réponses: 5
    Dernier message: 11/06/2002, 15h21

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