Vous êtes sur la page 1sur 4

TD Initiation à Simulink, Identification

UP2, axes Instrum. et PSI – 2/11/2010, 1h30

Simulink est un outil, intégré dans Matlab, de simulation graphique de systèmes dynamiques continus ou discrets, linéaires ou non linéaires.

1 : Initiation à Simulink, Simulation de la réponse à un échelon d’action unitaire:

Réaliser et tester un modèle de simulation de la réponse d’un système à un échelon unitaire pour un système d’ordre 1 + retard (retard 20 s, constante de temps : 6 min., gain statique 50)

ACTION 1 Système à identifier
ACTION
1
Système à
identifier
MESURE
MESURE
statique 50 ) ACTION 1 Système à identifier MESURE Utilisation de Simulink retard): Lancer Matlab, puis

Utilisation de Simulink retard):

Lancer Matlab, puis dans la fenêtre principale de Matlab, taper « simulink » puis touche Entrée (ou bien cliquer sur

+

(exemple de

» puis touche Entrée (ou bien cliquer sur + (exemple de ). l’ordre 1 Cette fenêtre

).

l’ordre 1

Cette fenêtre d’exploration apparaît. Cliquer sur pour créer un nouveau projet (que vous devrez sauvegarder

Cette fenêtre d’exploration apparaît. Cliquer sur pour créer un nouveau projet (que vous devrez sauvegarder fréquemment dans le répertoire de votre choix).

fréquemment dans le répertoire de votre choix). Nous allons créer un système d’ordre 1 avec retard

Nous allons créer un système d’ordre 1 avec retard et visualiser sa réponse à une entrée échelon.

1

Dans l’explorateur « Simulink library », développer simulink/ continuous

glisser l’objet

», développer simulink/ continuous glisser l’objet vers la fenêtre projet. et faire Vous obtenez alors :

vers la fenêtre projet.

et faire

Vous obtenez alors :

vers la fenêtre projet. et faire Vous obtenez alors : qui est par défaut la fonction

qui est par défaut la fonction de transfert d’un ordre 1

sans retard (cf paragraphe suivant). Afin de modifier ses valeurs, faire un double clic sur la

fonction de transfert :

Avec cet opérateur, vous ne pouvez saisir que des valeurs numériques et donc des fonctions de transfert rationnel d’ordre quelconque, il est donc limité aux systèmes linéaires. Pour les autres, et notamment le retard, il existe un opérateur spécifique (voir + loin :

transport delay).

De la même façon, faire glisser les objets simulink/source/step (générateur de signal échelon) et simulink/sinks/scope (outil de visualisation d’un signal) afin d’obtenir :

(outil de visualisation d’un signal) afin d’obtenir : Relier les connecteurs entre « step » et

Relier les connecteurs entre « step » et « Transfer Fcn » et entre « Transfer Fcn » et « Scope » (cliquer-glisser). Double-cliquer sur scope afin d’ouvrir sa fenêtre.

Sauvegardez éventuellement votre travail (plantages fréquents !) puis lancez le

votre travail (plantages fréquents !) puis lancez le simulateur (clic sur ). Ajuster alors éventuellement la

simulateur (clic sur ). Ajuster alors éventuellement la durée de la simulation (menu Simulation / parameters) puis recommencer.

Autres objets utilisés (et configurables après un double-clic) :

(simulink/continuous/transport delay ) Opérateur retard pur . simulink/continuous/transport delay) Opérateur retard pur.

(simulink/sources/band limited white noise ) Générateur de bruit gaussien, permet de simuler le bruit de simulink/sources/band limited white noise) Générateur de bruit gaussien, permet de simuler le bruit de mesure pour plus de réalisme, tester différentes valeurs.

( simulink/math/sum ) Somme de 2 signaux, il est possible d’avoir plus d’entrées, en somme

(simulink/math/sum) Somme de 2 signaux, il est possible d’avoir plus d’entrées, en somme ou en différence.

Remarques importantes :

Le menu « Simulation / Configuration parameters / Solver » permet de régler (entre autres) la durée de la simulation (paramètre « Solver / stop time ») et donc de l’adapter au processus étudié.

Afin de pouvoir afficher la totalité de la simulation, il peut être nécessaire de modifier le réglage suivant :

- Fenêtre “scope”: bouton “parameters / data history : éventuellement décocher “limit data point to last…” si le graphe refuse d’afficher les premiers points.

Modifier enfin les valeurs de la fonction de transfert afin de tester la réponse à un échelon d’action d’un ordre 2 non oscillant puis oscillant.

Remarque :

exportation

des

résultats

de

Simulink

(vers

Excel

par

exemple) :

-

Sous

simulink,

le

signal

peut

être

envoyé

vers

Matlab

grâce

à

simulink, le signal peut être envoyé vers Matlab grâce à l’objet . Il est nécessaire que

l’objet . Il est nécessaire que cet objet soit paramétré de la façon suivante : Variable Name =tempe (ou tout autre nom), Save format = Array.

- Après avoir fait « tourner » le simulateur, aller dans la fenêtre principale de Matlab et taper successivement :

o

>> data=[tout,tempe];

o

>> save data.xls –ascii –tabs data

Le fichier ASCII data.xls, sauvé dans le répertoire courant de Matlab, contient 2 colonnes, une pour le temps t et une pour y. Il peut être ouvert sous Excel.

Mais pour la suite, vous utiliserez des fichiers fournis inconnus …

-

2 :

carrés (solveur d’Excel).

Identification

par

méthode

des

moindres

L’identification consiste à déterminer le modèle de loi auquel obéit le système, et donc notamment à quantifier les paramètres de ce modèle, à partir d’une expérience qui est très souvent la réponse à un échelon unitaire.

Données : fichier « inconnu » de réponse à un échelon unitaire, format : 1 colonne temps + 1 colonne signal : sur \\nissel\work\enseignants\pbreuil\, fichier F1.xls ou F2.xls, le deuxième étant un peu plus délicat. Attention, il s’agit de fichiers ASCII dont le séparateur décimal est la virgule.

L’identification peut se faire grossièrement de façon graphique, Mais il est beaucoup plus efficace d’utiliser la méthode dite « de moindres carrés », ou « curve fitting », méthode pouvant être implantée sous Excel grâce au solveur:

Le temps t et le signal mesuré y étant situés dans 2 colonnes, créer une 3eme colonne de calcul du modèle en fonction du temps et des paramètres du modèle (par exemple G s , et pour un ordre 1 avec retard) saisis dans des cases. Ces paramètres sont alors à priori inconnus (l’objet de l’exercice est de les déterminer…), on saisira alors des ordres de grandeur grossièrement estimés (ex : retard=0, cte de temps = 1’, gain stat = 1).

Il est nécessaire de tracer sous Excel les 2 courbes « mesures » et « modèle », puisque l’évaluation initiale des ordres de grandeur se fait graphiquement.

Une 4 eme colonne contiendra les carrés des erreurs (différences entre la mesure et le modèle), enfin une case contiendra la somme de cette dernière colonne (somme des carrés des erreurs).

L’outil « solveur * » permettra alors de minimiser cette case (« moindres carrés ») en optimisant les n paramètres. Il est généralement nécessaire d’initialiser les n paramètres avec des valeurs dont les ordres de grandeur sont « corrects », faute de quoi l’algorithme d’optimisation du solveur ne pourra pas converger. Il peut être aussi utile de préciser des contraintes dans le solveur (exemple : retard positif).

Documents de cours et TDs :

http://www.emse.fr/~pbreuil/inst/regul.html

* Onglet « Données / analyse / solveur

Si 1ere utilisation, installation préalable nécessaire : Bouton « Office en haut à gauche, Options Excel en bas, Compléments, Gérer : Compléments Excel Atteindre, cocher « Complément Solver »