Sunteți pe pagina 1din 45

Sisteme automate incorporate / Tehnologii informatice în ingineria sistemelor/

Sisteme de conducere în robotică

Automotive Control
- Sisteme de tip pilot automat (cruise control) -

Dan Selişteanu

Departamentul de Automatică și Electronică

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


CUPRINS

1. Introducere
2. Modelarea sistemelor de tip pilot automat
3. Analiza sistemului de pilotare automată
4. Proiectarea unor regulatoare PID
5. Proiectarea regulatorului în spaţiul stărilor
6. Modelarea și controlul sistemelor de tip pilot automat în Simulink
Bibliografie

2/45
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/45
Definiții şi scurt istoric
 Sistemul de tip pilot automat (sau autopilot) este un sistem tehnic montat la
bordul unui vehicul (aeronavă, navă, navă spațială) care asigură conducerea
acestuia preluând unele dintre sarcinile pilotului, în special menținerea
stabilității pe traseul prestabilit.
 Cea mai răspândită utilizare a pilotului automat este în aviație, cu funcţiile:
 amortizare, prin care compensează oscilațiile avionului, care la viteze
supersonice nici nu pot fi atenuate de om;
 stabilizare, prin care aeronava este menținută într-o asietă (înclinare)
dată, de regulă orizontală;
 comandă, prin care modifică evoluțiile de zbor după un program care
cuprinde intrarea, menținerea și ieșirea din evoluție.
 Pilotul automat dispune de un canal prin care transmite comenzi elementelor
de execuție (de obicei cilindri hidraulici) care acționează asupra suprafețelor
de comandă principale (eleroane, profundor și direcție), dar şi asupra
motoarelor și suprafețelor de comandă secundare.
4/45
 La automobile, pilotul automat se bazează pe reglarea vitezei de deplasare.
 Reglarea vitezei cu regulator centrifugal a fost utilizată prima dată la
automobilele britanice Wilson-Pilcher şi la cele americane Peerless în anii
1900-1910. Tehnologia de tip regulator centrifugal a fost preluată de la
invenţia regulatorului cu bile de la maşinile cu abur (Watt şi Boulton, 1788).
 Pilotul automat modern (speedostat, tempomat) a fost inventat în SUA, 1948,
de Teetor (Imperial, 1958). Sistemul "Auto-pilot" calcula viteza de deplasare
folosind rotaţiile unui cablu şi acţiona printr-un motor electric asupra poziţiei
unei clapete de admisie (sau cablu de acceleraţie).
 În 1965, American Motors a introdus un regulator de viteză automat cu preţ
mic pentru maşinile mari cu transmisie automată. Sistemul "Cruise-
Command" folosea un buton ce era acţionat la atingerea vitezei dorite.
 Wisner a inventat "Automotive Electronic Cruise Control" în 1968, ca inginer
la RCA's Industrial and Automation Systems Division, Plymouth, Michigan,
acesta fiind primul dispozitiv electronic folosit pentru un pilot automat.
 Circuitul integrat Motorola MC14460 Auto Speed Control Processor a fost
primul CI utilizat în reglarea vitezei la automobile (anii ’80).
5/45
Funcţionare, avantaje și dezavantaje

 Într-un sistem de tip pilot automat, șoferul trebuie să aducă viteza vehiculului
la o anumită valoare, după care prin apăsarea unui buton (dispozitivul de
prescriere) setează viteza dorită la valoarea curentă a acesteia.

 Auto-pilotul primeşte informaţii despre viteza maşinii prin intermediul unui


senzor (un cablu conectat la cutia de viteze, un senzor care măsoară viteza de
rotaţie a roţii sau alte tipuri de senzori).

 Multe sisteme nu permit utilizarea pilotului automat sub o anumită viteză (de
regulă aprox. 50 km/h). Vehiculul va menţine viteza dorită prin modificarea
poziţiei cablului de acceleraţie prin intermediul unei bobine, unui servo-
mecanism cu vacuum, sau cu un sistem electronic built-in ('drive-by-wire').

 Pilotul automat trebuie să poată fi decuplat automat atunci când șoferul apasă
frâna, iar în anumite sisteme și ambreiajul. Uneori sistemele includ facilitatea
de a relua viteza după frânare.

6/45
 Sistemele adaptive moderne au capacitatea de a reduce viteza la întâlnirea
altor mașini sau obstacole.

 Termenul de pilot automat adaptiv (Adaptive Cruise Control - ACC) înseamnă


de fapt pilot automat îmbunătățit, de exemplu prin sisteme tip frânare
automată (automatic braking) sau reglare dinamică a vitezei (dynamic set-
speed type controls).

 Avantaje și dezavantaje ale pilotului automat:


 Util pentru distanțe lungi (reduce oboseala, crește confortul)
 Poate fi utilizat pentru evitarea depășirii vitezei legale
 Viteza prescrisă prea mare poate fi periculoasă în curbe
 Calea de rulare cu probleme poate afecta în mod negativ controlul
 Ploaia sau drumul alunecos pot duce la pierderea tracțiunii

7/45
2. Modelarea sistemelor de tip pilot automat
Sistemele de pilotare automată sunt exemple tipice de reglare în circuit închis
(cu reacție, sau cu feedback).
Scopul unui pilot automat este menținerea constantă a vitezei de deplasare a
vehiculului în pofida acțiunii peturbațiilor externe, cum ar fi, de exemplu,
schimbarea pantei drumului sau a vitezei și direcției vântului.
Acest scop este tipic pentru un sistem de reglare automată (de control) și poate
fi realizat prin măsurarea vitezei vehiculului, compararea cu referința (viteza
prescrisă) și ajustarea automată a accelerației conform unei legi de reglare.

Fig. 1. Diagrama forțelor pentru un model simplu ce descrie dinamica unui autovehicul
8/45
Vehiculul din Fig. 1, de masă m, este pus în mișcare prin intermediul unei
forțe u. Această forță este generată la nivelul interfeței dintre drum și roți.
Modelul este unul simplificat, deoarece nu ia în considerare efectul
dinamicilor trenului de rulare, cauciucurilor etc., considerat deja integrat în
forța u.
Forțele rezistive b  v , datorate rezistenței la înaintare și vântului sunt
considerate linare și proporționale cu viteza v.
Ecuațiile mișcării
Modelul simplificat din Fig. 1 corespunde unui sistem de ordinul 1 (cu
amortizare). Prin aplicarea legii a doua a lui Newton se obține:
mv  bv  u (1)
Viteza este mărimea reglată și totodată mărime de ieșire:
yv (2)

9/45
Modelul de stare
Deoarece sistemele de ordinul 1 au un singur regim de stocare a energiei, în
acest caz energia cinetică a vehiculului, vom avea o singură variabilă de stare,
viteza.
Reprezentarea de stare se obține din (1) și (2):
b 1
x  v  v u
m m (3)
yv
Parametrii sistemului (exemplu):
m - masa vehiculului: 1000 kg
b - coeficientul de amortizare: 50 N.s/m

10/45
Reprezentarea de stare în Matlab este de forma:
m = 1000;
b = 50;
A = -b/m;
B = 1/m;
C = 1;
D = 0;
cruise_ss = ss(A,B,C,D);

Funcția de transfer
Prin aplicarea transformării Laplace ecuațiilor mișcării în condiții inițiale nule
se obține funcția de transfer:
V ( s) 1 m / sec
P( s)  
U ( s) ms  b N  (4)

Reprezentarea funcției de transfer în Matlab este de forma:


s = tf('s');
P_cruise = 1/(m*s+b);
11/45
3. Analiza sistemului de pilotare automată
Specificaţii (cerinţe) de proiectare
Sistemul de tip pilot automat trebuie să satisfacă anumite cerințe. De exemplu,
pentru o forță nominală de 500 N, mașina va atinge viteza maximă de 10 m/s
(36 km/h).
Autovehiculul ar trebui să fie capabil să accelereze până la această viteză în
mai puțin de 5 sec., cu un suprareglaj de maxim 10% și o eroare staționară de
poziție de maximum 2%.
Rezultă următoarele specificații de proiectare:
 Timp de creștere < 5 sec.
 Suprareglaj < 10%
 Eroare staționară de poziție < 2%

12/45
Răspunsul sistemului în circuit deschis
m = 1000; b = 50; u = 500;
s = tf('s'); P_cruise = 1/(m*s+b);
step(u*P_cruise)

Fig. 2. Răspunsul sistemului în circuit deschis (P) (în raport cu mărimea de comandă)
 Nu apar oscilații și nici suprareglaj (tipic pentru un sistem de ordinul 1), se atinge
viteza dorită 10 m/sec., dar timpul de creștere este de peste 60 sec.
13/45
Polii sistemului în circuit deschis
Sistemul are un singur pol în s = -b/m.
pzmap(P_cruise)
axis([-1 1 -1 1])

Fig. 3. Harta poli-zerouri a sistemului în circuit deschis


 Polul este real și negativ (sistem stabil). Rapiditatea depinde de mărimea polului.

14/45
Caracteristicile Bode în circuit deschis
bode(P_cruise)

Fig. 4. Caracteristicile Bode în circuit deschis


 Caracteristicile de frecvență sunt tipice pentru sistemul de ordinul 1.
Trebuie proiectat un controller (regulator) care să poată modifica poziția
polilor/zerourilor sistemului în circuit închis (polul instalației nu poate fi
modificat) pentru satisfacerea cerințelor (creșterea rapidității răspunsului).
15/45
4. Proiectarea unor regulatoare PID
Structura de control
Schema bloc a sistemului de reglare automată cu reacţie este cea din Fig. 5.
regulator proces

Fig. 5. Schema bloc a sistemului de reglare automată

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  (5)
s s  Ti s 
unde K p , K i şi K d sunt factorii de amplificare corespunzători elementelor P,
I şi D.

16/45
În Matlab, regulatorul se poate introduce astfel:
C = pid(Kp,Ki,Kd)
C =
1
Kp + Ki * --- + Kd * s
s

with Kp = 1, Ki = 1, Kd = 1

Continuous-time PID controller in parallel form.

Regulator proporţional
Se utilizează regulatorul C = Kp. Funcţia de transfer a sistemului în circuit
închis va fi:
Y ( s) P( s )C ( s ) Kp
H 0 ( s)    (6)
R( s ) 1  P( s)C ( s ) ms  b  K p

17/45
Exemplu de implementare a regulatorului proporţional în Matlab:
m = 1000; b = 50;
r = 10;

s = tf('s');
P_cruise = 1/(m*s + b);

Kp = 100;
C = pid(Kp);

H0 = feedback(C*P_cruise,1)

t = 0:0.1:20;
step(r*H0,t)
axis([0 20 0 10])
H0 =

100
------------
1000 s + 150

Continuous-time transfer function.

18/45
Fig. 6. Răspunsul sistemului în circuit închis (regulator proporţional)

 Se observă că nici eroarea de regim staţionar şi nici timpul de creştere nu satisfac


cerinţele de proiectare. Prin urmare, se poate creşte factorul de amplificare de
proporţionalitate, de exemplu Kp = 5000.
19/45
Fig. 7. Răspunsul sistemului în circuit închis (regulator proporţional, Kp mare)

 Eroarea de regim staționar este aproape nulă, timpul de creștere este foarte mic.
Răspunsul este totuși nerealist, pentru că pilotul automat nu poate accelera de la 0 la
10 m/sec. în mai puțin de 0.5 sec., datorită limitărilor mașinii (în general,
introducerea unui sistem automat nu determină creșterea performanțelor procesului).
 Limitările introduse de elementele de execuție sunt des întâlnite în practica
sistemelor automate. Din acest motiv trebuie analizată mărimea de comandă pentru
a verifica posibilitatea implementării fizice. Temă: plotarea evoluției comenzii.
20/45
Regulator proporţional-integrator PI
Pentru îmbunătățirea răspunsului și performanțelor sistemului de reglare se
poate implementa un controller PI.
Funcția de transfer a sistemului în circuit închis prevăzut cu regulator de tip PI
(C = Kp + Ki/s) este de forma:
Y (s) P( s )C ( s ) K p s  Ki
H 0 (s)    2
R( s ) 1  P( s )C ( s ) ms  b  K p s  K i (7)

Exemplu de implementare în Matlab a unui regulator de tip PI:


Kp = 800;
Ki = 40;

C = pid(Kp,Ki);

H0 = feedback(C*P_cruise,1);

step(r*H0,t)
axis([0 20 0 10])
21/45
Fig. 8. Răspunsul sistemului în circuit închis (regulator PI)

 Eroarea de regim staționar este nulă, timpul de creștere este sub 5 sec., nu există
suprareglaj.
22/45
Regulator PID
Deși răspunsul sistemului cu regulator PI este foarte bun, se pot testa legi de
reglare de tip PID, care înglobează și elementul derivator.
Funcția de transfer a sistemului în circuit închis prevăzut cu regulator de tip
PID (C = Kp + Ki/s +Kd*s) este de forma:
Y (s) P ( s )C ( s ) K d s3  K p s  Ki
H 0 ( s)   
R( s ) 1  P( s )C ( s ) (m  K d ) s 2  b  K p s  K i (8)

Exemplu de implementare în Matlab a unui regulator de tip PID:


Kp = 1; Ki = 1; Kd = 1;
C = pid(Kp,Ki,Kd);
H0 = feedback(C*P_cruise,1);

Temă: Să se ploteze răspunsul sistemului în circuit închis pentru diverse valori ale
parametrilor legii PID (prin încercări - trial and error).
Observație: În practică se utilizează regulatoare PID real (cu filtrare), deoarece funcția
de transfer a sistemului cu PID ideal este improprie (nu se poate implementa fizic).
23/45
5. Proiectarea regulatorului în spaţiul stărilor
Pentru proiectarea unui regulator cu reacție după stare, se utilizează
reprezentarea de stare dedusă în Capitolul 3.
b 1
x  v  v u
m m
yv
Parametrii sistemului: m - masa vehiculului: 1000 kg, b - coeficientul de
amortizare: 50 N.s/m.
Forța nominală u va fi considerată de 500 N, iar cerințele de proiectare sunt
cele din capitolele anterioare.
 Timp de creștere < 5 sec.
 Suprareglaj < 10%
 Eroare staționară de poziție < 2%

24/45
Proiectarea bazată pe alocarea polilor
Schema bloc a sistemului de reglare cu reacție după stare este cea din figura
următoare, unde:
K este matricea de amplificare a legii de reglare cu reacție după stare,
u = r-Kv este mărimea de comandă.

proces

Reacție după stare

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


25/45
Pentru proiectare se poate folosi o tehnică de plasare (de alocare) a polilor pentru
obținerea răspunsului dorit.
Polii sistemului în circuit închis pot fi determinați din ecuația caracteristică, adică
determinantul matricei [sI-(A-B*K)].
Dacă putem plasa polii în anumite locații dorite prin intermediul matricei (scalar în
cazul nostru particular) K, atunci se poate obține răspunsul dorit al sistemului.
Sistemul de auto-pilotare fiind simplu din punct de vedere al dinamicii (ordinul 1),
vom avea de alocat un singur pol, pe care putem, de exemplu, să îl plasăm în -1.5.
Comanda Matlab place poate fi utilizată pentru calculul lui K.
m = 1000; b = 50;
t = 0:0.1:10; u = 500*ones(size(t));
A = [-b/m]; B = [1/m]; C = [1]; D = [0];
sys = ss(A,B,C,D);
x0 = [0];
p1 = -1.5;
K = place(A,B,[p1])
sys_cl = ss(A-B*K,B,C,D);
lsim(sys_cl,u,t,x0); axis([0 10 0 0.35])
K =
1450
26/45
Răspunsul la intrare treaptă al sistemului în circuit închis este cel din figura următoare,
de unde se observă că timpul de creștere este bun, dar eroarea staționară de poziție este
nesatisfăcătoare.

Fig. 10. Răspunsul la intrare treaptă al sistemului în circuit închis (reacție după stare)
27/45
Pentru remedierea acestei probleme se poate utiliza un factor de scalare N :
Nbar = rscale(sys,K)*10/500;
sys_cl = ss(A-B*K,B*Nbar,C,D);

lsim(sys_cl,u,t,x0);
axis([0 10 0 11])

Fig. 11. Schema bloc a sistemului în circuit închis cu reglare după stare (cu factor de
scalare care resetează eroarea de regim staționar)

28/45
Fig. 12. Răspunsul la intrare treaptă al sistemului în circuit închis (reacție după stare, cu
factor de scalare)

 Cerințele de proiectare sunt îndeplinite.


29/45
6. Modelarea și controlul sistemelor de tip pilot automat în Simulink
Implementarea modelului în Simulink
Va fi utilizat modelul simplificat din Fig. 1, care corespunde unui sistem de
ordinul 1 (cu amortizare). Prin aplicarea legii a doua a lui Newton se obține:
mv  bv  u
Viteza este mărimea reglată și totodată mărime de ieșire:
yv
Pentru implementarea modelului în Simulink se deschide o nouă fereastră
model. Într-o primă etapă, se modelează integrala acceleraţiei (viteza):
dv
 dt dt  v
Pentru aceasta se utilizează un bloc Integrator (din biblioteca Continuous),
apoi se etichetează terminalele de intrare şi de ieşire "vdot" şi "v".

30/45
În continuare se construieşte modelul pe baza ecuaţiilor de mişcare folosind
elemente din bibliotecile Simulink: Gain block, Sum block (din biblioteca
Math Operations) etc., conform figurilor următoare.

Fig. 13. Etape în construcţia modelului Simulink

31/45
Pentru simularea aplicării unui semnal de tip treaptă pentru u se inserează un
Step block (din biblioteca Sources) la intrarea în Sum block.

Fig. 14. Schema Simulink a modelului simplificat (sistem auto-pilot)


32/45
Răspunsul sistemului în circuit deschis
Pentru obţinerea răspunsului sistemului în circuit deschis, se utilizează
fereastra Simulation, meniul Parameters.

Fig. 15. Setarea parametrilor în meniul Configuration Parameters


33/45
După rularea comenzilor Matlab de setare a parametrilor:
m = 1000; b = 50; u = 500;

prin rularea simulării (Start din meniul Simulation), prin dublu-click pe Scope
se obţine rezultatul următor.
Modelul Simulink poate fi folosit pentru proiectarea unui controller care să
conducă la îmbunătăţirea performanţelor.

Fig. 16. Răspunsul sistemului în circuit deschis la intrare de tip treaptă


34/45
Proiectarea controllerului în Simulink
Modelul sistemului prezentat în Fig. 14 poate fi extras din modelul Simulink
și poate fi transferat în Matlab. Aceasta se poate realiza prin utilizarea
blocurilor In1 și Out1 (Ports & Subsystems) și cu comanda linmod.

Fig. 17. Pregătirea modelului Simulink pentru extragere în Matlab


35/45
Se salvează fișierul sub forma "ccmodel.mdl" și se utilizează comenzile:
m = 1000; b = 50; u = 500;
[A,B,C,D] = linmod('ccmodel')
cruise_ss = ss(A,B,C,D);
A =
-0.0500
B =
1.0000e-03
C =
1
D =
0

Pentru verificare se calculează și se trasează (în Matlab) răspunsul la intrare


treaptă al sistemului (în circuit deschis).
step(u*cruise_ss)
36/45
Fig. 18. Răspunsul sistemului în circuit deschis la intrare de tip treaptă (în Matlab)

37/45
Implementarea unui regulator (controller) PI
Se poate folosi regulatorul PI proiectat anterior și implementat în Matlab,
caracterizat de parametrii Kp = 800 și Ki = 40.
Se va utiliza modelul Simulink anterior, încapsulat într-un bloc de tip
Subsistem. Pentru aceasta se deschide o nouă fereastră model și se aduce aici
un bloc Subsystem din biblioteca Ports & Subsystems.
Se efectuează dublu-click pe bloc, se deschide apoi modelul ccmodel.mdl, se
copiază acest model cu Ctrl-A, apoi Ctrl-V în subsistem.
Acum ar trebui să fie vizibile terminalele de intrare și de ieșire din subsistem.
Blocul se poate denumi "plant model".
În această etapă se poate construi un regulator PI cuplat la modelul procesului.
 Se prelungește linia de la ieșirea procesului.
 Se inserează un sumator și se asignează semnele "+-" la intrările acestuia.
 Linia de la ieșirea procesului se conectează la intrarea negativă a
sumatorului.
38/45
Fig. 19. Etape în construcţia regulatorului și a sistemului în circuit închis
39/45
 Se inserează un bloc Integrator după sumator.
 Se inserează și se conectează un bloc Gain după integrator pentru
implementarea lui Ki (și i se asignează valoarea lui Ki).
 Se inserează și se conectează un alt bloc Gain la ieșirea sumatorului
pentru implementarea lui Kp (și i se asignează valoarea lui Kp).

Fig. 20. Etape în construcţia regulatorului și a sistemului în circuit închis


40/45
 Se adună componentele de tip I și P cu ajutorul unui sumator.
 Se conectează ieșirea sumatorului la ieșirea procesului.

Fig. 21. Etape în construcţia regulatorului și a sistemului în circuit închis


41/45
 Se conectează apoi un generator de tip treaptă (Step Time = "0", Final
Value = "u") și un osciloscop (la intrare, respectiv la ieșire) – Fig. 22.
 Regulatorul se poate implementa și folosind direct un bloc de tip Transfer
Function (din biblioteca Continuous) – Fig. 23.

Fig. 22. Modelul Simulink al sistemului în circuit închis – regulator PI


42/45
Fig. 23. Modelul Simulink al sistemului în circuit închis – regulator PI, varianta cu
implementare directă printr-un bloc de tip funcție de transfer

43/45
Răspunsul sistemului în circuit închis
Pentru simularea răspunsului sistemului în circuit închis se setează timpul de
simulare din Simulation - Parameters (Stop Time =10). Se rulează comenzile:
m = 1000; b = 50; u = 10; Kp = 800; Ki = 40;

Se rulează simularea (Start din Simulation), apoi se deschide și se scalează


osciloscopul, obținându-se răspunsul sistemului în circuit închis.

Fig. 24. Răspunsul sistemului în circuit închis la intrare de tip treaptă (auto-pilot)
44/45
Bibliografie

[1] Adaptive Cruise Control. Audi A8 User's Manual, 292.561.4E0.00, Audi AG, 2008.
[2] Åström, K. J., Introduction to Control, Lund Institute of Technology, 2004.
[3] Chin, C. S., Computer-Aided Control Systems Design: Practical Applications Using
MATLAB® and Simulink®, CRC Press, 2012.
[4] Dorf, R. C., Bishop, R. H., Modern Control Systems, Prentice Hall, 2001.
[5] Lurie, B., Enright, P., Classical Feedback Control: With MATLAB® and Simulink®,
CRC Press, 2011.
[6] MATLAB User’s Guide. The Mathworks Inc., USA, 2007.
[7] 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.
[8] http://auto.howstuffworks.com/cruise-control2.htm

45/45

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