UNIVERSITATEA SAPIENTIA
TÂRGU-MUREŞ
TEHNICI DE OPTIMIZARE
(I ŞI II)
LUCRĂRI DE LABORATOR
Şef lucr. ing. György Katalin
Prof. dr.ing. Dávid László
2008
1
SAPIENTIA EMTE
Marosvásárhely
OPTIMUM KERESŐ ALGORITMUSOK
OPTIMÁLIS VEZÉRLÉSEK
LABORGYAKORLATOK
György Katalin, adjunktus
Dr. Dávid László, egyetemi tanár
2008
2
CUPRINS
Lucrarea nr.1 Metode de căutare a minimului fără restricţii în mediul "Matlab" ….. 3
Lucrarea nr.2 Metode de căutare a minimului cu restricţii în mediul "Matlab" …... 6
Lucrarea nr.3 Algoritmi de căutare directă a minimului ……………………………. 10
Lucrarea nr.4 Metode de gradienţi de ordin I ……………………………………… 14
Lucrarea nr.5 Metode de calcul al pasului optimal la căutarea minimului …………. 17
Lucrarea nr.6 Metode de gradienţi de ordin II………………………………………. 22
Lucrarea nr.7 Metode de gradienţi conjugaţi………………………………………... 24
Lucrarea nr.8 Metode numerice pentru rezolvarea problemelor cu restrictii………. 26
Lucrarea nr.9 Rezolvarea analitică a problemelor cu ajutorul ecuaţiilor Euler-
Lagrange (calcul variaţional)………………………………………..
29
Lucrarea nr.10 Controlul optimal în timp a unui oscilator armonic liniar …………… 32
Lucrarea nr.11 Controlul optimal în timp al unui sistem inerţial de ordin II…………. 35
Lucrarea nr.12 Navigaţia optimală spre o insulă circulară convexă………………….. 39
Lucrarea nr.13 Regulator optimal de stare……………………………………………. 42
Lucrarea nr.14 Metode de rezolvare a ecuaţiei Riccati ………………………………. 45
Lucrarea nr.15 Regulator optimal de urmărire……………………………………….. 48
Lucrarea nr.16 Optimizarea dinamică a sistemelor neliniare…………………………. 51
Lucrarea nr.17 Metoda programării dinamice discrete………………………………. 55
Lucrarea nr.18 Regulatoar optimal discret de stare …………………………………. 57
Lucrarea nr.19 Metode de rezolvare a ecuaţiei discretă Riccati……………………… 59
Lucrarea nr.20 Regulator optimal discret de urmărire……………………………….. 61
Bibliografie……………………………………………………………………………… 65
3
Lucrarea nr. 1. Lab.1
METODE DE CĂUTARE A MINIMULUI FĂRĂ RESTRICŢII
ÎN MEDIUL "MATLAB"
Scopul lucrării:
Lucrarea are scop studiul funcţiilor de minimizare fără restricţii în mediul MATLAB,
rezolvarea unor probleme de optimizare liniare şi neliniare cu o singură variabilă
respectiv cu mai multe variabile.
Introducere teoretică:
Minimizarea funcţiilor de o singură variabilă:
Considerăm că avem o funcţie reală de o singură variabilă :f , care este continuă
şi derivabilă pe intervalul de definiţie. Condiţia de necesitate pentru minim este:
0)(
x
xf
rezolvând această ecuaţie se obţin punctele extreme ( 0x ) ale funcţiei. Un punct x* va fi
un punct minim pentru funcţia f(x), dacă : 0)(
0)(
2
*2*
x
xf
x
xf
Minimizarea funcţiilor de mai multe variabile:
Considerăm că avem o funcţie reală nf : , care este continuă şi derivabilă pe
intervalul de definiţie. Un punct nx * va fi minimul funcţionalei )(xf , unde
Tnxxxx 21 , dacă:
0)(
0)(
0)( *
2
*
1
*
nx
xf
x
xf
x
xf (condiţie de necesitate )
respectiv matricea hessiană în punctul *x este o matrice pozitiv definită (condiţie de
suficienţă). Matricea hessiană se construieşte cu derivatele parţiale de ordin doi, deci se
defineşte ca:
nn
n
x
xf
xx
xf
xx
xf
x
xf
H
2
*2
1
*2
1
*2
12
*2
)()(
)()(
Funcţii pentru minimizare fără restricţii în MATLAB
Mediul de programare MATLAB este dedicat pentru calculul numeric şi al
reprezentărilor grafice. Programul are anumite aplicaţii specifice (TOOLBOX), care
4
conţin o colecţie de funcţii create pentru rezolvarea unor probleme speciale. Una dintre
acestea este denumită toolbox-ul OPTIM în care apar funcţiile speciale folosite în
optimizări neliniare respectiv liniare fără /cu restricţii. În prezenta lucrare se definesc atât
funcţiile existente în versiunea 5.x a programului cât şi funcţiile de minimizare, care apar
în versiunile mai noi ale programului:
Calculul minimului funcţiilor de o variabilă:
[xmin, options]=fmin('F',x1,x2,options) unde:
F - reprezintă numele fişierului, care conţine funcţia de minimizat )(xf
x1,x2 - reprezintă intervalul de căutare al punctului minim 2min1 xxx
xmin - punctul minim obţinut
[xmin, options]=fmins('F',x0,options) unde:
F - reprezintă numele fişierului care conţine funcţia de minimizat )(xf
x0 - reprezintă vectorul punctului de pornire
xmin - vectorul punctului minim obţinut
Se observă că amândouă funcţii au ca argument de intrare şi de ieşire variabila options,
care este un argument opţional. Această variabilă reprezintă opţiunile cu care algoritmul
de căutare va fi rezolvat şi este folosită şi de alte funcţii de minimizare. Structura de
opţiuni poate fi vizulizată prin rularea comenzii "help foptions". Dacă funcţiile de mai
sus sunt apelate fără acest argument atunci se lucrează cu valorile implicite a acestora. Se
poate observa că funcţiile amintite folosesc numai căteva dintre aceste opţiuni, cum ar fi:
options (1) - afişarea valorilor intermediare sau nu
options (2) - valoarea toleranţei
options (14) - numar maxim de iteraţii
Dacă structura options apare şi ca argument de ieşire, atunci această structură ne va
furniza nişte informaţii in plus despre algoritmul de căutare a minimului (ex. valoarea
funcţionalei în punctul minim obţinut, numărul de iteraţii care a fost efectuat pentru
atingerea punctului minim, etc.)
Funcţiile prezentate în versiunile MATLAB 6.x sunt înlocuite de funcţiile fminbnd
respectiv fminsearch. Apelarea funcţiilor este asemănătoare cu cele de mai inainte cu
deosebirea că aici modificarea respectiv afişarea elementelor structurii options se poate
face prin intermediul funcţiilor optimset respectiv optimget.
Exemplu de rezolvare al problemei }23min{ 22 yxyx in mediul Matlab:
Se va scrie funcţia obiectiv in fişierul fun.m :
function f=fun(x)
f=x(1)^2+x(2)^2-x(1)*x(2)+23;
In fereastra decomandă (sau într-un fisier separat) se vor scrie următoarele comenzi:
x0=[3;2]; %punctul de pornire
options(2)=1e-6; %toleranta dupa x
options(10)=200; % numar maxim de iteratii
5
[xmin,options]=fmins('fun',x0,options);
disp('Punctul minim:');disp(xmin);
disp('Valoarea functiei in minim:');disp(options(8));
disp('Numarul maxim de iteratii:');disp(options(10));
Rezultatul:
Punctul minim: 1.0e-006 *[ 0.0479 0.3688]
Valoarea functiei in minim: 23.0000
Numarul maxim de iteratii: 117
Desfăşurarea lucrării:
Lucrarea se va desfăşura in două etape.
In prima etapă se incearcă minimizarea funcţiei având o singură variabilă: 2))(sin()( xxxf
Pentru a pune în evidenţă punctul minim găsit se va reprezenta graficul funcţiei )(xf şi
pe grafic se va evidenţia punctul obţinut respectiv limitele alese. Se afişează următoarele
valori: valoarea punctului minim, valoarea funcţiei în punctul minim respectiv numărul de
iteraţii efectuate în căutarea minimului.
In partea doua a lucrării se caută minimul funcţiei cu două variabile: 22
),( yxexyxf
Se va reprezenta grafic suprafaţa definită de ),( yxf şi se pune in evidenţă punctul de
pornire respectiv punctul minim găsit pe această suprafaţă.
În ambele cazuri se afişează următoarele valori: valoarea punctului minim, valoarea
funcţiei în punctul minim respectiv numărul de iteraţii efectuate în căutarea minimului.
Analog se propune rezolvarea următoarelor probleme:
}108min{
}8min{
22
22
xxyx
yxyxyx
Pentru rezolvarea problemelor se pot folosi în afara funcţiillor specificate din MATLAB
următoarele funcţii pentru reprezentări grafice: plot, subplot, mesh, meshgrid, contour,
etc.
Întrebări:
1. Cum se poate modifica valoarea de pornire la utilizarea funcţiilor fmins (fminserch)?
2. Ce reprezinte valorile x1 respectiv x2 la funcţia fmin (fminbnd)?
3. Cum se poate afla numărul de iteraţii efectuate la căutarea minimului?
4. Cum se poate modifica numărul maxim de iteraţii la o metodă de căutare a minimului ?
5. Cu funcţia fmins ce fel de minime se obţin : minime locale sau globale ?
6
Lucrarea nr. 2. Lab.2
METODE DE CĂUTARE A MINIMULUI CU RESTRICŢII
ÎN MEDIUL "MATLAB"
Scopul lucrării:
Lucrarea propune studiul funcţiilor de minimizare cu restricţii liniare respectiv neliniare
de tip egalitate şi inegalitate în mediul MATLAB prin rezolvarea unor probleme
matematice concrete.
Introducere teoretică:
În cazul optimizării staţionare neliniare cu restricţii de tip inegalitate şi egalitate în
majoritatea cazurilor se încearcă reformularea problemei de minimizare cu scopul de a
obţine o problemă simplă de minimizare fără restricţii. Problemele de minimizare cu
restricţii în general sunt formulate astfel:
},...1,...1,0)(,0)(/)(min{ nji xpjmixhxgxf
unde:
)(xf - funcţia multivariabilă la care se caută minimul
)(xgi - funcţiile de restricţii de tip egalitate
)(xhi - funcţiile de restricţii de tip inegalitate
x -vectorul n dimensinal (vectorul variabilelor)
Se poate observa că problema prezentată astfel are m restricţii de tip egalitate
respectiv p restricţii de tip inegalitate. Dacă în enunţul problemei apar numai resticţii de
tip egalitate atunci problema se rezolvă cu metoda multiplicatorilor Lagrange, iar dacă
apar şi restricţii de tip inegalitate atunci la rezolvare aproblemei se recurge la metoda
Kuhn-Tucker. Se defineşte Lagrangianul problemei:
)(,)(,)(),,( xhxgxfxL
unde
<,> s-a notat produsul scalar
- vectorul multiplicatorilor lui Lagrange
-vectorul multiplicatorilor lui Kuhn-Tucker
Prin definirea lagrangianului problema deja este transformată într-o problemă de
minimizare fără restricţii, pentru că în acest caz deja se caută minimul lagrangianului. În
cazul metodei Lagrange (având restricţii numai de tip egalitate) condiţiile de necesitate
pentru minim se obţin ca:
7
00
L
x
L
iar în cazul restricţiilor de tip inegalitate se procedează la fel, dar în acest caz apar deja
condiţiile la limită.
Funcţii pentru minimizare cu restricţii în MATLAB
Pentru rezolvarea problemelor de minimizare cu restricţii de tip egalitate şi de tip
inegalitate în MATLAB se poate folosi funcţia constr:
[xmin, options]=constr('F',x0,options, VLB,VUB ) unde:
F - reprezintă numele fişierului, care conţine funcţia de minimizat
)(xf respectiv restricţiile de tip egalitate şi de inegalitate )(xg . Funcţia
va avea două argumente de ieşire f şi g, unde f este un scalar
reprezentând funcţia de minimizat, iar g va fi un vector. Primele m linii
reprezintă restricţiile de tip egalitate, iar restul restricţiile de tip
inegalitate.
x0 - reprezintă valoarea de pornire a vectorului x
options - este un argument opţional de intrare şi reprezintă un vector cu diferite
optiuni
VLB,VUB - vectorul de delimitare inferioară respectiv superioară a soluţiilor
VUBxVLB
xmin - punctul minim obţinut
Se observă că şi constr are ca argument de intrare şi de ieşire variabila options, care este
un argument opţional. Această variabilă reprezintă opţiunile cu care algoritmul de căutare
a minimului va fi rezolvat. Structura de opţiuni poate fi vizulizată prin rularea comenzii
"help foptions". Dacă funcţiile de mai sus sunt apelate fără acest argument atunci se
lucrează cu valorile implicite ale acestora. Se remarcă faptul că funcţia constr foloseşte
următoarele opţiuni:
options (1) - afişarea sau neafişarea valorilor intermediare
options (2) - precizia impusă pentru estimarea vectorului x
options (3) - precizia impusă pentru estimarea funcţiei
options (8) - valoare optimă a funcţiei
options (10) - numărul total de iteraţii
options (13) - numărul restricţiilor de tip egalitate (m). Dacă acest număr este mai
mic decăt numărul funcţiilor de restricţii introduse în funcţia F,
atunci restul restricţiilor vor fi considerate ca fiind restricţii de tip
inegalitate, dacă este zero înseamnă că toate restricţiile introduse sunt
de tip inegalitate.
8
options (14) - număr maxim de iteraţii
Dacă structura options apare şi ca argument de ieşire, atunci această structură ne va
furniza nişte informaţii in plus despre algoritmul de căutare a minimului (ex. valoarea
funcţionalei în punctul minim obţinut, numărul de iteraţii care a fost efectuat pentru
atingerea punctului minim, etc.)
Funcţia constr prezentată, în versiunile MATLAB 6.x, este înlocuită de funcţia fmincon,
care poate fi apelată în felul următor:
[xmin,options]=fmincon('F', x0, A,B, Aeq,Beq, LB,UB, NonLcon,options) unde:
F - reprezintă numele fişierului care conţine funcţia de minimizat )(xf
fără restricţii
x0 - reprezintă valoarea de pornire a vectorului x
A,B - reperezintă restricţiile liniare de tip inegalitate de forma BxA ,
unde A este o matrice la care numărul de linii reprezintă numărul
restricţiilor liniare de tip inegalitate şi numărul de coloană depinde de
dimensiunea vectorului x., iar B este un vector coloană cu aceaşi număr
de linii ca şi matricea A.
Aeq, Beq -reperezintă restricţiile liniare de tip egalitate de forma
BeqxAeq unde dimensiunea matricilor sunt specificate ca şi la
restricţiile liniare de tip inegalitate
VLB,VUB - vectorul de delimitare inferioară respectiv superioară a soluţiilor
VUBxVLB
NonLcon -reprezintă numele fişierului care conţine restricţiile neliniare. Funcţia
va returna doi vectori, prima reprezentând restricţiile neliniare de tip
egalitate, iar al doilea restricţiile neliniare de tip inegalitate.
options - este un argument opţional de intrare şi reprezintă un vector cu diferite
optiuni
xmin - punctul minim obţinut
Exemplu de rezolvare în mediul MATLAB cu funcţai constr al problemei:
}0,0,5.1/2min{ 2122
21121
22
21 xxxxxxxxxf :
Se va scrie funcţia obiectiv in fişierul fg.m :
function [f,g]=fg(x)
f=x(1)^2+x(2)^2+x(1)*x(2)+2*x(1);
g(1)=x(1)^2+x(2)^2-1.5; g(2)=x(1); g(3)=-x(2);
In fereastra decomandă (sau într-un fisier separat) se vor scrie următoarele comenzi:
x0=[3;2]; %punctul de pornire
options(2)=1e-6; %toleranta dupa x
9
options(13)=0; % numar restrictiilor de tip egalitate
[xmin,options]=constr('fg',x0,options);
disp('Punctul minim:');disp(xmin);
disp('Valoarea functiei in minim:');disp(options(8));
disp('Numarul maxim de iteratii:');disp(options(10));
Rezultatul:
Punctul minim: [-1.1180; 0.5000];
Valoarea functiei in minim: -1.2951
Numarul maxim de iteratii: 39
Desfăşurarea lucrării:
În cadrul lucrării de laborator se încearcă rezolvarea diferitelor probleme de minimizare
cu restricţii de tip egalitate şi de tip inegalitate, cum ar fi:
}0,0,5.1/2min{ 2122
21121
22
21 xxxxxxxxxf
}0/min{ xexyyxf
}1,45.0,62,1,6/)4(20)5.3(10min{ 22 xyxyxyxyxyxf
Pentru verificarea rezultatelor se va reprezenta grafic suprafaţa funcţiei )(xf şi pe grafic
se vor evidenţia punctul obţinut respectiv punctul de pornire. Se afişează următoarele
valori: valoarea punctului minim, valoarea funcţiei în punctul minim respectiv numărul de
iteraţii efectuat în căutarea minimului şi se verifică dacă restricţiile specificate sunt sau nu
satisfăcute. Prin introducerea argumentelor VLB respectiv VUB se încearcă reducerea
restricţiilor de tip inegalitate respectiv prin intermediul variabilei options se încearcă
obţinerea valorii minime mai precise.
Pentru rezolvarea problemelor se pot folosi în afara funcţiillor specificate din MATLAB
următoarele funcţii pentru reprezentări grafice: plot, subplot, mesh. meshgrid, contour,
etc
Întrebări:
1. Ce reprezintă vectorul x0 la funcţia constr (fmincon)?
2. Cum şi unde se introduc restricţiile de tip egalitate şi inegalitate când se foloseşte
funcţia constr?
3. Cum se pot rezolva analitic problemele de optimizare cu restricţii?
4. Cum se poate mării precizia unui algoritm de căutare a minimului cu restricţii ?
5. Ce reprezinte argumentele VLB şi VUB la funcţia constr şi când are rost folosirea lor?
10
Lucrarea nr. 3. Lab.3-4
ALGORITMI DE CĂUTARE DIRECTĂ A MINIMULUI
Scopul lucrării:
Lucrarea propune studiul algoritmilor de căutare directă a minimului la funcţii cu mai
multe variabile prin implementarea algoritmilor de căutare stocastică (Monte-Carlo
respectiv Boltzman) respectiv algoritmul metodei de căutare directă liniară accelerată în
pas şi în direcţie.
Introducere teoretică:
Metodele de căutare directă pentru determinarea minimului cer numai evaluări ale
criteriului (funcţia de minimizat) în anumite puncte din spaţiul variabilelor. Deci
avantajul acestora este că pot fi aplicate şi în cazul funcţiilor nediferenţiabile. Aceste
metode sunt mai puţin eficiente decât metodele de gradient, datorită unei convergenţe
slabe, dar datorită simplităţii lor de implementare în unele cazuri se pot folosi. Metodele
pot fi grupate în două categorii: metode tabelare respectiv metode de explorare.
Fiecare categorie include un număr foarte mari de proceduri. În prezenta lucrare se
încearcă prezentarea numai a acelori metode care vor fi şi implementate.
Metoda tabelară unde evaluarea funcţiei criteriu este realizată în nodurile unei
"grile" aleatoare poartă denumirea metoda Monte-Carlo. Pentru aplicarea acestei metode
este necesară cunoaşterea apriorică a unui domeniu din spaţiul variabilelor, care include
minimul căutat. Punctele grilei sunt obţinute dintr-o distribuţie statistică uniformă. Aceste
metode aleatoare (stocastice) au avantajul că minimul găsit este în general un minim
global. Neajunsul se referă la redundanţa algoritmului ceea ce înseamnă că, datorită
faptului că punctele sunt generate aleator este posibil ca acelaşi punct să fie testat de mai
multe ori în cadrul aceluiaşi algoritmi de căutare, deci timpul de calcul poate să fie mare.
O metodă mai îmbunătăţită este metoda "termodinamică" denumită Boltzmann unde
algoritmul de căutare este:
1. Se alege un punct de pornire x(0) şi se calculează în acest punct valoarea funcţiei (i=0).
2. Se defineşte o variabilă T, suficient de mare ca probabilitatea 1))(( xfp (T
reprezintă o temperatură artificială)
3. Se corectează valoarea de pornire în mod probabilistic şi se calculează valoarea funcţiei
în acest punct (x(i+1)).
4. Dacă această modificare asigură o scădere a funcţiei obiectiv valorile modificate se
păstrează, dacă nu se determină probabilitatea de acceptare a noilor valori printr- o
statistică Boltzmann după cum urmează.
11
Tk
xf
exfp
)(
))((
unde ))(( xfp este probabilitatea de modificare al funcţiei obiectiv( f ) şi k este o
constantă cu semnificaţii analogice ca a constantei Boltzmann
- dacă ))(( xfp se efectuează corecţia (x(i+1))
- dacă ))(( xfp se păstrează valoare de la momentul i (x(i))
unde este o valoare stocastică de distribuţie uniformă în intervalul [0,1]. Iteraţia
continuă de la pasul 3.
În figura 1 se prezintă metoda de căutare stocastică Monte-Carlo care a fost obţinut la
rezolvarea problemei: }0,0,5.1/2min{ 2122
21121
22
21 xxxxxxxxxf
Fig. 1. Exemplificarea metodei de căutare Monte-Carlo
În cadrul metodelor de expolare se prezintă algoritmul referitor la metoda accelerată
în pas (metoda Hooke-Jeeves) respectiv metoda accelerată în direcţie (metoda Powel).
Metoda Hooke-Jeeves constă în efectuarea unei explorări locale după direcţii
paralele cu axele de coordonatre şi cu un pas fixat. Algoritmul formal al metodei este:
1. Se alege un punct de pornire x0 ( 0k )şi o mărime iniţială a pasului s şi se calculează
valoarea funcţiei de minimizat în acest punct )( 0xf .
2. Se efectueză explorarea locală secvenţială în jurul punctului după relaţia i
ki
ki
k Msxx 1
unde vectorul direcţiilor de căutare este definit ca:
kipentru
kjpentruMundeMMMM kjknkkk
1
0,,,2,1
3. După fiecare direcţie se efectueză explorarea, se calculează valoarea funcţiei în acel
punct modificat şi dacă se obţine o îmbunătăţire atunci se setează 1 ii şi se consideră
o deplasaare cu succes ( iNx ). Dacă nu se obţine o îmbunătăţire se va relua iteraţia cu un
pas micşorat.
12
4. Dacă s-a terminat studiul după fiecare direcţie în iteraţia I, se va efectua o mişcare pe
diagonala deplasărilor de succes cu relaţia:
iiN
iN
i xxxx 01
0
unde este coficientul de accelerare.
5. Dacă )( 10
ixf reprezintă o îmbunătăţire atunci punctul 10
ix se alege ca punct de
bază şi se reia expolarea de la pasul 2., dacă nu se alege ca punct de bază ix0 şi
explorarea se efectueză cu paşi micşoraţi.
6. Iteraţia se termină dacă se satiface condiţia că variaţia funcţiei de la o iteraţie la alta
este sub o anumită valoare predefinită.
În figura 2 se prezintă metoda de căutare directă (Hooke-Jeeves) care a fost obţinut la
rezolvarea problemei }2min{ 12122
21 xxxxxf
Fig. 2. Metoda de căutare directă
Metoda Powell este o metodă accelerată în direcţie şi se bazează pe căutarea după
direcţii conjugate, independente în fiecare iteraţie. Funcţionala criteriu este minimizată
după o relaţie de tipul:
i
k
ii
k
i
k MSxx1
. Algoritmul formal al metodei este:
1. Se alege un punct x0 de pornire, şi un set de direcţii de căutare 00
2
0
1 ,...., NMMM
paralele cu axele de coordonate.
2. Se execută o căutare ciclică monodimensională după fiecare direcţie şi se obţine
punctul de minim 0*x în prima iteraţie .
3. Dacă în iteraţia i de căutare s-a determinat ultimul punct i
Nx şi se localizează punctul
i
j
ixx
* pentru care s-a obţinut cea mai eficientă îmbunătăţire a funcţiei criteriu în
cadrul iteraţiei i, în sensul că i
j
i
j xfxf 1 este maxim se defineşte punctul de
extindere
ii
Ni
ext xxx 02 unde i
x0 reprezintă punctul iniţial al iteraţiei i.
x2
x1
13
4. Se determină: i
j
i
j
iii
N
ixJxfxxx 10
5. Se efectuează testul dacă pentru punctul de extindere se obţine o îmbunătăţire faţă de
punctul de pornire i
x0 în iteraţia i, pe baza următoarelor relaţii:
Exfxfxfxfxf ii
N
ji
ext
i
N
i
00 2 unde
202
1 i
ext
ii xfxfE
Dacă inegalitatea nu este satisfăcută (s-a obţinut o îmbunătăţire) se consideră ca punct de
bază pentru iteraţia i+1 cea mai bună valoare obţinută în iteraţia i şi noile direcţii de
căutare vor fi :
1,
1,1
1
1
NjipentruM
jipentruMM
i
k
i
ki
k
Dacă inegalitatea este satisfăcută în căutarea punctul iniţial pentru iteraţia i+1 avem:
NipentruMMi
k
i
k ,11
şi punctul de bază pentru iteraţia i+1 va fi: i
N
ixx
1
0 .
6. Procedura se termină dacă:
i
k
i
k xx 1
Desfăşurarea lucrării:
În cadrul lucrării de laborator se vor implementa algoritmii de căutare directă prezentaţi.
Problema propusă pentru testarea metodei Monte-Carlo şi Boltzmann:
}0,0,5.1/2min{ 2122
21121
22
21 xxxxxxxxxf
Domeniul iniţial unde se caută minimul este definit de cele trei restricţii de tip inegalitate.
Se va reprezenta grafic suprafaţa convexă, unde se specifică punctele cu succes la
algoritmul de căutare a minimului.
Metoda Hooke-Jeeves respectiv metoda Powell se poate testa la funcţionala convexă fără
restricţii: }2min{ 12122
21 xxxxxf La fel ca şi la metoda precedentă şi la aceste
metode se evidenţiază punctele în care s-a găsit o îmbunătăţire a funcţionalei, şi se
testează metoda modificând punctul de pornire. Se va reprezenta valoarea funcţionalei
respectiv variaţia variabilelor 21, xx pe parcursul algoritmului de căutare.
Întrebări:
1. Cum se poate îmbunătăţii metoda de căutare stocastică ?
2. Care sunt dezavantajele metodei Monte-Carlo?
3. După ce algoritm s-ar putea micşora pasul de căutare la metoda Hooke-Jeeves?
4. Cum se poate testa atingerea minimului în ambele cazuri?
5. Căutaţi şi implementaţi alte metode directe de căutare a minimului?
14
Lucrarea nr. 4. Lab.5
METODĂ DE GRADIENT DE ORDIN I
Scopul lucrării:
Lucrarea propune implementarea algoritmului de căutare a minimului cu metoda
gradientului de ordin I cu pas constant şi pas optimal, respectiv studiul acestei metode
pentru diferite funcţii convexe.
Introducere teoretică:
Metodele de căutare tip gradient sunt utilizate pentru optimizarea sistemelor
caracterizate de funcţii )(xf diferenţiabile şi se bazează pe idea conform căreia rata
maximă de variaţie a funcţionalei se obţinne după direcţia gradientului. Gradientul este un
vector unde elementele sunt calculate ca derivate paţiale de ordin I ale funcţiei. T
nx
xf
x
xf
x
xfxgradf
)()()()(
21
Vectorul normat este:
n
i i
k
k
kk
x
f
xgradf
xgradf
xgradfxD
1
2
)(
)(
)()(
Algoritmul de căutare cu metoda de gradient de ordin I are următoarea relaţie de bază.
)(1
kkkkxDSxx unde:
kS reprezintă pasul de căutare
)( kxD reprezintă vectorul normat în direcţia gradientului în punctul de căutare x<k>
Deci metoda necesită calculul derivatei în fiecaare iteraţie. Pentru calculul derivatei se
poate folosi următoarea metodă aproximativă:
)()()( xfxf
x
xf
Terminarea procesului de căutare este condiţionată de îndeplinirea simultană a criteriilor:
kk xx 1 respectiv )()( 1 kk xfxf
sau 0))(( kxfgrad
Algoritmul de căutare aa metodei de gradient de ordin I cu pas constant S:
1. Se alege un punct de pornire 0x pentru 0k şi o valoare constantă pentru pasul de
căutare.
2. Se calculează gradientul funcţiei în punctul kx ( )( kxgradf ) şi se normalizează.
15
3. Se efectuează o iteraţie:
)(1
kkkxDSxx
4. Se calculează valoarea funcţiei în punctul )( 1kxf .
5. Dacă condiţiile următoare sunt satisfăcute
kk xx 1 respectiv )()( 1 kk xfxf
punctul 1kx se consideră ca fiind punctul minim, dacă nu iteraţia continuă începând cu
pasul 2.
Algoritmul de căutare a minimului cu pas optimal diferă de algoritmul precedent prin
faptul că în fiecare iteraţie se recalculează valoarea pasului Sk. Pasul optimal, care a fost
calculat pe idea că distanţa )()( 1 kk xfxf să fie maximă în raport cu pasul S<k>
,
are expresia următoare:
)()(,)(
)(,)(
kx
kkx
kx
kxk
xfgradxHessxfgrad
xfgradxfgradS
Se poate observa că determinarea pasului optimal kS necesită calcularea derivatelor de
ordin doi în matricea hessiană.
În figura 1 se prezintă exeplificarea metodei de gradient de ordin unu cu pas constant care
a fost obţinut în rezolvarea problemei }2min{ 12122
21 xxxxxf
Fig. 1. Metoda de gradient cu pas constant (în plan şi în spaţiu)
Desfăşurarea lucrării:
Se va implementa algoritmul de căutare a minimului cu metoda gradientului cu pas
constant şi pas optimal pentru căutarea minimului funcţionalelor:
12122
21 2)( xxxxxxf respectiv
22
),( yxexyxf
x2
x1
16
Se vor reprezenta grafic suprafaţa funcţionalelor şi se va evidenţia punctul de pornire
respectiv punctul minim.
Se va testa algoritmul alegând diferite puncte de pornire respectiv pentru valoarea pasului
S (în cazul metodei cu pas constant ). Se va testa precizia metodei respectiv numărul de
iteraţii folosite în căutarea minimului.
Întrebări:
1. Cu metoda gradientului de ordin I se pot găsi minime locale sau globale?
2. Cum se poate aproxima numeric vectorul de gradient fără a calcula analitic derivata
funcţiei ?
3. Cum se poate testa dacă în urma efectuării iteraţiilor s-a ajuns la minim ?
4. Cum se modifică algoritmul dacă se cere determinarea maximului ?
17
Lucrarea nr. 5. Lab.6-7
METODE DE CALCUL AL PASULUI OPTIMAL LA
CĂUTAREA MINIMULUI
Scopul lucrării:
Lucrarea propune diferite metode de determinare a pasului optimal folosite la
algoritmi de căutare a minimului cu metoda gradientului la ordin I. Metodele studiate sunt
cele aproximative care nu necesită calcularea Hessianului: metoda Cauchy respecticv cea
de interpolare polinomială.
Introducere teoretică:
Metoda Cauchy:
Algoritmul de optimizare staţionară cel mai răspândit din categoria metodelor de
gradienţi de ordin unu este cunoscut ca metoda Cauchy sau de gradient optimal. Metoda
este utilizabilă pentru optimizarea sistemelor multivariabile neliniare, fără restricţii.
Algoritmul metodei este următorul:
1. Se alege un punct iniţial de pornire k
x (k=0) şi se calculează kxf respectiv
kx xfgrad cu care se determină direcţia de căutare:
k
xk
xfgradM
2. Se determină valoarea pasului S k , care în direcţia definită de M k asigură variaţia
maximă a criteriului de calitate f(x):
kkk
S
k MSxfxfS1
min
3.Se efectuează modificarea variabilei x
)(1
kx
kkkxfgradSxx
4. Iteraţia continuă până când următoarele condiţii vor fi îneplinite:
kk xx 1 respectiv )()( 1 kk xfxf
Metoda propusă de POLAK pentru calcularea pasului optimal:
Se presupune ca variaţia funcţiei criteriu în direcţia M k , are forma reprezentată
în figura următoare.
18
Fig 1 Reprezentare grafică a aproximării pasului optimal
unde punctul de origine corespunde valorii S=0 , 00 kkk
xfMxf , iar
xfMSxfxS , reprezintă prima variaţie a funcţionalei J(u). Algoritmul se
bazează pe următoarele funcţii unde )5.0,0( :
kku
kkkk
kku
kkkk
MuJgradSuJMSuJuS
MuJgradSuJMSuJuS
,,
,1,
În prima fază se determină intervalul ao bo] astfel încât pasul optimal căutat se va afla în
acest interval.
1. Se alege o valoare de pornire S = unde > 0
2. Se calculează valoarea funcţiei kxS, .
Dacă kxS, = 0 rezultă:
kk
xkkk
MxfgradSxfMSxf ,1[
relaţie, care corespunde aproximării dezvoltării în serie a funcţionalei f(x), unde termenul
de ordin I, este nul. Deci valoarea S reprezintă valoarea optimală în iteraţia k, conform
algoritmului prezentat: S Sk
Dacă kxS, < 0, rezultă ca punctul S se situează pe panta descrescătoare a primei
variaţii a funcţionalei f(x), astfel: SS şi iteraţia se continuă de la pasul 2.
Dacă kxS, >0, rezultă că pentru pasul S prima variaţie a funcţionalei de cost se
situează pe panta crescătoare, deci pasul curent reprezintă supremul intervalului în care se
află minimul.
3. Se calculează valoarea funcţiei kxS, . Dacă 0, kxS pasul S S
k
respectiv dacă 0, k
xS , limitele intervalului în care se află minimul
sunt: SbSa oo . Cunoscând intervalul S a bo o , în care se află pasul optimal
Sk
în continuare se urmăreşte aproximarea lui mai precisă pe baza metodei de
înjumătăţire a intervalului a bo o, .
19
4. Se alege punctul jj ja b
2
5. Dacă 0,0, k
jk
j xsix atunci pasul optimal este Sk
j .
Dacă 0,0, k
jk
j xsix se alege jjHjjH bsiaa
Dacă 0,0, k
jk
j xsix se alege jjHjjH bbsia
Iteraţia se continuă de la pasul 4.
Obs. Aplicaţiile au dovedit că alegerea parametrilor =1 şi 0,5 (=0,4) au permis
obţinerea unei rate foarte bune a convergenţei.
Metoda de interpolare polinomială
Ca şi metoda precedentă şi această metodă are două etape:
1. În prima fază denumită etapă de extrapolare se determină intervalul în care se află
minimul prin dublarea intervalului de căutare . Astfel alegând un pas de căutare se
determină succesiv valoarea criteriului în punctele :
kx
jkkx
jk
kx
jkkx
kkx
k
xfgradSxfxfgradSxf
xfSgradxfxfSgradxfxfSgradxf
1
1
22
2...2
După aceste calcule se poate afirma că valoarea lui S* se află în intervalul
2 21 1j jS S S , deci LH SSS *
2. În etapa de interpolare se caută coeficienţii polinomului de gradul 3, care aproximează
atât criteriul în punctele extreme ale intervalului determinat cât si valoarea derivatei în
aceste puncte SH si SL .
)(23
)(
*12
23
*01
22
33
SdfaSaSaxfgradSxS
f
SfaSaSaSaxfgradSxf
kx
k
kx
k
Valoarea derivatei se determină printr-o metodă numerică bazată pe perturbaţia pasului.
Scriind ecuaţiile de mai sus sub formă matricială pentr SH respectiv SL se poate calcula
vectorul parametrilor:
)(
)(
)(
)(
0123
0123
1
1
*
*
*
*1
2
2
23
23
0
1
2
3
L
H
L
H
LL
HH
LLL
HHH
Sdf
Sdf
Sf
Sf
SS
SS
SSS
SSS
a
a
a
a
Pasul suboptimal se obţine ca :
3
31222
3
3
a
aaaaS
20
Etapa de extrapolare respectiv de interpolare se repetă în fiecare iteraţie de căutare a
minumului. În figura 1 se prezintă exeplificarea metodei de gradient de ordin unu cu pas
optimal (determinat cu metoda interpolării) care a fost obţinut în rezolvarea problemei
}2min{ 12122
21 xxxxxf
Fig. 2. Metodă de graadient de ordin unu cu pas optimal
(aproximat cu metoda de interpolare)
Metoda "Secţiunii de aur"
Asemănător cu metodele prezentate şi aici căutarea pasului optimal se face în două etape:
1. Determinarea intervalului în care se află minimul pentru care sunt necesare evaluarea
în trei puncte succesive 321 xxx ale criteriului de calitate să respecte condiţiile
321 xJxJxJ
2. Restrângerea intervalului în care se află minimul, adică aproximarea succesivă a
pasului optimal până la atingerea unei precizii prestabilite. La restrângerea intervalului în
care se află rădăcina se utilizează metoda punctului median bax 21 după care
intervalul în care se află rădăcina este determinat din relaţia 0 xfaf caz în care
rădăcina se află în intervalul xa, sau 0 bfxf caz în care rădăcina se află în
intervalul bx, . Similar gândind în cazul căutării unui minim alegerea punctul median nu
va asigura cea mai bună convergenţă deoarece este necesară generarea a două puncte
interne, motiv pentru care s-a recurs la o altă alegere şi anume la o împărţire a intervalului
lab 00 generat de un raport oarecare lwbbaa 1001 . După alegerea
intervalului restrâns în care se află minimul se consideră ca în iteraţia a doua care se
bazează pe împărţirea similară cu raportul w a noului interval de bază
lwdab 101 cu care se obţin punctele 2a respectiv 2b cu proprietatea
dwbbaa 2102 . Totodată din considerente asupra convergenţei metodei se
impune ca noul interval de bază să nu fie împărţită în mai mult decât trei subintervale din
cele patru 11122220 ,,,,,,, baabbaaa deoarece cele trei intervale marcate de patru
21
puncte pot asigura selecţia acelor trei puncte care localizează optimul. Astfel rezultă
condiţia:
dwablwaaab 1020112
)53(5.00131 122
wwwlwlw
Şi din considerentul ca împărţirea intervalului să fie subunitară rezultă 381966.0w sau
618033.01 w , număr care are proprietatea ca raportul segmentului mai scurt raportat
la segmentul mai lung este egal cu segmentul mai lung ww
w
1
1 este cunoscut încă
din Grecia antică sub denumirea de secţiunea de aur. Deci metoda asigură ca la fiecare
pas una din cele două puncte alese să coincidă cu vechiul punct intermediar ceea ce
reduce mult efortul de calcul. Pseudocodul algoritmului Secţiunii de aur este: Iniţializare: w = 0.618033988 Se aleg: a, b, maxIter, tolerance
Se calculează: f(a), f(b)
LOOP k from 1 to maxIter
a1 = (1-w).a + w.b; f1 = f(a1);
b1 = w.a + (1-w).b; f2 = f(b1);
IF ( f1 > f2) THEN
a = b1; b1 = a1; f2 = f1;
a1 = (1-w).a + w.b; f1 = f(a1);
ELSE
b = a1; a1 = b1; f1 = f2;
b1 = w.a + (1-w)b; f2 = f(b1);
ENDIF
WRITE k, a1, b1
IF ( (a1 – b1) < tolerance) STOP
ENDLOOP
Desfăşurarea lucrării:
Se va implementa algoritmul de căutare a minimului cu metoda gradientului cu pas
optimal pentru căutarea minimului funcţionalelor:
2221
21 565 xxxxxf
Se vor implementa funcţiile pentru algoritmii de căutare a pasului optimal. Se va
reprezenta grafic suprafaţa funcţionalei f(x) şi se va evidenţia punctul de pornire respectiv
punctul minim obţinut. Se va testa algoritmul alegând diferite puncte de pornire pentru
vectorul 021 xx respectiv se vor compara metodele de căutare a pasului optimal din
punct de vedere al preciziei respectiv al timpului de calcul.
Întrebări:
1. Cu metoda gradientului de ordin I se pot găsi minime locale sau globale?
2. Cum se poate aproxima numeric vectorul de gradient fără a calcula analitic derivata
funcţiei ?
3. Cum se poate testa dacă în urma efectuării iteraţiilor s-a ajuns la minim ?
22
Lucrarea nr. 6. Lab.8
METODE DE GRADIENŢI DE ORDIN II
Scopul lucrării:
Lucrarea propune diferite metode de gradienţi de ordin II. Sunt studiate şi metodele
aproximative, care nu necesită calcularea Hessianului: metoda Newton-Gauss respectiv
metoda Newton modificat.
Introducere teoretică:
Relaţia de bază pentru determinarea minimului funcţionalei f(x) cu metoda de
gradienţi de ordin II, are forma
kx
kkkxfgradxHessxx
11
unde pasul optimal este S k 1 , iar direcţia de coborâre în acest caz este:
kx
kkxfgradxHessM
1
Deci pentru a obţine valori convergente spre minim este necesar ca matricea
Hess u k să fie pozitiv definită şi nesingulară. Această clasă de metode de minimizare,
poartă denumirea de algoritmul Newton-Raphson. Metoda are o convergentă pătratică,
dar este divergentă dacă Hessianul are valori proprii negative, respectiv este slab
convergentă dacă Hessianul este cvazisingular adică are valori proprii apropiate de
valoarea nulă . Pentru a reduce volumul de calcule, matricea Hessian poate fi estimată nu
la fiecare iteraţie, ci mai rar, dar acest lucru poate duce la divergenţa algoritmului, dacă
hessianul devine negativ definit. Din acest motiv, tehnicile de optimizare de ordin II apar
şi sub forme modificate prezentându-se în diverse variante îmbunătăţite. Există şi o serie
de metode care ocolesc calculul hessianului. Astfel de metode sunt:
metoda Newton-Gauss foloseşte o aproximare a matricei Hessian de forma :
kx
Tkx
kxfgradxfgradxHess
metoda are o convergentă pătratică în vecinătatea punctului optim. Nu se recomandă
aplicarea ei pentru puncte îndepărtate de optim, caz în care aproximaţia nu este valabilă.
metoda cvasi Newton modificate având următorul algoritm :
1. Se alege nx 0 astfel încât mulţimea
0/ xfxfx să fie mărginită şi se aleg
constantele 0 ,
0
1
2, , 0 şi i=0 .
2. Se aproximează coloana j a matricei Hessiane din relaţia
23
ixj
ixi
xfgradexfgradxHess ,
unde e e1 21 0 0 0 1 0 ... , ... ,etc.
3. Dacă există 1,
ixHess şi 0,,1
i
xii
x xfgradxHessxfgrad se
efectuează iteraţia :
ix
iiixfgradxHessxx
11,
altfel
2
şi se continuă iteraţia de la pasul 2 .
În figura 1 se prezintă atingerea punctului minim într-un singur pas cu metoda Newton-
Raphson , funcţia la care se caută minimul este: 2221
21 565 xxxxxf
Fig.1 Atingerea minimului într-un singur pas cu metoda gradientului de ordin II
Desfăşurarea lucrării:
Se va implementa algoritmul de căutare a minimului cu metoda gradientului cu
pas optimal pentru căutarea minimului funcţionalelor:
2221
21 565 xxxxxf respectiv 2
122
21 1100 xxxxf
Se vor implementa algoritmii de căutare a minimului după cele trei metode de gradienţi
de ordin II. Se va reprezenta grafic suprafaţa funcţionalei f(x,y) şi se va evidenţia punctul
de pornire respectiv puntul minim. Se va testa algoritmul alegând diferite puncte de
pornire pentru vectorul 0yx respectiv se vor compara metodele de căutare minimului
din punct de vedere al preciziei respectiv al timpului de calcul.
Întrebări:
1. Cum se calculează pasul optimal la metodele de gradienţi de ordin II?
2. Dacă funcţionala este un criteriu pătratic în câţi paşi se obţine valoarea minimului?
3. Când se poate aplica metoda Newton-Raphson?
4. Cum se modifică algoritmul dacă se cere căutarea maximului funcţionalei?
24
Lucrarea nr. 7. Lab.9
METODE DE GRADIENŢI CONJUGAŢI
Scopul lucrării:
Lucrarea propune implementarea metodei de gradienţi conjugaţi pentru diferite
funcţii de mai multe variabile. Pasul optimal calculat poate fi calculat cu oricare din
metodele abordate la alte lucrări de laboratoare (ex. metoda Cauchy).
Introducere teoretică:
La metoda de gradienţi conjugaţi direcţiile de căutare sunt mutual conjugate cu privire la
matricea Hess . Un set de direcţii M M M N0 1 1, ,..., sunt mutual conjugate faţă de
matricea Hess simetrică pozitiv definită dacă sunt valabile următoarele relaţii:
M Hess Mpt k j
pt k j
kT
j
0
1
Aceste direcţii sunt liniar independente şi asigură determinarea punctul de optim în
cel mult N iteraţii. Cea mai cunoscută metodă de gradienţi conjugaţi este metoda
Fletcher Reeves ,având următorul algoritm :
1. Se alege un punct de pornire x<0>
2.. Se calculează direcţia :
k
i
iikx
xk
kpentruMxfgrad
kpentruxfgradM
1
1
0
0
0
unde
kx
kx
kx
kxk
xfgradxfgrad
xfgradxfgrad
,
,11
1
3. Se determină valoarea pasului S din relaţia:
0/min
SMSxMSxJkkkkk
)
4. Se determină valoarea vectorului x<k+1>
din relaţia:
kkkk
MSxx1
5. Se testează condiţia :
01
kx xfgrad
Dacă această condiţie este satisfacută se termină algoritmul de căutare, dacă nu iteraţia se
continuă de la pasul 2.
25
Fig. 1. Metoda de gradienti conjugati
Desfăşurarea lucrării:
Se va implementa algoritmul de căutare a minimului cu metoda de gradienţi conjugaţi la
următoarea funcţie de două variabile:
2221
21 35 xxxxxf
Se va reprezenta grafic suprafaţa funcţionalei f(x) şi se va evidenţia punctul de pornire
respectiv puntul minim. Se va testa algoritmul alegând diferite puncte de pornire pentru
vectorul 021 xx respectiv se vor compara metodele de căutare minimului din punct de
vedere al preciziei respectiv al timpului de calcul.
Întrebări:
1. La metodele de gradienţi conjugaţi cum sunt calculate direcţiile de căuare?
2. La o funcţie de n variabile în câţi paşi se calculează minimul cu metodaa gradienţilor
conjugaţi?
3. Cum se calculează pasul optimal?
4. Care sunt condiţiile de oprire la metoda de gradienţi conjugaţi?
26
Lucrarea nr. 8. Lab.10
METODE NUMERICE PENTRU REZOLVAREA
PROBLEMELOR CU RESTRICTII.
Scopul lucrării:
Lucrarea propune implementarea metodelor numerice pentru rezolvarea
problemelor cu restricţii de tip egalitate cu metoda de relaxare Lagrange. Pasul optimal
calculat poate fi calculat cu oricare din metodele abordate la alte lucrări de laboratoare
sau poate fi fixat la o valoare constantă.
Introducere teoretică:
Metoda de relaxare tip Lagrange se utilizează la rezolvarea numerică a
problemelor de minimizare cu restricţii de tip egalitate. Problemele de minimizare cu
restricţii de tip egalitate în general sunt formulate astfel:
},...1,0)(/)(min{ ni xmixgxf
unde:
)(xf - funcţia multivariabilă la care se caută minimul
)(xgi - funcţiile de restricţii de tip egalitate
x -vectorul n dimensinal (vectorul variabilelor)
Numărul restricţiilor de tip egalitate es m. Putem să determinăm funcţia Lagrange în felul
următor:
)(,)(),( xgxfxL
unde
<,> s-a notat produsul scalar
- vectorul multiplicatorilor lui Lagrange
Prin definirea lagrangianului problema deja este transformată într-o problemă de
minimizare fără restricţii, pentru că în acest caz deja se caută minimul lagrangianului.
Rezolvarea analitică a problemei este prezentată pe scurt la lucrarea de laborator nr.2. La
metoda de relaxare problema se descompune în două etape:
-în prima etapă se fixează valoare multiplicatorului Lagrange la o valoare fixă * şi se
rezolvă problema de minimizare după variabila necunoscută x
0),( *
x
xL
27
Considerăm că soluţia obţinută este: )( **x care depinde de valoarea fixată a
multiplicatorului.
- în a doua etapă se rezolvă problema de maximizare a lagrangianului în funcţie de *
0)),((
***
xL
Dacă se notează cu opt* valoarea optimă a multiplicatorului atunci înlocuind în relaţia de
calcul al variabilei necunoscute )( **x se obţine rezolvarea problemei de optimizare.
Dacă metoda de relaxare vrem să implementam numeric atunci se poate aplica următorul
algoritm:
0. Se defineşte lagrangianul problemei. Se introduce o valoare de pornire pentru x<0>
şi se fixează valoarea multiplicatorului la o valoare constantă.
1. Se caută cu o metodă numerică (de ex. metoda gradientului de ordin I) minimul
lagrangianului în funcţie de x în timp ce valoarea multiplicatorului nu se schimbă.
2. Se caută cu o metodă numerică (de ex. metoda gradientului de ordin I) maximul
lagrangianului în funcţie de în timp ce valoarea variabilei x nu se schimbă ci
rămâne la valoarea determinată în pasul 1.
Procesul (pasul 1 şi 2) se continuă până la atingerea unei precizii prestabilite.
Desfăşurarea lucrării:
Se va implementa algoritmul de căutare a minimului cu restricţii utilizând metoda de
relaxare Lagrange:
2211 )64()50( xxxxxf dacă 605.1 21 xx
Se va reprezenta grafic suprafaţa funcţionalei f(x) şi se va evidenţia pe graphic şi restricţia
de tip egalitate. Se va testa algoritmul alegând diferite puncte de pornire pentru vectorul
021 xx respectiv se vor compara metodele de căutare minimului din punct de vedere
al preciziei respectiv al timpului de calcul.
În figura 1. se prezinte rezultatul implementării numerice a metodei unde atât la
minimizare cât şi la maximizare se foloseşte metoda gradientului de ordin I cu pas
constant.
În figura 2 se prezinte variaţia multiplicatorului Lagrange respective a variabilelor x pe
parcursul algoritmului.
28
x2
x1
-100 -50 0 50 100 150-100
-50
0
50
100
150
Fig.1. Implementarea metodei de relaxare Lagrange
0 20 40 60 80 100 120-60
-50
-40
-30
-20
-10
0
10
20Variatia lambda
Nr. de iteratii
Multip
licato
rul Lagra
nge
0 20 40 60 80 100 120
-100
-80
-60
-40
-20
0
20
40
60Variatia x
Nr. de iteratii
x(t
)
a). b).
Fig.2. Variaţia multiplicatorului (a) respectiv a variabilelor x (b)
Întrebări:
1. Cum se calculează pasul optimal la metoda de căutare a minimului?
2. Care sunt condiţiile de oprire la metoda de gradienţi de ordin 1?
3. Cum se calculează maximul lagrangianului în funcţie de multiplicatorul Lagrange ?
4. Cum se modifică problema dacă numarul restricţiilor de tip egalitate este mai mare
decât unu?
29
Lucrarea nr. 9. Lab.11
REZOLVAREA ANALITICĂ A PROBLEMELOR CU AJUTORUL
ECUAŢIILOR EULER-LAGRANGE
(CALCUL VARIAŢIONAL)
Scopul lucrării:
Lucrarea propune studiul rezolvării analitice a problemelor de calcul variaţional
cu ajutorul ecuaţiilor Euler Lagrange . Soluţia analitică se va compara graphic cu
rezolvarea numerică a problemei respective.
Introducere teoretică:
În cadrul calculului variaţional clasic se caută extremul funcţionalei :
dtxxLttxtxJ )),(),(()),(),((..
Forma clasică a ecuaţiei Euler-Lagrange:
L L
xx x
d
d xx x( ( ), *( ), ) ( ( ), *( ), )
.
.
.
0
Pentru exemplificare se va rezolva următoarea problemă:
Fie o dreaptă si două puncte P1(a,c) respectiv P2(b,d) amplasate pe acelaşi parte a dreptei.
Să se determine curba netedă care întruneşte punctele P1 si P2 astfel ca corpul de rotaţie
obţinut printr-o rotaţie după dreapta definită să aibă suprafaţa minimă.
Deci se caută funcţia ( )x cu proprietatea ( )a c si ( )b d . Suprafaţa de rotaţie definită
se obţine ca :
b
a
dxxxS )(1)(2)( 2
Lagrangianul problemei este:
)(1)()),(),(( 2 xxxxxL
Se poate observa că aici variabila independentă este x.
Ecuaţia Euler-Lagrange corespunzătoare problemei este :
1
1
02
2
..
.
( ) ( )( )
( )
xd
dtx
x
x
După derivare respectiv calculele algebrice simple se obţine:
30
0
)(1)(1
)()()(1
22
2
xx
xxx
Deci ecuaţiadiferenţială care trebuie rezolvată este:
)(/))(1()( 2 xxx
Rezolvarea analitică a problemei este
( ) ,x ch
x
.
Constantele şi pot fi determinate din condiţiile iniţiale şi finale a problemei
coordonatele punctelor P1(a,c) respectiv P2(b,d).
Rezolvarea numerică a problemei este posibilă cu o metodă de integrare numerică Runge-
Kutta (funcţia Matlab ode45).
Desfăşurarea lucrării:
Se va implementa algoritmul rezolvare numerică a ecuaţiei diferenţială
)(/))(1()( 2 xxx
Cu ajutorul funcţiei de integrare numerică ode45 se va rezolva numeric problema, iar rezultatul se va
compara cu cea analitică. Constantele şi vor fi determinate tot cu o metodă numerică folosind funcţia
fsolve, cu ajutorul căreia se poate determina soluţia sistemului de ecuaţii:
bchbd
achac
)(
)(
În figura 1. se prezinte reprezentarea grafică a celor două solutii: analitice şi cea
numerică.
-2 0 2 4 6 8 106
8
10
12
14
16
18
20
22
x
fi(x
)
Reprezentarea solutiei
Numeric
Analitic
Fig. 1. Reprezentarea funcţiei obţinută cu metoda analitică şi cea numerică
31
In figura 2 este prezentată suprafaţa de rotaţie obţinută in urma rezolvării
numerice a problemei:
-20
-10
0
10
20
-20
-10
0
10
200
0.2
0.4
0.6
0.8
1
xy
z
Fig.2. Suprafaţa de rotaţie
Întrebări:
1. Ce tip de probleme pot fi rezolvate cu ajutorul funcţiei ode45?
2. Cum trebuie să transcriem ecuaţia diferenţială neliniară de ordin doi pentr a putea
rezolva cu ajutorul funcţiei ode45?
3. Cu ajutorul funcţiei fsolve pot fi rezolvate ecuaţii diferenţiale neliniare?
32
Lucrarea nr. 10 Lab12-13
CONTROLUL OPTIMAL ÎN TIMP
A UNUI OSCILATOR ARMONIC LINIAR
Scopul lucrării:
În lucrare se studiază reglarea optimală a unor sisteme dinamice continue cu variaţii
periodice ale stărilor, şi se verifică metodele de acordare optimale ale regulatoarelor de
stare bazate pe formalismul ecuaţiilor Hamilton-Jacobi. Exeplul studiat în timp de reglare
minim, scoate la iveală caracteristicile sistemelor optimale, având optimul pe limita
domeniului admis.
Introducere teoretică:
Se presupune că sistemul dinamic a unui oscilator armonic este descris de
următorul sistem de ecuaţii:
)()()( 2 tuktytydt
d
dt
d
unde 0k şi comanda )(tu trebuie să satisfacă următoarea relaţie: 1)( tu
În cazul servomecanismelor astfel de sisteme sunt descrise de următoarea funcţie de
transfer:
22)(
)()(
s
k
sU
sYsH
Dacă definim ca stări variabilele )()(1 tytx respectiv dt
tdytx
)()(2 rezultă sistemul de
ecuaţii:
)(0
)(
)(
0
10
)(
)(
2
1
22
1tu
ktx
tx
tx
tx
dt
d
efectuând schimbarea de variabile:
)(1
)()()( 2211 txk
txtxk
tx
ecuaţia de stare a sistemului dinamic devine:
)(1
0
)(
)(
0
0
)(
)(
2
1
2
1tu
tx
tx
tx
tx
dt
d
Prin modificarea precedentă s-a ajuns la un sistem care are proprietatea că traiectoria
stărilor libere în planul stărilor sunt cercuri cu centrul în origine şi raza dependentă de
condiţiile iniţiale: 2
22
12
22
1 )0()0()()( xxtxtx
33
Interpretarea fizică a rezultatelor se bazează pe proprietatea ca oscilatorul armonic este un
sistem conservativ .
Pentru determinarea comenzii optimale admisibile, care să asigure forţarea sistemului în
stareaa finală (0,0) în timp minim se defineşte hamiltonianul problemei:
)()()()()()(1,1),,,( 22112 tptutptxtptxuBxAptpuxH
Ecuaţiile de necesitate a optimului sunt date de relaţiile:
0)(),,,( 2 tptpuxHdu
d
sau în cazul de faţă eliminând soluţia trivială 0)(2 tp se va aplica principiul
Pontrjiagin, care ne asigură următoarea soluţie de comandă optimală:
))((/)(min)( 2 tpsignUuuHtuu
Ecuaţiile pentru vectorul costare p(t) sunt următoarele:
)(),,,()( 2
1
1 tptpuxHdx
dtp
dt
d
)(),,,()( 1
2
2 tptpuxHdx
dtp
dt
d
din care se obţine un sistem asemănător cu ecuaaţiile stărilor:
)(
)(
0
0
)(
)(
2
1
2
1
tp
tp
tp
tp
dt
d
Având în vedere că sistemul obţinut este sismilar cu ecuaţia stărilor, dacă condiţiile
iniţiale se notează cu 2211 )0(,)0( pp soluţia se mai poate scrie ca:
2
1
2
1
)cos()sin(
)sin()cos(
)(
)(
tt
tt
tp
tp
deci comanda optimală se comută între u(t)=1 şi u(t)=-1 pe intervalul între două comutaţii
ea rămănând constantă.
Fig.1 Traiectoriile libere şi forţate
34
În figura 1 se prezintă traiectoriile libere respectiv cele forţare (reglate) a unui oscilator
liniar cu w=4 şi condiţii iniţiale [1 1].
Desfăşurarea lucrării:
Se va implementa un program în MATLAB care simulează sistemul dinamic
prezentat în regim liber respectiv în regim forţat la comanda calculată în funcţie de stări.
Se vor reprezenta traiectoriile de stare libere şi cele forţate, respectiv evoluţia în timp a
semnalului de comandă obţinut. Se testează programul la diferite stări iniţiale. Similar se
va implementa şi schema de simulare în SIMULINK a procesului de reglare.
Funcţiile MATLAB care pot fi utilizate în lucrare sunt: lsim, initial, ode45.
Întrebări:
1. Cum se modifică evoluţia sistemului dacă comanda se calculează ca o reacţie pozitivă a
stărilor?
2. Ce se întâmplă dacă stările iniţiale a sistemului sunt zero?
3. Ce efect are pulsaţia naturală (w) asupra dinamicii sistemului?
35
Lucrarea nr. 11. Lab.13-14
CONTROLUL OPTIMAL ÎN TIMP
AL UNUI SISTEM INERŢIAL DE ORDIN II
Scopul lucrării:
În lucrare se studiază reglarea optimală a unor sisteme dinamice inerţiale continue,
şi se verifică metodele de acordare optimale ale regulatoarelor de stare bazate pe
formalismul ecuaţiilor Hamilton-Jacobi. Exemplul studiat în timp de reglare minim,
scoate la iveală caracteristicile sistemelor optimale, având optimul pe limita domeniului
admis.
Introducere teoretică:
Fie sistemul inerţial de ordin II
)()( tutx , 1)( tu , 0)0( xx , 0)( tfx
Se cere determinarea comenzii restricţionate care conduce sistemul din orice stare iniţială
(1,2) în starea finală (0,0) în timp minim. Utilizând modelul pe spaţiul stărilor avem:
( )
( )
( )
( )( )
x t
x t
x t
x tu t
1
2
1
2
0 1
0 0
0
1
Dacă soluţia acestei probleme există ea se poate obţine în urma minimizării unui criteriu
de calitate J(u) specific sistemelor de comandă în timp minim.
tf
duJ0
1)(
Hamiltonianul problemei este:
)()()()(1)),(),(),(( 221 tutptxtpttptutxH
Se poate observa că determinarea comenzii u*(t) din relaţia H/u=0 va furniza o soluţie
trivială, neacceptabilă în acest caz p2(t)=0. Drept urmare căutăm comanda u*(t) care
asigură minimul Hamiltonianului. Dacă x2(t), p1(t) şi p2(t) sunt date, şi dacă 0)(2 tp ,
atunci valoarea minimă a lui H în raport cu comanda 1/ uuUu are loc pentru
relaţia:
)()( 2 tpsigntu
Ecuaţiile canonice ataşate problemei sunt:
)()(
)()(
2
2
21
1
tutxp
H
txtxp
H
22
11
)0(
)0(
x
x
)()(
0)(
12
2
1
1
tptpx
H
tpx
H
0)(
0)(
2
1
tfp
tfp
36
Pentru integrarea ecuaţiilor canonice să notăm valorile necunoscute p1(0) şi p2(0) cu 1
respectiv cu 2 cu care rezultă:
ttp
tp
122
11
)(
)(
Pe de altă parte comanda u*(t) este constantă pe porţiuni cu valorile {1} şi {-1} în funcţie
de semnul lui p2(t), deci traiectoria corespunzătoare este:
2)(
)(
2
211
22
tuttx
tutx
Eliminând timpul t din această relaţie se obţine: 2
2222211
)(
2
)()(
u
txu
u
txtx
Această ecuaţie reprezintă o familie de parabole în planul fazelor reprezentată în figura 1.
Dacă se fixează condiţiile iniţiale va exista o singură ramură a familiilor de parabole care
trece prin acest punct şi are o ramură descendentă spre punctul (0,0).
Figura 1. Traiectoria stărilor în planul fazelor.
Figura 2 Exemplu pentru traiectoria optimală
37
Punctul de comutaţie a comenzii u*(t) se poate determina ca fiind puncul de intersecţie a
parabolei iniţiale cu cea des-cendentă, care trece prin punctul de origine (0,0). Un
exemplu al traectoriei optimale s-a reprezentat în figura 2.
Relaţia se poate aduce sub o formă mai simplă:
*
222
2
112
)(
2)(
u
tx
utx
unde pentru situaţiile limită 1* u se obţine ecuaţia curbei de comutare:
0)()(2
1)())(()(
2
1)( 2212
221 txtxtxtxsigntxtx
Pentru implementarea numerică a acestui algoritm de comandă este necesară estimarea
momentului de comutaţie, precum şi a comenzii, exclusiv din valorile stărilor măsurabile
sau estimabile x1 şi x2. În urma unor transformări simple se poate arăta că valoarea
comenzii se obţine din sistemul:
02
)()()(:,)(
02
)()()(:,1
02
)()()(:,1
)(
2211
221
221
txtxtxdacãtxsign
txtxtxdacã
txtxtxdacã
tu
unde dreapta 02
)()()( 2
21 tx
txtx , definită în planul fazelor, reprezintă linia de
comutaţie. Adică comanda optimală este:
02
1: ,
02
1: ,
2
1
2211
221
221
xtxtxdacătxsign
xtxtxdacă
xtxtxsign
tu
Sistemul de control poate fi reprezentat cu o schemă de principiu reprezentată în figura
următoare.
Figura 3 Implementarea practică a reglării cu timp minim
38
Desfăşurarea lucrării:
Se va implementa un program în MATLAB care simulează sistemul dinamic
prezentat în regim liber respectiv în regim forţat la comanda calculată în funcţie de stări.
Se vor reprezenta traiectoriile de stare libere şi cele forţate, respectiv evoluţia în timp a
semnalului de comandă obţinut. Se testează programul la diferite stări iniţiale. Similar se
va implementa şi schema de simulare în SIMULINK a procesului de reglare.
Funcţiile MATLAB care pot fi utilizate în lucrare sunt: lsim, initial, ode45.
Întrebări:
1. Cum se modifică evoluţia stărilor dacă sistemul funcţionează in regim liber?
2. Care ar fi condiţia de oprire in simularea sistemului forţat?
3. Cum se modifică traiectoriile de fază în regim forţat la diferite stări iniţiale?
39
Lucrarea nr. 12. Lab.15
NAVIGAŢIA OPTIMALĂ
SPRE O INSULĂ CIRCULARĂ CONVEXĂ
Scopul lucrării:
Lucrarea propune studiul reglării optimale în timp minim când condiţiile iniţiale şi
finale sunt nefixate ci restricţionate în spaţiul stărilor. Se propune implementarea unui
algoritm de reglare pe baza rezultatelor analitice teoriei legate de condiţiile de
transversalitate.
Introducere teoretică:
Dacă stările initiale respectiv cele finale nu sunt fixate,ci numai restrictionate în
spatiul n dimensional de funcţia vectorială:
h x sau h x i mi( ) ( ) , 0 0 1
atunci vectorul costare p(t) în momentul initial t0 , respectiv în cel final tf va fi
perpendicular pe suprafata tangentă la hipersuprafata definită de relatia de mai sus.
Această proprietate este cunoscută sub denumirea de condiţie de transversalitate. Pentru
formularea matematică a acestei proprietăti să considerăm vectorii 0
si f
definiţi
pentru momentele t0 respectiv tf .Condiţiile de transversalitate în acest caz se scriu ca :
f
Tffff
Tfff
TT
txx
htx
x
htptp
txx
htx
x
htptp
)(,)(0)(),(
)(,)(0)(),(00000000
Pentru exemplificarea aplicării acestei teorii se consideră următoarea problemă:
Fie o navă fluvială propulsată cu o viteză relativă w, constantă faţă de apa care
curge cu o viteză constantă v0 . Se cere determinarea direcţiei de navigaţie care asigură
atingerea unei insule circulare convexe C(r,(a,b)), reprezentate în figura , în timp minim.
Pentru rezolvarea problemei se scriu ecuaţiile de mişcare corespunzătoare :
40
)(sin)(
)(cos)(
22
1001
tuwtx
tuvwvtx
Restricţia comenzii se poate exprima prin relaţia: 222222
22
1 sincos)()( wwwtutu
Hamiltonianul problemei este:
)()()()()(1),,,( 221101 tutptutpvtptpuxH
Cu care ecuaţiile canonice sunt:
)0()(0)(
)0()(0)(
222
2
111
1
ptptpx
H
ptptpx
H
Ultimii doi termeni din expresia Hamiltonianului reprezintă produsul scalar dintre vectorii
)(
)(
2
1
tu
tuşi
)(
)(
2
1
tp
tp, restul termenilor fiind independenţi de vectorul de comandă. Deci
valoarea minimă a Hamiltonianului se obţine în cazul în care vectorii susmenţionaţi sunt
coliniari având direcţie opusă. În aceste ipoteze componentele vectorului de comandă
sunt:
)0()()(
)0()()(
222
111
ptptu
ptptu
De unde rezultă ca unghiul relativ de navigaţie are o valoare constantă.
)0(
)0(
)(
)(
cos
sin)(
1
2
1
2
p
p
tu
tu
w
wtg
Valoarea acestui unghi se poate obţine din condiţiile de transversalitate. Dacă resupunem
cunoscută ecuaţia parametrizată a cercului cu care s-a definit insula ţintă în forma:
0)()())(),(( 222
2121 rbtxatxtxtxh
vectorul gradient h/x=[h/x, h/x]T având o direcţie coliniară cu raza cercului este
perpendiculară pe vectorul v=[v1, v2]T, care defineşte dreapta tangentă la cerc. Totodată
vectorul costare p(t)=[p1(t), p2(t)]T este şi ea perpendicular pe vectorul v, deci se obţine
sistemul:
0)()(0,)(
)(
00,
22112
1
2
1
2
2
1
12
1
2
1
vtpvtpv
v
tp
tp
vx
hv
x
h
v
v
x
h
x
h
De unde se obţine:
41
1
2
1
2
)0(
)0()(
xh
xh
p
ptg
Deci în concluzie viteza relativă w corespunzătoare unghiului trebuie să fie
perpendiculară pe insula ciculară.
Desfăşurarea lucrării:
Se va implementa un program în MATLAB care simulează sistemul dinamic
prezentat în regim liber respectiv în regim forţat la comanda calculată în funcţie de stări.
Se vor reprezenta traiectoriile de stare libere şi cele forţate, respectiv evoluţia în timp a
semnalului de comandă obţinut. Se testează programul la diferite stări iniţiale. Similar se
va implementa şi schema de simulare în SIMULINK a procesului de reglare.
Funcţiile MATLAB care pot fi utilizate în lucrare sunt: lsim, initial, ode45.
Întrebări:
1. Când pot fi aplicate condiţiile de transversalitate?
2. În problema prezentată de ce am aplicat aceste condiţii de transversalitate?
3. Cum se aleg condiţiile de oprire la problema prezentată?
4. Cum se modifică problemă dacă insula nu este circulară?
42
Lucrarea nr. 13. Lab.16
REGULATOR OPTIMAL DE STARE
Scopul lucrării:
Lucrarea propune studiul regulatoarelor optimale după stare liniar pătratice prin
prezentarea unor exemple de proiectare a regulatoarelor cu coeficienţi constanţi în timp.
Introducere teoretică:
Reglarea optimală după stare, bazată pe minimizarea criteriului pătratic cu timpul
final infifnit permite obţinerea unor structuri de reglare uşor implementabile în forma
unor reacţii proporţionale după stările procesului. Astfel pe baza modelului identificat, se
poate determina aprioric vectorul de amplificare a reacţiei. Reglarea în timp real a
procesului se reduce astfel la executarea unor operaţii ciclice simple, utilizând ca
parametru vectorul amplificare.
Soluţia problemei de reglare optimală după stare:
Fie un sistem liniar:
)()()()( tutBtxtAx
şi funcţionala de cost,
J u x tf Fx tf x Q e u R u dt
tf
( ) ( ), ( ) ( ), ( ) ( ) ( ), ( ) ( ) 12
12
0
unde comanda u(t) este nerestricţionată, timpul final tf este dat, R(t) este pozitiv definit şi
F respectiv Q(t) sunt pozitiv semidefinite.
Atunci există o comandă optimală unică u(t), dată de relaţia:
)()()()()()()( 1 txtKtxtPtBtRtu T
unde matricea reală simetrică şi pozitiv definită P(t) este soluţia unei ecuaţii diferenţiale
matriciale de tip Riccati, ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )(P t P t A t A t P t P t B t R t B t P t C t Q t C tT T T 1 0
cu condiţiile la limită P tf F( )
Traiectoria optimală se obţine ca soluţia ecuaţiei diferenţiale liniare
( ) ( ) ( ) ( ) ( ) ( ) ( )x t A t B t R t B t P t x tT 1
pornind de la condiţii iniţiale x(t0)=x0 cunoscute. Valoarea minimă a criteriului J(u) se
obţine din relaţia:
J u x t P t x t* ( ) ( ), ( ) ( ) 12
definită pentru toate traiectoriile x(t), t[t0,tf].
43
Dacă presupunem că matricile )()(),(),( tQsitRtBtA sunt constante şi ft deci
0F atunci ecuaţia matricială Riccati se transformă în ecuaţia algebrică Riccati (ARE -
Algebric Riccati Eqations):
01 QPBRBPPAAP TT
În prezenta lucrare se va studia reglarea poziţiei longitudinale a unei aeronave care se
deplasează cu o viteză de croazieră constantă. Dinamica aeronavei în aceste condiţii se
poate aproxima ca:
)()(1
)(
)()(
)()(
2
tqttdt
d
Stqdt
d
tqtdt
d
unde:
reprezintă unghiul format între axa avionului şi planul orizontal
q reprezintă variaţia unghiului (viteza unghiulară)
reprezintă unghiul format între axa avionului şi vectorul viteză croazieră
reprezintă unghiul de comandă a avionului (unghiul format între planul orizontal şi
aripa de comandă)
S,, sunt parametrii procesului şi au valori constante ( 6.1,5.2,25.0 S )
Semnificaţiile şi notaţiile sunt prezentate în figura următoare:
Fig.1.
Ecuaţiile de mişcare sub formă matricială
0
0
110
00
01022 qq
dt
d
44
Se cere proiectarea unui regulator de stare constant, care să menţină vectorul viteză cât
mai apropiat de direcţia orizontală cu un efort de control minim. deci se cere minimizarea
criteriului de forma:
0
221 )()( dtRQuJ
Criteriul transformat în formă cunoscută este:
dtRqQquJ
T
21
0101
000
101
)(
Astfel prin identificarea termenilor se pot determina matricile de sistem A,B respectiv
cele de ponderare R,Q. Sistemul este invariant şi ft deci matricea Riccati este
soluţia ecuaţiei algebrice. Prin intermediul matricei Riccati se poate calcula comanda
optimală după stare conform relaţiilor prezentate la începutul lucrării.
Desfăşurarea lucrării:
Se va implementa un program în MATLAB care simulează sistemul dinamic
prezentat în regim liber respectiv în regim forţat la comanda calculată în funcţie de stări.
Se va testa controlabilitatea sistemului şi se studiază stabilitatea sistemului fără regulator
prin determinarea valorilor proprii. Se va determina comanda optimală respectiv
amplificarea optimală pentru diferite valori a fracţiei R
Q1 . Se verifică stabilitatea
sistemului forţat (cu regulator) prin intermediul valorilor proprii al sistemului închis. Se
vor reprezenta traiectoriile de stare libere şi cele forţate, respectiv evoluţia în timp a
semnalului de comandă obţinut. Se testează programul la diferite stări iniţiale. Similar se
va implementa şi schema de simulare în SIMULINK a procesului de reglare.
Totodată se consideră o perturbaţie de 10 grade a unghiurilor şi , se va simula
traiectoria prin care eroarea este anulată. Să se verifice prin simulare domeniul de
stabilitate pentru parametrii sistemului (robusteţea).
Funcţiile MATLAB care pot fi utilizate în lucrare sunt: are, lqr, lsim, initial, ode45,eig,
etc.
Întrebări:
1. Ce efect au asupra regimului tranzitoriu matricile de ponderare R,Q?
2. Cum se poate calcula un regulator optimal de stare dacă sistemul este variant în timp?
3. În cazul regulatoarelor de stare la ce valoare se reglează stările sistemului?
4. Cum şi cât trebuie să varieze parametrii procesului ca pentru amplificarea optimală
determinată sistemul să fie încă stabil ?
45
Lucrarea nr. 14. Lab.17-18
METODE DE REZOLVARE A ECUAŢIEI RICCATII
Scopul lucrării:
Lucrarea are ca obiectiv studiul metodelor de rezolvare a ecuaţiei diferenţială
matricială respectiv ecuaţia algebrică matricială Riccati. Totodată se propune compararea
acestori metode din punct de vedere al convergenţei, timpului de calcul respectiv al
robusteţei
Introducere teoretică:
Ecuaţia diferenţială matricială Riccati are forma generală:
FtPtQtPtBtRtBtPtPtAtAtPtP fTT )(0)()()()()()()()()()()( 1
Pentru determinarea matricei P(t) se poate utiliza sau o soluţie analitică, bazată pe soluţia
unui sistem, având n.(n+1)/2 ecuaţii diferenţiale independente (datorită proprietăţii de
simetrie), sau în cazul unor sisteme de ordin mai mare de 2 - datorită complexităţii
calculelor- se apelează la diferite metode de integrare numerică inversă în domeniul (tf,
to). Deşi soluţia ecuaţiei diferenţiale nu este unică, va exista numai o singură soluţie
pozitiv definită ca soluţie valabilă.
Utilizând aproximarea derivatelor cu diferenţe finite, soluţia se obţine prin integrare
inversă deci aproximările matricei Riccati se obţin din relaţia:
P t P t t t P t A t A t P t P t B t R t B t P t Q t
P tf F
T T( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )
( )
1
Ecuaţia algebrică matricială Riccati are forma generală:
01 QPBRBPPAAP TT
Ecuaţia matricială Riccati degenerată este neliniară, motiv pentru care în majoritatea
cazurilor nu se obţin soluţii analitice. Se prezintă în continuare câteva metode de
rezolvare numerică:
Integrarea inversă în timp: Rezolvarea este posibilă prin integrarea inversă în timp
(P(tf)=0) a ecuaţiei printr-o metodă numerică până la stabilizarea în timp a soluţiilor
obţinute.
Metoda Potter:
La această metodă se construieşte matricea hamiltoniană de forma:
T
T
AQ
BRBAH
1
46
Presupunând că matricea H are vectorii proprii liniari independenţi,şi dacă matricea ~P
este o soluţie a ecuaţiei algebrice Riccati atunci.
P V V 21 11
1
unde: matricea vectorilor proprii V s-a partiţionat în forma:
VV V
V V
11 12
21 22
vectorul format din V11 şi V21 reprezentând vectorii proprii corespunzători valorilor
proprii stabile.
Metoda Schur
Algoritmul sumar al metodei este:
Se calculează descompunerea Schur a matricii H dată de :
UA B R B
Q AU
S S
S
TT
T
111 12
220
unde Sijnxn , iar U nx n2 2 este o matrice de transformare ortogonală astfel
determinată încât valorile proprii ale matricei S11 să fie stabile, respectiv valorile proprii
ale matricei S22 instabile. Partiţionând matricea U :
UU U
U UUij
nxn
11 12
21 22
Soluţia ecuaţiei ARE este: ~P U U
21 111
Ţinând cont că matricea ~P este simetrică
~ ~P U U U P UT T 11 21 11 21
Metoda Newton
Este o metodă iterativă bazată pe rezolvarea iterativă a unor ecuaţii Ljapunov.
Algoritmul metodei este:
1. Se alege o valoare iniţială ~P 0 astfel încât matricea A BR B PT 1 0~
să fie stabilă.
(k=0)
2. Dacă matricea 10 ~~ kPP verifică ecuaţia ARE cu o precizie impusă, atunci ea este
soluţia stabilizatoare si se termină algoritmul, în caz contrar se continuă iteraţia.
QPBBRPAPPA kTkkkT 11111 ~~~~
3. Se rezolvă ecuaţia Lyapunov de unde se obţine valoarea ~ ~P P k 1 1
0~~~~~~ 11111 kTkkTkkTkT PBBRPQPBBRAPPPBBRA
şi iteraţia se continuă de la pasul 2.
47
Desfăşurarea lucrării:
În cadrul lucrării de laborator se propune rezolvarea problemei de reglare optimală
după stare cu diferite metode de rezolvare a matricei Riccati. Să presupunem o mişcare
liniară în direcţia Ox a unui sistem inerţial având masa m asupra căreia acţionează o forţa
Fx considerat ca mărime de intrare, respectiv o forţă de frecare considerată proporţională
cu viteza de deplasare. Rezultă următoarea descriere a sistemului: d
dtx v t
d
dtv
mv t
mF t
x
x x x x
( )
( ) ( )1 1
adică sub formă matricială:
m
F
v
x
mv
x
dt
d x
xxx
1
01
0
10
Se cere minimizarea criteriului pătratic J(u),
J u x t Q x t u t R u t dtT T( ) ( ) ( ) ( ) ( )
1
2 0
unde matricile de ponderare sunt pozitiv definite şi simetrice.
Se va implementa în MATLAB metodele prezentate şi rezultatele obţinute se vor
compara între ele. Funcţiile MATLAB care pot fi folosite la implementarea metodelor
prezentate sunt: are, lqr, eig, schur, rsf2csf, schord, norm, newton, etc.
Întrebări:
1. Care dintre metodele însuşite necesită cel mai mult timp de calcul ?
2. În ce condiţii se poate aplica metoda de Newton la calcularea matricei Riccati?
3. Ce proprietate şi dimensiune au matricile R şi Q?
4. Dacă sistemul este necontrolabil este posibilă soluţionarea ecuaţiei Riccati?
48
Lucrarea nr. 15. Lab.19
REGULATOARE LINIAR PĂTRATICE DE URMĂRIRE
Scopul lucrării:
Lucrarea are ca obiectiv studiul regulatoarelor pătratice de urmărire în cazul
sistemelor invariante de timp la diferite traiectorii prescrise.
Introducere teoretică:
Problema de urmărire optimală în cazul sistemelor continue poate fi formulată în
felul următor. Fie un sistem liniar observabil
)()()(
)()()()()(
txtCty
tutBtxtAtx
Fie z(t) ieşirea dorită (valoarea dorită), e(t)=z(t)-y(t) eroarea de urmărire şi funcţionala de
cost: dttutRtutetQteTFeTeuJft
t
0
)()(),()()(),()(),()(21
21
unde comanda u(t) este nerestricţionată, timpul final tf este dat, R(t) este pozitiv definit şi
F respectiv Q(t) sunt pozitiv semidefinite.
Atunci comanda optimală există şi ea este univocă şi dată de relaţia:
u t R t B t P t x t g tT( ) ( ) ( ) ( ) ( ) ( ) 1
Matricea reală simetrică şi pozitiv definită P(t) este soluţia unei ecuaţii diferenţiale
matriciale de tip Riccati, ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )(P t P t A t A t P t P t B t R t B t P t C t Q t C tT T T 1 0
cu condiţiile la limită: )()()( ffT
f tCFtCtP
Vectorul g(t) este soluţia ecuaţiei diferenţiale liniare
0)()()()()()()()()( 1 tQztCtgtBtRtBtPtAtg TTT
cu condiţiile la limită: )()()( ffT tzFtCtg
Traiectoria optimală se obţine ca soluţia ecuaţiei diferenţiale liniare
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )x t A t B t R t B t P t x t B t R t B t g tT T 1 1
pornind de la condiţii iniţiale x(t0)=x0 cunoscute. Valoarea minimă a criteriului J(u) se
obţine din relaţia:
J u x t P t x t g t x t t( ) ( ), ( ) ( ) ( ), ( ) ( )* 12
unde:
)()(),()(
)()()()(),()()(),()( 1
21
ffff
T
tztPtzt
tgtBtRtBtgtztQtzt
şi este definită pentru toate traiectoriile x(t) dacă t[t0,tf].
49
Dacă presupunem că matricile )()(),(),( tQsitRtBtA sunt constante şi ft deci
0F atunci ecuaţia matricială Riccati se transformă în ecuaţia algebrică Riccati (ARE -
Algebric Riccati Eqations) de forma:
01 CQCPBRBPPAAP TTT
iar ecuaţia diferenţială pentru vectorul g(t):
)(~~)(~)(
11 tzqCPBBRAtgtg TTT
Desfăşurarea lucrării:
Pentru exeplificarea metodei de reglare optimală de urmărire se consideră o
mişcare fără frecare pe o suprafaţă caracterizate de ecuaţile:
yyxx amFamF
Dacă se consideră că intrările în sistem sunt forţele Fx şi Fy iar ieşirile sunt cele doua
coordonate x, y să se proiecteze un regulator de urmărire cu următoarele traiectorii de
stare: punct, linie verticală, linie orizontală, linie oblică ,cerc, curbe tip spirală, triunghi,
dreptunghi etc.
Fig.1. Traiectoria prescrisă şi ieşirea obţinută respectiv variaţia comenzilor şi
traiectoriilor de stare pe parcursul reglarii
50
Matricile de ponderare R şi Q se aleg ca matrici pozitiv definite şi simetrice având
dimensiunile adecvate (F=0). Se va testa proprietatea de observabilitate respectiv de
controlabilitate a sistemului. Se va simula sistemul fără regulator la diferite semnale de
intrare şi se compară cu răspunsul sistemului cu regulator. Se testează efectul matricilor
de ponderare asupra regimului tranzitoriu. Se va implementa schema de reglare şi in
SIMULINK.
Funcţiile din MATLAB, care ne ajută la rezolvarea problemei sunt cele care au fost
folosite la regulatoarele de stare: are,lqr, lsim,step etc.
Întrebări
1. Ce proprietate au matricile de ponderare R şi Q?
2. Ce reprezintă vectorul g(t) ?
3 Cum se calculează matricea P şi vectorul g dacă sistemul este invarint în timp?
4. Cum se modifică ecuaţia matricială la regulatoarele de urmărire faţă de cea de la
regulatorul de stare?
51
Lucrarea nr. 16 Lab.20
OPTIMIZAREA DINAMICĂ A SISTEMELOR NELINIARE
Scopul lucrării:
Obiectivul este de a studia o metodă iterativă tip gradient, pentru determinarea
comenzii optimale a sistemelor dinamice neliniare. Totodată se arată importanţa alegerii
pasului în asigurarea convergenţei metodei.
Introducere teoretică:
Majoritatea sistemelor reale întâlnite în practică prezintă caracteristici neliniare.
Forma matematică generală a unor astfel de sisteme este
d
dtx t f x t u t t
y t h x t u t t
, ,
, ,
unde: x(t) reprezintă vectorul stărilor xn
y(t) reprezintă vectorul de ieşire al sistemului dinamic
u(t) reprezintă vectorul de comandă u m
Pentru sistemul definit se caută comanda u, care minimizează criteriul de calitate, cu
condiţii de frontieră date:
J u x tf L x t u t t dtto
tf
( ( ), ( ), )
unde stările x(t), respectiv mărimea de control u(t) nu sunt constrânse de nici o restricţie,
timpul final tf este fixat, respectiv starea finală x (tf) este liberă. Pentru rezolvarea
problemei vom defini Hamiltonianul sistemului H(x,u,p,t), similar ca la sistemele
dinamice liniare:
ttutxftpttutxLttptutxH ),(),(,),(),(),(),(),(
sau explicitând produsul scalar, notat cu < . , . > rezultă:
H x t u t p t t L x t u t p t t p t f x t u t tT
( ), ( ), ( ), ( ), ( ), ( ), ( ), ( ),
Condiţiile de necesitate pentru optimalitate se obţin prin rezolvarea sistemului de ecuaţii
canonice:
d
dtx t
H
px t u t p t t
d
dtp t
H
xx t u t p t t
H
ux t u t p t t
( ) ( ), ( ), ( ),
( ) ( ), ( ), ( ),
( ), ( ), ( ),
0
Efectuând calculele rezultă:
52
d
dtx t f x t u t t( ) ( ), ( ),
d
dtp t
L
xx t u t t
f
xx t u t t p t
T
( ) ( ), ( ), ( ), ( ),
L
ux t u t t
f
ux t u t t p t
T
( ), ( ), ( ), ( ),
0
Condiţiile pe frontieră sunt:
x t x p tfx tf
x0 0 ;
Se presupune că se poate rezolva sistemul de ecuaţii neliniare algebrice , care are
ca soluţie u(t), o funcţie neliniară depinzând de valorile vectorului de stare x(t) şi vectorul
costare p(t) având forma:
u t a x t p t t , ,
Înlocuind această expresie în ecuaţiile deduse rezultă un sistem de 2.n ecuaţii
liniare ordinare de ordin I, având ca variabilă elementele vectorilor x(t) şi p(t). Cunoscând
condiţiile pe frontieră pentru timpul iniţial t0 şi cel final tf, teoretic se poate obţine soluţia
ca funcţii de x(t) şi p(t) pentru t t0, tf, şi din aceasta se poate obţine funcţia de
comandă optimală u(t). Am arătat pentru sisteme liniare că aceasta soluţie se obţine prin
rezolvarea unui sistem de ecuaţii diferenţiale de tip Riccati, care se integrează numeric cu
condiţii la limită date. În cazul sistemelor neliniare aceasta problemă se poate rezolva
numai prin metode iterative. Fiecare metodă se bazează pe obţinerea unor traiectorii
optimale folosind o parte din sistemul de ecuaţii de necesitate după care se ajustează
această soluţie pentru a aproxima şi soluţiile ecuaţiilor neluate în considerare.
Optimizare staţionară prin metoda de gradient
Considerând problema neliniară de optimizare dinamică, metoda iterativă de
gradient se poate formula bazând pe condiţiile de necesitate ale optimalităţii
d
dtx t
H
px t u t p t t f x t u t t( ) ( ( ), ( ), ( ), ) ( ), ( ),
d
dtp t
H
xx t u t p t t
f
xx t u t t p t
L
xx t u t t
T
( ) ( ( ), ( ), ( ), ) ( ( ), ( ), ) ( ) ( ( ), ( ), )
H
u
f
ux t u t t p t
L
ux t u t t
T
( ( ), ( ), ) ( ) ( ( ), ( ), ) 0
cu condiţiile la limita date de relaţiile următoare:
x t p tfx tf
x0 0 ( )
pornind de la o comandă u<>(t) pentru t t0, tf, soluţia ecuaţiilor diferenţiale
furnizează soluţiile x<>
(t) si p<>
(t) cu condiţiile la limită:
53
x
tfxtfpoxtx
)( 0
Dacă traiectoria nominală a mărimii de control în iteraţia satisface relaţia:
H x u p t
ut to tf
, , ,
,0
atunci u<>
, x<>
şi p<>
sunt extremale.
Aproximând funcţionala de cost J prin dezvoltarea în serie conform demonstraţiei
condiţiilor de necesitate:
J ux tf
xp tf x tf
d
dtp
H
xx t
d
dtx f x u t t
H
uu dt
T
T T T
to
tf
( )
( , , )
K
Dacă condiţiile de necesitate sunt satisfăcute relaţia. devine:
dttu
u
tpuxHuJ
T
tf
to
,,,
)(
Dacă similar cu cele prezentate în metoda de optimizare parametrică, variaţia u se
aproximează în direcţia gradientului Hamiltonianului ponderată cu valoarea pasului >0
rezultă:
u t u t u t
H
ut to tf
1 ,
cu care criteriul J devine:
0
,,,,,,
dtu
tpuxH
u
tpuxHJ
T
tf
to
valoare care asigură convergenţa traiectoriei comenzii în direcţia minimizării criteriului
pozitiv definit J(u).
Algoritmul formal al metodei este:
1. Se alege o traiectorie nominală pe intervalul t t0, tf data în valori discretizate a
comenzii u0(t)
2. Utilizând comanda predefinită se integrează sistemul dat obţinând traiectoria stărilor
pentru intervalul to, tf. 3.Considerând ca valoare de pornire condiţia.
p tfx tf
x
se determină valorile eşantionate ale vectorului costare p(t), integrând condiţiile de
necesitate invers în timp.
4. Dacă condiţia,
54
h
uunde
H
u
H
u
H
udt
T
to
tf
este îndeplinită, unde eroarea se stabileşte anterior se termină iteraţia, obţinând
traiectoria optimală. Dacă condiţia nu este satisfăcută se execută corecţia:
u t u tH t
u
k k 1
în eşantioanele de timp stabilite. Iteraţia se continuă de la pasul 2.
Desfăşurarea lucrării
În cadrul lucrării de laborator se va rezolva problema de optimizare neliniară a sistemului
neliniar:
d
dtx t x t u t x( ) ( ) ( ) 2 0 1
Se cere determinarea comenzii, care minimizează criteriul J (u):
J u q x u d q 1
282 2
0
1( ) ( )
Se va implementa algoritmul de căutarea a minimului conform metodei prezentate şi se
vor reprezenta grafic traiectoriile de stare respectiv variaţia semnalul de comandă în
procesul de simulare-reglare.
Întrebări
1. Ce efect are asupra algoritmului valoarea şi ce reprezintă?
2. Care ar fi condiţia de oprire a algoritmului de căutare?
55
Lucrarea nr. 17 Lab.21
METODA PROGRAMĂRII DINAMICE DISCRETE
Scopul lucrării
Lucrarea propune studiul unor probleme de optimizare discretă neliniară care pot
fi rezolvate cu metoda programării dinamice discrete (MPDD).
Introducere teoretică
Principiul optimalităţii sau principiul lui Bellman într-o formulare specifică
conducerii optimale a sistemelor dinamice este:
Fie un sistem dinamic discret descris de modelul:
x f x uk k k 1 , , k k N 0 1,
cu starea iniţială x xk0 0 secvenţa de comandă uk*care minimizează criteriul de calitate:
J u x L x uN k k
k k
N
,0
1
se poate obţine din relaţia:
),(,min,min 1 kkkku
kkku
k uxfJuxLxJuxLxJkk
Această ecuaţie recursivă are condiţia finală impusă:
J x xN N
Pe baza rezultatelor de mai sus algoritmul care constituie în esenţă metoda
programării dinamice discrete MPDD, se poate aplica după cum urmează:
1. Pentru k=N se efectuează iniţializare conform relaţiei )(*NxJ ,
2. Pentru fiecare xk admis, se determină comanda u*
k(xk) ca soluţie a problemei de
optimizare:
),(,min/)( kkkk
ukkkk uxfJuxLUuxu
k
3. Pentru fiecare xk admis se calculează valoarea optimală a criteriului de calitate
J*(xk) şi se formează secvenţa de comandă optimală u
*kU
*k, de la eşantionul k la cel final
N conform relaţiei:
1, kkk UuU
4. Se decrementează eşantionul actual k şi se efectuează iteraţia începând de la pasul
2, până la condiţia de oprire k k0.
După cum se poate urmări şi din algoritmul de mai sus, metoda programării
dinamice discrete necesită parcurgerea de N-k0 ori a paşilor 2...4, rezultând ca metoda se
încadrează în cadrul metodelor de optimizare în mai mulţi paşi. Calculele nu se pot
efectua analitic, necesitând o evaluare numerică, selectarea şi memorarea valorilor
56
optimale ale comenzii u*k(xk), şi ale criteriului de calitate J
*k(xk) în nodurile unei reţele de
puncte alese în mod convenabil pe spaţiul stărilor.
Volumul calculelor şi a memoriei aferente depinde exponenţial de ordinul n al
sistemului supus reglării, MPDD fiind recomandată pentru sisteme de ordin redus (n<5).
Pentru motivarea acestei proprietăţi vom observa că vectorul de stare în fiecare eşantion
este reprezentat în n puncte. Pentru un număr de N secvenţe numărul total de puncte
posibile este Nn.
Desfăşurarea lucrării
În cadrul lucrării de laborator se propune rezolvarea următoarelor probleme cu metoda
programării dinamice discrete:
Problema 1
Un student are la dispoziţie patru ore pentru a se pregăti la patru examene (E1..E4).
Notele obţinute la fiecare disciplină după numărul de ore studiate din fiecare disciplină
sunt reprezentate în tabel:
Ore studiate E1 E2 E3 E4
0 2.00 4.00 4.00 8.00
1 4.50 4.50 5.20 9.10
2 6.50 5.70 6.20 9.50
3 7.50 6.10 7.10 9.70
4 8.50 6.90 7.80 9.80
Utilizînd MPDD să se determine alocarea de timp optimă pentru a obţine medie maximă.
Problema 2
La rezolvarea unor probleme matematice este necesară înmulţirea unui şir de matrice: M1,
M2,,…, Mn Să se determine ordinea operaţiilor de înmulţire astfel încât numărul
operaţiilor elementare înmulţire-adunare să fie minimă.
Întrebări
1. Cum se poate aplica MPDD la determinarea comenzii optimale a sistemlor discrete?
2. Care sunt avantajele respectiv dezavantajele metodei?
3 Căutaţi exemple de probleme care pot fi rezolvate de MPDD?
57
Lucrarea nr. 18 Lab.22
REGULATOR DISCRET OPTIMAL DE STARE
Scopul lucrării:
Lucrarea propune studiul regulatoarelor optimale discrete în procesul de control
al sistemelor liniare discrete invariante în timp. Se va testa influenţa matricilor de
ponderare asupra dinamica procesului de control.
Introducere teoretică
Fie sistemul dinamic liniar discret descris de modelul :
kkkkk uxx 1
Se caută comanda care minimizează criteriul :
kkk
N
kkkNN uRuxQxxFxuJ ,,,)(
1
Similar cazului sistemelor continue valoarea minimă a criteriului din momentul k se caută
în forma cuadratică :
kkT
kk xPxxJ )(*
Pe baza teoriei lui Bellman se ajunge la expresia comenzii optimale avân forma
u R P P xk k k
T
k k k
T
k k k
1
1
1
unde matricea 1kP este soluţia ecuaţiei matricială discretă având forma:
FP
PPRPQPP
N
kkT
kkkT
kkkkT
kkkkT
kk
1
1
111
În cazul sistemelor invariante (Pk+1=Pk) ecuaţia se transformă în :
PPRPQPP TTTT ~~~~~ 1
Desfăşurarea lucrării
Se consideră un proces sismplu în industria hârtiei, unde se cere reglarea nivelului
de amestec h dacă intrările în proces sunt valoarea de comandă a ventilului de diluare u1
şi comanda pompei cu viteză variabilă. Schema bloc a modelului liniarizat este:
58
Fig.1. Schema bloc a procesului studiat
Elementul de execuţie esenţial îl reprezintă pompa cu viteză variabilă, care reglează
volumul total de alimentare al instalaţiei.
Constantele din proces sunt : Tp=1s ,Tv=0.5s ,Th=2s si amplificarea K=10. Regulatorul
liniar pătratic va asigura menţinerea valorii prescrise de : xpr=[ 4 0.6 1]T . Se va calcula
modelul intrare-stare-ieşire al sistemului, se va discretiza cu un pas de discretizare h=0.2
şi se vor alege diferite matrici de ponderare R şi Q de dimensiuni corespunzătoare şi se va
calcula matricea Riccati rezol vând ecaţia algebrică Riccati discretă.
In figura 1. se prezintă variaţia stărilor reglate respectiv variaţia comenzii discrete în
procesul simulării discrete a sistemului în cauză.
Fig.2 Stările discrete reglate şi comenzile discrete
Funcţiile MATLAB care ne ajută la rezolvarea problemei sunt: tf2ss, c2d, c2dm, dare,
dlqr, dlsim, dinitial, dstep, etc.
Întrebări
1. Cum se reglează stările unui sistem dinamic discret în prezenţa unui regulator de stare?
2. Cum influenţează dinamica procesului alegerea matricilor de ponderare?
3. Ce formă are valoarea minimă a criteriului discret J?
4. Cum se modifică valoarea matricei Riccati cun orizont N=3 ?
59
Lucrarea nr. 19 Lab.23
METODE DE REZOLVAREA ECUAŢIEI MATRICIALĂ
RICCATI DISCRETĂ
Scopul lucrării:
În lucrarea de faţă se propune studiul unor metode iterative şi neiterative pentru
rezolvarea ecuaţiei matriciale Riccati discretă. Se vor compara rezultatele şi eficientele
metodelor şi se vor pune în evidenţă avantajele respectiv dezavantajele acestora.
Introducere teoretică:
Comparativ cu cazul regulatoarelor continue şi la regulatoare discrete se deosebesc
metodele de rezolvare aplicate la sistemele invarinte respectiv variaante in timp.
Sistemul discret este variant sau N (are o valoare finită)
Ecuaţia matricială discretă în caz general are forma:
P P Q P R P P
P F
k k
T
k k k k
T
k k k k
T
k k k
T
k k
N
1 1 1
1
1
În cazul sistemelor variante în timp metoda de rezolvarea ecaţiei este o metodă iterativă.
Se porneşte de la valoarea finală a matricei Riccati şi în funcţie de orizontul problemei se
calculează înapoi matricile Riccati la diferite eşantioane de timp.
Sistemul discret este invariant şi N
~ ~ ~ ~ ~P P Q P R P PT T T T
1
Dacă sistemul este invariant în timp şi orizontul este infinit atunci se poate rezolva
problema tot printr-o metodă numerică iterativă unde valoarea matricei riccati în punctul
final este 0. Precizia acestei metode depinde de numărul de paşi selectaţi pentru
stabilizarea soluţiei. Datorită acestui fapt se poate aplica şi în cazul discret metoda Potter
de rezolvare, care are următorul algoritm:
1. Se construieşte matricea Hamiltoniană H a sistemului discret:
H
R Q R
Q
T T T T
T T
11
11
1 1
2. Se calculeză valorile proprii respectiv vectorii corespunzători pentru matricea H
60
3. Se partiţionează matricea vectorilor proprii astfel încât matricea V1 reprezintă vectorii
proprii corespunzători valorilor proprii stabile (Re () < 1), din matricea V ai vectorilor
proprii:
2221
1211
21VV
VVVVV
4. Determinarea soluţiei stabilizate ale ecuaţiei Riccati discretă se poate face după relaţia: 1
1121
VVP
Desfăşurarea lucrării
În cadrul lucrării de laborator se vor implementa metodele de rezolvare a ecuaţiei
discretă Riccati (iterativă şi neiterativă). Pentru studiul metodelor prezentate se poate
folosi problema din lucrarea precedentă. Rezultatele obţinute la matricea Riccati se vor
compara şi prin trasarea graficelor obţinute la traiectoriile de stare în urma reglării
discrete.
Funcţiile MATLAB care ne ajută la rezolvarea problemei sunt: c2d, c2dm, dare, dlqr,
dlsim, dinitial, dstep, eig, abs, etc.
Întrebări:
1. Ce efect are asupra rezultatelor alegerea orizontului N?
2. Care sunt dezavantajele metodelor iterative?
3. În ce condiţii este posibilă aplicarea metodei Potter ?
4. Prin ce diferă algoritmul Potter în varianta discretă faţă de varianta continuă?
61
Lucrarea nr. 20 Lab.24
REGULATOR DISCRET OPTIMAL DE URMĂRIRE
Scopul lucrării:
Obiectivul lucrării este implementarea algoritmului de urmărire discretă optimală
prin rezolvarea ecuaţiei matriciale Riccati discretă la diferite valori ale orizontului. Se va
studia eficienţa reglării la diferite: traiectorii prescrie respectiv matrici de ponderare
(R,Q).
Introducere teoretică:
Fie un sistem discret liniar descris de următorul sistem de ecuaţii:
kkk
kkkkk
xHy
uxx
1
Să presupunem o traiectorie impusă zk, dată în eşantioane de timp tk. Se cere
determinarea acelei comenzi care minimizează un criteriu pătratic de forma:
1
0
.minN
kkk
T
kkkTkN
TN uRueQeeFeuJ
unde:
e z yk k k reprezintă eroarea de urmărire a traiectoriei prescrise zk,
kkk upuu reprezintă eroarea comenzii faţă de cea necesară menţinerii în
starea staţionară prescrisă de zk. Pe baza teoriei Bellman se obţine secvenţa de comandă
optimală de forma:
kkkTkk
Tkkkk
Tkkk xPgupRkPRu 11
1
12
1
kkkk fxKu
unde matricea Pk+1 respectiv vectorul gk+1 se obţin cu ajutorul următoarelor relaţii de
recurenţă.
kkTkkk
Tkkk
Tkkkk
Tkk
Tkk PPPRPHQkHP
11
1
11
kkTkkk
Tkkk PPRK
1
1
1
1
1
12
1k
Tkkkkk
Tkkk gupRPRf
kkkTkkk
Tkk
Tk
Tk KgKRuHQkzg .22 1
cu condiţiile la limită:
NTN
TN HFzg 2 NN
TNN HFHP
62
În cazul unui orizont suficient de mare la sisteme dinamice invariante relaţiile de
recurenţă deduse pentru matricea Riccati discretă Pk respectiv pentru vectorul gk tind către
valori constante.
Desfăşurarea lucrării:
Pentru exeplificarea metodei de reglare optimală de urmărire se consideră o
mişcare pe o suprafaţă caracterizată de ecuaţiile:
yfyxfx amFFamFF
Dacă se consideră că intrările în sistem sunt forţele Fx şi Fy iar ieşirile sunt cele doua
coordonate x, y să se proiecteze un regulator de urmărire cu următoarele traiectorii de
stare (figura 1):
Fig.1 .Traiectorii prescrise
Se discretizează sistemul caracterizat de ecuaţiile de stare se aleg matricile de
ponderare (constante respectiv variabile) şi se implementează algoritmul de urmărire
discretă cu un orizont finit (sau infinit). Se va reprezenta grafic variaţia comenzii
respectiv variaţia ieşirii forţate comparativ cu traiectoriile de stare. Să se studieze
varianta reglării cu matrici de ponderare variabile pe lungimea orizontului.
În figura 2. se prezintă rezultatul simulării procesului de urmărire discretă, când
traiectoria prescrisă este un dreptunghi, iar orizontul reglării este fixat la valoarea N=10.
63
Funcţiile MATLAB care ne ajută la rezolvarea problemei sunt: tf2ss, c2d, c2dm, dare,
dlqr, dlsim, dinitial, dstep, etc. Să se implementeze schema de reglare şi în SIMULINK.
Fig. 2. Iesirea sistemului şi traiectoria prescrisă
Întrebări:
1. Cum se modifică semnalul de ieşire dacă orizontul reglării N este mare?
2. Care este dezavantajul reglării cu un orizont infinit?
3. Cum se modifică valoarea criteriului de calitate discretă pe parcursul reglării?
4. Cum se aleg şi ce dimensiuni au matricile de ponderare R şi Q în cazul reglării de
urmărire discretă?
64
BIBLIOGRAFIE
1. L. David Tehnici de optimizare, Curs, Universitatea "Petru Maior" Tg. Mureş 1998
2. V. Ionescu, A.Varga, Teoria sistemelor: Sinteză robustă. Metode numerice de calcul,
Editura ALL, Bucureşti,1994
3. D. Sarchiz, Optimizări în Electroenergetică, Editura Multimedia System, Tg. Mureş
1993
4. D. Sarchiz, L. David, Cercetări operaţionale în electroenergetică, Îndrumar de lucrări,
Universitatea "Petru Maior" Tg. Mureş, 1998
5. L. David, L. Marton, Teoria sistemelor şi optimizări, Îndrumător de laborator,
Universitatea Tehnică Tg. Mureş, 1994
6. D. Teodorescu, Sisteme automate deterministe, Editura Tehnică, Bucureşti 1984
7. S. Călin, M. Tertişco, I. Dumitrache, C. Popeea, D. Popescu, Optimizări în
automatizări industriale, Editura Tehnică, Bucureşti, 1988
8. M.Athans, P.L.Falb Optimal Control: An Introduction to the Theory and its
Applications, McGraw Hill New-York,1966.
9. K.J.Astrom,B. Wittenmark, Computer Controlled Systems, Theory and Design,
Prentice-Hall, 1990.
10. B.D.O.Anderson, Optimal Control, Linear Quadratic Methods, Prentice-Hall, 1989.
11. S.Cãlin,M.Tetişco,I.Dumitrache,C.Popeea,D.Popescu, Optimizãri în Automatizãri
Industriale, Editura Tehnicã, Bucureşti,1979.
12. T.Coloşi, Tehnici de Optimizare, Curs vol. II-III, Institutul Politehnic Cluj-
Napoca,1989.
13. T.L.Dragomir, Tehnici de Optimizare, Institutul Politehnic "Traian Vuia" Timişoara
1987.
14. David L, Tehnici de Optimizare în Automatizări, Universitatea " Petru Maior",
Tg.Mures, 2000
15. Kósa A, Optimumszámítási modellek, Műszaki könyvkiadó, 1979
16. H.Kwakernaak,R.Sivan, Linear Optimal Control Systems, John Wiley & Sons, Inc,
Wiley-Intersience, New-York 1972.
17. Lantos B, Irányítási rendszerek elmélete és tervezése, Akadémiai kiadó, 2001
18. E. Polak, Computational methods in optimisation, Academic Press, 1971
19. M.G.Singh, A.Titli Systems Decomposition, Optimisation and Control Pergamon
Press 1978.
20. Gyorgy K., David L. Tehnici de optimizare, Lucrari de laborator, Univ. „Petru
Maior”, Tg. Mures, 2005