You are on page 1of 19

1.

Control con Modelo de Referencia

1. Control con Modelo de Referencia ___________________________________ 1


1.1. Introduccin ________________________________________________________ 2 1.2. Control con Modelo de Referencia Determinista __________________________ 2 1.3. Control con Modelo de Referencia Estocstico____________________________ 7 1.4. Simulaciones _______________________________________________________ 10
1.4.1. Control con Modelo de Referencia______________________________________ 10 1.4.2. Control con Modelo de Referencia Adaptativo _____________________________ 12 1.4.3. Control con Modelo de Referencia Estocstico _____________________________ 15

1.5. Referencias ________________________________________________________ 19

10-Control Con Modelo de Referencia.doc 1/19

1.1. Introduccin El control con modelo de referencia es una generalizacin de los reguladores predictivos a d pasos. Lo que se intenta hacer en este caso es contemplar en el diseo la dinmica de la referencia es decir el modelo a seguir. Se puede tener dos visiones del problema: una determinista y otra estocstica segn sea el modelo de la planta. De acuerdo a las nuevas especificaciones, el objetivo es hacer que:

y k+d = yk +d =

H rk E

(1.1)

donde r ser un escaln y H y E dos polinomios que definen la dinmica del modelo. Visto de otro modo se presenta en la Ilustracin 1-1en donde aparece un error de seguimiento que es el que debemos minimizar.

Ilustracin 1-1 Control con Modelo de Referencia. Esquema

1.2. Control con Modelo de Referencia Determinista En este caso el modelo de la planta ser:
A y = z -d B u
(1.2)

Se definir un nuevo predictor del siguiente modo:


E yk +d = G y k + F B uk
(1.3)

10-Control Con Modelo de Referencia.doc 2/19

donde los polinomios F y G cumplen la ecuacin, E = F A + z -d G resulta:


(1.4)

La ecuacin (1.2) y la (1.3) son equivalentes ya que si multiplicamos (1.2) por F


F A y = z -d F B u

(E - z- d G ) y = z- d F B u
E y k+d = G yk + F B uk

(1.5)

Como el objetivo es cumplir (1.1), la ley de control deber ser:


E yk +d = G y k + F B u k = H r k
(1.6)

Este esquema se presenta en la Ilustracin 1-2.

Ilustracin 1-2 Control con Modelo de Referencia

De esta grfica se puede extraer la relacin entre la salida y la referencia resultando, k = H rk - G yk -d z B yk = k A F B -d -d z H z G yk = yk rk FA FA ( F A - z -d G ) y k = z -d H r k

(1.7)

y k+d rk

H E

10-Control Con Modelo de Referencia.doc 3/19

Se observa el cumplimiento de la condicin de diseo. A continuacin se analizar la estabilidad de la actuacin.

F B G B = H r - z -d u = F B u A H A r = ( A F B + B G z - d ) u u= u H A = r E B

(1.8)

Tambin aqu el regulador queda restringido a procesos de fase mnima es decir a aquellos en los cuales B' es estable. El paso siguiente ser expresar la ley de control en notacin vectorial. Se ver primero su forma desplegada:

uk =

1 b0

[H rk - G yk + (b0 - F B) u k ]

(1.9)

Si se reemplaza esta ecuacin en la frmula del predictor,

b0 uk + ( F B - b0 ) uk + G y k = E y k+d 1 uk = [E y k+d - G y k + (b0 - F B) uk ] b0


y, definiendo la variable auxiliar,
yk +d = E yk +d
a

(1.10)

(1.11)

la expresin de uk resulta
T uk = xk p

(1.12)

siendo los vectores:


T a xk = yk +d , - y k K - uk -1 K

]
(1.13)

1 g fb T p = , 0 K 1 K b0 b0 b0

Cuando p es conocido, la ley de control ser la siguiente:


T uk = xk p

(1.14)

donde

10-Control Con Modelo de Referencia.doc 4/19

T a xk = [rk , - yk K - uk -1 K ]

(1.15)

definiendo la variable auxiliar


rk = H r k
a

(1.16)

Si no se conoce p se lo debe estimar con algn mtodo de identificacin recursivo. A continuacin se muestra una planta cuyo modelo es el siguiente:

B = z -2 (0,0011 + 0,0009 z 1 ) C=1 2z 1 +1,29z-2 0,27z -3

A = 1 1,74 z 1 +0,77z-2

(1.17)

Esta planta se controla con un regulador con modelo de referencia y se ajusta para que su respuesta tenga una dinmica con los siguientes polinomios:
H=0,4 E=1-0,6z -1
(1.18)

La planta sufre una reduccin de la ganancia a la mitad en la muestra 50. En la primera grfica se observa el regulador fijo ajustado para los parmetros iniciales. En la segunda el regulador es adaptativo. Se puede ver que en el primer caso hay un desajuste del control al variar la planta que se consigue reducir adaptando el regulador. De todos modos se advierte un inevitable transitorio en el ajuste del regulador. En la tercera grfica se muestra la convergencia de los parmetros en el caso adaptativo. Se graficaron dos juegos de parmetros: los trazos ms suaves corresponden al sistema sin ruido mientras que los otros pertenecen a la planta con ruido. Ntese que no existe una buena convergencia de los parmetros. Esto es debido a lo poco excitantwe que es la seal de control. A pesar de ello, el controlador tiene un buen desempeo. En este ltimo caso, el algoritmo de identificacin es el de mnimos cuadrados con un factor de olvido de 0.9.

10-Control Con Modelo de Referencia.doc 5/19

1.5

0.5

-0.5

-1

-1.5

50

100

150

200

250

Ilustracin 1-3 Control con Modelo de Referencia


1.5

0.5

-0.5

-1

-1.5

50

100

150

200

250

Ilustracin 1-4 Control con Modelo de Referencia Adaptado

10-Control Con Modelo de Referencia.doc 6/19

2.5

1.5

0.5

-0.5

-1

50

100

150

200

250

Ilustracin 1-5 Convergencia de Parmetros

1.3. Control con Modelo de Referencia Estocstico En este caso el modelo del proceso tendr un trmino estadstico como en la siguiente ecuacin:
A y = z -d B u + C
(1.19)

Se definir una variable filtrada y f de la forma:

yf = E y
Se puede demostrar que la mejor prediccin de y f es:

(1.20)

C y0f k +d = G yk + F B uk
siendo C E = F A + z-d G Demostracin:
C ( E y - F ) = z-d (G y k + F B uk )
0 yfk = E y - F

(1.21)

(1.22)

(C E - z -d G ) y = z-d F B u + F C

(1.23)

donde el valor F es el error de prediccin.

10-Control Con Modelo de Referencia.doc 7/19

Por lo tanto el control debe ser tal que


E y= y f = H r= E y = y f
M M

(1.24)

Definimos el funcional a minimizar de la siguiente forma:

min J = _ E y - yM

{[ (

)] }
2
2

(1.25)

Sumando y restando el predictor se obtiene:


M 0 0 J=_ E y - E y + y f - y f 0 f 2 M

{ } = _ { E y - y + E y - y + 2 [_][_]} = _ {( F ) + ( E y - y ) + 2 [_][_]}
0 f 2 2 M 0 2 f
0

(1.26)

esto se cumple ya que


yf - yf =F
(1.27)

Entonces, para que J sea mnimo debe cumplirse


E y - yf =0
M 0

(1.28)

es decir
y f = yf
0 M

(1.29)

y si se reemplaza la ecuacin del predictor,


0 C y f k +d = G y k + F B uk

= C E yk +d = C H rk

(1.30)

la ley de control queda


F B u k = C H r k - G y k
(1.31)

que es lo que se ve en la Ilustracin 1-6.

10-Control Con Modelo de Referencia.doc 8/19

Ilustracin 1-6 Control con Modelo de Referencia Estocstico

Por ltimo, se ver cual es la relacin entre referencia y salida.

= H C r -G y
-d C z + F A A -d F A y = z H C r - G z -d y + C F C E yk +d = H C rk + C F k +d

y=

(1.32)

E y k +d = H rk + F k +d
Por lo tanto la salida sigue al modelo excepto un error debido al ruido. En cuanto a la variable de control, obedece a la siguiente ecuacin:
u AH C = r E B
(1.33)

O sea que es estable para sistemas de fase mnima.

10-Control Con Modelo de Referencia.doc 9/19

1.5

0.5

-0.5

-1

-1.5

50

100

150

200

250

Ilustracin 1-7 Control con Modelo de Referencia Estocstico

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 nc = 4; EE ne HH nh = = = =

1.2900

-0.2700 0 0 0 0];

[1 -.60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]; 2; [.4 0 0 0 0 0 0]; 1;

nk = 2; ref = ones(cambioref,1); for i = 1:ciclos-1, ref = [ref; (-1)^i*ones(cambioref,1)]; end;

10-Control Con Modelo de Referencia.doc 10/19

Ra ym u

= zeros(n,1); = zeros(n,1); = 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)'; % clculo del vector de parmetros 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)+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 % reduccin 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

10-Control Con Modelo de Referencia.doc 11/19

clculo 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; clculo 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));

actuacin u(i) = ValReg' * ParReg; end plot([y ym]);grid; hold on; stairs(u,'r'); hold off axis([0 n -1.5 1.5])

1.5

0.5

-0.5

-1

-1.5

50

100

150

200

250

1.4.2. Control con Modelo de Referencia Adaptativo

10-Control Con Modelo de Referencia.doc 12/19

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 nc = 4; EE ne HH nh = = = =

1.2900

-0.2700 0 0 0 0];

[1 -.60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]; 2; [.4 0 0 0 0 0 0]; 1;

nk = 2; ref = ones(cambioref,1); for Ra ym u i = = = = 1:ciclos-1, ref = [ref; (-1)^i*ones(cambioref,1)]; end; zeros(n,1); zeros(n,1); zeros(n,1);

% inicializacin identificacin 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;

10-Control Con Modelo de Referencia.doc 13/19

end; % calculo del vector FB FB = conv(F,B)'; % clculo del vector de parmetros 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 % reduccin 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 clculo 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; clculo 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)); actuacin u(i) = ValReg' * ParReg; u(i) = Aest(i-1,1:np) * ValReg(1:np); Clculo 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));

% %

% % % %

10-Control Con Modelo de Referencia.doc 14/19

% x(na+nb+nk-1:na+nb+nk+length(P)-3) = -flipud(uf(i-length(P)+1-nk:i-1nk)); % Identificacin 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; 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 Estocstico


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 nc = 4; EE ne HH nh = = = =

1.2900

-0.2700 0 0 0 0];

[1 -.60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]; 2; [.4 0 0 0 0 0 0]; 1;

CE = conv(C,EE); CH = conv(C,HH); nk = 2; ref for Ra ym u = i = = = ones(cambioref,1); = 1:ciclos-1, ref = [ref; (-1)^i*ones(cambioref,1)]; end; zeros(n,1); zeros(n,1); zeros(n,1);

% calculo del vector F F = zeros(nk,1); F(1) = 1;

10-Control Con Modelo de Referencia.doc 15/19

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; end; end; % calculo del vector FB FB = conv(F,B)'; % clculo del vector de parmetros 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 % reduccin 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 % clculo 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; % clculo 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));

10-Control Con Modelo de Referencia.doc 16/19

actuacin u(i) = ValReg' * ParReg; end plot([y ym]);grid; hold on; stairs(u,'r'); hold off axis([0 n -1.5 1.5])

1.5

0.5

-0.5

-1

-1.5

50

100

150

200

250

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 nc = 4;

1.2900

-0.2700 0 0 0 0];

EE = [1 -.60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0];

10-Control Con Modelo de Referencia.doc 17/19

ne = 2; HH = [.4 0 0 0 0 0 0]; nh = 1; CE = conv(C,EE); CH = conv(C,HH); nk = 2; ref for Ra ym u = i = = = ones(cambioref,1); = 1:ciclos-1, ref = [ref; (-1)^i*ones(cambioref,1)]; end; zeros(n,1); zeros(n,1); 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; end; end; % calculo del vector FB FB = conv(F,B)'; % clculo del vector de parmetros 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 % reduccin 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;

10-Control Con Modelo de Referencia.doc 18/19

% %

for j = 1:nc y(i) = y(i) + C(j)*e(i-j); end; Regulador clculo 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; clculo 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));

actuacin u(i) = ValReg' * ParReg; end plot([y ym]);grid; hold on; stairs(u,'r'); hold off axis([0 n -1.5 1.5])

1.5. Referencias 1. Goodwin, G. Sin: Adaptive Filtering, Prediction and Control , Prentice Hall 1984.

10-Control Con Modelo de Referencia.doc 19/19

You might also like