Documente Academic
Documente Profesional
Documente Cultură
Ingineria sistemelor cu inteligenta artificiala TEMA: Sistem de control fuzzy pentru pendulul inversat
Profesor Indrumator: sef lucrari ANGHELESCU PETRE Studenta : Ghita Ana-Maria Specializarea : Calculatoare 412
-2011-
Cerin
Sa se realizeze un sistem de control fuzzy pentru mentinerea unui pendul in pozitie verticala (sistem unidimensional) . Se cere: - Implementarea utilizand fuzzy - Modelul simulink
Pendulul inversat
Una dintre cele mai studiate probleme din domeniul controlului proceselor este problema pendulului inversat. Comportamentul pendulului inversat este bine cunoscut, si pentru rezolvarea acestei probleme au fost aplicate multe tehnici diferite din teoria controlului, fiind dezvoltate diverse variante de sisteme de control. Una dintre aceste tehnici a fost, n mod normal, si tehnica de control cu ajutorul unui sistem cu logica fuzzy. Un pendul inversat este, din punct de vedere mecanic, un pendul ca si cel al unui ceas (deci, un pendul tipic); diferenta fata de pendulul de ceas consta n pozitia n care vrem ca pendulul sa fie stabil. Scopul problemei pendulului inversat este ca, printr-o forta (energie) exterioara aplicata pendulului, sa facem ca pendulul sa stea n pozitia verticala sus, n loc sa cada n pozitia verticala jos, cum ar fi tendinta sa naturala. Sistemul cu logica fuzzy pentru controlul pendulului inversat va fi un sistem cu doua intrari transante si o iesire transanta. Cele doua intrari transante sunt doua marimi masurate din procesul controlat: pozitia unghiulara a pendulului, - Theta, si viteza unghiulara instantanee a pendulului, d - dTheta, reprezentate n figura:
Pentru a rega respectivul pendul se foloseste modelul pendulului invers montat pe un carucior mobil, asa cum arata figura urmatoare:
Pentru nceput precizam ca structura pe care vom lucra este o structura de regulator de tip Mamdani care are urmtoarea schem bloc :
Fuzificator - convertete valorile convenionale (crisp) n valori fuzzy (lingvistice) prin intermediul funciilor de apartenen care mapeaza universul discursului (domeniul de intrare). Baza de reguli - baza de cunostiine care conine reguli de forma IF in_1 is x1 AND/OR in_2 is x2 AND/OR in_n THEN out is y. Motorul de inferent - face trecerea din setul de variabile lingvistice de intrare (antecedente) n setul de variabile lingvistice de ieire (consecvente). Cea mai cunoscuta metod de inferenta este inferenta de tip maxmin. Defuzificator - dup cum sugereaz i numele realizeaz funcia invers fuzzificatorului, adica conversia din valori fuzzy n valori crisp.
Strategia de control Pentru regulatorul fuzzy care controleza pozitia unghiulara a pendulului invers folosim urmtoarele intrari i iesiri : Variabile de intrare : pozitia unghiulara () - theta viteza unghiulara (d/dt) - dTheta Variabila de ieire : Forta aplicata cartului - F
1. Fuzificare
Domenii de variaie. Universul discursului :
Pozitia unghiulara a pendulului ,theta , se defineste fata de verticala
0Y, si este: theta=0 pentru pozitia verticala sus a pendulului, si theta>0 n directia acelor ceasornicului si theta<0 in directia opusa. Theta se exprima n radiani (adica, unghiul n grade nmultit cu /180). Viteza unghiulara a pendulului, dTheta, este derivata n timp a pozitiei unghiulare; ea este pozitiva n sensul acelor ceasornicului, si negativa n sens invers. dTheta se exprima in rad/sec.
4
Universul discutiei variabilei de intrare pozitie unghiulara - theta este intervalul [-0.4 ; 0.4] rad (limitele n care poate s varieze unghiul pendului exprimate n radiani). Alegerea multimilor fuzzy pentru variabila de intrare theta se bazeaza pe doua observatii: 1) deoarece pozitia de echilibru dorita este n jurul valorii theta=0, cu eroare mica, va trebui sa avem o multime fuzzy axata pe theta =0, cu suport ngust, dar nenul, pe care o vom numi simplu multimea fuzzy ZE. O alegere corespunzatoare este sub forma unei multimi fuzzy triunghiulare simetrice, cu vrful n theta=0, si cu suportul =[-0,1333; 0,1333]. 2) deoarece unghiul theta poate avea, simetric, valori pozitive si negative, este bine sa avem attea multimi fuzzy pentru descrierea variatiei negative a lui theta fata de pozitia de echilibru, ZE, cate multimi fuzzy avem pentru descrierea variatiei pozitive a lui theta fata de ZE. n ceea ce privete numrul lor l vom alege 7 pentru c echilibrul pendulului este unul instabil i n plus sistemul este foarte sensibil la schimbrile variabilelor i d/dt (5 ar fi fost prea puine iar 9 prea multe). Astfel, universul discursului este impartit in 6 intervale egale, deci 0.8/6 0.1333. Vom avea in acest mod 7 functii de apartenenta triunghiulare,suprapuse. Cele 7 functii sunt urmtoarele : NL - Negative Large NM Negative Medium NS - Negative Small ZE - Zero PS - Positive Small PM Positive Medium PL - Positive Large Ele sunt transpuse ca sistem fuzzy astfel:
Universul discutiei variabilei de intrare viteza unghiulara - dTheta se considera a fii [-4; 4] rad/sec,acestea fiind valorile tipice acestei marimi. Numarul multimilor fuzzy alese peste universul discutiei vitezei unghiulare dTheta va fii, in mod normal, acelasi ca si in cazul variabilei theta, iar forma va fii, de asemenea identica. Astfel, universul discursului este impartit in 6 intervale egale, deci 8/6 1.3333 Cele 7 multimi fuzzy vor fi numite (ca si n cazul variabilei theta): NL - Negative Large NM Negative Medium NS - Negative Small ZE - Zero PS - Positive Small PM Positive Medium PL - Positive Large Functiile de apartenenta pentru viteza unghiulara arata in modul urmator:
6
2. Defuzificare
Domenii si Functii de apartenen
Forta F este marimea aplicata cartului pentru a se deplasa in directia
dorita (stanga pentru F pozitiv si dreapta pentru F negativ). Variabila de comand este una singur i anume fora aplicat caruciorului. De aceea definim 11 funcii de apartenenta tot triunghiulare pentru a avea o granularitate mai mare a domeniul de ieire i implicit un control mai bun asupra poziiei. Limitrile superioare si inferioare ale comenzii vor fi dictate de tipul elementului de executie. Avnd n vedere c avem un element de executie de tip motor electric de curent continuu ce poate fi comandat ntr-un domeniu de liniaritate cuprins in intervalul -22V+22V i care poate dezvolta o fort cuprins intre 20N i +20N, rezultand ca domeniul de variatie a iesirii
7
poate fi ntre [-20 +20] N. Cele 11 multimi fuzzy vor fi numite : NX - Negative Extralarge NL - Negative Large NM Negative Medium NS Negative Small ZN Zero Negative ZE Zero ZP Zero Positive PS - Positive Small PM Positive Medium PL - Pozitive Large PX Positivie Extralarge Funciile de apartenen pentru forta arata in modul urmator:
Conform cu functiile de apartenenta si cu regulile declarate, putem observa urmatoarea suprafata a controlerului pendulului inversat:
9
Pentru regulatorul fuzzy care controlez poziia liniar a cartului folosim urmatoarele intrari i iesiri : Variabile de intrare : poziia linara - y viteza liniara - dy Variabila de iesire : forta aplicata cartului - F
4. Fuzificare
Domenii de variaie. Universul discursului : Universul discutiei variabilei de intrare pozitia cartului - y este intervalul [-1 ; 1] m (limitele n care poate s varieze poziia cartului exprimat n metri). n ceea ce privete numarul functiilor de apartenenta, acesta va fii 7. Astfel, universul discursului este impartit in 6 intervale egale, deci 2/6 0.3333. Vom avea in acest mod 7 functii de apartenenta triunghiulare,suprapuse. Cele 7 functii sunt urmatoarele : NL - Negative Large NM Negative Medium NS - Negative Small ZE - Zero PS - Positive Small PM Positive Medium PL - Positive Large Ele sunt transpuse ca sistem fuzzy astfel:
10
Universul discutiei variabilei de intrare viteza liniara - dy se considera a fii [-3; 3] rad/sec,acestea fiind valorile tipice acestei marimi. Numarul multimilor fuzzy alese peste universul discutiei vitezei liniare dy va fii, in mod normal ,acelasi ca si in cazul variabilei y, iar forma va fii, de asemenea identica. Astfel, universul discursului este impartit in 6 intervale egale, deci 6/6 = 1. Cele 7 multimi fuzzy vor fi numite (ca si n cazul variabilei y): NL - Negative Large NM Negative Medium NS - Negative Small ZE - Zero PS - Positive Small PM Positive Medium PL - Positive Large Functiile de apartenenta pentru viteza unghiulara arata in modul urmator:
11
5. Defuzificare
Domenii si Functii de apartenenta
Forta F este marimea aplicata cartului pentru a se deplasa in directia
dorita (stanga pentru F pozitiv si dreapta pentru F negativ). Vom considera aceleasi multimi fuzzy pentru forta ca si in cazul pendulului, avand acelasi numar, denumire si domenii. Cele 11 multimi fuzzy vor fi numite : NX - Negative Extralarge NL - Negative Large NM Negative Medium NS Negative Small ZN Zero Negative ZE Zero ZP Zero Positive PS - Positive Small
12
Conform cu functiile de apartenenta si cu regulile declarate, putem observa urmatoarea suprafata a controlerului pendulului inversat:
13
Asa cum este prezentat in schema de reglare, avem 2 controlere:unul pentru cart si unul pentru pendul. Ambele controlere dau la iesire valoarea fortei F. Controlerul cartului primeste pe intrare starea sistemului utilizand un bloc simulink de tip Step, semnal adunat cu reactia sistemului pentru pozitia cartului. Acest semnal obtinut prin insumare este multiplexat cu o valoare data de un
14
amplificator Gain de valoare -1 care ajusteaza semnalul dat pe reactie pentru viteza cartului. Pe iesire, controlerul cartului scoate o valoare a fortei F care va fii luata in considerare de sistemul final tinand cont de o pondere amplificata prin blocul Cart Gain de 0.33. Controlerul cartului este directionat spre regulatorul fuzzy care controleza pozitia cartului Ccontroller.fis. Controlerul pendulului primeste pe intrare starea sistemului utilizand un bloc simulink de tip multiplexor, ce primeste pe intrari reactiile sistemului pentru pozitia unghiulara, theta, respectiv, viteza unghiulara, dTheta. Pe iesire, controlerul pendulului scoate o alta valoare a fortei F care va fii luata in considerare de sistemul final tinand cont de o pondere amplificata prin blocul pendul Gain de 0.66, fiind prioritara fata de ponderea data pentru cart de 0.33. Controlerul pendulului este directionat spre regulatorul fuzzy care controleza poziia unghiulara Pcontroller.fis. Cele doua ponderi ale fortei sunt insumate, iar rezultatul limiteaza distanta dintre semnale prin blocul Saturation ce impune limitele superioare si inferioare ale semnalului. Semnalul este insumat cu un alt semnal obtinut prin comutarea intre 2 semnale: unul dat printr-un Pulse Generator, iar altul printr-o constanta cu valoarea 0. Rezultatul intra intr-un subsistem numit inverted pendulum, care are ca iesiri: x- pozitia cartului, dx viteza cartului, theta pozitia unghiulara si dTheta viteza unghiulara. Aceste semnale sunt preluate de un bloc de tip Scop care vizualizeaza semnalele generate in timpul unei simulari, obtinanduse graficele respectivelor semnale. Tot preluat de un Scop este si comanda asupra pendulului, generata de blocul Saturation. Subsistemul inverted pendulum implementeaza analiza comportarii neliniare, reale, a pendulului invers.Acest model matematic neliniar implementat sub forma schemei Matlab/Simulink va fi folosit pentru simularea soluiei de control neliniar. Ecuatiile implementate in subsistem sunt :
Ele sunt obtinute din prelucrarea ecuatiilor de echilibru al forelor i cuplurilor ce actioneaz asupra sistemului mecanic :
15
, unde: M masa cartului m masa pendulului l lungimea pendulului y deplasarea cartului - deplasarea pendulului F fora aplicat cartului Functiile de transfer au fost obtinute in cazul particular al sistemului mecanic considerat cu M=1kg, g=10 m/s2, l=0.3m i m=0.2kg. Conform acestor consideratii s-a realizat urmatoarea schema simulink a subsistemului inverted pendulum :
Graficele obtinute in urma simularii sistemului ce implementeaza schema de reglare sunt urmatoarele:
16
17
18