Matlab : TD 5 1 Exemple : système masse ressort amortisseur

Transcription

Matlab : TD 5 1 Exemple : système masse ressort amortisseur
IENAC-T11 Matlab
1
Matlab : TD 5
Objectifs
: Introduction à Simulink.
Simulink est un environnement graphique de programmation associé à Matlab. Il permet la
représentation et la simulation de systèmes sous forme de schémas blocs, ce qui le rend populaire
auprès des automaticiens non programmeurs.
1
Exemple : système masse ressort amortisseur
Représentation de l'équation diérentielle
Dans cet exemple, nous allons modéliser dans Simulink le chariot représenté sur le schéma
suivant.
La mise en oeuvre de second principe de la dynamique devrait vous ammener à l'équation
diérentielle suivante :
ẍ =
Ouvrir la fenêtre Simulink ( icône
F
b
k
−
.ẋ −
.x
M
M
M
(1)
dans Matlab )
Cette fenêtre comporte une barre de menus ainsi qu'un ensemble de boutons représentants
les librairies disponibles.
Créez un nouveau modèle Simulink (menu File/New/Model ).
L'équation se présente sous la forme d'une somme de 3 termes. Ouvrez la librairie
( en double cliquant )et glissez-déposez le symbole
Add
Math operations
( somme ) dans votre modèle.
Par défaut, l'élément somme possède deux entrées. Nous en avons besoin de trois. Éditez le symbole somme en double cliquant et ajoutez un '+' supplémentaire dans le case
list of signs.
IENAC-T11 Matlab
2
L'entré de notre système est la force F. Nous allons dans un premier temps la représenter
Constant de la librairie Sources. Ajoutez
Math operations pour représenter la multiplication par
par une constante. Ajoutez à votre modèle le bloc
aussi un bloc
1/M .
Gain
de la librairie
Éditez le bloc
Gain
pour remplacer la valeur par défaut 1 par 1/M. Connectez les
diérents blocs. Votre modèle doit maintenant ressembler à la gure suivante.
bloc
Gain
Integrator
( dans la librairie
pour la multiplication par
b
M.
b
M .ẋ.
ẋ peut être obtenu à partir de ẍ en utilisant un
Continuous ). Comme précédemment, utilisez un bloc
Le deuxième élément de la somme est
Ajoutez maintenant le troisième élément de la somme (x) en utilisant le même principe.
Nous allons utiliser un
Scope
( librairie
Sinks
) pour visualiser la sortie de notre modèle.
IENAC-T11 Matlab
3
Avant de pouvoir simuler notre modèle, il nous reste encore à dénir les constantes symboliques que nous avons utilisées (
M, b
et
k
constantes sont bien dénies dans
.m)
). Créez un chier Matlab (
run('mon_fichier.m').
l'environnement Matlab ( workspace ).
ces constantes et exécutez le avec la commande
dénissant
Vériez que les
Nous allons maintenant pouvoir simuler notre modèle. Double-cliquez sur l'icône du scope
pour faire aparaitre la fenêtre associée. Le menu
Simulation/Configuration parameters
permet d'accéder à une boite de dialogue réglant les paramètres de la simulation ( durée,
algorithme d'intégration etc...).
Dans un premier temps, conservez les valeurs par défaut. Lancez la simulation à partir du
menu
Simulation/Start.
Autoscale du
save current axis settings permet de mémoriser
Lorsque la simulation est nie, utilisez le bouton
scope pour ajuster l'échelle. Le bouton
ces réglages pour les simulations suivantes.
IENAC-T11 Matlab
4
Création d'un sous-système
De la même façon qu'en programmation classique, on crée des fonctions pour faciliter la lisibilité
et la réutilisation, il est possible dans Simulink de créer des sous systèmes jouant le même rôle.
Avant de modéliser un correcteur par retour d'état, nous allons transformer notre chariot en sous
système.
In et Out ( librairies
Sources ). Sélectionnez l'ensemble des éléments de votre modèle puis choisissez
create subsystem disponible dans le menu associé au clic droit.
Remplacez le scope et la constante utilisée pour la force par des blocs
Sinks
et
l'option
Utilisation du modèle Simulink depuis Matlab
Il est parfois souhaitable d'utiliser un modèle Simulink depuis Matlab, par exemple pour pouvoir générer une entrée sophistiquée ou pour eectuer des traitements sur les sorties. La fonction
sim()
de Matlab permet cette opération.
Essayez cette fonction dans sa version la plus simple
[t X Y] = sim('chariot');
plot(t,Y);
La réponse plate obtenue vient du fait que nous n'avons pas fourni d'entrée au modèle et
que Matlab a en conséquence pris 0 par défaut.
An de fournir une entrée non nulle au modèle, nous allons devoir utiliser la version complète
de la fonction
sim().
Le script suivant génère une entrée constante de valeur 1 ainsi qu'un vecteur temps. Il utilise
ensuite la version complète de la fonction
clear();
sim.
IENAC-T11 Matlab
5
M = 1;
b = 10;
k = 20;
span = 10.;
step = 0.01;
options = simget('chariot');
t = 0:step:span;
u = ones(span/step+1, 1);
[t_out X Y] = sim('chariot', span, options, [t' u]);
plot(t_out,Y);
2
Exercice : Adjonction du correcteur par retour d'état et
simulation de la réponse à un échelon.
Réalisez dans Simulink le modèle d'un correcteur par retour d'état. Le transformer en sous
système.
Depuis Matlab, simulez la réponse du système bouclé à un échelon de commande d'amplitude
un mètre. Tracez cette réponse. Tracez aussi la commande issue du PID.
Modélisez les imperfections du capteur de position en utilisant un bruit aléatoire gaussien
de variance 5cm ( librairie
sources)
ainsi qu'un délai de 250ms ( librairie
Continuous
).
Observer la dégradation des performance de votre correcteur.
Modélisez votre actionneur en ajoutant un saturation entre la sortie du correcteur et l'entrée
du chariot. Observez l'eet sur les performances du régulateur.
3
Pour aller plus loin
La programmation graphique, aussi attractive puisse t'elle sembler, se révèle souvent inadap-
tée au traitement de certains problèmes complexes. Le mécanisme de S-function permet d'intégrer
du code matlab dans une simulation simulink. Ce mécanisme est trop complexe pour être décrit
ici.
www.mathworks.com/help/pdf_doc/simulink/sfunctions.pdf contient la dowww.chem.mtu.edu/
~tbco/cm416/MatlabTutorialPart5.pdf contient le sujet d'une séance de travaux pratiques metL'url suivante
cumentation de référence sous forme d'un document de 600 pages. L'url
tant en oeuvre des S-functions.

Documents pareils

systeme de levitation magnetique

systeme de levitation magnetique qui, en liaison avec la boîte d'outils FEEDBACK, permet de paramétrer et de constituer le système. Une fois les paramètres du contrôleur numérique déterminés, le contrôleur étudié peut être utilisé...

Plus en détail