modélisation multi-paradigmelinaye/be.pdf · (vol1 ≥ lim1) vol2 ≤ lim2 vol1 ≤ lim1 vol 1 •...
TRANSCRIPT
-
Modélisation « Multi-Paradigme(s) »
Modélisation Multi-Paradigme
Lina Ye [email protected]
-
Bureau d’Etudes
Modélisation Multi-Paradigme 2
1. Modèle mixte avec Simulink / Stateflow (TheMathWorks) : climatisation d’une voiture
2. Automate hybride avec Simulink / Stateflow (TheMathWorks) : remplissage de réservoirs
3. Lancer MATLAB R2016a
-
Livraison
Modélisation Multi-Paradigme 3
} Sauvegarder sous forme d’un fichier mdl
} Code de livraison: EPSN
} Site de livraison: wdi.supelec.fr/Livraison/
-
Modèle mixte
Modélisation Multi-Paradigme 4
-
Climatisation d’une voiture
Modélisation Multi-Paradigme 5
} On considère le système de climatisation avec air soufflé d’une voiture ☛ objectif = concevoir le contrôleur qui pilote la soufflerie
} Fonctionnement : } Génération d'un flux d'air froid à température constante par le climatiseur,
accélération du refroidissement de l'habitacle obtenue par convection
} Deux modes de soufflerie (simple et accéléré) en fonction de : } La température courante de l’habitacle (influencée par la température extérieure)
} Une température de consigne donnée par l'utilisateur
-
Evidemment, on ne veut pas ça !
Modélisation Multi-Paradigme 6
-
Méthodologie
Modélisation Multi-Paradigme 7
1. Modélisation de l’habitacle + analyse des résultats 2. Structuration en modèle mixte et modélisation du contrôleur 3. Connexion entre le contrôleur et l'habitacle 4. Simulation du modèle complet et analyse des résultats
-
Comportement de l'habitacle
Modélisation Multi-Paradigme 8
} Hypothèses : } Text : température extérieure, constante } K : coefficient de transfert extérieur/intérieur, constant } Tclim : température de l'air froid généré par le climatiseur, constante } S : coefficient de refroidissement par ventilation, constant dans un premier temps
Text Tint(t)
Tclim
K
S
dTintdt
= K × Text −Tint (t)( ) + S × Tc lim −Tint (t)( )Influence de l'extérieur Influence de la climatisation
Tint : température à l'intérieur de l'habitacle,
variable
-
Création du modèle
Modélisation Multi-Paradigme 9
1. Créer un nouveau modèle Simulink 2. Ajouter un bloc de sous-système avec :
} Une entrée S : coefficient de refroidissement par ventilation (double) } Une sortie Tint : température à l'intérieur de l'habitacle (double)
3. Ajouter un bloc constante qui produira le signal S } Dans un premier temps, on cherche à étudier les variations de la températures à
l'intérieur de l'habitacle Tint lorsqu'il n'y a pas de climatisation, soit S = 0
4. Ajouter un scope pour observer le signal Tint en fonction du temps
5. Lancer la simulation et observer le résultat } Quel est le comportement par défaut d'un sous-système avec Simulink ?
Habitacle S Tint
-
Modélisation de l'habitacle
Modélisation Multi-Paradigme 10
1. Modéliser le comportement thermique de l’habitacle à partir de l’équation différentielle simplifiée suivante :
} Valeurs numériques des paramètres : ‣ S = 0 (on cherche d'abord à étudier les variations de la températures à l'intérieur de l'habitacle Tint
lorsqu'il n'y a pas de climatisation) ‣ Text = 30° ‣ Tclim = 15° ‣ K = 0.2 ‣ Température initiale dans l'habitacle = 20°
2. Simuler le comportement ainsi modélisé et observer les variations de la température de l’habitacle en fonction du temps } Prendre un horizon de simulation plus long que celui par défaut (par ex. : 50) } Essayer ensuite différentes valeurs pour les paramètres du modèle
dTintdt
= K × Text −Tint (t)( ) + S × Tc lim −Tint (t)( )
-
Comportement du contrôleur
Modélisation Multi-Paradigme 11
} L'utilisateur peut : } Activer ou désactiver la soufflerie } Définir une température de consigne Tcons
} Le contrôleur tient compte des informations utilisateur et de la température courante dans l'habitacle afin de piloter la soufflerie
} La soufflerie peut être dans trois modes M possibles : } Si Tint inférieure à Tcons ou si l'utilisateur a désactivé la soufflerie
☛ soufflerie désactivée : M = 0 } Si Tint supérieure à Tcons et que l'utilisateur a activé la soufflerie :
☛ soufflerie en mode simple : M = 1 } Si Tint très supérieure à Tcons et que l'utilisateur a activé la soufflerie :
☛ soufflerie en mode accéléré : M = 2
-
Structuration en modèle mixte
Modélisation Multi-Paradigme 12
1. Ajouter un bloc Stateflow (« chart ») pour représenter le contrôleur avec :
} Trois entrées : } I : état de l’interrupteur de la soufflerie (booléen) } Tcons : température de consigne (double) } Tint : température à l'intérieur de l’habitacle (double)
} Une sortie : } M : mode de fonctionnement de la soufflerie
2. Modéliser le comportement du contrôleur par un automate Stateflow } Dans un premier temps, commencer par faire uniquement les modes off et simple } Vous pourrez ajouter le mode accéléré plus tard (après avoir testé votre modèle)
Contrôleur I
M Tcons Tint
-
Connexion contrôleur – habitacle
Modélisation Multi-Paradigme 13
1. Pour pouvoir connecter les deux blocs, ajoutez les éléments nécessaires à la conversion entre le mode de soufflerie M fourni par le contrôleur et le coefficient S de refroidissement par convection utilisé dans l'habitacle } Soufflerie désactivée : M = 0 ➜ S = 0 } Soufflerie en mode simple : M = 1 ➜ S = 0.6 } Soufflerie en mode accéléré : M = 2 ➜ S = 0.8
2. Simuler le modèle global obtenu
Habitacle S Tint
Contrôleur I M Tcons
Tint Conversion
Indice : vous pouvez utiliser un « multiport switch » (attention à la configuration du numéro des ports)
-
Analyse des résultats
Modélisation Multi-Paradigme 14
} Avec quelle précision le contrôleur détecte-t-il les franchissements de seuil de la température ? } Comment améliorer ce comportement ?
-
Automate hybride
Modélisation Multi-Paradigme 15
-
Remplissage de réservoirs
Modélisation Multi-Paradigme 16
} On considère un système de remplissage alterné pour deux réservoirs qui doit maintenir le volume d’eau des deux réservoirs à un niveau constant
} Hypothèses : } Le robinet de remplissage a
un débit constant
} Les deux robinets de sortie des réservoirs ont des débits constants
} A chaque instant, le robinet de remplissage remplit exclusivement l’un ou l’autre des deux réservoirs
} Le passage d’un réservoir à un autre par le robinet de remplissage est instantané
deb1 deb2 R2 R1
flot
vol1 vol2
-
Automate hybride du système
Modélisation Multi-Paradigme 17
} Objectif = modéliser le comportement du système avec un automate hybride et simuler l’évolution dans le temps du volume des deux réservoirs
vol1
•
= flot − deb1
vol2
•
= −deb2
RemplitR1 (vol2 ≥ lim2)
RemplitR2 (vol1 ≥ lim1)
vol2 ≤ lim2
vol1 ≤ lim1
vol1
•
= −deb1
vol2
•
= flot − deb2
vol1 > lim1 & vol2 > lim2
} Exemples de valeurs : ‣ flot = 130 ‣ deb1 = 75 ‣ deb2 = 60 ‣ lim1 = lim2 = 500 ‣ vol1 initial = vol2 initial = 1000
-
Indications
Modélisation Multi-Paradigme 18
} Commencer par créer un modèle Simulink et y insérer un sous-modèle Stateflow qui contiendra l'automate
} Pour les automates hybrides avec Stateflow, la configuration du modèle est particulièrement importante : } Dans le « model explorer », sélectionner le « chart » et choisir « update method
= continuous » } Dans le « model explorer », créer deux signaux locaux vol1 et vol2 avec
« update method = continuous » ☛ cela créée automatiquement les dérivées vol1_dot et vol2_dot
} Dans le « model explorer », créer deux sorties simulink vol1_out et vol2_ out qui permettent de visualiser vol1 et vol2
} Il est possible de s'inspirer du modèle de la balle rebondissante : } Dans la « command window » de Matlab, taper « sf_bounce »
-
Exécution
Modélisation Multi-Paradigme 19
1. Simuler le modèle obtenu } Prendre un horizon de simulation très grand, par ex. : 200 } Essayer ensuite différentes valeurs pour les paramètres du modèle
2. Que peut-on observer sur le comportement du système ? Comment pourrait-on corriger ce comportement ?
3. Quelles sont les limitations de Stateflow par rapport au modèle formel des automates hybrides ?
-
Indications pour l'utilisation de Stateflow
Modélisation Multi-Paradigme 20
-
Edition d'un automate
Modélisation Multi-Paradigme 21
} Etats : } Pour créer un état : dans la palette, cliquer sur le rectangle à bords ronds puis cliquer à
l'endroit où on veut placer l'état, puis là où le curseur clignote taper le nom de l'état } Pour mettre une action exécutée à l'entrée dans l'état : après le nom de l'état, appuyer
sur entrée puis taper "entry:" suivi de l'action (idem avec "exit" et "during") NE PAS OUBLIER de mettre des ";" à la fin de chaque ligne d'action
} Transitions : } Pour créer une transition : survoler la bordure de l'état avec la souris, lorsque le
curseur + apparaît, cliquer et maintenir en déplaçant le curseur jusqu'à l'état cible } Pour mettre une garde sur une transition : cliquer sur la transition, taper l'expression
de la garde entre crochets (ex : [x > 5]) ‣ Comparateurs : >, >=,
-
Configuration de l'exécution
Modélisation Multi-Paradigme 22
} Automate "triggeré" : } Dans le model explorer, ajouter une donnée de type "Stateflow Event", mettre le
scope à "input from simulink" et régler le "trigger" (front montant, descendant ou les deux)
} Il est alors possible de connecter un "pulse generator" sur cette entrée pour forcer le déclenchement de l'automate (attention de bien régler période et largeur de bande du pulse)