Sunteți pe pagina 1din 26

Cuprins

1. Introducere............................................................................................................pag. 2
2. Modelarea sistemului de suspensie activa.............................................................pag. 3
2.1 Cerinte de proiectare................................................................................pag. 3
3. Modelul matematic a sistemului de suspensie active............................................pag. 4
4. Functiile de transfer a sistemului...........................................................................pag. 7
5. Reglarea dupa starepag. 9
6. Sinteza regulator lead - lag utilizand locul radacinilor. pag 12
7.Sinteza regulator pid utilizand locul radcinilor...pag 15
8. Proiectarea unui regulator in discret..pag 18
8.1 Proiectarea cu extrapolator de ordin 0.pag 19
8.2 Proiectarea cu extrapolator de ordin 1pag 20
8.3 Proiecatare folosind metoda Tustinpag 21
9.Proiecatre LQRpag 23
10 Concluzii ...pag 25
11 Bibliografie............................................................................................................pag26

CAP.1 Introducere
Performanta sistemului de suspensie a autovehiculului este considerata in mod
obisnuit legata de capacitatea acestuia de a oferi o buna functionare pe strazi si un confort
imbunatatit al pasagerului.
Sistemele de control pasiv ofera doar un compromis intre aceste doua criterii, in
timp ce sistemele de control activ ale suspensiilor, au drept scop izolarea corpului masinii
de vibratiile rotii induse de terenul accidentat.
Modelul sistemului cu suspensie se bazeaza pe o analiza riguroasa. Pentru
suspensia vehicolului se utilizeaza tipuri diferite de arcuri, amortizoare in stransa legatura
cu flexibilitatea constructiei in diferite directii. Toate acestea au fost dezvoltate de-a
lungul ultimului secol, practic de la inceputul erei automobilului.
Tipurile cele mai obisnuite si mai simple de suspensie sunt cele pasive in ideea ce
sursele externe de energie nu sunt necesare. Odata cu dezvoltarea electronicii,
performantele au inceput sa creasca si sa fie vizibile.
Scopul acestei lucrari este de a prezenta o schema de control care sa imbogateasca
performantele suspensiei.
Noua tehnologie ofera o solutie simpla si economica pentru reducerea ruliului la
viraje imbunatatind atat controlul vehiculului cat si performantele acestuia, fara a
diminua confortul, asa cum fac sistemele de suspensie conventionala. Aceasta se
realizeaza prin asigurarea unui contact permanent intre pneu si drum, pe toate cele patru
roti, indiferent de starea suprafetei de rulare.
Testarea sistemului de suspensie desfasurat atat pe sosele cat si pe drumuri
accidentate a demonstrat o reducere a ruluilui cu 40% si marirea contactului rotilor cu
drumul cu 60% in comparatie cu folosirea sistemelor de suspensie conventionale. Se
imbunatateste asfel tractiunea, directia si manevrabilitatea vehiculului, marindu-se de
asemenea stabilitatea la viraje.

CAP.2 Modelarea sistemului de suspensie activa


Sistemul de suspensie activa este utilizat pentru simplificarea problemei
sistemului de amortizare a vehicolului. Desenul unui astfel de sistem este prezentat in
continuare.

Fig.2.1 Model de Sistem de Suspensie Activa


Unde:
M = m1 = 1300 kg masa corpului autovehiculului,
m = m2 = 60 kg masa suspensiei,
k1 = 34000 N/m constanta elastica a arcului sistemului de suspensie,
k2 = 180000 N/m constanta elastica a rotii si a jantei,
b1 = 1200 Ns/m constanta de amortizare a sistemului de suspensie,
b2 = 5800 Ns/m constanta de amortizare a rotii si a jantei,
u forta de control = forta controller-ului pe care dorim sa-l proiectam.

2.1 Cerinte de proiectare


1.Sa se fac modelul matematic
2.Functiile de transfer a sistemului
3 .Reglare dupa stare .
3

4.Proiectarea regulataorelor lead ,lag,lead-lag,pi,pd,pid.


5.Proiectarea unui regulator numeric prin metoda reproiectarii regulatorului dupa stare
6.Regulator LQR

CAP.3 Modelul matematic a sistemului de suspensie active


Reprezentarea in spatiul starilor este obtinuta din ecuatiile diferentiale ce caracterizeaza
miscarea automobilului.
Ecuatiile dimamicii autovehiculului si a mesei suspensiei sunt:
b ( X X ) k ( X X ) U
MX
1
1
1
2
1
1
2

mX 2 b1 ( X 1 X 2 ) k1 ( X 1 X 2 ) b2 (W X 2 ) k 2 (W X 2 ) U

Pentru a fi o reprezentare a spatiului starilor valabila, derivata tuturor starilor


trebuie sa fie in termenul intrarilor si in starile insasi. Pentru inceput se impart prima si a
doua ecuatie prin M, respectiv m.
b
k
U
X 1 1 ( X 1 X 2 ) 1 ( X 1 X 2 )
M
M
M
b
k
b
k
U
X 2 1 ( X 1 X 2 ) 1 ( X 1 X 2 ) 2 (W X 2 ) 2 (W X 2 )
m
m
m
m
m

Prima stare va fi X1. Din moment ce derivatele intrarilor nu apar in ecuatia pentru
, se alege a doua stare ca fiind X . Se alege apoi a treia stare ca fiind diferenta dintre
X
1
1

X1 si X2 si apoi se determina a patra stare. Astfel se inlocuieste cea de-a treia stare cu
Y1=X1 X2 in ecuatia de mai jos:
b1
k
U
X 1
Y1 1 Y1
M
M
M
b
k
b
k
U
X 2 1 Y1 1 ( X 1 X 2 ) 2 (W X 2 ) 2 (W X 2 )
m
m
m
m
m
:
Scazand a doua ecuatei din prima, se obtine expresia pentru Y
1

b
b
k
k
b
k
1
1
X 1 X 2 Y1 ( 1 2 )Y1 ( 1 2 )Y1 2 (W X 2 ) 2 (W X 2 ) ( )U
M m
M m
m
m
M m
Deoarece nu putem utiliza derivatele de ordinul doi pentru reprezentarea in spatiul
starilor, se va integra aceasta ecuatie pentru a obtine Y1 :

b
b
b
k
k
k
1
1
Y1 ( 1 2 )Y1 2 (W X 2 ) (( 1 1 )Y1 2 (W X 2 ) ( )U )dt
M m
M
M m
M
M m

Numim intergala cu Y2. Ecuatia de stare pentru Y2 este:


k
k
k
1
1
Y2 ( 1 1 )Y1 2 (W X 2 ) ( )U
M m
m
M m
k
k
k
1
1
Y2 ( 1 1 )Y1 2 (W X 1 Y1 ) ( )U
M m
m
M m

Se inlocuieste X2=X1-Y1 in Y1 pentru a obtine ecuatia de stare pentru Y1:


b
b
b
Y1 ( 1 1 )Y1 2 (W X 1 Y1 ) Y2
M m
m

Apoi se inlocuieste derivata lui Y1 in ecuatia derivatei lui X1:


b b
b b
b
b
k
b
bb
U
X 1 ( 1 2 ) X 1 ( 1 ( 1 1 2 ) 1 )Y1 ( 1 )Y2
( 1 2 )W
Mm
M M m m
M
M
M
Mm

Variabilele de stare sunt X1, X 1 ,Y1 si Y2. Forma matriciala a ecuatiilor prezentate
mai sus este:

X 1

X

Y1

Y

0
b1b2
Mn
b2
m
k2
m

b b b b k
0 1 1 1 2 1
M M m m M
b b b
0
1 1 2
M m m
k k k
0
1 1 2
M m m

0
0

b1
1

X1
M
M
X

1

0
1 Y1

Y 1 1
2
M m
0

0
b1b2
Mm
b2

m
k2
m

(2.2.13)
Se pot pune ecuatiile de mai sus intr-un m file Matlab prin definirea a patru
matrici A,B,C,D ale ecuatiilor de stare standard:
X AX BW
Y CX DW

m1=1300;
m2=60;
k1=34000;
k2=180000;
b1=1200;

%masa automobilului
%masa suspensiei
%constanta elastica a arcului sistemului de suspensie
%costanta elascica a rotii si a jantei
%constanta de amortizare a sistemului de suspensie

b2=5800;

%constanta de amortizare a rotii si a jantei

A=[
0
-(b1*b2)/(m1*m2)
b2/m2
k2/m2

1
0
0
0 ((b1/m1)*((b1/m1)+(b1/m2)+(b2/m2)))-(k1/m1) -(b1/m1)
0
-((b1/m1)+(b1/m2)+(b2/m2))
1
0
-((k1/m1)+(k1/m2)+(k2/m2))
0]

B=[

0
0
1/m1
(b1*b2)/(m1*m2)
0
-(b2/m2)
(1/m1)+(1/m2)
-(k2/m2)]

C=[0 0 1 0]
D=[0 0]
Dupa rularea programului se obtine :
A=
1.0e+003 *
0 0.0010
0
0
-0.0892
0 0.0824 -0.0009
0.0967
0 -0.1176 0.0010
3.0000
0 -3.5928
0
B=
1.0e+003 *
0
0
0.0000 0.0892
0 -0.0967
0.0000 -3.0000
C=
0
D=
0

Cap. 4. Functiile de transfer a sistemului


Ianainte de inceperea proiectarii regulatorului, este necesara gasirea functiilor de
transfer pentru porces, respectiv pentru perturbatie. Se poate gasi functia de transfer a
procesului (de la intarea U, la iesirea X1 X2) prin utilizarea in Matlab a comenzii ss2tf.
Se adauga urmatoarea comanda in fisierul .m creat in subcapitolul anterior:
[nump,denp]=ss2tf(A,B,C,D,1)
Valoarea 1 indica care intrare trebuie utilizata pentru calculul functiei de transfer.
Valorea 0.1 corespunde intarii trepte de 10 cm Prin rularea programului se obtin
urmatoarele:
nump =[0

0.0000

denp=1.0e+004 *[0.0001

0.0174
0.0118

0.0744
0.3682

2.3077]
0.5297

7.8462]

De notat faptul ca, numaratorul este polinom degardul 5 cu doua zerouri de prima
importanta. Acest lucru ar putea cauza cateva probleme in viitor, cand se va adauga un
regulator sistemului. Cand numaratorul este combinat cu numaratorul regulatorului, cele
doua zerouri de prima importanta pot creste ordinul numaratorului polinomial al buclei
inchise astfel incat acesta este de ordin mai mare fata de numitorul polinomial.
Aceasta situatie nu este permisa in Matlab, el returnand un mesaj de eroare.
Pentru a elimina aceste doua cifre, se redefineste num sa fie format doar din ultimele trei
cifre prin adaugarea urmatoarei linii in fisierul .m:
nump=[num(3) num(4) num(5)]
Prin urmare functia de transfer a Procesului devine:
proces=nump/denp
Acum este cunoscut faptul ca functia de transfer a Procesului este nump/denp, dar
care este functia de transfer a fui F? Mai intai, este necesara aflarea functiei de transfer de
la intrarea W la iesirea X1 X2 prin utilizarea comenzii:
[num1,den1]=ss2tf(A,0.1*B,C,D,2)
De notat faptul ca, valoarea 2 este utilizata pentru aflarea functiei de transfer de la
cea de-a doua intrare (perturbatia) si valoarea 0.1 corespunde intrarii trepte de 10 cm.
Matlabul va returna:
7

num1 =[0

0.0000

den1 =1.0e+004 * [0.0001

0.0174
0.0118

0.0744
0.3682

2.3077]
0.5297

7.8462]

Se adauga urmatoarea linie in fisierul .m:


num1=[num1(2) num1(3) num1(4) num1(5)]
Din schema prezentata mai jos se observa ca F*Proces = num1/den1, astfel incat
F = num1/(den1*Proces), sau:
F

num1 denp
num1 numf

den1 nump nump


denf

Functia de transfer pentru regulator, numc/denc, este singurul lucru care a mai
ramas de aflat pentru a satisface specificatiile sistemului automobilului.

Fig.4. 1 Diagrama bloc a sistemului automobilului

Cap.5 Reglarea dupa stare


Din ecuatiile dinamicii sistemului, determinate la capitolul de modelare (capitolul 2),
ecuatiile dinamicii in forma ecuatiilor de strare sunt urmatoarele:

X 1

X

Y1

Y

0
b1b2
Mn
b2
m
k2
m

b b b b k
0 1 1 1 2 1
M M m m M
b b b
0
1 1 2
M m m
k k k
0
1 1 2
M m m

0
0

b1
1

X1
M
M
X

1

0
1 Y1

Y 1 1
2
M m
0

0
b1b2
Mm
b2

m
k2
m

(3.1)

Y 0 0 1 0

X1
X
1
Y1

Y2

0 0

(3.2)

Se doreste proiectarea unui controler intr-o bucla astfel incat atunci cand
perturbatia de la sosea (W) este simulata cu o treapta unitate la intrare, iesirea
Y = X1 X2 sa aiba timpul tranzitoriu mai mic de 5 secunde si suprareglarea aproximativ
5%.
Modelul sistemului poate fi reprezentat in Matlab prin crearea unui m file in
care se introduc urmatoarele linii de comanda
Vom utiliza tehnica alocrii poli-zerouri pentru a stabiliza sistemul i pentru a
avea caracteristici dinamice dorite.
Folosim matricil A ,B,C,D
Calculam matricea M
M=ctrb(A,B)
1.0e+009 *
0 0.0000 -0.0000 0.0004
0.0000 -0.0000 0.0004 -0.0238
9

-0.0000 0.0000 -0.0006 0.0435


-0.0000 0.0003 -0.0298 2.2405
rank(M)=4
Deci sistemul este complet controlabil si putem sa facem o regglare completa dupa stare.
Ecuatia cararcteristica a sistemului este urmatoarea:
Ec=det(s*I-A)= s^5+118s^4+3682s^3+5297s^2+78462
Vom afla localzarile dorit ale polilor sistemului inchis astfel incat ca sistemul sa aiba un
timp tranzitoriu rezonabil de mic T=2secsi o amortizare rezonabila eps= 0.5din acest
motiv vom alege polii doriti pulsatia naturala wn=4 s=poli impusi
p=[-2+j*6 -2-j*6 -8 -8];
ecuatia devine :
s^4+ 20 s^3+ 168 s^2+ 896s+ 2560
kt=
1.0e+003 *
-4.4014 -3.5141 -0.0976

W=
1.0e+003 *
5.2974 3.6821 0.1176 0.0010
3.6821 0.1176 0.0010
0
0.1176 0.0010
0
0
0.0010
0
0
0 T=M*W
T=
1.0e+004 *
7.8462 0.5297 0.0089
0
-0.0000 7.8462 0.5297 0.0089
0.0000 -0.0000 -0.3000 -0.0097
0.0000 -0.0000 -0.5463 -0.3000T=inv(T)
kf=kt*inv(T)
kf=[-0.0561 -0.0410 -0.0418 0.0001]
comanda u este
u=[-kf]trans*x
u=-0.0561*x1 -0.0410*x2 -0.0418*x3+0.0001
Skema simulink este urmatoarea

10

Step

Sum

Sum1

s
Integrator

unghiul si turatia

A
K

Kf
K

Fig 5.1 Implementarea n SimuLink


Rezultatul este urmatorul
Step Response
1.2
1

Amplitude

0.8
0.6
0.4
0.2
0
0

Time (sec.)

Fig 5.2

11

S-a folosit urmatorul program Matlab


m1=1300;
m2=60;
k1=34000;
k2=180000;
b1=1200;
b2=5800;
A=[0 1 0 0;-(b1*b2)/(m1*m2) 0 ((b1/m1)*((b1/m1)+(b1/m2)+(b2/m2)))(k1/m1) -(b1/m1); b2/m2 0 -((b1/m1)+(b1/m2)+(b2/m2)) 1;k2/m2 0 ((k1/m1)+(k1/m2)+(k2/m2)) 0];
B=[ 0 0;1/m1
(b1*b2)/(m1*m2); 0 -(b2/m2); (1/m1)+(1/m2) (k2/m2)];
B1=B(:,2);
C=[0 0 1 0];
D=[0 0];
M=ctrb(A,B1)
rank(M)
q=eig(A);
q1=poly(q)
p=[-2+j*6 -2-j*6 -8 -8];
pp=poly(p)
W=[q1(4) q1(3) q1(2) 1 ; q1(3) q1(2) 1 0; q1(2) 1 0 0; 1 0 0 0]
T=M*W
T=inv(T);
kt=[pp(4)-q1(4) pp(3)-q1(3) pp(2)-q1(2) pp(1)-q1(1)]
kf=kt*T

Cap.6 Sinteza regulator lead - lag utilizand locul


radacinilor
Compensatoarele lead si lag sunt folosite in mod frecvent in automatica. Un
compensator lead poate mari stabilitatea sau viteza de raspuns a unui sistem, un
compensator lag poate reduce (dar nu elimina) eroarea statica. Depinzand de efectul dorit,
au mai multe compensatoare lead si lag pot fi folosite in diferite combinatii. Aceste
compensatoare sunt in general proiectate pentru sisteme in forma functie de transfer.
Un compensator lead in forma locului radacinii esta dat de relatia:
(s z 0 )
G(s)=K c
(7.1)
(s p0 )
unde dimensiunea lui z 0 este mai mica decat dimensiunea lui p 0 . Un compensator lead
de faza are tendinta sa mute locul radacinilor spre stanga semiplanului stang. Aceasta
rezulta printr-o imbunatatire a stabilitatii sistemului si o marire a vitezei de raspuns.
Cand un compensator lead este adaugat sistemului, valoarea intersectiei va fi un
numar negativ mai mare decat cel precedent. Numarul net de zerouri si poli va ramane
acelasi (un zerou si un pol sunt adaugati), dar polul adaugat este un numar negativ mai
mare decat zeroul adaugat. Astfel, rezultatul unui compensator lead este acela ca
intersectia asimptotelor este mutata mai spre semiplanul stang si intreg locul radacinilor
va fi mutat spre stanga. Aceasta poate mari regiunea de stabilitate cat si viteza de raspuns.
Un compensator lag in forma locului radacinii este dat de relatia:

12

G(s)=

(s z 0 )
;
(s p0 )

(7.2)

unde dimensiunea lui z 0 este mai mare decat dimensiunea lui p 0 . Un compensator lag
are tendinta sa mute locul radacinilor spre dreapta, ceea ce nu este de dorit. Din acest
motiv polul si zeroul trebuie alesi apropiati unul de celalat (de obicei langa origine) astfel
ca ei sa nu modifice in mod apreciabil raspunsul tranzitoriu sau caracteristicile de
stabilitate ale sistemului.
Cand un compensator lag este adaugat sistemului, valoarea intersectiei va fi un
numar negativ mai mic decat era inainte. Numarul net de zerouri si poli va ramane acelasi
(un zerou si un pol sunt adaugati), dar polul adaugat este un numar negativ mai mic decat
zeroul adaugat. Astfel, rezultatul unui compensator lag este acela ca intersectia
asimptotelor este mutata mai aproape de semiplanul drept si intregul loc al radacinilor
este mutat spre dreapta.
A fost mentionat inainte faptul ca controllerul lag va modifica minimal raspunsul
tranzitoriu din cauza efectului sau negativ. Daca compensatorul lag nu schimba raspunsul
tranzitoriu in mod apreciabil atunci se pune intrebarea la ce foloseste totusi. Raspunsul
este ca imbunatateste raspunsul static al sistemului. La frecvente inalte, controllerul lag
va avea gain unitar. La frecvente joase, amplificarea va fi z 0 / p 0 care este mai mare
decat 1. Factorul z 0 / p 0 va multiplica pozitia, viteza sau constanta de acceleratie si
eroarea statica va fi astfle scazuta cu factorul z 0 / p 0 .
Rezultatele folosirii unor compensatoare lead-lag sunt:

Step Response

0.06

Amplitude

0.04
0.02
0
-0.02
-0.04

10

20

30

40

50

60

70

Time (sec.)

Figura 6.1 Raspunsul in distanta


Programul care s-a folosit este urmatorul:
13

80

m1=1300;
m2=60;
k1=34000;
k2=180000;
b1=1200;
b2=5800;
A=[0 1 0 0;-(b1*b2)/(m1*m2) 0 ((b1/m1)*((b1/m1)+(b1/m2)+(b2/m2)))(k1/m1) -(b1/m1); b2/m2 0 -((b1/m1)+(b1/m2)+(b2/m2)) 1;k2/m2 0 ((k1/m1)+(k1/m2)+(k2/m2)) 0];
B=[
0 0;1/m1
(b1*b2)/(m1*m2); 0 -(b2/m2); (1/m1)+(1/m2)
-(k2/m2)];
C=[0 0 1 0];
D=[0 0];
%Matricile care descriu modelul de stare
[num1,den1]=ss2tf(A,B,C,D,1);
[num2,den2]=ss2tf(A,B,C,D,2);
%h=tf(sis);
%[num1,den1]=tfdata(h(1))
%[num2,den2]=tfdata(h(2));
figure(1)
rlocus(num1,den1)
z1 = 1;
p1 = 0;
z2 = -15;
p2 = 100;
numlag = [1 z1];
denlag = [1 p1];
numlead = [1 z2];
denlead = [1 p2];
num3 = conv(conv(num1, numlead), numlag);
den3 = conv(conv(den1, denlead), denlag);
figure(2)
rlocus(num3,den3);
figure(3)
step(num3,den3)
figure(4)
rlocus(num2,den2)
z1 = 1;
p1 = 0;
z2 = -15;
p2 = 100;
numlag = [1 z1];
denlag = [1 p1];
numlead = [1 z2];
denlead = [1 p2];
num32 = conv(conv(num2, numlead), numlag);
den32 = conv(conv(den2, denlead), denlag);
figure(5)
rlocus(num32,den32);
figure(6)
step(num32,den32)

Cap.7 Sinteza regulator PID cu locul radacinilor


14

Locul radacinilor este o procedura grafica care arata modul in care migreaza radacinile
locului ecuatiei caracteristice cand este variat un parametru al sistemului. Procedura este
disponibila si in Matlab (functia rlocus). Pentru sisteme uzuale NzNp. Polii si zerourile
ale functiei de transfer a sistemului deschis sunt numere fixate independent de K. Locul
radacinilor este o tehnica grafica ce ne da o descriere calitativa a performantelor
sistemelor automate. Ea serveste ca un instrument cantitativ puternic ce furnizeaza mai
multe informatii ca alte metode. Furnizeaza solutii pentru sisteme cu ordin mai mare ca 2.
Poate da o reprezentare grafica a stabilitatii sistemului deoarece marginile de stabilitate si
instabilitate pot fi clar vazute precum si conditiile care cauzeaza ca un sistem sa intre sau
sa fie in oscilatie.
Graficul locului radacinilor in bucla deschisa pentru functiile noastre de transfer
sunt :
11

1.5

x 10

Imag Axis

0.5

-0.5

-1

-1.5

0.5

1.5
Real Axis

Figura 7.1 Locul radacinilor pentru functia 1

15

2.5

3
11

x 10

40
30
20

Imag Axis

10
0
-10
-20
-30
-40

-60

-50

-40

-30

-20
-10
Real Axis

10

20

30

40

Figura 7.2 Locul radacinilor pentru functia 2


Graficele de sus ne arata posibilele locatii ale tuturor polilor in bucla inchisa
pentru un controler proportional. Insa nu toti acesti poli in bucla inchisa vor satisface
criteriile noastre de proiectare. In cazul nostru trebuie sa alegem acei poli care ne asigura
un suprareglaj mai mic de 5% (adica 0.7 ) si timp de crestere de o secunda (adica o
pulsatie naturala mai mare de 1.8).
Pentru proiectarea unui regulator PID utilizand locul radacinilor se utilizeaza
urmatorul program in Matlab:
Pentru functia de transfer i/u:
m1=1300;
m2=60;
k1=34000;
k2=180000;
b1=1200;
b2=5800;
A=[0 1 0 0;-(b1*b2)/(m1*m2) 0 ((b1/m1)*((b1/m1)+(b1/m2)+(b2/m2)))(k1/m1) -(b1/m1); b2/m2 0 -((b1/m1)+(b1/m2)+(b2/m2)) 1;k2/m2 0 ((k1/m1)+(k1/m2)+(k2/m2)) 0];
B=[
0 0;1/m1
(b1*b2)/(m1*m2); 0 -(b2/m2); (1/m1)+(1/m2)
-(k2/m2)];
C=[0 0 1 0];
D=[0 0];
[num1,den1]=ss2tf(A,B,C,D,1);
h1=tf(num1,den1);
ttr=1.5;
%timp tranzitoriu impus
zeta=0.7; %coeficientul de amortizare
wn=-log(0.05*sqrt(1-zeta^2))/zeta/ttr; %pulsatia naturala a sistemului
sigma=100*exp(-pi*zeta/sqrt(1-zeta^2)); % suprareglarea obtinuta
s1=-zeta*wn+wn*sqrt(zeta^2-1); %pozitia polului dominant dorit

16

x=zpk(h1);
%conversia functiei de transferin reprezentarea polizerouri
[z,p,k]=zpkdata(h1,'r'); %zerourile, polii si castigul functiei de
transfer a curentului
teta=pi;
%calculul unghiului zeta mare
for i=1:length(z)
teta=teta-angle(s1-z(i));
end;
for j=1:length(p)
if (p(j)~=0)
teta=teta+angle(s1-p(j));
end;
end;
teta=teta+angle(s1-0); %unghiul dintre polul dominant dorit s1 si
zeroul pentru regulator
teta=teta*180/pi;
if teta>180
teta=teta-180;
end;
teta=teta*180/pi;
zero_reg=-zeta*wn+(wn*sqrt(1-zeta^2))*cos(teta)/sin(teta); %zeroul
calculat al
%regulatorului
k_star=abs(s1)*(abs(s1)^2);
for i=1:length(p)
k_star=k_star*abs(s1-p(i));
end;
for j=1:length(z)
k_star=k_star/abs(s1-z(j));
end;
k_star=k_star/abs(s1-zero_reg); %castigul corespunzator lui s1 a
sistemului in bucla %inchisa
%parametrii regulatorului
kp=k;
%constanta de proportionalitate a procesului
kr=k_star/kp; %castigul regulatorului PID
ti=-1/zero_reg; %constante de timp de integrare PID
td=-(ti*zero_reg+1)/(ti*zero_reg^2); %constante de timp de derivare PID
reg=tf(kr*[ti*td ti 1],[ti 0] );
sis=series(reg,h1); %sistemul serie in circuit deschis format din
regulator si proces
rlocus(sis);
zpk(sis); %reprezentarea poli zerouri a sistemului serie
[num_sis,den_sis]=tfdata(sis,'r'); %numaratorul si numitorul sistemului
serie

17

11

2.5

x 10

2
1.5

Imag Axis

1
0.5
0
-0.5
-1
-1.5
-2
-2.5

-3

-2.5

-2

-1.5
-1
Real Axis

-0.5

0.5
11

x 10

Figura 7.3. Locul radacinilor sistemului cu regulator PID


Analog, pentru functia de transfer 2 se obtine:

15

10

Imag Axis

-5

-10

-15

-90

-80

-70

-60

-50 -40
-30
Real Axis

-20

-10

Figura 7.4. Locul radacinilor sistemului cu regulator PID

18

10

Cap. 8 Proiectarea unui regulator in discret


Se utilizeaz Matlab-ul pentru a converti matricele A, B, C, D ale modelului
matematic de stare continu, n matricele F, G, H, J aferente modelului de stare discret.
Se utilizeaz comanda c2dm, care poate avea ase argumente: patru matrici de stare
F, G, H, J, perioada de eantionare Te i tipul circuitului de extrapolare.
Se adaug fiierului .m creat urmtoarele linii de comand:
Ts 1 / 100 ;
F , G, H , J c 2dm a, b, c, d , Ts , ' zoh';
Pentru calculul matricei K se adaug linia de comand:
k dlqr F , G, Q, R ;

Pentru obinerea rezultatului se adaug i urmtoarele linii fiierului .m:


t 0 : 0.01 : 5;
u 0.2 * ones size t ;
Y , X dlsim F G * k , G, H , J , u ;
stairs t , Y

8.1 Cu extrapolator cardinal (de ordin 0)


Pentru extrapolatorul cardinal se folosete metoda zoh n cadrul funciei c2dm.
Se ruleaz programul:

m1=1300;
m2=60;
k1=34000;
k2=180000; %b1=1200;
b2=5800;
a=[0 1 0 0;-(b1*b2)/(m1*m2) 0 ((b1/m1)*((b1/m1)+(b1/m2)+(b2/m2)))(k1/m1) -(b1/m1); b2/m2 0 -((b1/m1)+(b1/m2)+(b2/m2)) 1;k2/m2 0 ((k1/m1)+(k1/m2)+(k2/m2)) 0];
b=[
0 0;1/m1
(b1*b2)/(m1*m2); 0 -(b2/m2); (1/m1)+(1/m2)
-(k2/m2)];
b1=b(:,2);
c=[0 0 1 0];
d=[0];
ts=1/100;
[F,G,H,J]=c2dm(a,b1,c,d,ts,'zoh');
co=ctrb(F,G);
ob=obsv(F,H);
controllabil=rank(co);
observabil=rank(ob);
x=input('Introduceti pe x=');
y=input('Introduceti pe y=');
z=input('Introduceti pe z=');
v=input('Introduceti pe v=');
Q=[x 0 0 0;0 y 0 0 ;0 0 z 0;0 0 0 v ];
R=input('Introduceti pe R1=');;
k=dlqr(F,G,Q,R);
t=0:0.01:5;

19

u=0.2*ones(size(t));
[Y,X]=dlsim(F-G*k,G,H,J,u);
stairs(t,Y)
legend('Inaltimea (x)')
grid;

Se alege x mare n comparaie cu y i R mic.


De exemplu, pentru x=1000, y=100, z=1 ,v=1 i R=0,01 s-a obinut figura de mai
jos.
0.1

Inaltimea (x)

0.05

-0.05

-0.1

-0.15

0.5

1.5

2.5

3.5

4.5

Fig 8.1 . Regulator discret utiliznd extrapolator de ordin 0


8.2 Cu extrapolator de ordin 1
Pentru extrapolatorul cardinal se folosete metoda foh n cadrul funciei c2dm.
Se ruleaz programul:

m1=1300;
m2=60;
k1=34000;
k2=180000; b1=1200;
b2=5800;
a=[0 1 0 0;-(b1*b2)/(m1*m2) 0 ((b1/m1)*((b1/m1)+(b1/m2)+(b2/m2)))(k1/m1) -(b1/m1); b2/m2 0 -((b1/m1)+(b1/m2)+(b2/m2)) 1;k2/m2 0 ((k1/m1)+(k1/m2)+(k2/m2)) 0];
b=[
0 0;1/m1
(b1*b2)/(m1*m2); 0 -(b2/m2); (1/m1)+(1/m2)
-(k2/m2)];
b1=b(:,2);
c=[0 0 1 0];
d=[0];
ts=1/100;
[F,G,H,J]=c2dm(a,b1,c,d,ts,'foh');
co=ctrb(F,G);
ob=obsv(F,H);

20

controllabil=rank(co);
observabil=rank(ob);
x=input('Introduceti pe x=');
y=input('Introduceti pe y=');
z=input('Introduceti pe z=');
v=input('Introduceti pe v=');
Q=[x 0 0 0;0 y 0 0 ;0 0 z 0;0 0 0 v ];
R=input('Introduceti pe R1=');;
k=dlqr(F,G,Q,R);
t=0:0.01:5;
u=0.2*ones(size(t));
[Y,X]=dlsim(F-G*k,G,H,J,u);
stairs(t,Y)
legend('Inaltimea (x)')
grid;

Se alege x mare n comparaie cu y i R mic.


De exemplu, pentru x=100, y=1 i R=0,1 s-a obinut figura de mai jos.
-0.02

Inaltimea (x)

-0.04
-0.06
-0.08
-0.1
-0.12
-0.14
-0.16

0.5

1.5

2.5

3.5

4.5

Fig 8.2. Regulator discret utiliznd extrapolator de ordin 1


8.3Utiliznd transformata biliniar Tustin
Pentru extrapolatorul cardinal se folosete metoda tustin n cadrul funciei c2dm.
Se ruleaz programul:
m1=1300;
m2=60;
k1=34000;
k2=180000;
b1=1200
b2=5800;

21

a=[0 1 0 0;-(b1*b2)/(m1*m2) 0 ((b1/m1)*((b1/m1)+(b1/m2)+(b2/m2)))(k1/m1) -(b1/m1); b2/m2 0 -((b1/m1)+(b1/m2)+(b2/m2)) 1;k2/m2 0 ((k1/m1)+(k1/m2)+(k2/m2)) 0];


b=[
0 0;1/m1
(b1*b2)/(m1*m2); 0 -(b2/m2); (1/m1)+(1/m2)
-(k2/m2)];
b1=b(:,2);
c=[0 0 1 0];
d=[0];
ts=1/100;
[F,G,H,J]=c2dm(a,b1,c,d,ts,'tustin');
co=ctrb(F,G);
ob=obsv(F,H);
controllabil=rank(co);
observabil=rank(ob);
x=input('Introduceti pe x=');
y=input('Introduceti pe y=');
z=input('Introduceti pe z=');
v=input('Introduceti pe v=');
Q=[x 0 0 0;0 y 0 0 ;0 0 z 0;0 0 0 v ];
R=input('Introduceti pe R1=');;
k=dlqr(F,G,Q,R);
t=0:0.01:5;
u=0.2*ones(size(t));
[Y,X]=dlsim(F-G*k,G,H,J,u);
stairs(t,Y)
legend('Inaltimea (x)')
grid;

Se alege x mare n comparaie cu y i R mic.


De exemplu, pentru x=1000, y=10 ,z=1 v=1 i R=0,0001 s-a obinut figura de mai
jos.
0.02

Inaltimea (x)

0
-0.02
-0.04
-0.06
-0.08
-0.1
-0.12
-0.14
-0.16

0.5

1.5

2.5

3.5

4.5

Fig8.3. Regulator discret utiliznd tranformata biliniar Tustin

22

Am ales R=0,01 deoarece pentru valori mai mari sau mai mici ale lui R sistemul are
oscilaii foarte puternice pn la stabilizare. Se poate observa c rspunsul este bun,
turatia stabilizanduse in mai putin de o secunda.

Cap. 9 Proiectarea LQR


Rezolvarea problemei, utiliznd mediul de simulare Matlab, se face
utiliznd comanda lqr. Sistemul este descris de urmtoarele ecuaii:
x A * x B * u

y C * x D *u

Comanda lqr calculeaza matricea K a amplificarilor optimale de pe reactia de la


stare a sistemului astel incat comanda u(t) a sistemului este:
u(t)=-K x
Aceasta minimizeaza ecuatia:

T
T
J= ( x Qx u Ru )dt
0

Matricea K=[k1 k2 k3] este astfel aleas nct s minimizeze indicatorul J pentru
care se consider:
q11
0
Q
0

0
q 22
0
0

0
0
q33
0

0
0
; R 1
0

q 44

Se alege q11 suficient de mare comparativ cu q22, i cu q33, q44 i matricile Q i


R. Pentru determinarea matricii K se utilizeaz urmtoarele valori:q1=100, q22=q33=1,
R=0.01.
n urma rulrii programului n Matlab se obin urmtoarele valori pentru K, i
anume K=[20 -182740 -4610].
Pentru matricea amplificrilor K=[20 -182740 -4610], rezultatele simulrilor sunt
prezentate n figura :

23

-6

x 10

3
2
1
0
-1
-2
-3
-4
-5

Fig 9.1 Raspuns la treapta


-6

x 10

-0.5

-1

-1.5

-2

-2.5

10

15

Fig 9.2 Raspuns la impuls

Programul matlab este urmatorul :


m1=1300;
m2=60;
%
k1=34000;
k2=180000;
b1=1200;
b2=5800;
a=[0 1 0 0;-(b1*b2)/(m1*m2) 0 ((b1/m1)*((b1/m1)+(b1/m2)+(b2/m2)))(k1/m1) -(b1/m1); b2/m2 0 -((b1/m1)+(b1/m2)+(b2/m2)) 1;k2/m2 0 ((k1/m1)+(k1/m2)+(k2/m2)) 0];
b=[
0 0;1/m1
(b1*b2)/(m1*m2); 0 -(b2/m2); (1/m1)+(1/m2)
-(k2/m2)];
b1=b(:,1);
c=[0 0 1 0];

24

d=[0 ];
%Introducem Q si R ale lui J
q=[1 0 0 0;0 5 0 0;0 0 1 0; 0 0 0 0.1];
r=[0.01];
%Matricile Q si R
%Regulatorul lqr
[k,s,e]=lqr(a,b1,q,r);
%Componentele lui k
k1=k(1);
k2=k(2);
k3=k(3);
%Matricile noului sistem
aa=a-b1*k;
bb=b1*k1;
cc=c;
dd=d;
%Raspunsul la semnal treapta
t=0:0.01:5;
figure(1)
[y,x,t]=step(aa,bb,cc,dd);
plot(t,y)
%Raspunsul la semnal impuls
figure(2)
[y,x,t]=impulse(aa,bb,cc,dd);
plot(t,y)

Concluzii
Sistemul de suspensie pentru automobile este un sistem dificil, activitatea acestuia
relizandu-se in timp real.
In lucrarea de fata m-am ocupat de modelarea unui astfel de sistem de suspensie
facand sisteza unui regulator dupa stare, PID, LQR si a unui regulator digital cu reactie
de la stare.
Noua tehnologie ofera prin suspensiile active o solutie simpla si economica pentru
reducerea ruliului la viraje, imbunatatind atat controlul vehicolului cat si performantele
acestuia, fara a diminua confortul, asa cum fac sistemele de suspensie conventionala.
Acestea se realizeaza prin asigurarea unui contact pemanent intre pneu si drum.

25

Bibliografie:
[1] Ingineria sistemelor automate note de curs, anul IV
[2] Bazele sistemelor automate note de curs, anul II
[3] Teoria sistemelor I note de curs, anul III
[4] Calin S. , Regulatoare automate, Ed. Tehnica si Pedagogica Bucuresti, 1976
[5] www.engin.umich.edu/group/ctm
[6] www.howstuffworks.com

26

S-ar putea să vă placă și