clase 13 control con modelo de...
TRANSCRIPT
Clase 13 Control con Modelo de Referencia.doc 1
1. Control con Modelo de Referencia 1. CONTROL CON MODELO DE REFERENCIA....................................................1
1.1. INTRODUCCIÓN..........................................................................................................2
1.2. CONTROL CON MODELO DE REFERENCIA DETERMINISTA .......................................3
1.3. CONTROL CON MODELO DE REFERENCIA ESTOCÁSTICO........................................10
1.4. SIMULACIONES ........................................................................................................15
1.4.1. Control con Modelo de Referencia .................................................................15
1.4.2. Control con Modelo de Referencia Adaptativo ..............................................19
1.4.3. Control con Modelo de Referencia Estocástico .............................................23
1.5. REFERENCIAS ..........................................................................................................31
Clase 13 Control con Modelo de Referencia.doc 2
1.1. Introducción Se contempla en el diseño la dinámica de la referencia:
Mkk+d k+d
H = = y y rE (1.1)
r es un escalón y H y E dos polinomios que definen la dinámica del modelo.
-+
k dr +-d Bz A
′ku ky
Mky-d Hz
Ekε+
-
Clase 13 Control con Modelo de Referencia.doc 3
1.2. Control con Modelo de Referencia Determinista En este caso el modelo de la planta será:
-dA y = B uz ′ (1.2)
Se definirá un nuevo predictor del siguiente modo:
kk+d kE = G + F B y y u′ (1.3)
donde los polinomios F y G cumplen la ecuación, -dE = F A + Gz (1.4)
La ecuación (1.2) y la (1.3) son equivalentes ya que si multiplicamos (1.2) por F resulta:
( )-d
-d -d
F A y = F B uzE - G y = F B uz z
′
′ (1.5)
kk+d kE = G + F B y y u′ (1.6)
Como el objetivo es cumplir (1.1), la ley de control deberá ser:
kkk+d kE = G + F B = H y y u r′ (1.7)
Clase 13 Control con Modelo de Referencia.doc 4
-+
k dr + -d Bz A
′ku ky1FB′
G
H
kk k
-d
kk
-d -d
kk k
= H - G yr Bz= y
A F B H Gz z= - y yrF A F A
ε
ε′′
(1.8)
( )-d -dkkF A - G = H yz z r (1.9)
k+d
k
y H= Er
(1.10)
estabilidad de la actuación.
Clase 13 Control con Modelo de Referencia.doc 5
-d
u = F B
G B= H r - u = F B uz A
ε
ε
′′
′ (1.11)
( )-dH A r = A F B + B G uz′ ′ (1.12)
u H A=r E B′
(1.13)
B' debe ser estable.
Clase 13 Control con Modelo de Referencia.doc 6
Notación vectorial de la ley de control:
( )kk 0 kk0
1 = H - G + - F B yu b urb
′ (1.14)
Tk k = pu x (1.15)
donde T a
kk k-1k = , - - yx ur … … (1.16)
T 0 1
0 0 0
g f b1= , pb b b
′
… … (1.17)
y la variable auxiliar ak k = H r r (1.18)
Clase 13 Control con Modelo de Referencia.doc 7
Notación vectorial de la planta: El predictor dice
kk+d kE = G + F B y y u′ (1.19)
o
( )
0 k 0 k k k+d
k 0 kk+d k0
+ ( F B - ) + G = E y yb u b u1 = E - G + - F B y yu b ub
′
′ (1.20)
definiendo la variable auxiliar, ak+d k+d = E y y (1.21)
la expresión de ku resulta T
k k = pu x (1.22)
siendo los vectores: aT
k-1k k+d k
T 0 1
0 0 0
= , - - y y ux
g f b1= , pb b b
′
… …
… … (1.23)
Clase 13 Control con Modelo de Referencia.doc 8
Si no se conoce p se lo debe estimar con algún método de identificación recur-sivo.
Ejemplo: Planta
( )1 -2
-2 1
1 -2 -3
1 1,74 +0,77z
z 0,0011 0,0009
C=1 2 +1,29z 0,27z
A z
B z
z
−
−
−
= −
= +
− −
(1.24)
Modelo de referencia:
-1
0,41 0,6z
HE=
= − (1.25)
Reducción de la ganancia a la mitad en la muestra 50.
Clase 13 Control con Modelo de Referencia.doc 9
0 50 100 150 200 250-1.5
-1
-0.5
0
0.5
1
1.5
0 50 100 150 200 250-1.5
-1
-0.5
0
0.5
1
1.5
0 50 100 150 200 250-1
-0.5
0
0.5
1
1.5
2
2.5
Clase 13 Control con Modelo de Referencia.doc 10
1.3. Control con Modelo de Referencia Estocástico Modelo del proceso:
-dA y = B u + C z ω′ (1.26)
Se definirá una variable filtrada fy de la forma:
f = E yy (1.27)
Se puede demostrar que la mejor predicción de fy es: 0
kkf k+dC = G + F B yy u′ (1.28)
siendo -dC E = F A + Gz (1.29)
Demostración:
( )( ) ( )
-d -d
-dkk
0f k
C E - G y = F B u + F C z z
C E y - F = G + F B y uz
= E y - F y
ω
ω
ω
′
′ (1.30)
donde el valor Fω es el error de predicción.
Clase 13 Control con Modelo de Referencia.doc 11
Por lo tanto el control debe ser tal que M M
f fE y = = H r = E = y y y (1.31)
Definimos el funcional a minimizar de la siguiente forma:
( ){ }min2MJ E y - y = ∑ (1.32)
Sumando y restando el predictor se obtiene:
{ }[ ][ ]{ }
( ) ( ) [ ][ ]{ }
2M 0 0f f
2 20 M 0f f
22 M 0f
J E y - E + - y y y
E y - + E - + 2y y y
F + E - + 2y yω
= Σ
= Σ
= Σ
(1.33)
esto se cumple ya que 0
f f - = F y y ω (1.34)
Entonces, para que J sea mínimo debe cumplirse M 0
fE - = 0y y (1.35)
Clase 13 Control con Modelo de Referencia.doc 12
es decir 0 Mf f = y y (1.36)
y si se reemplaza la ecuación del predictor, 0
kkf k+dM
kk+d
C = G + F B yy u
= C E = C H y r
′ (1.37)
la ley de control queda
kk kF B = C H - G yu r′ (1.38)
Clase 13 Control con Modelo de Referencia.doc 13
-+
k dr + -d Bz A
′ku ky1FB′
G
HC
CA
+
kω
+
Relación entre referencia y salida.
-d
-d -d
k k+dk+d
k k+dk+d
= H C r - G yCzy = +
F A AF A y = H C r - G y + C F z z
C E = H C + C F y rE = H + F y r
ε
ε ω
ω
ωω
(1.39)
Clase 13 Control con Modelo de Referencia.doc 14
Por lo tanto la salida sigue al modelo excepto un error debido al ruido. En cuan-to a la variable de control, obedece a la siguiente ecuación: u A H C = r E B′
(1.40)
O sea que es estable para sistemas de fase mínima.
0 50 100 150 200 250-1.5
-1
-0.5
0
0.5
1
1.5
Clase 13 Control con Modelo de Referencia.doc 15
1.4. Simulaciones 1.4.1. Control con Modelo de Referencia
cambioref = 50; ciclos = 5; n = cambioref * ciclos; e = 0.02*randn(n,1); y = zeros(n,1); Ap = [1 -1.74 .77]; Bp = 2 * [1.1 .9]; A = Ap; B = Bp; na = length(Ap); nb = length(Bp); C = [1.0000 -2.0000 1.2900 -0.2700 0 0 0 0]; nc = 4; EE = [1 -.60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]; ne = 2; HH = [.4 0 0 0 0 0 0]; nh = 1; nk = 2; ref = ones(cambioref,1); for i = 1:ciclos-1, ref = [ref; (-1)^i*ones(cambioref,1)]; end; Ra = zeros(n,1); ym = zeros(n,1);
Clase 13 Control con Modelo de Referencia.doc 16
u = zeros(n,1); % calculo del vector F F = zeros(nk,1); F(1) = 1; for i = 2: nk F(i) = EE(i); for j = 1:i-1 if i-j+1 <= length(A) F(i) = F(i) - F(j)*A(i-j+1); end; end; end; % calculo del vector G G = zeros(na,1); for i = 1: na G(i) = EE(nk + i); for j = 0:nk-1 if i+nk-j <= length(A) G(i) = G(i) - F(j+1)*A(i+nk-j); end; end; end; % calculo del vector FB FB = conv(F,B)'; % cálculo del vector de parámetros ParReg = ones(na+nb+nk-3+length(P),1)*B(1) /( B(1)*B(1)+lambda); ParReg(2:na) = ParReg(1) * G(1:na-1);
Clase 13 Control con Modelo de Referencia.doc 17
ParReg(na+1:na+nb+nk-2) = (FB(2:nb+nk-1)+lambda*R(2:nb+nk-1)'/B(1)) * ParReg(1); ParReg(na+nb+nk-1:na+nb+nk+length(P)-3) = -lambda*P(2:length(P))/B(1)*ParReg(1); for i = nk+nb+5 : n % reducción de ganancia if i==120 B=B./2; end % Sistema y(i) = 0; for j = 2:na y(i) = y(i) - A(j)*y(i-j+1); end; for j = 1:nb y(i) = y(i) + B(j)*u(i+1-j-nk); end; % y(i)=fliplr(B(1:length(B)))*u(i-length(B):i-1)-%fliplr(A(2:length(A)))*y(i-length(A)+1:i-1); for j = 1:nc y(i) = y(i) + C(j)*e(i-j); end; % Regulador % cálculo de la ref filtrada: ra = referencia * H for j = 1:nh Ra(i) = Ra(i) + ref(i-j+1)*HH(j); end; ym(i) = Ra(i); for j = 2:ne ym(i) = ym(i) - ym(i-j+1)*EE(j); end; % cálculo del vector de valores para el control predictivo ValReg = zeros(na+nb+nk-3+length(P),1);
Clase 13 Control con Modelo de Referencia.doc 18
ValReg(1) = Ra(i); ValReg(2:na) = -flipud(y(i-na+2:i)); ValReg(na+1:na+nb+nk-2) = -flipud(u(i-nb-nk+2:i-1)); % actuación u(i) = ValReg' * ParReg; end plot([y ym]);grid; hold on; stairs(u,'r'); hold off axis([0 n -1.5 1.5])
0 50 100 150 200 250-1.5
-1
-0.5
0
0.5
1
1.5
Clase 13 Control con Modelo de Referencia.doc 19
1.4.2. Control con Modelo de Referencia Adaptativo
cambioref = 50; ciclos = 5; n = cambioref * ciclos; e = 0.02*randn(n,1); y = zeros(n,1); Ap = [1 -1.74 .77]; Bp = 2 * [1.1 .9]; A = Ap; B = Bp; na = length(Ap); nb = length(Bp); C = [1.0000 -2.0000 1.2900 -0.2700 0 0 0 0]; nc = 4; EE = [1 -.60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]; ne = 2; HH = [.4 0 0 0 0 0 0]; nh = 1; nk = 2; ref = ones(cambioref,1); for i = 1:ciclos-1, ref = [ref; (-1)^i*ones(cambioref,1)]; end; Ra = zeros(n,1);
Clase 13 Control con Modelo de Referencia.doc 20
ym = zeros(n,1); u = zeros(n,1); % inicialización identificación np=na+nb+nk+length(P)-1-2; Aest = ones(n,np); lam=.9; p=10000*eye(np); th=eps*ones(np,1); % calculo del vector F F = zeros(nk,1); F(1) = 1; for i = 2: nk F(i) = EE(i); for j = 1:i-1 if i-j+1 <= length(A) F(i) = F(i) - F(j)*A(i-j+1); end; end; end; % calculo del vector G G = zeros(na,1); for i = 1: na G(i) = EE(nk + i); for j = 0:nk-1 if i+nk-j <= length(A) G(i) = G(i) - F(j+1)*A(i+nk-j); end; end; end;
Clase 13 Control con Modelo de Referencia.doc 21
% calculo del vector FB FB = conv(F,B)'; % cálculo del vector de parámetros ParReg = ones(na+nb+nk-3+length(P),1)*B(1) /( B(1)*B(1)+lambda); ParReg(2:na) = ParReg(1) * G(1:na-1); ParReg(na+1:na+nb+nk-2) = FB(2:nb+nk-1) * ParReg(1); for i = nk+nb+5 : n % reducción de ganancia if i==120 B=B./2; p=10000*eye(np); end % Sistema y(i) = 0; for j = 2:na y(i) = y(i) - A(j)*y(i-j+1); end; for j = 1:nb y(i) = y(i) + B(j)*u(i+1-j-nk); end; for j = 1:nc y(i) = y(i) + C(j)*e(i-j); end; % Regulador % cálculo de la ref filtrada: ra = referencia * H for j = 1:nh Ra(i) = Ra(i) + ref(i-j+1)*HH(j);
Clase 13 Control con Modelo de Referencia.doc 22
end; ym(i) = Ra(i); for j = 2:ne ym(i) = ym(i) - ym(i-j+1)*EE(j); end; % cálculo del vector de valores para el control predictivo ValReg = zeros(na+nb+nk-3+length(P),1); ValReg(1) = Ra(i); ValReg(2:na) = -flipud(y(i-na+2:i)); ValReg(na+1:na+nb+nk-2) = -flipud(u(i-nb-nk+2:i-1)); % actuación % u(i) = ValReg' * ParReg; u(i) = Aest(i-1,1:np) * ValReg(1:np); % Cálculo del vector X para el identificador x = zeros(np,1); % x(1)=y(i)+lambda/Bp(1)*uf(i-nk); for j = 1:ne x(1) = x(1) + y(i-j+1)*EE(j); end; x(2:na)=-flipud(y(i-na+2-nk:i-nk)); x(na+1:na+nb+nk-2) = -flipud(u(i-nb-nk+2-nk:i-1-nk)); % x(na+nb+nk-1:na+nb+nk+length(P)-3) = -flipud(uf(i-length(P)+1-nk:i-1-nk)); % Identificación yh=x'*Aest(i-1,1:np)'; epsi=u(i-nk)-yh; K=p*x/(lam + x'*p*x); p=(p-K*x'*p)/lam; Aest(i,1:np)=(Aest(i-1,1:np)'+K*epsi)'; epsilon=u(i)-Aest(i,1:np)*x;
Clase 13 Control con Modelo de Referencia.doc 23
end plot([y ym]);grid; hold on; stairs(u,'r'); hold off axis([0 n -1.5 1.5]) plot([Aest Aesti]);grid
1.4.3. Control con Modelo de Referencia Estocástico
cambioref = 50; ciclos = 5; n = cambioref * ciclos; e = 0.02*randn(n,1); y = zeros(n,1); Ap = [1 -1.74 .77]; Bp = 2 * [1.1 .9]; A = Ap; B = Bp; na = length(Ap); nb = length(Bp); C = [1.0000 -2.0000 1.2900 -0.2700 0 0 0 0]; nc = 4; EE = [1 -.60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]; ne = 2; HH = [.4 0 0 0 0 0 0]; nh = 1;
Clase 13 Control con Modelo de Referencia.doc 24
CE = conv(C,EE); CH = conv(C,HH); nk = 2; ref = ones(cambioref,1); for i = 1:ciclos-1, ref = [ref; (-1)^i*ones(cambioref,1)]; end; Ra = zeros(n,1); ym = zeros(n,1); u = zeros(n,1); % calculo del vector F F = zeros(nk,1); F(1) = 1; for i = 2: nk F(i) = CE(i); for j = 1:i-1 if i-j+1 <= length(A) F(i) = F(i) - F(j)*A(i-j+1); end; end; end; % calculo del vector G G = zeros(na,1); for i = 1: na G(i) = CE(nk + i); for j = 0:nk-1 if i+nk-j <= length(A) G(i) = G(i) - F(j+1)*A(i+nk-j); end;
Clase 13 Control con Modelo de Referencia.doc 25
end; end; % calculo del vector FB FB = conv(F,B)'; % cálculo del vector de parámetros ParReg = ones(na+nb+nk-1,1)/ B(1); ParReg(2:na+1) = ParReg(1) * G(1:na); ParReg(na+2:na+nb+nk-1) = FB(2:nb+nk-1) * ParReg(1); for i = nk+nb+5 : n % reducción de ganancia if i==120 B=B./2; end % Sistema y(i) = 0; for j = 2:na y(i) = y(i) - A(j)*y(i-j+1); end; for j = 1:nb y(i) = y(i) + B(j)*u(i+1-j-nk); end; for j = 1:nc y(i) = y(i) + C(j)*e(i-j); end; % Regulador % cálculo de la ref filtrada: ra = referencia * CH for j = 1:5 %nh Ra(i) = Ra(i) + ref(i-j+1)*CH(j); end; ym(i) = Ra(i); for j = 2:6 %ne
Clase 13 Control con Modelo de Referencia.doc 26
ym(i) = ym(i) - ym(i-j+1)*CE(j); end; % cálculo del vector de valores para el control predictivo ValReg = zeros(na+nb+nk-1,1); ValReg(1) = Ra(i); ValReg(2:na+1) = -flipud(y(i-na+1:i)); ValReg(na+2:na+nb+nk-1) = -flipud(u(i-nb-nk+2:i-1)); % actuación u(i) = ValReg' * ParReg; end plot([y ym]);grid; hold on; stairs(u,'r'); hold off axis([0 n -1.5 1.5])
Clase 13 Control con Modelo de Referencia.doc 27
0 50 100 150 200 250-1.5
-1
-0.5
0
0.5
1
1.5
cambioref = 50; ciclos = 5; n = cambioref * ciclos; e = 0.02*randn(n,1); y = zeros(n,1); Ap = [1 -1.74 .77]; Bp = 2 * [1.1 .9]; A = Ap; B = Bp;
Clase 13 Control con Modelo de Referencia.doc 28
na = length(Ap); nb = length(Bp); C = [1.0000 -2.0000 1.2900 -0.2700 0 0 0 0]; nc = 4; EE = [1 -.60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]; ne = 2; HH = [.4 0 0 0 0 0 0]; nh = 1; CE = conv(C,EE); CH = conv(C,HH); nk = 2; ref = ones(cambioref,1); for i = 1:ciclos-1, ref = [ref; (-1)^i*ones(cambioref,1)]; end; Ra = zeros(n,1); ym = zeros(n,1); u = zeros(n,1); % calculo del vector F F = zeros(nk,1); F(1) = 1; for i = 2: nk F(i) = CE(i); for j = 1:i-1 if i-j+1 <= length(A) F(i) = F(i) - F(j)*A(i-j+1); end; end; end;
Clase 13 Control con Modelo de Referencia.doc 29
% calculo del vector G G = zeros(na,1); for i = 1: na G(i) = CE(nk + i); for j = 0:nk-1 if i+nk-j <= length(A) G(i) = G(i) - F(j+1)*A(i+nk-j); end; end; end; % calculo del vector FB FB = conv(F,B)'; % cálculo del vector de parámetros ParReg = ones(na+nb+nk-1,1)/ B(1); ParReg(2:na+1) = ParReg(1) * G(1:na); ParReg(na+2:na+nb+nk-1) = FB(2:nb+nk-1) * ParReg(1); for i = nk+nb+5 : n % reducción de ganancia if i==120 B=B./2; end % Sistema y(i) = 0; for j = 2:na y(i) = y(i) - A(j)*y(i-j+1); end; for j = 1:nb y(i) = y(i) + B(j)*u(i+1-j-nk); end; for j = 1:nc
Clase 13 Control con Modelo de Referencia.doc 30
y(i) = y(i) + C(j)*e(i-j); end; % Regulador % cálculo de la ref filtrada: ra = referencia * CH for j = 1:5 %nh Ra(i) = Ra(i) + ref(i-j+1)*CH(j); end; ym(i) = Ra(i); for j = 2:6 %ne ym(i) = ym(i) - ym(i-j+1)*CE(j); end; % cálculo del vector de valores para el control predictivo ValReg = zeros(na+nb+nk-1,1); ValReg(1) = Ra(i); ValReg(2:na+1) = -flipud(y(i-na+1:i)); ValReg(na+2:na+nb+nk-1) = -flipud(u(i-nb-nk+2:i-1)); % actuación u(i) = ValReg' * ParReg; end plot([y ym]);grid; hold on; stairs(u,'r'); hold off axis([0 n -1.5 1.5])
Clase 13 Control con Modelo de Referencia.doc 31
1.5. Referencias Goodwin, G. Sin: Adaptive Filtering, Prediction and Control, Prentice Hall –
1984.