Mathematics">
Practica8 Scilab
Practica8 Scilab
Practica8 Scilab
PRÁCTICA 8
SERVOSISTEMAS
Objetivo
Calcular el valor de las ganancias del algoritmo de control para regulación
de la variable controlada a una constante diferente de cero mediante
retroalimentación de estados aplicado a sistemas tipo 1, a esto se le conoce
como diseño de servosistemas.
Preliminares
Un algoritmo de control mediante retroalimentación de estados permite
cambiar la ubicación de los polos del sistema al que se aplica el algoritmo de
control. Siempre se busca que en el sistema contralado o en lazo cerrado los
polos lleguen a estar ubicados sobre el semiplano izquierdo del plano s,
asegurando de esta forma un comportamiento estable de la variable controlada
en el sistema físico.
Un sistema en lazo abierto representado en espacio de estados se define
como:
𝑥̇ (𝑡) = 𝐴𝑥(𝑡) + 𝐵𝑢(𝑡), … . (1)
𝑦(𝑡) = 𝐶𝑥(𝑡) … . (2)
donde la ganancia K es un valor tal que el sistema tipo 1 llegue a tener ubicados
sus polos de lazo cerrado en posiciones definidas a partir de los requerimientos
de diseño. Con esta ganancia K la variable controlada y(t)→r conforme t→ ∞
con u(∞)→0. Donde r es el valor constante de la referencia.
En el siguiente diagrama de bloques se presenta un sistema tipo 1 en lazo
cerrado con el algoritmo de control mediante retroalimentación de estados.
K = ppol(A, B, Pd)
𝑥̇ 0 1 −2 𝑥 0
𝑥̇ = 0 −2 3 𝑥 + 3 𝑢
𝑥̇ 0 3 5 𝑥 0
𝑥
𝑦 = [1 0 0] 𝑥
𝑥
considere que se desea que los polos del sistema controlado lleguen a estar
ubicados en -4+3i, -4-3i, -4. Previo al diseño del algoritmo de control grafique
el comportamiento dinámico del estado del sistema en lazo abierto, para esto
considere que x(0)=[0.5; 1; 1.5]. Una vez calculada la ganancia del controlador,
simule el comportamiento del sistema en lazo cerrado considere que x(0)=[0.5;
1; 1.5].
Solución.
function xdot=sla(t, x, A, u, B)
xdot=A*x+B*(-K*x+k1*r)
endfunction
K = [0 0 0];
k1 = K(1);
r = 3;
x0=[0.5; 1; 1.5];
t0=0;
t=[0:0.1:6];
xla = ode(x0,t0,t,list(sla));
xla1 = xla(1,:);
plot(t',xla1','b')
xgrid
title('Evolución de los estados en lazo abierto')
xlabel('tiempo, t')
ylabel('Magnitud')
K = [-3.03 5 17.78];
k1 = K(1);
r = 3;
function xdot=sla(t, x, A, u, B)
xdot=A*x+B*(-K*x+k1*r)
endfunction
x0=[0.5; 1; 1.5];
t0=0;
t=[0:0.1:6];
xla = ode(x0,t0,t,list(sla));
xla1 = xla(1,:);
plot(t',xla1','b')
xgrid
title('Evolución de los estados en lazo cerrado')
xlabel('tiempo, t')
ylabel('Magnitud')
Al ejecutar el código previo resulta la siguiente grafica en la que se aprecia
como ahora con la acción de control el estado ya no se inestabiliza y converge
al valor de la referencia o valor deseado diferente de cero en tiempo finito,
logrando de esta forma estabilizar al sistema.
Reporte.
𝑥̇ 0 1 4 𝑥 0
𝑥̇ = 0 2 3 𝑥 + 0 𝑢
𝑥̇ 0 1 −3 𝑥 1
𝑥
𝑦 = [1 0 0] 𝑥
𝑥
resuelva lo siguiente:
(en cada uno de los incisos agregue el código y en los que corresponda la gráfica
de la respuesta)