TP Asservissement
TP Asservissement
TP Asservissement
Plan du document :
Objectifs
1. Notions de base sur MATLAB
1.1. Présentation de l’environnement
1.2. Lancement de MATLAB-SIMULINK
1.3. Variables, espace de travail
1.4. Manipulation de données vectorielles
Construction de tableaux
Cas particulier des vecteurs régulièrement échantillonnés
1.5. Fonctions graphiques
1.6. Manipulation de fonctions de transfert
1.7. Résumé des principales commandes
2. Conception d’un modèle de simulation SIMULINK
2.1. Présentation de SIMULINK
2.2. Mise en équation du processus étudié
2.3. Constitution du modèle SIMULINK
2.4. Traitement des résultats de simulation : Scopes et WorkSpace
2.5. Structuration du fichier : regroupement et création de masques
3. Etude de la boucle de courant du moteur à courant continu
3.1. Structure de la commande
3.2. Correcteur proportionnel
4. Conclusion
Initiation MATLAB-SIMULINK 2
1. Notions de base sur MATLAB
1.1. Présentation de l’environnement
MATLAB est un environnement de calcul intégré qui allie le calcul numérique, les
graphiques avancés, la visualisation et un langage évolué de programmation. MATLAB est
utilisé aujourd'hui dans un grand nombre de domaines d'applications comme le Traitement du
Signal, le Traitement de l'Image, la conception de systèmes de contrôle, l'ingénierie financière
et la recherche médicale.
Chacune de ces Toolboxes, ayant été mise au point par des experts de la spécialité,
représente l'état de l'art du domaine correspondant couvrent des domaines variés : le
traitement du signal, l'automatique, les mathématiques appliquées, l'analyse de données, la
finance....
Attention : ne pas mettre de blanc dans les noms des répertoires. Eviter les noms trop longs,
c’est lourd à utiliser par la suite !!
Initiation MATLAB-SIMULINK 3
1.3. Variables, espace de travail
MATLAB permet de réaliser des calculs à partir de variables qui peuvent être scalaires ou
vectorielles. Le nom des variables doit respecter les règles suivantes :
31 caractères maximum
le 1° caractère est une lettre obligatoirement
MATLAB différencie les majuscules et les minuscules
Les variables sont sauvegardées dans l’espace de travail (‘Workspace’), elles sont
conservées tant qu’elles ne sont pas effacées explicitement par les commandes :
Construction de tableaux :
La gestion des données vectorielles est très performante sous MATLAB. Quelques petits
exercices peuvent aider à comprendre les mécanismes.
1
Pour rentrer le vecteur colonne , il faut écrire : A = [1;2]
2
Initiation MATLAB-SIMULINK 4
1 1 1
D = [C U] a pour résultat : D 2 3 5
0 0 4
plot(x1,y1,’s1’,x2,y2,’s2’, …)
x : tableau des abcisses
y : tableau des ordonnées
s : chaîne de caractères définissant :
la couleur,
le style de tracé
le type de marqueur
Symbole Couleur
y Yellow Symbole Marqueur
m Magenta + Plus
c Cyan o Cercle
r Red * Astérisque
g Green
b Blue
w White
k Black
Initiation MATLAB-SIMULINK 5
Les principales fonctions graphiques sont les suivantes
Exemple :
Il est possible de modifier les attributs d’un graphique en passant en mode édition
graphique en cliquant sur l’icône .
sélection de l’objet à modifier (courbe, axe)
bouton droit puis ‘properties’
Initiation MATLAB-SIMULINK 6
1.6. Manipulation de fonctions de transfert
La procédure de définition des fonctions de transfert est la suivante :
Le numérateur (num) et le dénominateur (den) sont déclarés comme deux vecteurs par
ordre décroissant des puissances de « s » (opérateur de Laplace).
On définit ensuite une fonction de transfert à partir de ces deux vecteurs en utilisant la
fonction ‘tf’.
Exemple :
num = [1 2]
den= [1 0.1 1] ;
f = tf(num,den)
s2
‘f’ correspond à la fonction de transfert :
s 0.1 s 1
2
Attention, avant d’afficher un de ces graphiques, il faut fermer les autres figures déjà
ouvertes (commande ‘close all’).
Remarque générale importante : Dans la plupart des cas, il existe plusieurs syntaxes pour
les fonctions Matlab de base. Il est donc toujours intéressant de taper ‘help nom de la
fonction’ de manière à connaître ces différentes possibilités ainsi que les autres
fonctions qui s’y rattachent.
Initiation MATLAB-SIMULINK 7
2. Conception d’un modèle de simulation SIMULINK
SIMULINK est un module particulier venant compléter le noyau MATLAB, et fournir une
interface graphique pour la modélisation de systèmes dynamiques sous forme de schémas-
blocs. Grâce aux nombreux blocs de base fournis, il est possible de créer des modèles sans
écrire une seule ligne de code.
L'architecture ouverte permet d'étendre l'environnement de simulation par :
la création de blocs personnalisés et de bibliothèques à partir du code MATLAB,
Fortran ou C ou bien de façon graphique ;
l'intégration de code Fortran ou C existant pour récupérer des modèles validés ;
la génération de code C à partir des modèles de simulation.
De même que MATLAB et ses Toolboxes, Simulink peut être complété de bibliothèques
de blocs spécialisés - les Blocksets, qui viennent s'ajouter à la bibliothèque de base.
Initiation MATLAB-SIMULINK 8
Grandeurs physiques du processus : i : courant d’induit
e : fem
c : couple électromagnétique
: vitesse
di
Partie électrique : l r i um e
dt
d
Partie mécanique : jt f c cs
dt
cki
Conversion électromécanique :
ek
Lancement de Simulink
Cliquer sur l’icône SIMULINK située sur la barre principale de MATLAB
Cliquer sur les différents modules de la bibliothèque afin d’en découvrir les différents
éléments.
4. Pour relier deux blocs, cliquer sur la sortie du premier bloc et faire glisser la souris
jusqu’à l’entrée du second bloc, puis relâcher la souris. On peut faire la même chose
en partant de l’entrée du second bloc.
5. Pour copier un bloc, cliquer avec le bouton droit de la souris sur le bloc à copier.
6. Ajouter des commentaires si nécessaire dans la figure en double-cliquant sur la zone
souhaitée.
Initiation MATLAB-SIMULINK 9
La figure suivante présente le modèle de simulation souhaité.
Lancement
de la simulation
Ouverture de
la bibliothèque
Scope
‘constant’
Transfer Fcn
Sum
Gain
Une fois que le modèle est constitué, sauvegarder le avec le nom de votre choix dans le
répertoire courant.
Fichier d’initialisation
Comme on peut le constater sur la figure précédente, il n’y a aucune valeur numérique.
Toute les variables utilisées sont en fait des variables MATLAB qui doivent être définies dans
l’espace de travail.
Pour ce faire, il est nécessaire dès la conception d’un fichier de simulation, de lister tous
les paramètres de la simulation et de les définir dans l’environnement MATLAB grâce à un
fichier d’initialisation.
Initiation MATLAB-SIMULINK 10
Saisir les paramètres suivants :
% partie mécanique
jt = 0.84e-3; % moment d’inertie équivalent ramené à
% l’arbre moteur
f = 0.001; % coefficient de frottements visqueux
% paramètres de simulation
Tmax = 500e-3;
Dt = 1e-4;
Quand le texte est saisi, sauvegarder le fichier (‘File’ puis ‘Save’) en lui donnant le nom
‘init’. L’extension « .m » est automatiquement ajoutée.
Revenir sous MATLAB, pour que les instructions du fichier soient prises en compte, il est
faut exécuter le programme en tapant : init.
Paramétrage de la simulation
Simulation Time :
Start Time : 0
Stop Time : Tmax
Solver Options
Type : Fixed-Step ode5
Fixed Step size : Dt
Lancement de la simulation
Initiation MATLAB-SIMULINK 11
2.4. Traitement des résultats de simulation : Scopes et
WorkSpace
Propriétés
Bouton droit :
Définition de
l’échelle en X
Bouton droit :
Définition de
l’échelle en Y
Stockage des information sous MATLAB :bouton ‘Properties’ puis ‘Data History’
Initiation MATLAB-SIMULINK 12
Nom du vecteur ‘MATLAB’
Save Data to workspace : vitesse pour stocker les informations
Pour simplifier, nous choisissons un format de stockage de type Matrix. Dans la première
colonne est stockée le temps courant de la simulation dans les colonnes suivantes, les
variables visualisées.
Bien souvent, il est inutile de stocker tous les points de simulation. En effet le traitement
ultérieure dans des fichiers texte est alourdi et la simulation ralentie. Il est possible de limiter
le nombre de points stockés. Pour cela, il faut cliquer sur le bouton ‘Properties’ du Scope puis
dans la fenêtre ‘General’ apparaît un champ ‘Sampling’.
Dans le cas présent, nous choisissons l’option ‘Décimation’, la valeur de l’incrément est
fixée à ‘inc’. Cette variable est fixée dans le fichier d’initialisation à 5.
Si l’on veut être sûr de ne pas dépasser une valeur limite, il est possible de valider dans le
Scope (‘Data history’ puis ‘Properties’) l’option : ‘Limit Rows to last’. On saisit alors le
nombre N de points maxi à stocker. Dans ces conditions, seuls les N derniers points seront
affichés sur le scope et sauvegardés. La procédure est identique avec les blocs ‘Workspace’.
Initiation MATLAB-SIMULINK 13
Dans le cas où l’on souhaite stocker sur une durée plus importante, il faut stocker moins de
points.
Il est possible d’exporter une figure MATLAB vers Word. Pour cela :
Remarque : La sélection des éléments doit être opérée en une seule fois. Il est donc
nécessaire de bien disposer les blocs à sélectionner au préalable.
Initiation MATLAB-SIMULINK 14
1 i
1
u 1
k 2
l.s+r c1
Partie Gain
Sous-système électrique
créé
k 2
omega
Gain1
C’est ce dernier fichier qui va servir de base pour la construction des modèles de
simulation suivants.
3.1. Structure de la commande
La figure 7 présente la structure de base de la boucle de courant. Nous n’avons représenté
du moteur que la partie qui nous intéresse pour l’asservissement du courant. Le système est du
Initiation MATLAB-SIMULINK 15
premier ordre, la force électromotrice (fem) représente une perturbation pour le réglage du
courant.
Partie ~
Partie
e e
commande opérative
i REF
um i
1
Correcteur
l.s+r
Compensation
de la perturbation
Sachant que la fem n’est pas mesurable, il est nécessaire de l’estimer à partir de la vitesse :
~
e~ k
Afin de distinguer la fem réelle de la fem estimée, nous notons cette dernière e~ . En toute
rigueur, il est impossible de connaître la valeur exacte de k, c’est pour cela que nous l’avons
~
noté k .
Définir dans le fichier d’initialisation les variables ki1 : gain du correcteur et k_est (pour
~
k ). Sauvegarder puis exécuter le fichier d’initialisation pour que les modifications soient
prises en compte. Le courant de référence est fixé à 1A.
Initiation MATLAB-SIMULINK 16
Figure 8 : Modèle de simulation de la boucle de courant
Questions :
4. Conclusion
Ce document n’a pas vocation à remplacer une documentation complète sur le logiciel. Il
est surtout conçu pour donner les informations principales pour démarrer dans cet
environnement et donne des éléments de base dans la démarche de conception d’un modèle de
simulation.
En tout état de cause, de nombreux éléments complémentaires sont disponibles dans les
fichiers d’aide du logiciel.
Initiation MATLAB-SIMULINK 17