Manual de Scilab/Xcos/Sistemas en tiempo continuo

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

 

 

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

 

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:

 

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

Referencias

editar