Université Sultan Moulay Slimane
Faculté des Sciences et Techniques
Béni - Mellal Maroc
____________________________________________________________
____________________________________________________________
TRAVAUX PRATIQUES
AUTOMATIQUE
____________________________________________________________
Filière d’ingénieurs : Productique/Mécatronique
AU : 2024/2025 Pr. MOUDOUD
TP1 : Analyse des performances et correction des systèmes SLCIs
Objectif :
Le but de ce TP est d’analyser le comportement d’un système, et synthétiser un correcteur convenable
pour répondre performances désirées en termes de stabilité, précision, rapidité et robustesse. A travers
des simulations pertinentes, les performances du système seront ajustées afin de répondre à un cahier
des charges.
Activité I : Synthèse du PID en utilisant la méthode de Ziegler Nichols
On considère le système dont la fonction de transfert en boucle ouverte est :
1
𝐻𝐵𝑂 (𝑝) =
𝑝(1 + 𝑝)(5 + 𝑝)
𝜀(𝑝) 𝑆(𝑝)
𝐸(𝑝) 𝐶(𝑝) 𝐻𝐵𝑂 (𝑝)
+
−
Tâche 1 :
En utilisant Matlab/Simulink, construisez ce schéma bloc et visualisez la réponse indicielle 𝒔(𝒕) pour 𝐶(𝑝) = 1.
Exprimer la fonction de transfert en boucle fermée.
Tâche 2 :
Pour 𝐶(𝑝) = 𝐾, en tilisant le critère de Routh, calculer la valeur de 𝐾 = 𝐾𝑐 qui permet d’avoir la limite de
stabilité. Ensuite, pour cette valeur 𝐾𝑐 , en utilisant la méthode Zigler-Nichols, déterminez le correcteur PID pour
ce système. A travers des simulations pertinentes, mettez en œuvre l’effet de la correction sur les performances
du système en s’appuyant sur les points faibles de cette méthode.
Tâche 3 :
Proposez d’autre(s) méthode pour trouver les paramètres optimaux du PID. Validez votre proposition par des
simulations appropriées.
1
TP2 : Modélisation et commande d’un système dans l’espace d’état
Objectif :
Ce TP a pour objectif d’illustrer les concepts de commande par retour d’état appliqués aux systèmes
linéaires. Les principes et propriétés d’une commande par retour d’état sont étudiés en simulation dans
l’environnement Matlab/Simulink.
Sujet : Contrôle du mouvement d’un chariot roulant
Un chariot roulant est soumis à une force motrice qui lui permet de se mouvoir en translation. Une tige métallique
est articulée sur le chariot de sorte qu’elle peut se mouvoir dans un plan vertical. À son extrémité se trouve une
charge, le poids de la tige est considéré comme négligeable vis-à-vis de la masse de la charge. À chaque instant, la
tige forme un angle avec la verticale.
Le pont roulant permet de déplacer la charge sur une distance déterminée. Lors de l’automatisation de ce processus,
la charge entre en oscillation du fait de la mise en marche et du freinage du chariot. Ces oscillations s’amortissent
très lentement à cause du faible amortissement du procédé. De plus, ces oscillations sont nuisibles et diminuent le
rendement du système. Nous souhaitons améliorer les performances de ce système et réduire les oscillations. Pour
cela nous utilisons une loi d’asservissement par retour d’état.
Paramètre Désignation Paramètre Désignation
𝑥𝑐𝑝 position du chariot 𝑀𝑐 = 4000kg Masse de la charge
𝑀𝑐𝑝 = 1000kg Masse du chariot 𝜃 angle du filin
𝑥𝑐 , 𝑧𝑐 position de la charge 𝑙 = 10m longueur du filin
Le modèle dynamique du pont roulant peut être obtenu par la méthode de Lagrange avec 𝑥𝑐𝑝 et 𝜃 sont
les coordonnées généralisées. Dans les l’hypothèse des mouvements angulaires 𝜃 faibles de la charge,
𝑠𝑖𝑛𝜃 ≈ 𝜃, 𝑐𝑜𝑠𝜃 ≈ 1 et 𝜃̇ 2 ≈ 0, nous obtenons :
(𝑀𝑐𝑝 + 𝑀𝑐 )𝑥̈ 𝑐𝑝 + 𝑀𝑐 𝑙𝜃̈ = 𝐹
{ , avec 𝑔 = 9.81𝑚/𝑠2
𝑥̈ 𝑐𝑝 + 𝑙𝜃̈ + 𝑔𝜃 = 0
I- Représentation d’état :
Etablir les équations d’état du système en choisissant les variables suivantes :
[𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 ]𝑇 = [𝑥𝑐𝑝 , 𝑥̇ 𝑐𝑝 , 𝜃, 𝜃̇ ]𝑇
L’entrée de commande est la force horizontale de traction 𝑢(𝑡) = 𝐹(𝑡) et la sortie contrôlée est 𝑦(𝑡) =
𝑥𝑐𝑝 (𝑡) la position du chariot. Ce chariot est commandé par un moteur à courant continu couplé à un
réducteur. On dispose d’une mesure de la position du chariot par un encodeur. En se basant sur les
2
équations précédentes, on démontre que la représentation d’état de ce système est comme suit :
𝑥̇ 1 = 𝑥2
𝑀𝑐 1
𝑥̇ 2 = 𝑔𝑥3 + 𝑢
𝑀𝑐𝑝 𝑀𝑐𝑝
𝑥̇ = 𝐴𝑥 + 𝐵𝑢
𝑥̇ 3 = 𝑥4 {
𝑦 = 𝐶𝑥 + 𝐷𝑢
𝑀𝑐𝑝 +𝑀𝑐 1
𝑥̇ 4 = − ( ) 𝑔𝑥3 − 𝑙𝑀 𝑢
𝑙𝑀𝑐𝑝 𝑐𝑝
{ 𝑦 = 𝑥1
Avec :
Tâche 1 :
Utiliser les fonctions Matlab suivantes pour générer la représentation d’état, étudier la stabilité et pour vérifier la
commandabilité et l’observabilité de ce système.
Commande Signification
H=tf[num,den] Génére un fonction de transfert H
pont_r=ss(A,B,C,D) Transformation vers un representation d’état
[num,den]=ss2tf(A,B,C,D); Passage de la représentation d’état à la function de transfert H
poles_bo=pole(H) Permet de trouver les pôles de H
vp_bo=eig(A) Permet de trouver les valeurs propres de A
Qc=ctrb(A,B); Calcul de la matrice de commandabilité Qc
r1=rank(Qc); Calcul du rang de Qc
Qo=obsv(A,C); Calcul de la matrice d’observabilité Qo
r2=rank(Qo); Calcul du rang de Qo
II- Commande par retour d’état par placement de pôles
Effectuer la synthèse de la régulation par retour d’état de la position du chariot permettant de minimiser les
oscillations de la charge suspendue en respectant le cahier des charges suivant : Pour une consigne de position de
type échelon, la réponse du système doit avoir :
En régime transitoire,
Assez bien amorti, dépassement faible,
Rapide, le temps de réponse 𝑡5% à 5% ne doit pas dépasser 20𝑠
En régime permanent, erreur statique nulle.
Tâche 2 :
Sous Matlab/Simulink, construisez le schéma bloc suivant :
3
Mcp=1000; Mc=4000; l=10; g=10;
A=[0 1 0 0;0 0 Mc*g/Mcp 0;0 0 0 1;0 0 -(Mc+Mcp)*g/(Mcp*l) 0];
B=[0;1/Mcp;0;-1/(Mcp*l)];
C=[1 0 0 0]; D=0;
x_dot=A*x+B*u;
Tâche 3 : Calcul des gains K et N
Choisir les pôles du système bouclé en fonction du cahier des charges de la façon suivante :
i. Paire de pôles complexes dominants,
ii. Pôle réel unique d’ordre 2 en 𝑝 = −1.
En général, la réponse transitoire d’un système d’ordre quelconque laisse apparaitre des oscillations amorties avant
d’atteindre un régime permanent. Il est alors possible de spécifier des caractéristiques temporelles identiques à
celles des systèmes du second ordre, les pôles complexes conjugués d’un second ordre sont : 𝑝1,2 = −𝑧𝜔𝑛 ±
𝑗𝜔𝑛 √1 − 𝑧 2 où 𝑧 < 1 est le coefficient d’amortissement et 𝜔𝑛 est la pulsation propre non amortie.
La partie réelle des pôles négligeables sera choisie égale entre 3 et 10 plus grande que la partie réelle des pôles
dominants (3 𝑧𝜔𝑛 à 10 𝑧𝜔𝑛 ). Pour avoir un dépassement faible, on choisit 𝑧 = 0.707. Dans ce cas le temps de
réponse 𝑡5% est donné par 𝑡5% ≈ 3/z𝜔𝑛 , en choisissant 𝑡5% = 15𝑠, d’où la pulsation propre non amortie 𝜔𝑛 ≈
−𝜋𝑧
3/z𝑡5% . Le dépassement maximal est donné par : 𝐷1,% = 100𝑒 √1−𝑧2 ≈ 5%.
Les pôles négligeables sont choisis comme 𝑝3,4 = −5𝜉𝜔𝑛 = −1, ces pôles sont plus rapides que les pôles dominants
et n’affectent pas la dynamique du système bouclé.
On suppose que l’on a accès à tous les états du système. Calculer le retour d’état 𝐾 du régulateur d’état :
𝑢(𝑡) = −𝐾𝑥(𝑡) + 𝑣(𝑡) ; 𝑣(𝑡) = 𝑁𝑦𝑐(𝑡)
Calculer le gain K qui permet de répondre au cahier des charges précèdent (utiliser les commandes Matlab
suivantes)
%Pc; % vecteur des pôles désirés (placés en boucle fermée) de la commande
%K=acker(A,B,Pc); ou K=place(A,B,Pc); % les fonctions acker et place
déterminent le gain K du correcteur par la technique de placement de pôles
%tr5=15; z=0.707; wn=3/(z*tr5);
%p1=-z*wn+sqrt(1-z^2)*i*wn; p2=-z*wn-sqrt(1-z^2)*i*wn; p3=-1; p4=-1;
%Pc=[p1;p2;p3;p4];
Calculer le gain de préfiltre 𝑁 afin d’annuler l’erreur statique.
𝑁 = [−𝐶(𝐴 − 𝐵𝐾)−1 𝐵]−1
Réaliser des simulations permettant d’évaluer les performances du système en prenant une position
désirée𝑦𝑐 (𝑡) = 100𝑚.
4
5