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 :

Bloc a partir de .m, récupération de valeurs etc.


Sujet :

Simulink

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 90
    Par défaut Bloc a partir de .m, récupération de valeurs etc.
    Bonjour,

    Devant faire exécuter à Simulink (v7) des choses qu'il ne sait (apparemment) pas gérer (à tout hasard sait-on jamais : simulink sait-il gérer un changement de temps, cad qu'une partie du schéma bloc sera à considérer dans une autre échelle de temps tau, définie à partir de certaines variables et du temps t ?), je vais devoir coder moi même de grosses parties du schéma bloc.

    Je me heurte à certains problèmes, dont voici les deux plus gonflants :

    2) [Non Résolu] Un peu plus délicat : je souhaiterai récupérer des variables scalaires au cours du temps et les modifier, mais là encore impossible. Pour faire simple, disons que je veux coder une bête fonction comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    function y_n_plus_1=toto(y_n,u)
    y_n_plus_1=y_n+u;
    Mon problème est donc de stocker quelque part la variable y au "temps précédent" (ce que je note y_n). J'ai bien essayé avec un "to workspace" et "from workspace", mais franchement c'est galère et pour le moment j'ai laissé tomber cette option. N'y a-t-il pas un moyen *simple* pour stocker un scalaire autre que stocker toute une matrice avec tous les temps t et la variable à tous les temps t corresponsants etc ?

    1) [Résolu] Je n'arrive pas à utiliser une fonction "classique" écrite dans un .m comme bloc autrement qu'en utilsant un bloc "embedded Matlab function" et en copiant collant la fonction dedans Pourtant, je sens bien que le bloc "Matlab Fcn" doit etre fait pour ça, mais impossible de l'utiliser, je mets le nom de la fonction .m dans "matlab function", elle a 4 entrées donc je mets un mux, elle a une sortie donc pas de problème, mais quand je lance, il me dit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Error evaluating MATLAB function in 'syslin_BF_essai/MATLAB Fcn'.  MATLAB error message:
    Input argument "enp1" is undefined.
    En gros, les arguments de ma fonction ne sont pas définis



    Merci d'avance !

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Par défaut
    Salut.
    Je n'arrive pas à utiliser une fonction "classique" écrite dans un .m
    Voici un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function y=cubique(a,b,c,d)
    x=0:0.1:1
    y=a*x.^3+b*x.^2+c*x+d;
    Images attachées Images attachées   

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 90
    Par défaut
    merci pour ta réponse ! Dis donc, c'est bizarre comme truc ça, ce u(1) u(2) etc, c'est totalement arbitraire, pourquoi u comme ça de manière générique, pas terrible En tout cas ça marche, merci ! (mais diantre c'est horriblement lent, une simple intégration d'équa diff qui met des minutes entières, c'est quoi ce bins !!! )

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 90
    Par défaut
    pas d'amateur pour mon problème numéro 2 ?...

  5. #5
    Membre Expert
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Par défaut
    Salut.
    pas d'amateur pour mon problème numéro 2 ?
    si c'est un integrateur que tu veux voici deux exemples :
    Images attachées Images attachées  

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 90
    Par défaut
    oui, effectivement un retard peut être solution. J'y avais pensé mais je m'étais dit que faire un retard d'un pas de temps, alors que sa valeur (au pas de temps) peut changer, je pourrais pas faire... mais j'avais pas pensé à un retard discret comme tu le suggères : Il se cale forcément sur le pas de temps précédent je suppose ? (ça parait logique mais comme je connais pas trop...)

Discussions similaires

  1. Récupération de valeurs a partir d'un fichier texte
    Par D_light dans le forum Shell et commandes POSIX
    Réponses: 4
    Dernier message: 08/11/2012, 14h56
  2. Problème lors de la récupération des valeurs à partir du modèle EMF
    Par ziad.shady dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 02/04/2009, 15h08
  3. [struts] [checkbox] récupération des valeurs cochées
    Par abourell dans le forum Struts 1
    Réponses: 16
    Dernier message: 10/06/2005, 20h58
  4. récupération de valeur de lien
    Par sex-sansbol dans le forum ASP
    Réponses: 3
    Dernier message: 07/06/2004, 10h43
  5. Récupération de valeurs d'un tableau
    Par leeloo076 dans le forum ASP
    Réponses: 12
    Dernier message: 25/03/2004, 10h59

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