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 :

blok s_function ne fonctionne pas


Sujet :

Simulink

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2012
    Messages : 19
    Par défaut blok s_function ne fonctionne pas
    Bonsoir à tous,

    Je viens vers vous car j'ai un soucis pour la simulation d'un Schéma Simulink contenant un bloc MATLAB S_Function.
    Mon travail consiste à faire la simulation de dérivé première VX(t) de l’entrée X(t), tel que X(t) et VX(t) sont des vecteurs, qui ont la même longueur.
    X(t) est l’entrée de block s_function,
    VX(t) est la sortie de block s_function,
    le block de s_function, nommé essaiii, leur code est le suivant :

    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
    33
    34
    35
    36
    37
    38
    function [sys,x0,str,ts]=essaiii(T,xi,X,flag) 
     
    switch flag
     
        case 0  % Initialisation
     
            str = [];
            ts = [0 0]; 
            s = simsizes;
              s.NumContStates = 1;
              s.NumDiscStates = 0;
              s.NumOutputs = 1;
              s.NumInputs = 1;
              s.DirFeedthrough = 0;
              s.NumSampleTimes = 1;
              sys = simsizes(s);
              x0 = [0] % valeur initiale des états
     
         case 1 % calcul de dx/dt
             disp 1
     
     VX = derive1(T,X)
     sys = derive2(VX,T)
     
         case 3 % calcul des sorties
             disp 3
     
           sys=xi
     
         case{2 4 9}
             disp 4
     
             sys=[]
     
         otherwise
     
              error(['unhandled flag = ',num2str(flag)]);
      end
    Où les deux fonctions derive1 et derive2 sont deux fonctions qui calculent la dérivé première de x et la dérivé seconde de x (donc la dérivé première de VX) respectivement dont leurs codes sont les suivants :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function VX=derive1(T,X)
     
    X=[X; 13.1940];
    T=[T; 1.34];
    dD=diff(X);
    dt=diff(T);
     
    VX=(dD)./(dt);
    VX=[VX];
     
    return ;
    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
    function AX=derive2(VX,T)
     
    %-----------differentiel du temps	
     
    VX=[VX; -13.800]
    T=[T; 1.34];
     
    dt=diff(T);
     
    %-----------differentiel du signal vitesse suivant X
     
    dDVX=diff(VX);
     
    AX=(dDVX)./(dt);
    AX=[AX];
     
    return;
    Il n’y a pas de message d’erreur mais il ne me donne pas le résultat de simulation convenable. En effet le résultat que je voudrais obtenir de la simulation est le suivant :


    Or le résultat que me donne le code de s_function est comme suit:
    Images attachées Images attachées   

Discussions similaires

  1. Réponses: 6
    Dernier message: 27/01/2004, 11h14
  2. [FP]Writeln ne fonctionne pas !
    Par néo333 dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 01/11/2003, 23h47
  3. UNION qui ne fonctionne pas
    Par r-zo dans le forum Langage SQL
    Réponses: 7
    Dernier message: 21/07/2003, 10h04
  4. Un Hint sur un PopupMenu ne fonctionne pas !!??
    Par momox dans le forum C++Builder
    Réponses: 6
    Dernier message: 26/05/2003, 16h48
  5. ca ne fonctionne pas (generateur auto-incrémentant)
    Par tripper.dim dans le forum SQL
    Réponses: 7
    Dernier message: 26/11/2002, 00h10

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