Sunteți pe pagina 1din 12

LUCRAREA DE LABORATOR 6. PARTEA I.

MODELE MATEMATICE CU TIMP


DISCRET ŞI PREDICTORI

A. OBIECTIVELE LUCR RII


1. Ob inerea modelelor matematice cu timp discret pentru diverse clase de procese
conduse şi perturba ii.
2. Deducerea predictorilor de diferite ordine destinate unor clase de procese conduse.
3. Determinarea formelor matriceale pentru predictorii destina i unor clase de procese
conduse.

B. CONSIDERA II PREG TITOARE


Pentru atingerea obiectivelor propuse va fi prezentat un exemplu concret de calcul (Laz r,
1999). Se considerã sistemul cu douã rezervoare din fig. L6.1, proces condus frecvent întâlnit în
industria chimicã. Presupunând cã debitul dintre rezervoare este propor ional cu diferen a nivelurilor
în rezervoare şi aplicând principiul conservãrii masei (a volumului, dacã fluidul este incompresibil),
sistemul este descris de urm toarele ecua ii primare simplificate:

u(t)

A1
A2
R1 R2
h1 h2

Fig. L6.1. Schema bloc func ional simplificat a unui sistem cu douã rezervoare.

dh1 1
A1 = (h2 − h1 )u (t ) ,
dt R1
dh 1 1
A2 2 = − (h2 − h1 ) − h2 .
dt R1 R1
Considerând urm toarele valori ale parametrilor procesului condus: A1 = A2 = 1, R1 = 1/2, R2 = 1/3, se
cere:
A) sã se deduc func ia de transfer (f.d.t.) a procesului condus având ca mãrime de intrare debitul u şi
H ( s)
ca mãrime de ieşire nivelul h2 = y din rezervorul al doilea, G f ( s) = 2 ;
U (s)
B) sã se determine modelul ARX asociat f.d.t. determinate la punctul A), pentru o perioadã de
esantionare T = 0,1 sec;
C) sã se gãseascã predictorul de ordinul 3 asociat modelului de la punctul B);
D) sã se determine forma matricealã a predictorului considerându-se orizontul de predic ie p = 3.
Solu ie:
A) Aplicând transformarea Laplace în condi ii ini iale nule ecua iilor primare care descriu dinamica
sistemului, se ob in relatiil:
⎧sH 1 ( s ) = 2 H 2 ( s ) − 2 H 1 ( s ) + u ( s ) 2 1
⎨ ⇒ H 1 ( s) = H 2 (s) + U ( s) ,
⎩sH 2 ( s ) = −5 H 2 ( s ) + 2 H 1 ( s ) s+2 s+2
care conduc imediat la f.d.t. cãutatã:
2 H (s)
G f (s) = = 2 .
s + 7 s + 6 U ( s)
2

B) Modelul ARX al procesului condus este de forma urm toare:


A(q −1 ) y (k ) = B(q −1 )u (k − 1) ,
care rezultã din f.d.t. Gf(z-1) ob inutã din Gf(s) prin discretizarea ca realizare invariant la semnal
treapt în prezen a unui extrapolator de ordinul zero (zero-order hold, ZOH):
0.008 z −1 + 0.0063z −2
G f ( z −1 ) = ,
1 − 1.4536 z −1 + 0.4966 z − 2
de unde rezult imediat rela ia
(1 − 1.4536q −1 + 0.4966q −2 ) y (k ) = (0.008 + 0.0063q −1 )u (k − 1) ,
deci polinoamele A şi B au expresiile
A(q −1 ) = 1 − 1.4536q −1 + 0.4966q −2 → n A = 2
.
B (q −1 ) = 0.008 + 0.0063q −1 → n B = 1
C) Pentru calculul predictorului de ordinul 3 va fi folosit algoritmul prezentat la curs.
C.1. Pentru început vor fi calculate polinoamele E3 şi F3 rezolvând ecua ia diofanticã:
1 = A E3 + q −3 F3 ,
în care:
E3 = e0 + e1 q −1 + e2 q −2 , n E3 = i − 1 = 3 − 1 = 2 ,
F3 = f 0 + f 1 q −1 , n F3 = n A − 1 = 2 − 1 = 1 .
Rescriind ecua ia diofanticã sub forma
1 = (1 − 1.4536q −1 + 0.4966q −2 )(e0 + e1 q −1 + e2 q −2 ) + q −3 ( f 0 + f 1 q −1 ) ,
sau
1 = e0 + (e1 − 1.4536e0 )q −1 + (e2 − 1.4536e1 + 0.4966e0 )q −2 +
,
+ (−1.4536e2 + 0.4966e1 + f 0 )q −3 + (0.4966e2 + f1 )q − 4
se ob in valorile coeficien ilor celor douã polinoame men ionate:
e0 = 1
e1 = 1.4536
e2 = 1.6164 , care conduc la urmãtoarele expresii pentru E3 şi F3:
f 0 = 1.6277
f 1 = −0.8027
E3 (q −1 ) = 1 + 1.4536q −1 + 1.6164q −2
.
F3 (q −1 ) = 1.6277 − 0.8027 q −1
C.2. Al doilea pas al algoritmului prevede determinarea polinoamelor G3 şi H3 utilizând ecua ia
diofanticã
E 3 B = G3 + q −3 H 3 , cu:
G3 (q −1 ) = g 0 + g1 q −1 + g 2 q −2 , nG3 = i − 1 = 3 − 1 = 2 ,
H 3 ( q −1 ) = h0 , n H 3 = n B − 1 = 1 − 1 = 0 .
Calculând produsul E3B, rezult
E3 B = (1 + 1.4536q −1 + 1.6164q −2 )(0.008 + 0.0063q −1 ) =
,
= 0.008 + 0.0179q −1 + 0.0221q − 2 + 0.0102q −3
primii trei coeficien i fiind cei ai polinomului G3, iar ultimul cel al polinomului H3:
g 0 = 0.008
g1 = 0.0179
, rezultând
g 2 = 0.0221
h0 = 0.0102
G3 (q −1 ) = 0.008 + 0.0179q −1 + 0.0221q −2 ,
H 3 (q −1 ) = 0.0102 .
C.3. Predictorul de ordinul 3 se ob ine în pasul al treilea folosind rela ia (cunoscut de la curs)
)
y (k + 3) = F3 y (k ) + H 3 u (k − 1) + G3 u (k + 2) ,
iar prin înlocuirea polinoamelor F3, H3 şi G3 cu expresiile gãsite, expresia acestui predictor va fi
urm toarea:
)
y (k + 3) = (1.6277 − 0.8027 q −1 ) y (k ) + 0.0102u (k − 1) +
.
+ (0.008 − 0.0179q −1 + 0.0221q − 2 )u (k + 2)
Forma matricealã a predictorului pentru un orizont de predictie p = 3 este:
) )) ) )
y = Pu + Ψ s ,
unde:
) ) ) )
y = [ y ( k + 1), y ( k + 2), y ( k + 3)]T ,
)
u = [u ( k ), u ( k + 1), u ( k + 2)]T ,
)
s = [ y ( k ), y ( k − 1), u( k − 1)]T ,
) )
iar matricele P şi Ψ se construiesc utilizând rela iile de la curs.
Rezultã necesitatea determinãrii predictorilor de ordinul i, i = 1 … 3. Pentru gãsirea
polinoamelor Ei şi Fi se vor folosi rela iile din curs, iar pentru polinoamele Gi şi Hi se va folosi ecua ia
diofanticã recomandat la curs sau în (Laz r, 1999).
D) Calculul polinoamelor E1, F1, H1 şi G1 pentru predictorul de ordinul 1.
Polinoamele E1 şi F1 sunt de forma:
E1 = e1,0 , n E1 = i − 1 = 0 ,
F1 = f 1,0 + f 1,1 q −1 , n F1 = n A − 1 = 1 ,
şi pot fi determinate folosind ecua ia diofanticã:
1 = A E1 + q −1 F1 ,
sau formulele:
⎧e1,0 = 1

⎨ f 1,0 = −e1,0 a1 = 1.4536
⎪ f = −e a = −0.4966
⎩ 1,1 1, 0 2

E1 = 1 .
F1 = 1.4536 − 0.4966q −1
Pentru polinoamele H1 şi G1, prin rezolvarea ecua iei diofantice:
E1 B = G1 + q −1 H 1 , cu:
G1 = g1,0 , nG1 = i − 1 = 0 ,
H 1 = h1,0 , n H1 = i − 1 = 0 ,
se ob ine:
0.008 + 0.0063q −1 = g1, 0 + h1, 0 q −1
⎧ g1, 0 = 0.008

⎩h1,0 = 0.0063 .
G1 = 0.0008
H 1 = 0.0063
Calculul polinoamelor E2, F2, H2 şi G2 pentru predictorul de ordinul 2.
Pentru i = 2, polinoamele E2 şi F2 devin:
E 2 = e2,0 + e2,1 q −1 , n E1 = i − 1 = 1 ,
F2 = f 2, 0 + f 2,1 q −1 , n F2 = n A − 1 = 1 ,
iar coeficien ii acestora se pot calcula cu formulele
e2 , 0 = 1
e2,1 = −e2, 0 a1 = 1.4536
,
f 2, 0 = −e2, 0 a 2 − e2,1 a1 = 1.6164
f 2,1 = −e2, 0 a3 − e2,1 a 2 = −1.4536 ⋅ 0.4966 = −0.7219
rezultând:
E 2 = 1 + 1.4536q −1 ,
F2 = 1.6164 − 0.7219q −1 .
Gãsirea expresiilor polinoamelor G2 şi H2 se face rezolvând urm toarea ecua ie diofanticã:
E 2 B = G2 + q −2 H 2 , cu:
G2 = g 2, 0 + g 2,1 q −1 , nG2 = i − 1 = 1 ,
H 2 = h2,0 , n H 2 = n B − 1 = 0 .
Ecua ia este particularizat sub forma:
(1 + 1.4536q −1 )(0.008 + 0.0063q −1 ) = g 2,0 + g 2,1 q −1 + h2,0 q −2
0.008 + 0.0063q −1 + 0.0011q −1 + 100091q − 2 ,
−1 −2 −1 −2
0.008 + 0.0179q + 0.0092q = g 2, 0 + g 2,1 q + h2, 0 q
ob inându-se coeficien ii:
⎧ g 2,0 = 0.008

⎨ g 2,1 = 0.0179 .
⎪h = 0.0092
⎩ 2, 0
În final rezult :
G2 = 0.008 + 0.0179q −1
.
H 2 = 0.0092
Calculul polinoamelor E3, F3, H3 şi G3 pentru predictorul de ordinul 3.
Aceste polinoame au fost ob inute la punctul C) al exemplului şi sunt urmãtoarele:
E3 = 1 + 1.4536q −1 + 1.6164q −2
F3 = 1.6277 + 0.8027q −1
G3 = 0.008 + 0.0179q −1 + 0.00221q −2
.
H 3 = 0.0102
) )
Cunoscând coeficien ii polinoamelor Gi, Fi şi Hi, i = 1 … 3, se pot construi matricele P şi Ψ :
⎡g 0 0 ⎤ ⎡ 0.008 0 0 ⎤
) ⎢ 1,0 ⎥ ⎢
P = ⎢ g 2,1 g 2, 0 0 ⎥ = ⎢0.0179 0.008 0 ⎥⎥ ,
⎢⎣ g 3, 2 g 3,1 g 3, 0 ⎥⎦ ⎢⎣ 0.0221 0.0179 0.008⎥⎦
⎡f f 1,1 h1, 0 ⎤ ⎡1.4536 − 0.4966 0.0063⎤
) ⎢ 1, 0 ⎥
Ψ = ⎢ f 2, 0 f 2,1 h2,0 ⎥ = ⎢⎢1.6164 − 0.7219 0.0092⎥⎥ ,
⎢⎣ f 3, 0 f 3,1 h3, 0 ⎥⎦ ⎢⎣1.6277 − 0.8027 0.0102⎥⎦
şi astfel se ob ine forma matricealã a predictorului:
)
⎡ y (k + 1) ⎤ ⎡ 0.008 0 0 ⎤ ⎡ u (k ) ⎤ ⎡1.4536 − 0.4966 0.0063⎤ ⎡ y (k ) ⎤
⎢ y) (k + 2)⎥ = ⎢0.0179 0.008 0 ⎥⎥ ⋅ ⎢⎢ u (k +!) ⎥⎥ + ⎢⎢1.6164 − 0.7219 0.0092⎥⎥ ⋅ ⎢⎢ y (k − 1) ⎥⎥
⎢) ⎥ ⎢
⎣⎢ y (k + 3) ⎦⎥ ⎣⎢ 0.0221 0.0179 0.008⎦⎥ ⎣⎢u (k + 2)⎦⎥ ⎣⎢1.6277 − 0.8027 0.0102⎦⎥ ⎣⎢ y (k − 2)⎦⎥

C. TEMATICA LUCR RII:


Se consider urm toarele procese conduse de ordinul al doilea, des întâlnite în practic şi
recomandate în literatur pentru testarea regulatoarelor de tip PI / PID (benchmarks) (Preitl şi Precup,
2001):
1
1.) H PC ( s ) = , n∈{1, 2, 3} (situa ia de baz : n = 2);
(1 + s) n
1
2.) H PC ( s ) = , α ∈ {0.1, 0.2, 0.5}, αn=0,2;
(1 + s )(1 + α s )
1 − T1 s
3.) H PC ( s ) = k PC , kPCn = 1, T1n = 2 T2n = 2.2, α3n = 1, T3n = 6.8,
(1 + T2 s )(α 3 + T3 s )
kPC ∈ [0.75, 1.25], α3 ∈ [0, 1], T1 ∈ [1.7 ,2.7], T2n ∈ [0.8, 1.4];
4.)

Fig. L6.2.

k – variabil (alegerea valorii sale r mâne la latitudinea proiectantului);


5.)

Fig. L6.3.

ke = 35 V/V, Ra = 4.2 , La = 14.28 mH, ke = km = 0.33, J = 0.71 10-3 kg m2.


Pentru aceste cinci procese se cere rezolvarea punctelor A) … D) men ionate în paragraful
anterior, care conduc la ob inerea modelor ARX şi a predictorilor asocia i acestora.
Remarc : Punctul A) este deja rezolvat pentru procesele 1.) … 3.).
LUCRAREA DE LABORATOR 6. PARTEA A II-A. PROIECTAREA ALGORITMILOR DE
REGLARE AUTOMAT CU PREDIC IE DE MINIM VARIAN BAZA I PE
MINIMIZAREA UNOR FUNC II OBIECTIV P TRATICE PE UN PAS

A. OBIECTIVELE LUCR RII


1. Cunoaşterea expresiilor uzuale ale func iilor obiectiv p tratice pe un pas bazate pe
eroarea de urm rire şi, eventual, pe comand .
2. Aplicarea metodologiei de proiectare a algoritmilor de reglare automat cu predic ie
de minim varian bazate pe minimizarea unor func ii obiectiv p tratice pe un pas
destinate conducerii diverselor clase de procese.
3. Deducerea formei standard (RST, cu dou grade de libertate, 2-DOF) a sistemului de
reglare automat (SRA) cu predic ie.
4. Studiul efectului modific rii valorilor coeficien ilor de ponderare din func iile obiectiv
asupra performan elor SRA proiectate, inclusiv asupra valorii de regim sta ionar
constant a erorii de reglare.

B. CONSIDERA II PREG TITOARE


Pentru atingerea obiectivelor propuse, va fi prezentat un exemplu concret de calcul (Laz r,
1999). Se considerã c procesul condus este caracterizat prin urm torul model ARX (a se vedea şi
exemplul din partea I a lucr rii):
A(q −1 ) y (k ) = B (q −1 )u (k − 1) + e(k ) ,
în care polinoamele au expresiile:
A(q −1 ) = 1 − 1.4536q −1 + 0.4966q −2 → n A = 2, a1 = −1.4536, a 2 = 0.4966
.
B (q −1 ) = 0.008 + 0.0063q −1 → n B = 1, b0 = 0.008, b1 = 0.0063
Se cere:
A) s se proiecteze algoritmul de reglare automat cu predic ie (regulatorul cu predic ie) ob inut prin
minimizarea urm toarei func ii obiectiv:
1 ) λ
J = [ y (k + 1) − r (k + 1)] 2 + u 2 ( k ) ,
2 2
în care ≥0 reprezint un coeficient de ponderare;
B) s se reprezinte structura standard de reglare automat (RST) care con ine acest regulator;
C) s se calculeze valoarea de regim sta ionar constant a erorii de reglare (eroarea sta ionar ) în
condi iile unei referin e de tip treapt unitate, r(k) = 1, k ≥ 0.
Solu ie:
A) Pornind de la modelul matematic al procesului condus, rezultã urmãtorul predictor de minimã
varian ã de ordinul 1:
yˆ (k + 1) = Bu (k ) + q(1 − A) y (k )
Înlocuind expresia acestui predictor în func ia obiectiv, se ob ine:

J=
1
[Bu(k ) + q(1 − A) y(k ) − r (k + 1)]2 + λ u 2 (k ) .
2 2
Prin minimizarea acestei func ii obiectiv în raport cu u(k) se gãşeste expresia legii de reglare:
∂J b0 qb (1 − A)
=0 => u (k ) = r (k + 1) − 0 y (k )
∂u (k ) b0 B + λ b0 B + λ
şi astfel regulatorul cu predictie va ob ine forma:
0.008(1.4536 + 0.4966q −1 )
u (k ) = ( ) y (k ) .
0.008
+ −
0.008(0.008 + 0.0063q −1 ) + λ 0.008(0.008 + 0.0063q −1 ) + λ
r k 1

B) Pentru a se ob ine forma standard, se calculeazã polinoamele:


B+λ 0.0063 −1
R= = 0.008 + 0.0063q −1 + λ = 1 + q
b0 + λ 0.008 + λ

S= =
(
qb0 (1 − A) 0.008 − 1.4536 + 0.4966q −1
=
)
0.0116
+
0.0039 −1
q .
b0 + λ 0.008 + λ 0.008 + λ 0.008 + λ
b0 c 0.008
T* = =
b0 + λ 0.008 + λ
Schema bloc informa ional standard a structurii de reglare automat cu predic ie rezult
conform fig. L6.4.

e(k)
r(k) r(k+1) 1 u(k) B y(k)
q
––– T* q −1
R A

S
Fig. L6.4.

C) Calculul valorii de regim sta ionar constant a erorii de reglare se face aplicând urm toarea formul :
λ λ λ
ε s = r (k + 1) − y s = r (k + 1) = = .
B (1) 0.0143 λ + 0.0026
λ+ b0 λ+ 0.008
A(1) 0.043

C. TEMATICA LUCR RII


1. Se consider aceleaşi procese conduse de tip benchmark acceptate în partea I a lucr rii.
Pentru cele cinci procese se cere rezolvarea punctelor A) … C) men ionate în paragraful anterior, care
permit:
• proiectarea algoritmului de reglare automat cu predic ie;
• reprezentarea structurii standard de reglare automat (RST);
• calculul valorii de regim sta ionar constant a erorii de reglare.
2. Pentru fiecare proces se cere simularea comport rii SRA proiectate în mediul Matlab &
Simulink în condi iile aplic rii unui semnal de tip treapt unitate pe intrarea de referin şi ale
aplic rii, dup ce SRA intr în regim sta ionar constant, a unei perturba ii aditive pe ieşire de tip
treapt unitate.
3. Pentru fiecare proces se cere efectuarea unui studiu – pe baza simul rii comport rii SRA
proiectate în mediul Matlab & Simulink conform scenariului de la punctul 2. – privind efectul
modific rii valorilor coeficien ilor de ponderare ≥0 din func iile obiectiv asupra performan elor SRA
proiectate (exprimate sub forma indicatorilor de calitate empirici), inclusiv asupra valorii de regim
sta ionar constant a erorii de reglare.

D. CON INUTUL REFERATULUI


- calcule conform tematicii din cele dou p r i ale lucr rii;
- rezultate de simulare pe calculator numeric a comport rii SRA proiectate în raport cu modific rile
intr rilor de referin şi de perturba ie urm rind inclusiv efectele modific rii coeficien ilor dfe
ponderare asupra performan elor (de regim dinamic şi sta ionar constant) realizabile de SRA;
- programe Matlab şi Simulink;
- comentarii privind efectul alegerii coeficien ilor de ponderare asupra performan elor SRA ;
- important ! se preg teşte un singur referat pentru întreaga lucrare, nu se preg tesc 2 referate
corespunz toare celor 2 p r i ale lucr rii.

E. BIBLIOGRAFIE
Laz r, C.: Conducerea predictiv a proceselor cu model cunoscut, Editura Matrix Rom, Bucureşti,
1999.
Preitl, S. şi R.-E. Precup: Introducere în ingineria regl rii automate, Editura Politehnica, Timişoara,
2001.
M.-B. Radac, 2019

Partea a III-a. Folosirea predictorilor de ordin mai mare cu funcții obiectiv pe mai
mulți pași

Exemplu de calcul al predictorului de ordin mai mare decât unu și folosirea acestuia într-o problemă de
urmărire a traiectoriei de referință rezolvată în cadru MPC cu o funcție obiectiv pe mai mulți pași.
Fie predictorul de ordinul 3 al sistemului cu două rezervoare din Partea I.B a lucrării de laborator.
1) Să se implementeze și să se simuleze în Simulink o soluție de reglare de tip MPC pentru urmărirea
unei intrări de referință de tip treaptă care comută din 0 în 1 la 0.2 sec, și răspunsul sistemului de
reglare la o perturbație de amplitudine 0.2 care acționează la 0.6 sec. Funcția obiectiv MPC de
∑ (r (k + i) − y(k + i))
3
minimizat la fiecare pas de eșantionare este J ( k ) = 2
+ λu 2 (k + i − 1) cu
i =1
λ = 0.0001 .
Soluție. Predictorii vor fi calculați de această dată prin intermediul unui script Matlab care în prealabil
discretizează funcția de transfer a procesului de la intrare la ieșire pentru o perioadă de eșantionare de 0.1
sec și o aduce la forma ARX cunoscută: A(q −1 ) y(k ) = B(q −1 )u (k − 1) . Calculul fiecărui predictor se face
rezolvând ecuațiile diofantice aferente. Fie acest script redat mai jos:
1 COD 1
2 % ------------------date_init.m----------------------- %
3 s=tf('s');
4 pc=2/(s^2+7*s+6);
5 Ts=0.1;
6 pcd=c2d(pc,Ts,'zoh')
7 pcdf=filt(pcd.num{1},pcd.den{1},Ts);B=pcd.num{1}(2:3);A=pcd.den{1};
8 nA=2;nB=1; % forma ARX A(q^-1)*y(k)=B(q^-1)*u(k-1)
9
10 Tsim=20;
11 N=(Tsim/Ts);
12
13 Orizont=3;
14 Q=eye(Orizont);lambda=0.0001;
15 R=zeros(N+Orizont,1);R(21:end)=1;
16
17 %calcul forma matriceala predictor
18 %A=[1 a1*q^-1 a2*q^-2]=[1 a1 a2],B=[b0 b1*q^-1]
19 %predictor de ordin 3
20 e30=1;
21 E3=[e30 -A(2)*e30 A(2)*A(2)*e30-A(3)*e30]; %E3=[e30 e31 e32]
22 F3=[-A(2)*E3(3)-A(3)*E3(2) -A(3)*E3(3)]; %F3=[f30 f31];
23 tmp=conv(E3,B);
24 G3=tmp(1:3);H3=tmp(4);
25
26 %predictor de ordin 1
27 e10=1;E1=e10;F1=-e10*[A(2) A(3)];G1=B(1);H1=B(2);
28
29 %predictor de ordin 2
30 e20=1;E2=[e20 -e20*A(2)];F2=[-e20*A(3)-E2(2)*A(2) -E2(2)*A(3)];
31 tmp=conv(E2,B);G2=tmp(1:2);H2=tmp(3);
32
33 P=[G1 0 0;fliplr(G2) 0;fliplr(G3)];H=[F1 H1;F2 H2;F3 H3];
34
35 % to clear persistent vars in Fcn, call >>clear 'FcnName' in prompt
36 clear myMPC
37 %-----------------------------------------------------------%
M.-B. Radac, 2019

Apoi, se remarcă în primul rând faptul că forma matriceală a predictorului până la ordinul 3
inclusiv este:
)
 y ( k + 1)   y(k )  u ( k ) 
 y) ( k + 2)  = H  y ( k − 1)  + P u ( k + 1)  =⇔ Y = Hξ + PU ,
)     
 y ( k + 3)  u (k − 1)  u ( k + 2) 
cu matricele P și H calculate în linia 38 din COD 1. Funcția obiectiv adusă în forma matriceală este
J = (R s − Y) T (R s − Y) + λU T U = ... = U T (P T P + λI) U − 2(R s − Hξ) T PU + Ψ T Ψ care minimizată
1
424
3
Ψ

în raport cu U conduce la soluția analitică U = ( PT P + λI) −1 PT (R s − Hξ),


*
unde
R s = [r (k + 1) r (k + 2) r (k + 3)] este vectorul referințelor viitoare.
T

Implementarea în Simulink a soluției se face folosind schema din Fig. 2, în care este folosit un
bloc de tip Matlab (Embedded) Function care rulează la fiecare pas de eșantionare codul aferent. Esența
schemei de implementare are la bază vectorul ξ = [ y (k ), y (k − 1), u (k − 1)]T care trebuie reactualizat la
fiecare pas de eșantionare. În acest sens, ξ este construit prin cod din doi vectori
yPast = [ y (k ), y (k − 1)]T , uPast = [u (k − 1)]T care sunt actualizați cu ultimele valori ale intrărilor
blocului de tip Embedded (sau Matlab Function), a se vedea Fig. 2 de mai jos.

Fig. 2. Schema Simulink care implementează soluția de reglare MPC.

Este redat mai jos codul aferent blocului embedded care implementează soluția de reglare MPC:
1 COD 2
2 % ------------------myMPC.m----------------------- %
3 function u=myMPC(input,R,P,H,Q,nA,nB,lambda,Orizont)
4
5 % to clear persistent vars in Fcn, call >>clear 'FcnName' in prompt
6 %clear myMPC
7 persistent yPast uPast k
8
9 if isempty(yPast) % initializari variabile persistente la prima rulare
10 yPast=zeros(2,1);
11 uPast=zeros(1,1);
12 k=1;
13 end
14
15 % actualizare uPast
16 for i=length(uPast):-1:2
17 uPast(i)=uPast(i-1);
18 end
19 uPast(1)=input(1);
20 %%%%%%%%%%%%%%%%%%
M.-B. Radac, 2019

21
22 % actualizare yPast
23 for i=length(yPast):-1:2
24 yPast(i)=yPast(i-1);
25 end
26 yPast(1)=input(2);
27 %%%%%%%%%%%%%%%%%%
28
29 Rs=[R(k+1) R(k+1) R(k+1)]';
30 %eyeO=[1 0 0;0 1 0;0 0 1];
31
32 Sol=-inv(P'*Q*P + lambda*eye(3)) * P' * Q * (H*[yPast;uPast]-Rs);
33 u=Sol(1);
34
35 k=k+1; %salt la pasul urmator
36
37 end % end myMPC
38 %-----------------------------------------------------------%

Se remarcă în final următoarele aspecte de principiu:


1. Prin cod trebuie avut grijă ca vectorul ξ care conține valorile trecute ale intrării și valorile trecute ale
ieșirii până la momentul curent să actualizeze la fiecare pas aceste valori, adică valorile intrării/ieșirii de la
momentul curent devin valori trecute la pasul următor.
2. Implementarea poate prelua intrarea de referință ”din viitor” în cazul în care există o prognoză cunoscută
aprioric. În caz contrar, cea mai bună predicție a valorilor viitoare ale referinței poate fi considerată
valoarea de la momentul curent. Totuși, pentru scenariul care ia în calcul referința prognozată, pot fi
observate două efecte interesante: răspunsul ieșirii reglate începe înainte de modificarea referinței și
amplitudinea comenzilor în acest caz este mai mică, necesitând energie (efort) mai redusă la nivelul
elementului de execuție, cu consecințe economice benefice.
3. Varianta de implementare nu este capabilă să asigure eroare de reglare nulă și nici rejecția perturbației, în
regim staționar constant, după cum poate fi observat în rezultatul de simulare din Fig. 3 de mai jos. Pentru a
remedia acest aspect, există diverse soluții care sunt discutate în cadrul cursului.
4. Conform principiului MPC, doar prima valoare din vectorul U este transmisă procesului după care, la
pasul următor, valorile U vor fi suprascrise cu noua soluție.

Fig. 3. Rezultatele de simulare.


M.-B. Radac, 2019

Rămâne ca și exercițiu testarea mai multor variante de „încărcare” a vectorului referințelor viitoare
pentru a observa efectul asupra răspunsului de la ieșire (ieșirea poate anticipa modificarea viitoare a
referinței și să înceapă răspunsul mai devreme). Se va testa și efectul diverselor alegeri ale parametrului
λ = 0.0001 asupra soluției.

Tematica lucrării
Fie procesul condus redat prin schema bloc informațională de mai jos

Fig. 4 Procesul condus. (Preitl et al., 2009)

cu valorile parametrilor kp=35 V/V, Ra=4.2 Ω, La=14.28 mH, ke=km=0.33, J=0.71·10-3 kg·m2. Se cere:
1) Să se calculeze de mînă și să se verifice apoi cu calculatorul, forma matriceală a predictorului până
la ordinul 3, folosind modelul intrare ieșire de forma ARX, pentru modelul în timp discret al
procesului rezultat în urma discretizării cu metoda r.i.s.t. pentru perioada de eșantionare de 0.01
sec.
2) Să se implementeze și să se simuleze în Simulink o soluție de reglare de tip MPC pentru urmărirea
unei intrări de referință de tip treaptă care comută din 0 în 1 la 0.2 sec, și răspunsul sistemului de
reglare la o perturbație de amplitudine 0.2 care acționează la 0.6 sec. Funcția obiectiv MPC de
minimizat la fiecare pas de eșantionare este J (k ) = ∑3 (r (k + i ) − y (k + i ) )2 + λu 2 (k + i − 1) cu
i =1

λ = 0 .1 .
Pe scenariul de test de mai sus, se vor nota observațiile privind
- influența parametrului parametrului λ asupra performanțelor de reglare,
- efectul modificării parametrului kp=25 V/V asupra performanțelor de reglare,
- efectul încărcării referințelor viitoare cu valoarea de la pasul curent sau cu valori de evoluție
cunoscute dinainte.

Bibliografie
Preitl, St., Precup, R.-E., Preitl, Zs.: Structuri şi algoritmi pentru conducerea automată a proceselor, vol. 2,
Editura Orizonturi Universitare, Timişoara, 2009.

S-ar putea să vă placă și