Manual de Scilab/Xcos/Sistemas en tiempo continuo
Acoplamiento de sistemas
editarLa función (/.) resuelve:
-->s1=1;s2=1/s;
-->st=s2/.s1
st =
1
-----
1 + s
Respuesta al escalón de un sistema en tiempo continuo
editarDada la siguiente función de transferencia se requiere graficar la respuesta al escalón desde t=0 a t=5 segundos, con un intervalo de 0,005.
La idea fundamental de este ejemplo es la de no construirlo en Xcos para poder ver la respuesta al escalón. Si no que definiendo el sistema desde Scilab podemos excitar el mismo; como se puede apreciar en el siguiente script.
s=poly(0,'s');
t=0:0.005:5; //vector de tiempos para la simulación
gp=10/(s^2+2*s+10); //Sistema
sist=syslin('c',gp);
yp=csim('step',t,sist);
plot(t',yp); //Gráfico de la simulación
En el siguiente gráfico se presenta el resultado de la simulación.
Espacio de estados
editarSe puede consultar en wikipedia acerca de la definición del espacio de estado. En esta sección vamos a ver las funciones que tiene Scilab para pasar desde una función de transferencia y viceversa.
Pasaje de la función transferencia al espacio de estados
editarDado un sistema simple como el doble integrador se plantea como obtener la representación en el espacio de estados.
La función de transferencia del sistema es:
Esquema del sistema planteado:
de Acá resulta simple ver como queda la matriz A del sistema:
Del esquema podemos observar como quedan las ganancias del sistema
Código en Scilab para resolver el problema:
s=poly(0,'s');
-->g=1/(s^2+1)
g =
1
-----
2
1 + s
sistG=syslin('c',g);
-->sisve=tf2ss(sistG);
sisve =
sisve(1) (state-space system:)
!lss A B C D X0 dt !
sisve(2) = A matrix =
0. 1.
- 1. 0.
sisve(3) = B matrix =
0.
1.
sisve(4) = C matrix =
1. 0.
sisve(5) = D matrix =
0.
sisve(6) = X0 (initial state) =
0.
0.
sisve(7) = Time domain =
c
Otro ejemplo
s=poly(0,'s');
ke=15.1;tp=0.6;mp=.1987;pr=-log(mp)/tp;wn=sqrt(pr^2+(%pi/tp)^2);
sisc=ke*wn*wn/(s^2+2*pr*s+wn^2);
K=1;
G=(sisc/(1-K*sisc));
sistG=syslin('c',G);
-->sisve=tf2ss(sistG)
sisve =
sisve(1) (state-space system:)
!lss A B C D X0 dt !
sisve(2) = A matrix =
0. 16.
30.552272 - 5.3865304
sisve(3) = B matrix =
0.
22.880245
sisve(4) = C matrix =
1.4300153 0.
sisve(5) = D matrix =
0.
sisve(6) = X0 (initial state) =
0.
0.
sisve(7) = Time domain =
c
Pasaje del espacio de estado a una función transferencia
editarPor ejemplo si:
Podemos aplicar entonces:
Código en Scilab
-->s=poly(0,'s');
-->A=[-1 10;0 1];B=[-2;0];C=[-2 3];D=[-2];
-->gs=C*inv((s*eye(2,2)-A))*B+D
gs =
2 - 2s
------
1 + s
O también directamente podemos hacer esto, teniendo previamente las matrices definidas:
-->sis57=syslin('c',A,B,C,D)
-->ss2tf(sis57)
ans =
2 - 2s
------
1 + s
- Espacio de estados: Manual de Scilab/Xcos/Control en el espacio de estados