Está en la página 1de 7

Conversin entre Sistemas de Representacin

De Espacio de estado a funcin de transferencia [ ceros en el infinito ] De Funcin Transferencia a espacio de estado De Espacio de estado a cero/polo y funcin de transferencia a cero/polo De Polo/cero a espacio de estado y polo/cero a Funcin de Transferencia Un sistema dinmico se describe comnmente de una de las tres maneras: por un conjunto de ecuaciones de estado y las correspondientes matrices, por una funcin de transferencia polinomios en el numerador y el denominador , o por una lista de polos y ceros y las ganancias asociadas . De vez en cuando, es til para convertir entre estas varias representaciones. Matlab puede efectuar estas conversiones rpida y sencillamente.

Espacio de estado a funcin de transferencia:


Para comenzar, suponga que tiene un conjunto de ecuaciones de estado y quiere convertirlas a la equivalente funcin de transferencia. Esto se hace con el comando
[num,den] =

ss2tf(A,B,C,D,iu)

Este comando crea el numerador y el denominador de la funcin de transferencia para la iu'sima entrada. Note que en la mayora de los sistemas considerados en este tutorial, hay slo una entrada y por lo tanto el trmino "iu" no necesita incluirse. Por ejemplo, suponga que tiene siguiente conjunto de ecuaciones de estado :

m=1000 b=50 u=500

Si quiere cambiarlo a funcin de transferencia, solo corra el siguiente archivo-m:


A = [0 0 1 -0.05];

B = [0; 0.001]; C = [0 1];

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

Matlab le debe devolver lo siguiente en la ventana de comandos:


num = 0 0.0010 den = 1.0000 0.0500 0 0

Esta es la forma en que Matlab presenta


0.001s + 0 -----------------s^2 + 0.05s + 0

Ahora tiene la funcin de transferencia que describe el sistema. Como puede ver este comando es muy fcil de usar. Aqu tiene algunas notas acerca de ss2tf:

El numerador, num, tendr tantos renglones cuantas salidas exista (o renglones en la matriz C). El numerador y el denominador se devuelven en potencias descendentes de s Debe tenerse cuidado en verificar el numerador y denominador, ya que los ceros en el infinito pueden producir funciones de transferencia errneas .

ceros en el infinito
Este ltimo punto necesita un poco ms explicacin. Decimos que un sistema tiene ceros en el infinito si el lmite cuando s->infinito del valor absoluto de la funcin de transferencia es igual a cero; esto ocurre siempre que haya ms polos que ceros. Ver esto en el diagrama del lugar de races como asntotas que van a infinito (la cantidad de asntotas es igual a la cantidad de ceros en el infinito). Matlab algunas veces calcula estos ceros en el infinito como si fueran nmeros grandes pero finitos. Cuando esto sucede, alguno de los coeficientes en el numerador que se supone son nulas terminan siendo nmeros pequeos. Le parecer poca cosa, pero esto puede causar errores cuando trate de usar la funcin de transferencia despus. Debiera verificar siempre su funcin de transferencia, y si aparecen nmeros como 0.0000 y se supone son nulos, re-escribir el numerador en Matlab para compensar. Un buen ejemplo de esto est dado por el siguiente conjunto de ecuaciones de estado:

Si ingresa esto al Matlab mediante el siguiente archivo-m:


A = [0 1 0 0 -0.1818 2.6727 0 0 0 0 -4.545 31.1818 B = [0 1.8182 0 4.5455]; C = [1 0 0 0 0 0 1 0]; D = [0 0]; [num,den]=ss2tf(A,B,C,D) 0 0 1 0];

Debera obtener la siguiente funcin de transferencia:


num = 0 0 den = 1.0000 0.1818 -31.1818 -4.4541 0 0.0000 0.0000 1.8182 4.5455 -0.0000 0.0000 -44.5460 0

Si mirase el numerador, el primer y el ltimo elemento de cada rengln son 0, mientras que el segundo y el cuarto elemento en cada rengln son 0.0000. Si los mira ms detendamente, hallar que no son cero, pero de hecho son nmeros chicos. Para verlo, ingrese cualquiera de los comandos siguientes en la ventana de comandos del Matlab: num(1,2), num(1,4), num(2,2) o num(2,4). Debera obtenerse algo similar al siguiente como respuesta: 7.1054e-15, -6.2172e-15, 1.2434e-14, or 4.4409e-15. Atienda las races del numerador de los polinomios usando roots(num(1,:)) y ver las races del numerador que estn casi en el infinito pero no tanto. (N del T: use format rat si es necesario) Esta inconsistencia numrica puede eliminarse agregando la siguiente lnea luego del comando ss2tf para eliminar nmeros que se supone no estn aqu :
num = [num(1,3) 0 num(1,5); num(2,3) 0 num(2,5)];

Ahora todos los nmeros chicos se han reemplazado con ceros. Siempre asegsere de ver la funcin de transferencia y entender qu significa antes de usarla en el proceso de diseo.

Funcin de Transferencia a espacio de estado:


El comando contrario a ss2tf es el tf2ss, el cual convierte la funcin de transferencia de un sistema en la forma espacio de estado. El comando se emite as:
[A,B,C,D] =

tf2ss(num,den)

Un hecho importante de notar es que a pesar que hay una nica funcin de transferencia que describe al sistema, puede obtener mltiples ecuaciones de espacio de estado que describen al mismo sistema. El comando tf2ss devuelve las matrices de espacio de estado en la forma cannica controlable . Por lo tanto, si toma un conjunto de ecuaciones de espacio de estado, y las convierte a funcin de transferencia, y entonces lo convierte de nuevo, no obtendr el mismo conjunto de ecuaciones de estado con el que ha empezado, a menos que lo haya hecho con matrices en la forma cannica controlable . Como ejemplo, tome el numerador y el denominador de arriba y convirtalos a espacio de estado. Esto puede hacerse con el siguiente cdigo de Matlab:
[A,B,C,D] =

tf2ss(num,den)

Matlab debera devolver el siguiente conjunto de matrices:


A = -0.1818 1.0000 0 0 B = 1 0 0 0 C = 0 0 D= 0 0 1.8182 4.5455 0 0 -44.5460 0 31.1818 0 1.0000 0 4.4541 0 0 1.0000 0 0 0 0

Este obviamente no es el mismo conjunto de matrices que usamos inicialmente, pero el comportamiento entrada-salida de este sistema es el mismo que el del anterior. Existen infinitas formas de representar una funcin de transferencia dada en la forma espacio de estado; Matlab elige la forma cannica controlable. Los estados no tendrn la misma significacin que tenan originalmente.

Espacio de estado a cero/polo Y funcin de transferencia a cero/polo:


Tambin existe una tercera forma de representar un sistema dinmico, y es el modelo polo-cero. Este modelo es bsicamente el mismo que el modelo funcin de transferencia , excepto que los polinomios se han factoreado de modo que los polos estn en el denominador y los ceros en la numerador. El formato bsico se ve como sigue:

Recuerde que para una funcin de transferencia propia, la cantidad de polos n es mayor o igual a la cantidad de ceros m. Matlab puede efectuar las transformaciones desde espacio de estado o desde funcin de transferencia a la representacin polo-cero . Los comandos para obtener el sistema a la forma polo-cero son:
[z,p,k] =

tf2zp(num,den)

si tiene una funcin de transferencia, y:


[z,p,k] =

ss2zp(A,B,C,D,iu)

si tiene un modelo en espacio de estado. Estos dos comandos deben devolver tres variables: z, p, k. La variable z devuelve los ceros en un vector columna. Debe haber una columna para cada rengln en el numerador de la funcin de transferencia o cada salida, y (renglones en la matriz C). La variable p devuelve los polos en un vector columna. La variable k devuelve un vector columna con los valores de ganancia. La columna debera tener tantos renglones como renglones tuviera el numerador o salidas, y. por ejemplo, usando el modelo en espacio de estado y la funcin de transferencia de arriba, ingrese uno de los siguientes archivom:
num = [1.8182 4.5455 0 -7.4373 -44.5460; 0];

den = [1 0.1818 -31.1818 6.4786 0]; [z,p,k] =

tf2zp(num,den)

or
A = [0 0 0 0 B = [0 1 -0.1818 0 -4.545 0 2.6727 0 31.1818 0 0 1 0];

1.8182 0 4.5455]; C = [1 0 0 0 0 0 1 0]; D = [0 0]; [z,p,k]=ss2zp(A,B,C,D,1)

debera obtenerse la siguiente salida:


z = 4.9498 -4.9498 p = 0 0.2083 -5.7753 5.3851 k = 1.8182 4.5455 1.6362 0

Hay dos columnas de ceros, y por lo tanto la matriz k tendr dos renglones (uno para cada columna en z).

Polo-cero a espacio de estado y polo/cero a funcin de transferencia


Como ya habr adivinado, si tiene un sistema descripto por el mtodo polo-cero, puede convertilo ya sea al modelo en espacio de estado o a la funcin de transferencia. Para obtener el modelo en espacio de estado, escriba el siguiente comando:
[A,B,C,D] =

zp2tf(z,p,k)

De nuevo, es importante notar que ms de un conjunto de matrices de espacio de estado pueden describir el mismo sistema. Las matrices de espacio de estado devueltas con este comando tambin estn en la foma cannica controlable. por ejemplo, tome las matrices z, p, y k que ha creado recientemente y convirtalas nuevamente a espacio de estado:
[A,B,C,D] =

zp2tf(z,p,k)

Debera obtenerse las siguientes matrices de espacio de estado:


A = -0.1818 1.0000 0 0 31.1818 0 1.0000 0 -6.4786 0 0 1.0000 0 0 0 0

B =

1 0 0 0 0 0 1.8182 4.5455 0 -7.4373 -

C = 44.5460 0 D =

0 0

Reconocer this as la misma conjunto de matrices you got using the command, tf2ss. To get a sistema described by a polo-cero model into a funcin de transferencia model, use la siguiente command:
[num,den] =

zp2tf(z,p,k)

Converting la misma polo-cero model from above, debera obtenerse la siguiente funcin de transferencia:
num = den = 0 0 1.0000 0 0 0.1818 1.8182 4.5455 0 -7.4373 -44.5460 0 0

-31.1818

6.4786

Lo reconocer como la misma funcin de transferencia con la que empezamos.