Control Optimal

Published on February 2017 | Categories: Documents | Downloads: 41 | Comments: 0 | Views: 464
of 73
Download PDF   Embed   Report

Comments

Content


UNIVERSITATEA POLITEHNICA DIN BUCUREŞTI
Facultatea de Ştiinţe Aplicate
Specializarea: Matematică şi informatică aplicate în inginerie
CONTROL OPTIMAL
Profesor coordonator: Student:
Prepeliţă Valeriu Petcu Andreea Cristina
Bucureşti 2009
1
CUPRINS
1. Introducere
2. Optimizare Statică
2.1 Optimizarea statică în circuit deschis
2.2 Optimizarea statică în circuit închis
3. Optimizare Dinamică
3.1 Optimizare prin metode variaţionale
3.2 Programarea dinamică
3.3 Principiul maximului al lui Pontriaghin
4. Aplicaţii
4.1 Aplicaţie optimizare prin metode variaţionale utilizând teorema de
optimalitate
4.2 Aplicaţie optimizare prin metode variaţionale utilizând ecuaţia
matricială Riccati
4.3 Aplicaţie optimizare prin metoda programării dinamice
5. Concluzii
6. Anexe
7. Bibliografie
2
1. Introducere
O anumită problemă inginerească nu are soluţie unică; în cele mai multe cazuri, ea
posedă o infinitate de “soluţii posibile”. Dacă aceste soluţii variate sunt evaluate pe baza unei
“funcţii de cost” specifice (numită şi funcţie de pierderi sau criteriu de calitate), fiecare soluţie
va fi caracterizată printr-o anumită valoare a acestei funcţii. Soluţia care oferă o valoare optimă
se numeste soluţie optimală. Căutarea unei astfel de soluţii optimale pentru o problemă dată se
justifică din ce in ce mai mult in contextul actual al dezvoltării tehnologiei, al restricţiilor
energetice si de resurse naturale, al pretenţiilor tot mai ridicate privind calitatea produselor.[1]
În această lucrare vom studia în profunzime optimizarea dinamică a proceselor. Vom
prezenta trei metode de optimizare dinamică: optimizarea prin metode variaţionale (metoda
multiplicatorilor Lagrange şi metoda ecuaţiei matriciale Riccati) ([2], [3]), metoda programării
dinamice a lui Bellman [1] şi metoda principiului maximului al lui Pontriaghin. [1]
Studiul sistemelor optimale se face pornind de la următoarele elemente fundamentale:
1. Dinamica procesului este cunoscută, fiind exprimată sub forma unei ecuaţii de stare

( ( ), ( ), ) x f x t u t t · &
(1.1)
presupusă în cele mai multe cazuri a fi liniară.
2. Se limitează atenţia la cazul determinist, adică se admite că sistemul nu este supus unor
perturbaţii stohastice (iar măsurarea vectorului de stare nu este alterată de zgomote).
3. Vectorul de stare x şi/sau comanda u sunt supuse unor restricţii diverse – de exemplu,
componentele lui u trebuie să se încadreze între anumite limite (restricţii de tip inegalitate), sau
se pot impune anumite valori iniţiale şi finale pentru x (restricţii de tip egalitate), sau se impun
chiar restricţii privind durate t
f
a conducerii procesului respectiv.
4. Se alege un indice de performanţă J, dependent în general de x şi de u şi crescător
cumulativ cu timpul, adică de forma:

0
[ ( )] ( ( ), ( ), )
f
t
J u t L x t u t t dt ·

(1.2)
în raport cu care se realizează optimizarea.
5. Nu se face nici o presupunere cu privire la structura dispozitivului de conducere
optimală (spre diferenta de cazul proiectării prin încercări).
Cu acestea, problema comenzii optimale se formulează concis astfel:
Să se găsească comanda optimă u
opt
(numită şi “strategia de conducere optimală”) care
optimizează indicele de performanţă J, în condiţiile unor restricţii impuse.
În cadrul problemelor de optimizare se disting două categorii:
3
1. Probleme de optimizare statică.
2. Probleme de optimizare dinamică.
Optimizarea statică se întalneşte atunci când se cere conducerea optimală a unui proces a
cărui stare normală este regimul staţionar. Fie astfel un proces descris de ecuaţia (1.1), pe care
dorim să-l menţinem în starea staţionară constantă

0
x x · (1.3)
Într-un astfel de regim, ecuaţia diferenţială vectorială (1.1) se reduce la o ecuaţie algebrică
vectorială (staţionară):

0 0
( , ) 0 f x u · (1.4)
ecuaţie a cărei rezolvare ne dă valoarea comenzii u
0
constante, care poate menţine sistemul în
regimul staţionar dorit. În acest tip de probleme suntem interesaţi mai mult de viteza de variaţie a
funcţiei de cost (indicelui de performanţă) J decât de valorea însăşi a lui J. Din (1.2) se obţtine
direct:
( , , )
dJ
L x u t
dt
· (1.5)
Dacă x şi u se reduc la nişte constante, rezultă că viteza de variaţie a indicelui de performanţă
capată valoarea constantă

0
0 0
( , )
dJ
L x u
dt
¸ _
·

¸ ,
(1.6)
ceea ce indică posibilitatea optimizării procesului prin optimizarea vitezei de variaţtie a lui J.
Exemplu:
Să consideram un sistem electric compus din n generatoare G
1
, G
2
… Gn care furnizează
unor consumatori respectiv puterile
0 0 0
1 2
, ,...,
n
x x x (în kW). Întrucât energia electrică nu poate fi
stocată, va trebui ca puterea totală, în fiecare moment, să fie egală cu cererea P a tuturor
consumatorilor, cerere care nu poate fi influenţată de către producătorii de energie electrică.
Aşadar, valorile puterilor din sistem vor trebui să satisfacă restricţia de tip egalitate

0
1
0
n
i
i
x P
·
− ·


(1.7)
Această condiţie este satisfăcută automat prin reglarea frecvenţei (la valoarea de 50 Hz). O
crestere a frecvenţei denotă un surplus de putere produsă în sistem, surplusul de energie din
sistem fiind utilizat la creşterea energiei cinetice a acestuia (creşterea vitezei generatoarelor).
4
Problema care se pune este aceea a repartiţiei producţiei pe fiecare generator. Se va
remarca faptul că sarcina P cerută de consumatori reprezintă o marime lent variabilă în raport cu
vitezele cu care se pot varia ieşirile
0
i
x ale generatoarelor, ceea ce permite considerarea relaţiei
(1.7) drept o ecuaţie staţionară. În rezolvarea acestei probleme, un indice de calitate judicious de
ales apare ca fiind costul total al energiei produse în sistem, în condiţiile în care preţul de
producţie al energiei electrice variază de la centrală la centrală (după tipul energiei primare
utilizate, puterea generatoarelor, costul exploatării etc.). Fie
0 0
( )
i i
u x rata (viteza) de variaţie a
costului (exprimată de exemplu în lei/h) pentru a produce puterea
0
i
x (în kW) la centrala i. Se
obţine deci rata de cost totală – staţionară – in sistem:

0
0 0
1
( )
n
i i
i
dJ
u x
dt
·
¸ _
·

¸ ,

(1.8)
(în lei/h). Rata de cost
0
i
u poate fi considerată ca jucând rolul unei “comenzi” pentru generatorul
G
i
şi la care el răspunde prin marimea de ieşire
0
i
x . Aşadar, problema se reduce la minimizarea
ratei de cost totale (1.8) în condiţiile respectării restricţiei de tip egalitate (1.7).
Pentru ilustrarea problemei optimizării dinamice, ne vom referi la un alt exemplu.
Exemplu:
Fie problema poziţionării pe o orbită circumterestră a unui vehicul spaţial, în scopul
cuplării cu un alt vehicul spaţial. Se va considera cazul simplificat al poziţionării doar în planul
orizontal local. La o rotire a vehiculului spaţial cu unghiul φ, cauzată de plidă, de trecerea pe o
altă orbită, nişte reactoare laterale vor acţiona cu cuplul C, care să readucă vehiculul în poziţia
corectă. În absenţa frecărilor şi pentru perturbaţii neglijabile, considerând totodată consumul de
combustibil al reactoarelor de poziţionare mult mai mic decât masa vehiculului, ecuaţia mişcării
vehiculului va fi dată de:

J C ϕ · &&
(1.9)
unde J este momentul de inerţie al vehiculului în jurul axei de rotaţie. Relaţia (1.9) se mai poate
scrie:

C
J
ϕ · &&
(1.10)
şi, adoptând ca variabile de stare
1
y x ϕ · ≡
si
2 1
x x ϕ · ≡ & &
, avem ecuaţtiile de stare:

1 2
2
x x
x u
· ¹
'
·
¹
&
&
(1.11)
unde
5

C
u
J
· (1.12)
reprezintţ mărimea de comandă. Dar cuplul C este proporţional cu viteza v de expansiune a
gazelor (din reactoarele de poziţionare) faţă de vehicul şi cu viteza de ardere a combustibilului,
după relaţia:
C vm · − & (1.13)
unde m reprezintă masa de combustibil. Aşadar, comanda poate fi influenţată prin viteza de
ardere m&. Se va propune drept criteriu de performanţă o valoare cât mai mică de combustibil
consumat pentru poziţionare, adică

0
0
[ ] (0) ( )
f
f
t
f
t
J u mdt dm m m t · − · · −
∫ ∫
&
(1.14)
sau, ţinând cont de (1.12) şi (1.13)

0
[ ]
f
t
J
J u udt
v
·

(1.15)
Dar extremul valorii lui J[u] nu depinde de constantele J şi v, astfel că în loc de criteriul (1.15)
putem lua

0
[ ]
f
t
J u udt ·

(1.16)
Comparând cu (1.2), rezultă că funcţia L (numită şi funcţie de pierdere, căci ea reprezintă o
măsură a îndepărtării instantanee faţă de valoarea ideală a indicelui de performanţă) va fi îin
acest caz:
L u · (1.17)
Problema de optimizare va consta în a găsi variaţia optimă a lui u(t) – numită şi strategie optimă
– care să minimizeze integrala (1.16), satisfăcând totodată diversele restricţii impuse de cazul
fizic concret. Fireşte, astfel de restricţii – de tip egalitate – se vor impune variabilelor de stare:

(0)
(0)
0
0
( )
0
f
y
x
x t
¹ 1
·
¹ 1
¹ ¸ ]
'
1
¹
·
1
¹
¸ ] ¹
(1.18)
Se observă, din acest punct de vedere, că problema de optimizare trebuie să rezolve transferarea
sistemului dintr-o stare iniţială dată într-o stare finală dată (astfel de probleme sunt cunoscute sub
numele de probleme “cu condiţii pe frontiere”). În plus, s-ar putea ca să nu avem disponibil decât
6
un reactor de poziţtionare; de asemenea, este clar că valoarea lui u(t) este limitată (fizic) la o
valoare maximă u
max
. Aşadar şi comanda poate fi supusş unor restricţii (de tip inegalitate) având
forma:
max
0 u u < <
.
În fine, trebuie remarcat că nu a fost pusă în discuţie până acum nici o limitare asupra
duratei totale t
f
a procesului de optimizare. Fireşte, dacă comanda u ar putea fi oricât de mare,
durata t
f
ar putea fi facută arbitrar de mică. Dar, după cum s-a menţionat, limitările fizice asupra
valorii comenzii ridică chestiunea încadrării într-un interval de timp specificat
f
t T ≤
.
În exemplul analizat starea sistemului se modifică neîncetat, iar realizarea strategiei
optime u
opt
(t) trebuie realizată pe măsura şi în concordanţă cu aceste modificări. Se vede astfel că
avem de-a face cu o optimizare dinamică.
2. OPTIMIZARE STATICĂ
Optimizarea statică a proceselor poate fi realizată în două moduri:
- ca optimizare în circuit deschis, utilizabilă atunci când modelul matematic al unui
proces este bine cunoscut (inclusiv valorile parametrilor), iar efectele perturbaţiilor
sunt neglijabile.
- ca optimizare îin circuit închis, pentru procesele în care parametrii sunt insuficient
cunoscuţi şi/sau variază cu timpul, iar perturbaţiile – de tip aleator – au o puternică
influenţă asupra stării sistemului; această metodă se bazează pe experimentare.
2.1 OPTIMIZARE STATICĂ ÎN CIRCUIT DESCHIS
Întrucât, după cum am arătat, în cazul optimizării statice, mărimile u
0
si x
0
sunt legate
printr-o ecuaţie algebrică staţionară (1.4), este posibil ca – cel puţin în principiu – să se rezolve
această ecuaţie în raport cu u
0
şi, după înlocuirea acestei valori în (1.6), să se exprime viteza de
variaţie a indicelui de performanţă J ca o funcţie numai de starea staţionară x
0
:

0
0
( )
dJ
H x
dt
¸ _
·

¸ ,
(2.1.19)
funcţia H luând diverse valori în funcţie de vectorul particular x
0
ales. Obţinerea valorii lui x
0
care să optimizeze funcţia H depinde de: natura particulară a funcţiei H, dimensiunea lui x
0
,
restricţiile impuse.
Dacă se reperzintă funcţia
0 0
1
( ,..., )
n
H x x într-un spaţiu (n+1) – dimensional, se obţin nişte
contururi de valori H
i
=const.
7
Figura 1 Contururi H=const la sisteme bidimensionale
Această situaţie se poate vizualiza uşor în cazul n=2, adică pentru
0 0
1 2
( , ) H x x . Se observă
că unele suprafeţte
0 0
1 2
( , ) H x x prezintă un maxim de tip “neted” (fig. 1 b), altele au un vârf
ascuţit (fig. 1 d), altele prezintă mai multe maxime de valori diferite (fig. 1 c) sau nu prezintă nici
un maxim dacă coordonatele
0
i
x nu sunt supuse la restricţii (cazul din fig. 1 a, corespunzător la
0 0 0 0
1 2 1 1 2 2
( , ) H x x x x α α · + cu α
1
, α
2
=const)
O situaţie cu totul diferită se întâlneşte dacă se impun unele restricţii asupra variabilelor
de stare – de tip egalitate:

0 0
1
( ,..., ) 0, 1, , ( )
v n
h x x v p p n · · < (2.1.20)
sau, sub forma vectorială:

0
( ) 0 h x · (2.1.21)
8
ori de tip inegalitate:

0 0
1
( ,.., ) 0, 1, , ( )
n
g x x q q n
µ
µ < · < (2.1.22)
Astfel, de exemplu, suprafata H din fig. 1 b are – în lipsa restricţiilor – un maximum în punctul
P
1
. Dacă adoptăm însă restricţia
0 0
1 2
( , ) 0 h x x · care impune ca
0
1
x şi
0
2
x să ia valori numai pe o
suprafaţă ce intersectează suprafaţa H conform conturului zonei haşurate din fig. 1 e, atunci
rezultă un maxim în condiţii de restricţii, care este punctul P
2
de tangentă între curba H
0
de pe
suprafaţta H şi suprafaţa.
0 0
1 2
( , ) 0 h x x · .
a) O primă situaţie care poate apare este aceea a unei funcţii de performanţă H de tip
liniar, adică de forma:

0 0
1
( )
n
i i
i
H x x α
·
·

(2.1.23)
iar restricţiile – de tip egalitate sau tip inegalitate – sunt de asemenea liniare. O astfel de
problema reprezintă o problema de “programare liniară”.
b) Un caz important în practică este acela când funcţia de performanţă H posedă un
maxim de tip “neted” (numit şi “calculabil”), ca de exemplu în fig. 1 b.
În caz că nu există restricţii, punctul de optim se poate identifica prin faptul că valoarea
lui H nu se modifică la o deplasare arbitrar de mică pe suprafaţa
0 0
1
( ,..., )
n
H x x adică
0
opt
H H ≡

este staţionară. Din (2.1.19) rezultă:

0 0 0
1 2 0 0 0
1 2
...
n
n
H H H
dH dx dx dx
x x x
∂ ∂ ∂
· + + +
∂ ∂ ∂
(2.1.24)
Întrucât
0
i
dx sunt libere (deplasarea din punctul de optim putându-se face în orice direcţie cu
orice valoare mică), condiţia:
0 dH · (2.1.25)
implică

0
0, ( 1, )
i
H
i n
x

· ·

(2.1.26)
Pentru a cunoaşte dacă optimul obţinut reprezintă un maxim, un minim sau un punct “în
şa”, trebuie utilizate alte mijloace; deci condiţia (2.1.26) este doar necesară (nu şi suficientă).
Mult mai complicat este însă cazul determinării unui optim în prezenţa restricţiilor, în
cazul n-dimensional, cu p restricţii de tip (2.1.20). În acest caz avem nevoie de p multiplicatori
Lagrange
9

0 0
, ( 1, )
i
i i
H h
i p
x x
λ

∂ ∂
·− ÷ ·
∂ ∂
(2.1.27)
Se defineşte o “funcţie majorată” H
*
:

*
1
p
v v
v
H H h λ

·
· +

(2.1.28)
Maximul supus la restricţii de tip (2.1.20) va fi caracterizat prin

*
0
0, ( 1, )
i
H
i n
x

· ·

(2.1.29)
Exemplu:
Reluăm exemplul iniţial de optimizare statică a repartiţiei puterilor între generatoarele
unui sistem. În acest caz funcţia H este dată de (1.8), iar restricţia de forma (1.7). Figura 2 a)
reprezintă o curba tipică
0
i
u [lei/h](x
0
i
[kW]). Pentru cazul a două generatoare, suprafaţa H este
reprezentată în figura 2 b).
Figura 2 Curbe tipice de cost în raport cu puterea electrică produsă în centrale termoelectrice
Funcţia de performanţă (cost) majorată va fi
* 0 0 0 0 0 0
1 1 1
( ) ... ( ) ( ... )
n n n
H u x u x x x P λ · + + + + + −
şi, conform (2.1.29):
10
0 0 * *
1
0 0 0 0
1 1
0;...; 0
n
n n
u u H H
x x x x
λ λ
∂ ∂ ∂ ∂
≡ + · ≡ + ·
∂ ∂ ∂ ∂
respectiv
0 0 0
1
0 0 0
1
... ...
i n
i n
u u u
x x x
λ
∂ ∂ ∂
− · · · · ·
∂ ∂ ∂
Derivatele parţiale
0 0
/
i i
u x ∂ ∂ reprezintă aşa-numitele “costuri incrementale de producţie”
ale generatoarelor.
Rezultatul obţinut în acest exemplu se traduce astfel: pentru realizarea unui beneficiu
maxim, sistemul va trebui condus astfel încât costurile incrementale să fie egale pentru toate
generatoarele din sistem (ceea ce nu implică neapărat ca şi costul total al producţiei de energie
este egal pentru toate generatoarele) şi, fireşte, suma puterilor generate în sistem să fie egală cu
puterea P a consumatorilor.
În concluzie, o astfel de optimizare se spune că este “în circuit deschis”, întrucât optimul
rezultat este corect atâta timp cât modelul matematic al procesului este corect şi acest model este
complet precalculat şi fix, fără a ţine cont de perturbaţiile dinamice (ci doar de cele staţionare,
modelul însuşi fiind staţionar = fix).
2.2 OPTIMIZARE STATICĂ ÎN CIRCUIT ÎNCHIS
Dacă nu dispunem de un model matematic acceptabil pentru procesul ce trebuie optimizat
static, este posibil a-l face pe acesta din urmă să funcţioneze optim prin experimentare în timp
real. În literatura de specialitate au fost propuse numeroase metode de căutare experimentală a
optimului static, metode încadrate în denumirea de “tehnici de urcarea pantei”. Toate aceste
metode procedează mai întâi la căutarea direcţiei către vârful pantei şi apoi produc deplasarea în
acea direcţie. Unele metode sofisticate caută nu numai direcţia către vârful pantei, ci direcţia cea
mai bună în sensul atingerii optimului în timp minim; astfel de metode reprezintă “metode de
gradient sau metode de urcare (respectiv coborâre, în cazul că optimul reprezintă un minim) pe
linia de cea mai mare pantă”.
Împărţind (2.1.24) în ambii membri cu dt, se obţine:

0 0
1
0 0
1
...
n
n
dx dx dH H H
dt x dt x dt
∂ ∂
· + +
∂ ∂
(2.2.30)
care se mai poate scrie compact sub forma produsului scalar

0
0 0
( ), ( )
x
H x H x ·< ∇ >
&
(2.2.31)
unde
11

0
0
1
0
0
( ) ...
x
n
H
x
H x
H
x

∂ 1
1

1
∇ · 1
1

1
1 ∂
¸ ]
(2.2.32)
reprezintă gradientul funcţiei scalare H(x
0
) în raport cu vectorul x
0
.
Pentru o valoare dată a “vitezei” x
0
, viteza de variaţie a lui H va fi maximă atunci când x
0
şi
0
x
H ∇
sunt paralele, adică atunci când mişcarea se face în direcţia gradientului.
Figura 3 Structura generală a unui sistem de căutare a optimului static
Un sistem automat cu optimizare statică prin căutarea experimentală va trebui să
folosească semnale speciale de testare (perturbaţii de valoare mică şi lent variabile), injectate în
sistem; trebuie însă menţionat că, dacă sistemul conţine în mod normal zgomote interne de
valoare suficient de mare, se pot chiar ele folosi drept semnale de test. Schema din figura 3
reprezintă structura generală a unui sistem automat de căutare a optimului, în care semnalele
perturbatoare de testare sunt introduse aditiv peste cele m intrări staţionare u
0
i
. Se presupune că
toate variabilele de stare care afectează valoarea funcţiei H sunt accesibile. Se foloseşte un
generator al funcţiei H pe baza valorilor rezultate din proces pentru variabilele de stare. Din
cauza variaţiilor – lente – ale perturbaţiilor, variabilele de stare îşi modifică valorile şi H îşi va
modifica valoarea. Aceste modificări vor fi interpretate de dispozitivul de optimizare static, care
va efectua modificări ale valorilor comenzilor u
0
i
astfel încât valoarea lui H să se apropie de
optim. Optimizarea se face în circuit închis şi, dacă dispozitivul de optimizare static este
conceput corespunzător, sistemul va evolua în sensul atingerii optimului.
12
3. OPTIMIZAREA DINAMICĂ
Problema optimizării dinamice este caracterizată de vectori de stare şi de comandă
variabili în timp. Altfel spus, în cazul optimizării statice avem de optimizat o funcţie (2.1.19); în
cazul optimizării dinamice trebuie căutate condiţiile în care se extremizează o funţională de tip
(1.2), adică

0
[ ] [ ( ), ( ), ]
f
t
J u L x t u t t dt ·

(3.33)
În cele ce urmează vom prezenta metode de optimizare dinamică.
3.1 OPTIMIZAREA PRIN METODE VARIAŢIONALE
Tot aşa cum “metoda multiplicatorilor lui Lagrange” permitea – în cadrul optimizării
statice – determinarea condiţiei necesare pentru ca funcţia H – posedând un extrem de tip
“neted” – să fie optimizată, în optimizarea dinamică calculul variaţional ne oferă posibilitatea
determinării condiţiilor necesare (dar nu suficiente) de obţinere a unui optim pentru o funcţională
(integrală) prezentând un extrem de tip “neted”.
Calculul variaţional în contextul teoriei sistemelor prezintă următoarea problemă
generală (problema Bolza):
a) Procesul este descris de vectorul de stare x(t) satisfăcând ecuaţia de stare (1.1), cu
{ } , { } , { }
n m
x X R u U R t T R ∈ ⊂ ∈ ⊂ ∈ ⊂ , unde funcţiile (componentele lui f) sunt continue şi
admit derivate parţiale continue într-un domeniu al spaţiului X U T × × - ce va fi precizat prin
restricţii. Se acceptă, de asemenea, că sistemul (1.1) admite o soluţie unică pentru condiţii iniţiale
0 0
( ) x t x

·
date şi o comandă u(t) dată.
b) Stările şi valorile comenzilor sunt supuse unor restricţii de tip

( , , ) 0 r x u t ≤
(3.1.37)
unde funcţiile r
i
(componentelele lui r) sunt presupuse continue şi continuu derivabile, restricţii
ce definesc un domeniu (în general închis) al aşa-numitelor stări şi comenzi “admisibile” (cazul
| |
i
u M ≤
este de acest tip, scriindu-se sub forma:
2 2
0
i
r u M ≡ − ≤ ).
Un alt tip de restricţii au forma unei integrale

0
( , , ) 0
f
t
t
p x u t dt ≤

(3.1.38)
13
(un exemplu îl constituie limitarea energiei disponibile în sistem, exprimată prin
0
2
f
t
i
t
u dt a ≤

si
care se mai poate scrie sub forma:
0
2
0
f
t
i
f t
a
u dt
t t
1 ¸ _
− 1


1
¸ , ¸ ]

.
c) Sistemul evoluează între momentele t
0
şi t
f
; acestea, ca şi x(t
0
), x(t
f
), pot fi fixate
aprioric, pot fi libere, ori pot fi obligate să raspundă unor condiţii la limită (pe frontieră) de tip

0 0
( , ) 0
( , ) 0
f f
k x t
l x t
· ¹
'
·
¹
(3.1.39)
unde k
i
şi l
i
sunt presupuse continue şi continuu derivabile.
d) Se impune un criteriu tip Bolza – mai general ca (1.2):

0
0 0
( , , ) ( , , , )
f
t
f f
t
J L x u t dt M x t x t · +

(3.1.40)
unde primul termen este o integrală evaluată de-a lungul curbei integrale ce rezultă pentru x(t
0
) şi
u(t) aleşi, iar cel de-al doilea termen este dependent de extremităţi în cazul când acestea nu sunt
impuse; funcţiile L şi M sunt presupuse continue şi continuu derivabile.
În cele ce urmează vom prezenta condiţiile necesare de optimalitate şi vom enunţa
teorema de optimaliate.
Fie un sistem cu ecuaţia de stare de forma ecuaţiei (1.1) cu functionala de cost dată de
ecuaţia (3.1.40) unde:
1. f este o funcţie măsurabilă în raport cu t, de clasă C
1
în raport cu x şi de clasă C
1
în
raport cu u;
2. L funcţie de clasă C
1
în raport cu toate argumentele şi pozitivă (Lagrangean)
3. M funcţie de clasă C
1
, convexă (Meyerian)
Definim mulţimile:
{ } 1 2
{ } : [ , ]
m
deschis
U u t t U R · → ⊂
mulţimea comenzilor admisibile şi
{ } 1 2
{ } :[ , ]
n
deschis
X x t t X R · → ⊂
mulţimea starilor admisibile.
Definim mulţimea traiectoriilor (perechilor) admisibile ca fiind
{ } { } ( , ) { } { }/( , ) (1.1) T x u X U x u verifica ecuatia de stare · ∈ ×
.
14
Problema este să se determine o traiectorie optimală, adicăo traiectorie
( , ) { } x u T ∈ %%
astfel
încât
[ ] [ ] J u J u ≤ %
.
Fie
( , ) { } x u T ∈ %%
o traiectorie optimală.
Considerăm o variaţie mică a traiectoriei optimale
( , ) { } x u T
ε ε

. Atunci:
( ) ( ) ( ); x t x t h t
ε
ε · + ⋅ %

( ) ( ) ( ). u t u t k t
ε
ε · + ⋅ %
ε ∈¡
Definim funcţia:
0
0 0 0
( ) [ ]
( ) ( , ( ) ( ), ( ) ( )) ( , ( ) ( ), , ( ) ( )).
f
t
f f f
t
F J u
F L t x t h t u t k t dt M t x t h t t x t h t
ε
ε
ε ε ε ε ε
· ⇔
· + ⋅ + ⋅ + + ⋅ + ⋅

% % % % cu
proprietăţile:
1. F este derivabilă;
2.
0
(0) [ ] | [ ] [ ] ( ), F J u J u J u F
ε ε ε
ε ε
·
· · ≤ · ∀ %
. Rezultă că 0 ε · este un punct de minim
pentru funcţia F. Conform teoremei lui Fermat rezultă că
(0) 0 F′ ·
(3.1.41).
Derivăm funcţia
( ) F ε
:
0
0
0
( ) ( ) ( ) ( ) ( )
f
T
T
T T
t
f
t
f
L L M M
F h t k t dt h t h t
x u x x
ε
1 ¸ _
¸ _ ∂ ∂ ∂ ∂ ¸ _ ¸ _
′ · ⋅ + ⋅ + ⋅ + ⋅
1

∂ ∂ ∂ ∂
¸ , ¸ ,
1 ¸ ,
¸ , ¸ ]

,
unde derivatele parţiale sunt calculate pentru
( ( ) ( ), ( ) ( )) x t h t u t k t ε ε + ⋅ + ⋅ % %
.
Conform relaţiei (3.1.41) rezultă că:
0
0
0
( ) ( ) ( ) ( ) 0
f
T
T
T T
t
f
t
f
L L M M
h t k t dt h t h t
x u x x
1 ¸ _
¸ _ ∂ ∂ ∂ ∂ ¸ _ ¸ _
⋅ + ⋅ + ⋅ + ⋅ ·
1

∂ ∂ ∂ ∂
¸ , ¸ ,
1 ¸ ,
¸ , ¸ ]

. (3.1.42)
Definim Hamiltonianul acestei probleme:
( , ( ), ( ), ( )) ( , , ) ( ) ( , , )
T
H t x t u t p t L t x u p t f t x u · + ⋅ , unde vectorul p este de forma
1
[ ... ]
n
p p p ·
, iar p
1
…p
n
sunt multiplicatorii lui Lagrange.
Atunci ( , , )
T
L H p f t x u · − ⋅ .
Derivăm această ecuaţie după x şi după u pentru a afla
L
x


şi
L
u


.
Calculăm mai întâi:
15
1 1
1 1 1
1 1 1 1 1 1
1 1
1 1 1
( ... ) ... ...
( ) ... ... ... ... ... ...
( ... ) ... ...
n n
n n n
T
n n
n n n
n n n n n
f f f f
p f p f p p
x x x x x p
p f
x
f f p f f
p f p f p p
x x x x x
∂ ∂ ∂ ∂ ∂ 1 1 1
⋅ + + ⋅ ⋅ + + ⋅
1 1 1
∂ ∂ ∂ ∂ ∂
1 1 1

⋅ · · · ⋅ 1 1 1

1 1 1
∂ ∂ ∂ ∂ ∂
1 1 1
⋅ + + ⋅ ⋅ + + ⋅
1 1 1 ∂ ∂ ∂ ∂ ∂
¸ ] ¸ ] ¸ ]
n
1
1
1
1
¸ ]
Rezultă că:
1
( ) ...
T
T
n
p
f
p f
x x
p
1
∂ ∂ ¸ _ 1
⋅ · ⋅

1
∂ ∂
¸ ,
1
¸ ]
.
Analog obţinem:
1
( ) ...
T
T
n
p
f
p f
u u
p
1
∂ ∂ ¸ _ 1
⋅ · ⋅

1
∂ ∂
¸ ,
1
¸ ]
.
Astfel am obţinut următoarele formule pentru
L
x


si
L
u


:
1
1
...
( )
( )
...
T
T
n
T
T
n
p
L H f
L H
x x x
p f
p
x x x
L H p
p f
L H f
u u u
u u u
p
¹ 1
∂ ∂ ∂ ¸ _ ¹ 1
· − ⋅

∂ ∂ ∂ ¹ ¹ 1
∂ ∂ ∂
¸ ,
· − ⋅
¹ ¹ 1
¹ ¹ ¸ ] ∂ ∂ ∂

' '
∂ ∂ ∂
1
¹ ¹
· − ⋅
∂ ∂ ∂ ¸ _
1
¹ ¹ ∂ ∂ ∂ ¹
· − ⋅

1
¹∂ ∂ ∂
¸ ,
1
¹
¸ ] ¹
.
Ecuaţia (3.1.42) devine:
0 0
0
0
( ) ( ) ( ) ( ) ( )
( ) ( ) 0
f f
T T
t t
T
t t
T
T
f
f
H H f f
h t k t dt p t h t k t dt
x u x u
M M
h t h t
x x
1
∂ ∂ ∂ ∂ ¸ _ ¸ _ ¸ _
⋅ + ⋅ − ⋅ ⋅ + ⋅ +
1

∂ ∂ ∂ ∂
¸ , ¸ , ¸ ,
1
¸ ]
¸ _
¸ _ ∂ ∂
+ ⋅ + ⋅ ·



∂ ∂
¸ ,
¸ ,
∫ ∫
(3.1.43)
Pentru a calcula integrala
0
( ) ( ) ( )
f
t
T
t
f f
I p t h t k t dt
x u
∂ ∂ ¸ _
· ⋅ ⋅ + ⋅

∂ ∂
¸ ,

notăm
( ) h t dx ·
şi
( ) k t du ·
. Înlocuim în integrala I şi obţinem:
( ) ( )
f f f f
h t k t dx du df
x u x u
∂ ∂ ∂ ∂
+ · + ·
∂ ∂ ∂ ∂
16
Conform ecuaţiei (1.1)
f x · &
. Astfel
df dx · &
. Cum ( ) ( ) dx dx h t ′ · ·
&
& obţinem că:
( ) ( ) ( )
f f
h t k t h t
x u
∂ ∂
+ ·
∂ ∂
&
.
Înlocuim în integrala I:
0
( ) ( )
f
t
T
t
I p t h t dt · ⋅

&
. Integrăm prin părţi şi obţinem
0
0
( ) ( ) | ( ) ( )
f
f
t
t
T T
t
t
I p t h t p t h t dt · ⋅ − ⋅

&
.
Înlocuind în ecuaţia (3.1.43) cele obţinute mai sus aceasta devine:
0 0
0 0
0
( ) ( ) ( ) ( ) ( ) ( ) ( ) 0, ,
f f
T
T
T T
t t
f f
t t
f
H H M M
p t h t dt k t dt p t h t p t h t h k
x u x x
¸ _
¸ _ ∂ ∂ ∂ ∂ ¸ _ ¸ _
+ + + + + − · ∀



∂ ∂ ∂ ∂
¸ , ¸ ,
¸ ,
¸ ,
∫ ∫
&
Ţinând cont de rezultatele obţinute mai sus enunţăm teorema de optimalitate:
Dacă
( , ) x u %%
este o pereche optimală a sistemului dat prin ecuaţia de stare
( ( ), ( ), ) x f x t u t t · &
cu funcţională de cost
2
1 1 2 2
1
( ) = ( , ( ), ( )) ( , ( ), , ( ))
t
t
J u L t x t u t dt M t x t t x t +


atunci există multiplicatorii Lagrange
1 2
, , p p K
astfel încât
( , ) x u %%
verifică următoarele
condiţii:
= ( , , , ), (= ( , , ))
( )
= ( , , , )
H
x t x u p f t x u
p
sistemul canonic
H
p t x u p
x
∂ ¹
¹
∂ ¹
;

¹

¹
∂ ¹
&
% %% %%
& %%

( , , , ) = 0 ( )
H
t x u p ecuatia comenzii optimale
x


%%

1 1 2 2 1 2
( ) ( ) ( ) ( ) = 0
T T
M M
p t h t p t h t
x x
∂ ∂ ¸ _ ¸ _
+ + −

∂ ∂
¸ , ¸ ,

( ) conditia de transversalitate
În cele ce urmează considerăm un caz particular de problemă de optimizare, respectiv
problema liniar patratică. Astfel:
Considerăm un sistem liniar Σ :
= ( ) ( ) ( ) ( ), x A t x t B t u t + &
(3.1.44)
cu o funcţională de cost patratică
17
0
1 1
[ ] = ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )
2 2
t
f T T T
f f
t
J u x t Q t x t u t R t u t dt x t Mx t 1 + +
¸ ] ∫
(3.1.45)
unde
0
= [ , ], ( , ), ( , )
n n n m
f
I t t A C I B C I
× ×
∈ ∈ R R
si ( , )
n n
M C I
×
∈ R este o matrice nenegativ
definităţ simetricăţ reală ( )
= , 0
T
M M M ≥
, ( , ), ( , )
n n m m
Q C I R C I
× ×
∈ ∈ R R ,
( ) Q t
este o matrice
simetrică nenegativ definită şi
( ) R t
este o matrice simetrică pozitiv definită
( )
0
( ) > 0, [ , ]
f
R t t t t ∀ ∈
.
Aplicăm teorema de optimalitate:
1. Scriem Hamiltonianul
1
( , , , ) = ( )
2
T T T
H t x u p x Qx u Ru p Ax Bu 1 + + +
¸ ]
(3.1.46)

2. Scriem sistemul canonic
( )
}
=
= =
1 1
= = ( ) ( ) =
2 2
T
Q Q
T
T T T
H
x Ax Bu
p
H
p Q t x x Q t A p Qx A p
x

+

∂ ¸ _
− − + + − +


¸ ,
&
&
(3.1.47)

3. Determinăm comanda optimală
= ( ) = 0
T
H
R t u B p
u

+

(3.1.48)
de aici
1
=
T
u R B p

− % (3.1.49)
(
1
R

există din faptul că R>0).
Verificăm dacă u%realizează minimum: Hessiana este
2
2
= ( ) > 0
H
R t
u


, deci u%realizează
minimul problemei.
4. Găsim traiectoria optimă, introducând comanda optimală (3.1.49) u%în (3.1.47)
Obţinem sistemul:
1
= ( ) ( ) ( ) ( )
T
x A t x B t R t B t p

− & (3.1.50)
18
= ( ) ( )
T
p Q t x A t p − − & (3.1.51)
sau
=
x x
H
p p
1 1
1 1
¸ ] ¸ ]
&
&
unde matricea Hamilton
H
este de forma
1
( )
= .
( )
T
T
A BR t B
H
Q t A

1 −
1
− −
¸ ]
(3.1.52)

5. Scriem condiţia de transversalitate (cu starea iniţială fixată şi cu starea finală liberă)
0 0
( ) = x t x
( ) = = ( ) .
f f
f
M
p t Mx t
x


(3.1.53)

Rezolvăm sistemul
1
= ( ) ( ) ( ) ( )
T
x A t x B t R t B t p

− &
= ( ) ( ) .
T
p Q t x A t p − − & (3.1.54)
pentru a obţine perechea
, x p %%
.
O metodă de a rezolva acest sistem este cea în care ne folosi de ecuaţia matricială Riccati.
Astfel căutăm o matrice P(t) astfel încât vectorul p să fie de forma
( ) ( ) ( ) p t P t x t ·
cu condiţia
finală
( )
f
P t M ·
, pentru a obţine comanda optimală
1 T
u R B Px

· − % .
În acest caz formula (3.1.50) devine
( )
1 T
x A BR B P x

· − &
(3.1.55)
şi vom avea

T
p Px Px Qx A Px · + · − −
&
& & (3.1.56)
De aici - prin înlocuirea lui x&- obţinem
( )
1
0;
T T
P PA A P Q PBR B P x x

+ + + − · ∀
&
(3.1.57)
Rezultă că P trebuie să satisfacă ecuaţia Riccati (RDE) de forma
19

1
0
T T
P PA A P Q PBR B P

+ + + − ·
&
(3.1.58)
cu condiţia finală

( )
f
P t M ·
(3.1.59)
Astfel am demostrat că dacă
1 T
u R B Px

· − % este comanda optimală atunci matricea P(t)
este soluţia ecuaţiei Riccati (3.1.58) cu condiţia finală (3.1.59).
Acum facem demostratia în sens invers. Presupunem că P(t) este soluţie a ecuaţiei
(3.1.58) cu condiţia finală (3.1.59). Arătăm că
1 T
u R B Px

· − % realizează minimul funcţionalei.
Calculăm în două moduri integrala ( )
0
( ) ( ) ( )
f
t
T
t
d
x t P t x t dt
dt

.
Metoda 1:
( ) ( )
{
0
0
0 0 0
( ) ( ) ( ) ( ) ( ) ( ) | ( ) ( ) ( ) ( ) ( ) ( )
f
f
t
t
T T T T
t f f f
t
M
d
x t P t x t dt x t P t x t x t P t x t x t P t x t
dt
· · −

(3.1.60)
Metoda 2
( ) ( )
0 0
0
1
( ) ( ) ( )
f f
T T
f
t t
T T T T
t t
x x Px
x t
T T T T T T T T T T T
t
d
x t P t x t dt x Px x Px x Px dt
dt
x A u B Px x A Px x APx x Qx x PBR B Px x P Ax Bu

· + + ·
1 ¸ _ ¸ _
¸ _
1
· + + − − − + + +
1
¸ ,
1
¸ , ¸ , ¸ ]
∫ ∫

& &
&
&
& &
6 447 4 48 6 4 4 4 4 4 4 447 4 4 4 4 4 4 4 48
647 48

(3.1.61)
După ce facem toate reducerile posibile obţinem
( ) ( )
0 0
1
( ) ( ) ( )
f f
t t
T T T T T T T
t t
d
x t P t x t dt u B Px x PBu x Qx x PBR B Px dt
dt

· + − +
∫ ∫
(3.1.62)
Înmulţim cu ½ ecuaţiile (3.1.60) şi (3.1.62) şi le egalăm.
Astfel funcţionala de cost (3.1.45) se rescrie:
20

( )
( ) ( )
0
0
0
1
0 0 0
1 1
0 0 0
1 1
[ ] = ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )
2 2
1 1
( ) ( ) ( )
2 2
1 1
( ) ( ) ( )
2 2
f
f
t
f T T T
f f
t
t
T T T T T T T
t
t
T
T T T
t
J u x t Q t x t u t R t u t dt x t Mx t
x t P t x t u B Px x PBu x PBR B Px u Ru dt
x t P t x t u R B Px R u R B Px dt

− −
1 + + ·
¸ ]
· + + + + ·
· + + +



(3.1.63)
Deoarece 0 R > rezultă că integrantul este minim când este 0. Acest lucru se obţine
pentru
1
0
T
u R B Px

+ · . Astfel comanda optimală este de forma
1 T
u R B Px

· − % .
Am demostrat astfel urmatoarea teoremă cunoscută şi sub numele de sinteza Kalman-
Letov :
Problema liniar patratică (3.1.44)-(3.1.45) are soluţia optimală unică
1 T
u R B Px

· − % ,
unde matricea reală simetrică P este soluţia ecuaţiei diferenţiale Riccati cu condiţia finală
( )
f
P t M ·
.
În cazul în care timpul final t
f
tinde spre infinit ecuaţia matricială Riccati devine:
1
0
T T
PA A P Q PBR B P

+ + − ·
În cele ce urmează voi prezenta soluţtia ecuaţiei matriciale Riccati.
Fie
0
( , )
f
t t Φ
matricea fundamentală a sistemului
1
= ( ) ( ) ( ) ( )
T
x A t x B t R t B t p

− &
= ( ) ( ) .
T
p Q t x A t p − − &
cu condiţia finală
( )
f
P t M ·
Soluţia ecuaţiei diferenţiale Riccati
1
0
T T
P PA A P Q PBR B P

+ + + − ·
&
este

1
0
( ) ( , ) ( , )
f
P t t t t t

· Ψ Φ
(3.1.64)
Demonstratie:
Φ şi Ψ verifică ecuaţiile
21

1
( , ) ( ) ( , ) ( ) ( ) ( , ), ( , )
( , ) ( ) ( , ) ( ) ( , ), ( , )
T
f f f f f
T
f f f f f
t t A t t t B t R B t t t t t I
t t Q t t t A t t t t t M

Φ · Φ − Ψ Φ ·
Ψ · − Φ − Ψ Ψ ·
&
&
(3.1.65)
Prin derivarea egalităţii
( , ) ( ) ( , )
f f
t t P t t t Ψ · Φ
(3.1.66) obţinem

( , ) ( ) ( , ) ( ) ( , )
f f f
t t P t t t P t t t Ψ · Φ + Φ
& & &
(3.1.67)
Ţinând cont de ecuaţiile (3.1.65) şi (3.1.66), ecuaţia (3.1.67) devine:
1
( , ) ( , )
1
( ) ( , ) ( ) ( , ) ( ) ( , ) ( )( ( ) ( , ) ( ) ( ) ( , ))
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( , )
f f
T T
f f f f f
t t t t
T T
f
P t t t Q t t t A t t t P t A t t t B t R B t t t
Q t A P t P t A t P t B t R B t P t t t

Φ Ψ

Φ · − Φ − Ψ − Φ − Ψ ·
1 · − − − + Φ
¸ ]
& &
&
1 4 4 4 442 4 4 4 4 43 1 4 4 4 4 442 4 4 4 4 4 43
(3.1.68)
Dacă înmulţim la dreapta cu
1
0
( , ) ( , )
f
t t t t

Φ · Φ
, vom obţine
1
0
T T
P PA A P Q PBR B P

+ + + − ·
&
. De aici unica soluţie a ecuaţiei matriciale Riccati este
1
0
( ) ( , ) ( , )
f
P t t t t t

· Ψ Φ
.
Demonstraţia fiind încheiată trecem la următorul pas.
Împărţim ecuaţia fundamentală
( , )
f
U t t
corespunzătoare matricei Hamilton
1
( )
=
( )
T
T
A BR t B
H
Q t A

1 −
1
− −
¸ ]
astfel

11 12
21 22
( , ) ( , )
( , ) ( , )
f f
f f
U t t U t t
U t t U t t
1
1
¸ ]
(3.1.69)
Astfel soluţia problemei Cauchy

( , ) ( , )
( )
( , ) ( , )
f f
f f
t t t t
H t
t t t t
Φ 1 Φ 1
·
1 1
Ψ Ψ
¸ ] ¸ ]
&
&
(3.1.70)

( , )
( , )
f f
f f
t t I
t t M
Φ 1 1
·
1 1
Ψ
¸ ] ¸ ]
(3.1.71)
este

( , )
( , )
( , )
f
f
f
t t I
U t t
t t M
Φ 1 1
·
1 1
Ψ
¸ ] ¸ ]
(3.1.72)
Soluţia (3.1.72) poate fi scrisă desfăsurat astfel:
22

11 12
21 22
( , ) ( , ) ( , )
( , ) ( , ) ( , )
f f f
f f f
t t U t t U t t M
t t U t t U t t M
Φ · +
Ψ · +
(3.1.73)
Ţinând cont de cele obţinute mai sus soluţia ecuaţiei matriciale Riccati poate fi calculată
astfel

1
21 22 11 12
( ) ( , ) ( , ) ( , ) ( , )
f f f f
P t U t t U t t M U t t U t t M

1 1 · + +
¸ ] ¸ ]
&
(3.1.74)
iar comanda optimală are forma

( ) ( ) u K t x t · − %
(3.1.75)
unde

1
( ) ( ) ( ) ( )
T
K t R t B t P t

· (3.1.76)
Pentru a calcula soluţia ecuaţiei Riccati putem folosi algoritmul Potter [4] care constă în
următoarele:
1. Se formează matricea

1 T
T
A BR B
M
Q A

1 −
·
1
− −
¸ ]
(3.1.77)
2. Se calculează valorile proprii matricei M. Se demonstrează că aceste valori proprii au
următoarea proprietate de simetrie: dacă λ este o valoare proprie, atunci
* *
, , λ λ λ − − (unde λ*
este conjugatul complex) sunt şi ele valori proprii.
Ca urmare, n valori proprii sunt situate în semiplanul stâng şi n în semiplanul drept.
Notăm cu
1 2
, ,...,
n
λ λ λ
valorile proprii din semiplanul stâng, astfel încât:
Re( ) 0, 1,
i
i n λ < · (3.1.78)
3. Se calculează vectorii prorpii
1 2
, ,...,
n
v v v
asociaţi valorilor proprii
1 2
, ,...,
n
λ λ λ
Aşadar:
, 1,
i i i
Mv v i n λ · · (3.1.79)
4. Se partiţinonează vectorii proprii
i
v
în doi vectori de dimensiune n, notaţi astfel:

i
i
i
s
v
n
1
·
1
¸ ]
(3.1.80)
5. Se formează matricea
23
[ ]
1 2
...
n
S s s s ·
(3.1.81)
6. Se formează matricea
[ ]
1 2
...
n
N n n n ·
(3.1.82)
7. Soluţia ecuaţiei algebrice Riccati, unde R este simetrică şi pozitiv definită, rezultă:

1
P NS

· (3.1.83)
Pentru a înţelege mai bine acest algoritm am luat următorul exemplu numeric:
0 1 0 4 0
; ; ; [1]
0 0 1 0 0
A B Q R
1 1 1
· · · ·
1 1 1
¸ ] ¸ ] ¸ ]
Formăm matricea M:
0 1 0 0
0 0 0 1
4 0 0 0
0 0 1 0
M
1
1

1
·
1 −
1

¸ ]
Ecuaţia caracteristică este
4
4 0 λ + · , astfel că obţinem următoarele valori proprii:
1
2
3
4
1
1
1
1
i
i
i
i
λ
λ
λ
λ
· − +
· − −
· −
· +
Cele două valori proprii din semiplanul stâng sunt
1 2
1 ; 1 i i λ λ · − + · − −
Calculăm vectorii proprii asociaţi acestor valori proprii:
( )
1
1
2
1 1
3
4
1 .
1 1 0 0 0
0 1 0 1 0
0
4 0 1 0 0
0 0 1 1 0
i
x i
x i
I M v
x i
x i
λ
λ
· − +
− + − 1 1 1
1 1 1
− +
1 1 1
− · ⇔ ·
1 1 1 − +
1 1 1
− +
¸ ] ¸ ] ¸ ]
Un minor caracteristic nenul de ordin maxim este
24
1 0 0
1 0 1
0 1 0
i
i
− 1
1
− +
1
1 − +
¸ ]
Atunci
1
x α ·
este necunoscută secundară iar sistemul devine:
2
2 4
3
( 1 ) 0
( 1 ) 0
4 ( 1 ) 0
i x
i x x
i x
α
α
− + − · ¹
¹
− + + ·
'
¹
+ − + ·
¹
Rezolvând sistemul obţinem vectorul:
}
1
2
1 1
4
( , ( 1 ) , , ( 1 ) ) (1, 1 , 2(1 ), 2 )
1
v i i v i i i
i
α
α α α α
·
· − + − − − + ⇔ · − + +
− +
( )
2
1
2
2 2
3
4
1 .
1 1 0 0 0
0 1 0 1 0
0
4 0 1 0 0
0 0 1 1 0
i
x i
x i
I M v
x i
x i
λ
λ
· − −
− − − 1 1 1
1 1 1
− −
1 1 1
− · ⇔ ·
1 1 1 − −
1 1 1
− −
¸ ] ¸ ] ¸ ]
Un minor caracteristic nenul de ordin maxim este:
1 0 0
1 0 1
0 1 0
i
i
− 1
1
− −
1
1 − −
¸ ]
Atunci
1
x α ·
este necunoscută secundară iar sistemul devine:
2
2 4
3
( 1 ) 0
( 1 ) 0
4 ( 1 ) 0
i x
i x x
i x
α
α
− − − · ¹
¹
− − + ·
'
¹
+ − − ·
¹
Rezolvând sistemul obţinem vectorul:
}
1
2
2 2
4
( , ( 1 ) , , ( 1 ) ) (1, 1 , 2( 1 ), 2 )
1
v i i v i i i
i
α
α α α α
·
· − − − − − − ⇔ · − − − − + −
− −
Formăm matricile S si N:
1 1 2(1 ) 2( 1 )
;
1 1 2 2
i i
S N
i i i i
+ − − + 1 1
· ·
1 1
− + − − −
¸ ] ¸ ]
25
Calculăm
1
1 1
1
1 1 2
i
S
i i

− − − 1
· −
1

¸ ]
Soluţia ecuaţiei Riccati este:
1
1 1 1 1 4 2
1 1 1 1 2 2
i i i
P NS
i

− + + − − − 1 1 1
· · ·
1 1 1
− −
¸ ] ¸ ] ¸ ]
Matricea de reglaj este
[ ] [ ] [ ]
1
4 2
1 0 1 2 2
2 2
T
K R B P

1
· · ·
1
¸ ]
În raport cu metodele iterative, acest algoritm prezintă avantajul unui calcul direct, cu
soluţie unică.
3.2 PROGRAMAREA DINAMICĂ
După cum este denumită, această metodă reprezintă o metodă ingenioasă de programare
pe calculator a unor probleme de optimizare, fiind introdusă de Bellman. Întrucât un calculator
numeric acceptă doar date discrete, este necesar ca, pentru aplicarea metodei, să se discretizeze
procesul, în caz că acesta reprezintă un proces continuu. Astfel discretizat, el devine un aşa-
numit proces secvenţial de decizie, în care, la momente discrete de timp k – numite şi etape -se
elaborează câte o decizie în sensul alegerii unei stări x
v
(valori discrete alcătuind mulţimea
stărilor posibile), conform cu utilitatea
v
I ∆
(numită şi increment de cost) asociată pasului v.
Numărul total de etape N este numit orizont. Numărul cardinal al mulţimii stărilor posibile este
notat cu r şi defineşte puterea de rezoluţie în procesul secvenţial de decizie.
În procesul continuu, trecerea de la starea iniţială x
0
la o stare finală x
f
se putea face
printr-un număr infinit de traiectorii (fig. 4 a). Prin optimizare se alegea numai acea traiectorie
care minimizează criteriul de performanţă.
În cadrul procesului de decizie secvenţială, la fiecare dintre paşii v=0,1,…,N-2 se
elaborează câte o decizie; o vom nota cu q
v
(la pasul N-1 nu mai avem posibilitatea de opţiune,
căci din starea în care ne aflăm trebuie sa trecem neapărat în starea finală impusă
N f
x x ≡
- fig.
4 b). Deciziile q
v
se pot aranja într-un vector de decizie care determină în mod unic traiectoria
urmată între starea iniţială şi cea finală.
26

0
1
2
...
N
q
q
q
q


1
1
1
·
1
1
¸ ]
(3.2.84)
Figura 4 Proces secvenţial de decizie
Echivalent criteriului de performanţă de tip integral (1.2), utilizat la sistemele continue, îl
constituie în cazul sistemelor discrete:

1 1
0 0
( , )
N N
v v v
v v
I I L x u t
− −
· ·
· ∆ · ∆
∑ ∑
(3.2.85)
cu:

f
t
t
N
∆ · (3.2.86)
unde x
v
şi u
v
sunt valorile medii ale lui x şi u în pasul respectiv. În acest caz funcţia J se numeşte
funcţie obiectiv. Traiectoria care optimizează funcţia obiectiv se numeşte strategie optimă.
O metodă “simplă” de a alege strategia optimă ar consta în calcularea funcţiei obiectiv J
de-a lungul tututror traiectoriilor posibile. Din punct de vedere al preciziei apare firească
alegerea unor valori r şi N cât mai mari. Efectuând pasul 1, avem r decizii posibile pentru un
proces unidimensional (o singură variabilă de stare). În pasul al doilea vor exista r
2
decizii
27
posibile. Întregul proces de decizie secvenţială va implica r
N-1
traiectorii posibile. Dacă adoptăm
valorile r=10 şi N=10 (ceea ce nu oferă o prea mare precizie), vom avea 10
9
traiectorii posibile.
Presupunând că avem un calculator care poate efectua calcularea a unui million de valori J pe
secundă, calculul valorilor J pentru toate traiectoriile posibile va dura cam 1000 secunde
(acceptabil). Dar dacă avem, în aceleaşi condiţii, un proces bidimensional numărul de traiectorii
posibile va fi
2 1 2( 1)
( )
N N
r r
− −
· , adică 10
18
şi vor necesita un timp de calcul al tuturor valorilor lui
J de ordinal a 10
12
secunde, adică aproximativ 32000 ani. Iar pentru un proces n dimensional,
unde rezultă

( 1) n N
c
n r

· (3.2.87)
traiectorii, nici numai poate fi vorba de găsirea unei traiectorii optime.
Avantajul esenţial al metodei programării dinamice este adus de “principiul
optimalităţii” şi “metoda scufundării”, care permit reducerea procesului de decizie în N paşi la
un proces secvenţial de N procese de decizie cu un singur pas.
Principiul optimalităţii spune că: o strategie care este optimă pe intervalul 0 1 N → − este
în mod necesar optimă si pe orice subinterval 1 v N → − cu 0 1 v N ≤ < − .
Metoda “scufundării” constă într-o procedură de descompunere a problemei de rezolvat
într-o familie de probleme de aceeşi natură, dar mai simple şi deci mai uşor de rezolvat în paşi
succesivi (prin iteraţii); soluţia obtinută pentru intreaga clasă de probleme oferă totodată soluţia
problemei originale.
La fiecare pas trebuie efectuate comparaţii – în număr de r la primul şi la ultimul pas, iar
la paşii intermediari câte r
2
comparaţii (în cazul unui proces bidimensional). Aşadar, numărul
total de comparaţii va fi egal cu
2
2 ( 2) r N r + − . Dacă am fi avut de-a face cu un proces n-
dimensional, ar fi rezultat

' 2
2 ( 2)
n n
c
n r N r · + − (3.2.88)
comparaţii, adică un număr de ordinul
2 ( 1) n n N
Nr r

<< . Astfel, pentru n=2, r=10 şi N=10 trebuie
efectuate circa
4 5
10 10 10 × · operaţii, necesitând un timp de numai 0.1 secunde pentru calcul
(faţă de 32000 de ani). Această reducere este datorată aplicării principiului optimalităţii, care
elimină la fiecare pas deciziile ce nu pot candida în continuare pentru strategia optimă.
Dacă în rezolvarea prin metoda calculului variaţional a problemelor de optimizare
dinamică, existenţa restricţiilor îngreuna obţinerea soluţiei, în programarea dinamică aceste
restricţii sunt avantajoase căci reduc numărul soluţiilor premise în procesul de căutare a strategiei
optime.
28
Fie
0
( ) u t comanda optimă care, pentru condiţiile pe frontieră x
0
şi x
f
date, dă o valoare
minimă

0
min
J J

·
(3.2.89)
unde J este indicele de performanţă (1.2). Vom remarca că J
0
este unic, deşi u
0
şi x
0
pot să nu fie
unice; totuşi, în practică, u
0
şi x
0
sunt de obicei unice, iar atunci când nu e aşa, u
0
poate fi ales în
mod arbitrar dintre soluţiile disponibile, pe baza unor considerente legate de aplicaţia respectivă.
Să presupunem că
0
( ) u t a fost obţinută. Rezultă aşadar că J
0
nu depinde de u(t), ci doar de
x
0
, t
0
, x
f
şi t
f
, adică

0
0 0 0
0 0
( , , , ) [ ( ), ( ), ]
f
t
f f
t
J J x t x t L x t u t t dt · ≡

(3.2.90)
J
0
fiind valoarea minimă a lui J, avem

0
0
0 0
( )
( , , , ) min{ [ ( ), ( ), ] }
f
t
f f
u t
t
J x t x t L x t u t t dt ·

(3.2.91)
Aplicând “principiul scufundării”, relaţia (3.2.91) se mai poate scrie:

0
0 0
0
0 0
( )
( , , , ) min ( , , ) ( , , )
f
t
t t
f f
u t
t t t
J x t x t L x u t dt L x u t dt
+∆
+∆
1
· + 1
1
¸ ]
∫ ∫
(3.2.92)
Aplicarea principiului optimalităţii asupra ultimei porţiuni de traiectorie optimală (de la
0
t t + ∆
la t
f
) ne permite să scriem (3.2.92) sub forma:
0
0
0 0
0 0 0 0
( )
( , , , ) min ( , , ) [ ( ), , ,
t t
f f f f
u t
t
J x t x t L x u t dt J x t t t t x t
+∆
¹ ¹
¹ ¹
· + + ∆ + ∆
' ;
¹ ¹
¹ ¹

(3.2.93)
Dezvoltând integrala din (3.2.93) în serie Taylor în jurul lui t=t
0
, obţinem:

0
0
0 0 2
0 0 0
( , , ) [ ( ), ( ), ] [( ) ]
t t
t
L x u t dt L x t u t t t R t
+∆
· ∆ + ∆

(3.2.94)
unde
2
[( ) ] R t ∆ reprezintă termenii conţinând pe ( )
n
t ∆ cu 2 n ≥ . Substituind (3.2.94) in (3.2.93)
obţinem:
{ }
0 0 0 2 0
0 0 0 0 0 0 0
( )
( , , , ) min [ ( ), ( ), ] [( ) ] [ ( ), , , ]
f f f f
u t
J x t x t L x t u t t t R t J x t t t t x t · ∆ + ∆ + + ∆ + ∆
(3.2.95)
Întrucât procesul de minimizare nu depinde de Δt, iar J
0
nu depinde de u, relaţia (3.2.95) mai
poate fi scrisă sub forma:
29
0 0
0 0 0 0 0 0
0 0 0
( )
[ ( ), , , ] [ ( ), , , ]
min [ ( ), ( ), ] ( ) 0
f f f f
u t
J x t t t t x t J x t t x t
t L x t u t t R t
t
¹ ¹ + ∆ + ∆ −
¹ ¹
∆ ⋅ + ∆ + ·
' ;

¹ ¹
¹ ¹

(3.2.96)
unde:

2
[( ) ]
( )
R t
R t
t

∆ ·

(3.2.97)
Întrucât
0 t ∆ ≠ (3.2.98)
rezultă că expresia minimizată din (3.2.90) trebuie să fie egală cu 0. Trecând la limită această
expresie pentru 0 t ∆ → şi presupunând că funcţia L este astfel derivabilă încât

0
lim ( ) 0
t
R t
∆ →
∆ ·
(3.2.99)
rezultă

0 0 0
0 0 0 0 0
( )
min [ ( ), ( ), ] [ ( ), , , ] 0
f f
u t
d
L x t u t t J x t t x t
dt
¹ ¹
+ ·
' ;
¹ ¹
(3.2.100)
care este cunoscută sub numele de “forma compactă a ecuaţiei lui Bellman” şi care reprezintă o
condiţie necesară pentru existenţa unei soluţii optimale.
Dacă t
f
şi x
f
sunt constante, atunci derivata totală a lui J
0
în raport cu timpul se poate
exprima sub forma

0 0 0
1
n
i
i
i
dx dJ J J
dt t x dt
·
∂ ∂
· +
∂ ∂

(3.2.101)
Substituind acest rezultat în (3.2.100), obţinem:

0 0
( )
1
min ( , , ) 0
n
i
u t
i
i
dx J J
L x u t
t x dt
·
1 ∂ ∂
+ + ·
1
∂ ∂
¸ ]

(3.2.102)
unde am ţinut cont că t
0
este un moment arbitrar şi că, deci, relaţia (3.2.102) trebuie să fie
satisfăcută pentru orice
0
[ , ]
f
t t t ∈
.
Scriind ecuaţia de stare (1.1) pe componente:
( , , ), ( 1, )
i i
x f x u t i n · · & (3.2.103)
şi introducând-o în (3.2.102) rezultă:
30

0 0
1
0
n
i
i
i
J J
L f
t x
·
∂ ∂
+ + ·
∂ ∂

(3.2.104)
care reprezintă o ecuaţie de tip Hamilton-Jacobi.
Dacă u nu este supus restricţiilor, atunci este necesar, în scopul obţinerii unui minim, ca
0 0
1
[ ( , , ) ] 0, ( 1, )
n
i
i
j i
J J
L x u t f j m
u t x
·
∂ ∂ ∂
+ + · ·
∂ ∂ ∂
∑ (3.2.105)
sau, ţinând cont că J
0
este independent de u:
0
1
0, ( 1, )
n
i
i
j i j
f L J
j m
u x u
·
∂ ∂ ∂
+ · ·
∂ ∂ ∂
∑ (3.2.106)
ecuaţie ce trebuie rezolvată simultan cu (3.2.102).
Pentru procese liniare descries de ecuaţii de stare de tip
( ) ( ) ( ) x t Ax t Bu t · + &
, avem

i
ij
j
f
b
u

·

(3.2.107)
(unde b
ij
este elementul din rândul i şi coloana j a matricei B), ceea ce face ca ecuaţiile (3.2.106)
să se simplifice întrucâtva.
Observăm însă că ecuaţiile (3.2.104) şi (3.2.106) sunt ecuaţii neliniare cu derivate
parţiale, rezolvarea lor reclamând utilizarea calculatoarelor numerice.
3.3 PRINCIPIUL MAXIMULUI
Există o clasă largă de probleme de tip variaţional în optimizarea sistemelor dinamice,
probleme care nu pot fi soluţionate prin metoda calculului variaţional – ecuaţii de tip Euler-
Lagrange.
Ele ar putea fi abordate sub forma discretă a programării dinamice, dar, această metodă
reprezintă în fond o tehnică numerică care furnizează o informaţie săracă asupra naturii fizice a
problemei de optimizare în ansamblu. Iar aplicarea variantei continue a principiului optimalităţii
se izbeşte de dificultăţi de calcul de îndată ce sistemul nu este liniar, criteriul nu este de tip
cuadratic, iar comanda suferă restricţii de tip inegalitate.
Principiul optimului, elaborat de Pontriaghin, Boltianskii şi Gamkrelidze, este similar
calculului variaţional şi este strâns legat de programarea dinamică – fiind dealtfel posibilă
obţinerea principiului optimalităţii din principiul maximului printr-o schimbare de variabile.
Principiul maximului se bazează pe următoarele elemente:
31
1. Sistemul este descris de ecuaţia de stare (3.2.103) – sau forma compactă (1.1).
2. Timpul iniţial t
0
şi cel final t
f
sunt date.
3. Unele componente ale vectorului de stare au valori date la t
0
şi t
f
.
4. Indicele de performanţă este de forma funcţionalei
1
( )
n
i i f
i
J x t α
·
·

(3.3.108)
5. Comanda u(t) este supusă restricţiilor de tip inegalitate.
6. Se caută strategia optimă (comanda optimală)
0
( ) u t care va transfera sistemul din
starea initială
0
( ) x t
în starea finală
( )
f
x t
de asemenea manieră încât să optimizeze
criteriul J dat de (3.3.108), respectând restricţiile impuse comenzii.
Coeficienţii de pondere α
i
din (3.3.108) pot fi priviţi ca fiind componentele unui vector de
ponderare – numit şi vector obiectiv:

1
...
n
α
α
α

1
1
·
1
1
¸ ]
(3.3.109)
astfel încât criteriul (3.3.108) se poate exprima sub forma unui produs scalar

, ( ) ( )
T
f f
J x t x t α α

·< > ·
(3.3.110)
(Fară a impieta asupra generalităţii, putem considera că α este normalizat, adică
2 2
1
| | ... 1
n
α α α · + + · ).
Expresia (3.3.110) are semnificaţia geometrică a proiecţiei vectorului
( )
f
x t
pe vectorul α;
aşadar optimizarea criteriului J (3.3.108) se traduce ca încercarea de a optimiza proiecţia lui
( )
f
x t
pe direcţia vectorului obiectiv.
Vom considera mai întâi cazul:
a) t
f
este fixat, dar
( )
f
x t
este liber.
Vom presupune că strategia optimă
0
( ) u t a fost găsită şi că traiectoria optimală
0
( ) x t
corespunzătoare se cunoaşte. Vom studia modificarea dJ a criteriului de performanţă cauzată de
o variaţie
( ) u t ∆
de la strategia optimă. O astfel de situaţie, pentru un caz bidimensional, este
ilustrată în figura 5.
32
Figura 5. Abaterea de la strategia optimă şi abaterea rezultantă de la traiectoria optimală
Întrucât comanda optimă este de tip “bang-bang”, adică având valori extreme între care
se face comutaţia (teoretic) instantanee (în fig. 5 b se arată o astfel de comutaţie), este firesc a
presupune că mica abatere de la strategia optimă, adică
0
( ) ( ) u t u t + ∆ va reprezenta doar o
modificare redusă a momentului comutaţiei valorii comenzii. Aşadar, variaţia
( ) u t ∆
va consta
din unul sau mai multe impulsuri de lăţime finite dar foarte mică (un astfel de impuls este ilustrat
în fig. 5 c). Se poate formula diferenţa dintre principiul maximului şi metoda calculului
variaţional astfel: dacă vectorul m-dimensional u(t) este supus restricţiei

( ) { } u t U ∈
(3.3.111)
unde {U} este domeniul comenzilor admisibile în spaţiul m-dimensional, atunci metoda
calculului variaţional caută soluţia optimă
0
( ) u t în interiorul lui {U}, în timp ce principiul
maximului caută soluţia optimă pe frontiera lui {U}.
Introducem conceptul de vector adjunct de stare p(t) ale cărui componente sunt definite
astfel:

1
( 1, )
n
i
i j
j
i
f
p p i n
x

·

·− ·

∑ (3.3.112)
1
( ) , ( 1, )
i f i
p t i n α · − · (3.3.112)
2
33
În cazul sistemelor liniare, având ecuaţia de stare
( ) ( ) ( ) x t Ax t Bu t · + &
, relaţia (3.3.112)
1
ia forma:

T
p A p · − & (3.3.113)
care defineşte aşa-numitul sistem adjunct al sistemului cu ecuaţia de stare de tipul
( ) ( ) ( ) x t Ax t Bu t · + &
.
Vectorul de stare x şi vectorul adjunct de stare p introduce un număr total de 2n variabile,
care trebuie să satisfacă ecuaţiile diferenţiale ordinare de ordinul unu (3.3.103) şi (3.3.112)
1
; în
plus, ele trebuie să satisfacă cele 2n condiţii terminale specificate, în maniera “sparte în două
puncte”:
0 0
( ) x t x ≡
şi
( )
f
p t α · −
.
Analizăm variaţia componentei x
i
a vectorului x cauzată de variaţia mai sus menţionată
Δu a lui u. Conform cu (3.3.103) avem:

0 0 0 0
( , ) ( , )
i i i
x f x x u u f x u ∆ · + ∆ + ∆ − &
(3.3.113)
Multiplicând ambii membri ai relaţiei (3.3.113) cu p
i
, însumând relaţia astfel obţinută
pentru toate cele n componente ale lui x şi, în final, integrând între t
0
şi t
f
se obţine:

0 0
0 0 0 0
1 1
[ ( , ) ( , )]
f f
t t
n n
i i i i i
i i
t t
p x dt p f x x u u f x u dt
· ·
¸ _
∆ · + ∆ + ∆ −

¸ ,
∑ ∑
∫ ∫
&
(3.3.114)
Membrul stâng al relaţiei (3.3.114) poate fi integrat prin părţi:

0
0 0
1 1 1
|
f f
f
t t
n n n
t
i i i i t i i
i i i
t t
p x dt p x p x dt
· · ·
¸ _ ¸ _
∆ · ∆ − ∆

¸ , ¸ ,
∑ ∑ ∑
∫ ∫
& &
(3.3.115)
Întrucât, fireşte, avem:

0
( ) 0
i
x t ∆ ·
(3.3.116)
şi ţinând cont de (3.3.112)
2
, vom avea:

0
1 1
| ( )
f
n n
t
i i t i i f
i i
p x x t α
· ·
∆ · − ∆
∑ ∑
(3.3.117)
Dar memebrul drept din (3.3.117) reprezintă variaţia – cu semn schimbat – a criteriului J,
adică:

1
( )
n
i i f
i
x t dJ α
·
− ∆ · −

(3.3.118)
Din (3.3.112)
1
, (3.3.114), (3.3.115), (3.3.117) şi (3.3.118) rezultă:
34
0 0
0 0 0 0
1 1 1
[ ( , ) ( , )]
f f
t t
n n n
i
i i i j i
i i j
i t t
f
dJ p f x x u u f x u dt p x dt
x
· · ·
¸ _ ∂ ¹ ¹
· − + ∆ + ∆ − + ∆
' ;

¹ ¹
¸ ,
∑ ∑∑
∫ ∫
(3.3.119)
Factorul
0 0 0 0
[ ( , ) ( , )]
i i
f x x u u f x u + ∆ + ∆ − reprezintă o diferenţă mică (de ordinul unu)
astfel că el poate fi dezvoltat în serie Taylor:
0 0
0 0 0 0 0 0 0 0
1
( , )
( , ) ( , ) ( , ) ( , )
n
i
i i i i j
j
j
f x u u
f x x u u f x u f x u u f x u x R
x
·
∂ + ∆
+ ∆ + ∆ − · + ∆ − + ∆ +


(3.3.120)
unde R este suma termenilor de ordin superior lui 1. Introducând (3.3.120) în (3.3.119) se obţine:
0 0
0 0 0 0 0 0 0 0
1 1 1
[ ( , ) ( , )] [ ( , ) ( , )]
f f
t t
n n n
i i i i i j j
i i j
j t t
dJ p f x u u f x u dt p f x u u f x u x dt
x
· · ·
¸ _
∂ ¹ ¹
· − + ∆ − − + ∆ − ∆
' ;


¹ ¹
¸ ,
∑ ∑∑
∫ ∫
(3.3.121)
Se consideră doar funcţiile f
i
care sunt liniare în raport cu x şi depind de u în mod aditiv,
adică cele pentru care (1.1) ia forma:

( ) x x u ϕ · ∆ + &
(3.3.122)
Pentru această clasă de funcţii vom avea:

( , ) ( , )
i i
j j
f x u u f x u
x x
∂ ∂
+ ∆ ·
∂ ∂
(3.3.123)
astfel că cea de-a doua integrală din (3.3.119) va fi nulă şi relaţia (3.3.119) se reduce la:

0
0 0 0 0
( , ) ( , )
f
t
t
dJ H x u u H x u dt 1 · − + ∆ −
¸ ] ∫
(3.3.124)
unde

1
, ,
n
i i
i
H p f p f p x

·
· · ⟨ ⟩ ≡ ⟨ ⟩

&
(3.3.125)
reprezintă aşa-numita funcţie de stare a lui Pontriaghin – denumire justificată prin aceea că H
depinde exclusiv de vectorul de stare x(t) – şi întâlnită uneori şi sub denumirea de “Hamiltonian”
(dată fiind similaritatea sa cu expresia hamiltonianului din mecanica clasică).
Relaţia (3.3.124) se interpretează astfel: Dacă se poate dovedi că o variaţie Δu arbitrară
face ca integrala din (3.3.124) să fie pozitivă (negativă), aceasta va implica faptul că dJ să fie
negativă (pozitivă) pentru aceste deviatii şi u
0
va corespunde atunci la un maxim (minim) al lui J.
35
Dar integrala din (3.3.124) va fi pozitivă (negativă) dacă integrandul va fi pozitiv
(negativ) pe întregul interval
0
[ , ]
f
t t t ∈
, adică dacă

max 0 0 0 0
min
0,
( , ) ( , )
0,
J J
H x u u H x u
J J
> · ¹
+ ∆ −
'
< ·
¹
(3.3.126)
sau

0 0 0
min max
0 0 0
max min
( , ) ,
( , ) ,
H H x u H J J
H H x u H J J


· · ·
· · ·
(3.3.127)
Aşadar, principiul maximului se formulează astfel:
O condiţie necesară şi suficientă pentru a avea un maxim (minim) al criteriului de
performanţă J – dat de (3.3.108) – este aceea ca: comanda optimă u
0
să minimizeze
(maximizeze) funcţia de stare H a lui Pontrianghin pe tot intervalul
0
[ , ]
f
t t t ∈
.
În expunerea metodelor de optimizare dinamică 3.1 şi 3.2 am întâlnit criterii de
performanţă de tip integral (forma 1.2). Principiul maximului este aplicabil şi în aceste cazuri
dacă introducem o variabilă de stare “suplimentară” definită astfel:

0
1
( ) ( , , )
f
t
n
t
x t L x u t dt

+
·

(3.3.128)
1
unde, evident:

1 0
( ) 0
n
x t
+
·
(3.3.128)
2
Atunci, criteriul (3.3.108) devine:

1
1
1
( ), ( 1)
n
i i f n
i
J x t α α
+
+
·
· ≡ −

(3.3.129)
şsi H ia forma:

1
1
n
i i n
i
H p f p L
+
·
· +

(3.3.130)
care reprezintă forma generalizată a funcţiei de stare a lui Pontriaghin.
O observaţie importantă este aceea că: din ecuaţia reprezentând condiţia necesară de
existentă a unui optim pentru indicele de performanţă J dat de (1.2) rezultă direct funcţia de stare
generalizată a lui Pontriaghin ca fiind
36

0
J
H
t

· −

(3.3.131)
dacă facem schimbarea de variabilă

0
i
i
J
p
x


·

(3.3.132)
(relaţie ce se mai scrie compact sub forma:

0
x
p J · ∇ (3.3.133)
unde
x

reprezintă gradientul în raport cu x).
Observăm, de asemenea, din (3.3.131) si (3.3.132), că

0 2 0
i i
i i i
d d J J H
p p
dt dt x t x x
¸ _ ∂ ∂ ∂
· · · · −

∂ ∂ ∂ ∂
¸ ,
&
(3.3.134)
iar din expresia (3.3.130) a lui H şi ţinând cont de (1.1), avem:
i
i
H
x
p

·

&
(3.3.135)
Relaţtiile (3.3.134) şi (3.3.135), care se mai pot scrie sub forma compactă

x
p H · −∇ &
(3.3.136)

p
x H · ∇ &
(3.3.137)
constituie ecuaţiile Hamilton-Pontriaghin. Soluţionarea lor, pentru condiţii la limită convenabile,
furnizează comanda optimă.
Dacă u nu este limitat (supus restricţiilor de tip inegalitate), atunci condiţia necesară de
extremizare a lui H prin u este:
0, ( 1, )
H
i n
u

· ·

(3.3.138)
Dacă u este însă supus unei restricţii, exprimabilă sub forma (3.3.111), atunci condiţia
necesară pentru extremizarea lui H se exprimă prin relaţia generală

0
{ }
max ( , , , )
u U
H H x u p t

·
sau
0
{ }
min ( , , , )
u U
H H x u p t

·
(3.3.139)
unde

0 0
( , , , ) H H x u p t

·
(3.3.140)
37
b) Dacă x(t
f
) este parţial impus, adică doar q componente
q<n (3.3.141)
ale vectorului de stare sunt supuse unor restricţii de tip egalitate la t
f
– cu t
f
fixat – adică
( ) , ( 1, )
v f vf
x t x v q · · (3.3.142)
Celelalte n-q componente sunt “libere” şi atunci criteriul (3.3.108) va suferi o variaţie

1
( )
n
i i f
i q
dJ x t α
· +
· ∆
∑ (3.3.143)
dată doar de variabilele de stare care nu sunt supuse restricţiilor (se spune că “am pierdut q
grade de libertate”). Cu acestea, cele expuse la punctual a) rămân valabile, cu condiţia ca cele q
variabile de stare adjuncte p
v
(t) ce corespund variabilelor de stare x
v
(t) supuse restricţiilor să nu
mai fie obligate a avea valorile finale α
v
, ci să fie lăsate libere (compensăm astfel cele q grade de
libertate pierdute prin ridicarea a q restricţii).
4 Aplicaţii
4.1 Aplicaţie optimizare prin metode variaţionale utilizând teorema de optimalitate
[3]
Ne punem problema să găsim traiectoria ce trebuie urmată de un satelit pentru a ajunge dintr-o
stare iniţială dată într-o stare finală dată cu consum minim de energie. Adică vom afla comanda
optimală u
opt
(t) ce minimizează indicele de performanţă
0
1
( ( )) ( ) ( )
2
f
t
T
t
J u t u t u t dt ·

.
Legea de mişcare a satelitului este dată prin sistem de ecuaţii diferenţiale de oridin 2 de mai jos:
2
1 2
2
( ) ( ) ( ) ( )
( )
( ) ( ) 1
( ) 2 ( )
( ) ( )
k
r t r t t u t
r t
t r t
t u t
r t r t
θ
θ
θ
¹
· − +
¹
¹
'
¹
· − +
¹
¹
&
&&
&
&
&&
unde u
1
este forţa ce acţionează asupra satelitului pe direcţie radială, iar

u
2
este foarţa ce
acţionează pe direcţie tangenţială.
Sistemul dinamic este neliniar şi poate fi tratat ca atare, dar poate fi liniarizat şi studiat ca
sistem liniar, dupã cum vom vedea în cele ce urmeazã.
38
Observãm cã pentru
10 20
( ) ( ) 0 u t u t · ·
sistemul de mai sus admite soluţia
0 0 0
( ) , ( ) r t r t t θ ω · ·
, unde r
0
şi ω sunt constante, iar
3 2
0
r k ω · .
Dacã alegem r
0
= 1 deducem:
0
( ) 1 r t ·
,
0
( ) 0 r t · &
,
0
( ) t t θ ω ·
şi
0
( ) t θ ω ·
&
. Alegând stãrile
x
1
, x
2
, x
3
şi x
4
ca fiind:
1 0
( ) ( ) ( ) x t r t r t · −
,
2 0
( ) ( ) ( ) x t r t r t · − & &
,
3 0
( ) ( ) ( ) x t t t θ θ · −
şi
4 0
( ) ( ) ( ) x t t t θ θ · −
& &
; mai precis
1
( ) ( ) 1 x t r t · −
,
2
( ) ( ) x t r t · &
,
3
( ) ( ) x t t t θ ω · −
şi
4
( ) ( ) x t t θ ω · −
&

partea neliniarã a sistemului devine:
2
2
2 1 4 1 2 2
1
4 2
4 2 4
1 1
( ) ( ) ( 1)( ) ( , )
( 1)
( ) 1
( ) ( ) 2 ( , )
1 1
x t r t x x u f x u
x
x x
x t t u f x u
x x
ω
ω
ω
θ
· · + + − + ·
+
+
· · − + ·
+ +
& &&
&&
&
iar partea liniarã:
1 2
3 4
x x
x x
·
·
&
&
cu soluţia iniţialã x
10
= x
20
= x
30
= x
40
= 0 .
Prin urmare
2
2 2 2 2 2 2 2
4 1 4 3
1 1 2 3 4 1 2
4 2 4 2 4 4 4 4 2 4 4
2 2
1 1 1 2 1 3 4 1 1 2 1
2
( ) , 0, 0, 2( 1)( ), 1, 0
( 1)
2 ( ) 2( ) 2 1
, , 0, , 0,
( 1) ( 1) 1 1 1
f f f f f f
x x x
x x x x x u u
f x x u f x f f x f f
x x x x x x x x u u x
ω
ω ω
ω ω
∂ ∂ ∂ ∂ ∂ ∂
· + + · · · + + · ·
∂ + ∂ ∂ ∂ ∂ ∂
∂ + ∂ + ∂ ∂ ∂ ∂
· − · − · · − · ·
∂ + + ∂ + ∂ ∂ + ∂ ∂ +
Calculând coeficienţii de mai sus corespunzători soluţiei iniţiale obţinem ecuaţiile de
stare ale sistemului liniarizat:
1 1
2
2 2 1
3 3 2
4 4
( ) ( ) 0 1 0 0 0 0
( ) ( ) ( ) 3 0 0 2 1 0
( ) ( ) ( ) 0 0 0 1 0 0
( ) ( ) 0 2 0 0 0 1
x t x t
x t x t u t
x t x t u t
x t x t
ω ω
ω
¸ _ ¸ _ ¸ _ ¸ _

¸ _

· +


¸ ,


¸ , ¸ , ¸ , ¸ ,
&
&
&
&
Astfel am adus sistemul sub forma:
( ) ( ) ( ) x t Ax t Bu t · + &
unde:
39
1
2 1
3 2
4
2
( )
( ) ( )
( ) , ( )
( ) ( )
( )
0 1 0 0 0 0
3 0 0 2 1 0
,
0 0 0 1 0 0
0 2 0 0 0 1
x t
x t u t
x t u t
x t u t
x t
A B
ω ω
ω
¸ _

¸ _

· ·


¸ ,

¸ ,
¸ _ ¸ _


· ·



¸ , ¸ ,
Avand sistemul care descrie legea de mişcare a satelitului scris sub forma de mai sus
facem următoarele notaţii:
1. ( )
1 2 3 4
( ) ( ) ( ) ( ) ( )
T
p t p t p t p t p t ·
- vectorul multiplicatorilor lui Lagrange;
2.
1 1 2
2
2 2 1 4
3 3 4
4 4 2 2
( , )
( , ) 3 2 1
( , )
( , ) 2
f x u x x
f x u x x x u
f x u x x
f x u x x u
ω ω
ω
· ·
· · + +
· ·
· · − +
&
&
&
&
,
1
2
3
4
( ( ), ( ))
( ( ), ( ))
( )
( ( ), ( ))
( ( ), ( ))
f x t u t
f x t u t
f t
f x t u t
f x t u t
¸ _


·


¸ ,
3.
2 2
1 2
( ) ( ) ( ) ( )
T
L u t u t u t u t · · + - Lagrangeanul
Folosindu-ne de aceste notaţii scriem Hamiltonianul:
2 2
1 2 1 1 2 2 3 3 4 4
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )
T
H L p t f t H u t u t p t f t p t f t p t f t p t f t · + ⇔ · + + + + + .
Pentru a determina vectorul p(t) al multiplicatorilor lui Lagrange rezolvăm următorul
sistem de ecuaţii diferenţiale:
1
1
2
1 2
2
2 2 1 4
3
3
3
4 2 3
4
4
( )
( ) 3 ( )
( )
( ) ( ) 2 ( )
( ) 0
( )
( ) 2 ( ) ( )
( )
H
p t
x
p t p t H
p t
x p t p t p t
H p t
p t
x
p t p t p t
H
p t
x
ω
ω
ω
∂ ¹
· −
¹

¹
¹ · − ∂ ¹
· −
¹ ¹
∂ · − +
¹ ¹

' '
∂ ·
¹ ¹
· −
¹ ¹ ∂
· − −
¹
¹

¹
· −
¹

¹
&
&
&
&
&
&
&
&
având condiţiile iniţiale:
1 0 10 2 0 20 3 0 30 4 0 40
( ) , ( ) , ( ) , ( ) p t p p t p p t p p t p · · · ·
.
După ce aflăm vectorul p(t), pentru a determina comanda optimală u
op
(t) rezolvăm
sistemul:
40
2
1
1 1 2
2 4 4
2
2
( )
0
( )
2 ( ) ( ) 0
2
2 ( ) ( ) 0 ( )
0 ( )
2
H
p t
u t
u u t p t
u t p t H p t
u t
u
∂ ¹
¹ ¹
·
· −
¹
¹ ¹
∂ + ·
¹ ¹ ¹
⇔ ⇔
' ' '
+ · ∂
¹ ¹ ¹
· · −
¹ ¹ ¹ ∂ ¹ ¹
¹
Pentru a afla traiectoria optimală nu ne mai rămâne decât să înlocuim u(t) cu u
op
(t) în
ecuaţia de stare a sistemului. Astfel obţinem x
op
(t) rezolvând:
0
( )
0
( ) ( ) ( )
t
At A t s
op op
t
x t e x t e Bu t ds

· +

având condiţiile iniţiale ( )
0 10 20 30 40
( )
T
x t x x x x ·
. Astfel obţinem coordonatele polare ce
descriu traiectoria optimală a satelitului de forma:
1_ 0
( ) ( )
opt opt
r t x t r · +
3_ 0
( ) ( )
opt opt
t x t θ θ · +
Pentru a trece la coordonate carteziene nu ne rămâne decât să facem următoarele transformări :
( ) ( ) cos( ( ))
opt opt opt
x t r t t θ · ⋅
( ) ( ) sin( ( ))
opt opt opt
y t r t t θ · ⋅
Rezultate şi concluzii
Pentru a rezolva numeric această problemă am folosit atât programul Maple cât şi
programul Matlab. Programele propriu-zise se găsec în Anexa 1, respectiv Anexa 2.
În calculele efectuate am considerat 1 ω · .
În urma calculelor am obţinut comanda optimală de forma:
1_
2_
1 3
sin( ) cos( ) 1
2 2
3 1
cos( ) 3sin( )
2 2
opt
opt
opt
t t
u
u
u t
t t
1
− − +
1
1
· · 1
1
1 ¸ ]
− + − +
1
¸ ]
Traiectoria ce trebuie urmată de satelit este dată prin coordonatele polare de mai jos:
41
2 2 2
2 2
3 2
2 2
5 3 5 3
( ) cos( ) sin( ) cos( ) cos( ) 6sin( ) 9 sin( ) sin( ) 2 2cos( ) 3
2 2 2 2
( ) sin( ) 15cos( ) sin( ) 14sin( ) 4cos( ) 9cos( ) 6cos( ) 2 sin( )
3 9 9 3
7 cos( ) sin( )
2 2 4 4
opt
opt
r t t t t t t t t t t t t t
t t t t t t t t t t t
t t
t t t t t
θ
· + − − + − + − − +
· − − + + + − + + −
− + − + −
a) b)
Figura 6 a) traiectoria optimală reprezentată folosindu-ne de coordonatele carteziene x şi y;
b) traiectoria optimală reprezentată folosindu-ne de coordonatele polare r şi θ
În figura de mai sus am reprezentat grafic traiectoria ce trebuie urmată de satelit, folosindu-ne
atât de coordonatele carteziene ( a) ) cât şi de coordonatele polare ( b) ).
4.2. Aplicaţie optimizare prin metode variaţionale utilizând ecuaţia matricială
Riccati [5]
Ştim că marea majoritate a rachetelor ghidate au nevoie ca unghiul de ruliu să fie
menţinut constant pe toată durata zborului pentru ca sistemul de ghidare să funcţioneze corect.
Din acest motiv este necesar un autopilot de ruliu care să menţină constantă poziţia rachetei în
timpul zborului.
Astfel noi vom construi un sistem de comandă cu feedback care va ţine unghiul de ruliul
aproape de zero. În acelaşi timp mişcarea eleronului nu va depăşi un anumit prag dat pentru
unghiul de deviere.
Ecuaţiile de mişcare pentru mişcarea de ruliu a rachetei sunt:
42
x a
a
L L
I p p
p
p
δ
δ
φ
∂ ∂
· +
∂ ∂
·
&
&
unde a
a
L
δ
δ


este momentul de ruliu datorat mişcării eleroanelor; iar
L
p
p


este momentul de
amortizare la mişcarea de ruliu.
Făcând notaţiile:
/
a
a
x
L
L
I
δ
δ ∂ ∂
·
,
/
p
x
L p
L
I
∂ ∂
·
putem rescrie ecuaţiile de mişcare astfel:
a
p a
p L p L
p
δ
δ
φ
· +
·
&
&
Pentru a aduce ecuaţiile de mai sus sub forma x Ax Bu · + & le scriem astfel:
0 0 1
0
a
a
p
L L p p
δ
φ φ
δ
1 1 1 1
· +
1 1 1 1
¸ ] ¸ ] ¸ ] ¸ ]
&
&
unde
0 0 1
; ;
0
a
p
x A B
L L p
δ
φ 1 1 1
· · ·
1 1 1
¸ ] ¸ ] ¸ ]
Funcţionala de minimizat în acest caz are forma:
2 2 2
0
max max max
1
2
a
a
p
J dt
p
δ φ
φ δ

1
¸ _ ¸ _ ¸ _
1 · + +

1
¸ , ¸ , ¸ ,
¸ ]

unde
max
φ
este unghiul maxim de ruliu dorit, p
max
este valoarea maximă admisă a coeficientului de
ruliu , iar
max a
δ
este valoarea maximă admisă a deviaţia eleroanelor.
Comparând această expresie cu forma generală a funcţionalei de cost:
( )
0
f
t
T T
J x Qx u Ru dt · +

, observăm că în cazul nostru avem:
2
max
2
max
2
max
1
0
1
,
1
0
a
Q R
p
φ
δ
1
1
1
1
· ·
1
1
¸ ]
1
¸ ]
Determinăm comanda optimă rezolvând ecuaţia matricială Riccati
43
1
( ) ( ) ( ) ( ) ( ) 0
T T
S t S t A A S t Q S t BR B S t

+ + + − ·
&
Deoarece în cazul nostru timpul final este infinit matricea S devine o matrice constant (nu
depinde de timp) şi astfel termenul ( ) S t
&
dispare. Astfel noi trebuie să rezolvăm ecuaţia, având ca
necunoscute elementele matricii S:
1
0
T T
SA A S Q SBR B S

+ + − ·
Înlocuind în ecuaţia de mai sus matricile A, B, Q şi R obţinem următorul sistem de
ecuaţii, cu necunoscutele S
11
, S
12
, S
21
şi S
22
. Dar cum S este o matrice simetrică avem egalitatea
S
12
,=S
21
.
2 2 2
12 max 2
max
2 2
11 12 12 22 max
2 2 2
12 22 22 max
max
1
0
0
1
2 2 0
a
p a
p a
S L
S S L S S L
S S L S L
p
δ
δ
δ
δ
φ
δ
δ
¹
− ·
¹
¹
¹
+ − ·
'
¹
¹ + + − ·
¹
¹
Comanda optimală este dată de ecuaţia:
( ) ( ) u t Kx t · −
unde
1 T
K R B S

· .
Rezultate si concluzii
Am folosit următoarele valori numerice pentru caracteristicile aerodinamice ale rachetei:
2
max max max
2 / ; 9000 ;
10 0.174 ; 300 / 5.23 / ; 0.522
p a
L rad s L s
rad p s rad s rad
δ
φ δ

· − ·
· ° · · ° · ·
Am rezolvat numeric această aplicaţie folosind atât Maple cât si Matlab. Programele
propriu-zise se găsec în Anexa 3, respectiv Anexa 4.
În urma calculelor am obţinut comanda optimală de forma:
_ 3 ( ) 0.1028 ( )
a
optim t p t δ φ · − −
Valorile optimale pentru
( ) t φ
şi p(t) sunt:
897.7 30
30 897.7
( ) 0.006 0.093
( ) 2.79 5.41
t t
t t
t e e
p t e e
φ
− −
− −
· − ⋅ + ⋅
· − ⋅ + ⋅
Funcţionala de cost corespunzatoare comenzii optimale are valoarea:
0.00471 J ·
44
Pentru a scoate în evidenţă că această valoare a funcţionalei este cea minima considerăm
o altă valoare pentru comandă şi comparăm noul cost cu costul obţinut pentru comanda optimală.
Fie noua comandă
2 5 ( ) 10 ( )
a
t p t δ φ · − −
. Costul corespunzător acestei comenzi are
valoarea 2 20.20 J · . Observăm că noul cost este mai mare decât cel obţinut pentru comanda
optimală.
În figura de mai jos am reprezentat
_ ( ) optim t φ
şi
_ ( ) p optim t
funcţie de timp. Din grafice
observăm că valorile acestora tind la 0 lucru pe care îl şi doream. Scopul nostru a fost să găsim comanda
optimala ce va menţine ughiul de rului ( ) t φ cât mai aproape de valoarea 0.
a) b)
Figura 7 a) _ ( ) optim t φ funcţie de t; b) _ ( ) p optim t funcţie de t
Acelaşi lucru l-am verificat calculând
lim ( )
t
t φ
→∞
şi
lim ( )
t
p t
→∞
. Aceste limite ne-au dat 0, lucru care
ne confirmă că am obţinut comanda care menţine unghiul de ruliu cât mai aproape de valoarea 0.
Făcând o comparaţie între programul realiyat în Maple şi cel realiyat în Matlab putem
spune că rezolvarea problemei utilizând programul Matlab este mai avantajoasă deoarece există
funcţia lqr (linear-quadratic regulator) care calculează direct soluţia S a ecuaţiei matriciale
Riccatri şi matricea K. Sintaxa acestei funcţii este [K,S,e]=lqr(A,B,Q,R) unde matricile A şi B
sunt cele din ecuaţia de stare a sistemului, iar matricile Q şi R sunt cele din funcţionala de cost.
Funcţia lqr întoarce ca rezultat matricile K şi S. Astfel ne este uşurată foarte mult munca.
4.3. Aplicaţie optimizare folosind metoda programării dinamice [6]
Fie un avion care poate zbura de la stânga la dreapta de-a lungul rutelor reprezentate în
figura 8. Intersecţiile a, b, c,… reprezintă oraşe iar numerele reprezintă combustibilul necesar
pentru a parcurge distanţa dintre oraşe. Vom folosi principiul programării dinamice al lui
Bellman pentru a determina ruta ce trebuie urmată de avion pentru a ajunge din oraşul a în orasul
i cu consum minim de combustibil.
45
Figura 8
Numerotăm nivelurile de decizie ale procesului de la 0 k · până la 4 k N · · , aşa cum se
vede în figura 9. La fiecare nivel
0,1,..., 1 k N · −
se ia o decizie, acest lucru ne mai fiind necesar
la ultimul nivel deoarece starea finală este impusă.
Figura 9
Starea curentă este nodul in care luăm decizia curentă. Astfel, starea initială este
0
x a ·
.
La nivelul 1, starea poate fi
1
x b ·
sau
1
x d ·
. Similar
2
, x c e ·
ori g;
3
x f ·
sau h; iar starea
finală este constransă să fie
4 N
x x i · ·
.
Pentru a controla u
k
considerăm că la fiecare nivel k u
k
poate luam valorile +1 şi -1 după
regula:
1
k
u · +
dacă ne mişcăm în sus pe diagrama rutelor iar
1
k
u · −
dacă ne mişcăm în jos pe
diagrama rutelor (nivelul de referinţă fiind nivelul nodului în care se ia decizia).
Pentru a rezolva problema vom parcurge invers diagrama: de la nodul final i la nodul de
start a.
46
Pornim cu 4 k N · · . La acest nivel nu este necesară nicio decizie aşa că trecem la
nivelul 3 k · . Dacă
3
x f ·
atunci controlul optimal este
3
1 u · −
iar costul (adică combustibilul
necesar pentru a ajunge din nodul i in nodul f) este 4. Dacă
3
x h ·
atunci controlul optimal este
3
1 u · +
iar costul este 2.
Acum trecem la nivelul următor 2 k · . Aici avem 3 stări posibile. Dacă
2
x c ·
atunci
controlul este
2
1 u · −
iar costul este 3+4=7. Dacă
2
x e ·
trebuie să luăm o decizie. Dacă luam
2
1 u · +
o luăm pe ruta
e f →
şi apoi ajungem în nodul i, având un cost de 3+4=7. Pe de altă
parte, dacă luăm
2
1 u · −
o luăm pe ruta e h → şi apoi ajungem în nodul i, vom avea un cost de
2+2=4. Astfel că decizia optimală este
2
1 u · −
cu un cost asociat de 4. Dacă
2
x g ·
avem o
singură opţiune:
2
1 u · +
cu un cost de 2+4=6.
Trecem la nivelul 1 k · . Avem 2 stări posibile. Dacă
1
x b ·
trebuie să luăm o decizie.
Dacă luăm
1
1 u · +
o luăm pe ruta
b c f → →
şi apoi ajungem in nodul i, având un cost de
2+3+4=9. Dacă luăm
1
1 u · −
o luăm pe ruta b e → şi apoi continuăm pe ruta optimală aflată
mai sus e h i → → , având un cost de 1+2+2=5. Astfel decizia optimală este
1
1 u · −
cu un cost
asociat de 5. Şi în cazul în care
1
x d ·
trebuie luată o decizie. Dacă luăm
1
1 u · +
o luăm pe ruta
d e → şi apoi continuăm pe ruta optimală e h i → → , având un cost de 3+2+2=7. Dacă luăm
1
1 u · −
o luăm pe ruta
d g h → →
şi apoi ajungem în nodul i, având un cost de 2+4+2=8. Astfel
decizia optimală este
1
1 u · +
cu un cost asociat de 7.
Ajunge astfel la nivelul 0 k · . Avem o singură stare posibilă
0
x a ·
(starea iniţială). Dacă
luăm
0
1 u · +
o luăm pe ruta a b → şi apoi continuăm pe ruta optimală b e h i → → → , având
un cost de 3+1+2+2=8. Dacă luăm
0
1 u · −
o luăm pe ruta a d → şi apoi continuăm pe ruta
optimală d e h i → → → , având un cost de 1+3+2+2=8. Observăm că indiferent de valoarea lui
u
0
obţinem acelaşi cost. Astfel controlul optimal pentru 0 k · nu este unic.
Rezultate si concluzii
Conform rezultatelor noastre există două rute de la nodul a la nodul i cu acelaşi cost 8
(consumul minim de combustibil): a b e h i → → → → şi a d e h i → → → → . Astfel soluţia
problemei de cost minim nu este unică.
47
Am evidenţiat rezultatele obţinute mai sus în figura de mai jos (figura 9). Numerele
dintre paranteze reprezintă costul minim necesar pentru a ajunge din nodul aosicat numarului din
paranteză în nodul final i.
Figura 10
Observăm că principiul de optimalitate al lui Bellman a redus numărul calculelor
necesare pentru a rezolva problema prin reducerea numărului deciziilor ce trebuie luate.
5. Concluzii
În această lucrare am prezentat trei metode de optimizare dinamică a proceselor :
optimizarea prin metode variaţionale (metoda multiplicatorilor lui Lagrange şi metoda ecuaţiei
matriciale Riccati), metoda programării dinamice a lui Bellman şi metoda principiului maximului
al lui Pontriaghin.
Pentru a întelege mai bine aceste metode am considerat trei aplicaţii.
Prima aplicaţie am rezolvat-o utilizând metoda multiplicatorilor lui Lagrange. Ne-am pus
problema să găsim traiectoria ce trebuie urmată de un satelit pentru a ajunge dintr-o stare iniţială
dată într-o stare finală dată cu consum minim de energie. Adică sa aflam comanda optimală
u
opt
(t) ce minimizează indicele de performanţă
0
1
( ( )) ( ) ( )
2
f
t
T
t
J u t u t u t dt ·

.
În urma calculelor am obţinut comanda optimală de forma:
48
1_
2_
1 3
sin( ) cos( ) 1
2 2
3 1
cos( ) 3sin( )
2 2
opt
opt
opt
t t
u
u
u t
t t
1
− − +
1
1
· · 1
1
1 ¸ ]
− + − +
1
¸ ]
iar traiectoria optimală de forma :
a) b)
Figura 11 a) traiectoria optimală reprezentată folosindu-ne de coordonatele carteziene x şi y;
b) traiectoria optimală reprezentată folosindu-ne de coordonatele polare r şi θ
În a doua aplicaţie am exemplificat metoda ecuaţiei matriciale Riccati. Noi am construit
un sistem de comandă cu feedback care va ţine unghiul de ruliu al rachetei aproape de zero.
Rachetele ghidate au nevoie ca unghiul de ruliu să fie menţinut constant pe toată durata zborului
pentru ca sistemul de ghidare să funcţioneze corect
În urma calculelor am obţinut comanda optimală (unghiul eleroanelor) de forma:
_ 3 ( ) 0.1028 ( )
a
optim t p t δ φ · − −
Valorile optimale pentru
( ) t φ
(unghiul de ruliu) şi p(t) (coeficientul de ruliu) sunt:
897.7 30
30 897.7
( ) 0.006 0.093
( ) 2.79 5.41
t t
t t
t e e
p t e e
φ
− −
− −
· − ⋅ + ⋅
· − ⋅ + ⋅
Reprezentând grafic
_ ( ) optim t φ
şi
_ ( ) p optim t
funcţie de timp observăm că valorile acestora
tind la 0 lucru pe care îl şi doream.
49
a) b)
Figura 12 a) _ ( ) optim t φ funcţie de t; b) _ ( ) p optim t funcţie de t
În a treia aplicaţie am folosit principiul programării dinamice al lui Bellman pentru a
determina ruta ce trebuie urmată de un avion pentru a ajunge din oraşul a în orasul i cu consum
minim de combustibil.
Am observat faptul ca problema nu are soluţie unică (lucru conform cu teoria). Conform
rezultatelor noastre există două rute de la nodul a la nodul i cu acelaşi cost 8 (consumul minim
de combustibil).
Am evidenţiat rezultatele obţinute în figura de mai jos. Numerele dintre paranteze
reprezintă costul minim necesar pentru a ajunge din nodul asociat numărului din paranteză în
nodul final i.
Figura 13
50
Prin utilizarea principiul de optimalitate al lui Bellman am redus numărul calculelor
necesare pentru a rezolva problema prin micşorarea numărului deciziilor ce trebuie luate.
Metodele variaţionale de optimizare se utilizează în cazul porceselor continue, având un
indice de performanta de tip cuadratic (probleme de tip Bolza).
Metoda programării dinamice a lui Bellman se aplică în cazul proceselor discrete.
Avantajul esenţial al metodei programării dinamice este adus de “principiul optimalităţii” şi
“metoda scufundării”, care permit reducerea procesului de decizie în N paşi la un proces
secvenţial de N procese de decizie cu un singur pas.
Principiul lui Pontriaghin se utilizează în cazul problemelor care nu pot fi soluţionate prin
metoda calculului variaţional – de exemplu ecuaţii de tip Euler-Lagrange. Ele ar putea fi
abordate sub forma discretă a programării dinamice, dar, această metodă reprezintă în fond o
tehnică numerică care furnizează o informaţie săracă asupra naturii fizice a problemei de
optimizare în ansamblu. Principiul optimului, elaborat de Pontriaghin, Boltianskii şi
Gamkrelidze, este similar calculului variaţional şi este strâns legat de programarea dinamică.
Diferenţa dintre principiul maximului şi metoda calculului variaţional constă în faptul că :
în timp ce metoda calculului variaţional caută soluţia optimă
0
( ) u t în interiorul lui {U},
principiul maximului caută soluţia optimă pe frontiera lui {U}, unde {U} este domeniul
comenzilor admisibile
În concluzie, în această lucrare am prezentat metode de rezolvare a problemei comenzii
optimale: Să se găsească comanda optimă u
opt
(numită şi “strategia de conducere optimală”)
care optimizează indicele de performanţă J, în condiţiile unor restricţii impuse; în cazul
proceselor dinamice în timp.
51
6. Anexe
Anexa 1
Codul programului în Maple pentru rezolvarea aplicaţiei 4.1
> restart;
> with(linalg):
> with(DEtools):
> with(LinearAlgebra):
> tf:=2;omega:=1;
:= tf 2
:= ω 1
> r0:=1;k:=r0^3*omega^2;
:= r0 1
:= k 1
> A:=Matrix([[0,1,0,0],[3*omega^2,0,0,2*omega],[0,0,0,1],[0,-
2*omega,0,0]]);
:= A

¸








1
]
1
1
1
1
1
1
1
1
0 1 0 0
3 0 0 2
0 0 0 1
0 -2 0 0
> B:=Matrix([[0,0],[1,0],[0,0],[0,1]]);
:= B

¸








1
]
1
1
1
1
1
1
1
1
0 0
1 0
0 0
0 1
> x:=Matrix([[x1],[x2],[x3],[x4]]);
:= x

¸








1
]
1
1
1
1
1
1
1
1
x1
x2
x3
x4
52
> u:=Matrix([[u1],[u2]]);
:= u

¸


1
]
1
1
u1
u2
> M:=A.x+B.u;
:= M

¸








1
]
1
1
1
1
1
1
1
1
x2
+ + 3 x1 2 x4 u1
x4
− + 2 x2 u2
> f1:=M[1,1];
:= f1 x2
> f2:=M[2,1];
:= f2 + + 3 x1 2 x4 u1
> f3:=M[3,1];
:= f3 x4
> f4:=M[4,1];
:= f4 − + 2 x2 u2
> L:=Transpose(u).u;
:= L [ ] + u1
2
u2
2
> p:=Matrix([[p1(t)],[p2(t)],[p3(t)],[p4(t)]]);
:= p

¸








1
]
1
1
1
1
1
1
1
1
( ) p1 t
( ) p2 t
( ) p3 t
( ) p4 t
> f:=Matrix([[f1],[f2],[f3],[f4]]);
:= f

¸








1
]
1
1
1
1
1
1
1
1
x2
+ + 3 x1 2 x4 u1
x4
− + 2 x2 u2
> H:=L+transpose(p).f;
:= H [ ] + + + + + u1
2
u2
2
( ) p1 t x2 ( ) p2 t ( ) + + 3 x1 2 x4 u1 ( ) p3 t x4 ( ) p4 t ( ) − + 2 x2 u2
53
Determinăm vectorul p(t):
> sis_ode:=diff(p1(t),t)=-diff(H[1,1],x1),diff(p2(t),t)=-
diff(H[1,1],x2),diff(p3(t),t)=-diff(H[1,1],x3),diff(p4(t),t)=-
diff(H[1,1],x4);
sis_ode ·
d
d
t
( ) p1 t −3 ( ) p2 t ·
d
d
t
( ) p2 t − + ( ) p1 t 2 ( ) p4 t ·
d
d
t
( ) p3 t 0 , , , :=
·
d
d
t
( ) p4 t − − 2 ( ) p2 t ( ) p3 t
> ics:=p1(0)=c1,p2(0)=c2,p3(0)=c3,p4(0)=c4;
:= ics , , , · ( ) p1 0 c1 · ( ) p2 0 c2 · ( ) p3 0 c3 · ( ) p4 0 c4
> s:=dsolve([sis_ode,ics]);
s · ( ) p4 t − + + − 2 ( ) cos t ( ) − + c1 2 c4 2 ( ) sin t ( ) + 2 c3 c2 3 c3 t 2 c1 3 c4, { :=
· ( ) p1 t − + + − 3 ( ) cos t ( ) − + c1 2 c4 3 ( ) sin t ( ) + 2 c3 c2 6 c3 t 4 c1 6 c4,
· ( ) p3 t c3 · ( ) p2 t + − ( ) sin t ( ) − + c1 2 c4 ( ) cos t ( ) + 2 c3 c2 2 c3 , }
> p1(t):=-3*cos(omega*t)*(c1-2*c4*omega)-
3*sin(omega*t)*(2*c3+c2*omega)+6*c3*omega*t+4*c1-6*c4*omega;
:= ( ) p1 t − − + + − 3 ( ) cos t ( ) − c1 2 c4 3 ( ) sin t ( ) + 2 c3 c2 6 c3 t 4 c1 6 c4
> p2(t):=(-sin(omega*t)*(c1-2*c4*omega)
+cos(omega*t)*(2*c3+c2*omega)-2*c3)/omega;
:= ( ) p2 t − + − ( ) sin t ( ) − c1 2 c4 ( ) cos t ( ) + 2 c3 c2 2 c3
> p3(t):=c3;
:= ( ) p3 t c3
> p4(t):= -2*cos(omega*t)/omega*(c1-2*c4*omega)-
2*sin(omega*t)*(2*c3+c2*omega)/omega+3*c3*t+1/2/omega*(4*c1-
6*c4*omega);
:= ( ) p4 t − − + + − 2 ( ) cos t ( ) − c1 2 c4 2 ( ) sin t ( ) + 2 c3 c2 3 c3 t 2 c1 3 c4
Determinăm comanda optimală:
> ec5:=diff(H[1,1],u1)=0;
:= ec5 · + 2 u1 ( ) p2 t 0
> ec6:=diff(H[1,1],u2)=0;
:= ec6 · + 2 u2 ( ) p4 t 0
54
> s1:=solve({ec5,ec6},[u1,u2]);
s1 · u1 − − − +
1
2
( ) sin t c1 ( ) sin t c4 ( ) cos t c3
1
2
( ) cos t c2 c3,

¸



¸


:=
· u2 − + + − − + ( ) cos t c1 2 ( ) cos t c4 2 ( ) sin t c3 ( ) sin t c2
3 c3 t
2
c1
3 c4
2
1
]
1
1
1
]
1
1
> u1:=-1/2*(-sin(omega*t)*(c1-2*c4*omega)
+cos(omega*t)*(2*c3+c2*omega)-2*c3)/omega;
:= u1 − +
1
2
( ) sin t ( ) − c1 2 c4
1
2
( ) cos t ( ) + 2 c3 c2 c3
> u2:=-1/2*(-2*cos(omega*t)*c1+4*cos(omega*t)*c4*omega-
4*sin(omega*t)*c3-2*sin(omega*t)*c2*omega+3*c3*omega*t+2*c1-
3*c4*omega)/omega;
:= u2 − + + − − + ( ) cos t c1 2 ( ) cos t c4 2 ( ) sin t c3 ( ) sin t c2
3 c3 t
2
c1
3 c4
2
Comanda optimală:
> u;

¸







1
]
1
1
1
1
1
1
1
− +
1
2
( ) sin t ( ) − c1 2 c4
1
2
( ) cos t ( ) + 2 c3 c2 c3
− + + − − + ( ) cos t c1 2 ( ) cos t c4 2 ( ) sin t c3 ( ) sin t c2
3 c3 t
2
c1
3 c4
2
Determinăm constantele p
10
, p
20
, p
30
şi p
40
:
> ec7:=diff(p1(t),t)=-diff(H[1,1],x1);
ec7 − + 3 ( ) sin t ( ) − c1 2 c4 3 ( ) cos t ( ) + 2 c3 c2 6 c3 · :=
− + 3 ( ) sin t ( ) − c1 2 c4 3 ( ) cos t ( ) + 2 c3 c2 6 c3
> ec8:=diff(p2(t),t)=-diff(H[1,1],x2);
ec8 :=
· − − ( ) cos t ( ) − c1 2 c4 ( ) sin t ( ) + 2 c3 c2 − − ( ) cos t ( ) − c1 2 c4 ( ) sin t ( ) + 2 c3 c2
> ec9:=diff(p3(t),t)=-diff(H[1,1],x3);
:= ec9 · 0 0
> ec10:=diff(p4(t),t)=-diff(H[1,1],x4);
55
ec10 − + 2 ( ) sin t ( ) − c1 2 c4 2 ( ) cos t ( ) + 2 c3 c2 3 c3 · :=
− + 2 ( ) sin t ( ) − c1 2 c4 2 ( ) cos t ( ) + 2 c3 c2 3 c3
> s2:=solve({ec7,ec8,ec9,ec10},[c1,c2,c3,c4]);
:= s2 [ ] [ ] , , , · c1 c1 · c2 c2 · c3 c3 · c4 c4
> c1:=1;c2:=1;c3:=1;c4:=1;
:= c1 1
:= c2 1
:= c3 1
:= c4 1
Comanda optimală devine:
> u;

¸







1
]
1
1
1
1
1
1
1
− − +
1
2
( ) sin t
3
2
( ) cos t 1
− + − + ( ) cos t 3 ( ) sin t
3 t
2
1
2
Condiţiile iniţiale:
>x10:=0;x20:=0;x30:=0;x40:=0;x0:=Matrix([[x10],[x20],[x30],
[x40]]);
:= x10 0
:= x20 0
:= x30 0
:= x40 0
:= x0

¸








1
]
1
1
1
1
1
1
1
1
0
0
0
0
Determinăm traiectoria optimală:
56
> q:=t-g;
:= q − t g
> C:=exponential(A,t).x0;
:= C

¸








1
]
1
1
1
1
1
1
1
1
0
0
0
0
> E:=exponential(A,q).B.u;
E :=
( ) sin − + t g
¸
¸


_
,


− − +
1
2
( ) sin t
3
2
( ) cos t 1 −

¸


( ) − + 2 ( ) cos − + t g 2
¸
¸


_
,


− + − + ( ) cos t 3 ( ) sin t
3 t
2
1
2
+
1
]
1
1
( ) cos − + t g
¸
¸


_
,


− − +
1
2
( ) sin t
3
2
( ) cos t 1

¸


2 ( ) sin − + t g
¸
¸


_
,


− + − + ( ) cos t 3 ( ) sin t
3 t
2
1
2

1
]
1
1
( ) − 2 ( ) cos − + t g 2
¸
¸


_
,


− − +
1
2
( ) sin t
3
2
( ) cos t 1

¸


( ) − + − 3 t 3 g 4 ( ) sin − + t g
¸
¸


_
,


− + − + ( ) cos t 3 ( ) sin t
3 t
2
1
2
+
1
]
1
1
2 ( ) sin − + t g
¸
¸


_
,


− − +
1
2
( ) sin t
3
2
( ) cos t 1

¸


( ) − + 3 4 ( ) cos − + t g
¸
¸


_
,


− + − + ( ) cos t 3 ( ) sin t
3 t
2
1
2
+
1
]
1
1
> x1(t):=C[1,1]+int(E[1,1],g=0..t);
( ) x1 t
5
2
( ) cos t ( ) sin t
3
2
( ) cos t
2
5
2
( ) cos t 6 ( ) sin t
2
9 t ( ) sin t
3
2
( ) sin t 1 + − − + − + :=
2 ( ) cos t t 3 t
2
t − − +
> x2(t):=C[2,1]+int(E[2,1],g=0..t);
57
( ) x2 t :=
− − + + + − + −
1
2
( ) sin t
2
15
2
( ) cos t ( ) sin t 7 ( ) sin t 2 ( ) cos t
2
3 ( ) cos t t 3 ( ) cos t 1 3 t
> x3(t):=C[3,1]+int(E[3,1],g=0..t);
( ) x3 t ( ) sin t
2
15 ( ) cos t ( ) sin t 14 ( ) sin t 4 ( ) cos t
2
9 ( ) cos t t 6 ( ) cos t 2 − − + + + − + :=
t ( ) sin t 8 t
3
2
( ) cos t t
2
9
2
( ) sin t t
2
9 t
3
4
3 t
2
4
+ − + − + −
> x4(t):=C[4,1]+int(E[4,1],g=0..t);
( ) x4 t 5 ( ) cos t ( ) sin t 3 ( ) cos t
2
5 ( ) cos t 12 ( ) sin t
2
15 t ( ) sin t 3 ( ) sin t 2 − − + + − + − :=
3 ( ) cos t t
9 t
2
2
3 t
2
+ + −
Traiectoria optimală (dată în coordonate polare):
> r(t):=x1(t)+1;
( ) r t
5
2
( ) cos t ( ) sin t
3
2
( ) cos t
2
5
2
( ) cos t 6 ( ) sin t
2
9 t ( ) sin t
3
2
( ) sin t 2 + − − + − + :=
2 ( ) cos t t 3 t
2
t − − +
> theta(t):=x3(t)+omega*t;
( ) θ t ( ) sin t
2
15 ( ) cos t ( ) sin t 14 ( ) sin t 4 ( ) cos t
2
9 ( ) cos t t 6 ( ) cos t 2 − − + + + − + :=
t ( ) sin t 7 t
3
2
( ) cos t t
2
9
2
( ) sin t t
2
9 t
3
4
3 t
2
4
+ − + − + −
Traiectoria optimală (dată prin coordinate carteziene):
> xc(t):=r(t)*cos(theta(t));
( ) xc t
5
2
( ) cos t ( ) sin t
3
2
( ) cos t
2
5
2
( ) cos t 6 ( ) sin t
2
9 t ( ) sin t
3
2
( ) sin t 2 + − − + − +
¸
¸


:=
2 ( ) cos t t 3 t
2
t − − +
_
,


cos ( ) sin t
2
15 ( ) cos t ( ) sin t 14 ( ) sin t 4 ( ) cos t
2
− − + +
¸
¸


9 ( ) cos t t 6 ( ) cos t 2 t ( ) sin t 7 t
3
2
( ) cos t t
2
9
2
( ) sin t t
2
9 t
3
4
3 t
2
4
+ − + + − + − + −
_
,


> yc(t):=r(t)*sin(theta(t));
58
( ) yc t
5
2
( ) cos t ( ) sin t
3
2
( ) cos t
2
5
2
( ) cos t 6 ( ) sin t
2
9 t ( ) sin t
3
2
( ) sin t 2 + − − + − +
¸
¸


:=
2 ( ) cos t t 3 t
2
t − − +
_
,


sin ( ) sin t
2
15 ( ) cos t ( ) sin t 14 ( ) sin t 4 ( ) cos t
2
− − + +
¸
¸


9 ( ) cos t t 6 ( ) cos t 2 t ( ) sin t 7 t
3
2
( ) cos t t
2
9
2
( ) sin t t
2
9 t
3
4
3 t
2
4
+ − + + − + − + −
_
,


Costul corespunzător comenzii optimale:
> J:=evalf(simplify(1/2*int(L[1,1],t=0..tf)));
:= J 1.001491393
Reprezentarea grafică a traiectoriei:
> with(plots):
> spacecurve([xc(t),yc(t),t],t=0..3,axes=FRAME);
> polarplot([r(t),theta(t),t=0..3]);
59
Anexa 2
Codul programului în Matlab pentru rezolvarea aplicaţtiei 4.1
clear all;
r0=1
omega=1
syms omega;syms x1;syms x2;syms x3;syms x4;
syms u1;syms u2;syms t;syms g;syms q;
syms p1;syms p2;syms p3;syms p4;
syms p10;syms p20;syms p30;syms p40;
k=r0^3*omega^2
A=[0 1 0 0; 3*omega^2 0 0 2*omega; 0 0 0 1; 0 -2*omega 0 0]
A = 0 1 0 0
3 0 0 2
0 0 0 1
0 -2 0 0
B=[0 0; 1 0; 0 0; 0 1]
B = 0 0
1 0
60
0 0
0 1
x=[x1;x2;x3;x4]
x = x1
x2
x3
x4
Condiţiile iniţiale:
x10=0;x20=0;x30=0;x40=0;
x0=[x10;x20;x30;x40]
u=[u1;u2]
u = u1
u2
M=A*x+B*u
M = x2
3*x1+2*x4+u1
x4
-2*x2+u2
f1=M(1,1)
f1 = x2
f2=M(2,1)
f2 = 3*x1+2*x4+u1
f3=M(3,1)
f3 = x4
f4=M(4,1)
f4 = -2*x2+u2
f=[f1;f2;f3;f4]
p=[p1;p2;p3;p4]
61
p = p1
p2
p3
p4
p0=[p10;p20;p30;p40]
L=u.'*u
L = u1^2+u2^2
H=L+p.'*f
H = u1^2+u2^2+p1*x2+p2*(3*x1+2*x4+u1)+p3*x4+p4*(-2*x2+u2)
Determinăm vectorul p(t):
diff(H,x1)
3*p2
diff(H,x2)
p1-2*p4
diff(H,x3)
0
diff(H,x4)
2*p2 +p3
s=dsolve ('Dp1=-3*p2*omega^2','Dp2=-(p1-2*p4*omega)','Dp3=0','Dp4=-
(2*p2*omega+p3)',’p1 (0) =p10',’p2 (0) =p20',’p3 (0) =p30',’p4 (0) =p40')
p1=eval(s.p1)
p1 = -3*cos(t)*(p10-2*p40)-3*sin(t)*(2*p30+p20)+6*p30*t+4*p10-6*p40
p2=eval(s.p2)
p2 = (sin (t)*(-p10+2*p40)+cos (t)*(2*p30+p20)-2*p30)
p3=eval(s.p3)
p3 = p30
p4=eval(s.p4)
p4 = (-2*p10+4*p40)*cos(t)-(4*p30+2*p20)*sin(t)+3*p30*t+2*p10-3*p40
62
Determinăm comanda optimală:
diff (H,u1)
2*u1+p2
diff (H,u2)
2*u2+p4
u1=eval (solve ('2*u1+p2=0','u1'))
u1 = 1/2*sin(t)*(p10-2*p40)-1/2*cos(t)*(2*p30+p20)+p30
u2=eval (solve ('2*u2+p4=0','u2'))
u2 = -1/2*(-2*p10+4*p40)*cos(t)+1/2*(4*p30+2*p20)*sin(t)-3/2*p30*t-p10+3/2*p40
diff(s.p1,t)
diff(s.p2,t)
diff(s.p3,t)
diff(s.p4,t)
eval(diff(H,x1))
eval(diff(H,x2))
eval(diff(H,x3))
eval(diff(H,x4))
s1=solve('-3*sin(t) *(-p10+2*p40)-3*cos(t) *(2*p30+p20)+6*p30 =-(3*(sin(t)*(-
p10+2*p40)+cos(t)*(2*p30+p20)-2*p30','(cos(t) *(-p10+2*p40)-sin(t) *(2*p30+p20)) =-
(3*cos(t)*(-p10+2*p40)-3*sin(t)*(2*p30+p20)+6*p30* t+4*p10-6*p40 -(4*(-p10+2*p40)
*cos(t)-4*(2*p30+p20) *sin(t)+6*p30*t+1/ 4*p10-6*p40)))','0=0','-2*sin(t)*(-p10+2*p40)-
2*cos(t)*(2*p30+p20)+3*p30=-(2*sin(t)*(-p10+2*p40)+2*cos(t)*(2*p30+p20)-
3*p30)','p10','p20','p30','p40')
s1.p10
s1.p20
s1.p30
s1.p40
p10=1 p20=1 p30=1 p40=1
p10=1 p20=1 p30=1 p40=1
63
Comanda optimală:
u1opt=eval (u1)
u1opt = -1/2*sin(t)-3/2*cos(t)+1
u2opt=eval (u2)
u2opt = -cos(t)+3*sin(t)-3/2*t+1/2
Determinăm traiectoria optimală:
q=t-g;
C=expm(t*A)*x0
D=expm(q*A)*B*uopt
x1_opt=C(1,1)+int(D(1,1),g,0,t)
x1_opt =-3/2*sin(t)-5/2*cos(t)+1-2*cos(t)*t+9*sin(t)*t-3*t^2+t+5/2*cos(t)*sin(t)+3/2*cos(t)^2-
6*sin(t)^2
x2_opt=C(2,1)+int(D(2,1),g,0,t)
x2_opt =1-3*cos(t)+7*sin(t)-3*t-1/2*sin(t)^2-15/2*cos(t)*sin(t)+2*cos(t)^2+3*cos(t)*t
x3_opt=C(3,1)+int(D(3,1),g,0,t)
x3_opt = 2+sin(t)*t+9*cos(t)*t-8*t+3/2*cos(t)*t^2-6*cos(t)-9/2*sin(t)*t^2+14*sin(t)+9/4*t^3-
3/4*t^2-sin(t)^2-15*cos(t)*sin(t)+4*cos(t)^2
x4_opt=C(4,1)+int(D(4,1),g,0,t)
x4_opt = 3*sin(t)+5*cos(t)-2+3*cos(t)*t-15*sin(t)*t+9/2*t^2-3/2*t-5*cos(t)*sin(t)-
3*cos(t)^2+12*sin(t)^2
Traiectoria optimală (în coordonate polare):
r_opt=x1_opt+1
r_opt = -3/2*sin(t)-5/2*cos(t)+2-2*cos(t)*t+9*sin(t)*t-3*t^2+t+5/2*cos(t)*sin(t)+3/2*cos(t)^2-
6*sin(t)^2
theta_opt=x3_opt+omega*t
theta_opt = 2+sin(t)*t+9*cos(t)*t-7*t+3/2*cos(t)*t^2-6*cos(t)-9/2*sin(t)*t^2+14*sin(t)
+9/4*t^3-3/4*t^2-sin(t)^2-15*cos(t)*sin(t)+4*cos(t)^2
Traiectoria optimală (în coordonate carteziene):
x=r_opt.*cos(theta_opt)
64
x = (-3/2*sin(t)-5/2*cos(t)+2-2*cos(t)*t+9*sin(t)*t-3*t^2+t+5/2*cos(t)*sin(t)+3/2*cos(t)^2-
6*sin(t)^2)*cos(2+sin(t)*t+9*cos(t)*t-7*t+3/2*cos(t)*t^2-6*cos(t)-9/2*sin(t)*t^2+14*sin(t)
+9/4*t^3-3/4*t^2-sin(t)^2-15*cos(t)*sin(t)+4*cos(t)^2)
y=r_opt.*sin(theta_opt)
y = (-3/2*sin(t)-5/2*cos(t)+2-2*cos(t)*t+9*sin(t)*t-3*t^2+t+5/2*cos(t)*sin(t)+3/2*cos(t)^2-
6*sin(t)^2)*sin(2+sin(t)*t+9*cos(t)*t-7*t+3/2*cos(t)*t^2-6*cos(t)-9/2*sin(t)*t^2+14*sin(t)
+9/4*t^3-3/4*t^2-sin(t)^2-15*cos(t)*sin(t)+4*cos(t)^2)
tf=2;
J=eval(1/2*int(uopt.'*uopt,0,tf))
J = 1.0015
Reprezentăm grafic traiectoria optimală:
clear all
t=0:0.1:3;
r_opt=-3/2.*sin(t)-5/2.*cos(t)+2-2.*cos(t).*t+9.*sin(t).*t-3.*t.^2+t+5/2.*cos(t).*sin(t)
+3/2.*cos(t).^2-6*sin(t).^2;
theta_opt=2+sin(t).*t+9.*cos(t).*t-7.*t+3/2.*cos(t).*t.^2-6.*cos(t)-9/2.*sin(t).*t.^2+14.*sin(t)
+9/4.*t.^3-3/4.*t.^2-sin(t).^2-15.*cos(t).*sin(t)+4.*cos(t).^2;
figure, polar (theta_opt,r_opt,'--r')
x=r_opt.*cos (theta_opt);
y=r_opt.*sin (theta_opt);
figure,plot3(x,y,t),xlabel('x'),ylabel('y'),zlabel('t'),grid on
65
Anexa 3
Codul programului în Maple pentru rezolvarea aplicaţiei 4.2
> restart;
Încărcăm pachetul LinearAlgebra:
> with(LinearAlgebra):
Definim constantele ce caracterizează racheta
> Lp:=-2;Lda:=9000;phi_max:=0.174;pmax:=5.23;damax:=0.522;
:= Lp -2
:= Lda 9000
:= phi_max 0.174
:= pmax 5.23
:= damax 0.522
Definim matricile ce descriu sistemul nostru:
> A:=<<0,0>|<1,Lp>>;
:= A

¸


1
]
1
1
0 1
0 -2
> B:=<<0,Lda>>;
:= B

¸


1
]
1
1
0
9000
> Q:=<<1/phimax^2,0>|<0,1/pmax^2>>;
66
:= Q

¸


1
]
1
1
33.02946228 0
0 0.03655919482
> R:=<<1/damax^2>>;
:= R [ ] 3.669940253
Matricea S este necunoscuta din ecuaţia Riccati:
> S:=<<s11,s12>|<s12,s22>>;
:= S

¸


1
]
1
1
s11 s12
s12 s22
Rezolvăm ecuaţia Riccati
> M:=S.A+Transpose(A).S+Q-S.B.MatrixInverse(R).Transpose(B).S;
M :=
[ , ] − 33.02946228 0.220712040010
8
s12
2
− − s11 2 s12 0.220712040010
8
s12 s22
− − s11 2 s12 0.220712040010
8
s12 s22 [ ,
− + − 2 s12 4 s22 0.03655919482 0.220712040010
8
s22
2
]
> ec1:=M[1,1]=0;
:= ec1 · − 33.02946228 0.220712040010
8
s12
2
0
> ec2:=M[1,2]=0;
:= ec2 · − − s11 2 s12 0.220712040010
8
s12 s22 0
> ec3:=M[2,1]=0;
:= ec3 · − − s11 2 s12 0.220712040010
8
s12 s22 0
> ec4:=M[2,2]=0;
:= ec4 · − + − 2 s12 4 s22 0.03655919482 0.220712040010
8
s22
2
0
> s1:=solve(ec1,s12);
:= s1 , -0.001223313418 0.001223313418
> s12:=s1[2];
:= s12 0.001223313418
> s2:=solve(ec4,s22);
:= s2 , -0.00004212964825 0.00004194841663
67
> s22:=s2[2];
:= s22 0.00004194841663
> s3:=solve(ec2,s11);
:= s3 1.135053876
> s11:=s3;
:= s11 1.135053876
Soluţia ecuaţiei Riccati este:
> S;

¸


1
]
1
1
1.135053876 0.001223313418
0.001223313418 0.00004194841663
> x:=<<phi(t),p(t)>>;
:= x

¸


1
]
1
1
( ) φ t
( ) p t
Astfel obţinem matricea K:
> K:=MatrixInverse(R).Transpose(B).S;
:= K [ ] 3.000000001 0.1028724512
Comanda optimală este:
> uop:=-MatrixInverse(R).Transpose(B).S.x;
:= uop [ ] − − 3.000000001 ( ) φ t 0.1028724512 ( ) p t
Înlocuim comanda optimală în ecuaţia de stare a sistemului şi rezolvăm sitemul liniar
astfel obţinut
> with(DEtools):
> M:=A-B.MatrixInverse(R).Transpose(B).S;
:= M

¸


1
]
1
1
0. 1.
-27000. -927.852060899999970
Condiţii iniţiale
> t0:=0;
:= t0 0
> phi(t0):=0.087;p(t0):=2.616;
:= ( ) φ 0 0.087
68
:= ( ) p 0 2.616
> with(linalg):
> sol:=exponential(M,t).<<phi(t0),p(t0)>>;
:= sol

¸



1
]
1
1
11
− + 0.006030239587e
( ) −897.7778044t
0.09303023959e
( ) −30.07425654t
− + 2.797815291e
( ) −30.07425654t
5.413815290e
( ) −897.7778044t
> phi(t):=sol[1,1];
:= ( ) φ t − + 0.006030239587e
( ) −897.7778044t
0.09303023959e
( ) −30.07425654t
> limit(phi(t),t=infinity);
0.
> p(t):=sol[2,1];
:= ( ) p t − + 2.797815291e
( ) −30.07425654t
5.413815290e
( ) −897.7778044t
> limit(p(t),t=infinity);
0.
Înlocuind
( ) t φ
şi p(t) obţinute mai sus comanda optimală devine:
> uop;
[ ]
− + 0.5388417304e
( ) −897.7778044t
0.0087273981e
( ) −30.07425654t
Calculăm funcţionala de cost corespunzătoare comenzii optimale
> F:=(phi(t)/phi_max)^2+(p(t)/pmax)^2+(uop[1,1]/damax)^2;
F 33.02946228 ( ) − + 0.006030239587 e
( ) −897.7778044 t
0.09303023959 e
( ) −30.07425654 t
2
:=
0.03655919482 ( ) − + 2.797815291 e
( ) −30.07425654 t
5.413815290 e
( ) −897.7778044 t
2
+
3.669940253 ( ) − + 0.5388417304 e
( ) −897.7778044 t
0.0087273981 e
( ) −30.07425654 t
2
+
> J:=1/2*int(F,t=0..infinity);
:= J 0.004717563808
Considerăm o altă comandă şi comparăm noul cost cu costul obţinut pentru comanda
optimală
> u2:=-5*csi(t)-10*p(t);
:= u2 − + 54.10800170e
( ) −897.7778044t
27.51300171e
( ) −30.07425654t
> F2:=(phi(t)/phi_max)^2+(p(t)/pmax)^2+(u2/damax)^2;
69
F2 33.02946228 ( ) − + 0.006030239587 e
( ) −897.7778044 t
0.09303023959 e
( ) −30.07425654 t
2
:=
0.03655919482 ( ) − + 2.797815291 e
( ) −30.07425654 t
5.413815290 e
( ) −897.7778044 t
2
+
3.669940253 ( ) − + 54.10800170 e
( ) −897.7778044 t
27.51300171 e
( ) −30.07425654 t
2
+
> J2:=1/2*int(F2,t=0..infinity);
:= J2 20.20120104
Observăm astfel că noul cost este mai mare decât cel obţinut pentru comanda optimală.
Anexa 4
Codul programului în Matlab pentru rezolvarea aplicaţiei 4.2
clear all
Definim constantele ce caracterizează racheta:
Lp=2;Lda=9000;
phi_max=0.174;pmax=5.23;dmax=0.522;
Definim matricile ce descriu sistemul nostru:
A=[0,1;0,Lp]
B=[0;Lda]
Q=[1/phi_max^2,0;0,1/pmax^2]
R=[1/dmax^2]
A = 0 1
0 2
B = 0
9000
Q = 33.0295 0
0 0.0366
R = 3.6699
Rezolvăm ecuaţia Riccati asociată:
[K,S,e]=lqr(A,B,Q,R)
K = 3.0000 0.1033
70
S = 1.1351 0.0012
0.0012 0.0000
e = -897.7778
-30.0743
phi=sym('phi');
p=sym('p');
x=[phi;p];
Determinăm comanda optimală folosindune de matricea K obţinută mai sus:
uop=[];
uop=-K*x
uop =-6755399441055787/2251799813685248*phi-1861191731142797/18014398509481984*p
Condiţii iniţiale
x0=[0.087;2.616]
x0 = 0.0870
2.6160
Înlocuim comanda optimală în ecuaţia de stare a sistemului şi determinăm x(t):
t=sym('t');
M=A-B*K
M = 1.0e+004 * 0 0.0001
-2.7000 -0.0928
x=eval(expm(t*M)*x0)
x =
418970952517043201/4503599627370496000*exp(-264535958050349/8796093022208*t)-
27157784935810049/4503599627370496000*exp(-7896937080653855/8796093022208*t)
761926766614425899/140737488355328000*exp(-7896937080653855/8796093022208*t)-
393757497076887851/140737488355328000*exp(-264535958050349/8796093022208*t)
phi=x(1)
phi =
71
418970952517043201/4503599627370496000*exp(-264535958050349/8796093022208*t)-
27157784935810049/4503599627370496000*exp(-7896937080653855/8796093022208*t)
p=x(2)
p =
761926766614425899/140737488355328000*exp(-7896937080653855/8796093022208*t)-
393757497076887851/140737488355328000*exp(-264535958050349/8796093022208*t)
Înlocuind
( ) t φ
şi p(t) comanda optimală devine de forma:
uop=-K*x
uop =
101116652087706599686274811782801/10141204801825835211973625643008000*exp(-
264535958050349/8796093022208*t)-
5488905505860864342848128732194449/10141204801825835211973625643008000*exp(-
7896937080653855/8796093022208*t)
Calculăm funcţionala de cost corespunzătoare comenzii optimale
F=(phi/phi_max)^2+(p/pmax)^2+(uop/dmax)^2;
J=eval(1/2*int(F,t,0,inf))
J = 0.0047
6. BILIOGRAFIE
[1] D. Mihoc, M. Ceaparu, S. St. Iliescu, I. Borangiu, “Teoria si elementele sistemelor de
reglare automata”, Editura Didactica si Pedagogica, Bucuresti, 1980
[2] Prof. Dr. V. Prepeliţă, T. Vasilache, M. Doroftei,” Control Theory”
[3] Cursuri Teoria sistemelor si control optimal, anul III, Facultatea de Stiinte Aplicate
[4] Nicolae Racoveanu, “Automatica”, Editura Militară, Buc, 1980
[5] Dr. Robert C. Nelson, “Flight Stability and Automatic Control”, McGraw-Hill, Inc., 1989
[6] Frank L. Lewis, Vassilis L. Syrmos, “Optimal Control”, Second Edition, John Wiley Sons,
New York, 1995
72
73

Sponsor Documents

Or use your account on DocShare.tips

Hide

Forgot your password?

Or register your new account on DocShare.tips

Hide

Lost your password? Please enter your email address. You will receive a link to create a new password.

Back to log-in

Close