. Control Predictivo a d Pasos. CONTROL PREDICTIVO A D PASOS..... INTRODUCCIÓN...3.. PREDICTOR A D PASOS...4... Polos Ceros del Predictor...6.3. CONTROLADOR PREDICTIVO A D PASOS...9.4. CONTROLADOR PREDICTIVO A D PASOS PONDERADO....5. CONTROL PREDICTIVO A D PASOS PONDERADO POR POLINOMIOS...4.6. NOTAS SOBRE EL CONTROL PREDICTIVO...3.6.. Indeterminación del Retardo...3.6.. Sensibilidad Frente a Variaciones de Parámetros...4.7. CASO ADAPTATIVO DEL CONTROL PREDICTIVO...6.8. CONTROL PREDICTIVO PONDERADO ADAPTATIVO...3.9. CONTROL PREDICTIVO PONDERADO ADAPTATIVO CON FILTRO EN LA ACTUACIÓN...3.. COMPENSACIÓN DE VELOCIDAD...37.. SIMULACIONES...54... Predictor a d Pasos...54... Control Predictivo Ponderado Por Polinomios...56 Clase Control Predictivo.doc
..3. Cálculo de los Polinomios P R...6..4. Control Predictivo Ponderado Por Polinomios Adaptativo...63 Clase Control Predictivo.doc
.. Introducción Uno de los problemas del control es el retardo, + = a + bu (.) le de control u = ( r+ a) (.) b Sistema con retardo: = a + bu (.3) + + = a + bu + + = a + bu + ( ) = a a + bu + bu + + (.4) = a + bu + abu (.5) u = ( r+ a abu ) (.6) b concepto de predicción de la salida Clase Control Predictivo.doc 3
.. Predictor a d Pasos A = B u (.7) donde - - -n A = + az + a z + + an z B= z B = z + z + z + + z ( b b b bm ) -d -d - - -m se puede reescribir: = G + F B u +d donde F G se relacionan por: (.8) (.9) -d = F A + z G (.) con F = + f + f + + f - - -d+ z z d-z - - -n+ z z n-z G= g + g + g + + g (.) Clase Control Predictivo.doc 4
Los coeficientes de F de G tienen la siguiente expresión: i f = f a i = d i j i j j= d g = f a i = n i j i+ d j j= Demostración: ( z ) -d F A = F B u = F B u -d -d - G = F B u z d z z = G + F B u (.) (.3) Clase Control Predictivo.doc 5
... Polos Ceros del Predictor ( ) H q ( ) ( ) d q B q = (.4) A q el predictor es d d = q G( q) + q F( q ) B ( q) d d ( q G( q) ) = q F( q ) B ( q) u H p ( q) ( ) ( ) d q G( q) u (.5) F q B q = (.6) d q G( q) debe tener las raíces de A( q ) F ( q ) problemas numéricos si se utiliza la ecuación del predictor para simular el comportamiento del sistema. las raíces de F ( q ) se distribuen simétricamente respecto de las raíces de A( q ). Clase Control Predictivo.doc 6
Ejemplo.. Sistema con Retardo 3 Sea el sistema =, 5 -,7 + u -, 8 u (.7) - - A= -, 5q +,7q B=q - (, 8q ) 3 F G deberán cumplir -3-4 (.8) 3 ( f f )(, +,7 ) + ( g g ) = + q + q - 5q q q + q ( f, ) + (,7, f + f ) (,7 f, f g ) (,7 f g ) = + - 5 q - 5 q + 5 + q + + q resultando 3 4 f =, 5 = - a f f =, 5 f -,7 =,55 = - a f - a f g =, 5 f -,7f =. 75 = - a f - a f g = -,7 f = -,85 = - a f (.) (.9) Clase Control Predictivo.doc 7
(, 75,85 ) (,,5 ) (, ) = q + + 5q + 5 q - 8q u +3 =, 75,85 + u +, 7 u +,35 u, 4 u +3 - - - -3 (.).5.5.5 5 5 5 Ilustración - Predictor a d Pasos Clase Control Predictivo.doc 8
.3. Controlador Predictivo a d Pasos le de control: M u +d (.) F B = - G d ε r + d F B u q -d B A G ε = q G M d d F A A d d q q B = ε + ( ) FAq = q - G d M d F A + Gq q = q + B Fd d d M d = + BFd M d + B Fd (.3) (.4) Clase Control Predictivo.doc 9
ε u= F B -d M d G z ε = z - ε = F A A M u= -d z B u es estable si B' lo es. M z d F A F A + G z -d Otra forma de interpretar este control es el encontrar una le para u de modo que minimice el siguiente funcional: J = - J = M +d +d +d u Resolviendo esta ecuación se llega a la misma conclusión anterior. Este control es mu sencillo e intuitivo pero tiene dos problemas: se requieren grandes esfuerzos en u es demasiado estricto en cuanto a B'. Se verá a continuación cómo se pueden resolver estos dos problemas. (.5) (.6) Clase Control Predictivo.doc
.4. Controlador Predictivo a d Pasos Ponderado Para hacer más flexible el diseño del control se definirá el funcional de la siguiente forma: J +d λ = - + M +d +d u Es decir, se ha agregado un término que pesa el esfuerzo del control o la energía consumida. Si se reemplaza + dpor su valor según la expresión (.9) se deriva con respecto a u se obtendrá la nueva le de control. M λ J +d = G + F B u - +d + u J +d M = G + F B u - +d b+ λ u= u M [ F B b+ λ] u= b +d - G [ ] M F B b+ λ u= b +d - G (.7) (.8) (.9) Clase Control Predictivo.doc
r + d b + - FB b + λ u z - d B A G Si se analiza la función de transferencia entre referencia salida se obtiene lo siguiente: ε = - G M d z -d z B b = A ( F B b + λ ) ( λ ) A F B b + -d z B b ε M d + G = z M Bb = B + λ A b (.3) (.3) Clase Control Predictivo.doc
Es decir, la relación referencia-salida a no es sino que tiene cierta dinámica dependiendo del valor de λ. Sólo en el caso de λ= se eliminaría esta dinámica. Se verá ahora cómo varía la estabilidad de la variable de control. De la misma figura se desprende, ε -d M d M d G z B = - G = - u b u= ε F B b + λ z z A b u b A = M B b + λ A -d b M d G z B u= z - u F B + λ A Por lo tanto, variando λ se puede hacer estable el polinomio bb ' + λ A lo que implica la posibilidad de estabizar u. Con esto se consigue reducir considerablemente los esfuerzos de control. Pero aún subsisten dos inconvenientes: (.3) No todo sistema puede hacerse estable variando λ. No tiene suficientes grados de libertad. Para intentar solucionar esto se elegirá una nueva especificación del control. Clase Control Predictivo.doc 3
.5. Control Predictivo a d Pasos Ponderado por Polinomios Con el fin de aumentar la libertad se definirá una nueva especificación de modo que no se considere u directamente sino una nueva variable filtrada: J +d λ = + M +d - +d u P u = R u P = + p + + p - -p z pz - -r R= + rz + + rz r Haciendo similar trabajo algebraico se llega a la le de control. λ J u u (.33) (.34) M +d = G + F B - +d + (.35) M λ +d = G + F B - +d + ( - P ) + R J u u u Clase Control Predictivo.doc 4
J +d M = G + F B u- +d b+ λ ( - P ) u + R u = u M b G - +d + λ( - P ) u + [ F B b+ λ R ] u= M b G - +d + λ( - P ) u + ( b+ λ) u ( F B + b- b) z u-+ ( λ R - λ) z u -= u Cabe notar que la forma que tienen los polinomios es la siguiente: ( )( f ) F B b = b b + b + + + = b + + - - - z z z - R = + + λ λ λ r z por lo tanto, si se despeja u se logra la expresión que sigue: ( ) - ( ) - G - λ - P z - F B - + λ R - λ z M b +d u b b u- = + λ o sea b (.37) M u= [ b+d - bg - bg- - b + λ - ( fb b + λr ) u - ( fb b + λr ) u + λ p u + λ p u (.38) - - - - ] (.39) (.36) Clase Control Predictivo.doc 5
Si se lo expresa en forma de bloques resulta la Ilustración -. Igual que antes se puede analizar la forma de la salida la estabilidad de la variable de control. Es conveniente hacer previamente una modificación de los bloques para facilitar el estudio. De la figura se puede inferir: λ (P-) R P r + - - b + + FB'b +Rλ u z -d B' A G Ilustración - Control Predictivo a d pasos ponderado por polinomios Clase Control Predictivo.doc 6
(P -) R ( ) + b ε+ u λ P - bε λ u P u = = F B b+ λ R F B b+ λ R (P -) R (F B b+ λ R) u - λ u= εb P (F B P b + λ R P - λ R P + λ R) u = P εb con lo que la le de control resulta: u M ( ) P = b - G b +d F B P + λ R O sea que se puede modificar la Ilustración - lograr la Ilustración -3. (.4) r + d + - bp FB bp+ λr u z - d B A G Ilustración -3Versión Simplificada Clase Control Predictivo.doc 7
Ahora si, se analizará la relación entre la referencia la salida. El error es: ( F B P + λ R) ε = - G M d z d M z = b A + G = -d z B P b -d z B P b A F B P b + R ( λ ) ε (.4) por lo tanto la relación entre e M tiene la siguiente forma: A F B P b + λ A R + G B P b = B P b B P b = B P b + λ A R M d = - G -d z M Se puede analizar la estabilidad de la variable de control como sigue: b P u = ε F B P b + λ R ε ε z -d M d G z B = - u z A M (.43) (.4) Clase Control Predictivo.doc 8
-d d b P G z B b P M u z + = A ( F B P b+ λ R) F B P b+ λ R -d M d u A F B P b+ λ A R + b P G B z = b A P z (.44) u b A P = M B P b + λ A R Nótese que ahora los grados de libertad que se tienen para hacer estable u son maores. Las tres figuras siguientes muestran al sistema del primer ejemplo controlado por los tres tipos de reguladores vistos. Primero, por un regulador predictivo sin ponderación, luego se inclue el factorλ por último se introducen los polinomios de ponderación. Clase Control Predictivo.doc 9
.5.5 -.5 - -.5 5 5 5 Ilustración -4 Control Predictivo Clásico Clase Control Predictivo.doc
.5.5 -.5 - -.5-5 5 5 Ilustración -5 Control Predictivo Ponderado Clase Control Predictivo.doc
.5.5 -.5 - -.5 5 5 5 Ilustración -6 Control Predictivo Ponderado con Polinomios Los polinomios de ponderación se podrían calcular considerando el denominador de la función de transferencia en lazo cerrado posicionando sus raices en algún lugar deseado. Clase Control Predictivo.doc
.6. Notas Sobre el Control Predictivo Se verá a continuación algunas consideraciones a tener en cuenta en este tipo de control..6.. Indeterminación del Retardo En este control es imprescindible conocer el retardo de la planta muchas veces no es posible hacerlo con exactitud. Suponiendo que el sistema tiene el siguiente polinomio en el numerador -m B = b+ + bm z bm= cc cmb (.45) bm b donde los c i son los diferentes ceros del sistema Además se supone b pequeño despreciable. El regulador con este nuevo polinomio será: -m B = ε z + b+ + bm z = ε z + Bn (.46) Bn = B - ε z O sea que el regulador no estaría ajustado exactamente la nueva función de transferencia se calculará como sigue: Clase Control Predictivo.doc 3
-d = A F + G z -d M z B +d - G = A F Bn - G B = A F - G ( n + ε z ) = A F M -d z Bn M -d z B Bn M -d+ ( Bn + ε z ) = ( Bn + z ε G ) Ahora el último paréntesis es el que debe ser estable. Es útil esto para analizar la robustez del sistema (partiendo de B estable). ' n (.47).6.. Sensibilidad Frente a Variaciones de Parámetros Sea el sistema real como el de la ecuación: -d A = z B u (.48) sea el modelo o sistema nominal: -d An = z B nu (.49) El regulador se calcula para el sistema nominal. Derivando la transferencia respecto a los parámetros del sistema obtenemos: Clase Control Predictivo.doc 4
-d = n F + G A z -d M z B +d - G = A F Bn B = = M A F B + z G B M -d n M - G = = No dice mucho. Si - C = - z c C = - -? c z -i -d -i z Bn Bn z z bi Bn -i M - z F Bn Bn -i z ai n = = - F B z ( - z G ) -i -d B n (.5) (.5) Clase Control Predictivo.doc 5
.7. Caso Adaptativo del Control Predictivo Se desconoce el proceso real. Habrá que proponer un modelo de la planta: ˆ -d A = z B ˆ u (.5) donde ˆ - - -n A= + aˆz + aˆ z + + aˆn z (.53) ˆ - - -m B = bˆ + ˆ + ˆ + + ˆ bz b z bm z Estos polinomios se usarán en el cálculo del regulador. En el caso de conocimiento absoluto teníamos el predictor = G + F B u +d (.54) Para expresarlo en una forma vectorial compacta se define +d [ ] [ ] T p = g fb fb T x = -n+u u -m-d+ (.55) T = x p La le de control ideal será: p = T M x (.56) +d Clase Control Predictivo.doc 6
Al no conocer el vector de parámetros se lo reemplaza por su estimación: pˆ = T M x +d (.57) Si se despeja la actuación, queda: M u= ˆ ˆ ˆ - ˆ +d - p - - p n- -n+ - p n u - - p n+m+d u-m-d+ pˆ (.58) n Se puede usar cualquier método de identificación con una modificación: T pˆ ˆ -d -d ˆ = p-- P x x p-- (.59) Se observa que en el término correspondiente al error se considera el vector de muestras x previo al retardo. Esto es porque el producto de x por p da la salida luego del retardo. Un posible problema es que ˆb sea cero. Esto se soluciona poniendo algún tipo de filtro lógico que evite esta división. Esta forma se denomina control adaptativo indirecto Clase Control Predictivo.doc 7
- Algoritmo directo. Otra expresión de la planta: x (.6) = T +d p = p T u x (.6) donde p g g fb T n- = fb fb fb fb x [ u- u-m-d+ ] = - - - - T -n+ +d La le de control también se dejará en una forma explícita vectorial: T u = x pˆ (.6) (.63) donde T M x = - - -n+- u - - u -m-d+ +d T pˆ ˆ -d -d ˆ = p -- P x x p -- u -d (.64) Clase Control Predictivo.doc 8
En esta forma, el estimador a no calcula los parámetros del sistema sino los del regulador. Comentario: e = x ˆ - u = x ˆ - x ˆ = x ˆ - x ˆ + x ˆ - x ˆ T T T = x -d ˆ -d [ ˆ ˆ -d - x p -+ x p -- p -d] M = - + ˆ ε T T T T T T T -d p - -d -d p - -d p-d -d p - -d p -d -d p - -d p - e ε + ˆ ε = (.66) siendoε el error de seguimiento de la salida ˆε un error auxiliar (.65) Clase Control Predictivo.doc 9
.8. Control Predictivo Ponderado Adaptativo El control predictivo ponderado resultaba: ( F B b ) ( M + λ u b +d - G ) u = (.67) = b ( ) M +d - G - F B - u b + λ La le de control, conociendo el sistema expresada en forma vectorial es: = p (.68) T u x (.69) donde: p b b g b g b fb b fb = b b b b b T n- m+d- + λ + λ + λ + λ + λ T M x = +d - - -n+ - u - - u -m-d+ (.7) Clase Control Predictivo.doc 3
Para la forma directa del algoritmo se introduce una modificación en el modelo de la planta: = G + F B u +d (.7) u +d (.7) F B = - G = +d - G - (F B - ) u (.73) b u b b b u + λ + [ u] = +d - G - (F B - ) b λ (.74) b λ u = ( + u ) - G - (F B - ) u b b +d + λ (.75) Ahora la nueva expresión vectorial de la planta es: = p T u x (.76) donde x p λ = +,- - - - b T +d u -n+ u- u-m-d+ b b g b g b fb b fb = b b b b b T n- m+d- + λ + λ + λ + λ + λ (.77) Clase Control Predictivo.doc 3
.9. Control Predictivo Ponderado Adaptativo con Filtro en la Actuación En este caso la Le de control era: M u = +d ( ) b b g fb b + λr u + + λpu-+ λpu - b + λ (.78) Por lo tanto, u en forma vectorial resulta: = p T u x (.79) donde p T M x = - d - -n+- u- u- + b b g fb b + λr λp λp =, b λ b λ b λ b λ b λ T + + + + + Aquí también se requiere alguna consideración para utilizar la versión directa del controlador. Se expresará al sistema del siguiente modo: = G + F B u +d b u (.8) ( ) = - G F B b u (.8) +d ( λ) + u = +d - G - (F B - ) + λ (.83) b b b b b u u (.8) Clase Control Predictivo.doc 3
por otro lado, ( ) λu λ u λ λu λ u λ = P - R u = + p -- ru- (.84) reemplazando, λ u b b ( b λr) u b b = +d + u - G - fb + - + λpu- + λ (.85) por lo tanto: T u = x p (.86) donde x p λ = + u,- - - b b b g fb b + λr λp λp =, b λ b λ b λ b λ b λ T + d -n+ u- u- T + + + + + con lo que queda expresada u de igual forma que antes con la excepción de la aparición en su cálculo de la variable filtrada. (.87) Clase Control Predictivo.doc 33
Ejemplos: cambio en la muestra 5: se reduce a la mitad la ganancia..5.5.5.5 -.5 -.5 - - -.5 -.5-5 5-5 5 Clase Control Predictivo.doc 34
.5.5.5.5 -.5 -.5 - - -.5 -.5-5 5-5 5.5.5.5.5 -.5 -.5 - - -.5 -.5-5 5-5 5 Clase Control Predictivo.doc 35
4 3 - - -3 5 5 Clase Control Predictivo.doc 36
.. Compensación de Velocidad as as + bs bs u = + ad ad + bd bd u + as as + bs bs u+ = + ad ad + = + bd bd u + ad ad + ad + ad as + as as as = + as as bs bs u bs bs u+ + ad ad bd bd + u bd bd u (.88) (.89) (.9) Clase Control Predictivo.doc 37
+ asas as + as asbs+ asbd asbs + asbd u bs bs u + = + + adad ad ad adbs adbd adbs adbd u + bd bd u + + + + asas as + as asbs+ asbd asbs + asbd u bs bs u + = + + adad ad ad adbs adbd adbs adbd u + bd bd u + + + + u+ R M = + + u u La le de control es (.9) (.9) (.93) Clase Control Predictivo.doc 38
Clase Control Predictivo.doc 39 r u M R u r u + + + = (.94)
Ejemplo.. Péndulo Invertido d dt = u (.95) dv u dt = (.96) T T + = + u + u (.97) v + = v + Tu (.98) predictor T T T T T T + = + + u+ + u = + u + u + u+ + u = T T = 3 + u+ + 3 u + T u v+ = v+ + Tu+ = = v + Tu + Tu + (.99) (.) Clase Control Predictivo.doc 4
T T u u T u v = v + Tu + Tu + = 3 + + + 3 + (.) + + cálculo de la actuación T T u u T u Tu + Tu = v v + + 3 = + 3 + (.) + + T T 3 3 + + u r T u u = v T T la u u = ( r 3 + T u ) + v (.4) T T El regulador predictivo clásico para la posición sería ucp = ( r + ucp ) (.5) T (.3) Clase Control Predictivo.doc 4
para la velocidad uvc = ( rv v) (.6) T reescribiendo el compensado u = ( r 3 + T u ) + v = T T = ( r + ) u ( ) u ( r 3 + T u ) + v T T T T quedando finalmente, r = u ucp v T T es como tener dos controladores predictivos clásicos, uno dependiente de la posición otro de la velocidad con una velocidad de referencia igual a la que debería tener el sistema para llegar en forma recta a la referencia de posición en una muestra. Otra alternativa sería calcular la velocidad como diferencia entre muestras consecutivas, pero esto introduce una imprecisión en la velocidad que degrada el control. Se analiza el efecto en la simulación. (.7) (.8) Clase Control Predictivo.doc 4
- Algoritmo: %Sistema continuo ganancia = ; num= ganancia ; den=pol([, ]); sscont = tf( num,den); %Sistema en variables de estado Pss = ss(sscont); [a,b,c,d] = ssdata(pss); % su respuesta al escalón... t = :.:; u = ones(size(t)); = lsim(sscont,u,t); = lsim(pss,u,t); T=.; p =.5; Tfin = 3; precision= T/; t = :precision:t; ref = ; aux = zeros(size(t)); l = length(t); x= zeros(,); = ; uu = ; ref = ; n = 53; A=[ - ]; %A=[ -.5]; Clase Control Predictivo.doc 43
=; B=*T^/*[ ]; M=[B() -A()*B();B() -A()*B()-B()]; IM=inv(M); AB=[(-A())^-A(3) -A()*A(3) ; (-A())^-A(3) -A(3) A()*B()]; = zeros(n,); d = zeros(n,); u = zeros(n,); UU = zeros(n,); %predictivo clásico = zeros(n,); d = zeros(n,); u = zeros(n,); x= zeros(,); aux = zeros(size(t)); uaux = zeros(size(t)); = ; uu = ; for i = 3:Tfin/T % Sistema Discreto d(i)=-a(:length(a))*flipud(d(i-length(a)+:i-))+b*flipud(u(i-length(b)+:i)); % Sistema Continuo [aux, tt, x] = lsim(pss,uaux,t,x(length(x),:)); = [ ; aux]; uu = [uu ; uaux']; % Regulador (i)= aux(l); u(i)=(/t^)*(ref-*(i)+(i-))-u(i-); % bloqueador de orden cero nivelu=u(i); Clase Control Predictivo.doc 44
uaux = nivelu * ones(size(t)); end; plot([]);grid.6.4.4...8.8.6.6.4..4. 5 5 5 3 5 5 5 3 stairs([u(:tfin/t)]);grid Clase Control Predictivo.doc 45
4 3 - - -3-4 5 5 5 3 Clase Control Predictivo.doc 46
Compensación Por Velocidad = zeros(n,); d = zeros(n,); v = zeros(n,); u = zeros(n,); x= zeros(,); aux = zeros(size(t)); uaux = zeros(size(t)); = ; uu = ; M=[ganancia*T^/ 3*ganancia*T^/; ganancia*t ganancia*t]; IM=inv(M); for i = 3:Tfin/T % Sistema Discreto d(i)=-a(:length(a))*flipud(d(i-length(a)+:i-))+b*flipud(u(i-length(b)+:i)); % Sistema Continuo [aux, tt, x] = lsim(pss,uaux,t,x(length(x),:)); = [ ; aux]; uu = [uu ; uaux']; % Regulador (i)= aux(l); v(i)= (aux(l)-aux(l-))/precision; u(i)=(/t^)*(ref-3*(i)+*(i-))-u(i-)+/t*v(i); % ó esta alternativa: u(i)=(/t^)*(ref-*(i)+(i-))-u(i-)-/t*((ref-(i))/tv(i)); % bloqueador de orden cero nivelu=u(i); uaux = nivelu * ones(size(t)); Clase Control Predictivo.doc 47
end; plot([]);grid.5.4..8.6.5.4. 5 5 5 3 5 5 5 3 stairs([u(:tfin/t)]);grid Clase Control Predictivo.doc 48
8 6 4 - -4-6 -8 5 5 5 3 Clase Control Predictivo.doc 49
Compensación con Cálculo de velocidad Se calcula la velocidad como diferencia entre muestras = zeros(n,); d = zeros(n,); v = zeros(n,); u = zeros(n,); x= zeros(,); aux = zeros(size(t)); uaux = zeros(size(t)); = ; uu = ; M=[ganancia*T^/ 3*ganancia*T^/; ganancia*t ganancia*t]; IM=inv(M); for i = 3:Tfin/T % Sistema Discreto d(i)=-a(:length(a))*flipud(d(i-length(a)+:i-))+b*flipud(u(i-length(b)+:i)); % Sistema Continuo [aux, tt, x] = lsim(pss,uaux,t,x(length(x),:)); = [ ; aux]; uu = [uu ; uaux']; % Regulador (i)= aux(l); % esta es la diferencia, se calcula la velocidad como diferencia entre muestras v(i)= ((i)-(i-))/t; u(i)=(/t^)*(ref-3*(i)+*(i-))-u(i-)+/t*v(i); % ó esta alternativa: u(i)=(/t^)*(ref-*(i)+(i-))-u(i-)-/t*((ref-(i))/tv(i)); Clase Control Predictivo.doc 5
% bloqueador de orden cero nivelu=u(i); uaux = nivelu * ones(size(t)); end; plot([]);grid.4..8.6.4. 5 5 5 3 plot([(:tfin/t)]);grid Clase Control Predictivo.doc 5
.4..8.6.4. 5 5 5 3 stairs([u(:tfin/t)]);grid Clase Control Predictivo.doc 5
5-5 - -5 5 5 5 3 Clase Control Predictivo.doc 53
.. Simulaciones... Predictor a d Pasos n = 3; o = zeros(n,); p = zeros(n,); u = zeros(n,); for i = 7:n u(i)=; o(i)=.5*o(i-)-.7*o(i-)+u(i-3)-.8*u(i-4); p(i)=.75*p(i-3)-.85*p(i-4)+u(i-3)+.7*u(i-4)+.35*u(i-5)-.4*u(i-6); end; stairs([o(6:n) p(6:n)]);grid Clase Control Predictivo.doc 54
.5.5.5 5 5 5 Clase Control Predictivo.doc 55
... Control Predictivo Ponderado Por Polinomios cambioref = 5; ciclos = 5; n = cambioref * ciclos; e =.*randn(n,); = zeros(n,); Ap = [ -.74.77]; Bp = * [..9]; A = Ap; B = Bp; na = length(ap); nb = length(bp); C = [. -..9 -.7 ]; nc = 4; n = ; ref = ones(cambioref,); for i = :ciclos-, ref = [ref; (-)^i*ones(cambioref,)]; end; u = zeros(n,); uf = zeros(n,); lambda = ; P=[ -.9 ]; R=[ -.8 ]; P=[ -.398.4976 ]; R=[ -.9473.5 ]; Clase Control Predictivo.doc 56
% calculo del vector F F = zeros(n,); F() = ; for i = : n for j = :i- if i-j+ <= length(a) F(i) = F(i) - F(j)*A(i-j+); end; end; end; % calculo del vector G G = zeros(na,); for i = : na for j = :n- if i+n-j <= length(a) G(i) = G(i) - F(j+)*A(i+n-j); end; end; end; % calculo del vector FB FB = conv(f,b)'; % cálculo del vector de parámetros ParReg = ones(na+nb+n-3+length(p),)*b() /( B()*B()+lambda); ParReg(:na) = ParReg() * G(:na-); ParReg(na+:na+nb+n-) = (FB(:nb+n-)+lambda*R(:nb+n-)'/B()) * ParReg(); ParReg(na+nb+n-:na+nb+n+length(P)-3) = -lambda*p(:length(p))/b()*parreg(); for i = n+nb+5 : n Clase Control Predictivo.doc 57
% Sistema (i) = ; for j = :na (i) = (i) - A(j)*(i-j+); end; for j = :nb (i) = (i) + B(j)*u(i+-j-n); end; % (i)=fliplr(b(:length(b)))*u(i-length(b):i-)-%fliplr(a(:length(a)))*(ilength(a)+:i-); for j = :nc (i) = (i) + C(j)*e(i-j); end; % Regulador % cálculo de la uf filtrada: uf = (R/P)u uf(i-)=; for j = :length(r) uf(i-) = uf(i-) + u(i-j)*r(j); end; for j = :length(p) uf(i-) = uf(i-) - uf(i-j)*p(j); end; % cálculo del vector de valores para el control predictivo ValReg = zeros(na+nb+n-3+length(p),); ValReg() = ref(i); ValReg(:na) = -flipud((i-na+:i)); ValReg(na+:na+nb+n-) = -flipud(u(i-nb-n+:i-)); ValReg(na+nb+n-:na+nb+n+length(P)-3) = -flipud(uf(i-length(p)+:i-)); % actuación u(i) = ValReg' * ParReg; end Clase Control Predictivo.doc 58
plot();grid; hold on; stairs(u,'r'); hold off Clase Control Predictivo.doc 59
.5.5 -.5 - -.5 5 5 5 Clase Control Predictivo.doc 6
.5.5 -.5 - -.5 5 5 5..3. Cálculo de los Polinomios P R M=pol([.5.5.5.5]); A=[ -.74.77]; B=[..8]; Clase Control Predictivo.doc 6
lambda=; MM=[B()^ lambda ; B()*B() B()^ lambda*a() lambda; B()*B() lambda*a(3) lambda*a(); lambda*a(3)]; ind= M(:length(M))'*(B()^+lambda)-[B()*B()+lambda*A(); lambda*a(3); ;]; %ind= M(:length(M))'-[B()*B()+lambda*A(); lambda*a(3); ;]; pp=inv(mm)*ind; P=[ pp(:)' ]; R=[ pp(3:4)' ]; roots([conv(b,p)*b() ]+lambda*conv(a,r)) ans =.5.5 +.i.5 -.i.4999 Clase Control Predictivo.doc 6
..4. Control Predictivo Ponderado Por Polinomios Adaptativo cambioref = 3; ciclos = 5; n = cambioref * ciclos; e =.*randn(n,); = zeros(n,); Ap = [ -.74.77]; Bp = * [..9]; A = Ap; B = Bp; %A = [ -.7995.8]; %B = e-3 * [.8344.5749]; na = length(ap); nb = length(bp); C = [. -..9 -.7 ]; nc = 4; n = ; ref = ones(cambioref,); for i = :ciclos-, ref = [ref; (-)^i*ones(cambioref,)]; end; u = zeros(n,); uf = zeros(n,); lambda = ; P=[ -.398.4976 ]; Clase Control Predictivo.doc 63
R=[ -.9473.5 ]; u = zeros(n,); % inicialización identificación np=na+nb+n+length(p)--; Aest = ones(n,np); lam=.99; p=*ee(np); th=eps*ones(np,); % calculo del vector F F = zeros(n,); F() = ; for i = : n for j = :i- if i-j+ <= length(a) F(i) = F(i) - F(j)*A(i-j+); end; end; end; % calculo del vector G G = zeros(na,); for i = : na for j = :n- if i+n-j <= length(a) G(i) = G(i) - F(j+)*A(i+n-j); end; end; end; % calculo del vector FB Clase Control Predictivo.doc 64
FB = conv(f,b)'; % cálculo del vector de parámetros ParReg = ones(na+nb+n-3+length(p),)*b() /( B()*B()+lambda); ParReg(:na) = ParReg() * G(:na-); ParReg(na+:na+nb+n-) = (FB(:nb+n-)+lambda*R(:nb+n-)'/B()) * ParReg(); ParReg(na+nb+n-:na+nb+n+length(P)-3) = -lambda*p(:length(p))/b()*parreg(); for i = n+nb+5 : n % Sistema (i) = ; for j = :na (i) = (i) - A(j)*(i-j+); end; for j = :nb (i) = (i) + B(j)*u(i+-j-n); end; for j = :nc (i) = (i) + C(j)*e(i-j); end; % Regulador % cálculo de la uf filtrada: uf = (R/P)u uf(i-)=; for j = :length(r) uf(i-) = uf(i-) + u(i-j)*r(j); end; for j = :length(p) uf(i-) = uf(i-) - uf(i-j)*p(j); end; % cálculo del vector de valores para el control predictivo ValReg = zeros(na+nb+n-3+length(p),); Clase Control Predictivo.doc 65
ValReg() = ref(i); ValReg(:na) = -flipud((i-na+:i)); ValReg(na+:na+nb+n-) = -flipud(u(i-nb-n+:i-)); ValReg(na+nb+n-:na+nb+n+length(P)-3) = -flipud(uf(i-length(p)+:i-)); % actuación u(i) = Aest(i-,:np) * ValReg(:np); % Cálculo del vector X para el identificador x = zeros(np,); x()=(i)+lambda/bp()*uf(i-n); x(:na)=-flipud((i-na+-n:i-n)); x(na+:na+nb+n-) = -flipud(u(i-nb-n+-n:i--n)); x(na+nb+n-:na+nb+n+length(p)-3) = -flipud(uf(i-length(p)+-n:i--n)); % Identificación h=x'*aest(i-,:np)'; epsi=u(i-n)-h; K=p*x/(lam + x'*p*x); p=(p-k*x'*p)/lam; Aest(i,:np)=(Aest(i-,:np)'+K*epsi)'; epsilon=u(i)-aest(i,:np)*x; end plot();grid; hold on; stairs(u,'r'); hold off axis([ n - ]) plot(aest);grid; Clase Control Predictivo.doc 66
- Referencias. Goodwin, G. Sin: Adaptive Filtering, Prediction and Control, Prentice Hall 984. Compensación de Velocidad: p 8/68 Clase Control Predictivo.doc 67