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.

step

Gráfica de respuesta al escalón del sistema dinámico; datos de respuesta al escalón

Descripción

Gráficas de respuesta al escalón

ejemplo

step(sys) representa la respuesta de un modelo de sistema dinámico a una entrada en escalón de amplitud unitaria. El modelo sys puede ser de tiempo continuo o discreto, así como SISO o MIMO. En los sistemas MIMO, la gráfica muestra las respuestas al escalón para cada canal de E/S. step determina automáticamente las unidades de tiempo y la duración de la simulación en función de la dinámica del sistema.

ejemplo

step(sys,tFinal) simula la respuesta al escalón desde t = 0 hasta el tiempo final t = tFinal. La función utiliza la dinámica del sistema para determinar las unidades de tiempo que intervienen.

ejemplo

step(sys,t) representa la respuesta al escalón en los tiempos especificados en el vector t.

ejemplo

step(sys1,sys2,...,sysN,___) representa la respuesta al escalón de varios sistemas dinámicos en la misma gráfica. Todos los sistemas deben contar con el mismo número de entradas y salidas. Puede utilizar varios sistemas dinámicos con cualquiera de las combinaciones de entrada/argumento anteriores.

ejemplo

step(sys1,LineSpec1,...,sysN,LineSpecN,___) especifica un color, un estilo de línea y un marcador para cada sistema de la gráfica. Puede utilizar LineSpec con cualquiera de las combinaciones de entrada/argumento anteriores. Cuando necesite opciones de personalización de gráficas adicionales, utilice en su lugar stepplot.

ejemplo

step(___,opts) especifica opciones adicionales para calcular la respuesta al escalón, como el nivel de amplitud en escalón y el desplazamiento de entrada. Utilice stepDataOptions para crear el conjunto de opciones opts. Puede utilizar opts con cualquiera de las combinaciones de entrada/argumento y salida/argumento anteriores.

Datos de respuesta al escalón

ejemplo

y = step(sys,t) devuelve la respuesta al escalón de un modelo de sistema dinámico sys en los tiempos especificados en el vector t. Esta sintaxis no crea una gráfica.

[y,tOut] = step(sys) también devuelve un vector de tiempos tOut que corresponde a las respuestas de y. Si no proporciona un vector de entrada t de tiempos, step elige la longitud y la unidad de tiempo de tOut en función de la dinámica del sistema.

[y,tOut] = step(sys,tFinal) calcula la respuesta al escalón hasta el tiempo final tFinal. step elige la unidad de tiempo de tOut en función de la dinámica del sistema.

[y,t,x] = step(sys) también devuelve las trayectorias de estado x cuando sys es un modelo de espacio de estados, como un modelo ss o idss.

ejemplo

[y,t,x,ysd] = step(sys) también calcula la desviación estándar ysd de la respuesta al escalón y cuando sys es un modelo identificado, como un modelo idss, idtf o idnlarx.

ejemplo

[___] = step(___,opts) especifica opciones adicionales para calcular la respuesta al escalón, como el nivel de amplitud en escalón y el desplazamiento de entrada. Utilice stepDataOptions para crear el conjunto de opciones opts. Puede utilizar opts con cualquiera de las combinaciones de entrada/argumento y salida/argumento anteriores.

Ejemplos

contraer todo

Represente la respuesta al escalón de un sistema de tiempo continuo representado por la siguiente función de transferencia.

sys(s)=4s2+2s+10.

Para este ejemplo, cree un modelo tf que represente la función de transferencia. De forma similar, puede representar la respuesta al escalón de otros tipos de modelos de sistema dinámico, como modelos de cero-polo-ganancia (zpk) o de espacio de estados (ss).

sys = tf(4,[1 2 10]);

Represente la respuesta al escalón.

step(sys)

Figure contains an axes object. The axes object contains an object of type line. This object represents sys.

La gráfica step incluye automáticamente una línea de puntos horizontal que indica la respuesta de estado estacionario. En una ventana de figuras de MATLAB®, puede hacer clic con el botón secundario en la gráfica para ver otras características de respuesta al escalón, como respuesta de pico y tiempo de estabilización. Para obtener más información sobre estas características, consulte stepinfo.

Represente la respuesta al escalón de un sistema de tiempo discreto. El sistema cuenta con un tiempo de muestreo de 0,2 s y está representado por las siguientes matrices de espacio de estados.

A = [1.6 -0.7;
      1  0];
B = [0.5; 0];
C = [0.1 0.1];
D = 0;

Cree el modelo de espacio de estados y represente su respuesta al escalón.

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

Figure contains an axes object. The axes object contains an object of type line. This object represents sys.

La respuesta al escalón refleja la discretización del modelo, mostrando la respuesta calculada cada 0,2 s.

Examine la respuesta al escalón de la siguiente función de transferencia.

sys = zpk(-1,[-0.2+3j,-0.2-3j],1) * tf([1 1],[1 0.05]) 
sys =
 
            (s+1)^2
  ----------------------------
  (s+0.05) (s^2 + 0.4s + 9.04)
 
Continuous-time zero/pole/gain model.
step(sys)

Figure contains an axes object. The axes object contains an object of type line. This object represents sys.

De forma predeterminada, step elige un tiempo final que muestra el estado estacionario al que tiende la respuesta. No obstante, este sistema cuenta con transitorios rápidos que se ocultan en esta escala de tiempo. Para examinar la respuesta al transitorio más detalladamente, limite la gráfica en escalón a t = 15 s.

step(sys,15)

Figure contains an axes object. The axes object contains an object of type line. This object represents sys.

Como alternativa, puede especificar los tiempos exactos en los que desea examinar la respuesta al escalón, siempre y cuando estén separados por un intervalo constante. Por ejemplo, examine la respuesta desde el final del transitorio hasta que el sistema alcance el estado estacionario.

t = 20:0.2:120;
step(sys,t)

Figure contains an axes object. The axes object contains an object of type line. This object represents sys.

Aunque esta gráfica comienza en t = 20, step siempre aplica la entrada en escalón en t = 0.

Considere el siguiente modelo de espacio de estados de segundo orden:

[x˙1x˙2]=[-0.5572-0.78140.78140][x1x2]+[1-102][u1u2]y=[1.96916.4493][x1x2]

A = [-0.5572,-0.7814;0.7814,0];
B = [1,-1;0,2];
C = [1.9691,6.4493];
sys = ss(A,B,C,0);

Este modelo tiene dos entradas y una salida, de modo que cuenta con dos canales: desde la primera entrada hasta la salida y desde la segunda entrada hasta la salida. Cada canal cuenta con su propia respuesta al escalón.

Cuando utiliza step, esta función calcula las respuestas de todos los canales.

step(sys)

Figure contains 2 axes objects. Axes object 1 with title From: In(1) contains an object of type line. This object represents sys. Axes object 2 with title From: In(2) contains an object of type line. This object represents sys.

La gráfica de la izquierda muestra la respuesta al escalón del primer canal de entrada, y la gráfica de la derecha, la del segundo. Cuando utiliza step para representar las respuestas de un modelo MIMO, esta función genera un arreglo de gráficas que representa todos los canales de E/S del modelo. Por ejemplo, cree un modelo de espacio de estados aleatorio con cinco estados, tres entradas y dos salidas, y represente su respuesta al escalón.

sys = rss(5,2,3);
step(sys)

Figure contains 6 axes objects. Axes object 1 with title From: In(1) contains an object of type line. This object represents sys. Axes object 2 contains an object of type line. This object represents sys. Axes object 3 with title From: In(2) contains an object of type line. This object represents sys. Axes object 4 contains an object of type line. This object represents sys. Axes object 5 with title From: In(3) contains an object of type line. This object represents sys. Axes object 6 contains an object of type line. This object represents sys.

En una ventana de figuras de MATLAB, puede restringir la gráfica a un subconjunto de canales haciendo clic con el botón secundario en la gráfica y seleccionando I/O Selector (Selector de entrada/salida).

step permite representar las respuestas 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 2 10]);
C1 = pidtune(H,'PI');
C2 = pidtune(H,'PID');

Forme los sistemas de lazo cerrado y represente sus respuestas al escalón.

sys1 = feedback(H*C1,1);
sys2 = feedback(H*C2,1);
step(sys1,sys2)
legend('PI','PID','Location','SouthEast')

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

De forma predeterminada, step 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.

 step(sys1,'r--',sys2,'b')
 legend('PI','PID','Location','SouthEast')

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

La primera instancia de LineSpec 'r--' especifica una línea discontinua roja para la respuesta con el controlador PI. La segunda 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 stepplot.

El ejemplo "Comparar respuestas de varios sistemas" muestra cómo representar respuestas de varios sistemas individuales en un único eje. Cuando tiene varios sistemas dinámicos en un arreglo de modelos, step 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.

 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

(Para obtener más información sobre los arreglos de modelos y cómo crearlos, consulte Model Arrays). Represente las respuestas al escalón de todos los modelos del arreglo.

step(sys)

Figure contains an axes object. The axes object contains 5 objects of type line. This object represents sys.

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

Cuando indica un argumento de salida, step devuelve un arreglo de datos de respuesta. En un sistema SISO, los datos de respuesta se devuelven como un vector columna de longitud igual al número de puntos de tiempo en los que se muestrea la respuesta. Puede proporcionar el vector t de puntos de tiempo o permitir que step seleccione los puntos de tiempo en función de la dinámica del sistema. Por ejemplo, extraiga la respuesta al escalón de un sistema SISO en 101 puntos de tiempo entre t = 0 y t = 5 s.

sys = tf(4,[1 2 10]);
t = 0:0.05:5;
y = step(sys,t);
size(y)
ans = 1×2

   101     1

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 dos entradas y una salida.

A = [-0.5572,-0.7814;0.7814,0];
B = [1,-1;0,2];
C = [1.9691,6.4493];
sys = ss(A,B,C,0);

Extraiga la respuesta al escalón de este sistema en 200 puntos de tiempo entre t = 0 y t = 20 s.

t = linspace(0,20,200);
y = step(sys,t);
size(y)
ans = 1×3

   200     1     2

y(:,i,j) es un vector columna que contiene la respuesta al escalón desde la j-ésima entrada hasta la i-ésima salida en los tiempos t. Por ejemplo, extraiga la respuesta al escalón desde la segunda entrada hasta la salida.

y12 = y(:,1,2);
plot(t,y12)

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

Cree un lazo de feedback con retardo y represente su respuesta al escalón.

s = tf('s');
G = exp(-s) * (0.8*s^2+s+2)/(s^2+s);
sys = feedback(ss(G),1);
step(sys)

Figure contains an axes object. The axes object contains an object of type line. This object represents sys.

La respuesta al escalón del sistema mostrada es desordenada. La respuesta al escalón de sistemas con retardos internos puede mostrar un comportamiento extraño, como saltos recurrentes. Este tipo de comportamiento es una característica del sistema, no una anomalía del software.

De forma predeterminada, step aplica una señal de entrada que cambia de 0 a 1 en t = 0. Para personalizar la amplitud y el desplazamiento, utilice stepDataOptions. Por ejemplo, calcule la respuesta de un modelo de espacio de estados SISO a una señal que cambia de 1 a –1 en t = 0.

A = [1.6 -0.7;
      1  0];
B = [0.5; 0];
C = [0.1 0.1];
D = 0;
sys = ss(A,B,C,D,0.2);

opt = stepDataOptions;
opt.InputOffset = 1;
opt.StepAmplitude = -2;

step(sys,opt)

Figure contains an axes object. The axes object contains an object of type line. This object represents sys.

Para respuestas a señales de entrada arbitrarias, utilice lsim.

Compare la respuesta al escalón de un modelo paramétrico identificado con la de un modelo (empírico) no paramétrico. Vea también sus 3 regiones de confianza σ.

Cargue los datos.

load iddata1 z1

Realice la estimación de un modelo paramétrico.

sys1 = ssest(z1,4);

Realice la estimación de un modelo no paramétrico.

sys2 = impulseest(z1);

Represente las respuestas al escalón para compararlas.

t = (0:0.1:10)';
[y1, ~, ~, ysd1] = step(sys1,t);
[y2, ~, ~, ysd2] = step(sys2,t);
plot(t, y1, 'b', t, y1+3*ysd1, 'b:', t, y1-3*ysd1, 'b:')
hold on
plot(t, y2, 'g', t, y2+3*ysd2, 'g:', t, y2-3*ysd2, 'g:')

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

Calcule la respuesta al escalón de un modelo de series temporales identificado.

Un modelo de series temporales, también llamado modelo de señales, es un modelo sin señales de entrada medidas. La gráfica en escalón de este modelo utiliza su canal de ruido (no medido) como canal de entrada al que se aplica la señal en escalón.

Cargue los datos.

load iddata9;

Realice la estimación de un modelo de series temporales.

sys = ar(z9, 4);

sys es un modelo con el formato A y(t) = e(t), donde e(t) representa el canal de ruido. Para calcular la respuesta al escalón, e(t) se trata como un canal de entrada y se denomina e@y1.

Represente la respuesta al escalón.

step(sys)

Figure contains an axes object. The axes object with title From: e@y1 To: y1 contains an object of type line. This object represents sys.

Valide la linealización de un modelo ARX no lineal comparando las respuestas al escalón de amplitud pequeña de los modelos lineales y no lineales.

Cargue los datos.

load iddata2 z2;

Realice la estimación de un modelo ARX no lineal.

nlsys = nlarx(z2,[4 3 10],idTreePartition,'custom',...
    {'sin(y1(t-2)*u1(t))+y1(t-2)*u1(t)+u1(t).*u1(t-13)',...
    'y1(t-5)*y1(t-5)*y1(t-1)'},'nlr',[1:5, 7 9]);

Determine un punto de funcionamiento de equilibrio de nlsys que corresponda a un valor de entrada de estado estacionario de 1.

u0 = 1;
[X,~,r] = findop(nlsys, 'steady', 1);
y0 = r.SignalLevels.Output;

Obtenga una aproximación lineal de nlsys en este punto de funcionamiento.

sys = linearize(nlsys,u0,X);

Valide la utilidad de sys comparando su respuesta al escalón de amplitud pequeña con la de nlsys.

El sistema no lineal nlsys funciona a un nivel de equilibrio dictado por (u0, y0). Introduzca una perturbación en escalón de 0,1 sobre este estado estacionario y calcule la respuesta correspondiente.

opt = stepDataOptions;
opt.InputOffset = u0;
opt.StepAmplitude = 0.1;
t = (0:0.1:10)';
ynl = step(nlsys, t, opt);

El sistema lineal sys expresa la relación entre las perturbaciones en la entrada y la correspondiente perturbación en la salida. No tiene conocimiento de los valores de equilibrio del sistema no lineal.

Represente la respuesta al escalón del sistema lineal.

opt = stepDataOptions;
opt.StepAmplitude = 0.1;
yl = step(sys, t, opt);

Añada el desplazamiento de estado estacionario, y0, a la repuesta del sistema lineal y represente las respuestas.

plot(t, ynl, t, yl+y0)
legend('Nonlinear', 'Linear with offset')

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent Nonlinear, Linear with offset.

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. Se admiten los siguientes tipos de sistemas dinámicos:

  • 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 este tipo de modelos, la función también puede representar intervalos de confianza y devolver desviaciones estándar de la respuesta en frecuencia. Consulte Respuestas al escalón de modelos identificados con regiones de confianza. El uso de modelos identificados requiere el software System Identification Toolbox™.

step 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 al escalón de sistemas en un arreglo de modelos.

Tiempo final para la respuesta al escalón, especificado como un valor escalar positivo. step simula la respuesta al escalón desde t = 0 hasta t = tFinal.

  • En el caso de los sistemas de tiempo continuo, la función determina automáticamente el tamaño en escalón y el número de puntos a partir de la dinámica del sistema. Exprese tFinal en las unidades de tiempo del sistema, especificadas en la propiedad TimeUnit de sys.

  • En el caso de los sistemas de tiempo discreto, la función utiliza el tiempo de muestreo de sys como tamaño en escalón. Exprese tFinal en las unidades de tiempo del sistema, especificadas en la propiedad TimeUnit de sys.

  • Para sistemas de tiempo discreto con tiempo de muestreo no especificado (Ts = -1), step interpreta tFinal como el número de períodos de muestreo que simular.

Vector de tiempo en el que se desea calcular la respuesta al escalón, especificado como un vector de valores escalares positivos. Exprese t en las unidades de tiempo del sistema, especificadas en la propiedad TimeUnit de sys.

  • En el caso de modelos de tiempo continuo, especifique t en formato Ti:dt:Tf. Para obtener la respuesta en cada unidad de tiempo, la función utiliza dt como tiempo de muestreo de una aproximación discreta al sistema continuo (consulte Algoritmos).

  • En el caso de modelos de tiempo discreto, especifique t en formato Ti:Ts:Tf, donde Ts es el tiempo de muestreo de sys.

step aplica siempre la entrada en escalón en t = 0, independientemente de Ti.

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

Desplazamiento de entrada y amplitud de la señal en escalón aplicada, especificados como un conjunto de opciones stepDataOptions. De forma predeterminada, step aplica una entrada que va de 0 a 1 en el tiempo t = 0. Utilice este argumento de entrada para cambiar el valor inicial y el valor final de la entrada en escalón. Para ver un ejemplo, consulte Respuesta a una entrada en escalón personalizada.

Argumentos de salida

contraer todo

Datos de respuesta al escalón, devueltos como un arreglo.

  • En los sistemas SISO, y es un vector columna de la misma longitud que t (si se indica) o tOut (si no se indica t).

  • En los sistemas de una entrada y varias salidas, y es una matriz con tantas filas como muestras de tiempo y tantas columnas como salidas. Así, la j-ésima columna de y, o y(:,j), contiene la respuesta al escalón desde la entrada hasta la j-ésima salida.

  • En los sistemas MIMO, las respuestas al escalón de cada canal de entrada se apilan a lo largo de la tercera dimensión de y. Entonces, las dimensiones de y son N por Ny por Nu, donde:

    • N es el número de muestras de tiempo.

    • Ny es el número de salidas del sistema.

    • Nu es el número de entradas del sistema.

    Así, y(:,i,j) es un vector columna que contiene la respuesta al escalón desde la j-ésima entrada hasta la i-ésima salida en los tiempos especificados en t o tOut.

Tiempos en los que se calcula la respuesta al escalón, devueltos como un vector. Cuando no proporciona un vector específico t de tiempos, step elige este vector de tiempo en función de la dinámica del sistema. Los tiempos se expresan en las unidades de tiempo de sys.

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 cada tiempo de t o tOut. Las dimensiones de x son N por Nx por Nu, donde:

  • N es el número de muestras de tiempo.

  • Nx es el número de estados.

  • Nu es el número de entradas del sistema.

Así, la evolución de los estados en respuesta a un escalón inyectado en la k-ésima entrada se proporciona por medio del arreglo x(:,:,k). El vector fila x(i,:,k) contiene los valores de estado en la i-ésima unidad de tiempo.

Desviación estándar de la respuesta al escalón de un modelo identificado, devuelta como un arreglo de las mismas dimensiones que y. Si sys no contiene información sobre la covarianza de los parámetros, ysd está vacío.

Sugerencias

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

  • Para simular respuestas del sistema a señales de entrada arbitrarias, utilice lsim.

Algoritmos

Para obtener muestras de modelos de tiempo continuo sin retardos internos, step convierte estos modelos en modelos de espacio de estados y los discretiza utilizando una retención de orden cero en las entradas. step elige automáticamente el tiempo de muestro para esta discretización en función de la dinámica del sistema, excepto cuando proporciona el vector de tiempo de entrada t en formato t = 0:dt:Tf. En ese caso, step utiliza dt como tiempo de muestreo. Las unidades de tiempo de simulación resultantes tOut se muestrean de forma equidistante con espaciado dt.

En los sistemas con retardos internos, el software Control System Toolbox™ utiliza solvers en escalón variable. En consecuencia, las unidades de tiempo tOut no se muestrean de forma equidistante.

Referencias

[1] L.F. Shampine and P. Gahinet, "Delay-differential-algebraic equations in control theory," Applied Numerical Mathematics, Vol. 56, Issues 3–4, pp. 574–588.

Historial de versiones

Introducido antes de R2006a

Consulte también

Funciones

Apps