Sunteți pe pagina 1din 87

PROIECTARE SI

SIMULARE FIS-III,L6
Exemple:
Motor de c.c.;
Cruise control
Pendul invesat;
Altele

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 1
Ex. 1: proiectarea unui controler fuzzy de mentinere
a vitezei de croaziera (economice, presetate) la un
automobil (cruise control), 1
Exemplul 1: Sa se realizeze un sistem de reglare automata a vitezei
(economica, presetata) la un automobil, folosind atat o metoda clasica cu
regulator PID cat si una cu regulator fuzzy. Pentru simplitate se neglijeaza
inertia rotilor si se presupune ca frecarea (proportionala cu viteza masinii)
este in sens opus miscarii masinii, deci procesul (cruise control) se
reduce la un sistem simplu masa si amortizor (vezi Fig. 10.9).
Solutie:
1). Determinarea modelului matematic aferent. Cu presupunerile facute,
aplicand legea lui Newton avem:

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 2
Ex. 1: proiectarea unui controler fuzzy de mentinere
a vitezei de croaziera (economice, presetate) la un
automobil (cruise control), 2
{ m.dv/dt + bv = f
y=v

unde f este forta (constanta) produsa de motorul masinii, iar v este viteza
masurata; ca date numerice s-au folosit masa m = 1000 kg, b = 50 N.sec/m,
f = 500 N. La o forta de f = 500 N, masina obtine o viteza maxima de 10m/s.
Un automobil modern, din zilele noastre, ar trebui sa fie capabil sa
accelereze pana la aceasta viteza intr-un timp t (tc) < 5 sec. Pentru un astfel
de sistem simplu de control al vitezei, se poate presupune o suprareglare
acceptabila de 10% a vitezei si o eroare de regim stationar de 2%.
2). Functia de transfer a procesului de mai sus. Transformata Laplace:
{ msV(s) + bV(s) = F(s)
Y(s) = V(s)
Marimea de iesire fiind viteza, se exprima V(s) in functie de Y(s) si :

msY(s) + bY(s) = F(s) f.d.t. este: Y(s)/F(s) = 1/(ms + b) = 1/(1000s + 50) =


= (1/1000)/(s + 0.05)
Exemple a-z: Cruise control; Motor de CC;
29 November 2017 Pendul inversat 3
Ex. 1: proiectarea unui controler fuzzy de mentinere
a vitezei de croaziera (economice, presetate) la un
automobil (cruise control), 3 - proiectare controler conventional

O forta constanta de f = 500 N de pe loc (din start adica, automobilul fiind in


repaos) reprezinta o treapta la intrare, deci avem f F(s) = 500/s.
3). Raspunsul sistemului deschis se poate calcula, pentru a se vedea
comportarea sistemului fara controler. Deci, raspunsul iesirii la treapta
aplicata de 500/s este:
Y(s) = [(1/1000)/ (s+0.05)]*F(s) = {[(1/1000)/(s+0.05)]}.{500/s} = 0.5/[s(s+0.05)]
Descompunand in fractii simple obtinem:
Y(s) = 10/s 10/(s + 0.05),
Folosind transformata inversa Laplace se obtine raspunsul in timp:
y(t) = 10.u(t) 10.exp(-0.05*t).u(t),
unde u(t) = 1(t) = 1 este o treapta unitara
4). Cresterea performantelor sistemului folosind bucla inchisa. Cresterea
performantelor sistemului se poate face utilizand o bucla unitara (cu reactie
unitara) si alegand un controler adecvat in aceasta (v. Fig. 10.10).
Exemple a-z: Cruise control; Motor de CC;
29 November 2017 Pendul inversat 4
Ex. 1: proiectarea unui controler fuzzy de mentinere
a vitezei de croaziera (economice, presetate) la un
automobil (cruise control), 4, - proiectare controler conventional
Se alege un regulator standard PID, care are functia de transfer (f.d.t.)
C(s) = KP + KI/s + KDs = (KDs2 + KPs + KI)/s
F.d.t. a procesului este cea determinata mai sus: P(s) = 1/(ms + b)
Proiectarea controlerului inseamna selectarea adecvata a parametrilor KP, KD,
si KI pentru a fi satisfacute criteriile de performanta impuse (, tt (ts)),
adica:
1. Observarea pe raspunsul sistemului deschis a ceea ce trebuie facut
2. Adaugarea unei componente propoprtionale de control (KP > 0), pentru a
imbunatati/ micsora () tc (tr-rise time) = timpul de crestere, sau tt(ts).

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 5
Ex. 1: proiectarea unui controler fuzzy de mentinere
a vitezei de croaziera (economice, presetate) la un
automobil (cruise control), 5, - proiectare controler conventional
3. Folosirea unei componente derivative de control pentru a creste suprareglarea
si implicit micsorarea tc (tr), (deci KD > 0)
4. Folosirea unei componente integrale de control, pentru eliminarea erorii de
regim stationar (st = 0 KI > 0)
Se realizeaza fiecare din cei patru pasi de mai sus observandu-se (de fiecare
data) raspunsul sistemului la treapta, respectiv tt (tr), st si (exista si cat
anume, nu exista), adica daca se ating cei 10m/s si in cat timp (tt (ts)?) cu/
fara suprareglare ()?
Astfel, pentru punctul 2 de mai sus (KP > 0), vom lua KP = 100, iar KD si KI se seteaza la
zero: KD = 0, KI = 0. In acest caz, f.d.t. este
Y(s)/F(s) = 100/(1000s + 50 + 100) = 100/(1000s + 150) = 0.1/ (s + 0.15)
Aplicam o treapta de F(s) = 10/s (intereseaza sa obtinem viteza (dorita) de 10m/s !) si avem:
Y(s) = [0.1/(s + 0.15)].F(s) = [0.1/ (s + 0.15)].[10/s] = 1/[s(s+0.15)] = (1/0.15)/s (1/0.15)/(s +
0.15) = 6.6667/s 6.6667/(s + 0.15)
In domeniul timp, avem pentru marimea de iesire solutia
y(t) = 6.6667.u(t) 6.6667exp(-0.15t).u(t)

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 6
Ex. 1: proiectarea unui controler fuzzy de mentinere
a vitezei de croaziera (economice, presetate) la un
automobil (cruise control), 6, - proiectare controler conventional
Se observa ca valoarea de regim stationar se stabilizeaza la yst = 6.6667 10m/s!!
Deci, cu KP = 100 nu se atinge valoarea de regim stationar dorita si nici in tt (tr) < 5
sec!
De aceea, se alege kp = 1000 si, ca mai sus, avem:
Y(s)/F(s) = 1000/(1000s + 50 + 1000) = 1000/(1000s + 1050) = 1/(s + 1.05)
Y(s) = [1/(s + 1.05)]*F(s) = [1/(s + 1.05)].[10/s] = 10/[s(s + 1.05)] =
= 9.9502/s 9.9502/(s + 10005)
Rezulta, cu transformata Laplace inversa, raspunsul in domeniul timp:
y(t) = 9.9502.u(t) - 9.9502.exp(-1.005t).u(t)
Se observa ca acesta are inca o mica eroare de regim stationar, inadmisibila deci,
deoarece este > 2%: 10-9.9502 = 0.0498 = 4.98% > 2% ! De asemenea, se observa
ca raspunsul este aperiodic, deci nu avem suprareglare; in plus, ts (tt) < 5sec.
Pentru a elimina eroarea stationara alegem valori pozitive pentru KI (KI > 0), introducand o
componenta de control integral (integrator).Deci, cu KP = 1000, KI = 1 si KD= 0, avem
pentru f.d.t. a sistemului pe calea directa, Hd(s):

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 7
Ex. 1: proiectarea unui controler fuzzy de mentinere
a vitezei de croaziera (economice, presetate) la un
automobil (cruise control), 7, - proiectare controler conventional
Hd(s) = C(s).P(s) = [(KDs2 + KPs + KI)/s].[1/(ms + b)] =
= [(1000s + 1)/s].[1/(1000s + 50)] = (s + 0.001)/[s(s + 0.05)]
F.d.t. a sistemului inchis este:
Y(s)/F(s) = Hd(s)/[1 + Hd(s)] = {(s + 0.001)/[s(s + 0.05)]}/ {1 + (s + 0.001)/[s(s + 0.05)]} =
= (s + 0.001)/(s2 + 1.05s + 0.001)

>> num = [1 0.001];


>> den = [1 1.05 0.001];
>> sys = tf(num, den);
>> step(sys, 0:0.001:10.0);

Raspunsul sistemului se da in Fig. 10.11

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 8
Ex. 1: proiectarea unui controler fuzzy de mentinere
a vitezei de croaziera (economice, presetate) la un
automobil (cruise control), 8- proiectare controler conventional
Marimea reglata-viteza-cruise control
Fig. 10.11: Raspunsul sistemului "cruise control", cu PID avand KP = 1000, KI = 1 si KD= 0
1

0.9 System: sys


System: sys Peak amplitude: 0.954
0.8 Rise Time (sec): 2.64 Overshoot (%): 0
At time (sec): 10

0.7

0.6
Viteza(m/sec)

0.5

0.4

0.3

0.2

0.1

0
0 1 2 3 4 5 6 7 8 9 10
Timpul(sec) (sec)

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 9
Ex. 1: proiectarea unui controler fuzzy de mentinere
a vitezei de croaziera (economice, presetate) la un
automobil (cruise control), 9- proiectare controler conventional
Alegand valorile KP = 800, KI = 40, si KD = 0, f.d.t. a sistemului deschis devine C(s).P(s) =
[(KDs2 + KPs + KI)/s ].[1/(ms + b)] = [(800s + 40)/s].[1/(1000s + 50)] = 0.8/s
iar a sistemului inchis devine (evident, trial and error):
Y(s)/F(s) = [C(s).P(s)]/[1 + C(s).P(s)] = (0.8/s)/(1 + 0.8/s) = 0.8/(s +0.8)1).
(1). Analitic, fractiile simple sunt : Y(s) = 0.8/(s +0.8)*F(s) = [0.8/(s +0.8)]*(10/s) =
10/s - 10/(s +0.8),
Iar solutia in domeniul timp este: y(t) = 10.u(t) 10.exp(-0.8t).u(t)
(2). Numeric, utilizand Matlab, avem (v. mai jos programul iar in slide-ul urmator,
raspunsul in timp, adica viteza):

>> den1 = [1 0.8];


>> num1 = [0.8];
>> den1 = [1 0.8];
>> sys1 = tf(num1, den1);
>> step(sys1, 0:0.001:10.0);xlabel('Timpul(sec)');ylabel('Viteza(m/sec)');title('Marimea
reglata-viteza-cruise control')

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 10
Ex. 1: proiectarea unui controler fuzzy de mentinere
a vitezei de croaziera (economica) presetata, la un
automobil (cruise control), 10- proiectare controler conventional
Marimea reglata-viteza-cruise control
Fig. 10.12: Raspunsul sistemului "cruise control", cu PID avand KP = 800, KI = 40, si KD = 0
1
System: sys1
System: sys1
0.9 Peak amplitude: 1
Settling Time (sec): 4.89
System: sys1 Overshoot (%): 0
0.8 Rise Time (sec): 2.75 At time (sec): 10

0.7

0.6
Viteza(m/sec)

0.5

0.4

0.3

0.2

0.1

0
0 1 2 3 4 5 6 7 8 9 10
Timpul(sec) (sec)

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 11
Ex. 1: proiectarea unui controler fuzzy de mentinere
a vitezei de croaziera (economice, presetate) la un
automobil (cruise control), 11- proiectare controler fuzzy
Vom proiecta aceeasi problema-cruise control- utilizand metoda
Mamdani, o abordare fuzzy mai simpla, mult utilizata, abordarea
nenecesitand un model pentru a obtine un controler.
Definim:
Eroarea de viteza = diferenta dintre viteza dorita minus (-) viteza momentana/
masurata - vm (r-vm adica), unde viteza dorita este viteza de referinta (set-point).
Rezulta ca derivata erorii de viteza in raport cu timpul este acceleratia (v. Fig.
10.13)

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 12
Ex. 1: proiectarea unui controler fuzzy de mentinere
a vitezei de croaziera (economica) presetata, la un
automobil (cruise control), 12- proiectare controler fuzzy, 2
Deci, intuitiv: daca eroarea de viteza variaza de la mare la mic, mai precis de la
valori pozitive (e = r-vm automobilul merge incet, trebuie acceleratie mare) la
valori negative(automobilul merge prea repede, acceleratie mica sau zero, vezi
relatia r-vm), rata schimbarii vitezei (derivata vitezei, de/dt = acceleratia) va varia
de la valori negative la valori pozitive. Asadar, cunoasterea buna a comportarii
procesului duce la formularea unui set de reguli, care sunt, in acest caz:
Daca (IF) eroarea de viteza (e) este pozitiva (e > 0) si acceleratia este negativa (de/dt <
0), atunci (THEN) aplica o forta maxima (acceleratie maxima la pedala)
Daca (IF) eroarea de viteza este negativa (e < 0) si acceleratia este pozitiva (de/dt > 0),
atunci (THEN) aplica o forta minima (decelereaza, micsoreaza acceleratia la pedala)
Daca (IF) eroarea de viteza este zero si acceleratia este zero, atunci (THEN) aplica forta
normala (acceleratia normala la pedala).
Deci, controlerul fuzzy ce dorim a fi proiectat, va trebui sa aiba doua intrari
(eroarea (de viteza) si acceleratia = schimbarea erorii (de viteza)) si o iesire,
adica puterea motorului.
Schema posibila a acestui controler fuzzy este data in Fig. 10.13

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 13
Ex. 1: proiectarea unui controler fuzzy de mentinere
a vitezei de croaziera (economica) presetata, la un
automobil (cruise control), 13- proiectare controler fuzzy, 3
Pasii de proiectare a sistemului cruise control folosind un controler fuzzy,
cu ajutorul Matlab Fuzzy Toolbox sunt:

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 14
Ex. 1: proiectarea unui controler fuzzy de mentinere
a vitezei de croaziera (economica) presetata, la un
automobil (cruise control), 14- proiectare controler fuzzy, 4
Proiectare utilizand Editorul FIS: comanda >> fuzzy in fereastra de
comanda Matlab; FIS (Fig. 10.15 jos), se aleg seturi fuzzy triunghiulare
pentru variabilele fuzzy (cele trei: eroarea de viteza, acceleratia si cuplul/
forta motorului), v. slide-urile urmatoare.

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 15
Ex. 1: proiectarea unui controler fuzzy de mentinere
a vitezei de croaziera (economica) presetata, la un
automobil (cruise control), 14- proiectare controler fuzzy, 4

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 16
Ex. 1: proiectarea unui controler fuzzy de mentinere
a vitezei de croaziera (economica) presetata, la un
automobil (cruise control), 15- proiectare controler fuzzy, 4

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 17
Ex. 1: proiectarea unui controler fuzzy de mentinere
a vitezei de croaziera (economica) presetata, la un
automobil (cruise control), 16- proiectare controler fuzzy, 4

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 18
Ex. 1: proiectarea unui controler fuzzy de mentinere
a vitezei de croaziera (economica) presetata, la un
automobil (cruise control), 17- proiectare controler fuzzy, 4

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 19
Ex. 1: proiectarea unui controler fuzzy de mentinere
a vitezei de croaziera (economica) presetata, la un
automobil (cruise control), 18- proiectare controler fuzzy, 4

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 20
Ex. 1: proiectarea unui controler fuzzy de mentinere
a vitezei de croaziera (economica) presetata, la un
automobil (cruise control), 19- proiectare controler fuzzy, 4

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 21
Ex. 1: proiectarea unui controler fuzzy de mentinere
a vitezei de croaziera (economica) presetata, la un
automobil (cruise control), 20- proiectare controler fuzzy, 4

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 22
Ex. 1: proiectarea unui controler fuzzy de mentinere
a vitezei de croaziera (economica) presetata, la un
automobil (cruise control), 21- proiectare controler fuzzy, 4

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 23
Ex. 1: proiectarea unui controler fuzzy de mentinere
a vitezei de croaziera (economica) presetata, la un
automobil (cruise control), 22- proiectare controler fuzzy, 4

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 24
Ex. 1: proiectarea unui controler fuzzy de mentinere
a vitezei de croaziera (economica) presetata, la un
automobil (cruise control), 23- proiectare controler fuzzy, 5
FA pentru eroarea de
Viteza (cu trimf-3TL),
Vezi Fig. 10.16, dreapta.

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 25
Ex. 1: proiectarea unui controler fuzzy de mentinere
a vitezei de croaziera (economica) presetata, la un
automobil (cruise control), 24- proiectare controler fuzzy, 6
FA pentru acceleratie
(cu trimf, 3TL)
Idem, pentru marimea
de iesire, cuplul/forta
motorului masinii
(tot cu trimf, 3TL),
vezi Fig.10.17, dreapta

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 26
Ex. 1: proiectarea unui controler fuzzy de mentinere
a vitezei de croaziera (economica) presetata, la un
automobil (cruise control), 25- proiectare controler fuzzy, 7
Seturile fuzzy definite mai sus pentru cele doua intrari si pentru iesire, se
asociaza acum pentru a forma regulile fuzzy. La orice sistem care are doua
intrari si o iesire, aceste asocieri se pot fi vizualizate intr-un tabel, numit
tabel de decizii sau memorie asociativa fuzzy (vezi Fig. 10.18)
a = acceleratia (dv/dt)

a- NEG a-ZER a- POZ


e=
eroarea e-NEG Min Min Min

e-ZER Normal Normal Normal

e-POZ Max Max Max

Fig. 10.18: Tabelul memoriei asociative fuzzy (tabel decizii) cruise control
Exemple a-z: Cruise control; Motor de CC;
29 November 2017 Pendul inversat 27
Ex. 1: proiectarea unui controler fuzzy de mentinere
a vitezei de croaziera (economica) presetata, la un
automobil (cruise control), 18- proiectare controler fuzzy, 8
Memoria asociativa
(tabelul de decizii) este
un set de noua reguli
de forma IF-THEN
(v. Fig. 10.19)

Fig. 10.19: Cele noua reguli


IF-THEN ce rezulta pentru
cruise control

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 28
Ex. 1: proiectarea unui controler fuzzy de mentinere
a vitezei de croaziera (economica) presetata, la un
automobil (cruise control), 19- proiectare controler fuzzy, 9
Fig. 10.20: Inferenta
celor noua reguli ale
sistemului cruise control
(rule viewer la FIS-ul
construit cu Toolboxul
Fuzzy Logic din Matlab.

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 29
Ex. 1: proiectarea unui controler fuzzy de mentinere
a vitezei de croaziera (economica) presetata, la un
automobil (cruise control), 20- proiectare controler fuzzy, 10
Fig. 10.21: Suprafata de
control obtinuta cu surface
viewer-ul din Fuzzy System
Toolbox al Matlab.

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 30
Exemplul 2, Mcc
(Reglarea dinamicii motorului)

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 31
Ex. 2: proiectarea unui controller fuzzy pentru
controlul dinamicii unui servomotor de c.c., 22- proiectare
controler conventional: cerinte, specificatii, 1
Pentru ca un motor de c.c., utilizat in mod obinuit (si) ca actuator intr-un
sistem automat, sa poata fi controlat printr-un regulator clasic ( de exemplu
PID), este necesar sa dispunem de MM aferent sistemului respectiv. In
exemplul 2, se cere ca MM sa aiba posibilitatea determinarii unei relatii
intre pozitia unghiulara a rotorului si tensiunea aplicata acestuia (se stie ca
turatia si deci pozitia unui motor de c.c. se pot modifica atat prin intermediul
tensiunii rotorice, cat si prin modificarea fluxului (tensiunii) de excitatie).
MM se va determina folosind schema electrica si diagrama de corp liber a
rotorului motorului, din Fig. 10.22.

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 32
Ex. 2: proiectarea unui controller fuzzy pentru
controlul dinamicii unui servomotor de c.c., 23- proiectare
controler conventional, modelul matematic, 2
1). Ecuatiile MM aferent sistemului. Cuplul mecanic al motorului, T, este
proportional cu curentul rotoric, fiind dat de relatia (i = curentul rotoric, KT =
constanta de cuplu) T = KT .i, iar forta contraelectromotoare e (f.c.e.m.), este
proportionala cu viteza rotorului/ de rotatie d/dt = d(teta)/dt: e = Ke. d/dt.
Deoarece in SI constanta mecanica a rotorului (a armaturii) KT este egala cu
constanta motorului Ke, avem K = KT = Ke, iar ecuatiile devin:
T = K.i
e = K.d/dt
Notand cu J - inertia sarcinii antrenate, b-constanta de amortizare, R, L si V
rezistenta si impedanta bobinei rotorice, respectiv tensiunea aplicata la
bornele rotorului, folosind legea a doua a lui Newton si teorema a doua a lui
Kirchhoff, avem:
J.d2/dt2 + b. d/dt = T J.d2/dt2 + b.d/dt = K.i
L.di/dt + Ri + e = V sau L.di/dt + Ri + K.d/dt = V

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 33
Ex. 2: proiectarea unui controller fuzzy pentru
controlul dinamicii unui servomotor de c.c., 24- proiectare
controler conventional, functia de transfer, specif. de proiectare, 3
2). Functia de transfer: Transformata Laplace
Js2(s) + bs (s) = KI(s) s(Js + b) (s) = KI(s)
LsI(s) + RI(s) + Ks (s) = V(s) (Ls + R) I(s) + Ks (s) = V(s)
Se elimina curentul I(s): I(s) = {[s(Js + b)]/K}* (s), apoi se inlocuieste in
expresia a doua si rezulta:
{(Ls + R).[s(Js + b)]/k + Ks}* (s) = V(s); Rezulta:
(s)/ V(s) = 1/ {(Ls+R).[s(Js+b)]/K + K.s} = K/[LJs3 + s2(RJ+bL) + s(bR+K2)]
3). Specificatii de proiectare.
Ca actuator, la sistemele de urmarire se cere o pozitionare a rotorului foarte
buna/ precisa, deci eroarea stationara va fi st = 0.
Eroarea stationara 0 la perturbatii sub forma de treapta, adica st = 0.
Timpul de crestere trebuie sa fie foarte mic (deoarece sistemul trebuie sa fie
foarte rapid la pozitionarile dorite), deci:
Timpul tranzitoriu tt (Ts) < 50 msec
Suprareglarea < 5%

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 34
Ex. 2: proiectarea unui controller fuzzy pentru
controlul dinamicii unui servomotor de c.c., 25- proiectare
controler conventional, parametri motor, raspuns la treapta SD, 4
4). Parametrii procesului (motorului de c.c.), sunt, in [SI]:
Momentul de inertie al rotorului: J = 3.0*10-6 kgm2/s2;
Coeficientul de amortizare al partii mecanice: b = 3.5*10-6 Nm/s;
Constantele f.e.m. si mecanica: K = Ke = KT = 0.03 Nm/A;
Rezistenta electrica: R = 4 ;
Inductivitatea bobinei rotorice: L = 2.0*10-6 H.
Raspunsul la treapta al sistemului deschis. Comportarea la treapta unitate la
intrarea sistemului deschis se obtine cu ajutorul programului Matlab:
J = 3.0E-6; % Momentul de inertie
b = 3.5E-6; % Coeficientul de amortizare
K = 0.03; % Constanta motorului
R = 4; % Rezistenta bobinei armaturii motorului
L = 2.0E-6; % Inductivitatea bobinei armaturii
num = K; % Numaratorul f.d.t.
den = [(L*J) ((R*J)+(b*L)) ((b*R)+K^2) 0]; % Numitorul f.d.t.
sys = tf(num, den); % Se construieste f.d.t.
step(sys, 0:0.001:0.4); % Raspunsul la treapta

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 35
Ex. 2: proiectarea unui controller fuzzy pentru
controlul dinamicii unui servomotor de c.c., 26- proiectare
controler conventional, analiza raspuns la treapta, 5
Analiza raspunsului la treapta al sistemului deschis (Fig. 10.23, jos): este
necesara o legatura de reactie care sa stabilizeze sistemul la trepte pe
intrare. Step Response
Raspunsul la treapta al sistemului deschis
14

Treapta de 0.2V aplicata la intrarea sistenului deschis (la


12 bornele rotorului motorului) face ca (pozitia rotorului-iesirea)
sa creasca: --> e necesara o reactie (feedback).

10
Pozitia rotorului [radiani]

8
Amplitude

0
0 0.05
Exemple a-z: Cruise0.1control;0.15 0.2
Motor de CC; 0.25 0.3 0.35 0.4
timpul [sec]
29 November 2017 Pendul inversat 36
Time (sec)
Ex. 2: proiectarea unui controller fuzzy pentru
controlul dinamicii unui servomotor de c.c., 27- proiectare
controler conventional, program Matlab raspuns la treapta, 6
J = 3.0E-6; % Momentul de inertie
b = 3.5E-6; % Coeficientul de amortizare
K = 0.03; % Constanta motorului
R = 4; % Rezistenta bobinei armaturii motorului
L = 2.0E-6; % Inductivitatea bobinei armaturii
num = K; % Numaratorul f.d.t.
den = [(L*J) ((R*J)+(b*L)) ((b*R)+K^2) 0]; % Numitorul f.d.t.
sys1 = tf(num, den); % Se construieste f.d.t.
step(sys1, 0:0.001:0.2); % Raspunsul la treapta
sys2 = 1; % Reactia unitara a unei f.d.t.
sys = feedback(sys1, sys2); % F.d.t. a sistemului inchis sys ce
% are reactie unitara
step(sys,0:0.001:0.2); % Raspunsul la treapta al sistemului % %
% inchis si reprezentarea acestuia

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 37
Ex. 2: proiectarea unui controller fuzzy pentru
controlul dinamicii unui servomotor de c.c., 28- proiectare
controler conventional, raspuns la treapta sistem inchis, 7
Step Response
Raspunsul sistemului inchis cu
1.4
Raspunsul sistemului inchis reactie unitara este in Fig.10.24
stanga, f.d.t. a acestuia, fiind
1.2
System: sys2
obtinuta in Matlab mai sus (reactie
Settling Time (sec): 0.112
System: sys2
Final Value: 1 unitara, sistemul sys):
System: sys2
1
Rise Time (sec): 0.0466 System: sys2 H0(s) = C(s).P(s)/[1 + C(s).P(s)]
Peak amplitude: 1.02
Caracteristicile raspunsului sunt:
Pozitie rotor [rad]

Overshoot (%): 2.49


0.8
At time (sec): 0.097
Amplitude

= 2.49 % (< 5%!)


0.6
Peak amplitude = suprareglerea tt (Ts) = 0.112 sec
Rise Time = timp de crestere
0.4 Settling Time = timp tranzitoriu tc (Tr) = 0.0466 sec
Final Value = eroare stationara
Eroarea stationara st = 0.
0.2
Pentru cresterea caracteristicilor
0
de mai sus se alege un regulator
0 0.05 0.1 0.15 0.2
Timp [sec]
0.25 0.3 0.35 0.4
PID ca in Fig. 10.10, cu f.d.t.:
Time (sec)
C(s) = KP + KI/s + KDs = (KDs2 + KPs +
KI)/s

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 38
Ex. 2: proiectarea unui controller fuzzy pentru
controlul dinamicii unui servomotor de c.c., 29- proiectare
controler conventional, incercare cu regulator PID, 8
Parametrii controlerului PID:
Pentru micsorarea Tr (tc), alegem un KP > 0 mai mare, iar KI = KD = 0 C(s) = KP
Fisierul matlab (.m) este:
% Introducerea controlului proportional
Kp = 30; % Alegerea arbitrara a lui KP (dupa modul de proiectare
% trial and error)
Kd = 0.25; Ki = 50; %
numcf = [Kp]; % Numaratorul f.d.t. a controlerului
dencf = [1]; % Numitorul f.d.t. a controlerului
numf = conv(numcf, num); % Convolutia numaratoarelor celor doua
f.d.t. (ale controlerului si procesului)
denf = conv(dencf, den); % Convolutia numitoarelor celor doua f.d.t.
(ale controlerului si procesului)
sysf = tf(numf, denf); % Se formeaza f.d.t. a sistemului inchis
% (controler si proces)
sys = feedback(sysf, sys2); % F.d.t. a sistemului inchis
step(sys, 0:0.001:0.2); % Obtinerea raspunsului la treapta unitara,
% vezi Fig. 10.25

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 39
Ex. 2: proiectarea unui controller fuzzy pentru
controlul dinamicii unui servomotor de c.c., 30- proiectare
controler conventional, incercare cu regulator PID, 9- Fig. 10.25

Step Response
Caracteristicile raspunsului cu
1.5
Raspunsul la treapta a sistemului inchis cu regulator P (KD = KI = 0)
aceste valori (v. Fig 10.25 stanga),
System: sys
Peak amplitude: 1.46
sunt:
(POS) = 45.7 % (>> 5%!)
Overshoot (%): 45.7
At time (sec): 0.02 System: sys
System: sys
Settling Time (sec): 0.103Final Value: 1
1
System: sys
Rise Time (sec): 0.00791
tt (Ts) = 0.1 sec
Pozitia rotorului, [radiani]

tc (Tr) = 0.00791 sec


Amplitude

Caracteristici:
- POS = 45.7%, !; eroarea stationara st = 0.
- Ts (tt) = 0.1 sec, !;
0.5 - eps st = 0 (bun)
- tc(Tr) = 0.00791(bun)

Rezultatele NU sunt toate bune,


vom mai incerca si alte
0
0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2
componente de reglare (de ex. D).
Timp [sec]
Time (sec)

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 40
Ex. 2: proiectarea unui controller fuzzy pentru
controlul dinamicii unui servomotor de c.c., 31- proiectare
controler conventional, incercari regulatoare PID, 10-Fig. 10.26
Astfel, dupa mai multe incercari
Step Response (trial and error), cu KP = 10; 20;
1.4
Raspunsul sistemului cu regulator PID (Kp = 30; Kd = 0.25; Ki = 50)
30 si cu diverse valori pentru KD =
System: sysfinal
Peak amplitude: 1.03
0.15; 0.25; 0.35; 0.45, cel mai bun
1.2
Overshoot (%): 3.35
At time (sec): 0.008
System: sysfinal
Final Value: 1
rezultat se obtine pentru KP = 30,
1
System: sysfinal
KD = 0.35 si KI = 50, respectiv
Pozitia rotorului [radiani]

0.8
Settling Time (sec): 0.0146
System: sysfinal caracteristicile din raspunsul
Rise Time (sec): 0.00302
Amplitude

urmator (Fig. 10.26, stanga):


0.6
= 3.35 % (< 5%!)
POS (%) = 3.35 (< 5%)!
0.4 Tr(tc) = 0.00302 sec (<1 msec)! tt (Ts) = 0.0146 sec
Ts(tt) = 0.0146 sec (<40 msec)!

0.2
eroarea stationara = 0 ! tc (Tr) = 0.00302 sec
eroarea stationara st = 0.
0
0 0.02 0.04 0.06 0.08 0.1
Timp [sec]
0.12 0.14 0.16 0.18 0.2
Programul cu care s-a obtinut Fig.
Time (sec)
10.26 este in slide-ul urmator:

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 41
Ex. 2: proiectarea unui controller fuzzy pentru
controlul dinamicii unui servomotor de c.c., 32- proiectare
controler conventional, program Matlab incercari cu PID, 11
J = 3.0E-6; % Momentul de inertie
b = 3.5E-6; % Coeficientul de amortizare
K = 0.03; % Constanta motorului
R = 4; % Rezistenta bobinei armaturii motorului
L = 2.0E-6; % Inductivitatea bobinei armaturii
num = K; % Numaratorul f.d.t.
den = [(L*J) ((R*J)+(b*L)) ((b*R)+K^2) 0]; % Numitorul f.d.t.
sys1 = tf(num, den); % Se construieste f.d.t.
% step(sys1, 0:0.001:0.2); % Raspunsul la treapta
sys2 = 1; % Reactia unitara a unei f.d.t.
% sys = feedback(sys1, sys2); % F.d.t. a sistemului inchis sys ce % are reactie unitara
% step(sys,0:0.001:0.2); % Raspunsul la treapta al sistemului % % % inchis si reprezentarea acestuia
>> % Introducerea controlului proportional
Kp = 30; % Alegerea arbitrara a lui KP (dupa modul de proiectare % trial and error)
Kd = 0.25; Ki = 50; %
numc = [Kd Kp Ki]; % Numaratorul f.d.t. a controlerului
denc = [1 0]; % Numitorul f.d.t. a controlerului
fdtc = tf(numc, denc); % F.d.t. a controlerului
numcp = conv(numc, num); % Convolutia numaratoarelor celor doua f.d.t. (ale controlerului si procesului)
dencp = conv(denc, den); % Convolutia numitoarelor celor doua f.d.t. (ale controlerului si procesului)
syscp = tf(numcp, dencp); % Se formeaza f.d.t. a sistemului deschis
% (controler si proces)
sysfinal = feedback(syscp, sys2); % F.d.t. a sistemului inchis cu reactie unitara
step(sysfinal, 0:0.001:0.2); % Obtinerea raspunsului la treapta unitara,
% vezi Fig. 10.26

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 42
Ex. 2: proiectarea unui controller fuzzy pentru
controlul dinamicii unui servomotor de c.c., 33- proiectare
controler conventional, pasii de proiectare a regulatorului PID, 12
Sumarizand, proiectarea (iterativa, se stie, deoarece nu are o solutie unica),
a unui sistem cu controler PID, necesita urmatorii pasi:

1. Determinarea raspunsurilor in bucla deschisa si inchisa ale procesului si analiza


acestora pentru determinarea lucrurilor de facut pentru cresterea performantelor.
2. Adaugarea unei actiuni proportionale de control (KP > 0), pentru a micsora
timpul de crestere tc(Tr)
3. Adaugarea unei actiuni de control derivativ/ diferential (KD > 0), pentru a creste
suprareglarea (POS).
4. Introducerea unei actiuni inegratoare de control pentru a obtine eraoarea
stationara zero (st = 0).
5. Modificarea/ ajustarea oricaruia dintre parametrii KP, KI, KD, pana se obtine
raspunsul dorit cu specificatiile de proiectare impuse.`

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 43
Ex. 2: proiectarea unui controller fuzzy pentru
controlul dinamicii unui servomotor de c.c., 34- proiectare
controler fuzzy, schema bloc, variabilele de intrare si iesire, 1
Ca si in Exemplul 10.4, definim:
Eroarea de pozitie e () = diferenta dintre pozitia dorita (de referinta/ setpoint)
minus () pozitia momentana/ actuala/ masurata
Viteza rotorului/ de rotatie: d/dt = d(teta)/dt ca fiind a doua variabila de intrare in
controler (vezi Fig. 10.27, sistemul in bucla inchisa):

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 44
Ex. 2: proiectarea unui controller fuzzy pentru
controlul dinamicii unui servomotor de c.c., 35- proiectare
controler fuzzy, determinarea tipurilor de reguli de la un expert, 2

Rotirea motorului in sensul acelor ceasornicului ori in sens invers se face


prin inversarea polaritatii tensiunii la bornele rotorului, deci daca eroarea de
pozitie este pozitiva (+) sau negativa (-), aducerea acesteia la zero se poate
face alimentand rotorul cu o tensiune mai mare ori inversand-o ca polaritate
pentru ca acesta sa se roteasca in sens opus.
Deci, daca se dispune de un expert (operator) ce cunoaste comportarea
sistemului, se pot formula reguli de tipul de mai jos:

1. IF eroarea de pozitie este pozitiva SI viteza rotorului este Negativa, THEN


aplica o tensiune pozitiva.
2. IF eroarea de pozite este negativa SI viteza rotorului este pozitiva, THEN aplica
tensiune negativa.
3. IF eroarea de pozite este zero SI viteza rotorului este zero, THEN aplica
tensiune zero.

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 45
Ex. 2: proiectarea unui controller fuzzy pentru
controlul dinamicii unui servomotor de c.c. 36

Matricea asociativa fuzzy pentru controlul servomotorului de CC este tabelul


de mai jos

Eroarea de viteza a rotorului

N Z P
Eroarea N Tensiune Tensiune Tensiune
negativa negativa negativa
de pozitie
Z Tensiune Tensiune Tensiune
negativa zero pozitiva

P Tensiune Tensiune Tensiune


pozitiva pozitiva pozitiva

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 46
Ex. 2: proiectarea unui controler fuzzy pentru
controlul dinamicii unui servomotor de c.c., 37- proiectare
controler fuzzy, 4
Se utilizeaza Toolbox-ul fuzzy din Matlab, iar pentru cele doua variabile fuzzy
de intrare (eroarea de pozitie si viteza rotorului) si cea de iesire (tensiunea
motorului), alegandu-se ca FA clopotul lui Gauss (gaussmf), v. mai jos.
Deoarece seturile fuzzy sunt definite, dupa modelul de mai sus acestea se pot
asocia pentru a forma reguli fuzzy. Deoarece sistemul are doua intrari si o
iesire, vizualizarea acestor asocieri se poate realiza sub forma unei matrici.
Matricea asociativa in cazul acestui sistem este data in tabelul din slide-ul de
mai jos, care contine urmatoarele noua reguli IF-THEN:
1. IF eroarea de pozite este N si viteza este N, THEN tensiunea motorului este N
2. IF eroarea de pozite este N si viteza este Z, THEN tensiunea motorului este N
3. IF eroarea de pozite este N si viteza este P, THEN tensiunea motorului este N
4 . IF eroarea de pozite este Z si viteza este N, THEN tensiunea motorului este Z
5. IF eroarea de pozite este Z si viteza este Z, THEN tensiunea motorului este Z
6. IF eroarea de pozite este Z si viteza este P, THEN tensiunea motorului este Z
7. IF eroarea de pozite este P si viteza este N, THEN tensiunea motorului este P
8. IF eroarea de pozite este P si viteza este Z, THEN tensiunea motorului este P
9. IF eroarea de pozite este P si viteza este P, THEN tensiunea motorului este P

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 47
Ex. 2: Editorul FIS accesat cu comanda fuzzy in
fereastra de comanda a Matlab (intrari: eroarea de pozitie si
derivata erorii i.e. viteza rotorului; iesire: tensiune la bornele rotorului), 38

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 48
Ex. 2: Eroarea de pozitie a rotorului (univers: +/- 1.5
rad; 3FA gaussmf), 39

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 49
Ex. 2: Derivata erorii de pozitie a rotorului , adica
viteza rotorului, adica eroarea vitezei rotorului
(univers: +/- 0.5 rad/sec; 3FA gaussmf), 40

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 50
Ex. 2: Variabila de iesire Tensiune-rotor-motor
(univers: +/- 5V; 3FA gaussmf), 41

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 51
Ex. 2: Cele noua reguli fuzzy IF-THEN ale FLC
(format verbose), 42

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 52
Ex. 2: Cele noua reguli fuzzy IF-THEN ale FLC
(format grafic), 43

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 53
Ex. 2: Suprafata de control dezvoltata utilizand
Matlab, 44

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 54
Ex. 2: Simularea sistemului utilizand Simulink,
sistemul fiind modelat ca motor(f.d.t.), 45

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 55
Ex. 2: Ajustarea manuala a FA de iesire, 46

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 56
Ex. 2: Suprafata de control, dupa prima ajustare
manuala a FAs de iesire, 47

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 57
Ex. 2: A doua ajustare manuala a FAs de la iesire, 48

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 58
Ex. 2: Suprafata de control, dupa a doua ajustare
manuala a FAs de iesire, 49

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 59
Ex. 2: Doua din variabilele simulate ale controlului
fuzzy al servomotorului CC , 50

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 60
Ex. 2: proiectarea unui controller fuzzy pentru
controlul dinamicii unui servomotor de c.c., 51- proiectare
controler fuzzy, 8
>> fismat = readfis

Fismat =
name: 'Motor_CC'
type: 'mamdani'
andMethod: 'min'
orMethod: 'max'
defuzzMethod: 'centroid'
impMethod: 'min'
aggMethod: 'max'
input: [1x2 struct]
output: [1x1 struct]
rule: [1x9 struct]

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 61
Ex. 2: proiectarea unui controller fuzzy pentru
mentinerea vitezei presetate la un automobil (cruise
control), 11- proiectare controler fuzzy, schema Simulink 4
.

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 62
.

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 63
Exemplul 10.5: proiectarea unui controller fuzzy
pentru controlul dinamicii unui servomotor de c.c., 40-
proiectare controler fuzzy, 8

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 64
Ex.3
CONTROLUL POZITIEI
VERTICALE A UNUI PENDUL
INVERSAT (PI)

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 65
Problema pendulului inversat-v1: MM
Sa se proiecteze un controler cu logica fuzzy (FLC) pentru sistemul pendul
inversat (PI) din figura de mai jos, a.i. pendulul sa fie mentinut in pozitie
verticala. MM se deduce in ipoteza neglijarii frecarilor pivotului bastonului PI
si a rotilor caruciorului. Se obtine astfel cu aceste ipoteze, MM aferent
sistemului, care este, de fapt dinamica acestuia, descrisa de ecuatiile
miscarii (cu legea a doua a lui Newton):

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 66
Problema pendulului inversat-v1: proiectare controler
cu reactie de la stare, tehnica asignarii polilor f.d.t.

Daca presupunem mic, deci (d/dt)2 se neglijeaza, avem pentru cele doua
ecuatii formele (M-masa caruciorului; m-masa PI cu baston cu tot; g-
acceleratia gravitationala; l - lungimea bastonului PI pe jumatate; F-forta de
impingere (de control) a caruciorului; si x unghiul bastonului cu verticala
si respectiv deplasarea caruciorului):
Daca notam variabilele de stare ca mai jos:

se obtine MM de stare:

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 67
Modelul matematic, continuare

unde a21, a41, b2 si b4 au expresiile:

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 68
Modelul matematic, continuare

Cu valorile de mai jos pentu l, M si m, obtinem parametrii matricilor ca:

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 69
Modelul matematic, continuare

Pentru polii doriti ai sistemului inchis ce au valorile


s1,2 = -2 +/- j2 pentru pendul si
s1,2 = - 4 +/-j4 pentru carucior, se obtine ecuatia caracteristica
(EC) dorita s4 + 12s3 + 72s2 + 192s + 256 = 0
Daca se utilizeaza formula lui Ackerman, se obtine controlerul K cu reactie de
la stare, ce are coeficientii de amplificare pentru fiecare stare
K = [ -174.83 -57.12 -39.14 -29.36]

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 70
Exemplu numeric cu un pendul inversat, pe carucior
ce se misca in planul hartiei (al tablei)

Mai intai, o proiectare clasica utilizand Matlab. Controlerul cu reactie de la


stare, proiectat prin metoda plasarii polilor f.d.t. a sistemului inchis.
Variabilele de stare (4): teta; teta_punct = d(teta)/dt; x; x_punct = dx/dt
Modelul matematic de stare:
(m/M)*g = (3.5/17.5)*9.81 = 1.962
[(M+m)/(M*l)]*g [(17.5+3.5)/(17.5*2.5)]*9.81 = 4.7088
1/(M*l) = 1/(17.5*2.5) = 0.02
1/M = 1/17.5 = 0.06
x = Ax + Bu
y = Cx
A = [0 1 0 0;4.7088 0 0 0;0 0 0 1; -1.962 0 0 0]; B = [0; -0.02; 0 0]; C = [1 0 0 0;
0 0 1 0]; D = 0;
Controlerul K obtinut si schema Simulink de simulare, se observa in slide-ul
urmator.
Exemple a-z: Cruise control; Motor de CC;
29 November 2017 Pendul inversat 71
Sistem de control automat al pendulului inversat cu controler
cu reactie de la stare, metoda P-Z

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 72
Editarea FLC, regulile If-Then

Editorul FIS din Matlab:


Fuzzy, editorul FIS (Mamdani, doua intrari-e si de/dt; 11 reguli cu teta si
teta_punct si alte 11 reguli cu x si x_punct = dx/dt, apoi 22 reguli ;
Daca editarea FLC este completa, va trebui stocat controlerul intr-un fisier.fis, cu
un nume dat de noi.
Implementare in Simulink: se obtine iconita cu FLC deschizand FLToolbox in
interiorul browserului bibliotecii Simulink si se si se dragheaza aceasta acolo.
Se starteaza simularea, vor fi erori Matlab, deoarece proprietatile FLC nu au fost
bine definite. De aceea se va tipari la prompterul Matlab, in fereastra de
coamanda:
>> fismat = readfis
Ne va fi furnizat din director fisierul .fis cu numele ce l-am dat putin mai sus, cu toate
caracteristicile acestuia.
Asta inseamna ca parametrii FLC au fost plasati in spatiul de lucru (workspace) sub
numele fismat si ca, deci, simularea poate acum sa inceapa.

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 73
FAs si universuri de discurs (teta, teta punct)

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 74
FAs si universuri de discurs (deplasarea X si X
punct)

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 75
FA si universul de discurs (forta de deplasare a
caruciorului, F [N])

Exemple a-z: Cruise control; Motor de CC;


29 November 2017 Pendul inversat 76
Exemple a-z: Cruise control; Motor de CC;
29 November 2017 Pendul inversat 77
Exemple a-z: Cruise control; Motor de CC;
29 November 2017 Pendul inversat 78
Exemple a-z: Cruise control; Motor de CC;
29 November 2017 Pendul inversat 79
Exemple a-z: Cruise control; Motor de CC;
29 November 2017 Pendul inversat 80
Exemple a-z: Cruise control; Motor de CC;
29 November 2017 Pendul inversat 81
Exemple a-z: Cruise control; Motor de CC;
29 November 2017 Pendul inversat 82
Exemple a-z: Cruise control; Motor de CC;
29 November 2017 Pendul inversat 83
Exemple a-z: Cruise control; Motor de CC;
29 November 2017 Pendul inversat 84
Exemple a-z: Cruise control; Motor de CC;
29 November 2017 Pendul inversat 85
Exemple a-z: Cruise control; Motor de CC;
29 November 2017 Pendul inversat 86
Exemple a-z: Cruise control; Motor de CC;
29 November 2017 Pendul inversat 87