Practica7 Scilab
Practica7 Scilab
Practica7 Scilab
PRÁCTICA 7
CONTROL DE REGULACIÓN AL ORIGEN
Objetivo
Calcular el valor de las ganancias del algoritmo de control mediante
retroalimentación de estados.
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 se puede apreciar que para alcanzar el objetivo de control se requiere que
en el diseño del algoritmo de control se calcule una ganancia K tal que (A-
BK)<0 con lo cual se garantiza que el estado x(t)→0 conforme t→ ∞.
En el siguiente diagrama de bloques se presenta un sistema en lazo cerrado
con el algoritmo de control mediante retroalimentación de estados.
K = ppol(A, B, poles)
𝑥̇ 2 3 0 𝑥 0
𝑥̇ = 1 −2 3 𝑥 + 2 𝑢
𝑥̇ 0 −1 −2 𝑥 0
1 0 0 𝑥
𝑦= 0 1 0 𝑥
0 0 1 𝑥
considere que se desea que los polos del sistema controlado lleguen a estar
ubicados en -2+3i, -2-3i, -4. Previo al diseño del algoritmo de control grafique
el comportamiento dinámico de los estados 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*u
endfunction
u = 0;
A = [2 3 0; 1 -2 3; 0 -1 -2];
B = [0; 2; 0];
x0=[0.5; 1; 1.5];
t0=0;
t=[0:0.1:6];
xla = ode(x0,t0,t,list(sla))
plot2d(t',xla')
xgrid
title('Evolución de los estados en lazo abierto')
xlabel('tiempo, t')
ylabel('Magnitud')
K = [6.75, 3, 3.75];
function xdot=sla(t, x, A, B)
xdot = A*x + B*(-K*x)
endfunction
A = [2 3 0; 1 -2 3; 0 -1 -2];
B = [0; 2; 0];
x0=[0.5; 1; 1.5];
t0=0;
t=[0:0.1:6];
xla = ode(x0,t0,t,list(sla))
plot2d(t',xla')
xgrid
title('Evolución de los estados en lazo cerrado')
xlabel('tiempo, t')
ylabel('Magnitud')
𝑥̇ 3 1 4 𝑥 0
𝑥̇ = 2 2 3 𝑥 + 0 𝑢
𝑥̇ −1 1 −3 𝑥 1
1 0 0 𝑥
𝑦= 0 1 0 𝑥
0 0 1 𝑥
resuelva lo siguiente:
(en cada uno de los incisos agregue el código y en los que corresponda la gráfica
de la respuesta)