Está en la página 1de 45

Captulo 1: La Transformada Z

- 1 -











Captulo 1.
LA TRANSFORMADA Z.
Sistemas de Control en Tiempo Discreto

- 2 -
1.1 INTRODUCCIN.

La transformada Zeta es una herramienta til en teora de control en tiempo
discreto y su papel es anlogo al que juega la transformada de Laplace en tiempo
continuo.

Una seal en tiempo continuo es aquella que se define sobre un intervalo
continuo de tiempo. Una seal analgica es una seal definida en un intervalo continuo
de tiempo, cuya amplitud puede adoptar un intervalo continuo de valores. En cambio,
una seal en tiempo discreto es una seal definida slo en valores discretos de tiempo.
En una seal en tiempo discreto, si la amplitud puede adoptar valores en un intervalo
continuo, entonces la seal se denomina seal de datos muestreados. Una seal de
datos muestreados se puede generar muestreando una seal analgica en valores
discretos de tiempo. Para ms informacin, [REF. 5], [REF. 6].

Se denominan variables de entrada, a todas las que es posible manipular a la
entrada del sistema, y que influyen sobre su comportamiento. Las variables de salida
son las respuestas medibles del sistema. Las variables de estado de un sistema son el
conjunto ms pequeo de variables que sirven para describir en su totalidad el
comportamiento de un sistema. Una perturbacin o ruido es una seal que afecta
adversamente al valor de salida de un sistema. Si una perturbacin se genera dentro del
sistema, se la denomina interna, dando lugar a las variables internas del sistema. Si la
perturbacin se genera fuera del sistema se considera externa, y constituye una entrada.

Los sistemas de control en tiempo discreto son aquellos sistemas en los cuales
una o ms de las variables pueden cambiar slo en valores discretos de tiempo. Estos
instantes, los que se denotarn mediante kT (k = 0, 1, 2, ..., T = periodo de muestreo),
pueden especificar los tiempos en los que se lleva a cabo alguna medicin de tipo fsico,
o los tiempos en los que se extraen los datos de la memoria de una computadora digital.
El intervalo de tiempo entre dos instantes discretos consecutivos se supone lo
Captulo 1: La Transformada Z

- 3 -
suficientemente corto, como para aproximar el dato de dichos instantes discretos
consecutivos con una interpolacin sencilla.

Se dice que un sistema es causal si su salida en cualquier instante de tiempo
depende slo de los valores de la entrada en el tiempo presente y en el pasado. A estos
sistemas tambin se les llama sistemas no anticipativos, ya que la salida del sistema no
anticipa valores futuros de la entrada. Un sistema es estrictamente causal si la salida
slo depende de los valores de la entrada en los instantes de tiempo pasado.


A modo de ejemplo, el sistema definido por la ecuacin

x( t ) = 2u( t ) + u( t - 1)

es causal. Y el sistema definido por la ecuacin

x( t ) = u( t - 1)

es estrictamente causal. Sin embargo, el sistema definido por la ecuacin

x( t ) = u( t ) - u( t +1)

no es causal.

Sistemas de Control en Tiempo Discreto

- 4 -
Se dice que un sistema es subamortiguado cuando su salida en el dominio del
tiempo se estabiliza alcanzando el valor uno, tras una serie de oscilaciones. Si alcanza
dicho valor sin oscilaciones, el sistema tiene amortiguamiento crtico. Se dice que un
sistema es sobreamortiguado cuando su salida acaba alcanzando el valor uno sin
oscilaciones. Para comprender mejor estos conceptos, dibujamos dichas funciones en el
dominio del tiempo.














Si la funcin que define cada elemento de la secuencia de salida es lineal, el
sistema se denomina as mismo lineal. Si los coeficientes que definen el sistema son
constantes, el sistema lineal es invariante en el tiempo. Dichos sistemas se pueden
representar mediante ecuaciones en diferencias lineales con coeficientes constantes.
[REF. 6].

En un sistema de control en tiempo discreto, una ecuacin en diferencias lineal
con coeficientes constantes caracteriza la dinmica del sistema, relacionando la entrada
con la salida. Si se quiere determinar la respuesta del sistema a una entrada dada, hay
que resolver dicha ecuacin en diferencias. Para ello utilizamos el mtodo de la
Captulo 1: La Transformada Z

- 5 -
transformada Z, transformando las ecuaciones en diferencias lineales e invariantes en el
tiempo en ecuaciones algebraicas en el plano z (la variable compleja). De igual manera,
para sistemas continuos la transformada de Laplace transforma las ecuaciones
diferenciales en ecuaciones algebraicas en s (variable compleja). [REF. 1].

Polos y ceros en el plano z. Dado un sistema discreto lineal e invariante en el
tiempo, y causal, el mtodo de la transformada z da lugar a una funcin X( z ) que puede
tener la siguiente forma:

+ .. +
= ( )
+ .. +

Los puntos en los que la funcin X( z ) es igual a cero son las races del numerador (los
ceros de X( z ) ). As mismo, los puntos en los que la funcin tiende a infinito son las
races del denominador (los polos de X( z ) ). [REF. 5]. Estabilidad.

El principal objetivo de este captulo es presentar las definiciones de la
transformada z, los teoremas bsicos asociados con ella, y los mtodos para encontrar la
transformada z inversa.
+ b
0
z
m
b
1
z
( ) m 1
( ) X z
b
m
+ z
n
a
1
z
( ) n 1
a
n
m n
Sistemas de Control en Tiempo Discreto

- 6 -
1.2 LA TRANSFORMADA Z.

Al considerar la transformada z de una funcin del tiempo x( t ) , slo se tienen
en cuenta los valores muestreados de dicha funcin: x( 0) , x( T) , x( 2T) , ... siendo
T el perodo de muestreo.

La transformada z de una funcin del tiempo x( t ) , donde t es positivo, o de la
secuencia de valores x( kT) , donde k adopta valores mayores o iguales que cero
y T es el perodo de muestreo, se define mediante la siguiente expresin [REF. 5]:


=


Para una secuencia de nmeros x( k) , la transformada z se define como:


=


La transformada z definida mediante estas ecuaciones se conoce como
transformada z unilateral. La transformada z viene representada por el smbolo
Z. En la transformada z unilateral, se supone que x( t ) = 0, x( k) = 0, para valores
negativos de t y k. As mismo, z es una variable compleja.

Por ejemplo, la transformada z de la secuencia impulso que viene definida
por x( 0) = 1, x( 1) = 0, x( 2) = 0, ... ser:


X(z) = = 1

= ( ) X z ( ) ( ) x t = ( ) ( ) x k T

= k 0

( ) x k T z
( ) k
( ) X z = ( ) ( ) x k

= k 0

( ) x k z
( ) k
=
= k 0

( ) x k z
( ) k
z
0
Captulo 1: La Transformada Z

- 7 -
Es importante resaltar que, cuando se trata con una secuencia de tiempo
x( kT) obtenida mediante muestreo, la transformada z, X( z ) , involucra al periodo
de muestreo T. Por otro lado, para una secuencia de tiempo x( k) , la transformada no
incluye explcitamente a T.

La transformada z de x( t ) , para - < t < , o de x( k) , donde k adopta
cualquier valor entero o cero, se define mediante las siguientes ecuaciones:


=


=


La transformada z definida mediante estas ecuaciones se conoce como
transformada z bilateral, en la que se supone que x( t ) es distinta de cero y que la
secuencia x( k) tiene valores distintos de cero, para valores negativos de t y k.

A partir de ahora, cuando hablemos de la transformada z, nos referiremos a la
transformada z unilateral, ya que al referirnos a secuencias en el tiempo, t no tiene
valores negativos.

= ( ) X z ( ) ( ) x t = ( ) ( ) x k T

= k

( ) x k T z
( ) k
( ) X z
= ( ) ( ) x k

= k

( ) x k z
( ) k
Sistemas de Control en Tiempo Discreto

- 8 -
Ejemplos:

Trabajamos ahora con las funciones de Maple disponibles. 'restart'
inicializa el sistema. 'ztrans' es la funcin que realiza la transformada z, y
mostramos ahora algunos ejemplos de su funcionamiento:

> restart:

Sin tener en cuenta el periodo de muestreo:


> ztrans(t^2, t, z);




Considerando el periodo de muestreo:

> ztrans((k*T)^2, k, z);


> ztrans(1-exp(-a*k*T), k, z);

z ( ) + z 1
( ) z 1
3
T
2
z ( ) + z 1
( ) z 1
3

z
z 1
z
e
( ) a T |
\

|
.
|
|
|

z
e
( ) a T
1
Captulo 1: La Transformada Z

- 9 -
> simplify(%);



> ztrans(Dirac(k*T), k, z);


La funcin delta de Dirac( t ) toma el valor cero en todos sus puntos excepto para
t = 0, donde hay una singularidad. Podra considerarse como la versin discreta de la
funcin impulso. Tiene la propiedad de que

z ( ) + 1 e
( ) a T
( ) z 1 ( ) z e
( ) a T
1
( ) Dirac 0
= d

( ) Dirac t t 1
Sistemas de Control en Tiempo Discreto

- 10 -
1.3 TRANSFORMADA Z DE FUNCIONES ELEMENTALES.

El objetivo de esta seccin es el manejo de la funcin 'ztrans' para aprender a
obtener la transformada z de una funcin, y ver las diferencias entre la transformada z
de una seal x( t ) y otra x( kT) . A continuacin se presentar la transformada z de
varias funciones elementales. Hemos escogido las que consideramos ms bsicas
(funcin escaln unitario, rampa unitaria, exponencial, seno y coseno), pues el resto se
pueden representar como combinaciones de stas.

l1 es una lista de funciones elementales sin tener en cuenta el perodo de
muestreo. Considerando dicho perodo T, creamos la lista de funciones l2. Se presenta
ahora un array en el que se pueden apreciar dichas funciones y sus correspondientes
transformadas, observando la diferencia entre Z( x( t ) ) y Z( x( kT) ) . Para ver alguna
funcin ms, slo hay que aadirla en la lista, y ejecutar nuevamente las instrucciones
Maple.

> restart:


> l1 := [1, t, a^t, exp(-a*t), sin(omega*t), cos(omega*t)];


> l2 := [1, k*T, a^(k*T), exp(-a*k*T), sin(omega*k*T), cos(omega*k*T)];

:= l1 [ ] , , , , , 1 t a
t
e
( ) a t
( ) sin t ( ) cos t
:= l2 [ ] , , , , , 1 k T a
( ) k T
e
( ) a k T
( ) sin k T ( ) cos k T
Captulo 1: La Transformada Z

- 11 -
> array(1..nops(l1)+1, 1..4, [ [`x(t)`, `X(z)`, `x(kT)`, `X(z)`],
seq( [l1[j], simplify(ztrans(l1[j], t, z), radical),
l2[j], simplify(ztrans(l2[j], k, z))], j=1..nops(l1) )]);


x(t) X(z) x(kT) X(z)


1
z
z 1
1
z
z 1
t
z
( ) z 1
2
k T
T z
( ) z 1
2
a
t
z
z a
a
( ) k T

z
+ z a
T
e
( ) a t z
z e
( ) a
e
( ) a k T z e
( ) a T
z e
( ) a T
1
( ) sin t
z ( ) sin
+ z
2
2 z ( ) cos 1
( ) sin k T
z ( ) sin T
+ z
2
2 z ( ) cos T 1
( ) cos t
( ) z ( ) cos z
+ z
2
2 z ( ) cos 1
( ) cos k T
( ) + z ( ) cos T z
+ z
2
2 z ( ) cos T 1
Sistemas de Control en Tiempo Discreto

- 12 -
1.4 PROPIEDADES DE LA TRANSFORMADA Z.

En esta seccin se presentan las herramientas bsicas de Maple necesarias para
estudiar las propiedades ms importantes y los teoremas tiles de la transformada z, tal
y como vienen descritas en [REF. 5]. Se supone que la funcin del tiempo x( t ) tiene
transformada z, y que x( t ) = 0 para valores negativos de t. As mismo, se considera
X( z) como la transformada z de x( t ) .

1.4.1.- Linealidad de la transformada z.

Si f ( kT) y g( kT) tienen transformada z, y y son escalares, siendo T el
periodo de muestreo, entonces


Considerando F(z) y G(z) las respectivas transformadas z de f ( kT) y g( kT) ,
tenemos


1.4.2.- Multiplicacin por a
k T
.

Si X(z) es la transformada z de x( kT) entonces

( ) ) ( ) (
1
z a X T k x a
T k
=






= ( ) + ( ) f k T ( ) g k T + ( ) ( ) f k T ( ) ( ) g k T
= ( ) + ( ) f k T ( ) g k T + ( ) F z ( ) G z
Captulo 1: La Transformada Z

- 13 -
1.4.3.- Desplazamiento: Teorema de traslacin real.

Siendo n un entero no negativo (positivo o cero), entonces

) ( )) ( ( z X z T n t x
n
=

|
|
.
|

\
|
= +

1
0
) ( ) ( )) ( (
n
k
k n
z T k x z X z T n t x

1.4.4.- Teorema de traslacin compleja.

Si x( t ) tiene la transformada z, X( z) , entonces la transformada z de

) (t x
t a


e

viene dada por

) (
T a
z X

e


1.4.5.- Teorema del valor inicial.

Si x( t ) tiene por transformada z, X( z ) , y si el ) (z X lim
z
existe, entonces el
valor inicial x( 0) de x( t ) x( k) est dado por

) ( ) 0 ( z X lim x
z
=
Sistemas de Control en Tiempo Discreto

- 14 -
El teorema del valor inicial es conveniente para verificar la incidencia de posibles
errores en el clculo de la transformada z. Debido a que x( 0) se suele conocer,
comprobar su valor mediante el lmite ayuda a descubrir errores en la transformada z, si
stos se producen.

1.4.6.- Teorema del valor final.

Suponemos que x( kT) , siendo T el periodo de muestreo, tiene la transformada
z, X( z ) , con x( kT) = 0 para valores negativos de k, y que todos los polos de
X( z ) estn dentro del crculo unitario, con la posible excepcin de un slo polo en
z = 1. Esta es la condicin para la estabilidad de X( z ) , es decir, la condicin para que
x( kT) (k = 0, 1, 2...) permanezca finita. Entonces el valor final de x( kT) , que es su
valor conforme el tiempo tiende a infinito, puede obtenerse mediante

) ( ) 1 ( ) (
1
1
z X z lim T k x lim
z k
=




El teorema del valor final es muy til para determinar el comportamiento de
x( k) a medida que k tiende a infinito, a partir de su transformada z, X( z) .


Ejemplos.

> restart:


Captulo 1: La Transformada Z

- 15 -
Ejemplo 1.

Encontrar las transformadas z de una funcin escaln unitario que est retrasada
un perodo de muestreo y cuatro perodos de muestreo, respectivamente, mediante el
teorema de traslacin real. A continuacin se muestran dichas funciones, y sus
respectivas transformadas inversas. En el 'plot' se utiliza la opcin 'axes=frame', para
que sea ms fcil apreciar en el grfico los valores de la funcin que son cero (estn en
el eje).

> f1 := k -> piecewise(k<1 ,0 , 1):
f2 := k -> piecewise(k<4, 0, 1):
transform1 = ztrans(f1(k), k, z);
plot({f1(k), f2(k)}, k=0.1..7, axes=frame);
transform2 = ztrans(f2(k), k, z);







Ahora aplicamos el teorema de traslacin, comprobando que se obtienen las
transformadas anteriores:


= transform1
1
z 1
= transform2
1
z
3
( ) z 1
Sistemas de Control en Tiempo Discreto

- 16 -
> trans1 = z^(-1)*ztrans(1, t, z);
trans2 = z^(-4)*ztrans(1, t, z);





Ejemplo 2.

Dada la transformada z de , obtener la transformada z de e
- a t

mediante el uso del teorema de traslacin compleja.

> ZETA(sin(omega*k*T)) := ztrans(sin(omega*k*T), k, z);
ZETA(exp(-a*k*T)*sin(omega*k*T)) :=
simplify(subs(z=z*exp(a*T), %), radical, exp);


Ahora aplicamos directamente la transformada z, para comprobar el resultado.
Las operaciones matemticas que se realizan, son para dejar la ecuacin exactamente
igual. Lo nico que se hace es calcular la transformada, y multiplicar numerador y
denominador por e
2 a T
, para que quede como la anterior.

= trans1
1
z 1
= trans2
1
z
3
( ) z 1
( ) sin t
:= ( ) ( ) sin k T
z ( ) sin T
+ z
2
2 z ( ) cos T 1
:= ( ) e
( ) a k T
( ) sin k T
z e
( ) a T
( ) sin T
+ z
2
e
( ) 2 a T
2 z e
( ) a T
( ) cos T 1
( ) sin t
Captulo 1: La Transformada Z

- 17 -
> trans := simplify(ztrans(exp(-a*k*T)*sin(omega*k*T), k, z),
radical, exp):
numerador := simplify(numer(trans)*exp(2*a*T)):
denominador := expand(denom(trans)*exp(2*a*T)):
simplify(numerador/denominador, radical, exp);


Ejemplo 3.

Determinar el valor inicial x( 0) si la transformada z de x( t ) es


) 1 ( ) 1 (
) 1 (
) (
1 1
1




=
z z
z
z X
T
T
e
e


mediante el teorema del valor inicial.

> X(z) := (1-exp(-T))*z^(-1) / ((1-z^(-1))*(1-exp(-T)*z^(-1))):
x(0) = limit(X(z), z=infinity);

z e
( ) a T
( ) sin T
+ z
2
e
( ) 2 a T
2 z e
( ) a T
( ) cos T 1
= ( ) x 0 0
Sistemas de Control en Tiempo Discreto

- 18 -
Ahora comprobamos que el valor es correcto, hallando la transformada z inversa de
X(z). Para ello se utiliza la funcin 'invztrans', que se encuentra en la librera estndar
de Maple.

> invztrans(X(z), z, n);
x(0) = subs(n=0, %);


Ejemplo 4.

Mediante el teorema del valor final, determinar el valor de


1 1
1
1
1
1
) (

=
z z
z X
T a
e
a>0


> X(z) := (1/(1-z^(-1))-1/(1-exp(-a*T)*z^(-1))):
limit(x(k*T), k = infinity) = limit((1-z^(-1))*X(z), z=1);

1
|
\

|
.
|
|
|
1
e
T
n
= ( ) x 0 0
( ) x
= lim
k
( ) x k T 1
Captulo 1: La Transformada Z

- 19 -
Ahora comprobamos que el valor es correcto, hallando la transformada z inversa de
X( z) .


> assume(T>0): assume(a>0):
invztrans(X(z), z, n);
x(infinity) = limit(%, n=infinity);
unassign('T'): unassign('a'):




NOTA del autor: "assume" sirve para especificar que T y a son mayores que cero,
lo cual es imprescindible para poder calcular el lmite. Al hacer esto, ambos apareceran
de aqu en adelante con el siguiente smbolo: T~, a~. Para evitar esto (por
comodidad), utilizamos la sentencia unassign, dejando T y a como estaban. Lo
vemos ahora como ejemplo.

> assume(T>0): assume(a>0): T; a;
unassign('T'): unassign('a'): T; a;




1
|
\

|
.
|
|
|
1
e
( ) a T
n
= ( ) x 1
T~
a~
T
a
Sistemas de Control en Tiempo Discreto

- 20 -
1.5 LA TRANSFORMADA Z INVERSA.

Utilizamos Maple para el clculo y estudio de la transformada z inversa. La
transformada z inversa de X( z ) da como resultado la correspondiente secuencia de
tiempo x( kT) .

Se debe observar que a partir de la transformada inversa slo se obtiene la
secuencia de tiempo en los instantes de muestreo. Por lo tanto, la transformada z inversa
de X( z ) da como resultado una nica x( kT) , pero no una nica x( t ) , ya que no dice
nada de los valores de x( t ) en los instantes de tiempo no muestreados. Esto significa
que puede haber distintas funciones de tiempo ) (t x
i
con la misma x( kT) . A
continuacin se muestra un ejemplo, con el perodo de muestreo = T

> restart: Digits := 5:

> x[1](k) := 0;
x[2](k) := sin(k*Pi);
plot({x[1](k), x[2](k)}, k = 0..4, axes=frame, color=[green, red]);






:= ( ) x
1
k 0
:= ( ) x
2
k ( ) sin k
Captulo 1: La Transformada Z

- 21 -
NOTA: En el ejemplo anterior no se cumple el teorema de muestreo, el cual exige que
s M
< 2 , para la seal continua x( t ) , donde
T
s

=
2
es la frecuencia de
muestreo y
M
es la frecuencia ms alta presente en la seal. En este caso, con el
periodo de muestreo = T , 2 =
s
. [REF. 6], [REF. 7]. Con esta frecuencia de
muestreo, dos seales distintas son muestreadas de igual modo. En este caso, las
oscilaciones de
( ) x
2
k
que no se ven en
( ) x
1
k
por estar entre instantes de muestreo se
denominan oscilaciones ocultas.


Existen diferentes mtodos para calcular la transformada z inversa. Un mtodo
obvio es referirse a una tabla de transformadas z, pero es laborioso (si se utiliza una
tabla de transformadas z no muy extensa, es necesario expresar una transformada z
complicada como una suma de transformadas z ms sencillas). ste es el mtodo que
usa Maple (expansin en fracciones parciales). Existen cuatro mtodos para obtener la
transformada z inversa [REF. 5]:

1.- Mtodo de la divisin directa. En este mtodo la transformada z inversa se
obtiene mediante la expansin de X( z) en una serie infinita de potencias de z
- 1
. Este
mtodo es til cuando es difcil obtener una expresin en forma cerrada para la
transformada z inversa, o se desea encontrar slo algunos de los primeros trminos de
x( k) .

2.- Mtodo computacional. En este mtodo, la transformada z inversa se obtiene
utilizando la funcin delta de Kronecker , donde


= 1 para k = 0
0 para
( )
0
k T
k 0
( )
0
k T
Sistemas de Control en Tiempo Discreto

- 22 -
Suponiendo que u( k) , la entrada al sistema G( z) es la entrada Delta de Kronecker, la
transformada z de la entrada delta de Kronecker es U( z) = 1. Lo vemos con un
ejemplo, con el enfoque de la ecuacin en diferencias, para la ecuacin


=

Dicha ecuacin se puede escribir como



Esta ecuacin se puede convertir en una ecuacin en diferencias como sigue:



donde u( 0) = 1 y u( k) = 0 para 0 k , x( k) = 0 para k < 0. [u( k) es la entrada
Delta de Kronecker]. Encontrar la transformada z inversa se convierte ahora en el
problema de resolver la ecuacin en diferencias para u( k) .

3.- Mtodo de expansin en fracciones parciales. Es el mtodo que utiliza
Maple. Es idntico al que se utiliza en la transformada de Laplace, y requiere que todos
los trminos de la expansin en fracciones parciales se puedan reconocer fcilmente en
la tabla de pares de transformadas z. Si X( z) tiene uno o ms ceros en el origen (z = 0),
entonces
z
z X ) (
X( z) se expande en la suma de trminos sencillos de primer o
segundo orden mediante la expansin en fracciones parciales, y se emplea una tabla de
transformadas z para encontrar la funcin del tiempo correspondiente para cada uno de
los trminos expandidos.
.4673 z .3393
+ z
2
1.5327 z .6607
= ( ) G z
( ) X z
( ) U z
= ( ) + z
2
1.5327 z .6607 ( ) X z ( ) .4673 z .3393 ( ) U z
= + ( ) x + k 2 1.5327 ( ) x + k 1 .6607 ( ) x k .4673 ( ) u + k 1 .3393 ( ) u k
Captulo 1: La Transformada Z

- 23 -
4.- Mtodo de la integral de inversin. El mtodo de la integral de inversin,
basado en la integral de inversin, est basado en la teora de variable compleja, siendo
necesario tambin revisar el teorema de los residuos [REF. 5]. La ecuacin que da la
transformada z inversa en trminos de los residuos se puede obtener como sigue:

=
= + + + =
m
i
m
k k k T k x
1
2 1
) ( L residuo de X( z ) z
k - 1
en el polo z=z
i
de X( z ) z
k - 1


( ) ) (
1
z X

=

Para calcular la transformada z inversa, se puede usar la funcin 'invztrans' de
Maple que opera calculando la descomposicin en fracciones simples de la funcin
racional F(z) y despus obtiene directamente de las tablas la transformada inversa de
cada fraccin simple.


Ejemplos:

> ztrans((k*T)^2, k, z);
invztrans(%, z, k);

T
2
z ( ) + z 1
( ) z 1
3
k
2
T
2
Sistemas de Control en Tiempo Discreto

- 24 -
> ztrans(((k+2)*T)^2, k, z);
factor(invztrans(%, z, k));



> suc := invztrans(z/(z^2+1), z, n);


Esta es la expresin de la transformada z inversa en su forma ms general. Puede
apreciarse que no hay una expresin cerrada para la transformada z inversa. Para
obtenerla, hay que aproximarla utilizando la funcin Maple 'evalf'. Lo hacemos a
continuacin.

> sucf := evalf(suc);


Si la dibujamos, vemos la funcin continua correspondiente.

T
2
|
\

|
.
|
|
|
+ + 4
z
z 1
4
z
( ) z 1
2
z ( ) + z 1
( ) z 1
3
( ) + 2 k
2
T
2
:= sucf 1.0000 ( ) sin 1.5708 n
:= suc

= ( ) RootOf + _Z
2
1
|
\

|
.
|
|
|
|
|
|

1
2
|
\

|
.
|
|
1

Captulo 1: La Transformada Z

- 25 -
> plot(sucf, n=0..30);

Si intentamos dibujar la secuencia correspondiente, el resultado es el que se muestra a
continuacin.

> plot(sucf,n=0..30,style=point);

Y si lo que queremos son los valores de la seal muestreada en los instantes de
muestreo, la forma de hacerlo es a travs de la secuencia de puntos obtenida al aplicar la
transformada z inversa sin aproximarla con evalf:

> seq(suc, n=0..10);

> plot([seq([n,suc], n=0..30)], style=point);

, , , , , , , , , , 0 1 0 -1 0 1 0 -1 0 1 0
Sistemas de Control en Tiempo Discreto

- 26 -
, , , , , , , , , 1. -.60000 .63000 -.54000 .49410 -.44226 .39876 -.35867 .32287 -.29056
Otro ejemplo. En esta ocasin, la transformada z inversa s que nos da una expresin
cerrada, por lo que no es necesario hacer lo anterior.

> suc2 := invztrans(z/((z-3/10)*(z+9/10)), z, n);

> suc2f := evalf(suc2);

La secuencia resultante es:

> seq(suc2, n=1..10);

Si se quieren los valores aproximados, para ver mejor lo que representan, basta con
utilizar la funcin evalf. Se muestran las dos formas de hacerlo, para comprobar que dan
idntico resultado.

> seq(evalf(suc2), n=1..10);
seq(suc2f, n=1..10);

:= suc2
5
6
|
\

|
.
|
|
3
10
n 5
6
|
\

|
.
|
|
-9
10
n
:= suc2f .83333 .30000
n
.83333 ( ) -.90000
n
, , , , , , , , , 1
-3
5
63
100
-27
50
4941
10000
-22113
50000
398763
1000000
-89667
250000
32286681
100000000
-145280223
500000000
1.0000 -.60000 .63000 -.54000 .49410 -.44225 .39876 -.35867 .32287 , , , , , , , , ,
-.29057
Captulo 1: La Transformada Z

- 27 -
> plot([seq([n,suc2], n=1..50)], style=point);



1.5.1 Ceros y Polos. Estabilidad.

Para un sistema de control en tiempo discreto lineal e invariante en el tiempo,
como el que se muestra a continuacin,



consideramos la siguiente funcin de transferencia en lazo cerrado:


Una funcin de transferencia se define para un sistema lineal y estacionario (no
vara con el tiempo). La funcin de transferencia es la relacin entre las transformadas z
de la entrada y la salida, considerando cero todas las condiciones iniciales. De forma
anloga se podra definir para sistemas continuos [REF. 2].
=
( ) C z
( ) R z
( ) G z
+ 1 ( ) G z
Sistemas de Control en Tiempo Discreto

- 28 -
Dada dicha funcin, se denominan ceros del sistema de control a las races de la
ecuacin G(z) = 0 (raz del numerador). As mismo, se denominan polos del sistema a
las races de la ecuacin caracterstica 1+G(z) = 0 (raz del denominador). Recordar
que para un sistema dado hay una sola ecuacin caracterstica. Esto significa que la
ecuacin caracterstica de una funcin de transferencia dada, es la misma
independientemente de cul sea la seal de entrada. [REF. 4].


Sistema de control en lazo cerrado y en lazo abierto:

Un sistema de control de lazo cerrado es aquel en el que la seal de salida tiene
efecto directo sobre la accin de control. La figura anterior es un claro ejemplo de dicho
sistema. En otras palabras, los sistemas de control de lazo cerrado son sistemas de
control con realimentacin.

Por contra, un sistema de control de lazo abierto es aquel en el que la salida no
tiene efecto sobre la accin de control, lo que significa que no tiene realimentacin.
[REF. 4].

1. Para que el sistema de control en lazo cerrado sea estable, todos los polos en
lazo cerrado deben presentarse en el plano z dentro del crculo unidad (el mdulo del
polo debe ser menor que uno). Si alguno est fuera de dicho crculo, el sistema es
inestable. [REF. 5].

2. Si un polo simple (multiplicidad 1) se presenta en el crculo unidad (en
z = 1 z = -1), entonces el sistema se convierte en crticamente estable. Tambin es
crticamente estable si un solo par de polos complejos conjugados se presentan sobre el
crculo unidad en el plano z. Cualquier polo mltiple en lazo cerrado sobre el crculo
unidad hace al sistema inestable.

Captulo 1: La Transformada Z

- 29 -
3. Los ceros en lazo cerrado no afectan a la estabilidad absoluta, y por lo tanto
pueden quedar localizados en cualquier parte del plano z.

Ejemplo.

Considere la siguiente funcin de transferencia del sistema:

El sistema tiene un solo polo en z = 0, por lo que el sistema es estable.

Si un sistema es estable, su transformada z inversa tiende a cero en el infinito. Y
la salida del sistema siempre sigue a la entrada.

Si un sistema es inestable, su transformada z inversa tiende a infinito en el
lmite. Y la salida del sistema siempre va a infinito.

Y si un sistema es crticamente estable, no ocurre ninguna de estas dos cosas. O
el lmite es una constante distinta de cero, o no existe (como ejemplo, los senos,
cosenos, y la funcin ( - 1)
k
) . En estos sistemas, hay algunas entradas que no son
seguidas por la salida (ver ejercicio 2.5.6 del captulo 2).

Sistemas de fase mnima y sistemas de fase no mnima. [REF. 4]. Las funciones
de transferencia continua que no tienen ceros en el semiplano derecho s (todos sus ceros
son estables), son funciones de transferencia de fase mnima. Las funciones de
transferencia continua que tienen ceros en el semiplano derecho (ceros inestables), son
funciones de transferencia de fase no mnima. De forma anloga, las funciones de
transferencia discreta cuyos ceros son estables en el plano z (dentro del crculo unidad)
son de fase mnima. Y las funciones de transferencia discreta con ceros inestables (fuera
del crculo unidad en el plano z) son de fase no mnima.
= ( ) G z
1
z
Sistemas de Control en Tiempo Discreto

- 30 -
Pasamos ahora a utilizar las herramientas de Maple para estudiar y comprender
mejor el comportamiento de distintas funciones, en funcin de la localizacin de sus
ceros y polos [REF. 3].

La funcin de Maple 'with(plots)' sirve para trabajar con una serie de utilidades,
entre las que se encuentra la opcin 'display'. Le ponemos un punto y coma para que se
aprecien dichas opciones. Otra forma de utilizarlas sin tener que cargar la librera,
escribiendo 'plots[display]'.

> restart: with(plots);









Comportamiento de la transformada z inversa de
p z
z

, que tiene un cero en el


origen y un polo real simple, al que damos valores dentro, fuera, y en el crculo
unidad.

Representamos la transformada z inversa como una funcin continua, uniendo
los puntos de la secuencia, para que se aprecie mejor. Implementamos el procedimiento
'Dibf', que calcula la transformada z inversa de una funcin en z dada, y la secuencia
correspondiente, para el n de puntos indicado.
, , , , , animate animate3d animatecurve arrow changecoords complexplot
, , , , , complexplot3d conformal conformal3d contourplot contourplot3d coordplot
, , , , , , coordplot3d cylinderplot densityplot display display3d fieldplot fieldplot3d
, , , , , gradplot gradplot3d implicitplot implicitplot3d inequal listcontplot
, , , , , , listcontplot3d listdensityplot listplot listplot3d loglogplot logplot matrixplot
, , , , , , odeplot pareto pointplot pointplot3d polarplot polygonplot polygonplot3d
, , , , , polyhedra_supported polyhedraplot replot rootlocus semilogplot setoptions
, , , , , setoptions3d spacecurve sparsematrixplot sphereplot surfdata textplot
, textplot3d tubeplot
Captulo 1: La Transformada Z

- 31 -
> Dibf := proc(f, m)
local inv, i, k;

global secu;
inv := simplify(evalf(invztrans(convert(f, parfrac, z), z, k))):
secu := [];
for i from 0 to m do
secu := [op(secu), [i, subs(k=i, inv)]];
od;
end:

Implementamos ahora el procedimiento 'Estab1', a la que se le pasa la funcin
antes mencionada, con un cero en el origen y un polo real y el nmero de puntos que se
quieren pintar. Este procedimiento calcula la inversa de dicha funcin, considerando los
casos en los que la raz est fuera, en el crculo unidad, o dentro del crculo unidad. En
concreto, los valores del polo son:

Fuera: pto = 1.5, pto = -1.5
En el crculo: pto = 1, pto = -1
Dentro: pto =0.5, pto = -0.5

Se dibujan las respectivas inversas para el nmero de puntos 'm' indicado.
Sistemas de Control en Tiempo Discreto

- 32 -
> Estab1 := proc(fun, m) local p, f;

# polo fuera del circulo unidad (p=1.5), (p=-1.5)
p := array(1..3, 1..2):
f := subs(pto=1.5, fun):
Dibf(f, m):
p[1,1] := plot(secu, title = `z/(z-1.5), inestable`):
f := subs(pto=(-1.5), fun):
Dibf(f, m):
p[1,2] := plot(secu, title = `z/(z+1.5), inestable`):

# polo en el circulo unidad (p=1), (p=-1)
f := subs(pto=1, fun):
Dibf(f, m):
p[2,1] := plot(secu, title = `z/(z-1), crticamente estable`):
f := subs(pto=(-1), fun):
Dibf(f, m):
p[2,2] := plot(secu, title = `z/(z+1), crticamente estable`):

# polo dentro del circulo unidad (p=0.5), (p=-0.5)
f := subs(pto=0.5, fun):
Dibf(f, m):
p[3,1] := plot(secu, title = `z/(z-0.5), estable`):
f := subs(pto=(-0.5), fun):
Dibf(f, m):
p[3,2] := plot(secu, title = `z/(z+0.5), estable`):

display(p);
end:

Captulo 1: La Transformada Z

- 33 -
> Estab1(z/(z-pto), 10);
















Comportamiento de la inversa de , que tiene un

cero en el origen y dos polos complejos conjugados entre s, a los que damos valores
dentro, fuera, y en el crculo unidad.

NOTA del autor: Utilizamos la representacin trigonomtrica de un nmero
complejo z1: ( ) ) ( ) cos( 1 b sin j b z
a
+ = e , donde
a
e es el mdulo, y b es el argumento
del nmero complejo. En realidad sera cos( b T) y sin( b T) , pero consideramos como
incluido el perodo T.

El conjugado de dicho complejo es ( ) ) ( ) cos( 2 b sin j b z
a
= e

z
+ z
2
2 z ( ) cos b e
a
e
( ) 2 a
Sistemas de Control en Tiempo Discreto

- 34 -
Si tenemos dos polos complejos conjugados ( z- z1) ( z- z2) y operamos en su forma
exponencial, obtenemos el denominador que vamos a utilizar. Ntese que en Maple se
utiliza ' I ' para el nmero complejo 1 que nosotros en este texto llamamos ' j '.
Tambin se denomina como ' i '.

> den := (z-exp(a)*(cos(b)+I*sin(b))) * (z-exp(a)*(cos(b)-I*sin(b))):
simplify(den);


El mdulo del nmero complejo es :

a > 0 implica que el complejo est fuera del crculo unidad.
a = 0 implica que el complejo est en el crculo unidad.
a < 0 implica que el complejo est dentro del crculo unidad .

Representamos la inversa como una funcin continua, uniendo los puntos de la
secuencia, para que se aprecie mejor. Implementamos ahora el procedimiento 'Estab2',
parecido al anterior. En este caso, la funcin antes mencionada tiene un cero en el
origen y dos polos complejos conjugados entre s, a los que damos valores dentro, fuera
y en el crculo unidad. En concreto, los valores son:


Fuera: a = 1, b = , a = 1, b =

En el crculo: a = 0, b = , a = 0, b =

Dentro: a = -1, b = , a = -1, b =

+ z
2
2 z e
a
( ) cos b e
( ) 2 a
e
a

2
Captulo 1: La Transformada Z

- 35 -
> Estab2 := proc(fun, m) local p, f;

# polos fuera del circulo unidad (a=1, b=Pi/2), (a=1, b=Pi/4)
p := array(1..3, 1..2):
f := subs(a=1, b=Pi/2, fun):
Dibf(f, m):
p[1,1] := plot(secu, title = `b=Pi/2, a=1, fuera crculo`):
f := subs(a=1, b=Pi/4, fun):
Dibf(f, m):
p[1,2] := plot(secu, title = `b=Pi/4, a=1, fuera crculo`):

# polos en el circulo unidad (a=0, b=Pi/2), (a=0, b=Pi/4)
f := subs(a=0, b=Pi/2, fun):
Dibf(f, m):
p[2,1] := plot(secu, title = `b=Pi/2, a=0, en crculo unidad`):
f := subs(a=0, b=Pi/4, fun):
Dibf(f, m):
p[2,2] := plot(secu, title = `b=Pi/4, a=0, en crculo unidad`):

# polos dentro del circulo unidad (a=-1, b=Pi/2), (a=-1, b=Pi/4)
f := subs(a=-1, b=Pi/2, fun):
Dibf(f, m):
p[3,1] := plot(secu, title = `b=Pi/2, a=-1, dentro crculo`):
f := subs(a=-1, b=Pi/4, fun):
Dibf(f, m):
p[3,2] := plot(secu, title = `b=Pi/4, a=-1, dentro crculo`):

display(p);
end:

Sistemas de Control en Tiempo Discreto

- 36 -
> Estab2(z/(z^2-2*z*cos(b)*exp(a)+exp(2*a)), 10);


Para el caso b = , los polos tienen parte real cero, es decir, son nmeros
complejos imaginarios puros. Su respuesta en los casos a = 0 y a = 1 son ms
oscilatorias.


Comportamiento de la inversa de , que tiene dos

ceros y dos polos complejos conjugados entre s, a los que damos valores dentro, fuera,
y en el crculo unitario. Esta es la funcin que se le pasa al procedimiento 'Estab3'. Los
valores de a y b que se usan dentro del procedimiento son los mismos que en el caso
anterior.

Representamos la inversa como una funcin continua, uniendo los puntos de la
secuencia, para que se aprecie mejor.


z ( ) z e
a
( ) cos b
+ z
2
2 z ( ) cos b e
a
e
( ) 2 a

2
Captulo 1: La Transformada Z

- 37 -
> Estab3 := proc(fun, m) local p, f;

# polos fuera del circulo unidad (a=1, b=Pi/2), (a=1, b=Pi/4)
p := array(1..3, 1..2):
f := subs(a=1, b=Pi/2, fun):
Dibf(f, m):
p[1,1] := plot(secu, title = `b=Pi/2, a=1, fuera crculo`):
f := subs(a=1, b=Pi/4, fun):
Dibf(f, m):
p[1,2] := plot(secu, title = `b=Pi/4, a=1, fuera crculo`):

# polos en el circulo unidad (a=0, b=Pi/2), (a=0, b=Pi/4)
f := subs(a=0, b=Pi/2, fun):
Dibf(f, m):
p[2,1] := plot(secu, title = `b=Pi/2, a=0, en crculo unidad`):
f := subs(a=0, b=Pi/4, fun):
Dibf(f, m):
p[2,2] := plot(secu, title = `b=Pi/4, a=0, en crculo unidad`):

# polos dentro del circulo unitario (a=-1, b=Pi/2), (a=-1, b=Pi/4)
f := subs(a=-1, b=Pi/2, fun):
Dibf(f, m):
p[3,1] := plot(secu, title = `b=Pi/2, a=-1, dentro crculo`):
f := subs(a=-1, b=Pi/4, fun):
Dibf(f, m):
p[3,2] := plot(secu, title = `b=Pi/4, a=-1, dentro crculo`):

display(p);
end:

Sistemas de Control en Tiempo Discreto

- 38 -
> Estab3( z*(z-exp(a)*cos(b)) / (z^2-2*z*cos(b)*exp(a)+exp(2*a)) , 20);



En los 3 procedimientos que hemos visto, puede apreciarse que la transformada
z inversa tiende a cero cuando el sistema es estable (polos dentro del crculo unidad). La
transformada z inversa es inestable cuando los polos estn fuera del crculo unidad, y
crticamente estable cuando estn sobre dicho crculo unidad.



1.6 EJERCICIOS.

Tal y como se explica en la introduccin de la memoria, en el tutorial de Maple
se incluyen una serie de ejercicios que se han elaborado con la finalidad de que el
alumno compruebe su grado de comprensin sobre el tema tratado. En todos ellos hay
un espacio reservado para que el alumno intente resolverlos por s mismo. Y todos ellos
estn convenientemente resueltos para que se puedan mirar y comparar los resultados.
Para ello, slo hay que abrir el grupo de ejecucin del ejercicio correspondiente.

Captulo 1: La Transformada Z

- 39 -
k T a
( ) ( )

k 1 T
> restart:


1.6.1.- Obtener la transformada z de y de

> ztrans((k*T)^2, k, z);


> simplify(ztrans(k*T*a^((k-1)*T), k, z));



1.6.2.- Obtener la transformada z de


> simplify(ztrans((1/a)*(1-exp(-a*t)), t, z));


T
2
z ( ) + z 1
( ) z 1
3
z ( ) + 1 e
a
a ( ) z 1 ( ) z e
a
1
( ) k T
2
=
( ) x t

1 e
( )

a t
a
T z
( ) + z a
T
2
Sistemas de Control en Tiempo Discreto

- 40 -

1.6.3.- Obtener la transformada z de
k = 0, 1, 2... siendo el periodo de muestreo
2
1
T =

> factor(ztrans(9*k/2*2^((k-1)/2)-2^(k/2)+3, k, z));


1.6.4.- Obtener la transformada z de la siguiente funcin:

Se crea como combinacin de la funcin de Heaviside, y despus se realiza el
clculo de su transformada. 'piecewise' crea la funcin dibujada a partir de sus valores,
y 'convert' la transforma en funcin de Heaviside.

NOTA del autor: A la funcin de Heaviside se la suele llamar escaln unitario, y se
suele notar 1(t).

> convert(piecewise(t<2, 0, t>5, 1, (t-2)/3 ), Heaviside);





5
3
( ) Heaviside t 5
1
3
t ( ) Heaviside t 2
2
3
( ) Heaviside t 2 +
1
3
( ) Heaviside t 5 t
=
( ) x k T
+
9 k T 2
( ) ( )

k 1 T
2
( ) k T
3

1
2
z ( ) + + 11 z 3 4 z
2
10 z 2 2 2
( ) z 1 ( ) + z 2
2
Captulo 1: La Transformada Z

- 41 -
> x := t-> 5/3*Heaviside(t-5) + 1/3*t*Heaviside(t-2) - 2/3*Heaviside(t-2)
- 1/3*Heaviside(t-5)*t:
simplify(ztrans(x(t), t, z));



1.6.5.- Obtener la transformada z inversa de en los instantes

kT.

> combine(invztrans(z/((-z+a)^2), z, k), power);



1.6.6.- Obtener la transformada z inversa de en los instantes

kT.

> subs(k=k*T, invztrans(z*(z+2)/(z-1)^2, z, k));
1 + 3 k T

1
3
+ + z
2
z 1
z
4
( ) z 1
=
( ) X z
z ( )
+
z 2
( )

z 1
2
=
( ) X z
z T
( )

a
T
z
2
T ( ) a
T
k
k a
( ) T
Sistemas de Control en Tiempo Discreto

- 42 -
1.6.7.- Suprimir de las listas l1 y l2 del apartado 1.3 las funciones s i n( wt ) y
cos ( wt ) , y aadir las funciones t
2
y t
3
, comprobando sus transformadas.


> l1:=[1, t, a^t, exp(-a*t), t^2, t^3]:
l2:=[1, k*T, a^(k*T), exp(-a*k*T), (k*T)^2, (k*T)^3]:
array(1..nops(l1)+1, 1..4, [ [`x(t)`, `X(z)`,
`x(kT)`, `X(z)`], seq( [l1[j],
simplify(ztrans(l1[j], t, z), radical),l2[j],
simplify(ztrans(l2[j], k, z))],
j=1..nops(l1) )]);

x(t) X(z) x(kT) X(z)


1
z
z 1
1
z
z 1
t
z
( ) z 1
2
k T
T z
( ) z 1
2
a
t

z
+ z a
a
( ) k T

z
+ z a
T
e
( ) a t

z
+ z e
( ) a
e
( ) a k T z e
( ) a T
z e
( ) a T
1
t
2
z ( ) + z 1
( ) z 1
3
k
2
T
2
T
2
z ( ) + z 1
( ) z 1
3
t
3
z ( ) + + z
2
1 4 z
( ) z 1
4
k
3
T
3
T
3
z ( ) + + z
2
1 4 z
( ) z 1
4
Captulo 1: La Transformada Z

- 43 -
1.6.8.- Realizar un procedimiento que calcule y pinte la inversa de una funcin
determinada para poder estudiar su estabilidad. Decir el nmero de puntos
que se quiere ver.

Semejante a los procedimientos del apartado 1.5.1 (estabilidad), pero este debe valer
para cualquier funcin. Aprovechamos el procedimiento Dibf, ya realizado, hacindole
una pequea modificacin: la variable 'inversa' la definimos como variable global, para
que se pueda utilizar dentro del procedimiento 'Estab'.

> Dibf := proc(f, m)
local i, k;
global secu, inversa;
inversa := simplify(evalf(invztrans(convert(f, parfrac, z), z, k))):
secu := [];
for i from 0 to m do
secu := [op(secu), [i, subs(k=i, inversa)]];
od;
end:

> Estab := proc(f, m)
local p;
p := plot(Dibf(f, m));
print(inversa);
print(p);
end:
Sistemas de Control en Tiempo Discreto

- 44 -
> Estab(z/(z+1.5), 10);
Estab(z/(z^2-2*z*cos(Pi/2)*exp(0)+exp(0)), 15);
Estab(z*(z-exp(-1)*cos(Pi/4)) / (z^2-2*z*cos(Pi/4)*exp(-1)+exp(-2)) ,9);








> Estab(1/z, 5);
Estab(1/(z^2+1), 20);






( ) -1.
k
e
( ) .4054651081 k
( ) sin 1.570796327 k
e
( ) 1. k
( ) cos .7853981634 k
( ) charfcn
1
k ( ) charfcn
0
k 1. ( ) cos 1.570796327 k
Captulo 1: La Transformada Z

- 45 -
1.7 REFERENCIAS.

[REF. 1] R. Aracil Santonja, A. Jimnez Avello,
Sistemas Discretos de Control,
Ctedra de Automtica, 1987

[REF. 2] R.C. Dorf,
Sistemas Modernos de Control. Teora y Prctica,
Addison-Wesley Iberoamericana, 2 edicin, 1989

[REF. 3] K. Ogata,
Discrete-Time Control Systems,
Prentice-Hall, 1987

[REF. 4] K. Ogata,
Ingeniera de Control Moderna,
Prentice-Hall, 1980

[REF. 5] K. Ogata,
Sistemas de Control en Tiempo Discreto,
Prentice-Hall, 2 edicin, 1996

[REF. 6] A.V. Openheim, A.S. Willsky, con la colaboracin de I.T. Young,
Seales y sistemas,
Prentice-Hall, 1994

[REF. 7] C. Torres Blanc,
Aproximacin a la Unificacin de Sistemas Lineales Continuos y Discretos,
Tsis Doctoral, captulo 1: Formas de Discretizacin,
U.P.M., Facultad de Informtica, 2000

También podría gustarte