Sunteți pe pagina 1din 67

Sisteme automate incorporate / Tehnologii informatice în ingineria sistemelor/

Sisteme de conducere în robotică

Automotive Control
- Controlul suspensiei -

Dan Selişteanu

Departamentul de Automatică și Electronică

Universitatea din Craiova Facultatea de Automatică, Calculatoare și Electronică


CUPRINS

1. Introducere
2. Modelarea sistemelor mecanice simple
3. Modelarea şi analiza sistemelor de suspensie
4. Proiectarea unor regulatoare PID pentru suspensii
5. Metode de proiectare frecvenţiale
6. Proiectarea regulatorului în spaţiul stărilor
7. Proiectarea controllerelor numerice pentru suspensii
Bibliografie

2/67
1. Introducere

 Prima etapă în procesul de proiectare a unui sistem de conducere în


automotive constă în dezvoltarea unor modele matematice utile, obținute fie
din legile fizice, fie din datele experimentale.
 Reprezentările sistemelor dinamice cele mai importante în automatică sunt
reprezentarea în spațiul stărilor și funcția de transfer (pentru sisteme liniare).
 În multe dintre sistemele din automotive sunt utilizate abordări de modelare
ale unor subsisteme mecanice și electrice, fiind foarte utilă reprezentarea
acestora în mediul MATLAB/Simulink, care permite analize și proiectări
avansate.
 Limbajul de programare MATLAB, dezvoltat de MathWorks, permite
manipulări matriceale, plotarea de funcții și date, implementarea unor
algoritmi (inclusiv de conducere) etc.
 Pachetul adițional Simulink permite simularea grafică multi-domeniu, precum
și proiectarea bazată pe model pentru sisteme dinamice și sisteme embedded.
3/67
Definiții. Tipuri de suspensii
 Sistemul de suspensie este un mecanism care face legătura între roți și
caroseria mașinii.
 Sistemul de suspensie transmite uniform forța (greutatea) ce acționează asupra
vehiculului către suprafața de rulare (șosea) și, în același timp, îl izolează de
forțele ce apar dinspre calea de rulare, îmbunătățind astfel confortul și
manevrabilitatea acestuia.
 Principalele componente ale suspensiei sunt:
 Arc
 Bara stabilizatoare (opțional)
 Articulații și bucșe
 Amortizor
 Sistemele de suspensie pot fi împărțite în două categorii: rigide și
independente. Acești termeni se referă la posibilitatea ca roțile de pe aceeași
punte (față sau spate) să se miște independent una față de cealaltă.

4/67
Caracteristici ale diverselor tipuri de suspensii
 Suspensie pasivă: pot fi incluse sistemele de suspensie convenționale sau
tradiționale. Principala caracteristică a lor este că odată instalate pe mașină,
parametrii suspensiei (duritate, garda la sol) nu pot fi controlați din exterior.
Arcurile și amortizoarele tradiționale sunt elemente de suspensie pasivă.
 Suspensii reactive: Toate sistemele de suspensie tradiționale sunt de
asemenea reactive. Când o roată trece peste o denivelare, schimbarea de
poziție a acesteia determină ca suspensia să se comprime sau să se extindă.
 Într-un mod asemănător, virarea, frânarea sau accelerația determină mișcări
ale suspensiei, permițând caroseriei să se încline lateral sau față/spate.
 În acest grup pot fi incluse sisteme de suspensie ce sunt capabile să controleze
garda la sol în funcție de schimbările în greutate sau în forțele aerodinamice.
Acest sistem este de asemenea capabil să reacționeze la încărcări interne,
precum balansul lateral, și să contracareze efectele.
 Uneori, sunt proiectate sisteme pasiv-reactive, care au o interconexiune pasivă
ce facilitează împărțirea egală a încărcăturii între roți.
5/67
 Suspensie semi-activă: Principala caracteristica a sistemului semi-activ o
reprezintă capacitatea suspensiei de a-și schimba continuu coeficientul de
amortizare, făcând amortizorul mai dur sau mai moale, în funcție de starea
drumului.
 Acest lucru se realizează prin conectarea la o unitate electronică de control
(ECU) a 4 amortizoare cu coeficient de amortizare reglabil. Uneori, în afară
de soluția tandemului cu un arc tradițional, aceste amortizoare pot fi
combinate/împerecheate cu diferite soluții de reglare automată a gărzii la sol,
precum și cu sisteme tip Hydropneumatic, Hydrolastic, sau Hydragas.
 Principalele avantaje ale suspensiei semi-active sunt:
 Gardă la sol reglabilă, optimizată pentru confort și manevrabilitate
 Posibilitatea de a regla tăria suspensiei
 Suspensia se reglează automat în funcție de condițiile de drum
 Dimensiuni similare cu sistemele de suspensie tradiționale

6/67
 Suspensie activă: Sistemul de suspensie activă are capacitatea de a-și ajusta
parametrii de funcționare în mod continuu în funcție de condițiile de drum.
 Sistemul monitorizează constant diferiți parametri și îi reglează singur.
 Sistemul de suspensie activ are un controller embedded care comandă către
fiecare roată când, în ce direcție, la ce distanță și cât de repede să se miște.
 Sistemul incorporat ia aceste decizii prin intermediul unei rețele de senzori
care măsoară spre exemplu, viteza mașinii, accelerările laterale și
longitudinale și forțele de accelerare pe fiecare roată.
 După aceasta, controllerul trimite comanda la roată pentru a obține direcția
ideală în situația existentă.

7/67
2. Modelarea sistemelor mecanice simple
 Pentru a înţelege modelarea sistemelor de suspensie, va fi prezentat un
model al unui sistem mecanic simplu.
Legile lui Newton constituie fundamentul analizei sistemelor mecanice.
Principiul al doilea al mecanicii: suma forţelor care acţionează asupra
unui corp este egală cu produsul dintre masa şi acceleraţia corpului.
d2x
 F  m  a  m  dt 2
 Legea a treia a lui Newton afirmă că dacă un corp acționează asupra altui
corp cu o forță (forța de acțiune), cel de-al doilea corp acționează și el
asupra primului cu o forță (forța de reacțiune) de aceeași mărime și de
aceeași direcție, dar de sens contrar [Principiul acțiunii și reacțiunii].
Exemplu de sistem mecanic simplu: Sistemul masă-resort-amortizor

8/67
Modelarea sistemului:
Diagrama forţelor (de corp liber) pentru acest sistem este prezentată în
continuare.

 Forţa elastică este proporţională cu deplasarea, x, iar forţa de frecare


vâscoasă este proporţională cu viteza corpului, v.
 Ambele forţe se opun mişcării corpului şi sunt reprezentate în direcția
negativă a axei x.
 Prin însumarea forţelor din diagramă şi prin aplicarea legii a doua a lui
Newton obţinem:

 F x  F (t )  bx  kx  mx
 Această ecuaţie caracterizează complet starea dinamică a sistemului.

9/67
Pentru determinarea reprezentării de stare a sistemului mecanic, trebuie
transformată ecuaţia diferenţială de ordinul doi într-un sistem de ecuaţii
diferenţiale de ordinul unu.
Vor fi alese ca variabile de stare poziţia şi viteza corpului.
 x   x1 
x  
 x   x2 
Aceste variabile de stare corespund de fapt energiei potenţiale în resort şi
respectiv energiei cinetice a corpului.
Ecuaţia de stare va fi:
 x   0 1   x  0 
x            F (t )
 x  k / m  b / m  x  1 / m
Dacă suntem interesaţi de controlul poziţiei corpului, ecuaţia de ieşire este
 x
y  1 0   
 x 
10/67
Reminder 1.
Reprezentarea de stare standard a unui sistem continuu liniar invariant în
timp (SLIT) este:
x  Ax  Bu
y  Cx  Du (1)

unde:
x este vectorul variabilelor de stare (nx1),
x este derivata în raport cu timpul a vectorului de stare (nx1),
u este vectorul de intrare (px1),
y este vectorul de ieşire (qx1),
A este matricea sistemului (nxn),
B este matricea de intrare (nxp),
C este matricea de ieşire (qxn),
D este matricea de legătură directă între intrare şi ieşire (qxp). ■

11/67
Transformata Laplace a sistemului mecanic (în condiţii iniţiale nule) este:

ms2 X ( s )  bsX ( s )  F ( s )
De aici rezultă funcţia de transfer între intrare (forţă) şi ieşire (deplasare):

X (s) 1
H ( s)   2
F ( s ) ms  bs  k
Reminder 2.
Folosind Transformarea Laplace, este posibil să convertim reprezentarea de
stare (domeniul timp) într-o reprezentare frecvenţială intrare-ieşire,
cunoscută sub denumirea de funcţie de transfer.
Transformata Laplace a unei funcţii din domeniul timp, f(t), se defineşte ca:
  st
F ( s )  L f (t )  
0
e f t dt (2)

unde s    j este variabila complexă de frecvenţă.


12/67
Transformata Laplace a derivatei de ordinul n a unei funcţii este importantă:

d n f  n
L  n   s F ( s )  s n 1 f (0)  s n 2 f (0)  ...  f ( n 1) (0) (3)
 dt 

Metodele frecvenţiale sunt des utilizate pentru analiza unor sisteme LTI cu o
singură intrare şi o singură ieşire (SISO), descrise de ecuaţii de tipul:

dny dy d mu du
an n  ...  a1  a0 y (t )  bm m  ...  b1  b0u (t ) (4)
dt dt dt dt

Transformata Laplace a acestei ecuaţii este:

an s nY ( s )  ...  a1 sY ( s )  a0Y ( s )  bm s mU ( s )  ...  b1 sU ( s )  b0U ( s ) (5)


unde Y(s) şi U(s) sunt transformatele Laplace ale lui y(t) şi u(t).

13/67
Funcţia de transfer între intrarea U(s) şi ieşirea Y(s) este:
Y ( s ) bm s m  ...  b1 s  b0
H ( s)   (6)
U ( s ) an s n  ...  a1 s  a0
Aceasta se poate exprima şi sub forma poli-zerouri-amplificare:
N (s) ( s  z1 )( s  z2 )( s  z m )
H (s)  K (7)
D( s ) ( s  p1 )( s  p2 )( s  pn )
Zerourile funcţiei de transfer sunt rădăcinile numărătorului: N(s) = 0.
Polii funcţiei de transfer sunt rădăcinile numitorului: D(s) = 0.
Amplificarea sistemului este K = bm/an.
Funcţia de transfer poate fi determinată direct din reprezentarea de stare (1):
Y (s)
H ( s)   C ( sI  A) 1 B  D (8)
U ( s)

14/67
Elemente de analiză a sistemelor de ordinul doi
Sistemele de ordinul doi sunt des întâlnite în practică, fiind cele mai simple
sisteme dinamice care pot prezenta oscilaţii.
Multe sisteme reale de ordin superior pot fi modelate ca sisteme de ordinul
2 pentru a facilita analiza acestora şi proiectarea unor sisteme de control.
Un exemplu tipic este sistemul mecanic cu resort şi amortizor.
Forma generală a ecuaţiei diferenţiale este :
my  by  ay  u sau y  2n y  2n y  k2nu
Funcţia de transfer de ordinul doi este
1 k2n
G(s)  2 sau G(s)  2
ms  bs  a s  2n s  2n
Amplificarea de c.c. (DC Gain)
Amplificarea de c.c., k, este raportul dintre amplitudinea răspunsului la
intrare treaptă în regim staţionar şi amplitudinea intrării: k  1 / a .
15/67
Factorul de amortizare
Factorul de amortizare este o cantitate adimensională ce caracterizează
pierderile de energie datorate unor fenomene precum frecarea vâscoasă.
b

2 am
Pulsaţia (frecvenţa) naturală
Pulsaţia naturală este pulsaţia (rad/s) la care sistemul oscilează atunci când
nu există amortizare,   0 .
a
n 
m
Poli/Zerouri
Funcţia de transfer de ordinul 2 are doi poli:
p1,2  n  jn 1   2

16/67
Sisteme sub-amortizate
Dacă   1 , sistemul este sub-amortizat. Ambii poli sunt complecşi cu
părţile reale negative; deci sistemul este stabil dar oscilează.

Fig. 1. Harta poli-zerouri şi răspunsul la intrare treaptă pentru sistemul sub-amortizat de


ordinul doi

17/67
Durata regimului tranzitoriu (Settling Time)
Pentru sistemul sub-amortizat de ordinul doi, durata regimului tranzitoriu
poate fi aproximată prin ecuaţia:
 ln()
tr 
n
unde  este lăţimea procentuală a zonei de liniştire (de regulă 2% sau 5%)

Suprareglajul (Overshoot)
Suprareglajul procentual este procentul prin care sistemul depăşeşte
valoarea sa de regim staţionar (depăşirea procentuală maximă de către
mărimea de ieşire a valorii sale de regim staţionar).
Pentru sistemul de ordinul 2 sub-amortizat, suprareglajul procentual este
dependent de factorul de amortizare după relaţia:

1  2
%  e  100%
18/67
Sisteme supra-amortizate

Dacă   1 , sistemul este supra-amortizat. Ambii poli sunt reali şi


negativi; deci sistemul este stabil şi nu oscilează.

Fig. 2. Harta poli-zerouri şi răspunsul la intrare treaptă pentru sistemul supra-amortizat de


ordinul doi
19/67
Sisteme critic amortizate
Dacă   1 , sistemul este cu amortizare critică. Ambii poli sunt reali,
negativi şi egali. Sisteme critic amortizate se apropie de regimul staţionar
cu cea mai mare rapiditate, fără să oscileze.

Fig. 3. Harta poli-zerouri şi răspunsul la intrare treaptă pentru sistemul critic amortizat de
ordinul doi
20/67
Sisteme neamortizate
Dacă   0 , sistemul este neamortizat. Polii sunt pur imaginari; sistemul
este la limita de stabilitate şi răspunsul va oscila permanent.

Fig. 4. Harta poli-zerouri şi răspunsul la intrare treaptă pentru sistemul neamortizat de


ordinul doi

21/67
Caracteristicile de frecvenţă Bode pentru sistemele de ordinul doi

Fig. 5. Caracteristicile Bode pentru sistemul de ordinul doi

22/67
Caracteristica amplitudine-frecvenţă (magnitude Bode plot) a unui sistem
de ordinul doi scade cu -40dB pe decadă (după frecvenţa de frângere), iar
caracteristica fază-frecvenţă (phase Bode plot) scade de la 0 la -180 de
grade (de la joasă frecvenţă la înaltă frecvenţă).
Pentru sistemele sub-amortizate, există un vârf de rezonanţă al
caracteristicii amplitudine-frecvenţă aproape de frecvenţa naturală (în
exemplu de 10 rad/s).
Lăţimea vârfului depinde de amortizarea sistemului, şi este caracterizată de
aşa-numitul factor de calitate, sau Q-Factor.
Factorul de calitate reprezintă o proprietate importantă a sistemului în
domeniul prelucrării semnalelor.

1
Q
2

23/67
3. Modelarea şi analiza sistemelor de suspensie
Proiectarea unui sistem de control al suspensiei autovehiculelor este o
problemă dificilă. De regulă, este utilizat un model 1/4 (una din cele patru
roți) („sfertul de mașină”) în scopul reducerii problemei la un sistem mono-
dimensional (1D) cu resort (arc) și amortizor.
Modelul din Fig. 6 reprezintă o posibilă descriere a unui sistem de suspensie,
elementul de execuție (actuatorul) fiind inclus în model. Elementul de
execuție poate genera o forță U pentru controlul mișcării corpului unui
autovehicul (de exemplu, un autobuz).

Fig. 6. Modelul suspensiei unui autobuz (1/4)


24/67
Parametrii sistemului şi notaţii (exemplu):
(M1) 1/4 din masa corpului (autobuzului) 2500 kg
(M2) masa suspensiei 320 kg
(K1) constanta resortului suspensiei 80,000 N/m
(K2) constanta resortului roţii şi cauciucului 500,000 N/m
(b1) factorul de amortizare al suspensiei 350 N.s/m
(b2) factorul de amortizare al roţii/cauciucului 15,020 N.s/m
(U) forţa (mărimea de comandă)
Ecuaţiile mişcării
Din Fig. 6, dacă se aplică legea lui Newton se obţin ecuaţiile dinamice:
M 1 x1  b1 ( x1  x2 )  K1 ( x1  x2 )  u
M 2 x2  b1 ( x1  x2 )  K1 ( x1  x2 )  b2 ( w  x2 )  K 2 ( w  x2 )  u

25/67
Funcţiile de transfer

Presupunem că toate condiţiile iniţiale sunt nule. Aceasta înseamnă că


ecuaţiile vor reprezenta situaţia în care roata vehiculului trece peste o
denivelare.
Ecuaţiile dinamice pot fi descrise prin funcţii de transfer (sistemul este liniar)
prin aplicarea transformării Laplace.
Obţinerea funcţiilor de transfer G1(s) şi G2(s) este prezentată în continuare,
unde prima funcţie de transfer are ieşirea X1-X2 şi intrarea U, respectiv cea de-
a doua funcţie de transfer are ieşirea X1-X2 şi intrarea W.

( M 1 s 2  b1 s  K1 ) X 1 ( s )  (b1 s  K1 ) X 2 ( s)  U ( s )

(b1 s  K 1 ) X 1 ( s )  ( M 2 s 2  (b1  b2 ) s  ( K 1  K 2 )) X 2 ( s )  (b2 s  K 2 )W ( s )  U ( s )

26/67
( M 1 s 2  b1 s  K1 )  (b1 s  K1 )   X 1 ( s)
   
  (b1 s  K1 ) ( M 2 s  (b1  b2 ) s  ( K1  K 2 ))  X 2 ( s )
2

 U ( s) 
 
(
 2b s  K 2 )W ( s )  U ( s ) 

( M 1 s 2  b1 s  K1 )  (b1 s  K1 ) 
A 
  (b1 s  K1 ) ( M 2 s  (b1  b2 ) s  ( K1  K 2 ))
2

( M 1 s 2  b1 s  K1 )  (b1 s  K1 ) 
  det  
  (b1 s  K1 ) ( M 2 s  (b1  b2 ) s  ( K 1  K 2 ))
2

  ( M 1 s 2  b1 s  K1 )  ( M 2 s 2  (b1  b2 ) s  ( K 1  K 2 ))  (b1 s  K1 )2

27/67
Pentru calculul final se inversează matricea A a sistemului şi apoi realizează
înmulţirea cu intrările U(s) şi W(s) în partea dreaptă astfel:
 X 1 (s) 1
 X ( s)   
 2 
( M 2 s 2  b2 s  K 2 ) (b1b2 s 2  (b1 K 2  b2 K 1 ) s  K 1 K 2 )  U ( s) 
  
  M 1 s 2
( M b
1 2 s 3
 ( M K
1 2  b b
1 2 ) s 2
 (b K
1 2  b K
2 1 ) s  K K )
1 2  W ( s ) 
Când se consideră doar intrarea U(s), conform principiului superpoziţiei
valabil pentru sistemele liniare, se setează W(s) = 0. Astfel se obţine G1(s):
X 1 ( s )  X 2 ( s ) ( M 1  M 2 ) s 2  b2 s  K 2
G1 ( s )  
U (s) 
Atunci când considerăm doar intrarea W(s) (perturbaţia), setăm U(s) = 0.
Astfel obţinem funcţia de transfer G2(s):
X 1 ( s )  X 2 ( s )  M 1b2 s 3  M 1 K 2 s 2
G2 ( s )  
W (s) 
28/67
Specificaţii (cerinţe) de proiectare
O suspensie performantă trebuie să fie caracterizată de o ţinută de drum bună,
cu asigurarea concomitentă a confortului la trecerea peste denivelări sau la
întâlnirea unor gropi.
Atunci când vehiculul este afectat de perturbaţii provocate de starea drumului
(găuri, crăpături, denivelări etc.), corpul vehiculului trebuie să nu aibă oscilaţii
mari, iar aceste oscilaţii trebuie să se amortizeze rapid.
Deoarece distanţa X1-W este dificil de măsurat, iar deformarea cauciucului
(X2-W) este neglijabilă, se va utiliza distanţa X1-X2 în locul distanţei X1-W ca
ieşire a sistemului.
Perturbaţia W va fi simulată printr-o intrare de tip treaptă, ceea ce corespunde,
de exemplu, întâlnirii unui obstacol.
Trebuie proiectat un controller bazat pe reacţie astfel încât, de exemplu,
suprareglajul să fie mai mic de 5% şi durata regimului tranzitoriu sub 5 sec.
(Dacă autobuzul trece peste un obstacol de 10 cm, corpul acestuia să oscileze
în domeniul +/- 5 mm şi să revină la un comportament lin în 5 sec.).
29/67
Temă. Să se calculeze şi să se ploteze răspunsul sistemului în circuit deschis
şi în circuit închis (pentru o funcţie de transfer a regulatorului C(s)=1).
Soluţie. Matlab:

Circuit deschis (Open-loop):


M1 = 2500;
M2 = 320;
K1 = 80000;
K2 = 500000;
b1 = 350;
b2 = 15020;

s = tf('s');
G1 =
((M1+M2)*s^2+b2*s+K2)/((M1*s^2+b1*s+K1)*(M2*s^2+(b1+b2)*s+(K1+K2
))-(b1*s+K1)*(b1*s+K1));

step(G1)

30/67
-5
x 10 Step Response
2.5

Amplitude 1.5

0.5

0
0 5 10 15 20 25 30 35 40 45 50
Time (seconds)

Fig. 7. Răspunsul sistemului în circuit deschis (G1) (în raport cu mărimea de comandă)

 Din Fig. 7 se observă că sistemul este sub-amortizat. Persoanele din vehicul vor
simţi mici oscilaţii ale acestuia. Durata regimului tranzitoriu (settling time) este
foarte mare.
31/67
G2 =
(-M1*b2*s^3-M1*K2*s^2)/((M1*s^2+b1*s+K1)
*(M2*s^2+(b1+b2)*s+(K1+K2))-(b1*s+K1)*(b1*s+K1));
step(0.1*G2)

Fig. 8. Răspunsul sistemului în circuit deschis (G2) (în raport cu perturbaţia)


 Din Fig. 8 se observă că la o intrare treaptă a perturbaţiei (denivelare) de 10 cm,
corpul vehiculului oscilează foarte mult timp (~50 sec.) cu o amplitudine iniţială de
peste 8 cm. Suprareglajul şi durata regimului tranzitoriu nu sunt acceptabile din
punct de vedere al confortului.
32/67
Soluţia la aceste probleme constă în adăugarea unui regulator (controller,
compensator) şi proiectarea corespunzătoare a unui sistem cu reacţie, cu
scopul de a îmbunătăți performanţele sistemului.
Schema sistemului de conducere în circuit închis (cu reacţie) este prezentată
în figura următoare.

proces

Fig. 9. Schema bloc a sistemului de control al suspensiei (circuit închis = cu reacţie)

33/67
Circuit închis (Closed-loop):
Soluţia analitică (C(s)=1):
C ( s )G1 ( s ) G1 ( s )
H 0 (s)   
1  C ( s )G1 ( s ) 1  G1 ( s )
( M 1  M 2 ) s2  b2 s  K2
  
( M  M 2 ) s  b2 s  K2
2
1 1

( M 1  M 2 ) s2  b2 s  K2
 
  ( M 1  M 2 ) s  b2 s  K2
2

( M 1  M 2 ) s2  b2 s  K2

( M 1s2  b1s  K1 )  ( M 2 s2  (b1  b2 ) s  ( K1  K2 ))  (b1s  K1 )2  ( M 1  M 2 ) s2  b2 s  K2

Observaţie:
X 1 ( s)  X 2 ( s) ( M 1  M 2 ) s 2  b2 s  K 2
G1 ( s)  
U ( s) ( M 1 s 2  b1 s  K1 )  ( M 2 s 2  (b1  b2 ) s  ( K1  K 2 ))  (b1 s  K1 )2
34/67
Matlab:
feedback(G1,1)

Funcţia de transfer în circuit închis:


2820 s^2 + 15020 s + 500000
----------------------------------------------------------------
800000 s^4 + 3.854e007 s^3 + 1.481e009 s^2 + 1.377e009 s + 4e010
-5
x 10 Step Response
2.5

1.5
Amplitude

0.5

0
0 5 10 15 20 25 30 35 40 45 50
Time (seconds)

Fig. 10. Răspunsul sistemului în circuit închis (H0)


35/67
4. Proiectarea unor regulatoare PID pentru suspensii
Proiectarea se va realiza pe baza funcţiilor de transfer:
X 1 ( s)  X 2 ( s ) ( M 1  M 2 ) s 2  b2 s  K 2
G1 ( s )   (9)
U (s) 
X 1 ( s )  X 2 ( s )  M 1b2 s 3  M 1 K 2 s 2
G2 ( s )   (10)
W ( s) 
Schema sistemului de conducere cu regulator PID va fi de forma din Fig. 11.

proces

Fig. 11. Schema sistemului de control al suspensiei (cu regulator PID şi F(s)G1(s) = G2(s))
36/67
Regulatorul PID
Se va proiecta un controller bazat pe reacţie de tip PID astfel încât
suprareglajul să fie mai mic de 5% şi durata regimului tranzitoriu sub 5 sec.
Funcţia de transfer a unui regulator PID este de forma:

Ki K d s 2  K p s  Ki  1 
C (s)  K p   Kd s   K p 1   Td s  (12)
s s  Ti s 
unde K p , K i şi K d sunt factorii de amplificare corespunzători elementelor P,
I şi D.
Regulatorul PID poate fi parametrizat şi prin următorii parametri: factorul de
proporţionalitate Kp, constanta de timp de integrare (reset time) Ti şi constanta
de timp de derivare Td.
Procesul de proiectare al regulatorului PID constă în stabilirea unor valori
corespunzătoare pentru parametri, prin metode de acordare sau prin alte
proceduri de proiectare.
37/67
Alegerea parametrilor
Exemplu de valori ale parametrilor:
K p  208025 , K i  832100 , K d  635075
Exemplu de implementare în MATLAB:
Kd = 208025;
Kp = 832100;
Ki = 624075;
C = pid(Kp,Ki,Kd);

Dacă se doreşte simularea răspunsului sistemului în circuit închis cu


regulatorul PID, considerând perturbaţia W şi ieşirea X1-X2, se poate folosi
comanda (funcţia F se poate calcula cu formula F(s) =G2(s)/G1(s)):
sys_cl=F*feedback(F*G1,C);

Astfel este creată funcţia de transfer în circuit închis în MATLAB şi se poate


obţine răspunsul la intrare treaptă (perturbaţie de 0.1 m).
t=0:0.05:5; step(0.1*sys_cl,t)
38/67
Fig. 12. Răspunsul sistemului în circuit închis (regulator PID) la o intrare (perturbaţie) de
tip treaptă

 Se observă că suprareglajul este de aprox. 9mm (mai mare decât cerinţa de 5mm),
dar durata regimului tranzitoriu este satisfăcătoare, sub 5 sec.
 Rezultă că sunt necesare alte valori ale parametrilor.

39/67
Controlul sistemului de suspensie constă în acest moment în acordarea
parametrilor regulatorului PID.
Această acordare se poate face utilizând diverse metode practice de acordare
(Ziegler-Nichols, etc.) (Temă), sau metode de acordare automată în Matlab,
sau metode frecvenţiale, sau locul rădăcinilor etc.
Există o legătură directă între polul şi zerourile regulatorului PID şi parametrii
regulatorului, după cum există o legătură directă între polul şi zerourile
regulatorului PID şi polii şi zerourile sistemului în circuit închis (problemă de
alocare).
Din răspunsul la intrare treaptă anterior se observă că cerinţa de suprareglaj nu
este respectată. Pentru rectificare, se pot modifica valorile parametrilor şi se
recalculează răspunsul la intrare treaptă astfel:
Kd=2*Kd;
Kp=2*Kp;
Ki=2*Ki;
C=pid(Kp,Ki,Kd);
sys_cl=F*feedback(F*G1,C);
step(0.1*sys_cl,t)
40/67
Fig. 13. Răspunsul sistemului în circuit închis (regulator PID) la o intrare (perturbaţie) de
tip treaptă – modificarea parametrilor regulatorului

 Acum atât suprareglajul cât şi durata regimului tranzitoriu satisfac cerințele de


proiectare.
 Rezultă că regulatorul PID poate controla suspensia în mod adecvat, prin alegerea
corespunzătoare (acordarea) parametrilor acestuia.
41/67
5. Metode de proiectare frecvenţiale
Scopul proiectării este același ca în capitolul anterior: proiectarea unui
controller bazat pe reacţie astfel încât suprareglajul să fie mai mic de 5% şi
durata regimului tranzitoriu sub 5 sec.
Trasarea caracteristicilor de frecvență
Ideea principală a proiectării în domeniul frecvență constă în utilizarea
caracteristicilor Bode ale funcției de transfer în circuit deschis pentru
impunerea unui anumit răspuns sistemului în circuit închis.
Adăugarea unui controller va determina schimbarea caracteristicilor de
frecvență în circuit deschis și implicit a răspunsului în circuit închis.
Prima etapă constă în trasarea caracteristicilor de frecvență Bode în circuit
deschis (amplitudine-frecvență și fază-frecvență).
Se pot utiliza următoarele comenzi Matlab:
w = logspace(-1,2);
bode(G1,w)

42/67
Fig. 14. Caracteristicile Bode ale sistemului în circuit deschis
 Va fi utilizată în continuare o reprezentare normalizată, prin ajustarea factorului de
amplificare K, care are are ca efect deplasarea caracteristicii pe axa amplitudinilor
cu 20*logK (fără efect asupra fazei).
 Prin urmare se va scala caracteristica din Fig. 14 cu K=100.000 (100dB).
43/67
K=100000;
bode(K*G1,w)

Fig. 15. Caracteristicile Bode ale sistemului în circuit deschis (normalizate)

44/67
Adăugarea unui regulator cu avans de fază (lead control)
Din Fig. 15 se poate observa că faza are o formă concavă în zona de 5 rad/sec.
Din acest motiv se justifică adăugarea unui element cu fază pozitivă
(anticipativă, derivativă).
Deoarece o margine de fază mare conduce la un suprareglaj mic (rezervă de
stabilitate mare), se poate adăuga un element cu faza de +140 de grade în zona
de 5 rad/sec.
Vor fi utilizate două controllere de ordinul 1 (fiecare poate contribui cu max.
+90 de grade), care de fapt au forma unor regulatoare PD reale:
Ts  1 Ts  1
C (s)  
aTs  1 aTs  1
Etape:
1. Se determină surplusul necesar de fază: pentru +140 de grade sunt necesare
+70 de grade pentru fiecare regulator.
2. Se determină frecvența la care trebuie intervenit: aprox. 5.0 rad/sec.
45/67
3. Se determină constanta a a regulatorului din relația următoare (distanța
dintre zerou și pol):
1  sin 70
a  0.031
1  sin 70 

4. Se determină constanta T din următoarea relație (frecvența trebuie aleasă


astfel încât faza maximă să fie adăugată la 5 rad/sec.):
1 1
T   1.134
 a 5 0.031
Regulatoarele (de fapt un regulator ce conține două regulatoare tipizate) se
introduc în sistem folosind, de exemplu, următorul program Matlab:
a = (1-sin(70/180*pi))/(1+sin(70/180*pi));
w=5;
T=1/(w*sqrt(a));
aT=sqrt(a)/w;
numc = conv([T 1], [T 1]);
denc = conv([aT 1], [aT 1]);
C = tf(numc,denc);
margin(K*C*G1)
46/67
Fig. 16. Caracteristicile Bode ale sistemului în circuit deschis, după adăugarea
regulatorului dublu cu avans de fază

 Faza se păstrează peste -180 de grade, este crescută în zona de interes, iar marginea
de fază este suficient de mare.
47/67
Răspunsul sistemului în circuit închis
Structura sistemului în circuit închis este cea din Fig. 11.
Funcția de transfer a sistemului în circuit închis și răspunsul la intrare treaptă
de 0.1 m se pot obține în Matlab:
sys_cl = F*feedback(G1,K*C);

t=0:0.01:5;

step(0.1*sys_cl,t)

axis([0 5 -.01 .01])

Din Fig. 17 se observă că amplitudinea răspunsului este mult mai mică decât
cerința impusă (prin suprareglaj) iar durata regimului tranzitoriu este mai mică
decât 5 sec. (amplitudinea răspunsului sub 0.0001 m, adică 1% din intrare,
după aprox. 4 sec.).

48/67
Fig. 17. Răspunsul sistemului în circuit închis la intrare treaptă (regulator dublu cu avans
de fază)

49/67
Din caracteristicile Bode se observă că prin creșterea amplificării se poate
crește frecvența de trecere și prin urmare se crește rapiditatea răspunsului,
după cum se poate observa din Fig. 18. Exemplu:
numc = 4*conv([T 1], [T 1]); denc = conv([aT 1], [aT 1]);
C = tf(numc,denc);
sys_cl = F*feedback(G1,K*C);
t=0:0.01:5; step(0.1*sys_cl,t)
axis([0 5 -.01 .01])

Fig. 18. Răspunsul sistemului în circuit închis la intrare treaptă (amplificare mărită)
50/67
6. Proiectarea regulatorului în spaţiul stărilor

Proiectarea unui regulator bazat pe reacție după stare necesită utilizarea


ecuațiilor dinamice de stare ale sistemului de suspensie, care se pot obține din
ecuațiile mișcării prezentate în capitolul 3. Vom nota Y1=X1-X2.

 0 1 0 0 
 0 0 
  b1b2 b  b b b  K   b1   1 b1b2 
 x1   0  1  1  1  2   1  
 1 x   M M 1M 2 
 x   M 1 M 2 M
 1 1M M 2 M 2 M 1 M 1    1
 u
b2   
x
 1    b2  b1 b1 b2   1   
 y 1   0      1   y1  0   w
 M 2  
   M2  M1 M2 M2    y   
 y1   K 2  K1 K1 K2    1   1  1  K2 
 M 0      0 
 2  M1 M2 M2   M1 M2 M2 

 x1 
 x 
u 
y  0 0 1 0 1
 0 0 
 y1   w
 
 y 1 
51/67
Scopul reglării: proiectarea unui regulator bazat pe reacţie după stare astfel
încât suprareglajul să fie mai mic de 5% şi durata regimului tranzitoriu sub 5
sec. (Dacă autobuzul trece peste un obstacol de 10 cm, corpul acestuia să
oscileze în domeniul +/- 5 mm şi să revină la un comportament lin în 5 sec.).
Reprezentarea de stare în Matlab:
m1 = 2500;
m2 = 320;
k1 = 80000;
k2 = 500000;
b1 = 350;
b2 = 15020;
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];
sys=ss(A,B,C,D);

52/67
Proiectarea unui regulator cu reacție după stare
Vom presupune că toate stările sunt măsurabile (ceea ce nu este adevărat în
practică; în astfel de cazuri se utilizează observere de stare).
Schema bloc a sistemului cu reglare după stare este prezentată în figura
următoare.

proces

Reacție după stare

Fig. 19. Schema bloc a sistemului în circuit închis cu reglare după stare

53/67
Polinomul caracteristic al sistemului în circuit închis este determinantul
expresiei (sI-(A-B[1,0]TK)).
Această expresie apare în locul celei clasice sI-(A-BK) deoarece controllerul
K controlează doar forța de intrare u și nu și perturbația w (denivelarea
drumului).
Va fi utilizată și o acțiune de tip integral pentru anularea erorii staționare de
poziție. Prin urmare se augmentează (se mărește) vectorul de stare cu o stare
suplimentară y2 obținută prin integrarea diferenței y1=x1-x2.
Reprezentarea de stare în Matlab devine de ordinul 5:
Aa = [[A,[0 0 0 0]'];[C, 0]];
Ba = [B;[0 0]];
Ca = [C,0];
Da = D;
sys=ss(Aa,Ba,Ca,Da);

54/67
Problema este asemănătoare cu proiectarea unui regulator PID. Componenta I
este obținută din integrarea noii stări. Componenta P este obținută prin
amplificarea mărimii y1=x1-x2.
Implementarea componentei D a ieșirii nu este posibilă, și prin urmare se va
utiliza derivata lui x1 care este disponibilă pentru reacție (de exemplu, derivata
lui x1 poate fi obținută prin integrarea ieșirii unui accelerometru montat pe
autobuz).
Regulatorul se implementează foarte simplu în Matlab:
K = [0 2.3e6 5e8 0 8e6]
K =
0 2300000 500000000 0 8000000

Aceste valori ale amplificărilor din vectorul K se pot obține, de exemplu, prin
încercări (trial and error).

55/67
Răspunsul sistemului în circuit închis
După adăugarea matricei (vectorului) K, ecuațiile de stare ale sistemului în
circuit închis devin:
 1  u 

x   A  B   K   x  B   
 0    w
y  Cx

unde vectorul de stare este x  x1 x1 y1 y 1 y2  , cu y2   y1 dt   ( x1  x2 )dt .


T

Răspunsul sistemului în circuit închis se poate obține în Matlab prin


adăugarea următoarelor comenzi:
t = 0:0.01:2;
sys_cl = ss(Aa-Ba(:,1)*K,-0.1*Ba,Ca,Da);
step(sys_cl*[0;1],t)
title('Closed-Loop Response to a 0.1-m Step')

56/67
Fig. 20. Răspunsul sistemului în circuit închis la intrare treaptă (reacție după stare)

 Cerințele impuse (suprareglaj sub 5% și durata regimului tranzitoriu sub 5 sec.) sunt
îndeplinite. Eroarea de regim staționar este zero.
57/67
7. Proiectarea controllerelor numerice pentru suspensii
Proiectarea unui regulator numeric se bazează pe utilizarea ecuațiilor
dinamice de stare ale sistemului de suspensie prezentate în capitolul anterior,
care vor fi convertite din domeniul continuu în domeniul discret. După aceea
va fi utilizată o tehnică de plasare a polilor.
Scopul reglării: proiectarea unui regulator numeric astfel încât suprareglajul
să fie mai mic de 5% şi durata regimului tranzitoriu sub 5 sec.
Selectarea perioadei de eșantionare
Prima etapă în procesul de proiectare a regulatorului discret constă în
conversia procesului din domeniul continuu în cel discret. În acest scop,
trebuie aleasă o perioadă de eșantionare corespunzătoare. Această alegere este
foarte importantă și depinde de proces.
În cazul suspensiei, posibila denivelare a drumului va ridica brusc roata și va
compresa arcul (K2) și amortizorul (b2). Deoarece masa suspensiei este mică
în raport cu cea a vehiculului, iar arcul este destul de rigid, suspensia se va
ridica repede, deci va crește rapid distanța x2.
58/67
Regulatorul va primi informații cu privire la efectul perturbației numai după o
perioadă de eșantionare, și prin urmare trebuie aleasă o astfel de perioadă cât
mai mică, astfel încât ieșirea x1-x2 să nu fie afectată prea mult de denivelare.
Pentru alegerea perioadei de eșantionare este utilă analiza răspunsului la
intrare treaptă în zona regimului tranzitoriu, folosind, de exemplu, programul:
m1 = 2500;
m2 = 320;
k1 = 80000;
k2 = 500000;
b1 = 350;
b2 = 15020;
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];
sys = ss(A,B,C,D);
step(sys*[0;1]*.1,0:0.0001:.005);
59/67
Fig. 21. Răspunsul sistemului în circuit deschis la intrare treaptă (regimul tranzitoriu)

 Se observă că arcul se comprimă foarte repede și depășește cerința de proiectare


(5mm la o treaptă de 0.1 m) după doar 0.001sec. Rezultă o posibilă setare a
perioadei de eșantionare la Te=.0005sec.
60/67
Conversia continuu - discret
Se poate realiza pe cale analitică sau cu un program de proiectare asistată. De
exemplu, în Matlab se poate folosi comanda c2d, cu trei argumente de intrare:
sistemul continuu, perioada de eșantionare și tipul eșantionatorului considerat.
Te = .0005; d_sys = c2d(sys,Te,'zoh')
d_sys =
a =
x1 x2 x3 x4
x1 1 0.0005 -3.126e-06 -1.802e-08
x2 -0.003461 1 -0.01244 -7.313e-05
x3 0.02338 5.852e-06 0.976 0.000494
x4 0.7705 0.0001935 -0.9112 0.9998
b =
u1 u2
x1 4.999e-11 8.506e-07
x2 1.999e-07 0.003461
x3 4.375e-10 -0.02338
x4 1.762e-06 -0.7705
c =
x1 x2 x3 x4
y1 0 0 1 0
d =
u1 u2
y1 0 0
Sample time: 0.0005 seconds. Discrete-time state-space model.
61/67
Adăugarea unei componente de tip integral
Pentru asigurarea unei erori staționare de poziție nule trebuie adăugat un
integrator, de exemplu prin conectarea acestui integrator în serie cu procesul.
Ca și la reglarea după stare (în domeniul continuu), se adaugă astfel o stare
suplimentară în sistem. În domeniul discret, integratorul poate fi implementat
prin aproximarea integralei folosind, de exemplu, metoda trapezelor:
x(k  1)  x(k )  Te u (k )
T
y (k )  x(k )  e u (k )
2
Codul Matlab corespunzător este următorul:
Ai = 1; Bi = Te; Ci = 1; Di = Te/2;
[As,Bs,Cs,Ds]=ssdata(d_sys);
Aa = [As, zeros(4,1); Bi*Cs, Ai];
Ba = [Bs; 0,0];
Ca = [Cs, 0];
Da = Ds;
d_sys_int = ss(Aa,Ba,Ca,Da,Te);
[Ad,Bd,Cd,Dd] = ssdata(d_sys_int);
62/67
Proiectarea regulatorului discret
Structura regulatorului discret este similară cu structura regulatorului cu
reacție după stare din domeniul continuu. Se poate folosi comanda Matlab
place pentru calculul matricei de amplificare K (prin plasarea polilor).
Trebuie plasați 5 poli ai sistemului (4 stări plus starea suplimentară datorată
integratorului); pot fi plasați de exemplu astfel încât să anuleze zerourile. Prin
urmare, trebuie determinate zerourile sistemului, folosind funcția de transfer a
sistemului discret (obținută din ecuațiile de stare discrete).
sys1 = d_sys_int*[1;0]; %select the first input
[num,den] = tfdata(sys1,'v');
z = roots(num)
z =
-0.9929
0.9986 + 0.0065i
0.9986 - 0.0065i

Vom plasa trei poli în locațiile celor trei zerouri. Cel de-al patrulea pol va fi
plasat în 0.9992 (pentru a corespunde la aprox. 10000 de eșantioane sau 5
sec.). Ultimul pol va fi plasat în 0.5 deoarece este rapid și deci neglijabil).
63/67
Programul Matlab care plasează polii și calculează matricea de amplificare
este următorul:
p1 = z(1);
p2 = z(2);
p3 = z(3);
p4 = .9992;
p5 = .5;

K=place(Ad,Bd*[1;0],[p1 p2 p3 p4 p5])
K =
1.0e+09 *
0.0534 0.0000 1.0898 0.0011 1.8286

Răspunsul în circuit închis


K va fi multiplicat cu [1 0]T, pentru că avem doar o intrare de tip comandă în
sistem (u). Răspunsul la intrare treaptă (negativă) de 0.1 m a perturbației este:
d_sys_cl = ss(Ad-Bd*[1;0]*K,Bd,Cd,Dd,Te);
step(-.1*d_sys_cl*[0;1],5);

64/67
Fig. 22. Răspunsul sistemului în circuit închis la intrare treaptă (regulator discret)

 Suprareglajul este sub 5mm, iar durata regimului tranzitoriu sub 5 sec.

65/67
Se poate realiza o mărire a zonei inițiale a răspunsului pentru o mai bună
vizualizare a regimului tranzitoriu inițial:
d_sys_cl = ss(Ad-Bd*[1;0]*K,Bd,Cd,Dd,T);
step(-.1*d_sys_cl*[0;1],5);
axis([0 0.1 -.01 .01])

Fig. 23. Răspunsul sistemului în circuit închis la intrare treaptă (regim tranzitoriu)
66/67
Bibliografie

[1] Åström, K. J., Introduction to Control, Lund Institute of Technology, 2004.


[2] Chin, C. S., Computer-Aided Control Systems Design: Practical Applications Using
MATLAB® and Simulink®, CRC Press, 2012.
[3] Dorf, R. C., Bishop, R. H., Modern Control Systems, Prentice Hall, 2001.
[4] Lurie, B., Enright, P., Classical Feedback Control: With MATLAB® and Simulink®,
CRC Press, 2011.
[5] MATLAB User’s Guide. The Mathworks Inc., USA, 2007.
[6] Messner, B., Tilbury, D., Hill, R., Taylor, J.D. et al. Control Tutorials for Matlab and
Simulink, University of Michigan, Carnegie Mellon, University of Detroit Mercy,
NSF and MathWorks, 2011-2014.
[7] http://auto.howstuffworks.com/car-suspension.htm

67/67

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