Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

lsim

Representar una respuesta en el tiempo simulada de un sistema dinámico para entradas arbitrarias; datos de respuesta simulada

Descripción

Gráficas de respuesta

ejemplo

lsim(sys,u,t) representa la respuesta en el tiempo simulada del modelo del sistema dinámico sys para el historial de entradas (t,u). El vector t especifica las muestras de tiempo para la simulación. En sistemas con una única entrada, la señal de entrada u es un vector de la misma longitud que t. En los sistemas de varias entradas, u es un arreglo con tantas filas como muestras de tiempo (length(t)) y tantas columnas como entradas a sys.

ejemplo

lsim(sys,u,t,x0) también especifica un vector x0 de valores de estado inicial, cuando sys es un modelo de espacio de estados.

ejemplo

lsim(sys,u,t,x0,p) especifica la trayectoria de parámetros p para modelos LPV.

lsim(sys,u,t,x0,method) especifica cómo lsim interpola los valores de entrada entre muestras, cuando sys es un modelo de tiempo continuo.

ejemplo

lsim(sys1,sys2,...,sysN,u,t,___) simula las respuestas de varios modelos de sistemas dinámicos para el mismo historial de entradas y representa estas respuestas en una única figura. Todos los sistemas deben contar con el mismo número de entradas y salidas. También puede utilizar los argumentos de entrada x0 y method cuando calcule las respuestas de varios modelos.

ejemplo

lsim(sys1,LineSpec1,...,sysN,LineSpecN,___) especifica un color, un estilo de línea y un marcador para cada sistema de la gráfica. Cuando necesite opciones de personalización de gráficas adicionales, utilice en su lugar lsimplot.

Datos de respuesta

ejemplo

y = lsim(sys,u,t) devuelve la respuesta del sistema y, muestreada en los mismos tiempos t que la entrada. En sistemas con una única salida, y es un vector de la misma longitud que t. En sistemas de varias salidas, y es un arreglo que tiene tantas filas como muestras de tiempo (length(t)) y tantas columnas como salidas en sys. Esta sintaxis no genera una gráfica.

y = lsim(sys,u,t,x0) también especifica un vector x0 de valores de estado inicial, cuando sys es un modelo de espacio de estados.

ejemplo

y = lsim(sys,u,t,x0,p) especifica la trayectoria de parámetros p para modelos LPV.

y = lsim(sys,u,t,x0,method) especifica cómo lsim interpola los valores de entrada entre muestras, cuando sys es un modelo de tiempo continuo.

ejemplo

[y,tOut,x] = lsim(___) devuelve las trayectorias de estado x, cuando sys es un modelo de espacio de estados. x es un arreglo con tantas filas como muestras de tiempo y tantas columnas como estados en sys. La sintaxis también devuelve las muestras de tiempo utilizadas para la simulación en tOut.

[y,tOut,x,pOut] = lsim(sys,u,t,x0,p) también devuelve las trayectorias de parámetros pOut, cuando sys es un modelo LPV.

Linear Simulation Tool

lsim(sys) abre la herramienta Linear Simulation Tool. Para obtener más información sobre el uso de esta herramienta para el análisis lineal, consulte Working with the Linear Simulation Tool.

Ejemplos

contraer todo

Considere la siguiente función de transferencia.

sys = tf(3,[1 2 3])
sys =
 
        3
  -------------
  s^2 + 2 s + 3
 
Continuous-time transfer function.

Para calcular la respuesta de este sistema a una señal de entrada arbitraria, proporcione lsim con un vector de los tiempos t en los que desea calcular la respuesta y un vector u que contiene los valores de señal correspondientes. Por ejemplo, represente la respuesta del sistema a una señal en escalón ascendente que comienza en 0 en la unidad de tiempo t = 0, asciende desde 0 en t = 1 a 1 en t = 2 y, después, se mantiene estable en 1. Defina t y calcule los valores de u.

t = 0:0.04:8;  % 201 points
u = max(0,min(t-1,1));

Utilice lsim sin un argumento de salida para representar la respuesta del sistema a la señal.

lsim(sys,u,t)
grid on

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent Driving inputs, sys.

La gráfica muestra la entrada aplicada (u,t) en color gris y la respuesta del sistema en color azul.

Utilice lsim con un argumento de salida para obtener los datos de la respuesta simulada.

y = lsim(sys,u,t);
size(y)
ans = 1×2

   201     1

El vector y contiene la respuesta simulada en los tiempos correspondientes en t.

Utilice gensig para crear señales de entrada periódicas, como ondas sinusoidales y ondas cuadradas, para utilizarlas con lsim. Simule la respuesta a una onda cuadrada del siguiente modelo de espacio de estados SISO.

A = [-3 -1.5; 5 0];
B = [1; 0];
C = [0.5 1.5];
D = 0;
sys = ss(A,B,C,D);

Para este ejemplo, cree una onda cuadrada con un periodo de 10 s y una duración de 20 s.

[u,t] = gensig("square",10,20);

gensig devuelve el vector t de unidades de tiempo y el vector u que contiene los valores correspondientes de la señal de entrada. (Si no especifica un tiempo de muestreo para t, gensig genera 64 muestras por periodo). Utilícelas con lsim y represente la respuesta del sistema.

lsim(sys,u,t)
grid on

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent Driving inputs, sys.

La gráfica muestra la onda cuadrada aplicada en color gris y la respuesta del sistema en color azul. Llame a lsim con un argumento de salida para obtener los valores de respuesta en cada punto de t.

[y,~] = lsim(sys,u,t);

Cuando simula la respuesta de un sistema de tiempo discreto, el vector de tiempo t debe presentar el formato Ti:dT:Tf, donde dT es el tiempo de muestreo del modelo. Simule la respuesta de la siguiente función de transferencia de tiempo discreto para una entrada en escalón ascendente.

sys = tf([0.06 0.05],[1 -1.56 0.67],0.05);

Esta función de transferencia tiene un tiempo de muestreo de 0,05 s. Utilice el mismo tiempo de muestreo para generar el vector de tiempo t y una señal en escalón ascendente u.

t = 0:0.05:4;  
u = max(0,min(t-1,1));

Represente la respuesta del sistema.

lsim(sys,u,t)

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent Driving inputs, sys.

Para simular la respuesta de un sistema de tiempo discreto para una señal de entrada periódica, utilice el mismo tiempo de muestreo con gensig para generar la entrada. Por ejemplo, simule la respuesta del sistema para una onda sinusoidal con un periodo de 1 s y una duración de 4 s.

[u,t] = gensig("sine",1,4,0.05);

Represente la respuesta del sistema.

lsim(sys,u,t)

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent Driving inputs, sys.

lsim permite representar las respuestas simuladas de varios sistemas dinámicos en el mismo eje. Por ejemplo, compare la respuesta en lazo cerrado de un sistema con un controlador PI y un controlador PID. Cree una función de transferencia del sistema y ajuste los controladores.

H = tf(4,[1 10 25]);
C1 = pidtune(H,'PI');
C2 = pidtune(H,'PID');

Forme los sistemas de lazo cerrado.

sys1 = feedback(H*C1,1);
sys2 = feedback(H*C2,1);

Represente las respuestas de ambos sistemas para una onda cuadrada con un periodo de 4 s.

[u,t] = gensig("square",4,12);
lsim(sys1,sys2,u,t)
grid on
legend("PI","PID")

Figure contains an axes object. The axes object contains 3 objects of type line. These objects represent Driving inputs, PI, PID.

De forma predeterminada, lsim elige colores diferentes para cada sistema que se representa. Puede especificar los colores y los estilos de línea utilizando el argumento de entrada LineSpec.

 lsim(sys1,"r--",sys2,"b",u,t)
 grid on
 legend("PI","PID")

Figure contains an axes object. The axes object contains 3 objects of type line. These objects represent Driving inputs, PI, PID.

El primer argumento LineSpec "r--" especifica una línea discontinua roja para la respuesta con el controlador PI. El segundo argumento LineSpec "b" especifica una línea continua azul para la respuesta con el controlador PID. La leyenda muestra los colores y los estilos de línea especificados. Para ver más opciones de personalización de gráficas, utilice lsimplot.

En un sistema MIMO, en cada unidad de tiempo t, la entrada u(t) es un vector cuya longitud es el número de entradas. Para utilizar lsim, especifique u como una matriz con dimensiones Nt por Nu, donde Nu es el número de entradas del sistema y Nt es la longitud de t. Dicho de otra forma, cada columna de u es la señal de entrada aplicada a la entrada del sistema correspondiente. Por ejemplo, para simular un sistema con cuatro entradas para 201 unidades de tiempo, proporcione u como una matriz de cuatro columnas y 201 filas, donde cada fila u(i,:) es el vector de los valores de entrada en la i-ésima unidad de tiempo; cada columna u(:,j) es la señal aplicada a la entrada j-ésima.

Del mismo modo, la salida y(t) calculada por lsim es una matriz cuyas columnas representan la señal en cada salida del sistema. Cuando utiliza lsim para representar la respuesta simulada, lsim proporciona ejes separados para cada salida, representando la respuesta del sistema en cada canal de salida para la entrada u(t) aplicada en todas las entradas.

Considere el modelo de espacio de estados con dos entradas y tres salidas, con las siguientes matrices de espacio de estados.

A = [-1.5  -0.2   1.0;
     -0.2  -1.7   0.6;
      1.0   0.6  -1.4];
  
B = [ 1.5  0.6;
     -1.8  1.0;
      0    0  ];

C = [ 0    -0.5 -0.1;
      0.35 -0.1 -0.15
      0.65  0    0.6];
  
D = [ 0.5  0;
      0.05 0.75
      0    0];

sys = ss(A,B,C,D);

Represente la respuesta de sys para una onda cuadrada con un periodo de 4 s, aplicada a la primera entrada sys y un pulso aplicado a la segunda entrada cada 3 s. Para ello, cree vectores columna que representen la onda cuadrada y la señal pulsada con gensig. A continuación, apile las columnas en una matriz de entrada. Para asegurarse de que las dos señales cuentan con el mismo número de muestras, especifique el mismo tiempo final y el mismo tiempo de muestreo.

Tf = 10;
Ts = 0.1;
[uSq,t] = gensig("square",4,Tf,Ts);
[uP,~] = gensig("pulse",3,Tf,Ts);
u = [uSq uP];
lsim(sys,u,t)

Figure contains 3 axes objects. Axes object 1 with ylabel To: Out(1) contains 3 objects of type line. These objects represent Driving inputs, sys. Axes object 2 with ylabel To: Out(2) contains 3 objects of type line. These objects represent Driving inputs, sys. Axes object 3 with ylabel To: Out(3) contains 3 objects of type line. These objects represent Driving inputs, sys.

Cada eje muestra la respuesta de una de las tres salidas del sistema para las señales u aplicadas en todas las entradas. Cada gráfica también muestra todas las señales de entrada en color gris.

De forma predeterminada, lsim simula el modelo, suponiendo que todos los estados son cero al inicio de la simulación. Cuando simule la respuesta de un modelo de espacio de estados, utilice el argumento de entrada opcional x0 para especificar valores de estado inicial distintos de cero. Considere el siguiente modelo de espacio de estados SISO de dos estados.

A = [-1.5 -3;
      3   -1];
B = [1.3; 0];
C = [1.15 2.3];
D = 0;
          
sys = ss(A,B,C,D);

Supongamos que desea permitir que el sistema evolucione desde una serie de estados iniciales conocida sin entradas durante 2 s y luego aplicar un cambio de escalón unitario. Especifique el vector x0 de los valores del estado inicial y cree el vector de entrada.

x0 = [-0.2 0.3];
t = 0:0.05:8;
u = zeros(length(t),1);
u(t>=2) = 1;
lsim(sys,u,t,x0)
grid on

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent Driving inputs, sys.

La primera mitad de la gráfica muestra la evolución libre del sistema desde los valores del estado inicial [-0.2 0.3]. En t = 2 hay un cambio de escalón para la entrada y la gráfica muestra la respuesta del sistema a esta nueva señal a partir de los valores del estado en ese momento.

Cuando utiliza lsim con argumentos de salida, devuelve los datos de la respuesta simulada en un arreglo. En un sistema SISO, los datos de respuesta se devuelven como un vector columna con la misma longitud que t. Por ejemplo, extraiga la respuesta de un sistema SISO para una onda cuadrada. Cree la onda cuadrada con gensig.

sys = tf([2 5 1],[1 2 3]);
[u,t] = gensig("square",4,10,0.05);
[y,t] = lsim(sys,u,t);
size(y)
ans = 1×2

   201     1

El vector y contiene la respuesta simulada en cada unidad de tiempo en t. (Para facilitarlo, lsim devuelve el vector tiempo t).

En un sistema MIMO, los datos de respuesta se devuelven en un arreglo de dimensiones N por Ny por Nu, donde Ny y Nu son el número de salidas y entradas del sistema dinámico. Por ejemplo, considere el siguiente modelo de espacio de estados, que representa un sistema de tres estados con dos entradas y tres salidas.

A = [-1.5  -0.2   1.0;
     -0.2  -1.7   0.6;
      1.0   0.6  -1.4];
  
B = [ 1.5  0.6;
     -1.8  1.0;
      0    0  ];

C = [ 0   -0.1 -0.2;
      0.7 -0.2 -0.3
     -0.65 0   -0.6];
  
D = [ 0.1  0;
      0.1  1.5
      0    0];

sys = ss(A,B,C,D);

Extraiga las respuestas de los tres canales de salida para la onda cuadrada aplicada en ambas entradas.

uM = [u u];
[y,t] = lsim(sys,uM,t);
size(y)
ans = 1×2

   201     3

y(:,j) es un vector columna que contiene la respuesta en la j-ésima salida a la onda cuadrada aplicada a ambas entradas. Es decir, y(i,:) es un vector con tres valores: los valores de salida en la en la i-ésima unidad de tiempo.

Dado que sys es un modelo de espacio de estados, puede extraer la evolución del tiempo de los valores de estado en respuesta a la señal de entrada.

[y,t,x] = lsim(sys,uM,t);
size(x)
ans = 1×2

   201     3

Cada fila de x contiene los valores de estado [x1,x2,x3] en el tiempo correspondiente t. Dicho de otra forma, x(i,:) es el vector de estado en la i-ésima unidad de tiempo. Represente los valores de estado.

plot(t,x)

Figure contains an axes object. The axes object contains 3 objects of type line.

El ejemplo "Representar la respuesta de varios sistemas para la misma entrada" muestra cómo representar respuestas de varios sistemas individuales en un único eje. Cuando tiene varios sistemas dinámicos en un arreglo de modelos, lsim representa todas sus respuestas a la vez.

Cree un arreglo de modelos. Para este ejemplo, utilice un arreglo unidimensional de funciones de transferencia de segundo orden con diferentes frecuencias naturales. Primero, asigne previamente memoria para el arreglo de modelos. El siguiente comando crea una fila de 1 por 5 de funciones de transferencia SISO de ganancia cero. Las primeras dos dimensiones representan las salidas y entradas del modelo. Las dimensiones restantes son las dimensiones del arreglo. (Para obtener más información sobre los arreglos de modelos y cómo crearlos, consulte Model Arrays).

sys = tf(zeros(1,1,1,5));

Rellene el arreglo.

w0 = 1.5:1:5.5;    % natural frequencies
zeta = 0.5;        % damping constant
for i = 1:length(w0)
   sys(:,:,1,i) = tf(w0(i)^2,[1 2*zeta*w0(i) w0(i)^2]);
end

Represente las respuestas de todos los modelos en el arreglo para una entrada de onda cuadrada.

[u,t] = gensig("square",5,15);
lsim(sys,u,t)

Figure contains an axes object. The axes object contains 6 objects of type line. These objects represent Driving inputs, sys.

lsim utiliza el mismo estilo de línea para las respuestas de todas las entradas del arreglo. Una manera de distinguir entre las entradas es utilizar la propiedad SamplingGrid de los modelos de sistemas dinámicos para asociar cada entrada del arreglo con el valor w0 correspondiente.

sys.SamplingGrid = struct('frequency',w0);

Cuando represente las respuestas en una ventana de figuras de MATLAB, puede hacer clic en una traza para ver a qué valor de frecuencia corresponde.

Cargue los datos de estimación para estimar un modelo.

load(fullfile(matlabroot,'toolbox','ident','iddemos','data','dcmotordata'));
z = iddata(y,u,0.1,'Name','DC-motor');

z es un objeto iddata que almacena los datos de estimación de una entrada y dos salidas con un tiempo de muestreo de 0,1 s.

Realice una estimación de un modelo de espacio de estados de orden 4 con los datos de estimación z.

[sys,x0] = n4sid(z,4);

sys es el modelo estimado y x0, los estados iniciales estimados.

Simule la respuesta de sys con los mismos datos de entrada que los utilizados para la estimación y los estados iniciales devueltos por el comando de estimación.

[y,t,x] = lsim(sys,z.InputData,[],x0);

En este caso, y es la respuesta del sistema, t es el vector de tiempo usado para la simulación y x es la trayectoria de estado.

Compare la respuesta simulada y con la respuesta medida z.OutputData para ambas salidas.

subplot(211), plot(t,z.OutputData(:,1),'k',t,y(:,1),'r')
legend('Measured','Simulated')
subplot(212), plot(t,z.OutputData(:,2),'k',t,y(:,2),'r')
legend('Measured','Simulated')

Figure contains 2 axes objects. Axes object 1 contains 2 objects of type line. These objects represent Measured, Simulated. Axes object 2 contains 2 objects of type line. These objects represent Measured, Simulated.

Para este ejemplo, cnMaglev.m define las matrices y los desplazamientos de un sistema de levitación magnética. La levitación magnética controla la altura de una bola levitante usando una corriente de bobina que genera una fuerza magnética sobre la bola. Este ejemplo simula el modelo en un lazo abierto.

Cree un modelo LPV.

lpvSys = lpvss('h',@fcnMaglev)
Continuous-time state-space LPV model with 1 outputs, 1 inputs, 2 states, and 1 parameters.
Model Properties

Puede establecer propiedades adicionales con notación de puntos.

lpvSys.StateName = {'h','hdot'};
lpvSys.InputName = 'current';
lpvSys.InputName = 'height';

Simule la respuesta de este modelo a una corriente de entrada sinusoidal arbitraria.

h0 = 1;
[~,~,~,~,~,~,x0,u0,~] = fcnMaglev([],h0);
t = 0:1e-2:1;
u = u0*(1+0.1*sin(10*t));
y = lsim(lpvSys,u,t,x0,@(t,x,u) x(1));
**iter = 20, residual: 3.32e-01
**iter = 7, residual: 4.33e-10

Represente la respuesta gráficamente.

plot(t,y,t,u/u0)
legend('height','current')

El imán atrae la bola cuando la corriente aumenta por primera vez (h disminuye). La posterior disminución de la corriente no es suficiente para que vuelva atrás.

h = 0 es una singularidad para este modelo, es decir, la bola choca contra el imán. El modelo LPV deja de ser válido en este punto.

La elección del tiempo de muestreo puede afectar a los resultados de la simulación radicalmente. Para ilustrarlo, considere el siguiente modelo de segundo orden.

sys(s)=ω2s2+2s+ω2,ω=62.83.

Simule la respuesta de este modelo a una onda cuadrada con un periodo de 1 s y utilice un tiempo de muestreo de 0,1 s.

w2 = 62.83^2;
sys = tf(w2,[1 2 w2]);

tau = 1;
Tf = 5;
Ts = 0.1;
[u,t] = gensig("square",tau,Tf,Ts);
lsim(sys,u,t)

lsim warning message: The input signal is undersampled.

lsim simula el modelo con la señal de entrada especificada, pero genera una advertencia de que la señal de entrada está submuestreada. lsim recomienda un tiempo de muestreo que genere al menos 64 muestras por periodo de la entrada u. Para comprender la importancia de esta recomendación, simule sys de nuevo con un tiempo de muestreo más corto que el máximo recomendado.

figure
Ts2 = 0.01;
[u2,t2] = gensig("square",tau,Tf,Ts2);
lsim(sys,u2,t2)

Esta respuesta presenta un comportamiento oscilatorio considerable que está oculto en la versión submuestreada.

Argumentos de entrada

contraer todo

Sistema dinámico, especificado como un modelo de sistema dinámico SISO o MIMO, o bien un arreglo de modelos de sistemas dinámicos. Los sistemas dinámicos cuyas respuestas puede simular incluyen:

  • Modelos LTI numéricos de tiempo continuo o de tiempo discreto, como modelos tf, zpk o ss.

  • Modelos LTI generalizados o con incertidumbre, como modelos genss o uss. El uso de modelos con incertidumbre requiere el software Robust Control Toolbox™.

    • En el caso de los bloques de diseño de control ajustables, la función evalúa el modelo con su valor actual tanto para representar como para devolver los datos de respuesta.

    • En el caso de los bloques de diseño de control con incertidumbre, la función representa el valor nominal y muestras aleatorias del modelo. Cuando utiliza argumentos de salida, la función devuelve únicamente datos de respuesta para el modelo nominal.

  • Modelos dispersos de espacio de estados, como modelos sparss y mechss.

  • Modelos LTI identificados, como modelos idtf, idss o idproc. En el caso de los modelos identificados, también puede utilizar el comando sim (System Identification Toolbox), que puede calcular la desviación estándar de la respuesta simulada y de las trayectorias de estado. sim también puede simular todos los tipos de modelos con condiciones iniciales distintas de cero y simular modelos identificados no lineales. (Utilizar modelos identificados requiere el software System Identification Toolbox™).

  • Modelos lineales de tiempo variante (ltvss) y modelos lineales de parámetros variantes (lpvss).

lsim no admite modelos de datos de respuesta en frecuencia, como modelos frd, genfrd o idfrd.

Si sys es un arreglo de modelos, la función representa las respuestas de todos los modelos del arreglo en los mismos ejes. Consulte Respuesta de los sistemas en un arreglo de modelos.

Señal de entrada para simulación, especificada como un vector para sistemas con una sola entrada y un arreglo para sistemas con varias entradas.

  • En sistemas con una única entrada, u es un vector de la misma longitud que t.

  • En los sistemas de varias entradas, u es un arreglo con tantas filas como muestras de tiempo (length(t)) y tantas columnas como entradas a sys. Dicho de otra forma, cada fila u(i,:) representa los valores aplicados en las entradas de sys en la unidad de tiempo t(i). Cada columna u(:,j) es la señal aplicada a la j-ésima entrada de sys.

Muestras de tiempo en las que se desea calcular la respuesta, especificadas como un vector con el formato T0:dT:Tf. El comando lsim interpreta que t tiene las unidades especificadas en la propiedad TimeUnit del modelo sys.

En sys de tiempo continuo, el comando lsim utiliza la unidad de tiempo dT para discretizar el modelo. Si dT es demasiado grande para la dinámica del sistema (submuestreo), lsim genera una advertencia para recomendar un tiempo de muestreo más rápido. Para obtener más información sobre el efecto del tiempo de muestreo en la simulación, consulte Efecto del tiempo de muestreo en la simulación.

En sys de tiempo discreto, la unidad de tiempo dT debe ser igual al tiempo de muestreo de sys. Como alternativa, puede omitir t o establecerlo en []. En ese caso, lsim establece t para un vector de la misma longitud que u, que comienza en 0 con una unidad de tiempo igual a sys.Ts.

Valores del estado inicial para simular un modelo de espacio de estados, especificados como un vector que cuenta con una entrada para cada estado en sys. Si omite este argumento, lsim establece todos los estados en cero en t = 0.

Trayectoria de parámetros del modelo LPV, especificada como una matriz o un identificador de función.

  • Para trayectorias exógenas o explícitas, especifique p como una matriz con dimensiones N por Np, donde N es el número de muestras de tiempo y Np es el número de parámetros.

    Así, el vector fila p(i,:) contiene los valores de parámetros en la i-ésima unidad de tiempo.

  • Para trayectorias endógenas o implícitas, especifique p como un identificador de función con el formato p = F(t,x,u) en tiempo continuo y p = F(k,x,u) en tiempo discreto, que genera parámetros como una función de tiempo t o muestra de tiempo k, estado x y entrada u.

    Esta opción resulta útil cuando se desea simular modelos cuasi-LPV.

Método de discretización para muestrear modelos de tiempo continuo, especificado como una de las siguientes opciones.

  • 'zoh': retención de orden cero

  • 'foh': retención de primer orden

Cuando sys es un modelo de tiempo continuo, lsim calcula la respuesta en el tiempo discretizando el modelo con un tiempo de muestreo igual a la unidad de tiempo dT = t(2)-t(1) de t. Si no especifica un método de discretización, lsim selecciona el método automáticamente, en función de la suavidad de la señal u. Para obtener más información sobre estos dos métodos de discretización, consulte Continuous-Discrete Conversion Methods.

Estilo de línea, marcador y color, especificados como una cadena o vector de uno, dos o tres caracteres. Los caracteres pueden aparecer en cualquier orden. No es necesario que especifique las tres características (estilo de línea, marcador y color). Por ejemplo, si omite el estilo de línea y especifica el marcador, la gráfica mostrará únicamente el marcador y ninguna línea. Para obtener más información sobre cómo configurar este argumento, consulte el argumento de entrada LineSpec de la función plot.

Ejemplo: 'r--' especifica una línea discontinua roja

Ejemplo: '*b' especifica marcadores de asterisco azul

Ejemplo: 'y' especifica una línea amarilla

Argumentos de salida

contraer todo

Datos de respuesta simulada, devueltos como un arreglo.

  • En sistemas con una única entrada, y es un vector columna de la misma longitud que t.

  • En los sistemas de varias salidas, y es un arreglo con tantas filas como muestras de tiempo (length(t)) y tantas columnas como salidas en sys. Así, la j-ésima columna de y, o y(:,j), contiene la respuesta en la j-ésima salida a u aplicado en todas las entradas.

Vector de tiempo utilizado para la simulación, devuelto como un vector columna. Si se especifica un vector de tiempo de entrada t con el formato 0:dT:Tf, entonces tOut = t. Si t se muestrea de forma equidistante, lsim ajusta los tiempos de muestreo para la simulación y devuelve el resultado en tOut. En el caso de sys de tiempo discreto, puede omitir t o establecerlo en []. En ese caso, lsim establece t para un vector de la misma longitud que u, que comienza en 0 con una unidad de tiempo igual a sys.Ts y devuelve el resultado en tOut.

Trayectorias de estado, devueltas como un arreglo. Cuando sys es un modelo de espacio de estados, x contiene la evolución de los estados de sys en respuesta a la entrada. x es un arreglo con tantas filas como muestras de tiempo (length(t)) y tantas columnas como estados en sys.

Trayectorias de parámetros, devueltas como un arreglo. Cuando sys es un modelo de parámetros lineales variables (lpvss), pOut contiene la evolución de los parámetros de sys. pOut es un arreglo con tantas filas como muestras de tiempo (length(t)) y tantas columnas como parámetros en sys.

Sugerencias

  • Cuando necesite opciones de personalización de gráficas adicionales, utilice en su lugar lsimplot.

Algoritmos

En una función de transferencia de tiempo discreto,

sys(z1)=a0+a1z1++anzn1+b1z1++bnzn,

lsim filtra la entrada en función de la recursión asociada con esta función de transferencia:

y[k]=a0u[k]++anu[kn]b1y[k1]bn[kn].

En el caso de modelos zpk de tiempo discreto, lsim filtra la entrada a través de una serie de secciones de primer y segundo orden. Este enfoque evita que se formen los polinomios del numerador y denominador, que pueden provocar inestabilidad numérica para modelos de órdenes superiores.

En el caso de modelos de espacio de estados de tiempo discreto, lsim propaga las ecuaciones de espacio de estados de tiempo discreto

x[n+1]=Ax[n]+Bu[n],y[n]=Cx[n]+Du[n].

En el caso de sistemas de tiempo continuo, lsim discretiza, en primer lugar, el sistema con c2d y, a continuación, propaga las ecuaciones de espacio de estados de tiempo discreto resultantes. A menos que especifique lo contrario con el argumento de entrada method, lsim utiliza el método de discretización de retención de primer orden cuando la señal de entrada es suave, y de retención de orden cero cuando la señal de entrada es discontinua, como en el caso de pulsos u ondas cuadradas. El tiempo de muestreo para la discretización es el espacio dT entre las muestras de tiempo proporcionado en t.

Historial de versiones

Introducido antes de R2006a

Consulte también

Funciones

Apps