Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
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)