22
Modélisation « Multi-Paradigme(s) » Modélisation Multi-Paradigme Lina Ye [email protected]

Modélisation Multi-Paradigmelinaye/BE.pdf · (vol1 ≥ lim1) vol2 ≤ lim2 vol1 ≤ lim1 vol 1 • =−deb vol 2 • =ft−deb vol1 > lim1 & vol2 > lim2 ! Exemples de valeurs : ‣

  • 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)