Sei sulla pagina 1di 12

SISTEMAS DE CONTROL EN EL ESPACIO DE ESTADOS

AUTOR: Mendoza Reyes Germn

PLANTA: CONTROL DE LA VELOCIDAD DE UN MOTOR DC

Sea el motor dc de excitacin independiente, controlado por armadura, tal que sus parmetros son: Momento de inercia del rotor (J) Coeficiente de friccin viscosa (b) Constantes elctrica (K=Ke=Kt) Resistencia de armadura (Ra) Inductancia de armadura (La) [ ] = = = = = [ 0.01 kg.m2/s2 0.1 Nms 0.01 Nm/Amp 1 Ohm 0.5 ]

NOTA:

considere las siguientes ecuaciones:

Ra + ea ia

La if = cte +

efem
wm

T J b

OBSERVACION GENERAL: SE DESARROLARA UN SISTEMA DE CONTROL OPTIMO PROPORCIONAL E INTEGRAL PARA LAS DOS PRIMERAS VARIABLES DEL SISTEMA. LUEGO SE IMPLEMENTARA UN SISTEMA DE CONTROL OPTIMO PROPORCIONAL PARA LAS TRES VARIABLES: CORRIENTE, VELOCIDAD ANGULAR Y ANGULO. PARA LOS DOS PRIMEROS DISEOS NO EXISTE INCONVENIENTE EN LOS RESULTADOS, A DIFERENCIA DEL ULTIMO QUE NO CUMPLE LAS PERSPECTIVAS, POR TAL MOTIVO SE HIZO ALGUNAS MODIFICACIONES AL DISEO. ESPECIFICAMENTE AL VECTOR DE GANANACIAS (ESTO ULTIMO SE EXPLICARA DETALLADAMENTE MAS ADELANTE).

CONTROL II

FIEE - UNI

CONTROL PTIMO

[ ]

][ ]

][ ]

Si modificamos el orden del vector de estado de la siguiente manera [ Ahora remplazando valores tendremos: [ ]

][ ]

[ ]

][ ]

[ ]

Control optimo proporcional para un motor (sistema de 2x2): Moldeamiento del sistema (2x2) [ ]

] [ ]

[ ]

][ ]

[]

[ [ ]

Ap=A-B*K=[1 -10;4.66 -11.88]; Bp=B*K(1)=[0 -6.66]; Cp=C=[1 0]; Dp=D=[0];

Modelamiento del nuevo sistema (2x2) [ ] [ ] [ ] [ ]

][ ]

[]

CONTROL II

FIEE - UNI

Observacin: A medida que aumentamos el valor de R el tiempo de establecimiento empieza a aumentar, para nuestro caso con un R=0.1 se obtiene un Ts= 0.7seg; a diferencia de otros valores mayores de R que dan valores muy grandes de tiempo de establecimiento; por ejemplo para R=10 da como Ts =1.5seg y no solo eso, sino que tambin aumenta la magnitud del error. Tambin se pudo haber escogido R=0.5 pues este valor reduce en 20% el sobrepico de la funcin corriente.

ESQUEMA EN SIMULINK

CONTROL II

FIEE - UNI

CONTROL II

FIEE - UNI

En Matlab.
%EL MOTOR DC %DISEO DE UN SISTEMA DE CONTROL OPTIMO PROPORCIONAL (SISTEMA 2X2) A=[1 -10 ;-2 -0.02]; B=[0;2]; C=[1 0]; D=[0]; [f,c]=size(A); %1.-) Verificamos la controlabilidad M=ctrb(A,B) rangoM=rank(M) detM=det(M) if rangoM==f fprintf('EL SISTEMA ES DE ESTADO COMPLETAMENTE CONTROLABLE') else fprintf('EL SISTEMA NO ES CONTROLABLE') rangoM fprintf(['DEBERIA SER RANGO=' str2double(f)]) end %2.-) Elegimos adecuadamente Q y R Q=eye(f) R=0.5 %3.-) Verificamos la estabilidad del sistema sys=ss(A,B,C,D); tf(sys); [num,den] = ss2tf(A,B,C,D); tf(num,den) %4.-) Determinamos la matriz P [P,l,g]=care(A,B,Q,R); P %5.-) Determinamos el vector de ganancia K=(R^-1)*B'*P %6.-) Graficamos los resultados del control proporcional Ap=A-B*K Bp=B*K(1) Cp=C; Dp=D; t=0:0.02:6; [y,x,t]=step(Ap,Bp,Cp,Dp,1,t); % El nuevo sistema sys=ss(Ap,Bp,Cp,Dp); tf(sys); [num,den] = ss2tf(Ap,Bp,Cp,Dp); tf(num,den) size(x); x1=[1 0 ]*x'; x2=[0 1 ]*x'; figure subplot(2,2,1); plot(t,x1); grid title('Velocidad Angular') xlabel('t seg'); ylabel('x1') subplot(2,2,2); plot(t,x2);grid title('Corriente') xlabel('t seg'); ylabel('x2') subplot(2,2,[3 4]); plot(t,y-1); grid title('Error: Salida-Entrada (y-r) ') xlabel('t seg'); ylabel('x4')

CONTROL II

FIEE - UNI

Control optimo con integrador para un motor (sistema de 2x2):

Moldeamiento del sistema (2x2) [ ]

] [ ]

[ ]

][ ]

[]

] [

[ ]

][

Moldeamiento del nuevo sistema (3x3)


Ai= [A-B*Kp B*Ki;-C 0] 1.0000 -10.0000 4.6868 -11.7361 -1.0000 0 Bi= [0; 0; 1] Ci= [C 0] Di= [0]; 0 -2.0000 0

[ ]

] [ ]

[ ]

][ ]

CONTROL II

FIEE - UNI

ESQUEMA EN SIMULINK

CONTROL II

FIEE - UNI

En MatLab:
%EL MOTOR DC %DISEO DE UN SISTEMA DE CONTROL OPTIMO INTEGRAL (SISTEMA 2X2) A=[1 -10;-2 -0.02]; B=[0;2]; C=[1 0]; D=[0]; [f,c]=size(A); % Definicin del nuevo sistema (An,Bn,Cn,Dn) An=[A zeros(f,1);-C 0] Bn=[B;0]; Cn=[C 0]; Dn=[0]; %1.-) Verificamos la controlabilidad Mn=ctrb(An,Bn); rangoMn=RANK(Mn); detMn=det(Mn); %2.-) Elegimos adecuadamente Q y R Qn=1*eye(f+1); Rn=0.5; Verificamos la estabilidad del sistema sys=ss(An,Bn,Cn,Dn); tf(sys); [num,den] = ss2tf(An,Bn,Cn,Dn); tf(num,den) Determinamos la matriz P [Pn,l,g]=care(An,Bn,Qn,Rn); Pn Determinamos el vector de ganancias K=(Rn^-1)*Bn'*Pn Graficamos los resultados del control proporcional Ki=-K(end) Kp=K(1,1:end-1) %El nuevo sistema Ap=[A-B*Kp B*Ki;-C 0] Bp=[0;0;1] Cp=[C 0] Dp=[0]; %Ap=An-Bn*K %Bp=Bn*K(1) %Cp=Cn;

%3.-)

%4.-) %5.-) %6.-)

t=0:0.02:20; [y,x,t]=step(Ap,Bp,Cp,Dp,1,t); % El nuevo sistema sys=ss(Ap,Bp,Cp,Dp); tf(sys); [num,den] = ss2tf(Ap,Bp,Cp,Dp); tf(num,den) size(x); x1=[1 0 0]*x'; x2=[0 1 0]*x'; x3=[0 0 1]*x'; figure subplot(2,2,1);plot(t,x1);grid title('Velocidad Angular') xlabel('t seg');ylabel('x1') subplot(2,2,2);plot(t,x2);grid title('Corriente') xlabel('t seg');ylabel('x2') subplot(2,2,[3 4]);plot(t,1-y);grid title('Error: Entrada -Salida (r-y) ') xlabel('t seg');ylabel('x3')

CONTROL II

FIEE - UNI

Control optimo proporcional para un motor (sistema de 3x3):

[ ]

][ ]

[ ]

][ ]

[ ]

Moldeamiento del nuevo sistema (3x3)


Ap=A-B*K

Ap = 1.0000 4.6868 1.0000


Bp=B*ki

-10.0000 -11.7361 0

0 2.0000 0

Bp = 0 -6.6868 0
Cp=C; Dp=D;

[ ]

] [ ]

][ ]

Observacin: Este sistema determinado no satisface la condiciones de control; esto es debido a que al agregar la nueva variable , entonces se obtiene k3=0 ;tal como se muestra en el siguiente esquema

CONTROL II

FIEE - UNI

Esta grafica muestra la salida del sistema sin modificacin; por ello y(t=INFINITO )=0. Ahora si K3 = 0; entonces CONTROL II

FIEE - UNI

Del grafico y(t=infinito) es aproximadamente 2.5 es con esta ltima modificacin la salida (la velocidad angular) se logra controlar en estado estable. En matlab:
%EL MOTOR DC %DISEO DE UN SISTEMA DE CONTROL OPTIMO PROPORCIONAL (SISTEMA 3X3) %"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" %"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" A=[1 -10 0;-2 -0.02 0; 1 0 0]; B=[0;2;0]; C=[1 0 0]; D=[0];

[f,c]=size(A); %1.-) Verificamos la controlabilidad M=ctrb(A,B); rangoM=RANK(M); detM=det(M); if rangoM==f fprintf('EL SISTEMA ES DE ESAPACIO COMPLETAMENTE CONTROLABLE') else fprintf('EL SISTEMA NO ES CONTROLABLE') rangoM fprintf(['DEBERIA SER RANGO=' str2double(f)]) end %2.-) Elegimos adecuadamente Q y R Q=[1 0 0;0 1 0; 0 0 1]; R=1; %3.-) Verificamos la estabilidad del sistema sys=ss(A,B,C,D); tf(sys); [num,den] = ss2tf(A,B,C,D); tf(num,den) %4.-) Determinamos la matriz P [P,l,g]=care(A,B,Q,R); P %5.-) Determinamos el vector de ganancias K=(R^-1)*B'*P ki=1*K(1); %6.-) Graficamos los resultados del control proporcional Ap=A-B*K Bp=B*ki Cp=C; Dp=D;

CONTROL II

FIEE - UNI

% El nuevo sistema sys=ss(Ap,Bp,Cp,Dp); tf(sys); [num,den] = ss2tf(Ap,Bp,Cp,Dp); tf(num,den) t=0:0.02:20; [y,x,t]=step(Ap,Bp,Cp,Dp,1,t); size(x); x1=[1 0 0 ]*x'; x2=[0 1 0 ]*x'; x3=[0 0 1 ]*x'; figure subplot(2,2,1);plot(t,x1);grid title('Velocidad Angular') xlabel('t seg');ylabel('x1') subplot(2,2,2);plot(t,x2);grid title('Corriente') xlabel('t seg');ylabel('x2') subplot(2,2,3);plot(t,x3);grid title('Angulo') xlabel('t seg');ylabel('x3') subplot(2,2,4);plot(t,1-y);grid title('Error: Entrada -Salida (r-y) ') xlabel('t seg');ylabel('x4') %"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" %""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

CONTROL II

FIEE - UNI

Potrebbero piacerti anche