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 Embedded Function error


Sujet :

Simulink

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 76
    Points : 54
    Points
    54
    Par défaut Simulink Embedded Function error
    Bonjour,
    Je suis actuellement étudiant, en stage et je dois utiliser utiliser matlab et simulink (dont je ne connais ni ne comprends grand chose).

    Mon problème est le suivant:

    J'ai écrit une fonction (définie par morceaux) sous l'"editor" de MATLAB (qui fonctionne) et j'aimerais l'utiliser sous simulink. J'utilise pour cela la fonction "Embedded MATLAB function" et là, une fenêtre d'erreurs s'ouvre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     Error	EmbeddedMATLAB Function	Embedded MATLAB	Undefined function or variable 'z'. The first assignment to a local variable determines its class.Function 'Embedded MATLAB Function' (#31.142.143), line 7, column 15:"z"
    Voici le script sous l'éditeur de matlab:

    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
     
    function z=profil_parcours()
     
    for i=1:1:50;
     
        if i<=10, z(i)=0;
        end
        if i>10 && i<=15, z(i)=z(i-1)+1;% pente de "1"
        end
        if i>15 && i<=25, z(i)=5;
        end
        if i>25 && i<=30, z(i)=z(i-1)-0.5;% pente de "-1/2"
        end
        if i>30 && i<=40, z(i)=z(i-1)+2;% pente de "2"
        end
        if i>40 && i<=50, z(i)=z(i-1);
        end
    end
    plot(z);title('profil parcours');ylabel('altitude en m');xlabel('distance en km');
    Je le copie/colle dans le "embedded matlab editor" (sous simulink), je sauvegarde, compile et le message d'erreur s'affiche. Je ne comprends pas pourquoi ca fonctionne dans un cas et pas dans l'autre


    Merci pour votre aide.

  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,

    Tu pourrais essayer de définir ton vecteur z au début de ta fonction (avant la boucle):
    Duf
    Simulink & Embedded Coder

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

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 76
    Points : 54
    Points
    54
    Par défaut
    Merci pour ton aide, maintenant je n'ai plus d'erreurs dans ma fonction.

    Bonne journée

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

Discussions similaires

  1. [Embedded Function] Problème dans une boucle FOR-END
    Par roilait dans le forum Simulink
    Réponses: 6
    Dernier message: 19/04/2008, 14h55
  2. embedded function
    Par bassemb dans le forum Simulink
    Réponses: 3
    Dernier message: 01/04/2008, 11h43
  3. Réponses: 6
    Dernier message: 05/03/2008, 14h31
  4. Embedded function
    Par Hoc75 dans le forum Simulink
    Réponses: 6
    Dernier message: 24/08/2007, 11h48
  5. [Simulink][S-Functions] Erreur à l'exécution
    Par Damien B. dans le forum MATLAB
    Réponses: 2
    Dernier message: 30/03/2007, 15h33

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