Manual de Scilab/Xcos/Sistemas en tiempo continuo

De Wikilibros, la colección de libros de texto de contenido libre.
Ir a la navegación Ir a la búsqueda
← Aplicación en sistemas de control Sistemas en tiempo continuo Sistemas en tiempo discreto →
Manual de Scilab/Xcos


Acoplamiento de sistemas[editar]

La función (/.) resuelve:

sistema acoplado, construido con Xcos.

-->s1=1;s2=1/s;
-->st=s2/.s1
 st  =
 
      1     
    -----   
    1 + s

Respuesta al escalón de un sistema en tiempo continuo[editar]

Dada 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.

Respuestaaunescalon.png

Espacio de estados[editar]

Se 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[editar]

Dado 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:

Doble integrador

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[editar]

Por 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
  1. Espacio de estados: Manual de Scilab/Xcos/Control en el espacio de estados