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 :

Variable dynamique


Sujet :

Simulink

  1. #1
    Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2011
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2011
    Messages : 81
    Points : 58
    Points
    58
    Par défaut Variable dynamique
    Bonjour,

    Est-il possible de créer une variable globale dynamique sous Simulink? (En fait, je souhaiterais réaliser un tableau dynamique utilisable par mes blocs "embedded function" présents sur mon schéma simulink).

    Merci

  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 peux peut-être utiliser les blocs Data Store Memory qui permettent de partager des variables dans ton ton modèle Simulink.

    Duf
    Simulink & Embedded Coder

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

  3. #3
    Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2011
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2011
    Messages : 81
    Points : 58
    Points
    58
    Par défaut
    Oui, mais je n'arrive pas à faire qu'elle soit dynamique.
    A la rigueur, ce n'est pas grave si elle n'est pas globale, mais il faudrait qu'à chaque instant de ma simulation, je sois capable d'enregistrer une nouvelle valeur dans mon tableau (sachant que je connais pas la taille finale de ce tableau), puis que je me serve de toutes les valeurs de ce tableau pour calculer l'intégrale numérique des valeurs obtenues, tout cela dans un bloc "embedded function".

    J'ai déjà codé l'algorithme pour calculer l'intégrale d'une fonction f(t), mais justement, il me manque cette fonction f(t) que je souhaiterai enregistrer dans ce tableau (je ne sais pas si c'est clair ou pas ce que je veux faire...)

  4. #4
    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
    Si tu utilises des blocs Data Memory, tu as des blocs Read et Write qui te permettent à chaque instant de lire ou écrire la valeur de la variable.
    Simulink & Embedded Coder

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

  5. #5
    Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2011
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2011
    Messages : 81
    Points : 58
    Points
    58
    Par défaut
    Mais ça écrase la valeur précédente non?

  6. #6
    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
    Oui ca écrase la variable précédente mais rien n'empêche de faire un vecteur dans lequel tu ajoutes les valeurs les unes à la suite des autres...
    Simulink & Embedded Coder

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

  7. #7
    Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2011
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2011
    Messages : 81
    Points : 58
    Points
    58
    Par défaut
    Dans ce cas, comment faire un tel vecteur? puis-je écrire dedans dans un premier temps, puis récupérer ses valeurs pour calculer mon intégrale, et ceci dans la même simulation?

  8. #8
    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
    Est-ce que tu pourrais détailler ce que tu veux faire au final?
    Simulink & Embedded Coder

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

  9. #9
    Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2011
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2011
    Messages : 81
    Points : 58
    Points
    58
    Par défaut
    J'aimerai faire la chose suivante (je travaille en temporel) : à chaque instant t, je calcule la vitesse de mon bras robotique. Théoriquement, si j'intègre cette vitesse, je suis sensé obtenir la position.
    Pour cela, je dois réaliser une intégration numérique (j'ai codé la méthode des trapèzes, permettant d'obtenir l'intégrale d'un signal f(t)).
    C'est pourquoi je dois construire un signal vitesse(t), afin de pouvoir utiliser ma fonction permettant l'intégration.

    Pour construire ce signal vitesse(t), il me faut donc enregistrer chaque valeur de ma vitesse dans un tableau à chaque instant t, d'où la nécessité d'utiliser un tableau dynamique. Est-ce que c'est plus clair?

  10. #10
    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
    Si tu travailles dans Simulink, pourquoi ne pas directement utiliser un bloc intégrateur qui s'occupera tout seul de faire cette intégration?

    Même si tu veux coder ton intégrale à la main, tu n'as pas besoin de stocker toutes les valeurs, il te suffit de calculer ton intégrale à chaque pas de temps et de mettre à jour sa valeur.
    Simulink & Embedded Coder

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

  11. #11
    Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2011
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2011
    Messages : 81
    Points : 58
    Points
    58
    Par défaut
    mais le bloc intégrateur marche lorsqu'on travaille sous laplace, or je travaille en temporel

  12. #12
    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
    Non, le bloc intégrateur fait une intégration temporelle.
    Simulink & Embedded Coder

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

  13. #13
    Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2011
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2011
    Messages : 81
    Points : 58
    Points
    58
    Par défaut
    Vraiment? Mon superviseur m'a dit de ne pas l'utiliser car il ne fonctionnait qu'en étant sous Laplace.....

  14. #14
    Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2011
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2011
    Messages : 81
    Points : 58
    Points
    58
    Par défaut
    Bon, je me suis débrouillé autrement, je n'ai pas utilisé de variables dynamiques, en connaissant mon pas, j'ai calculé combien de mesures j'aurais, donc j'ai dimensionné mon tableau grâce à cela. Le point négatif, c'est que si je change les paramètres de simulation, je dois recalculer à la main la taille de mon tableau (je ferais peut-être une fonction pour le faire ensuite, mais là, je n'ai pas le temps).
    Merci pour l'aide apportée

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

Discussions similaires

  1. variable dynamique dans une fonction javascript
    Par Shivaneth dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/04/2005, 15h58
  2. Variables dynamiques
    Par CriPpLe dans le forum C++
    Réponses: 5
    Dernier message: 23/02/2005, 11h56
  3. [SQL SERVER 2000] Noms de variables dynamiques
    Par cassoulet dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 08/09/2004, 11h44
  4. Récupération de variables dynamiques complexes
    Par ludoboy dans le forum ASP
    Réponses: 7
    Dernier message: 24/05/2004, 17h51
  5. [LG]Problême Variable dynamique de types différents
    Par pierrOPSG dans le forum Langage
    Réponses: 2
    Dernier message: 29/04/2004, 16h01

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