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 :

Problème de simulation


Sujet :

Simulink

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2012
    Messages : 11
    Points : 11
    Points
    11
    Par défaut Problème de simulation
    Salut à tous,

    J'ai modélisé sur Simulink un moteur brushless et j'ai une simu qui tourne correctement (vitesse de sortie qui suit la vitesse de référence etc.).
    Sauf que j'ai un bug que je ne comprends pas.
    Il suffit que je copie colle un bloc d'une version antérieure. Ce bloc, je ne le relie A RIEN et pourtant ma simu part en vrille (aucun message d'erreur mais la vitesse de rotation fait n'importe quoi...). Dans le même genre, un bloc est non branché, la simu est correcte ; je relie les entrées du bloc vers des signaux adéquats mais je laisse les sorties non branchées, donc je ne modifie en rien la modélisation globale et pourtant la simu donne de mauvais résultats.

    Voila, si vous avez des idées du pourquoi du comment, je suis preneur... 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,

    Si tu pouvais nous montrer un aperçu du problème ca pourrait nous aider...

    Quand tu parles de "version antérieure", ca fait référence à une version différente de Simulink ou une version du modèle?

    Duf
    Simulink & Embedded Coder

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

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2012
    Messages : 11
    Points : 11
    Points
    11
    Par défaut
    Pardon, je parlais bien d'une version antérieure du modèle...

    Voici un exemple du deuxième problème que j'ai cité :

    La partie à gauche des figures montrent ce que j'ai modifié dans mon modèle, la partie à droite, la vitesse de rotation du moteur (celle du haut)

    Dans le premier cas, le moteur démarre correctement et la vitesse de rotation augmente et est positive.

    Dans le second cas j'ai juste relié le bloc mais qui n'a aucune conséquence sur le comportement du système puisque je n'utilise pas la sortie et pourtant la vitesse fait n'importe quoi...
    Images attachées Images attachées   

  4. #4
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 882
    Points : 3 432
    Points
    3 432
    Par défaut
    Citation Envoyé par Brice26 Voir le message

    Dans le second cas j'ai juste relié le bloc mais qui n'a aucune conséquence sur le comportement du système puisque je n'utilise pas la sortie et pourtant la vitesse fait n'importe quoi...
    pas forcement, avec les back propagation, ça peut en en avoir, sur le type de données (réel, int, boolean ...) ou le temps d'échantillonnage (continue, inf, 5, ...) ou autre chose encore

    pour le savoir tu peux afficher plus de chose que la seule dimension de tes signaux via le menu format puis port\signal display et sample time display

    refaire un update diagram après avoir blanché ton signal pour mettre a jour ces informations

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2012
    Messages : 11
    Points : 11
    Points
    11
    Par défaut
    Vu que j'apprends "sur le tas" les astuces ou autres trucs de Simulink, j'avais déjà remarqué ce problème de back propagation au niveau du format des données car il m'affichait un message d'erreur. Du coup, j'utilise le gain unitaire et je force le format de sortie selon ce que je veux.

    Par contre, je ne savais pas pour la période d'échantillonnage. Effectivement dans le bloc Hachage Tension j'ai une autre période qui apparait. De plus, ailleurs dans mon modèle j'ai un retard qui traine (non relié) dont sa valeur est une période plus petite que toutes les autres dans le reste du montage. Selon si je le laisse ou le supprime j'ai des résultats différents.

    En changeant de solver (passage de ode15s à ode23t), ça s'arrange mais c'est assez énervant. Comment on fait dans le cas où on modélise avec plein de périodes différentes mais qu'aucun des solver de Simulink n'est assez robuste pour nous obtenir une bonne simulation ?

  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
    Si tu as des périodes d'échantillonnage différentes, il est conseillé d'utiliser des blocs Rate Transition (librairie Signal Attributes) pour signifier la frontière entre 2 pas d'échantillonnage, sinon Simulink se débrouille tout seul et il fait souvent des choses différentes de ce que l'on souhaiterait.
    Simulink & Embedded Coder

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

  7. #7
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 882
    Points : 3 432
    Points
    3 432
    Par défaut
    sinon prend l'habitude d'utiliser sample time display du menu format, c'est très utile pour voir ce qui va pas
    et après tu règles le pb, avec rate transition par exemple

    changer de solver par contre n'est pas la solution : il faut maitriser ses périodes d’échantillonnage en premier (ainsi que les autres propriétés du signal, tel que le type)
    puis éventuellement un solveur te donnera plus de satisfaction

  8. #8
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2012
    Messages : 11
    Points : 11
    Points
    11
    Par défaut
    Merci pour vos réponses mais j'ai du mal à comprendre le rôle du rate transition et les problèmes qu'engendre le fait d'utiliser différentes périodes d'échantillonnage.

    J'ai quelque peu modifié mon modèle (voir image).
    Si j'enlève le bloc hachage, le système est ok avec ode15s mais ko avec ode23t et vice versa si je le mets.

    Les tensions d'entrée sont échantillonnées à 150µs mais le triangle utilisé pour avoir les ordres de commutations des transistors est un signal continu qui se répète toutes les 50µs. Du coup en sortie, j'ai des 1 et 0 qui arrivent de manière aléatoire (en temporel je parle).

    Et au final je ne sais pas trop ce que je dois modifier pour ne pas avoir de problème.
    Images attachées Images attachées  

  9. #9
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 882
    Points : 3 432
    Points
    3 432
    Par défaut
    il n'y a pas de soucis à utiliser différent sample time
    par contre si tu laisse le sample time à -1 par défaut dans les block, c'est simulink qui décide et via les back propagation tu peux avoir des surprises, genre des sample time continus, infini, trop courts, trop grands...
    bref, il faut bien penser la chose au moment ou tu fais ton diagramme

    le rate transition permet de bien spécifier ce que tu veux en séparant les différentes zones de ton diagramme
    tu peux utiliser aussi les blocks zero order hold et unit delay afin de bien gérer les transitions entres blocs qui ont des périodes échantillonnage différente, voir pas de période (sample time continue, 0, inf ...)

    sinon le solveur ode23 sera peut être moins difficiles
    c'est celui que j'utilise toujours par défaut, et je vais vers les autres si besoin
    il marche bien, couvre beaucoup de cas et est assez rapide

Discussions similaires

  1. Problème de simulation
    Par benben75 dans le forum Simulink
    Réponses: 0
    Dernier message: 27/08/2008, 22h01
  2. Réponses: 6
    Dernier message: 21/07/2008, 18h42
  3. Réponses: 2
    Dernier message: 17/04/2008, 17h14
  4. [Robotic Toolbox] Problème de simulation
    Par jennifer844 dans le forum MATLAB
    Réponses: 1
    Dernier message: 23/03/2008, 15h57
  5. Problème de simulation
    Par emrod dans le forum Simulink
    Réponses: 5
    Dernier message: 15/06/2007, 13h00

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