Simulación genérica

Simulación genérica con lsim

Cuando se desea obtener la respuesta del sistema ante una entrada cualquiera definida por el usuario (como se muestra en la figura), se usa la función lsim.

La sintáxis básica de esta función es:

lsim(sys,u,t);

donde sys es el sistema que queremos simular, u es un vector que contiene los valores de la entrada que queremos aplicar y t es el vector asociado a u con los instantes de tiempo que se corresponden con cada valor de la entrada. La disposición del vector u debe ser en columna, de tal modo que u tednrá tantas columnas como entradas y cada fila de una columna representa el valor de la entrada correspondiente a ese instante. Si el sistema tuviera sólo una entrada entonces.

 

Ejemplo:

Supongamos que se desea aplicar la siguiente entrada al sistema G(s)=1/(s+2):

t u(t)
0.0 2
0.5 2
1.0 2
1.5 2
2.0 3
2.5 3
3.0 3
3.5 1
4.0 1
4.5 4
5.0 4

 El código Octave para realizar la simulación sería:

sysg=tf(1,[ 1 2]);

t=0:0.5:5;

u=[2 2 2 2  3 3 3 1 1 4 4]';

lsim(sysg,u,t);

El resultado es la creación de la siguiente figura con la evolución de la salida de G(s):

 

 Obsérvese que en lá definición de la entrada u(t), se ha transpuesto el vector de valores para que su disposición fuese en columna, tal como requiere la función lsim. Sin embargo, en este caso también hubiese valido el vector con disposición en fila ya que el sistema sólo tiene una entrada.

Respecto al aspecto de la gráfica se observa cierta discontinuidad en la evolución de la salida. Esto es debido a que el periodo de muestreo elegido es muy alto (0.5 segundos). Hay que tener en cuenta que la constante de tiempo de G(s) es 0.5 segundos (inversa del polo), y se recomienda que el periodo de muestreo para tener una buena simulación sea varias veces más pequeño que la menor constante de tiempo del sistema a simular. Una mejos opción hubiese sido tomar un periodo igual 0.1 tal como se muestra en este código:

sysg=tf(1,[ 1 2]);

t=0:0.1:5;

u(1:20)=2;u(21:35)=3;u(36:45)=1;u(46:51)=4;

lsim(sysg,u,t);

 

 

Como se puede observar, ahora la simulación aparece con un trazo mucho más suave. 

Al igual que con las funciones step e impulse, la salida de la función se puede guardar en variables mediante:

y=lsim(sys,u,t)

Además es posible indicar una condición inicial como un argumento adicional:

y=lsim(sys,u,t,x0)

 

Ejemplo: Simulación con lsim

Considérese el sistema definido por la siguiente función de transferencia:

 

Simular este sistema considerando como entrada una señal sinusoidal de frecuencia 4rad/seg.