Professional Documents
Culture Documents
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.
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)
(E - z- d G ) y = z- d F B u
E y k+d = G yk + F B uk
(1.5)
(1.7)
y k+d rk
H E
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)
(1.10)
(1.11)
la expresin de uk resulta
T uk = xk p
(1.12)
]
(1.13)
1 g fb T p = , 0 K 1 K b0 b0 b0
(1.14)
donde
T a xk = [rk , - yk K - uk -1 K ]
(1.15)
(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:
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.
1.5
0.5
-0.5
-1
-1.5
50
100
150
200
250
0.5
-0.5
-1
-1.5
50
100
150
200
250
2.5
1.5
0.5
-0.5
-1
50
100
150
200
250
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)
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)
(1.24)
min J = _ E y - yM
{[ (
)] }
2
2
(1.25)
{ } = _ { E y - y + E y - y + 2 [_][_]} = _ {( F ) + ( E y - y ) + 2 [_][_]}
0 f 2 2 M 0 2 f
0
(1.26)
(1.28)
es decir
y f = yf
0 M
(1.29)
= C E yk +d = C H rk
(1.30)
= 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)
1.5
0.5
-0.5
-1
-1.5
50
100
150
200
250
1.2900
-0.2700 0 0 0 0];
Ra ym u
% 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
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
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];
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;
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));
% %
% % % %
% 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.2900
-0.2700 0 0 0 0];
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);
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));
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];
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;
% %
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.