Vous êtes sur la page 1sur 9

Compte rendu

Régulation Industrielle

Elaboré par: Trimech Dhia Eddine

Classe: 4éme EA

Encadré par: Mr.Faycal Ben Hmida

Tpn°1 : Commande par retour d'état d'un Moteur à courant continu

• But :

Le but de ce TP est de concevoir un régulateur pour stabiliser et controler de la vitesse ou la position du moteur
en utilisant des capteurs de retour. Les ajustements des paramètres du régulateur sont effectués pour optimiser
les performances du système, incluant la stabilité, le temps de réponse et la précision.

• Système à étudier :

1
• Exigence de cahier de charge :

1. Suivi précis d’une consigne constante(erreur statique de position nul)


2. Temps de réponse Ts+-5%<=1
3. Rejet parfait d’un couple de charge
4. Dépassement maximale D%<=5%
5. Une stabilite asymptotique du système bouclé

• Entrée les donner :

% entrée de donnée
Ra=1;
La=0.047;
Ki=0.25;
Kb=Ki;
Bm=0.00131;
Jm=0.0233;

• Création modèle de système a commande :

% modèle d'état
A=[-Ra/La -Kb/La 0;Ki/Jm -Bm/Jm 0;0 1 0];
B=[1/La;0;0];
Bd=[0;-1/Jm;0];
C=[0 0 1];
D=0;

• Analyse de système à commande :

1. Stabilité :

%modele sans perturbation d(t)=Tl(t)=0


sys_yu=ss(A,B,C,D);
%modele avec perturbation
sys_yd=ss(A,Bd,C,D);
%analyse du systéme à commander :

2
% tracage de la réponse du système à un échelon multiplié par 100
figure(1),
subplot(121),step(100*sys_yu);
% tracage des poles
subplot(122),pole(sys_yd);

%calcul des poles


pole(sys_yu)

ans = 3×1
0
-3.2163
-18.1165

%autre méthode
eig(A)

ans = 3×1
0
-3.2163
-18.1165

=> Le système est Marginalement stable.

• Etude de commandabilité et observabilité :

%commandabilité
Mc=ctrb(A,B);
rank(Mc)

3
ans = 3

=> systéme complétement commandable car rank(Mc) # 0.

%observabilite
Mo=obsv(A,C);
rank(Mo)

ans = 3

=> systéme complétement observable car rank(Mo) # 0.

• commande par retour d’état sans observateur :

D’après le cahier des charges et après tout calcul fait on trouve que notre poles désirée sont égale :

P1= -3+3j

P2= -3-3j

P3= -10

• Sans perturbation :

%calcull du gain k de retour d'etat


p=[-3-3j -3+3j -10];
K = place(A,B,p);
%Le gain N est calculé pour obtenir la précision souhaitée

N=-1/(C*inv(A-B*K)*B);
%model d'etat en BF:
%-signal sortie y par rapport consigne yc pour D=0 (sans perturbation)
sys_yyc=ss(A-B*K,B*N,C,D);

%calcul des poles en boucle fermer


poles_bf=pole(sys_yyc);

• Simulation :

%création d'une nouvelle figure


figure(2),
%trace la réponse à un échelon du système en boucle fermée sys_yyc multiplié par 2
subplot(211),step(sys_yyc,2),title('sortie y(t)'),grid

4
%trace la commande u(t) du système en boucle fermée sys_uyc en réponse à une consigne yc multip
subplot(212),step(sys_uyc,2),title('commande yc(t)'),
grid,xlabel('temps en sec')

5
%crée un modèle d’état en boucle ouverte.
sys_bo=ss(A,B*N,K,0);

=> Les pôles du système en boucles fermée sont stables.

=> Signal de commande réalisable car <1 V.

X = stepinfo(sys_yyc)

X = struct with fields:


RiseTime: 0.5542
SettlingTime: 1.5048
SettlingMin: 0.9009
SettlingMax: 1.0378
Overshoot: 3.7844
Undershoot: 0
Peak: 1.0378
PeakTime: 1.1789

%calcule la marge de gain Mg, la fréquence de gain Wg,


%la marge de phase Mp et la fréquence de phase Wp du système en boucle ouverte.
[Mg,Wg,Mp,Wp]=margin(sys_bo)

Mg = 3.9587
Wg = 59.2077
Mp = 10.9479
Wp = 2.3256

6
=> Ce système est rapide mais la marge de stabilité est mauvaise donc on doit agir sur l’emplacement des
pôles pour corriger les marges du gain et la marge de phase.

• Avec Perturbation :

%crée un modèle d’état en boucle fermée pour la sortie y(t) du système


%en tenant compte des perturbations externes(charge).
sysbf_yd=ss(A-B*K,Bd,C,0);

%trace la réponse à un échelon du système en boucle fermée sysbf_yd multiplié par 0.2.
figure(3),step(0.2*sysbf_yd),

=> On remarque que le système n’est pas capable de rejeter les perturbations . Donc le système suit la
consigne que avec l'absence de perturbaption.

• Solution suggérée :

On applique une Actiond’un intégrateur pour corriger tous ses problème .

• commande par retour d’état avec observateur :

%créer des modèles d’état en boucle fermée avec observateur (syso_yyc et syso_uyc)
P0=3*p;
L=place(A',C',P0)';
Aa=[A -B*K;L*C A-B*K-L*C];

7
Ba=[B*N;B*N];
Ca=[C zeros(1,3)];
Da=0;
syso_yyc=ss(Aa,Ba,Ca,Da);
syso_uyc=ss(Aa,Ba,[zeros(1,3) -K],N);

%réponse indicielle en BF avec d(t)=0


figure(4);
subplot(211), step(syso_yyc,2), title('sortie y(t)'),grid

subplot(212), step(syso_uyc,2), title('commande y(t)'),


grid, xlabel('temps en sec')

8
WBP=bandwidth(sys_yyc)

WBP = 3.9208

=> Avec cette solution ce le meme comportement du système (meme perfermence) mais on a économiser de
l'argent car au lieu d'acheter 3 capteurs on peut acheter seulement un capteurde position angulaire .

L'inconvinient c'est qu'on a complexer le programme.

Vous aimerez peut-être aussi