Documente Academic
Documente Profesional
Documente Cultură
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.
mX 2 b1 ( X 1 X 2 ) k1 ( X 1 X 2 ) b2 (W X 2 ) k 2 (W X 2 ) U
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
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;
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
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
0.0174
0.0118
0.0744
0.3682
2.3077]
0.5297
7.8462]
num1 denp
num1 numf
Functia de transfer pentru regulator, numc/denc, este singurul lucru care a mai
ramas de aflat pentru a satisface specificatiile sistemului automobilului.
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
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
Amplitude
0.8
0.6
0.4
0.2
0
0
Time (sec.)
Fig 5.2
11
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.)
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)
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
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
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
15
10
Imag Axis
-5
-10
-15
-90
-80
-70
-60
-50 -40
-30
Real Axis
-20
-10
18
10
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;
Inaltimea (x)
0.05
-0.05
-0.1
-0.15
0.5
1.5
2.5
3.5
4.5
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;
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
21
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
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.
y C * x D *u
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
23
-6
x 10
3
2
1
0
-1
-2
-3
-4
-5
x 10
-0.5
-1
-1.5
-2
-2.5
10
15
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