1) Comprendre les notions fondamentales de la simulation ... · Nécessite une discrétisation de...
Transcript of 1) Comprendre les notions fondamentales de la simulation ... · Nécessite une discrétisation de...
Simulation de systèmes mécatroniques
objectifs :
1) Comprendre les notions fondamentales de la simulation, leursavantages et leurs limitations
2) Etre apte à utiliser le logiciel SIMULINK
3) Savoir structurer un problème de simulation
Contenu
30 % exposés, théorie
70 % laboratoires SIMULINK
1/3 : note du TE vers la fin du trimestre
2/3 : moyenne des notes de labo
Contrôle continu
Définition du terme „simulation“Prévoir le comportement d‘un système réel en utilisant un modèle.
La simulation est le 3ème pilier entre les piliers « théorie » et « pratique »
Objectifs de la simulation
analyses, p.ex. influence de tolérances, vérification d‘hypothèses, identification, comparaison de différentes solutions, choix des paramètres, optimisation, etc
la simulation est un outil très puissant dans le processus de développement de produits
Quelles sont les étappes dans le développement d‘un produit ?
Activités type du processus de développement de produits
Dans quelles étappes est-ce qu‘on peut utiliser lasimulation, et quels sont les objectifs ?
Avantages
• économiser le temps et les coûts de développement (moins de prototypage)
• minimiser le risque d‘un développement (les problèmes devraientapparaitre déjà dans le modèle)
• pas de danger d‘endommager le système réel• augmenter la qualité du développement• plage des paramètres n‘est pas limitée par des contraintestechnologiques
• les perturbations peuvent être introduit dans le modèle de façoncontrôlée (modèle sans bruit / avec l‘ajout de bruit aléatoire)
Risques / limitations d‘une simulation
Si le modèle est incomplet, imprécis, faux ou inapproprié,
et/ou si les résultats d‘une simulation sont mal interprétés ...
au lieu d‘aider, une simulation incorrecte peut même engendrer des
décisions néfastes !!
la simulation n‘est qu‘un outil, et il faut bien le maîtriser pour
pouvoir bénéficier de ses avantages
un prototype qui marche est plus précieux qu‘une simulation
qui marche ...
Chaque modèle a un domaine de validité
utiliser un modèle hors du domaine de validité peut être dangereux
domaine de validité (exemple 1)
réalité un modèle
loi d‘Ohm
IRU ⋅=
Quel est le domaine de validité de ce modèle ?
domaine de validité (exemple 2)
levier (réalité)
Quel est le domaine de validité de votre modèle ?
Donner un modèle du levier !pivot
f1
x1
f2x2
L1
L2
chaque modèle est une simplification d‘une réalitécomplexe !
Donner des exemples d‘hypothèses simplificatrices qui sont
souvent utilisés lors de la modélisation !
modèle « précis »= modèle complexe
beaucoup de paramètreslourd à simuler
modèle « grossier »= modèle simple
peu de paramètresfacile à simuler
choix à faire en fonction des objectifs et des exigences
Erreurs / problèmes fréquents
• effets non modélisés modèle imprécis
• paramètres du modèle ne correspondent pas modèle imprécis
• mauvais choix de l‘algorithme de résolution (solver) résultat imprécis
• erreur d‘interprétation des résultats
la validation d‘une simulation est hyper-importanteet doit être menée très systématiquement
les 4 phases dans le développement d‘une simulation1. Définition
quel est l‘objectif concret de la simulation ?délimitation du système/sous-système à modéliserquels phénomènes ?, relations cause / effets ?, équations, ...)
2. Modélisationphysiqueforme informatique, choix du „solveur“, ...
3. ValidationEst-ce que le modèle reproduit le comportement du système réelavec la précision requise ?
4. Exploitation des résultatsmanipulation et étude du modèle
Classification de modèles de simulation (1)
• modèles déterministes
• modèles stochastiques
Classification de modèles de simulation (2)
• CSCT (continuous space, continuous time)„distributed parameter systems“modélisé par des équations diff. partielles(Navier-Stokes, Laplace, etc)écoulements, électromagnétisme, propagation de chaleur, ondes, diffusion, contraintes mécaniques, structures vibratoires réparties
maillage nécessaire pour discrétiser l‘espaceméthode par éléments finis (FEM)
Exemple : „ANSYS multiphysics“
Exemple COMSOL multiphysics
interaction écoulement avec structure mécanique (lame)
Simulation d‘un écoulement autour d‘un disque
Exemple familier : la météo
Etappes dans une modélisation „éléments finis“
1. définir la géométrie (dessiner / importer depuis CAO)
a) souvent nécessaire de simplifier
b) préférable de commencer en 2D !
b) exploiter les symmétries !
2. définir le maillage (finesse, forme)
3. définir la physique + propriétés des pièces
4. résoudre les équations (solve)
5. postprocessing
Classification de modèles de simulation (3)
• DSCT (discret space, continuous time)„lumped parameter systems“modélisé par des équations différentielles ODEcircuits électriques, systèmes mécaniques avec éléments concentrés(rigid body dynamics)
l‘axe du temps est continu, mais il est discrétisé lors de la résolution numérique (pas d‘intégration fixe/variable)
Spice : Simulation de circuits électroniques
SimMechanics
chaîne cinématique de corps rigides, liés par des articulations
Exemple : „multibody systems“
Classification de modèles de simulation (4)
• DSDT (discret space, discret time)modélisé par des équations aux différencesfiltres et régulateurs numériques
• DES (discrete event systems)les variables d‘espaces sont quantifiéesp.ex. modélisation du traffic, modélisation de systèmes de production
• hybrid systems
Chaque modèle est basé sur des hypothèses
ϕ
exemple : pendule
∑ ⋅−==⋅ )sin(2
couples ϕϕ lgmJ
un modèle nonlinéaire
Quelles sont les hypothèses sur lesquelles ce modèle est basé ?
Programmation graphique (schéma bloc)Thermal Model of a House
Thermostat
ThermalPlots
70Set Point
?
1/s
House
-K-
HeaterBlower
F2C
Fahrenheitto Celsius
F2C
Fahrenheitto Celsius
-K-
DollarGain
Daily TempVariation
C2F
Celsius toFahrenheit
50Avg Outdoor
Temp
heaterQDotblower
cmdTerr
Tin
Indoor vs.Outdoor Temp.
Heat Cost ($)
• blocs élémentaires de la librairie• blocs imbriqués• blocs procéduraux, non graphiques (fonctions S)
avantages de l‘approche par schéma bloc
Quelles sont les avantages de la programmation graphique ?
Mise sous forme graphique d‘une éq. diff.
Exemple : oscillateur avec 2 DDL
Formuler la loi de Newton pour chaque corps
Système de 2 équations diff. du deuxième degré
Ordre = 4 (nécessité d‘avoir 4 intégrateurs)
1m
2m
1k 1d
2d2k
actf
Modélisation d‘un oscillateur avec 2 DDL
)()(
)()(
122122act22
212212111111
xxdxxkFxm
xxdxxkxdxkxm
−−−−=
−−−−−−=
( )
( ))()(1
)()(1
122122act2
2
21221211111
1
xxdxxkFm
x
xxdxxkxdxkm
x
−−−−=
−−−−−−=
1m
2m
1k 1d
2d2k
actf
Résoudre chaque équation par rapport à la dérivée la plus élevée. Cette dérivée correspond au signal d‘entréed‘un ou de plusieurs intégrateurs.
Schéma bloc
∫ ∫1x1x1x
∫ ∫2x
2x2x
1
1m
1d
−
1k
−
2
1m
fact
+
++
−
−
+2k
2x
−
−
+2d
2x
Introduction aux „solvers“ de simulation
Malgré leur aspect visuel (GUI) convivial, les logiciels de simulationfont des calculs extrèmement complexes en interne.
Cette complexité énorme est cachée par une interface utilisateur (GUI).
En cas de problème, il faudra avoir un minimum de connaissances„internes“ pour s‘en sortir ...
Hélas, les activités „valider, débugger, interpréter, analyser, conclure, décider“ ne se font pas encore automatiquement (heureusement pour nous, sinon la raison d‘être de l‘ingénieur serait mis en question ...)
rôle du solverRésolution numérique d‘équations différentielles(linéaires / nonlinéaires).
Nécessite une discrétisation de l‘axe du temps.Contrairement à la régulation numérique la discrétisationde l‘axe des temps ne doit pas forcément être régulière.
Solution numérique xn(tk) approxime la solution exacte x(t)
ne pas confondre les erreurs de modélisation
aux erreurs engendrées par la résolution numérique !!
Il faut configurer les paramètres du solveur !
Simulation de systèmes mécatroniques
))(()( txftx =ODE = „Ordinary Differential Equation“sous forme vectorielle
condition initiale donnée : x(t0) = x0
trouver x(t) pour t > t0
Une solution exacte (« formule » pour x(t)) n‘existeque pour certaines équations différentielles, donc on est obligé de recourir à la « simulation numérique ».
L‘algorithme utilisé pour trouver une solutionnumérique approximative est appelé „solver“.
Vecteur d‘état
Les composantes du vecteur d‘état sont appelées variables d‘état. Ce sont les grandeurs physiques internes x1, x2 , ... xn d‘un système qui décrivent de façon univoque l‘étatd‘un système (p. ex. position, configuration, vitesse, pression, températures, tensions électriques, ...)
u(t) y(t)
systèmex1(t), x2(t) ... xn(t)
)(tx
Avantages de la forme vectorielle„espace d‘état“
• généralisation d‘une équation différentielle avec une seule variableen principe, même technique de résolution
• se prête bien pour le traitement par ordinateur (algorithme)
• on trouve aujourd‘hui des problèmes en ingénierie avec ~10‘000 à100‘000 variables (problèmes CSCT avec discrétisation de l‘espace)
Evolution dans l‘espace d‘état trajectoires
exemple : mouvement du pendule
Points d‘équilibre : x = f(x) = 0
point d‘équilibre stable (0°)point d‘équilibre instable (pendule inversé, 180°)
.
Equilibre stable : définition vulgarisée
point d‘équilibre asymptotiquement stable:une fois légèrement écarté d‘un point d‘équilibrestable, le système a la tendance d‘y revenir par lui-même et d‘y demeurer. Exemple : position verticale d‘un pendule simple avecfrottement.
écarté del‘équilibre
après un certain temps ...retour àl‘équilibre
Equilibre instable : définition vulgariséepoint d‘équilibre instable (labile):une fois légèrement écarté d‘un point d‘équilibreinstable, le système a la tendance de s‘éloigner de plus en plus et à ne plus d‘y revenir par lui-même.
Exemple : position verticale d‘un pendule inversé.
légèrementécarté del‘équilibre
après un court tempsl‘écart ϕ(t) a augmenté !
Equilibre marginalement stable : définition vulgarisée
point d‘équilibre marginalement stable:une fois légèrement écarté d‘un point d‘équilibremarginalement stable, le système reste dans sonentourage en effectuant des oscillations permanentes autour du point d‘équilibre mais sans jamais y revenir.
Exemple : position verticale d‘un pendule simple (sans aucun frottement).
solver le plus simple : méthode d‘Euler
))(()( txftx =
résoudre par rapport à x(tk+1)
kk
kkk tt
txtxtx−−
≅+
+
1
1 )()()(Idée : approximer la dérivée par une sécante
exécution d‘un pas d‘intégration
))(()()(
1
1k
kk
kk txftt
txtx≅
−−
+
+
))(()()()( 11 kkkkk txftttxtx −+= ++
Caractéristiques
Lors d‘un pas d‘intégration, la méthode d‘Euler nécessite une seuleévaluation de la fonction f
on dit qu‘il s‘agit d‘une méthode d‘ordre 1
le calcul de la nouvelle valeur se fait de façon explicite.On dit qu‘il s‘agit d‘une méthode explicite
)( 1+ktx
Ordre n d‘un solver
L‘ordre n d‘un solver est le nombre n nécessaire d‘évaluations de f lors d‘un seul pas d‘intégration. Exemples :
ode1 : Eulerode2 : Heunode3 : Bogacki-Shanpineode4 : Runge-Kuttaode5 : Dormand-Prince
Important : les endroits d‘évaluation de f pour les méthodes d‘ordren > 1 est choisi selon une stratégie définie par le solver.
à ne pas confondre au pas (temporel) d‘intégration !
Exemple : solver Hein
)(21)()(
))(()(
))(()(
211
112
11
kktxtx
ktxfttk
txfttk
kk
kkk
kkk
++=
+−=
−=
+
+
+ } deux évaluations de f
un pas d‘intégration
c‘est une méthode d‘ordre 2On peut montrer que l‘ordre du solver est lié à la précision.Si on divise par deux le pas d‘intégration , la précisiondu résultat va être quatre fois plus élevée pour un solver d‘ordre 2.
kk tt −+1
précision, pas d‘intégration, ordre du solver
Si le système à simuler ne comporte pas des discontinuités, on peutmontrer que
solver ordre(pas) erreur ∝
dilemme „temps de calcul“ ⇔ „précision“
précision temps de calcul
ordre du solver élevépas d‘intégration faible
Pas d‘intégration fixe
L‘incrément de temps pour un solver donné peut êtrechoisi fixe, ou variable.
S‘il est choisi fixe, c‘est à la responsabilité de l‘utilisateur de choisirune valeur appropriée, sinon les résultats risquent d‘être faux ou trèsimprécis.
règle grossière :
pas d‘intégration < 1/20 de la constante de temps la plus faible du système (phénomènes les plus rapides).
kk tt −+1
Pas d‘intégration variable
L‘incrément de temps est déterminé par un algorithmeadaptatif. S‘il n‘y a que des faibles changements, le pas d‘intégrationest automatiquement élargi.
avantage : diminution du temps de calcul
Si du coup, il y a des changements rapides, le pas d‘intégration estdiminué automatiquement pour pouvoir suivre la trajectoire avec uneprécision exigée.
avantage : augmentation de la précision
kk tt −+1
Paramètres à spécifier pour „pas variable“
• tolérance relative
• tolérance absolue
• pas initial (attentes, connaissance du système)
• pas min
• pas max (basé sur les constantes de temps, et sur le nombrede points souhaités)
se méfier des valeurs „auto“ !En général ça marche bien pour les exemples simples, maisça plante pour les exemples compliqués.
} précision requise
Nécessité de faire des essais !
Le bon choix du solver et des paramètres associés nécessiteen général quelques essais au préalable.
Critère : Les résultats de la simulation ne doivent plus varierfortement si on divise par deux le pas d‘intégration.
Validation d‘une simulation
• bien documenter la validation
• procéder de façon systématique
Systématique : Top Down ⇔ Bottom Up
Top Down : toute conception en ingénierie doit être faite «top down», et structuré depuis la plus haute couche à la plus basse.
Bottom Up : Le développement détaillé, et surtout la validation doitse faire dans le sens inverse, c-à-d «bottom up».
Valider séparément les blocs les plus simples (bottom), connecter ces blocs pour former des blocs plus compliqués, revalider, etc.jusqu’au bloc final (top).
Valider quoi, valider comment ?
Validations quantitatives :
• à l‘aide de mesures prises sur un système réel
• à l‘aide d‘un modèle analytique simplifié(p.ex. un modèle qui ne prend pas en compte certains effets)
• comparer pour différents paramètres physiques
• comparer pour différentes conditions initiales
• comparer pour différents solvers et pour différents pas d‘intégrationméfiez vous des résultats s‘il y a beaucoup de changements !!
Valider si la simulation reproduit la réalité !
Valider quoi, valider comment ?
Validations qualitatives (nécessaire, mais pas suffisant) :
• Est-ce que le résultat de simulation correspond à vos attentesphysiques ?
• Est-ce que la variation des paramètres, cas particuliers produisentdes résultats en correspondance avec vos attentes physiques ?
fonctionnalités d‘un logiciel de simulation
modèles sous forme graphique (schéma blocs)
modèles sous forme programmée (fonctions S)
résolution numérique : solvers, gestion du pas d‘intégration
gestion de discontinuités (state event / time event)
calcul du point de fonctionnement
linéarisation autour d‘un point de fonctionnement
prototypage rapide pour cibles temps réel, HIL, vérification
Précision de la simulation
Chaque pas d‘intégration introduit une erreur numérique.
Ces erreurs se propagent et s‘accumulent au fur et à mesure que la simulation évolue.
C‘est comparable à un processus de paiement d‘intérêt composé ...
Pour la simulation de systèmes instables, ce phénomèned‘accumulation d‘erreur est particulièrement prononcé.
exemple d‘un système stable
-0.5 0 0.5 1 1.5 2 2.5 3 3.5 4-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
1.2
1.4
Temps t
évol
utio
n x(
t)Champ directionnel f(x) = 1 - x
conditioninitiale
solutionexacte x(t)
valeurssimulées
)(xfx =
méthode d‘Euler
exemple d‘un système instable
xx.
xxfx == )(
solution analytique : tetx =)(
condition initiale : x(0) = 1
Précision des résultats de simulation
xexact – xsim
err = 485
xexact – xsim
err = 0.011
xexact – xsim
err = 1.3⋅10−7
Runge-Kuttaordre 4pas = 0.05
xexact – xsim
err = 7440 !!
xexact – xsim
err = 0.1689
xexact – xsim
err = 2⋅10−6
Runge-Kuttaordre 4pas = 0.1
t = 20t = 10t = 2
en l‘occurence, si on divise par deux le pas d‘intégration,
la précision du résultat est seize fois meilleure !
mais l‘effort de calcul n‘est que le double !
Allure de l‘erreur en fonction du pas et de l‘ordre du solver
erreur d‘intégration ∼ (pas)ordre
Pour le solver Runge-Kutta : ordre = 4
Donc : ( )44
161
2paspas
⋅=⎟⎠⎞
⎜⎝⎛
choix du solver
L‘effort de calcul est proportionnel au nombre de pas effectués.
Pour un temps de simulation donné, l‘effort de calcul est doncinversément proportionnel au pas d‘intégration.
En général, il est judicieux d‘utiliser une méthode d‘ordre élevé si le système a un «comportement lisse ».
Néanmoins, il n‘existe pas de solver qui est optimal pour chaque cas de figure. D‘où la nécessité de faire des essais si besoin est.
choix de la gestion du pas
- pas fixe pour un système hybride (analogique + échantillonné)
- le pas fixe doit être spécifié par l‘utilisateurtyp. 1/20 de la constante de temps la plus courte, sous-multiple de lapériode d‘échantillonnage)
- pas variable pour un système analogique pur
- pas variable pour des systèmes avec des événement d‘état
- spécifier tolérances (relatives + absolues), le pas min, max, et initial
Commande Matlab pour mesurer le temps de calcul
T_ini = cputime;sim('machin‘);% autres commandes
T=cputime−T_ini;
temps de calcul de la CPU
Exemples de systèmes difficiles à simulerSystèmes dits „rigide“ (stiff differential equations)
Ce sont des systèmes dans lesquels il y a plusieurs constantes de tempstrès éloignés (plusieurs ordres de grandeur).
Le pas d‘intégration doit s‘orienter à la constante de temps la plus faible ( modes temporels les plus rapides).
temps de calcul immense !
Remède : utiliser des algorithmes de solver dit « implicites »(ode15s (stiff/NDF), ode23s (stiff/mod. Rosenbrock), ...)et utiliser un pas d‘intégration variable.
événements d‘état = discontinuité structurelle
« state events » : imprévisible sur l‘axe de temps.
exemples : saturations, frottement sec, relais, fonction signe, switch, hit crossing, mécanique des contacts entre corps, etc.
bibliothèque Simulink « Discontinuities»
Systèmes avec une discontinuité structurelle
0)),((si)),(()(
0)),((si)),(()(
2
1
<Φ=
>Φ=
ttxttxftx
ttxttxftx
0)),((:n commutatio de surface =Φ ttx
exemple le plus simple : une balle qui bondit
événements temporels
exemple : systèmes hybrides temps continu / temps discretle signal de commande livré par le régulateur varieseulement aux instants d‘échantillonnageces événements temporels sont connus d‘emblée
Si le solver pour la partie « temps continu » travaille avecun pas variable (préconisé), il peut déterminer l’état à l’instant précisde l’événement, et prendre en compte le changement temporel.
Afin de pouvoir simuler des systèmes avec discontinuités,
des algorithmes spéciaux sont mis à disposition ( event handling).
Comment le solver gère les « state events »
Si le solver travaille avec un pas variable (préconisé), il peutdéterminer si la surface de commutation a été franchie entre 2 pas d’intégration. Mais les points des deux côtés de la surface peuventêtre très éloignés (car le pas d’intégration est variable).
Pour améliorer la précision, le solver démarre automatiquement uneitération interne pour arriver « pile » à l’état où l’événement a lieu.
La condition de finition de cette itération est spécifiée par des tolérances, que l’utilisateur doit spécifier.
Il y a une valeur de défaut pour la tolérance, mais suivant l’applicationelle doit être changée.
exemple laboratoire 1
0 1 2 3 40.4
0.6
0.8
1
1.2
1.4Période en fonction de l'amplitude
Amplitude
Pério
de
simulé avec pas variable
simulé avecpas fixelinéarisé
« discontinuité » du vecteur vitesseIl n‘existe en principe pas de discontinuités dans les systèmes
techniques réels !!Il semble y avoir des discontinuités, si l‘échelle du tempsest choisie trop grossière.Exemple : bondissement d‘une balle
Le vecteur de vitesse ne change jamais immédiatement !Point de vue microscopique : déformation locale au «point de contact »!
difficile à modéliser
Point de vue macroscopique : le changement rapide de la vitesse estapproximé par un changement instantané.
facile à modéliser
Simulink demo : sldemo_bounce.mdlpoint de vue macroscopique
recharge une nouvellecondition initiale au flancdescendant de Z
Comment le solver gère ces discontinuités
0 2 4 6 8 10 12 14 16 18 20-5
0
5
10
15
20
Balle bondissante : point de vue macroscopiquecontact = durée infinitésimale Δt→ 0 impact = discontinuité
le vecteur vitesse v(t) change instantanément lors de l‘impactforce de contact = DIRAC !! impossible à simuler !!solution : recharger la condition initiale de la vitesse
au cours de la simulation lors du passage par zéro de z(t)
Comparaison des résultats de simulation
0 2 4 6 8 10 12 14 16 18 200
5
10
15
20
25
temps [s]
haut
eur Z
[m]Bouncing Ball
pas variable avec détection d'événement
pas fixe grossier (0.2)
précis !
imprécis
Le pas d‘intégration chute lors de l‘événement
0 500 1000 1500 2000 25000
0.002
0.004
0.006
0.008
0.01
0.012
indice
pas
d'in
tégr
atio
n [s
]diff(tsim)
Balle bondissante : point de vue microscopique
contact = durée finie déformation locale de la balle
le vecteur vitesse v(t) change progressivement lors de l‘impact
force de contact = définie, calculable
sol indéformable
m
m⋅g
Point de vue microscopique
Deux équation différentielles pour deux régimes
m
m⋅g
phase de vol
m
discontinuité structurellelors de l‘impact
phase de contact
Point de vue microscopique
Comparaison micro / macroscopique
0 2 4 6 8 10 12 14 16 18 20-5
0
5
10
15
20
25
temps [s]
z(t)
[m]
comparaison sous la loupe lors de l‘impact
3.3 3.4 3.5 3.6 3.7 3.8 3.9 4 4.1 4.2
-1
0
1
2
3
4
5
temps [s]
z(t)
[m]
macroscopique
microscopique
Moralité
Le modèle microscopique peut être plus précis, mais il est aussi plus complexe, et nécessite la connaissance de plusieurs paramètres.
modèle macroscopique : basé sur la discontinuité de la vitesse
modèle microscopique : basé sur une discontinuité structurelle (contact)
Lequel des deux modèles choisir ?
C‘est en fonction des besoins et de l‘objectif de la simulation.
Les deux font apparaître des événements d‘état, qu‘il faudradétecter en utilisant un algorithme à pas variable
Nécessité de bien choisir les paramètres du solver
Nécessité de bien choisir les paramètres du solver
Simulink utilise par défaut le solver «ode45» avec pas variable et avec des valeurs «auto» pour le pas initial, pas minimal, et pas maximal.La tolérance relative est par défaut à 1.0e-3.
Méfiez vous de cette configuration !Les résultats peuvent être complètement faux.
L’utilisateur doit impérativement choisir les paramètres du solver en fonction du problème.
L‘utilisateur doit donc connaître au moins l‘ordre de grandeur des constantes de temps du système en question.
L‘utilisateur doit documenter les paramètres du solver.
Exemple où « auto » et pas variable plante
0.1 Hz 1 Hzdans 100 secondes
Exemple où « auto » et pas variable plante
0 10 20 30 40 50 60 70 80 90 100-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
temps [s]
Sign
al d
e so
rtie
pas variable, "auto"
avec ajustage approprié des paramètres ...
0 10 20 30 40 50 60 70 80 90 100-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
temps [s]
sign
al d
e so
rtie
pas initial = 1, max step = 1, relative tolerance = 1.0e-6
adaptation automatique du pas d‘intégration
0 10 20 30 40 50 60 70 80 90 1000
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0.4
temps [s]
pas
d'in
téra
gtio
n [s
]~1 / fexc
pas d'intégration
Balle bondissante : point de vue macroscopiquecontact = durée infinitésimale Δt→ 0 impact = discontinuité
le vecteur vitesse v(t) change instantanément lors de l‘impactforce de contact = DIRAC !! impossible à simuler !!solution : recharger la condition initiale de la vitesse
au cours de la simulation lors du passage par zéro de z(t)
Comparaison des résultats de simulation
0 2 4 6 8 10 12 14 16 18 200
5
10
15
20
25
temps [s]
haut
eur Z
[m]Bouncing Ball
pas variable avec détection d'événement
pas fixe grossier (0.2)
précis !
imprécis
Le pas d‘intégration chute lors de l‘événement
0 500 1000 1500 2000 25000
0.002
0.004
0.006
0.008
0.01
0.012
indice
pas
d'in
tégr
atio
n [s
]diff(tsim)
Balle bondissante : point de vue microscopique
contact = durée finie déformation locale de la balle
le vecteur vitesse v(t) change progressivement lors de l‘impact
force de contact = définie, calculable
sol indéformable
m
m⋅g
Point de vue microscopique
Deux équation différentielles pour deux régimes
m
m⋅g
phase de vol
m
discontinuité structurellelors de l‘impact
phase de contact
Point de vue microscopique
Comparaison micro / macroscopique
0 2 4 6 8 10 12 14 16 18 20-5
0
5
10
15
20
25
temps [s]
z(t)
[m]
comparaison au ralenti lors de l‘impact
3.3 3.4 3.5 3.6 3.7 3.8 3.9 4 4.1 4.2
-1
0
1
2
3
4
5
temps [s]
z(t)
[m]
macroscopique
microscopique
Moralité
Le modèle microscopique peut être plus précis, mais il est aussi plus complexe, et nécessite la connaissance de plusieurs paramètres.
modèle macroscopique : basé sur la discontinuité de la vitesse
modèle microscopique : basé sur une discontinuité structurelle (contact)
Lequel des deux modèles choisir ?
C‘est en fonction des besoins et de l‘objectif de la simulation.
Les deux font apparaître des événements d‘état, qu‘il faudradétecter en utilisant un algorithme à pas variable
Nécessité de bien choisir les paramètres du solver
Simulink utilise par défaut le solver «ode45» avec pas variable et avec des valeurs «auto» pour le pas initial, pas minimal, et pas maximal.La tolérance relative est par défaut à 1.0e-3.
Méfiez vous de cette configuration !Les résultats peuvent être complètement faux.
L’utilisateur doit impérativement choisir les paramètres du solver en fonction du problème.
L‘utilisateur doit donc connaître au moins l‘ordre de grandeur des constantes de temps du système en question.
Exemple où « auto » et « pas variable » plante
0.1 Hz 1 Hzdans 100 secondes
Exemple où « auto » et pas variable plante
0 10 20 30 40 50 60 70 80 90 100-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
temps [s]
Sign
al d
e so
rtie
pas variable, "auto"
avec ajustage approprié des paramètres ...
0 10 20 30 40 50 60 70 80 90 100-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
temps [s]
sign
al d
e so
rtie
pas initial = 1, max step = 1, relative tolerance = 1.0e-6
adaptation automatique du pas d‘intégration
0 10 20 30 40 50 60 70 80 90 1000
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0.4
temps [s]
pas
d'in
téra
gtio
n [s
]~1 / fexc
pas d'intégration
Simulation de systèmes numériquescertains blocs permettent de spécifier une période d‘échantillonnage,p.ex. le bloc « gain »
Exempleen Simulink, les convertisseurs A/D et D/A n‘apparaissent pas forcément.
Attention : l‘apparence du plot ne met pas en évidence les escaliers !!
0 0.001 0.002 0.003 0.004 0.005 0.006 0.007 0.008 0.009 0.01
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
Par défaut, la commande « plot » relie les points par des droites.
Affichage de signaux discrets
0 1 2 3 4 5 6 7-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
bleu : commande « plot »rouge : commande « stairs »
données x, y identiques
Effets de quantification de l‘amplitude
La résolution donnée d‘un convertisseur A/D ou D/A est liée au nombrede bits (typ. 10-12 bits pour les applications industrielles).
La bibliothèque « Discontinuities » comporte un bloc de quantification,
mais souvent on modélise la quantification par un bruit (signal aléatoiresuperposé au signal utile).
systèmes linéaires temps continu / temps discret
Bibliothèque « Discrete »
Conseils pratiques
• Ne jamais disperser les valeurs numériques des paramètresdans les différents blocs
• Utiliser des symboles, définis par le biais d‘un fichier .m
• Mettre tous les éléments numériques qui tournent à la même fréquenced‘échantillonnage dans un sous-bloc.
• Mettre « Sample time = −1 » (inherited)La période d‘échantillonnage est « hérité depuis le bloc parent »
Colorier les signaux et les blocs numériques
Exemple : régulation en cascade à plusieuresfréquences d‘échantillonnage (multirate systems)
Ic tension
régulateur numérique de courant
e Ic
régulateur numériquede positioncomparateur1
comparateur
tensionpositioncourant
Système à régleranalogique
PulseGenerator
temps continu
discret (h1)discret (h2)
Systèmes mixtes temps continu / temps discret
Les instants d‘échantillonnages correspondent à des événementstemporels.
Les pas du solver doivent tomber pile poil sur les instantsd‘échantillonnage. Pas variable souvent déconseillé (overhead troplourd).
Solvers pour systèmes hybrides
Contrairement aux systèmes en temps-continu, les systèmes discretspeuvent être calculés directement (p.ex. par résolution récursive d‘uneéquation aux différences).
Pour les systèmes hybrides (p.ex. syst. à régler en temps continu, régulateur en temps discret), on a souvent avantage de prendre unsolveur à pas fixe pour la partie temps-continue. Comme la périoded‘échantillonnage est normalement beaucoup plus courte que les constantes de temps du système à régler, il est judicieux de choisir le pasd‘intégration égal à la période d‘échantillonnage, ou bien à 1/N fois la période d‘échantillonnage.
Boucles algébriques
Une boucle algébrique apparaît, lorsqu‘on met en contre-réaction
des blocs à « comportement statique ».
Exemple :
boucle
blocs statiques
Ordonnancement automatique pour la simulation de blocs interconnectésAvant de lancer une simulation, SIMULINK fait automatiquement unordonnancement des blocs, qui déterminera l‘ordre dans le calcul de simulation se fera.
Le signal d‘entrée à l‘instant t = t1 doit être connu, afin de pouvoircalculer son état et son signal de sortie pour l‘instant t = t1.
Exemples :
• mise en serie de blocs avec un signal d‘entrée connu
• mise en contre-réaction avec un régulateur proportionnel et un système à régler à comportement passe-bas.
Boucles algébriques
Une boucle algébrique fait apparaître une équation implicite, que le solver doit résoudre à chaque pas d‘intégration.
Exemple :
))()(sin(5.0)( tytwty −⋅=
résoudre par rapport à y pas de solution analytique
Equation implicite
0 1 2 3 4 5 6-0.5
0
0.5
1
1.5
2
2.5
3point d'intersection
0.5 sin(1-y)
y
Forme cachée d‘une boucle algébrique
pas de boucle algébrique
boucle algébrique !
Boucles algébriques
Simulink émet un «warning » lorsqu‘il rencontre une boucle algébrique
Résoudre une boucle algébrique est calcul lourd pour le solver, & possibilités d‘ambiguités.
Simulink peut résoudre les boucles algébriques, mais c‘est mieuxsi l‘utilisateur peut les faire disparaître.
forme générale d‘une équation implicite: 0))(( =tyf
Autres fonctionnalités de Simulink
• Tables lookup
• Calcul de points d‘équilibre (points de fonctionnement) de systèmesnonlinéaires. Commande : trim
• Linéarisation de systèmes nonlinéaires autour d‘un point de fonctionnement.Sys_LTI = linmod(‘sys‘, x, u)
génère un objet LTI à partir d‘un modèle Simulink
Tables lookup
Interpolation / Extrapolation linéaire de points mesurés
blocs statiques nonlinéaires
Linéarisation : exemple
Trouver le point de fonctionnement et un modèle linéarisé pour u=0.5
Utilité d‘un modèle linéarisé
1. Il y a beaucoup d‘outils d‘analyse et de synthèse pour les systèmeslinéaires !
2. Pour pouvoir appliquer les méthodes de synthèse classiques de régulateurs (méthode de Bode, lieu des pôles, commande sisotool)
La simulation sert à valider le comportement du système nonlinéaire
Commande trim
Le point de fonctionnement est :
0
)30 (5236.0
=
°==
ϕ
ϕ
Commande linmod
Fonctions S
)()(
)()(
122122act22
212212111111
xxdxxkFxm
xxdxxkxdxkxm
−−−−=
−−−−−−=
∫ ∫1x1x1x
∫ ∫2x
2x2x
1
1m
1d
−
1k
−
2
1m
fact
+++
−
−+
2k
2x
−
−
+2d
2x
Un schéma bloc n‘est pasforcément plus parlantqu‘une équation diff ...
Autres fonctionnalités de Simulink
• Tables lookup
• Calcul de points d‘équilibre (points de fonctionnement) de systèmesnonlinéaires. Commande : trim
• Linéarisation de systèmes nonlinéaires autour d‘un point de fonctionnement.Sys_LTI = linmod(‘sys‘, x, u)
génère un objet LTI à partir d‘un modèle Simulink
Tables lookup
Interpolation / Extrapolation linéaire de points mesurés
blocs statiques nonlinéaires
Utilité d‘un modèle linéarisé
1. Il y a beaucoup d‘outils d‘analyse et de synthèse pour les systèmeslinéaires !
2. Pour pouvoir appliquer les méthodes de synthèse classiques de régulateurs (méthode de Bode, lieu des pôles, commande sisotool)
La simulation sert à valider le comportement du système nonlinéaire
Linéarisation : exemple pendule
Trouver le point de fonctionnement et un modèle linéarisé pour u=0.5
Commande trim
Le point de fonctionnement est :
0
)30 (5236.0
=
°==
ϕ
ϕ
Commande linmod
Fonctions S
)()(
)()(
122122act22
212212111111
xxdxxkFxm
xxdxxkxdxkxm
−−−−=
−−−−−−=
∫ ∫1x1x1x
∫ ∫2x
2x2x
1
1m
1d
−
1k
−
2
1m
fact
+++
−
−+
2k
2x
−
−
+2d
2x
Un schéma bloc n‘est pasforcément plus parlantqu‘une équation diff ...
simulation servoampli & moteur DCeffets de la saturation (tension d‘alimentation limitée)
Prototypage rapide / HIL (hardware in the loop)
• le prototypage rapide permet de tester / simuler le comportementd‘un système (p.ex. régulateur), puis de générer automatiquement du code pour une cible temps réel à partir d‘un schéma bloc.
• HIL (hardware in the loop) permet de tester un module matériel(p.ex. système ABS d‘une voiture) dans un environnement simulé en temps réel.
HIL
HIL : bancs de test pour modules
DUT = Device Under Test
Perspective sur le rôle de la simulation, évolutions futures
• La maîtrise d‘une technologie nécessite d‘être capable de la simuler
• Devient de plus en plus important dans le processus de développementde produits
• Intégration étroite avec les outils CAO (p.ex. SolidWorks, Protel, ...)
• Visualisation puissante (p.ex. réalité virtuelle)
• génération automatique de code (prototypage rapide)