Documente Academic
Documente Profesional
Documente Cultură
A. OBIECTIVELE LUCRRII:
1. Ctigarea experienei n conducerea fuzzy a unui proces complex.
2. Obinerea abilitii de a dezvolta, acorda i aplica regulatoare fuzzy.
B. CONSIDERAII PREGTITOARE:
MODELAREA MATEMATIC A SISTEMULUI I PROBLEMA IDENTIFICRII
Sistemul pendul invers (SPI sau sistemul pendul-crucior) cu rol de proces condus, poate
prezenta o serie de probleme complexe cu implicaii asupra soluiilor de conducere. Urmtoarele
particulariti sunt eseniale pentru acest sistem:
existena a patru variabile de stare i a unei variabile de intrare (comand);
dinamica sa poate fi descris de o ecuaie diferenial ordinar (ode) de ordinul patru (model
matematic intrare-ieire, MM-II) sau de patru ecuaii difereniale ordinare de ordinul nti (ecuaii
de stare n cadrul modelului matematic intrare-stare-ieire, MM-ISI) [4], [5], [6];
exist o infinitate de puncte de funcionare pentru sistemul procesul condus (n bucl deschis);
corespunztor exist o infinitate de puncte de funcionare pentru procesul condus cu reacie
liniar.
Pentru experimentele care se analizeaz n cadrul lucrrii au fost alese trei puncte de funcionare
specifice (fig.2.1):
primul punct (1) este stabil - cruciorul se afl n apropierea extremitii din stnga a
inelor iar pendulul este in poziia de jos;
al doilea punct (2) este i el stabil cruciorul este ntr-un punct apropiat de captul din
dreapta al suportului;
al treilea punct (3) de echilibru este instabil cruciorul se afl la mijlocul inelor, iar
pendulul n poziia de sus.
sistemul este neliniar
comanda este de valoare limitat
lungimea inelor este limitat (L) iar poziia cruciorului pe ine mrginit la capete.
mp
x (3)
2
CM
l centrul de mas al sistemului
axa de rotaie (OR)
mc F
DC
(1) (2)
centrul suportului
poziie curent x1
Fig.2.1. Schema bloc funcional a modelului de laborator pentru sistemul pendul invers.
x1
x2
x= x3
x4
n care:
Fora de reacie V din partea suportului acioneaz vertical asupra cruciorului. innd seama de
faptul c, coordonatele curente ale centrului de mas M se pot explicita n forma:
xM = x1 lsin x2 pentru cea orizontal, respectiv
yM = lcos x2 pentru cea vertical,
ecuaiile micrii se scriu n forma (ecuaii primare):
(mc + mp) (x1 l sinx2)" = F Tc ,
(mc + mp) (l cosx2)" = V (mc + mp)g,
J x2" = (F Tc) l cosx2 + Vl sinx2 Dp,
unde () reprezint prima derivat n raport cu timpul, iar () reprezint a doua derivat in raport cu
timpul.
Primele dou ecuaii descriu translaia centrului de mas (descompus dup axa orizontal
respectiv vertical) iar a treia exprim rotaia ntregului sistem in jurul centrului de mas. Dup
eliminarea mrimii V i efectuarea unor nlocuiri succesive, se obin ecuaiile de stare aferente
sistemului (pentru t 0):
x1 = x3 ,
a ( F Tc x4 sin x2 ) + l cos x2 ( g sin x2 f p x4 )
2
x3 =
J + l sin 2 x2
x2 = x4 , (2.1)
l cos x2 ( F Tc x4 sin x2 ) + g sin x2 f p x4
2
x4 =
J + l sin 2 x2
Sisteme de conducere fuzzy (UPT, 2011)
n care:
J
a =l2 +
mc + m p
, = (mc + mp)l. (2.2)
Fora de frecare a cruciorului care apare n model este o funcie neliniar de viteza x3 a acestuia,
dup cum rezult din fig.2.2 (de exemplu, [3]).
T c [N ]
FS
Yc
-X c FC
-F C Xc
x 3 [m /s ]
-Y c
-F S
-D Z c v D Zcv
T c [N ]
FS
Yc
-X c
Xc
x 3 [m /s ]
-Y c
-F S
-D Z c v D Zcv
Momentul de inerie al pendulului se poate calcula pe baza fig.2.4, n care s-au utilizat urmtoarele
notaii (att tija ct i greutatea au form cilindric):
lp
mps
rc mpw rp
lpo
lc
lco
12 4 12 4 (2.4)
Dac modelul pendulului este redus la o simpl tij (de mas nul), cu lungimea L=lco iar
greutatea are masa echivalent mp=mpw+ mpS, atunci momentul de inerie J relativ la centrul de
mas (CM) se exprim n forma simplificat [3]:
m p (4mc + m p ) L2
J=
12( mc + m p ) . (2.5)
Cart Position
pi
1 m
Pendulum angle
In
Dynamics
Cart velocity
PENDULUM-CART SYSTEM
Pendulum velocity
l*cos(u(2)) DYNAMICS
Friction of
PENDULUM-CART SYSTEM
Demux
a 1/s 1/s
0 4 2
DZ-Vc
NOR -1
DZ-Vp 1/s
3 1/s
0 1
DZ-U
0
l*cos(u(2))* (-mi*u(4)*u(4)*sin(u(2))) + mi*g*sin(u(2))-fp*u(4)
1/(J+mi*l*sin(u[2])*sin(u[2]))
M 1 1 x1,x2,x3,x4 BM2
Mux Mux
Saturation u
FS/small
Saturation
((Yc-FC)/Xc)*u(1)+FC
LinUp
Xc >= -1
Min-Cv
f(u)
|u| -1
ParabUp
1 1
in_1 out_1
DetectZero
f(u)
ParabDn
-Xc >= -1
-Min-Cv
((Yc-FC)/Xc)*u(1)-FC
Friction vs. cart velocity
LinDn
Fig.2.1.3. Blocul de frecare (Friction).
Dinamica pendul-crucior (redat de ecuaiile (2.1) (2.5)) este modelat n blocul mascat
Dynamics (fig.2.1.1). Blocul Dynamics nemascat este ilustrat n fig.2.1.2. Schema conine o serie de
blocuri din biblioteca SIMULINK din cadrul crora se menioneaz : Dead Zone, Saturation, i
Blocul de frecare (Friction).
n procedura de identificare determinarea parametrilor blocului Friction este de maxim
importan. Omiterea sau simplificarea blocului Friction are ca efect scderea puternic a
echivalenei dintre modelul simulat i sistemul real, acest fapt reflectndu-se n abaterea rspunsului
sistemului real de cel al modelului sau invers. n structura blocului sunt introduse dou blocuri de
memorare BM1 i BM2 (a se vedea fig.2.1.2) pentru evitarea buclelor algebrice, respectiv trei blocuri
Dead Zone (DZ-Vc, DZ-Vp i DZ-U) prin care se desensibilizeaz modelul la mici variaii ale
vitezelor i ale comenzii.
Dac, pentru a porni una din procedurile de identificare se execut click pe alte butoane n
seciunea IDENTIFICATION, nainte ca parametrii s fi fost ncrcai n prealabil corect, va fi afiat
mesajul din fig.3.1.4 i procedura de identificare se ntrerupe.
n acest scop se blocheaz mecanic cruciorul ntr-un punct arbitrar folosind tampoane
speciale (fig.3.2.1).
Apoi, se face click pe butonul Pendulum friction din seciunea IDENTIFICATION a ferestrei
principale de identificare. Procedura de identificare ndrum utilizatorul pas cu pas pentru derularea
procedurii / identificrii.
Se ridic pendulul la /9 (circa 20 de grade fa de poziia stabil inferioar). Se elibereaz
pendulul; dac se face click pe butonul Check Angle se afieaz valoarea curent a unghiului
pendulului.
Pentru a ncepe achiziia i prelucrarea datelor de ctre algoritm, sunt necesare cel puin opt
oscilaii. Dac pendulul nu se mic / (nu sunt observate oscilaii) procesul de identificare este
ntrerupt i apare mesajul din fig.3.2.5; ca efect procesul de identificare trebuie reluat.
- calculul valorii medii T a perioadei de oscilaie liber a pendulului se citete din dou
treceri succesive prin zero (fig.3.2.6);
- calculul coeficientului de frecare (amortizare) al pendulului.
A n g le [ra d ]
3 .3
3 .2 5
A 1
3 .2
A n
3 .1 5
3 .1
3 .0 5
3
0 50 100 150 200 250
T im e [s ]
Fig.3.2.6. Oscilaii amortizate ale pendulului.
Coeficientul de amortizare poate fi calculat pe baza valorilor maxime A1, i An dup relaia [3]:
2 A
f p = Jp log 1
(2n 1)T An (3.1)
unde:
fp - coeficientul de amortizare [kgm2/s];
Jp - momentul de inerie al pendulului [kgm2];
n - numrul maximelor locale;
T - perioada de oscilaie a pendulului[s];
A1 , An - maxime locale, dup una respectiv n oscilaii;
Graficul celor mai importante date este creat automat de programul de identificare (a se vedea
fig.3.2.8).
Sisteme de conducere fuzzy (UPT, 2011)
Pendulum angle
3.4
Angle [rad]
3.2
0 20 40 60 80 100 120
Time [s]
3.346
Angle [rad]
3.344
3.342
3.34
3.338
102 103 104 105 106 107 108 109 110
Begining Time [s] End
3.4 3.4
Angle [rad]
Angle [rad]
3.2 3.2
3 3
Rezoluia este vizibil i din graficul al III-lea. nregistrrile pentru dou puncte intitulate
Beginning i End prezint maximele locale {A1, An}necesare pentru calculul coeficientului fp.
Aceast parte a procedurii de identificare este folosit pentru a detecta fora minim FS
necesar scoaterii cruciorului din starea de repaus. Pentru rularea acestei pri a programului de
identificare se face click butonul Try to move the cart n fereastra de identificare principal. Apare
urmtoarea fereastr de dialog (fig.3.3.1):
Sisteme de conducere fuzzy (UPT, 2011)
Se introduce valoarea forei, aceasta fiind valoarea iniial n fiecare pas i numrul
experimentelor (micri ale cruciorului). Pentru a mica cruciorul de la stnga spre dreapta se face
click pe butonul L to R, iar pentru direcia opus se apas R to L.
Experimentul consist din urmtorii pai:
dac apare mesajul din fig.3.3.2, se mic cruciorul ntr-o poziie nou sau se las
nemicat.
n pasul urmtor apare mesajul din fig.3.3.3; se ateapt puin pn cnd algoritmul
mrete fora de traciune i detecteaz poziia cruciorului.
Dac poziia s-a schimbat cu 5 mm, algoritmul se oprete i mesajul din fig.3.3.3 dispare.
Dup numrul de pai definit n fereastra din fig.3.3.1 procedura se oprete i apare graficul
din fig.3.3.4. Dreptunghiurile din figur reprezint fora necesar micrii cruciorului dintr-un punct
n alt punct.
Force Minimal force needed to move the cart
0.5
0.4
0.3
0.2
0.1
0
-0.4 -0.2 0 0.2 0.4
Cart position [m]
Fig.3.3.4. Detectarea forei minime.
Sisteme de conducere fuzzy (UPT, 2011)
Acest pas al procedurii de identificare se poate activa numai dac, pasul anterior de
identificare s-a ncheiat cu succes; acest lucru se datoreaz faptului c, cunoaterea valorii medii a
forei minime anterior detectate este esenial n acest pas.
Totodat, acest pas este folosit pentru a detecta i calcula urmtorii coeficieni:
frecarea static a cruciorului;
frecarea dinamic a cruciorului;
U [ 11
,]
coeficientul de proporionalitate M dintre comanda U : realizat de interfaa de
F [ M , M ]
calculator i fora de comanda F, ,
Se fixeaz valoarea forei de traciune. Dac se dorete modificarea ei, se introduce noua
valoare n fereastra de editare. Se apas apoi pe OK, aprnd urmtorul mesaj (fig.3.4.2):
Se deplaseaz manual cruciorul la captul din stnga a inelor nedepind contactul limitator.
Se face click pe butonul OK pentru a continua identificarea. Apare mesajul din fig.3.4.3.
Aceast parte a identificrii se compune din trei experimente identice. La toate cele trei
experimente fora de comand este crescut monoton i se colecteaz datele de micare ale
cruciorului. Utilizatorul particip interactiv la acest proces, micnd cruciorul manual n poziia
iniial acceptnd mesajul (fig.3.4.2). Pe parcursul fiecrui experiment apare urmtoarea fereastr
(fig.3.4.3):
Fig.3.4.3. Mesaj de atenionare asupra faptului c fora de frecare crucior-in este n curs de
msurare.
-0.2
-0.4
0 0.2 0.4 0.6 0.8 1 1.2
Time [s]
Fig.3.4.4. Graficul micrii cruciorului.
Toate graficele ilustreaz micarea cruciorului pentru valori cresctoare ale forei de
comand. n final se comunic ncheierea experimentului de identificare a frecrii (fig.3.4.5).
Sisteme de conducere fuzzy (UPT, 2011)
Acest pas al procedurii de identificare permite determinarea valorii minime necesar vitezei
cruciorului pentru ca micarea acestuia s poat fi observat, respectiv a valorii minime necesar
pentru viteza unghiular a pendulului, limit sub care influena oscilaiilor pendulului asupra micrii
cruciorului nu mai poate fi observat. Dac pasul anterior a fost identificarea frecrii pendulului,
nainte de nceperea procesului se remonteaz opritoarele. Pentru a porni experimentul se face click
pe butonul Dead zone experiment din fereastra de identificare principal (fig.3.1).
La nceput apare mesajul:
Dup aceasta se ridic pendulul n poziia orizontal de /2, i se las liber s oscileze
simultan cu acceptarea urmtorului mesaj (fig.3.5.3):
Dac unghiul la care s-a ridicat pendulul este mult prea mic, atunci sub aciunea oscilaiilor
pendulului cruciorul nu se va mica i apare mesajul de eroare a procedurii de identificare dat n
fig.3.5.4.
Sisteme de conducere fuzzy (UPT, 2011)
DZcv i DZpv sunt valorile minime ale rspunsurilor vitezelor cruciorului i pendulului, care
sunt citite de calculator ca limi ale vrfurilor n curbele de rspuns. Rezultatele apar n fig.3.5.5.
C art velocity
0.01
0.005
[m/s]
-0.005
-0.01
11.4 11.6 11.8 12 12.2 12.4 12.6 12.8 13
Tim e [sec]
P endulum velocity
10
5
[rad/s]
-5
-10
11.4 11.6 11.8 12 12.2 12.4 12.6 12.8 13
Tim e [sec]
0 .1 5
0 .1
[m]
0 .0 5
0
0 .4 0 .5 0 .6 0 .7 0 .8 0 .9
P e nd ulum a ng le
3 .4
3 .2
[rad]
3
2 .8
0 .5 1 1 .5 2
C o ntro l
1
0 .5
0
0 .4 0 .5 0 .6 0 .7 0 .8 0 .9
Tim e [se c]
Se apas RESULTS din fereastra de identificare principal pentru a vizualiza valorile tuturor
parametrilor pendulului. Dac programul de identificare nu s-a rulat pe ecran apare mesajul din
fig.3.7.1.
Dac procesul de identificare s-a ncheiat cu succes se obine o fereastr cu valorile tuturor
parametrilor sistemului (fig.3.7.2). Apsnd OK, toi parametrii se salveaz n fiierul pendpar.m.
Dac se manifest erori n scrierea fiierului, apare mesajul de eroare din fig.3.7.3:
Tabelul 3.7.1 Lista cu numele i unitile de msur ale tuturor parametrilor [3].
Name Description Unit
Mc Cart mass [kg]
mc- Cart mass without positioners for pendulum [kg]
mps Pole mass [kg]
mpw load mass [kg]
Rl rail length [m]
Lp length of pole [m]
lpo distance between centre of pole mass and rotation [m]
axis
Sisteme de conducere fuzzy (UPT, 2011)
S im ula tio n
model
-
e rro r
S igna l o p tim iz a tio n
G e ne ra to r
R eal
s y s te m
Primul experiment
Prin program se poate modifica valoarea funciei de frecare prin ajustarea parametrilor FS,
FC, Xc, Yc.
Rezultatele acordrii realizate n modelul simulat din fig.3.8.1 sunt verificate n raport cu
rezultatele obinute de la modelul real. Rspunsurile sistemului real apar n fig.3.8.3 i 3.8.4.
Datele de adaptare sunt obinute prin apsarea butonului Impulse excitation din fereastra
principal (fig.3.1).
Se poate observa o similaritate ntre curba poziiei cruciorului n ambele modele (fig.3.6.2 i
fig.3.8.3):
Sisteme de conducere fuzzy (UPT, 2011)
Mux
Cart Position
pi
m
Pendulum angle
Pulse
Generator
Dynamics
Cart velocity
PENDULUM-CART SYSTEM
Impulse excitation Pendulum velocity
0.12
0.1
0.08
0.06
0.04
0.02
0
0.9 1 1.1 1.2 1.3 1.4 1.5 1.6
Time [s]
Fig.3.8.3. Poziia cruciorului n funcie de timp.
Sisteme de conducere fuzzy (UPT, 2011)
3.5
3.4
3.3
3.2
3.1
3
2.9
2.8
2.7
0.8 1 1.2 1.4 1.6 1.8 2 2.2
Time [s]
Fig.3.8.4. Unghiul pendulului n funcie de timp.
Al doilea experiment
Procedura de optimizare are un timp de execuie lung. De aceea n timpul rulrii apar dou
ferestre, reactualizndu-se la fiecare iteraie, artnd c optimizarea este n rulare (fig.3.9.2). Prima
arat starea curent a procedurii de optimizare i conine: parametrul a, parametrul b, funcia obiectiv
i starea procedurii de optimizare (%).
Sisteme de conducere fuzzy (UPT, 2011)
n graficul din fig.3.9.4 apar dou curbe, prima reprezentnd punctele curente ale curbei de
optimizat, iar cealalt reprezentnd rezultatul optimizrii.
Pendulum angle: yellow-pendulum data, red-function
3.5
3.4
3.3
3.2
3.1
2.9
2.8
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
time [s]
Fig.3.9.4. Unghiul pendulului n funcie de timp.
3.4
3.3
3.2
3.1
2.9
Dac numrul de reluri este prea mare i procedura de optimizare a terminat evaluarea
datelor, apare mesajul:
n cadrul acestui capitol sunt prezentate trei modele SIMULINK de baz unul pentru
stabilizarea tijei n poziia de jos pod rulant sau crane problem (C), altul pentru stabilizarea tijei n
poziia de sus pendul invers (echivalent cu problema dirijrii rachetelor) sau reglare self
erecting(SE) i reglare swing-up(SU) [3].
Fig.4.1. Trei probleme de reglare a sistemului pendul invers (SPI, sistemului crucior-pendul).
Modelele Simulink folosite pentru simularea numeric a comportrii SPI, aferente celor trei
tipuri de probleme, sunt prezentate n fig.4.2, 4.3 i 4.4 [9].
Fig 4.2. Modelul de simulare a comportrii sistemului pendul invers pentru problema C.
Mux
angular velocity
States states
Dynamics Generator
Normalized_control
Normalized_control 0 Generator
(sampled) Mux
Mux of desired position
0
Out1
In1
0
errors scaling for plot
Errors Remember to load fuzzy matrix into
the Fuzzy stabilising controller block
Type:
fismat=readfis ( 'pd_stab' )
Limit Guard
in the Matlab Command Window
Out1 In1
fcontrol
Coulomb Friction &
Reduction of angle
Linear Control Gain
Friction = 0.15 !
Fig 4.3. Modelul de simulare a comportrii sistemului pendul invers pentru problema SE.
Sisteme de conducere fuzzy (UPT, 2011)
position &
angle
desired position
cart
velocity
angular Remember to load
velocity fuzzy matrix into
States
Dynamics the Fuzzy swinging
Mux
control
controller block.
Normalized_control
states
Type:
errors
0 Generator fismat=readfis( 'pd_swing' )
Out1
In1 of desired position
u
scaling 0 in the
Errors for plot Generator Matlab Command Window.
0
-1 Out1 In1
Limiter
Upper zone arbiter Reduction of angle
Linear pendulum
lcontrol lpend controller
In1
Out1
Coulomb Friction & lcart Linear cart controller
Linear Control Gain In2
Fig 4.4. Modelul de simulare a comportrii sistemului pendul invers pentru problema SU.
Problematica reglrii/conducerii fuzzy a aprut datorit abordrii realitii care este prin esen
o abordare calitativ i cantitativ, bazat pe o modelare matematica mai putin exact. Pentru aceasta a
fost nevoie s se introduc o nou strategie de conducere bazat pe teoria mulimilor vagi (fuzzy set
teory), care este din acest punct de vedere mai pragmatic, putnd prelua i utiliza o caracterizare
lingvistic a calitii desfurrii procesului, i a adapta aceast caracterizare funcie de cerinele
concrete de desfaurare ale acestuia.
n anumite situaii, cum este de exemplu conducerea proceselor cu neliniariti funcionale
greu modelabile, conducerea fuzzy poate fi o alternativ viabil a conducerii clasice, avnd un
puternic caracter euristic; conducerea fuzzy este bazat pe experiena operatorului uman, experien ce
poate fi modelata mult mai bine prin regulatorul fuzzy, spre deosebire de cel convenional.
Cteva particulariti ale conducerii fuzzy sunt evideniate prin urmtoarele:
conducerea fuzzy se bazeaz pe regulatoare cu caracteristica static (CS) modificabil dup
nevoile proiectantului;
regulatorul fuzzy (RG-F) poate asigura conducerea dup mai multe mrimi, fiind considerat astfel
multivariabil;
regulatorul fuzzy este un element neliniar far dinamic;
RG-F prezint maleabilitate n modificarea caracteristicilor statice intrare-ieire.
Sisteme de conducere fuzzy (UPT, 2011)
Pentru detalii privind mulimile fuzzy i RG-F este recomandat studiul lucrrii [10].
Toate cele trei regulatoare fuzzy dezvoltate i implementate n cadrul lucrrii au urmtoarele
caracteristici comune:
1. Admit n general un numr maxim de patru VL de intrare i o VL de ieire (comanda u);
numrul necesar de VL de intrare este mai redus la unele din regulatoare.
2. Funcioneaz pe baza mecanismului de inferen MAX-MIN a lui Mamdani, adic aparin
clasei de regulatoare fuzzy de tip Mamdani n sensul urmtor:
conectorii I din premiz sunt tratai cu operatorul MIN;
conectorii SAU din premiz sunt tratai cu operatorul MAX;
concluzionarea vag este efectuat prin aplicarea operatorului MIN termenilor lingvistici activai;
agregarea regulilor este efectuat prin aplicarea operatorului MAX;
3. Utilizeaz pentru defuzzificare metoda centrului de greutate.
Pentru dezvoltarea celor trei regulatoare fuzzy n cadrul acestei lucrri, destinate problemelor
C, SE i SU, se utilizeaz principiul echivalenei modale referit n [12]. Conform acestui principiu,
pentru fiecare din cele trei regulatoare fuzzy se egaleaz ieirea regulatorului fuzzy cu ieirea
regulatorului convenional pe care regulatorul fuzzy l aproximeaz, pentru valorile modale ale f.d.ap.
aferente TL ai VL de intrare. Valorile obinute pentru ieirea regulatorului fuzzy vor fi tocmai valorile
modale ale f.d.a.p. aferente TL ai VL de ieire.
Pentru dezvoltarea celor trei RG-F vor fi parcuri urmtorii pai:
se adopt structura de reglare (dup eroare, dup stare etc.);
se proiecteaz un regulator convenional destinat conducerii procesului considerat;
se stabilesc formele i distrubuiile f.d.ap. aferente TL ai VL de intrare pe baza experienei
proiectantului sau unui operator uman n conducerea procesului considerat;
se aplic principiul echivalenei modale n vederea deducerii att a bazelor de reguli ct i a
formelor i distribuiei f.d.ap. aferente TL ai VL de ieire;
se aleg ceilali parametri liberi ai RG-F (din modulul de inferen i defuzzificare) pe baza
experienei proiectantului sau unui operator uman n conducerea procesului considerat.
0 0 0 1.0000
0 0.6111 -34.9727 0.0001
0 -43.4213 145.7195 -0.0054]
Bs = [0
0
9.1803
-38.2514]
Cs =[1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1]
Ds = [ 0
0
0
0]
Apoi, din MM ISI poate fi dedus imediat expresia funciei de transfer aferente procesului
condus (PC, canalului u -> y) sub forma:
Hy,u(s)=cT(sI-A)-1b=B(s)/A(s),
obinut cu comanda Matlab ss2tf aplicat matricelor obinute anterior (cT este prima linie a matricei
Cs):
>> [num,den]=ss2tf(As,Bs,Cs(1,:),Ds,1)
Rezult:
den = 1.0e+003*
[0.001 0.035 0.0436 1.4295 0] .
e u v
w kkRR PC
(SPI) y
-y
O prim variant de regulator fuzzy aferent problmei Crane este dezvoltat pornind de la
structura din fig.5.2.1 i asigur un regulator fuzzy care reprezint de fapt un element de tip P cu
coeficient de transfer dependent de punctul de funcionare. Rezult structura SRA-RG-F din fig.5.2.3,
ns cu e = w y.
v
PC
w e -1 -e RG-F y
(SPI)
RG- u
F
Regulatorul fuzzy (RG-F) din fig.5.2.3 este caracterizat printr-o VL de intrare, position
(poziia cruciorului) e = x1 w (e = w x1 eroarea de reglare de poziie), cu apte TL avnd
funcia de apartenen de tip gaussian cu forma din fig.5.2.4 (prima reprezentare) i o VL de ieire
control (comanda) u, cu nou TL avnd funcii de apartenen de tip triunghiular cu forma din
fig.5.2.4 (a doua reprezentare).
Sisteme de conducere fuzzy (UPT, 2011)
NB NM NS ZE PS PM PB
1
0.8
0.6
0.4
0.2
NVB NB NM NS ZE PS PM PB PVB
1
0.
8
0.
6
0.
4
0.
2
-1 - - - - 0 0. 0. 0. 0. 1
08 06 04 0 2 control 2 4 6 8
Fig.5.2.4. Funciile de apartenen ale TL ai VL aferente RG-F pentru problema Crane.
Semnificaiile termenilor lingvistici sunt cele acceptate pe larg n literatur (de exemplu, [2],
[10], [11], [12]).
Pentru stabilirea formei f.d.ap. aferente TL ai VL de ieire control (comanda u) a fost aplicat
principiul echivalenei modale abordat n [12].
Baza de reguli a RG-F este obinut applicnd acelai principiu, care urmrete nlocuirea RG-
P (avnd coeficientul de transfer kR calculat) prin regulatorul fuzzy descris, cu o intrare i o ieire.
Rezult astfel regulile de reglare fuzzy sintetizate sub forma tabelului de decizie aferent RG-F,
prezentat n tabelul 5.2.1.
Sisteme de conducere fuzzy (UPT, 2011)
U PVB PB PS ZE NS NB NVB
Mecanismul de inferen din cadrul RG-F funcioneaz pe baza inferenei MAX-MIN a lui
Mamdani.
Pentru defuzzificare se utilizeaz metoda centrului de greutate [10]. Aceast metod este cel
mai des utilizat n practic fiind cunoscut sub diferite variante, constnd n determinarea valorii
ferme pentru mrimea de ieire (comanda u ) cu luarea n considerare a tuturor influenelor obinute
din regulile activate de starea particular a intrrilor la un moment dat. Avantajele metodei constau n
urmtoarele:
toate regulile activate particip la realizarea comenzii ferme;
domeniul u poate fi sau este un domeniu compact (u este continual).
n anexa 1 pot fi urmrite aspecte generale privind dezvoltarea i implementarea RG-F
utiliznd mediul Matlab-Simulink.
Pentru efectuarea simulrii numerice a comportrii SRA-RG-F dezvoltat i a expermentului
practic de conducere a SPI, se poate da urmtoarea comand din fereastra de comenzi MATLAB:
>>fuzzy pd_crane
n urma acestei comenzi, se deschide fereastra FIS Editor pd_crane (fig.5.2.5),de unde se pot
modifica sau vizualiza parametrii regulatorului fuzzy n problema Crane.
Urmeaz comanda:
>>a=readfis(pd_crane)
Prin aceast comand, n variabila a se memoreaz variabila de tip fis corespunztoare
fiierului pd_crane.fis. Prin comanda:
>>plotfis(a)
Sisteme de conducere fuzzy (UPT, 2011)
sunt prezentate proprietile RG-F pentru problema Crane ilustrate sub forma structurii RG-F din
fig.5.2.6.
P d rane
c
7 rules
c ontrol (9)
veloc ity (5)
ang el (3)
v
Se poate vedea c regulatorul fuzzy (altfel spus, sistemul de inferen fuzzy, fuzzy inference
system, FIS) pd_crane are patru VL de intrare, o VL de ieire i o baz de reguli de reglare fuzzy
coninnd apte reguli. Din cele nou funcii de apartenen aferente TL ai VL de ieire se utilizeaz
doar apte. Pentru aceast variant de RG-F se utilizeaz doar prima VL de intrare (poziia
cruciorului).
Prin comanda Matlab:
>>showfis(a)
apar urmtoarele informaii legate de RG-F aferent problemei Crane:
1. Name Pd_crane
2. Type mamdani
3. Inputs/Outputs [4 1]
4. NumInputMFs [7 5 5 3]
5. NumOutputMFs 9
6. NumRules 7
7. AndMethod min
8. OrMethod max
9. ImpMethod min
10. AggMethod max
11. DefuzzMethod centroid
12. InLabels position
13. angle
14. velocity
15. ang_vel
16. OutLabels control
17. InRange [-1 1]
18. [-3.142 3.142]
19. [-1 1]
20. [-5 5]
21. OutRange [-1 1]
22. InMFLabels NS
23. ZE
24. PS
25. PB
26. NB
27. NM
Sisteme de conducere fuzzy (UPT, 2011)
28. PM
29. mf1
30. mf2
31. mf3
32. mf4
33. mf5
34. v_m_1
35. V_center
36. v_p_1
37. v_m_2
38. v_p_2
39. mf1
40. mf2
41. mf3
42. OutMFLabels PS
43. NS
44. PM
45. NM
46. NVB
47. PVB
48. ZE
49. PB
50. NB
51. InMFTypes gaussmf
52. gaussmf
53. gaussmf
54. smf
55. zmf
56. gaussmf
57. gaussmf
58. trapmf
59. trapmf
60. trapmf
61. trapmf
62. trapmf
63. trimf
64. trimf
65. trimf
66. trapmf
67. trapmf
68. gbellmf
69. gbellmf
70. gbellmf
71. OutMFTypes trimf
72. trimf
73. trimf
74. trimf
75. trapmf
76. trapmf
77. trimf
78. trimf
79. trimf
80. InMFParams [-0.1 -0.2 0 0]
81. [0.1 0 0 0]
82. [0.1 0.2 0 0]
83. [0.3 0.7 0 0]
84. [-0.7 -0.3 0 0]
85. [-0.06 -0.4 0 0]
86. [0.06 0.4 0 0]
Sisteme de conducere fuzzy (UPT, 2011)
Caracteristica static (CS) generalizat intrare-ieire aferent RG-F dezvoltat pentru problema
Crane este ilustrat n fig.5.2.7.
Sisteme de conducere fuzzy (UPT, 2011)
0.5
c ontrol
0
-0.5
-1 0
-0.5
0 -2
0.5
1 angle
position
Fig 5.2.13. Modelul Simulink aferent SRA-RG-F pentru problema Crane cu evidenierea punctelor de
unde se face citirea valorilor referinei.
Fig 5.2.14. Poziia cruciorului pentru cazul n care referina este de form sinusoidal.
Sisteme de conducere fuzzy (UPT, 2011)
5.2.1.2. Experimentul practic de reglare n cazul conducerii SPI pentru problema Crane
Dup simulare se poate trece la experimentul practic. Se deschide modelul de simulare
Simulink de timp real din fereastra principal pd_fuzzy i se acioneaz asupra butonului Real Time
Experiment prin dublu click. Rularea experimentului practic se poate face prin parcurgerea urmtorilor
pai:
1.Pornirea calculatorului;
2.Pornirea echipamentului Feedback;
3.Lansarea programului Matlab;
4.Se tasteaz n fereastra de comenzi Matlab :
>>pendulum
5.Setarea adresei de baz a plcii de interfa PCL-812: set base address: 544;
6.Resetarea traductoarelor: reset encoders;
7.Activare Start Feedback (butonul verde de pe panoul echipamentului; drept rezultat, cruciorul nu se
mic);
8.Lansarea programului directare_crane n urma creia se va afia n fereastra de comenzi Matlab
structura regulatorului;
9.Se alege opiunea pd_fuzzy;
10.Relase fis system (butonul stnga jos din fereastra pd_fuzzy);
11.Se alege prin dublu click butonul corespunztor pentru Real Time Experiment;
12.Start Simulation din bara meniului principal;
13.Stop Simulation;
14.Stop Feedback (butonul rou de pe panou).
P o s it io n a n d d e s ir e d p o s itio n o f th e c a r t
0 .4
0 .3
0 .2
0 .1
-0 .1
-0 .2
-0 .3
0 5 10 15 20 25 30
T im e
[ ]
Fig.5.2.18. Poziia cruciorului i poziia dorit n funcie de timp.
Angular position of the pendulum
4.5
3.5
2.5
2
0 5 10 15 20 25 30
Control
0.4
0.2
-0.2
-0.4
0 5 10 15 20 25 30
Time [s]
setarea opiunii Friction pe 0, atunci va rezulta un SRA-RG-F cu statism, adic poziia dorit a
cruciorului va fi urmrit ca o variabil de regim staionar constant nenul a erorii de reglare.
Bs = [0
0
9.1803
38.2514]
Sisteme de conducere fuzzy (UPT, 2011)
Cs =[1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1]
Ds = [ 0
0
0
0]
n continuare se aplic un procedeu de alocare de poli [4]. Impunnd polii SRA-x (sistemului
nchis):
i aplicnd comanda Matlab acker (corespunztoare formulei lui Ackermann), rezult matricea
compensator kcT:
>>kcT=acker(a,b,p)
RG-F destinat problemei SE va fi dezvoltat astfel nct s aproximeze regulatorul dup stare
descris anterior.
position (2)
pds tab3
8 rules
control (2)
velocity (2)
ang-vel (2)
Se observ c n acest caz toate intrrile n RG-F sunt folosite, existnd patru variabile
lingvistice de intrare: position e1 = w1 x1 (eroarea de reglare de poziie a cruciorului), angle e2 =
w2 x2 = x2, velocity e3 = w3 x3 = 0 x3 (eroarea de reglare de vitez liniar a cruciorului,
Sisteme de conducere fuzzy (UPT, 2011)
Pentru VL de intrare se alege un numr minim de TL, cte doi, conform [9], iar f.d.ap.
aferente TL ai VL de intrare au form trapezoidal (a se vedea i anexa 1) i sunt ilustrate n
fig.5.2.23.
1 N P
0.8
0.6
0.4
0.2
-1 -0.5 0 0.5 1
position
1 N P
0.8
0.6
0.4
0.2
-4 -3 -2 -1 0 1 2 3 4
angle
Sisteme de conducere fuzzy (UPT, 2011)
1 N P
0.8
0.6
0.4
0.2
1 N P
0.8
0.6
0.4
0.2
1 N P
0.8
0.6
0.4
0.2
Pentru stabilizare sunt suficiente opt reguli de reglare fuzzy [9], iar prin aplicarea aceluiai
principiu rezult baza de reguli prezentat n tabelul 5.2.25.
Sisteme de conducere fuzzy (UPT, 2011)
0.6
0.4
0.2
control
0
-0.2
-0.4
-0.6
4
2 1
0 0.5
0
-2
-0.5
angle -4 -1
position
0.6
0.4
0.2
control
0
-0.2
-0.4
-0.6
2
1 1
0 0.5
0
-1 -0.5
velocity -2 -1
position
0.5
control
-0.5
2
1 1
0 0.5
0
-1 -0.5
ang-vel -2 -1
position
Sisteme de conducere fuzzy (UPT, 2011)
0.6
0.4
0.2
control
0
-0.2
-0.4
-0.6
2
1 4
0 2
0
-1
-2
velocity -2 -4
angle
Fig.5.2.26. Caracteristicile statice generalizate intrare-ieire pentru RG-F aferent problemei stab.
Rspunsurile rezultate n urma simulrii sunt prezentate n fig.5.2.28, 5.2.29, 5.2.30, 5.2.31 i
5.2.32, evideniindu-se poziia cruciorului, viteza acestuia, unghiul pendulului, viteza unghiular i
respectiv comanda elaborat de RG-F.
position &
angle
desired position
cart velocity
angular velocity
States states
Dynamics Generator
Normalized_control
Normalized_control 0 Generator
(sampled) Mux
u of desired position
0
Out1
In1
0
errors scaling for plot
Errors Remember to load fuzzy matrix into
the Fuzzy stabilising controller block
Type:
fismat=readfis ( 'pd_stab' )
Limit Guard
in the Matlab Command Window
Out1 In1
fcontrol
Coulomb Friction &
Reduction of angle
Linear Control Gain
Friction = 0.15 !
Fig.5.2.31. Comanda elaboratde regulatorul fuzzy in funcie de timp pentru problema stab.
Sisteme de conducere fuzzy (UPT, 2011)
5.2.2.2. Experimentul practic de reglare n cazul conducerii SPI pentru problema stab
Regimul de stabilizare poate fi verificat utiliznd sistemul real disponibil. Pentru desfurarea
n condiii corespunztoare a experimentului, este necesar s se urmeze paii urmtori:
1.Pornirea calculatorului;
2.Pornirea echipamentului Feedback;
3.Lansarea programului Matlab;
4.Se tasteaz n fereastra de comenzi Matlab:
>>pendulum
5.Setarea adresei de baz a plcii de interfa PCL-812: set base address: 544;
6.Resetarea traductoarelor: reset encoders;
7.Activare Start Feedback (butonul verde de pe panoul echipamentului; drept rezultat, cruciorul nu se
mic);
8.Lansarea programului directare_stab n urma creia se va afia n fereastra de comenzi Matlab
structura regulatorului;
9.Alegerea opiunii pd_fuzzy;
10.Relase fis system (butonul din stnga jos din fereastra pd_fuzzy)
11.Se alege prin dublu click butonul corespunztor pentru Real Time Experiment;
12.Start Simulation;
13.Stop Simulation;
14.Stop Feedback (butonul rou de pe panou).
Paii descrii mai sus sunt determinai prin analogie cu problema swing, presupunndu-se a fi
corect stabilii, presupunere ce se face datorit faptului c NU s-au obinut rezultate practice pentru
acest problem. n acest caz s-a proiectat regulatorul [3], urmnd ca urmtoarele aciuni s se
efectueza asupra modelului Simulink sau n fiierul pd_fuzzy_stab_sf.
Se observ de pe schema din fig.5.2.34 c n acest caz RG-F admite trei VL de intrare: angle
e1 = w1 x2 = 0 x2, ang-vel e2 = w2 x4 = 0 x4 (eroarea de reglare de vitez unghiular a
pendulului, adic viteza unghiular a pendulului cu semn opus) i position e3 = w3 x1 (eroarea de
reglare de poziie a cruciorului), ultima avnd importan secundar.
Baza de reguli a RG-F i f.d.ap. aferente TL ale VL de ieire, comanda u, pentru problema SU
sunt obinute prin aplicarea principiului echivalenei modale astfel ca RG-F s aproximeze urmtoarea
lege de reglare neliniar, recomandat n [9] pentru conducerea SPI stabilizat prin reacie dup stare.
u=sign[x4*|x2|-/2]
Regulile de reglare corespunztoare RG-F din cadrul problemei swing sunt prezentate n
tabelul 5.2.40. Regula 1 i 12 marcheaz limitele corespunztoare spaiului cruciorului, regulile 13 i
24 urmresc aciunea de centrare i balans a SPI urmnd ca regulile 25 i 30 s genereze balansul prin
algoritm [9]. Celelalte reguli au fost obinute prin aplicarea principiului echivalenei modale [12].
Tabelul 5.2.40. Regulile de reglare fuzzy aferente RG-F pentru problema swing.
28. If (position is Z) and (angle is DR) and (ang-vel is N) then (control is P) (1)
29. If (position is Z) and (angle is U) and (ang-vel is N) then (control is N) (1)
30. If (position is Z) and (angle is U) and (ang-vel is P) then (control is P) (1)
31. If (angle is U) and (ang-vel is LN) then (control is MP) (1)
32. If (angle is U) and (ang-vel is LP) then (control is MN) (1)
33. If (angle is DL) and (ang-vel is LP) then (control is Z) (1)
34. If (angle is DR) and (ang-vel is LP) then (control is Z) (1)
35. If (angle is DL) and (ang-vel is LN) then (control is Z) (1)
36. If (angle is DR) and (ang-vel is LN) then (control is Z) (1)
Fig.5.2.41. Caracteristica static generalizat comand n funcie de vitez unghiular i unghi aferent
regulatorului fuzzy pentru problema swing.
position &
angle
desired position
cart
velocity
angular Remember to load
velocity fuzzy matrix into
States
Dynamics the Fuzzy swinging
Mux
control
controller block.
Normalized_control
states
Type:
errors
0 Generator fismat=readfis( 'pd_swing' )
Out1
In1 of desired position
u
scaling 0 in the
Errors for plot Generator Matlab Command Window.
0
-1 Out1 In1
Limiter
Upper zone arbiter Reduction of angle
Linear pendulum
lcontrol lpend controller
In1
Out1
Coulomb Friction & lcart Linear cart controller
Linear Control Gain In2
n acest model se urmrete comportarea SRA-RG-F pentru cazul n care referina de poziie
este setat pe zero. Aceast setare se face prin alegerea valorii zero pentru amplitudine din masca
generatorului de poziie (Fig 5.2.51.), iar masca corespunztoare blocului dinamic este prezentat n
fig.5.2.50.
Rezultatele simulrii comportrii SRA-RG-F sunt reprezentate sub forma evoluiei n timp a
diverselor mrimi de interes ilustrate n fig.5.2.45, 5.2.46, 5.2.47, 5.2.48 i 5.2.49.
Fig.5.2.48. Comanda elaborat de regulatorul fuzzy in funcie de timp pentru problema swing.
Sisteme de conducere fuzzy (UPT, 2011)
Fig 5.2.52. Masca prin care se stabilete coeficientul de frecare (de regul este setat la valoarea 0.1).
5.2.3.2. Experimentul practic de reglare n cazul conducerii SPI cu regulator fuzzy pentru problema
swing
Experimentul practic n acest caz este deosebit de important pentru compararea rezultatelor
obinute experimental cu cele obinute prin simulare. Pentru efectuarea cu success a experimentului
este necesar parcurgerea urmtorilor pai:
1.Pornirea calculatorului;
2.Pornirea echipamentului Feedback;
3.Lansarea programului Matlab;
4.Se tasteaz n fereastra de comenzi Matlab :
>>pendulum
5.Setarea adresei de baz a plcii de interfa PCL-812: set base address: 544;
6.Resetarea traductoarelor: reset encoders;
7.Activare Start Feedback (butonul verde de pe panoul echipamentului; drept rezultat, cruciorul nu se
mic);
8.Lansarea programului directare_swing n urma creia se va afia n fereastra de comenzi Matlab
structura regulatorului;
9.Se alege opiunea pd_fuzzy;
10.Relase fis system (butonul stnga jos din fereastra pd_fuzzy);
11.Se alege prin dublu click butonul corespunztor pentru Real Time Experiment;
12.Start Simulation din bara meniului principal;
13.Stop Simulation;
14.Stop Feedback (butonul rou de pe panou).
Sisteme de conducere fuzzy (UPT, 2011)
n pasul 11 se va deschide modelul Simulink de timp real corespunztor experimentului practic pentru
problema swing, model prezentat n fig.5.2.53.
Fig.5.2.53. Modelul Simulink de timp real aferent experimentului practic pentru problema swing.
0.2
0.15
0.1
0.05
-0.05
-0.1
-0.15
-0.2
0 5 10 15 20 25 30 35 40
Time [s]
Pendulum angle,
0
-1
-2
-3
-4
-5
-6
0 5 10 15 20 25 30 35 40
Time [s]
Pendulum velocity,
10
-5
-10
0 5 10 15 20 25 30 35 40
Time [s]
0.4
0.2
-0.2
-0.4
-0.6
0 5 10 15 20 25 30 35 40
Time [s]
Control,
0.25
0.2
0.15
0.1
0.05
-0.05
-0.1
-0.15
-0.2
-0.25
0 5 10 15 20 25 30 35 40
Time [s]
Dezvoltarea i implementarea unui regulator fuzzy presupune parcurgerea unui numr de pai
care vor fi parcuri direct sau indirect, n funcie de mediul de programare utilizat. Folosirea
tehnicilor avansate de programare permite n construcia regulatoarelor destinate conducerii SPI
omiterea din partea proiectantului a unor pai introdui implicit prin program, acesta nefiind obligat
s se ocupe de exemplu cu algoritmii de citire a parametrilor, care ulterior vor fi setai de aceeai
persoan. Funciile utilizate n proiectare folosite i n comunicaia cu real time task real precum i
descrierea acestora este prezentat n tabelul A1 [3].
Tabelul A1. Funciile i comunicaia cu RTT (Real-Time Task, Task de Timp Real).
Function Name Description
Task de Timp Real.
GetAlgNo Citete numrul de algoritm.
GetBaseAddress Citete adresa de baz a plcii PCL-812.
GetCartPosFilt Citete parametrii de poziie a cruciorului.
GetCartSpeedFilt Citete parametrii de vitez a cruciorului.
GetDesPosition Funcia citete referina de poziie.
GetDividor Divizor auxiliar de timp.
GetHistory Coninutul buffer-ului.
GetNrOfSamples Numrul eantioanelor din buffer.
GetP Parametrii algoritmului de control.
GetPendPosFilt Citete parametrii poziiei de nceput.
GetPendSpeedFilt Citete parametrii de nceput pentru vitez.
GetPW Parametrii generatorului de excitaie intern.
GetSampleTime Perioada de timp.
LoadLibrary Load RTK DLL library.
ResetEncoder Resetarea traductoarelor incrementale.
ResetTime Setarea timpului de experiment la valoarea zero.
Sisteme de conducere fuzzy (UPT, 2011)
Avnd definite funciile cu care lucreaz softul ce implementeaz SPI, funcii definite implicit
prin program, se poate stabili un numr de pai teoretici ce trebuie urmai n dezvoltarea,
implementarea i testarea unui regulator fuzzy.
Pe baza afirmaiilor anterioare rezult urmtorul ghid de proiectare i dezvoltare:
2. Se implementeaz regulatorul fuzzy folosind editorul FIS din Matlab Fuzzy Toolbox.
Pentru o uurin n proiectare sunt introduse specificaiile ce urmeaz, fiind prezentate succint toate
opiunile editorului.
Editorul grafic fuzzy reprezint interfaa de baz, avansat, cu utilizatorul, care permite
crearea, ncrcarea, modificarea i salvarea variabilelor n format fis.
Spre exemplu, n fig.A1 este prezentat forma editorului grafic pentru RG-F aferent
poziionrii pendulului invers i denumit sistemul 'untitled.
Meniurile File, Edit i View au structura indicat n continuare i asigur urmtoarele
faciliti:
File: New Mamdani fis - definete un nou sistem (RG-F) de tip Mamdani;
New Sugeno fis - definete un nou sistem (RG-F) de tip Sugeno;
Open from disk - deschide un fiier de pe disc;
Save to disk - salveaz pe disc fiierul curent;
Save to disk as ... - salveaz pe disc cu numele ... fiierul curent;
Open from workspace - citete din spaiul de lucru o variabil de tip fis;
Save to workspace - salveaz n spaiul de lucru sistemul curent din editor;
Save to workspace as ... - salveaz n spaiul de lucru sub numele ... sistemul curent din
editor;
Close window - nchide sesiunea curent de lucru;
Sisteme de conducere fuzzy (UPT, 2011)
3. Se salveaz fiierul cu extensia fis in directorul care conine toate fiierele cu aceast
extensie create anterior.
Sisteme de conducere fuzzy (UPT, 2011)
4. Se construiete modelul Simulink al regulatorului. Este vorba despre dou modele: modelul
pentru simularea comportrii SRA-RG-F i modelul Simulink de timp real, utilizat n experimentele
practice de reglare.
6. Se d comanda Start Simulation din meniul principal Matlab dup ce a fost deschis
fereastra ce conine modelul Simulink creat.
n continuare vor fi prezentate elemente privind crearea i editarea interfeei fuzzy sistem
utilizat de MATLAB Fuzzy Logic Toolbox [9], care ofer dou metode de dezvoltare a
regulatorului fuzzy:
a) interactiv utiliznd unelte grafice;
b) automat utilznd mecanisme neuro-fuzzy.
La a) sunt disponibile de asemenea doua tipuri de interfa fuzzy sistem: Mamdani i Sugeno.
Interfaa Mamdani este editabil interactiv. Acest lucru face posibil n cazul direct s se nteleag mai
uor concluziile introduse n baza de reguli sub forma unor funcii de apartenen.
MATLAB Fuzzy Logic Toolbox este realizat doar pentru simulare. Obiectivul ns, este acela
de a-l folosi pentru conducerea proceselor n timp real. De asemenea, exist i toolbox-uri dedicate
pentru sistemul pendul-carucior, cum ar fi de exemplu pd_fuzzy. Partea important a acestuia are trei
mecanisme:
a) simularea folosind modelul Simulink al sistemului pendul-carucior
b) experimente de timp real utiliznd Fuzzy RTK i editorul pentru regulatorul fuzzy folosind
csua de unelte. n csua de unelte a pd_fuzzy exist cteva elemente necesare pentru conducerea n
timp real, iar restul sunt optionale sau auxiliare. Mecanismele folosite pentru dezvoltarea
regulatoarelor fuzzy pot fi aplicate cu succes dac se gsesc specificaiile toolbox-ului.Specificatiile
se reduc pentru nceput la numrul i ordinea semnalelor de intrare i de ieire.
Regulatoarele fuzzy destinate conducerii sistemului pendul invers pot fi echipate cu patru
intrri (VL de intrare) care reprezint variabilele de stare (primele dou sunt erorile de reglare
aferente, iar celelalte dou sunt variabilele de stare cu semn schimbat) i o ieire (VL de ieire) care
este comanda. Ordinea variabilelor este urmatoarea: pozitia caruciorului, unghiul pendulului, viteza
cruciorului i viteza unghiular a pendulului.
Pentru pornire se foloseste simplu pd_fuzzy n fereastra de comenzi MATLAB. Aici exist
trei regulatoare demonstrative: C (Crane), SE (stab) i SU (swing up, swing). Fiecare din acestea trei
poate fi activat in regimul de simulare prin dublu click pe butonul albastru, sau in regimul de
functionare prin dublu click pe butonul rou. De asemenea se poate deschide editorul fuzzy pentru a
vizualiza interfaa fuzzy sistem prin acionarea butonului negru.
Dou butoane din fereastra pd_fuzzy (fig.A2) sunt importante: Relase FIS Sistem i Show FIS
Message. Dac se alege prima opiune, se poate ncepe un nou experiment fr a fi necesar resetarea
calculatorului. Cel de-al doilea buton arat lista cu toate avertizrile ce apar n decursul
experimentului. Se genereaz o avertizare tipic dac variabilele curente de intrare sau de ieire sunt
n afara universului discursurilor (domeniului de baz). De asemenea, atenionarea se poate face i n
cazul n care se ncepe o nou simulare, iar pentru precedenta nu s-a activat butonul de stop
simulation. n acest caz se ncetinete execuia simulrii prin scrierea de mesaje n fereastra de
comenzi MATLAB. n regimul real-time atenionrile nu opresc rularea sistemului, acestea fiind
memorate pentru a ajuta la analiza n viitor a erorilor. Cnd experimentul este terminat, lista poate fi
citit prin dublu click pe butonul Show FIS Message.
Sisteme de conducere fuzzy (UPT, 2011)
Se presupune c fereastra pd_fuzzy a fost deschis prin dublu click pe butonul fuzzy. Prin
dublu click pe butonul albastru ce are ca identificator Simulink Simulation va deschide modelul
de simulare corespunztor problemei considerate. De exemplu, dac este activat butonul albastru
Simulink Simulation corespunztor lui Crane FIS controller atunci va apare o fereastr de tipul
celei din fig. A3. Paii obligatorii pentru acest caz sunt cei descrii anterior.
Sisteme de conducere fuzzy (UPT, 2011)
position &
angle
desired position
cart velocity
angular velocity
States states
Dynamics Generator
Normalized_control
Normalized_control 0 Generator
(sampled) Mux
u of desired position
0
Out1
In1
0
errors scaling for plot
Errors
Remember to load fuzzy matrix into
the Fuzzy crane controller block
Type:
fismat=readfis ( 'pd_crane' )
Limit Guard
in the Matlab Command Window
Out1 In1
fcontrol
Coulomb Friction &
Reduction of angle
Linear Control Gain
Fig.A3. Exemplu de model Simulink folosit n cazul simulrii numerice a comportrii SPI.
Fig.A4. Masca aferent RG-F aferent problemei Crane, fuzzy crane controller.
n acest moment, sistemul de reglare automat cu regulator fuzzy (SRA RG-F) este pregtit
pentru simularea numeric a comportrii sale n Simulink [14].
Similar modului de simulare prezentat anterior, se presupune c fereastra pd_fuzzy a fost deja
deschis prin comanda:
>> fuzzy pd_fuzzy.
Se acioneaz prin dublu click butonul rou Real-time Experiment pentru a deschide
modelul de timp real aferent. De exemplu, dac este butonul rou poziionat n linia corespunztoare
Crane FIS Controller, atunci va fi activ fereastra din fig.A5.
Sisteme de conducere fuzzy (UPT, 2011)
Fig.A5. Fereastra aferent vizualizrii elementelor necesare legate de comportarea SPI pentru
experimentele practice.
Modelul Simulink de timp real din fig.A5 trebuie reactualizat pentru a urmri comportarea
real a SPI i nu pentru a efectua simulri numerice. nainte de a ncepe partea de experiment practic
trebuie s existe siguran privind att configuraia hard ct i corectitudinea n care se face resetarea
traductoarelor(SPI este n repaus). n scopul eventualelor modificri ale parametrilor modelului
Simulink de timp real poate fi aleas masca corespunztoare blocului denumit Real Time Task din
fig.A5. Prin dublu click pe acest bloc se va deschide fereastra din fig.A6.
Fig.A5. Masca aferent parametrilor modelului Simulink de timp real (Real Time Task).
Sisteme de conducere fuzzy (UPT, 2011)
Majoritatea parametrilor din fig.A6 sunt cunoscui din capitolele anterioare. Intervin doi noi
parametri: FIS output gain i Alpha offset. Cel de-al doilea parametru egal cu indic fapul c
pendulul se afl n poziiade jos.
Pentru rularea cu succes n problema Crane nu este nevoie s fie schimbate setrile din fig.A6.
Dac este selectat opiunea Simulation din meniul principal i se alege start, fereastra care apare este
prezentat n fig.A7.
Dup apariia mesajului din fig.A7, poate fi stabilit dac conversia a fost fcut cu succes.
Dac se acioneaz prin click butonul OK, noua fereastr care apare este cea din fig.A8.
Apariia mesajului din fig.A8 confirm faptul c fiierul pd_crane FIS corespunztor
regulatorului fuzzy aferent problemei crane a fost ncrcat. Sistemul este pregtit pentru startul
experimentului practic, iar prin aciunea asupra butonului OK va ncepe experimentul.
Oprirea se poate face prin dou ci:
fie dac flagul de Stop Practical dup Simulation/Stop este marcat, se acioneaz prin click
butonul de Stop poziionat n meniul Simulation;
fie prin aciunea butonului de Stop Practical n fereastra pd_fuzzy;
Pe parcursul derulrii experimentului practic pot fi vizualizate evoluiile n timp ale diverselor
mrimi din sistem care la dorina utilizatorului pot fi sub diferite forme de reprezentare grafic n
MATLAB sau Simulink.
Pentru o bun documentare a proiectantului este util introducerea unor noiuni de baz
referitoare la Fuzzy Logic Toolbox din cadrul mediului Matlab [10], [13], [16].
n aceast anex sunr prezentate demonstrativ o parte din programele elaborate, restul fiind disponibile
dup adresarea unei cereri n cadrul laboratorului.
% **********
% Program pentru trasarea c.d.f. aferente sistemului deschis
% in problema Crane cu RG-P
% **********
% MM-ISI liniarizat:
As =[0 0 1.0000 0
0 0 0 1.0000
0 0.6111 -34.9727 0.0001
0 -43.4213 145.7195 -0.0054];
Bs = [0
0
9.1803
Sisteme de conducere fuzzy (UPT, 2011)
-38.2514];
Cs =[1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1];
Ds = [ 0 ];
% f.d.t.:
[num,den]=ss2tf(As,Bs,Cs(1,:),Ds,1);
% f.d.t. cu RG-P:
kR=100;
num=num*kR;
% trasare c.l.p.:
bode(num,den)
hhh=gcf;
directare_crane
%*************
%Program utilizat n pasul 11 pentru pornirea experimentrii
% practice;
%*************
cd feedback
cd pendulum
cd fuzzy
fimat=readfis(pd_crane)
%************
directare_stab
%*************
%Program utilizat n pasul 11 pentru pornirea experimentrii
% practice;
%*************
cd feedback
cd pendulum
cd fuzzy
fimat=readfis(pd_stab1)
%************
directare_swing
%*************
%Program utilizat n pasul 11 pentru pornirea experimentrii
% practice;
%*************
cd feedback
cd pendulum
cd fuzzy
fimat=readfis(pd_swing)
%************
LEGEND
C. TEMATICA LUCRRII:
1. Se studiaz materialul din cadrul paragrafului B. punnd accentul pe prezentarea general a
SPI, punerea celor trei probleme de reglare precum i pe structura hardware i software a sistemului.
2. Se dezvolt regulatoarele fuzzy pentru toate cele trei probleme de reglare (Crane, SE i SU).
3. Utiliznd programele Matlab-Simulink disponibile, se efectueaz simularea comportrii
celor trei SRA cu RG-F considernd diverse regimuri de interes.
4. Utiliznd programele Matlab-Simulink disponibile, se efectueaz implementarea a dou
regulatoare fuzzy, pentru problemele Crane i SE. Se efectueaz apoi experimentele practice de
reglare (n timp real) pentru cele dou SRA cu RG-F considernd diverse regimuri de interes.
5. Se efectueaz un studiu comparativ al rezultatelor exmerimentale cu cele obinute prin
simulare prin prisma performanelor asigurate de SRA cu RG-F.
6. Se efectueaz studiul efectelor modificrii diferiilor parametri ai RG-F asupra comportrii
n timp real a SRA cu RG-F.
D. BIBLIOGRAFIE:
[1] Mamdani, E.-H.: Applications of Fuzzy Control of Simple Dynamic Plant, IEE Proceedings, pt.
D, vol., 1, no. 12, pp. 1585-1588, 1974.
[2] Precup, R.-E.: Soluii de conducere fuzzy a sistemelor cu faz neminim. Aplicaii la conducerea
hidrogeneratoarelor, Editura Orizonturi Universitare, Timioara, 2000.
[3] Feedback: Digital Pendulum System. Users Manual, Feedback Instruments Ltd., Crowborough,
UK, 1998.
[4] Precup, R.-E.: Ingineria reglrii automate, Notie de curs, UPT, Timioara, 2006-2010.
[5] Preitl, St.: Ingineria reglrii automate I i II, Notie de curs, UPT, Timioara, 2000-2006.
[6] Preitl, St., R.-E. Precup i A. Porumb: Elemente de reglare automat, Curs, vol.1, Litografia UPT,
Timioara, 1996.
[7] Drgulescu, D.: Mecanic, Notie de curs, UPT, Timioara, 1998-2002.
[8] Protean, O.: Modelare, simulare i elemente de identificare, Notie de curs, UPT, Timioara,
2006-2010.
[9] Feedback: Rule-Based and Fuzzy Controllers, Feedback Instruments Ltd., Crowborough, UK,
1998.
[10] Preitl, St. i R.-E. Precup: Introducere n conducerea FUZZY a proceselor, Editura Tehnic,
Bucureti, 1997.
[11] Precup, R.-E. i St. Preitl: Fuzzy Controllers, Editura Orizonturi Universitare, Timioara, 1999.
[12] Galichet, S. i L. Foulloy: Fuzzy Controllers: Synthesis and Equivalences, IEEE Transactions
on Fuzzy Systems, vol. 3, pp. 140-148, 1995.
[13] Matlab: Fuzzy Logic Toolbox, MathWorks Inc., Natick, MA, 1998.
[14] Simulink: Simulink, Dynamic Sistem Simulation for Matlab, MathWorks Inc., Natick, MA, 1998.
[15] A.Turnau (ed.), A. Pilat, K. Hajduk, A. Korytowski, W. Grega, P. Gorczyca, K. Kolek, M. Rosl:
Teaching Manual 1 for Inverted Pendulum-Cart System - Modelling, Identification, PID and LQ
Controllers - Krakow, September 1997.
[16] Precup, R.-E.: Matematici asistate de calculator. Algoritmuri, Editura Orizonturi Universitare,
Timioara, 2007.