Control Optimo: PIA Caso de Estudio: Control Óptimo de Un Sistema Dinámico Lineal
Control Optimo: PIA Caso de Estudio: Control Óptimo de Un Sistema Dinámico Lineal
Control Optimo: PIA Caso de Estudio: Control Óptimo de Un Sistema Dinámico Lineal
Control Optimo
PIA
Caso de estudio: Control óptimo de un sistema dinámico lineal
Planteamiento de Problema
Para el proyecto presentado, se utilizará como ejemplo un motor de corriente continua. Para la
utilización de las variables y esclarecimiento de variables de uso y resolución tendremos las
consideraciones elementales de uso siguientes
Variable Significado
R Resistencia
L Inductancia
J Momento de Inercia
B Amortiguamiento viscoso (lubricación interna del
motor)
Kt Constante eléctrica de Tensión
Kb Constante eléctrica de Fricción
Se toma como consideración la función interna del sistema para así poder obtener las ecuaciones del
control de un motor que tiene campo fijo se considerará un valor de i f .
τ =( K t ∙ i )=[ ( J ∙ ω̇ ) + ( B∙ ω ) ]
[ K t ∙ i ( t ) ]−[ B∙ ω ( t ) ]
ω̇ ( t )=
J
Voltaje controlador que genera el Giro del Motor, además de la Fuerza Contraelectromotriz
u=[ ( L∙ i̇ )+ ( R ∙ i )+ e b ]=[ ( L ∙ i̇ ) + ( R ∙i ) + ( K b ∙ ω ) ]
Se Despeja la Corriente
u ( t )−[ [ R ∙i ( t ) ] + [ K b ∙ ω ( t ) ] ]
i̇ (t )=
L
Se Organiza todo como Matrices
[ ][
Kt
][ ]
−B
[ ]
0
ω̇ ( t ) J J ω (t ) +
˙i̇ ( t ) = −K b −R i ( t )
1 u(t )
L
L L
Especificaciones físicas del motor
[][ ẋ1
=
−5.22345 470.9718047 x 1
][ ] [
+
0
ẋ2 −17.030263 −379.0215954 x 2 73.4538
u ]
Para conocer si el sistema es completamente controlable utilizamos la herramienta de Scilab.
Al verificar el rango teniendo como resultado 2, damos por comprobado que la matriz A es de
dimensión 2x2, por lo tanto, el sistema es completamente controlable.
Para el sistema de control buscamos manipular la velocidad angular x 1=ω (t) y la entrada del
sistema o voltaje de entrada u=V ( t ). Se tiene como requerimiento un valor de velocidad angular de
150 rad /s o aproximadamente 1432 rpm.
Función de Costo
{ }
tf
2 1 2
J ( u )=∫ [ x 1 ( t )−150] + u dt
¿ 4
La referencia que tomamos para 𝑟1 es los 150 rad/s que necesitamos como constante, esta
referencia se le resta a la 𝑥1 que es la velocidad angular del sistema y se le suma a la entrada 𝑢 que
es el voltaje que queremos minimizar.
Desarrollo de cálculos
Propusimos utilizar el método de control óptimo de seguimiento en sistemas lineales utilizando
criterios cuadráticos
A=[−17.030263
−5.22345 470.9718047
−379.0215954 ] [
, B=
0
73.4538 ]
, H [ 0 ] , Q=
2 0
0 0 [ ]
, R=[ 0.5 ] r ( t )=
150
0 [ ]
Ecuación de Ricatti
[ ][ ][ ] [ KK ][ ][ ]
T
K 11 K 12 −5.22345 470.9718047 − −5.22345 470.9718047 K 12 2 0 K 11 K 12
K̇=− 11
− +
K 21 K 22 −17.030263 −379.0215954 −17.030263 −379.0215954 21 K 22 0 0 K 21 K 22
K̇=−
[ −5.22345 K 11 −17.030263 K 12 470.9718047 K 11−379.0215954 K 12
−5.22345 K 21 −17.030263 K 22 470.9718047 K 21−379.0215954 K 22
−
][
−5.22345 K 11−17.030263 K 21
470.9718047 K 12−379.0215954 K 22
2
K̇ 11 =5.22345 K 11+17.030263 K 12 +5.22345 K 11+17.030263 K 12 −2+10790.921 K 11
K̇ 12 =−570.9718047 K 11+ 379.0215954 K 12+5.22345 K 11+ 17.030263 K 12 +10790.921 K 12 K 22
Ecuación de referencia
T −1 T
ṡ=−A s+ KBR B s+Qr ( t )
[ ][ ] [ ][ ] [ ] [ ss ]+[20 00][1500 ]
T T
−5.22345 470.9718047 s 1 K 11 K 12 0 −1 0
ṡ=− + [ 0.5] 1
−17.030263 −379.0215954 s 2 K 21 K 22 73.4538 73.4538 2
[ ][ ] [ ][ ] [ ] [ ] [ ][ ]
T T
−5.22345 470.9718047 s 1 K 11 K 12 0 −1 0 s 1 2 0 150
ṡ=− + [ 0.5] +
−17.030263 −379.0215954 s 2 K 21 K 22 73.4538 73.4538 s2 0 0 0
ṡ=−
[ −5.22345 s1 −17.030263 s 2
+
10790.921 K 12
470.9718047 s1 −379.0215954 s 2 10790.921 K 22 ][ s ] 0 ]
s
1
2
+[
300
[ ][ ][ ] [ ] [ ss ]
T T
¿ −1 0 K 11 K 12 x 1 −1 0
u =−[ 0.5 ] −[ 0.5 ] 1
73.4538 K 21 K 22 x 2 73.4538 2
//////////////////////////////////////////////////
// CONTROL OPTIMO //
// PRODUCTO INTEGRADOR DE APRENDIZAJE //
// REGULACION DE TEMPERATURA DE UN TRANSISTOR //
// ALAN GERSON REYES ROCHA 1626968 //
// Entrega: 22 de noviembre de 2022 //
//////////////////////////////////////////////////
clear
clc
t0=0;
tf=10;
paso=0.01;
ts=(t0:paso:tf)'; //tiempo para simulación
k0=[0;0;0;0;0];
x0=[0;0];
//Ec de Riccati
function dk=ecriccati(ts, k)//Ec. de estado
k11=k(1); k12=k(2); k22=k(3); s1=k(4); s2=k(5);
dk(1) = -10.4469*k11-34.060526*k12+2-10790.921*k12^2
dk(2) = 570.9718047*k11-384.2450454*k12-17.030263*k22-10790.921*k12*k22
dk(3) = 1141.943609*k12-758.0431908*k22-10790.921*k22^2
dk(4) = -5.22345*s1-17.030263*s2-10790.921*k12*s2-300
dk(5) = 470.9718047*s1-379.0215954*s2-10790.921*k22*s2
endfunction
//Simulacion de modelo
k=(ode('rk',k0,t0,ts,ecriccati))';//solucion de la ec de estado
t=tf-ts+t0; //tiempo
k=k($:-1:1,:);// Reordena ganancias
t=t($:-1:1,:);// Reordena tiempo
//Modelo de estado
function dx=planta(t, x)//Ecs. de estado
x1=x(1); x2=x(2);
k12=interp1(ts,k(:,2),t,'linear'); //Interpolate the data (ts,k) at time t
k22=interp1(ts,k(:,3),t,'linear'); //Interpolate the data (ts,k) at time t
s2=interp1(ts,k(:,5),t,'linear'); //Interpolate the data (ts,k) at time t
u= -146.9076*k12*x1-146.9076*k22*x2-146.9076*s2;
dx(1) = -5.22345*x1+470.9718047*x2
dx(2) = -17.030263*x1-379.0215954*x2+73.4538*u
endfunction
//Simulacion de modelo
x=(ode('rk',x0,t0,t,planta))';//solucion de la ec de estado
//Resultados
A=[-5.22345,470.9718047;-17.030263,-379.0215954]; B=[0;73.4538]; Q=[2,0;0,0]; R=0.5;
C=eye(2,2); //Matriz de salidas medibles
P = syslin('c',A,B,C); //Sistema continuo en espacio de estado
[Kb,K]=lqr(P,Q,R); //Cálculo de ganancias óptimas del LQR
k11=K(1,1); k12=K(1,2); k22=K(2,2);
mprintf('Las soluciones son:\nk_11=%f \nk_12=%f\nk_22=%f',k11,k12,k22)
//Gráficas
figure(1),clf,
plot(t,k(:,1),t,k(:,2),t,k(:,3),t,k(:,4),t,k(:,5));
xgrid
xtitle('Solución a la Ec. de Riccati Gerson Reyes 1626968','Tiempo t (s)','k(t)')
legend('$K_{11}$','$K_{12}$','$K_{22}$','$S_{1}$','$S_{2}$')
figure(2),clf,
plot(t,x(:,1),t,x(:,2), t,150,'--');
xgrid
xtitle('Estados del sistema Gerson Reyes 1626968','Tiempo t (s)','x(t)')
legend('$x_1$','$x_2$','$r_1(t)$')
figure(3),clf,
plot(t, -146.9076*k(:,2).*x(:,1)- 146.9076*k(:,3).*x(:,2)- 146.9076*k(:,5));
xgrid
xtitle('Entrada del sistema Gerson Reyes 1626968','Tiempo t (s)','u(t)')
Comparación de las especificaciones del sistema con los valores solicitados
Conclusión
Gracias a este PIA se ha podido aprender sobre la importancia de la optimización aplicada a controlar un
Motor DC.
Lo primero fue haber investigado sobre los parámetros de este para así obtener sus ecuaciones de estado.
Posteriormente, se obtuvieron las ecuaciones de Ricatti para así obtener Diferentes Ganancias que
Optimizaran ese Proceso, además de la ecuación de costo lo suficientemente satisfactoria a nuestra demanda.
Luego, nos dimos a la tarea de pasar los cálculos en SciLab para así graficar el proceso y finalmente, interpretar
las condiciones óptimas para el funcionamiento de nuestro motor.