CMU
UM


Respuesta al Escalón en Matlab ( step )

La función step es una de las más usadas del Matlab para diseño en control. Dado un sistema que puede describirse por ya sea una función de transferencia o un conjunto de ecuaciones de espacio de estado, la respuesta a un entrada escalón puede graficarse inmediatamente. Una entrada escalón puede describirse como un cambio en la entrada desde cero a un valor finito en el tiempo t = 0. Por defecto, el comando step hace un escalón unitario 1(t) (es decir, la entrada va desde cero a uno en el tiempo t = 0). El comando básico para usar la función s t e p es uno de los siguientes (dependiendo si se tiene un conjunto de ecuaciones de espacio de estado o la forma función de transferencia):

     step(A,B,C,D)
     step(num,den)
Este comando producirá una serie de ploteos de la respuesta al escalón , todos en la misma figura. Se graficará un ploteo para cada combinación entrada - salida. La mayoría de los problemas por lo que pasará al principio serán SISO, Una Entrada, Una Salida (Single-Input, Single-Output). En este caso habrá solamente un ploteo, pero el comando step maneja estos problemas de la misma manera para un sistema SIMO o Unica-entrada, Múltiples. Por ejemplo, suponga que quiere modelar un sistema mecánico de cuerpo rígido, y ya se hizo de las ecuaciones de estado con las matrices de abajo. Los dos estados son la posición y la velocidad. Usted quiere ver cómo es la respuesta del sistema a una perturbación escalón unitaria. La perturbación escalón unitario será un cambio de la fuerza actuante de cero Newton a un Newton en t= 0. Para modelar esto, entre lo siguiente en el Matlab:
     A = [0   1
          0 -.05];
     B= [0
         0.001];
     C = [1 0
          0 1];
     D = [0
          0];

     step(A,B,C,D)
Este conjunto de ecuaciones de estado tiene una entrada (fuerza actuante en el sistema) y dos salidas diferentes (posición y velocidad), así la figura dada por el comando step tendrá dos ploteos. Uno para cada salida. Debería verse la siguiente figura:

Esta figura contiene dos gráficos, una para la posición y otra para la velocidad. Si hubiera una sola salida (o sea, la matriz C de un sólo renglón), la figura contendría sólo un ploteo. El gráfico de abajo muestra respuesta de la velocidad. La velocidad se incrementa exponencialmente desde cero a una velocidad finita (0.02 m/s). El primer gráfico muestra la respuesta de la posición. Hasta que se logre una velocidad constante es parabólica, y desde ahí, lineal.

Esto fue una introducción al comando step . Si se interesa, o si necesita usar el comando step con un formato más complejo, siga leyendo.

Múltiple entradas

El comando step puede también usarse con un sistema con más de una entrada como sigue:

     step(A,B,C,D,iu)
De esta manera, el comando step creará una figura con todas las salidas ploteadas con un escalón en la iu -ésima entrada. Por ejemplo, en el archivo-m de arriba, si se especificó la (y sólo en este caso) entrada primera, ambas figuras de abajo estarán definidas en el mismo conjunto de ejes. Es difícil ver por la escala usada, pero si se cambia el comando step a las siguientes dos líneas:
     step(A,B,C,D,1)
     axis([0 100 0 0.1])
Obtendrá la figura de abajo . La posición (en azul) y la velocidad (en verde) están ambas ploteadas en el mismo eje. El axis fue cambiado de modo que pueda verse la respuesta de la velocidad versus la posición.

De nuevo, Si sólo una salida se ha especificado en la matriz C, la figura tendrá solo una curva.

Si se tiene la función de transferencia del sistema en lugar de las ecuaciones de espacio de estado, el comando step se usa como step(num,den). Porque una función de transferencia puede tener sólo una entrada, todas salidas (representadas por el número de renglones en el numerador de la función de transferencia) se plotearán en un conjunto de ejes. Si quiere verificarlo , cambie las ecuaciones de arriba de espacio de estado a función de transferencia y entonces plotee la respuesta al escalón :

Debería obtenerse el mismo dibujo que obtuvo previamente.

Cambio de la magnitud del escalón

Hasta ahora, nos hemos manejado con entradas escalón unitario. Suponga que la entrada a nuestro sistema no fuera 1 Newton sino 100N. El comando step puede acomodarlo multiplicando por 100 las matrices de estado B y D, o multiplicando por 100 el numerador de la función de transferencia. Para el ejemplo de arriba, debería obtenerse la figura siguiente usando ya sea

La figura se ve similar a las dos de arriba excepto que la escala del eje Y es diferente. La velocidad ahora llega a 2 en lugar de 0.02.

Especificación de la escala de tiempo

La respuesta al escalón de un conjunto de ecuaciones de espacio de estado o de una función de transferencia pueden graficarse ambas con un vector tiempo suministrado por el usuario. Este vector especificará el intervalo sobre el cual será calculada la respuesta al escalón . Si el vector está espaciado a intervalos pequeños, la figura se verá más suave. Los comandos para usar el vector tiempo son
para las formas de espacio de estado y función de transferencia respectivamente. En las tres figuras de arriba, se cambiaron los ejes de modo que se vean solo los primeros 100 segundos de la respuesta. Suponga que sólo son de interés los primeros 80 segundos de la respuesta. Puede crearse un vector tiempo para calcular la respuesta al escalón solamente en ese rango. Use el siguiente archivo-m en Matlab:
     A = [0   1
          0 -.05];
     B= [0
         0.001];
     C = [1 0
          0 1];
     D = [0
          0];

     [num,den]=ss2tf(A,B,C,D)

     t=0:0.1:80;
     step(num,den,t)
     axis([0 100 0 0.1])
debería obtenerse la figura siguiente:

Como puede ver, la figura se corta en 80 segundos. El comando axis fue diseñado para extender la figura pasado el corte, de modo que éste sea visible. Note que esto no se hace normalmente en ploteos, ya que aparenta que la respuesta termina en los 80 segundos.

Guardado de la respuesta

la nota final acerca del comando step es que todas las variaciones de arriba pueden usarse con argumentos a izquierda. Existen dos maneras de invocarlos, dependiendo si se usó o no el vector tiempo en el comando step . Si se usó el vector tiempo, el comando es:
     [y,x] = step(A,B,C,D,iu,t);  o
     [y,x] = step(num,den,t);
Si el vector tiempo no se usa, el comando es:
     [y,x,t] = step(A,B,C,D,iu);  o
     [y,x,t] = step(num,den);
El vector y contiene la salida. Tiene tantas columnas como salidas y tantos renglones como elementos en el vector tiempo, t. El vector x contiene el estado. Tiene tantas columnas como estados y tantos renglones como elementos en el vector tiempo, t. Cuando se usa con argumentos a izquierda, el comando step no crea ningún gráfico. Normalmente querrá poner un punto_y_coma después del comando s t e p cuando lo invoque con argumentos a izquierda; de otro modo, Matlab imprimirá toda la salida, estados, y vectores tiempo en la ventana de comandos. Puede plotear la respuesta del estado usando plot(t,x).


Use el Botón "Atrás" de su Browser para ir a la página previa

8/29/96 JDP