1) Comprendre les notions fondamentales de la simulation ... · Nécessite une discrétisation de...

Preview:

Citation preview

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)