Sunteți pe pagina 1din 34

Cuenca, 23 de abril de 2012

UNIVERSIDAD POLITECNICA SALESIANA


MAESTRIA EN CONTROL AUTOMATICO E INSDUSTRIAL, CUENCA-ECUADOR, Profesor, Dr. William Colmenares, REALIZADO POR:, Ing. Italo Mogrovejo, Ing. Edgar Lojan, and Ing. Miguel Abril

Electronic

address:

williamc@usb.ve;

URL:

http://sites.google.com/site/

cursoswilliamcolmenares/Home/control-robusto Electronic address: itlmgvp@yahoo.com Electronic address: fernandy2k@hotmail.com Electronic address: ing_miguel_abril@hotmail.com

I.

EJERCICIO 1 Modelo de Incertidumbre (W2)

El modelo resultante de la 4 plantas es:


W2 =
s 0.558 ( 0.015+1 )2 s s ( 0.008 + 1)( 0.105 + 1)

Con el scrip de Matlab BodeIncertidumbreMultiplicativo4Plantas.m

Figure 1: Modelo de Incertidumbre

Vericacin de la condicin de estabilidad robusta Modelo de las plantas Planta Nominal:


Gn(s)= 0.6656e20s 192s + 1

Modelo Planta 1:
G1(s)= 0.6125e32s 254s + 1

Modelo Planta 2: 2

G2(s)=

0.75e25s 215s + 1

Modelo Planta 3:
G3(s)= 0.3e20s 100s + 1

Modelo Planta 4:
G4(s)= 0.6e34s 200s + 1

Para los dos casos se utiliz la planta nominal para el diseo del controlador:
SINTONIZACIN DE UN CONTROLADOR PID (MTODO ZIEGLERNICHOLS DE GANANCIA LTIMA)

Haciendo oscilar la planta nominal variando K se obtuvo un Kcr=23.618 y un Pcr=76 con lo cual en base a la tabla de Ziegler-Nichols se obtuvo:
Kp = 0.45Kcr = 10.6281

T i = P cr/1.2 = 63.3333
SINTONIZACIN DE UN CONTROLADOR PID (MTODO ZIEGLERNICHOLS DE PRIMER ORDEN)

En base a:
G(s)= K es s+1

y vericando que:
0.1 < <1

se tiene:
Kp = 0.9 /(K ) = 12.9808

T i = 3.33 = 66.6667

Sin embargo cuando se le presentaba el controlador a las diferentes plantas su respuesta difera en demasia por lo que se implement el siguiente cdigo en Matlab para observar los valores mnimo de Ti y mximo de Kp en funcin de cada planta. Obteniendo los siguientes resultados ejecutando el script de matlab SintonizacionControladoresPI.m
KP 1 = 11.6633 10.3200 15 823512 98 08 T I1 = 106 560083 250066 6000113 220066 6000 KP 2 = 9 63238 490112 75217 414210 6281 T I2 = 100 000080 000063 3333106 666763 3333

Con lo cual se observa que KP debera ser menor 7.4142 y TI debera ser mayor a 113.2200 por lo que se escoge los siguientes rangos para los valores de KP y TI
Kp < 7.4 T i > 113.3
DESEMPEO ROBUSTO:

Para esto se deber demostrar que el modelo de incertidumbre W2 determinado anteriormente cumple con:
W 2T 1 W 2T 2 W 2T 3 W 2T 4

<1 <1 <1 <1

donde T1, T2, T3, T4 son las funciones de transferencia en lazo cerrado de cada uno de los modelos de planta con el controlador diseado
T i=
Gc(s)Gpi(s) 1+Gc(s)Gpi(s)

En la gura 2 se observa el desempeo para un controlador PI con Kp=7.4 y Ti=113.3, sin embargo se observa que no cumple la norma innito para 2 de los 4 modelos de planta por lo que se realiza un ajuste hasta cumplir la condicin en las 4 plantas lo cual se obtuvo en base a pruebas que los parmetros del controlador deben ser: Kp<6.6 y Ti>113.3 como se muestra en la gura 2.

Figure 2: Condicin de Estabilidad Robusta inicial

Figure 3: Desempeo Robusto mnimo

Por ltimo se ajustaron los parmetros del controlador para obtener en todos los casos una mejor dinmica que no sobrepase del 10% y que los tiempos de establecimiento no sean 5

demasiado grandes en comparacin con la planta nominal sin controlador, lo que produce las siguientes salidas mostradas en las guras 3,4,5.

Figure 4: Dinmica de los modelos de las plantas con Kp=5, Ti=165

Figure 5: Desempeo de los modelos de las plantas con Kp=5, Ti=165

II.

EJERCICIO 2

<

LMI:
P >0

CP C T < 2

AP + P AT + BB T < 0

Figure 6: CIRCUITO RLC

i(t) = v(t) Ri(t) vc(t) t C V c(t) =i t y =Vc

Con R=L=C=1

i(t) t V c(t) t

1 1 1

1 + V (t) 0 V c(t) 0 i(t)

(1)

x = ax + bu y y = cx + du

Con la ley de control se tiene: u = Kx + r


x = ax + b(Kx + r)

x = ax bKx + br)

x = (a bK)x + br)

a = a bk

Entonces se tiene:
x = ax + br)

y = cx

Los LMIs son: LMI1:


P >0

LMI2:
CP C T 2 < 0

CP C T 1 < 0

LMI3:
AP + P AT + BB T < 0

AP + P AT + BB T < 0

S = P 1

S (a bk)P + P (a bk)T + bbT S < 0

Se obtiene:
SA + AT S SBK K T B T S + SBB T S < 0

Con
R = KS

No se puede eliminar la dualidad directamente as que se trabaja con la forma dual


AT P + P AT BR RT B T + BB T < 0

Lo cual da como resultado:


K = 1.343 3.2810

y los polos del sistema son:


P1 = 1.1715 + 1.7054i

P2 = 1.1715 1.7054i

El programa se encuentra en el anexo con el nombre Norma2CircuitoRLC01.m el mismo que al ejecutarlo muestra los siguientes resultados:

Solver for LMI feasibility problems L(x) < R(x) This solver minimizes t subject to L(x) < R(x) + t*I The best value of t should be negative for feasibility Iteration : Best value of t so far 1 -0.290602 Result: best value of t: -0.290602 f-radius saturation: 0.000% of R = 1.00e+009 El tiempo mnimo es: -0.2906 Matriz denida positiva P:
P = 1.2018 0.4006 0.4006 0.5000

R = 0.2997 1.1025

El vector K de realimentacin de estados es: [K = 1.34303.2810] Los polos del sistema son:
P1 = 1.1715 + 1.7054i

P2 = 1.1715 1.7054i

Comprobacin de la matriz denida positiva P : 0.3183 1.3835


N orma2Con = 0.5000 N orma2Obs = 0.5000

La funcin de transferencia del sistema en lazo cerrado es: Transfer function: 1


10

s2 + 2.343s + 5.281

Figure 7: Respuesta del sistema RLC con realimentacin de estados

III.

EJERCICIO

Las ecuaciones diferenciales son:


v(t) vR(t) vL(t) vc(t) = 0 i(t) vc(t) = 0 t

v(t) Ri(t) L

i(t) = v(t) Ri(t) vc(t) t 1 V c(t) = C i(t)dt

Las ecuaciones de estado con L = C = R = 1re presentadas en la forma x = ax + bu y


y = cx + du
i(t) t V c(t) t

1 1 1

1 + V (t) V c(t) 0 0 i(t)

(2)

11

V c(t) = 1 0

i(t) V c(t)

+ [0] V (t)

(3)

Por lo tanto:
a= 1 1

1 0 1 b= 0

c= 1 0

d=0

a) Para asegurar un seguimiento perfecto se debe agregar un polo en el origen en la salida tomando en cuenta que esto adiciona una variable de estados como se muestra en el siguiente digrama de bloques:

Figure 8: Digrama de bloques

La matriz aumentada es:


1 1 0 i(t) = 1 0 0 V c(t) + 0v(t) V c(t) 0 1 0 V c(t)
i(t) t V c(t) t

(4)

El modelo de incertidumbre de la ecuacin diferencial es:


i(t) 1 v(t) vR(t) L t C i(t)dt = 0

12

i(t) 1 L vR(t) L t C

i(t)d t = L {v(t)}

Con las condicione iniciales iguales a cero para obtener la funcion de transferencia y L=C=1.
sLI(s) + RI(s) + 1 I(s) = V (s) Cs

I(s)

LCs2 + RCs + 1 = V (s) Cs

I(s) Cs = 2 + RCs + 1 V (s) LCs s/L I(s) = 2 R V (s) s + Ls +

1 LC

s I(s) = 2 V (s) s + Rs + 1

Con funcin escaln unitario us = k/s y k = 1 se obtiene P (s)


Pn (s) = 1 + Rs + 1

s2

con R =
Pn (s) =

Rmin +Rmax 2 1 s2 +s+1

W2 (s) = 0.45s

1 P 1 = Pn +

W2

1 = s2 + s + 1 + P P (s) = 1 +s+1+

W2

s2

W2

P (s) =

1 s2 + (1 + 0.4 )s + 1

(5)

13

Por lo tanto es aditivo inverso. Y la norma para comprobar la robustez del sistema es
W2 Pn S 1

Ahora analizando la sensibilidad se tiene Digrama de bloques

Figure 9: Diagrama de Bloques

Sin embargo el integrador es conveniente situarlo a la entrada lo que resulta en

Figure 10: Sistema en simulink

Con lo cual se tiene la sigueinte desigualdad LMI LMI1



T T AS + SAT BR RT B T + 2 B1 B1 SC1

C1 s

(6)

14

LMI2
AS + SAT BR RT B T + 2S < 0

(7)

donde = 4/(te )=4/10=0.4


AS + SAT BR RT B T + 0.8S < 0

(8)

LMI3
S<0

Ejecutando el programa en matlab dan las siguientes grcas:

Figure 11: RESPUESTA DEL SISTEMA RLC SIN CONTROLADOR

Comprobacin de robustez del sistema

15

Figure 12: COMPROBACION DE ROBUSTEZ DEL SISTEMA RLC

Respuesta al escaln del sistema

Figure 13: RESPUESTA AL ESCALN UNITARIO

IV.

EJERCICIO

Realimentacin de la salida 16

Figure 14: Realimentacin de estados con perturbaciones en la entrada

Realizando los clculos en matlab se obtiene:

Figure 15: Respuesta del sistema sin controlador

Para comprobar la robustez de sistema se puede ver: 17

Figure 16: Comprobacin de la robustez del sistema

Respuesta al escaln unitario:

Figure 17: Respuesta al escaln unitario

Con el modelo de incertidumbre acotado en norma para el circuito RLC se tiene:

18

Rn 1 0

An = 1 0

0 0 1 0

donde: Rn=Rmedia
Rn =
R1 +R2 2

0.6+1.4 2

Rn = 1 A = An + DF E

Como |F | 1 entonces Rn se considera positivo. Ahora para cubrir el espectro de A se tiene que:
1 1 0 0.4 A=1 0 0+ 0 F 1 0 0 0 1 0 0

Mientras que las LMIs a utilizar son: LMI #1:


An P + +P AT n + DD BR R B + C1 P EP
T T T 2 T B1 B1 T P C1

PE 1 0 <0 0 I

LMI #2:
P >0

LMI #3:
>0

Part I

Anexos:
Cdigos Matlab, todos estos programas fueron utilizados para el desarrollo del presente trabajo.

19

A.

LMICircuitoRLCSeguidorRealimentacionEstadosPolihedrica01.m

clear all; close all; clc; % Denicin de las matrices y vectores de estado a=[-1 -1;1 0]; b=[1;0]; c=[0 1]; % Denicin de las matrices y vectores de estado incluido el integrador A=[a [0;0];[0 1] 0]; B=[b;0]; C=[0 c]; % Vectores del nuevo espacio de estado A1=[-0.6 -1 0;1 0 0;0 1 0]; A2=[-1.4 -1 0;1 0 0;0 1 0]; B1=[0;0;1]; C1=[0 1 0]; % Constante a comparar para la robustez del sistema gamma=2; % Respuesta del sistema original sin realimentacin de estados gure(1); sys=ss(a,b,c,0); step(sys); grid on; xlabel('Tiempo'); ylabel('Amplitud'); title('RESPUESTA DEL CIRCUITO RLC SIN CONTROLADOR'); % Conjunto de LMI's para el control por realimentacin de estados y una % respuesta menor a 10 segundos setlmis([]); P=lmivar(1,[3,1]); R=lmivar(2,[1,3]); % Dencin de LMI1 lmiterm([1 1 1 P],A1,1,'s'); lmiterm([1 1 1 R],-B,1,'s'); lmiterm([1 1 1 0],gamma^(-2)*B1*B1'); lmiterm([1 1 2 P],1,C1'); lmiterm([1 2 2 0],-1); % Dencin de LMI2 lmiterm([2 1 1 P],A2,1,'s'); lmiterm([2 1 1 R],-B,1,'s'); lmiterm([2 1 1 0],gamma^(-2)*B1*B1'); lmiterm([2 1 2 P],1,C1'); lmiterm([2 2 2 0],-1); % Dencin de LMI3 lmiterm([-3 1 1 P],1,1); % Fin de la denicin de las LMI's n=getlmis; [tmin,popt]=feasp(n); % Comprobacin de la convergencia de las LMI's disp('El tiempo mnimo es: '); disp(tmin); % Visualizacin de resultados de las matriz denida positiva S y de la % matriz R disp('Matriz denida positiva S:'); P=dec2mat(n,popt,1) %esto saca de la solucin de n de la primera variable disp('Matriz R:'); R=dec2mat(n,popt,2) %esto saca de la solucin de n de la segunda variable % Clculo del vector K de realimentacin de estados K=R*inv(P); disp('El vector K de realimentacin de estados es:'); disp(K); % Comprobacin de la estabilidad del sistema y de la matriz denida S polos=eig(A-B*K); dp=eig(P); disp('Los polos del sistema son: '); disp(polos); disp('Comprobacin de la matriz denida positiva S: '); disp(dp); % Matriz de sensibilidad S=ss(A-B*K,B1,C1,0); % Funcin de transferencia de la planta Pn=ss(A,B,C,0); % Comprobacin de robustez del sistema s=tf('s'); W2=0.4*s; gure(2); bodemag(W2*Pn*S); grid on; xlabel('Frecuencia'); ylabel('Amplitud en dB'); title('COMPROBACIN DE ROBUSTEZ DEL SISTEMA RLC'); % Grca de la seal de salida gure(3); Kt=K(1,1:2); g=ss(a-b*Kt,b,c,0); ga=g*K(1,3)/s; T=feedback(ga,1); step(T); grid on; % Funcin de transferencia del sistema en lazo cerrado disp('La funcin de transferencia del sistema en lazo cerrado es: '); T=tf(T)

B.

LMICircuitoRLCSeguidorRealimentacionEstados.m

clear all; close all;

20

clc; % Denicin de las matrices y vectores de estado a=[-1 -1;1 0]; b=[1;0]; c=[0 1]; % Denicin de las matrices y vectores de estado incluido el integrador A=[a [0;0];[0 1] 0]; B=[b;0]; C=[0 c]; % Vectores del nuevo espacio de estado B1=[0;0;1]; C1=[0 1 0]; % Constante a comparar para la robustez del sistema gamma=2; % Respuesta del sistema original sin realimentacin de estados gure(1); sys=ss(a,b,c,0); step(sys); grid on; xlabel('Tiempo'); ylabel('Amplitud'); title('RESPUESTA DEL CIRCUITO RLC SIN CONTROLADOR'); % Conjunto de LMI's para el control por realimentacin de estados y una % respuesta menor a 10 segundos setlmis([]); S=lmivar(1,[3,1]); R=lmivar(2,[1,3]); % Dencin de LMI1 lmiterm([1 1 1 S],A,1,'s'); lmiterm([1 1 1 R],-B,1,'s'); lmiterm([1 1 1 0],gamma^(-2)*B1*B1'); lmiterm([1 1 2 S],1,C1'); lmiterm([1 2 2 0],-1); % Dencin de LMI2 lmiterm([2 1 1 S],A,1,'s'); lmiterm([2 1 1 S],0.4,1,'s'); lmiterm([2 1 1 R],-B,1,'s'); % Dencin de LMI3 lmiterm([-3 1 1 S],1,1); % Fin de la denicin de las LMI's n=getlmis; [tmin,popt]=feasp(n); % Comprobacin de la convergencia de las LMI's disp('El tiempo mnimo es: '); disp(tmin); % Visualizacin de resultados de las matriz denida positiva S y de la % matriz R

21

disp('Matriz denida positiva S: '); S=dec2mat(n,popt,1) %esto saca de la solucin de n de la primera variable disp('Matriz R:'); R=dec2mat(n,popt,2) %esto saca de la solucin de n de la segunda variable % Clculo del vector K de realimentacin de estados K=R*inv(S); disp('El vector K de realimentacin de estados es: '); disp(K); % Comprobacin de la estabilidad del sistema y de la matriz denida S polos=eig(A-B*K); dp=eig(S); disp('Los polos del sistema son: '); disp(polos); disp('Comprobacin de la matriz denida positiva S: '); disp(dp); % Matriz de sensibilidad S=ss(A-B*K,B1,C1,0); % Funcin de transferencia de la planta Pn=ss(A,B,C,0); % Comprobacin de robustez del sistema s=tf('s'); W2=0.4*s; gure(2); bodemag(W2*Pn*S); grid on; xlabel('Frecuencia'); ylabel('Amplitud en dB'); title('COMPROBACIN DE ROBUSTEZ DEL SISTEMA RLC'); % Grca de la seal de salida gure(3); Kt=K(1,1:2); g=ss(a-b*Kt,b,c,0); ga=g*K(1,3)/s; T=feedback(ga,1); step(T); grid on; % Funcin de transferencia del sistema en lazo cerrado disp('La funcin de transferencia del sistema en lazo cerrado es: '); T=tf(T)

C.

Norma2CircuitoRLC01.m

clear all; close all; clc;

22

% Denicin de las matrices y vectores de estado a=[-1 -1;1 0]; b=[1;0]; c=[0 1]; % Constante a comparar para la robustez del sistema gamma=1; % Conjunto de LMI's para el control por realimentacin de estados y la % norma 2 < gamma setlmis([]); P=lmivar(1,[2,1]); R=lmivar(2,[1,2]); % Dencin de LMI1 lmiterm([1 1 1 P],a,1,'s'); lmiterm([1 1 1 R],-b,1,'s'); lmiterm([1 1 1 0],b*b'); % Dencin de LMI2 lmiterm([2 1 1 P],c,c'); lmiterm([2 1 1 0],-gamma^2); % Dencin de LMI3 lmiterm([-3 1 1 P],1,1); % Fin de la denicin de las LMI's n=getlmis; [tmin,popt]=feasp(n); % Comprobacin de la convergencia de las LMI's disp('El tiempo mnimo es: '); disp(tmin); % Visualizacin de resultados de las matriz denida positiva P y de la % matriz R disp('Matriz denida positiva P: '); P=dec2mat(n,popt,1) R=dec2mat(n,popt,2) % Clculo del vector K de realimentacin de estados K=R*inv(P); disp('El vector K de realimentacin de estados es: '); disp(K); % Comprobacin de la estabilidad del sistema y de la matriz denida P polos=eig(a-b*K); dp=eig(P); disp('Los polos del sistema son: '); disp(polos); disp('Comprobacin de la matriz denida positiva P: '); disp(dp); % Grca de la seal de salida gure(1); g=ss(a-b*K,b,c,0); T=feedback(g,1); step(g);

23

grid on; xlabel('Tiempo'); ylabel('Amplitud'); title('RESPUESTA DEL CIRCUITO RLC CON REALIMENTACIN DE ESTADOS'); % Comprobacin de la Norma2 < 1 Pn=ss(a,b,c,0); Lc=gram(Pn,'c'); Lo=gram(Pn,'o'); Norma2Con=c*Lc*c' Norma2Obs=b'*Lo*b hold on; step(Pn) % Funcin de transferencia del sistema en lazo cerrado disp('La funcin de transferencia del sistema en lazo cerrado es: '); T=tf(T)

D.

BodeIncertidumbreMultiplicativo4Plantas.m

clear all; close all; clc; s=tf('s'); g1=0.6125/(254*s+1); set(g1,'OutputDelay',32); %Esto de aqu adiciona un retardo g1=ss(g1); %Esto pasa a espacio de estados porque caso contrario no puedo trabajar con retardos g2=0.75/(215*s+1); set(g2,'OutputDelay',25); g2=ss(g2); g3=0.3/(100*s+1); set(g3,'OutputDelay',20); g3=ss(g3); g4=0.6/(200*s+1); set(g4,'OutputDelay',34); g4=ss(g4); gn=0.6656/(192*s+1); set(gn,'OutputDelay',20); gn=ss(gn); set(g1,'OutputDelay',0); %Elimino los retardos para poder hacer la divisin de g1/gn set(g2,'OutputDelay',0); set(g3,'OutputDelay',0); set(g4,'OutputDelay',0); set(gn,'OutputDelay',0); gg1=g1/gn; %Realizo la divisin de las funciones de transferencia pero sin los retardos gg2=g2/gn; gg3=g3/gn;

24

gg4=g4/gn; set(gg1,'OutputDelay',12); %Adiciono el retardo neto (32-20) set(gg2,'OutputDelay',5); %Adiciono el retardo neto (25-20) set(gg3,'OutputDelay',0); %Adiciono el retardo neto (20-20) set(gg4,'OutputDelay',14); %Adiciono el retardo neto (34-20) bodemag(gg1-1,gg2-1,gg3-1,gg4-1,{0.0001 100}); %Graco la incertidumbre multiplicativa grid on; % Clculo del modelo de incertidumbre multiplicativo % Primer modelo % W2=0.549541*(s/0.01+1)*(s/0.03+1)/(s/0.005+1)/(s/0.2+1); % Segundo modelo W2=0.558*(s/0.015+1)^2/(s/0.008+1)/(s/0.105+1); hold on; bodemag(W2,{0.0001 100}); %Graco la incertidumbre multiplicativa legend('(g1/gn)-1','(g2/gn)-1','(g3/gn)-1','(g4/gn)-1','W2'); title('W2=0.558*(s/0.015+1)^2/(s/0.008+1)/(s/0.105+1)');

E.

ControladorPIDPlantaNominal

clear all; close all; clc; s=tf('s'); % Kp=3; % Ti=100; % Td=0.0; Kp=11.52; Ti=40; Td=10; gn=0.6656/(192*s+1); gc=Kp*(1+Td*s+1/(Ti*s)); sysg=gc*gn; set(sysg,'OutputDelay',20); sysg=ss(sysg); gure(1); bode(sysg,{0.0001 100}); grid on; [Gm,Pm,Wcg,Wcp]=margin(sysg); gure(2); sys=feedback(sysg,1) step(sys); grid on; hold on; g=tf([0.6656],[192 1]); sys=feedback(g*gc,1)

25

step(sys); hold on; set(gn,'OutputDelay',20); gn=ss(gn); sys=feedback(gn,1) step(sys); xlabel('Tiempo'); ylabel('Amplitud'); title('Respuesta al escalon con controlador PID -> Kp=11.52, Ti=40, Td=10');

F.

ControladorPIDPlantaNominal4Plantas

clear all; close all; clc; s=tf('s'); Kp=5; Ti=165; Td=0; gc=Kp*(1+Td*s+1/(Ti*s)); gn=0.6656/(192*s+1); set(gn,'OutputDelay',20); gn=ss(gn); sysn=feedback(gn,1); gcn=gc*gn; syscn=feedback(gcn,1); g1=0.6125/(254*s+1); set(g1,'OutputDelay',32); g1=ss(g1); gc1=gc*g1; sysc1=feedback(gc1,1); g2=0.75/(215*s+1); set(g2,'OutputDelay',25); g2=ss(g2); gc2=gc*g2; sysc2=feedback(gc2,1); g3=0.3/(100*s+1); set(g3,'OutputDelay',20); g3=ss(g3); gc3=gc*g3; sysc3=feedback(gc3,1); g4=0.6/(200*s+1); set(g4,'OutputDelay',34); g4=ss(g4); gc4=gc*g4;

26

sysc4=feedback(gc4,1); gure(1); subplot(2,2,1); hold on; step(sysn); step(syscn); step(sysc1); grid on; xlabel('Tiempo'); ylabel('Amplitud'); title('Respuesta a los sistemas subplot(2,2,2); hold on; step(sysn); step(syscn); step(sysc2); grid on; xlabel('Tiempo'); ylabel('Amplitud'); title('Respuesta a los sistemas subplot(2,2,3); hold on; step(sysn); step(syscn); step(sysc3); grid on; xlabel('Tiempo'); ylabel('Amplitud'); title('Respuesta a los sistemas subplot(2,2,4); hold on; step(sysn); step(syscn); step(sysc4); grid on; xlabel('Tiempo'); ylabel('Amplitud'); title('Respuesta a los sistemas gure(2); subplot(1,1,1); hold on; step(sysn); step(syscn); step(sysc1); step(sysc2); step(sysc3); step(sysc4);

gn y g1');

gn y g2');

gn y g3');

gn y g4');

27

grid on; xlabel('Tiempo'); ylabel('Amplitud'); title('Respuesta a los sistemas gn, g1, g2, g3 y g4'); T1=feedback(gc*g1,1); T2=feedback(gc*g2,1); T3=feedback(gc*g3,1); T4=feedback(gc*g4,1); W2=0.558*(s/0.015+1)^2/(s/0.008+1)/(s/0.105+1); gure(3); subplot(2,2,1); bodemag(W2*T1); xlabel('Frecuencia'); ylabel('Magnitud'); title('Estabilidad Robusta para |W2T1|inf < 1'); grid on; subplot(2,2,2); bodemag(W2*T2); xlabel('Frecuencia'); ylabel('Magnitud'); title('Estabilidad Robusta para |W2T2|inf < 1'); grid on; subplot(2,2,3); bodemag(W2*T3); xlabel('Frecuencia'); ylabel('Magnitud'); title('Estabilidad Robusta para |W2T3|inf < 1'); grid on; subplot(2,2,4); bodemag(W2*T4); xlabel('Frecuencia'); ylabel('Magnitud'); title('Estabilidad Robusta para |W2T4|inf < 1'); grid on;

G.

ControladorPIPlantaNominal.m

clear all; close all; clc; s=tf('s'); % Kp=10.6281; % Ti=63.3333; Kp=18.867; %Kp=16.476

28

%Ti=66.6667; %Ti=inf; Td=0; %gn=0.6656/(192*s+1); gn=0.75/(215*s+1); %gc=Kp*(1+Td*s+1/(Ti*s)); gc=Kp; sysg=gc*gn; set(sysg,'OutputDelay',25); sysg=ss(sysg); gure(1); bode(sysg,{0.0001 100}); grid on; [Gm,Pm,Wcg,Wcp]=margin(sysg); hold on; gure(2); sys=feedback(sysg,1) step(sys); grid on; hold on; g=tf([0.6656],[192 1]); sys=feedback(g*gc,1) step(sys); xlabel('Tiempo'); ylabel('Amplitud'); title('Respuesta al escalon con controlador PID -> Kp=12.9808, Ti=66.6667, Td=0'); hold on; %W2=0.13*(s/0.001+1)*(s+1)/(s/0.125+1)/(s/0.125+1); % W2=0.13*(s/0.001+1)*(s+1)/(s/0.05+1)/(s/0.05+1); % syst=gc*(1+W2)*gn % set(syst,'OutputDelay',20); % syst=ss(syst); % gure(1); % bode(syst,{0.0001 100}); % gure(2); % sys=feedback(syst,1) % step(sys);

H.

ControladorPlantaNominal.m

clear all; close all; clc; %K=23.618; s=tf('s');

29

%gn=0.6656*K/(192*s+1); gn=0.6656/(192*s+1); gc=14.1708*(1+9.5*s+1/(38*s)); sysg=gc*gn; set(sysg,'OutputDelay',20); sysg=ss(sysg); % gure(1); % bodemag(gn,{0.0001 100}); % grid on; % gure(1); % bode(gn,{0.0001 100}); gure(1); bode(sysg,{0.0001 100}); grid on; %[Gm,Pm,Wcg,Wcp]=margin(gn); [Gm,Pm,Wcg,Wcp]=margin(sysg); gure(2); %sys=feedback(gn,1) sys=feedback(sysg,1) step(sys); grid on; hold on; % g=tf([0.6656*K],[192 1]); % sys=feedback(g,1) g=tf([0.6656],[192 1]); sys=feedback(g*gc,1) step(sys); xlabel('Tiempo'); ylabel('Amplitud'); title('Respuesta al escalon con controlador PID -> Kp=14.1708, Ti=38, Td=9.5');

I.

LMICircuitoRLCIncertidumbreAcotadaNorma.m

clear all; close all; clc; % Denicin de las matrices y vectores de estado a=[-1 -1;1 0]; b=[1;0]; c=[0 1]; % Denicin de las matrices y vectores de estado incluido el integrador An=[a [0;0];[0 1] 0]; B=[b;0]; C=[0 c]; % Vectores del nuevo espacio de estado

30

B1=[0;0;1]; C1=[0 1 0]; % Vectores de la incertidumbre acotada D=[0.4;0;0]; E=[1 0 0]; % Constante a comparar para la robustez del sistema gamma=2; % Conjunto de LMI's para el control por realimentacin de estados e % incertidumbre acotada en norma setlmis([]); P=lmivar(1,[3,1]); R=lmivar(2,[1,3]); epsilon=lmivar(2,[1,1]); % Dencin de LMI1 lmiterm([1 1 1 P],An,1,'s'); lmiterm([1 1 1 R],-B,1,'s'); lmiterm([1 1 1 epsilon],1,D*D'); lmiterm([1 1 1 0],gamma^(-2)*B1*B1'); lmiterm([1 1 2 P],1,C1'); lmiterm([1 1 3 P],1,E'); lmiterm([1 2 2 0],-1); lmiterm([1 2 3 0],0); lmiterm([1 3 3 epsilon],-1,1); % Dencin de LMI2 lmiterm([-2 1 1 P],1,1); % Dencin de LMI3 lmiterm([-3 1 1 epsilon],1,1); % Fin de la denicin de las LMI's n=getlmis; [tmin,popt]=feasp(n); % Comprobacin de la convergencia de las LMI's disp('El tiempo mnimo es: '); disp(tmin); % Visualizacin de resultados de las matriz denida positiva P y de la % matriz R disp('Matriz denida positiva P: '); P=dec2mat(n,popt,1) %esto saca de la solucin de n de la primera variable disp('Matriz R:'); R=dec2mat(n,popt,2) %esto saca de la solucin de n de la segunda variable disp('Constante epsilon: '); epsilon=dec2mat(n,popt,3) %esto saca de la solucin de n de la tercera variable % Clculo del vector K de realimentacin de estados K=R*inv(P); disp('El vector K de realimentacin de estados es: '); disp(K); % Comprobacin de la estabilidad del sistema y de la matriz denida S polos=eig(An-B*K);

31

dp=eig(P); disp('Los polos del sistema son: '); disp(polos); disp('Comprobacin de la matriz denida positiva P: '); disp(dp); % Matriz de sensibilidad S=ss(An-B*K,B1,C1,0); % Funcin de transferencia de la planta Pn=ss(An,B,C,0); % Comprobacin de robustez del sistema y grca de la seal de salida s=tf('s'); Kt=K(1,1:2); g=ss(a-b*Kt,b,c,0); ga=g*K(1,3)/s; T=feedback(ga,1); gure(1); step(T); xlabel('Tiempo'); ylabel('Amplitud'); title('RESPUESTA DEL SISTEMA CON CONTROLADOR u=-k*x E INCERTIDUMBRE ACOTADA EN NORMA'); grid on; gure(2); bodemag(T); grid on; xlabel('Frecuencia'); ylabel('Amplitud en dB'); title('COMPROBACIN DE ROBUSTEZ DEL SISTEMA RLC'); % Funcin de transferencia del sistema en lazo cerrado disp('La funcin de transferencia del sistema en lazo cerrado es: '); T=tf(T)

J.

Norma2CircuitoRLC01.m

clear all; close all; clc; % Denicin de las matrices y vectores de estado a=[-1 -1;1 0]; b=[1;0]; c=[0 1]; % Constante a comparar para la robustez del sistema gamma=1; % Conjunto de LMI's para el control por realimentacin de estados y la % norma 2 < gamma setlmis([]);

32

P=lmivar(1,[2,1]); R=lmivar(2,[1,2]); % Dencin de LMI1 lmiterm([1 1 1 P],a,1,'s'); lmiterm([1 1 1 R],-b,1,'s'); lmiterm([1 1 1 0],b*b'); % Dencin de LMI2 lmiterm([2 1 1 P],c,c'); lmiterm([2 1 1 0],-gamma^2); % Dencin de LMI3 lmiterm([-3 1 1 P],1,1); % Fin de la denicin de las LMI's n=getlmis; [tmin,popt]=feasp(n); % Comprobacin de la convergencia de las LMI's disp('El tiempo mnimo es: '); disp(tmin); % Visualizacin de resultados de las matriz denida positiva P y de la % matriz R disp('Matriz denida positiva P: '); P=dec2mat(n,popt,1) R=dec2mat(n,popt,2) % Clculo del vector K de realimentacin de estados K=R*inv(P); disp('El vector K de realimentacin de estados es: '); disp(K); % Comprobacin de la estabilidad del sistema y de la matriz denida P polos=eig(a-b*K); dp=eig(P); disp('Los polos del sistema son: '); disp(polos); disp('Comprobacin de la matriz denida positiva P: '); disp(dp); % Grca de la seal de salida gure(1); g=ss(a-b*K,b,c,0); T=feedback(g,1); step(g); grid on; xlabel('Tiempo'); ylabel('Amplitud'); title('RESPUESTA DEL CIRCUITO RLC CON REALIMENTACIN DE ESTADOS'); % Comprobacin de la Norma2 < 1 Pn=ss(a,b,c,0); Lc=gram(Pn,'c'); Lo=gram(Pn,'o'); Norma2Con=c*Lc*c'

33

Norma2Obs=b'*Lo*b hold on; step(Pn) % Funcin de transferencia del sistema en lazo cerrado disp('La funcin de transferencia del sistema en lazo cerrado es: '); T=tf(T)

K.

SintonizacionControladoresPI

clear all; close all; clc; % Clculo de los parmetros del controlador PI para las diferentes plantas % MODELO ZIEGLER-NICHOLS DE PRIMER ORDEN K=[0.6125 0.75 0.3 0.6 0.6656]; Tao=[254 215 100 200 192]; Teta=[32 25 20 34 20]; KP1=0.9.*Tao./(K.*Teta) TI1=3.33.*Teta TetaTao=Teta./Tao % MODELO ZIEGLER-NICHOLS DE GANANCIA LTIMA KCR=[21.405 18.867 28.338 16.476 23.618]; PCR=[120 96 76 128 76] KP2=0.45.*KCR TI2=PCR./1.2

34

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