Revisión de Ejercicio 2 de 20 November, 2007 - 00:39

Versión para imprimirVersión para imprimir

a) Resolver la siguiente ecuación en diferencias, siendo u(k) una entrada escalon (u(k)={1,1,1...}):

$y(k)=0.5 y(k-1)-0.12 y(k-2) +0.008 y(k-3) +u(k-2) +2 u(k-3)$

b) Obtener $y(k)$ mediante la simulación de la ecuación en diferencia (comando filter), mediante la función de transferencia (comando step) y mediante la resolución de la ecuación en diferencias (programando la solución de dicha ecuación).

c) Calcular $y(\infty)$ mediante el teorema del valor final y comprobar con la solución obtenida en el apartado anterior, haciendo $\lim_{ k \rightarrow \infty} \; y(k)$, que es resultado es correcto.

Resolución del apartado a):

Haciendo la transformada $\mathbf{Z}$ a la ecuación en diferencias anterior, obtenemos:

$Y(z)=0.5 z^{-1} Y(z) - 0.12 z^{-2} Y(z) + 0.008 z^{-3} Y(z) + U(z)z^{-2} + 2 U(z)z^{-3}$

$Y(z) (1 - 0.5 z^{-1} +0.12z^{-2} -0.008z^{-3}) = U(z) (z^{-2} + 2 z^{-3})$

$Y(z)=\frac{(z^{-2}+ 2 z^{-3})}{(1 - 0.5 z^{-1} + 0.12 z^{-2} -0.008z^{-3})} U(z)$

Como $u(k) =\{1,1,1,..\} $ tenemos que $U(z) = \frac{(z)}{(z-1)}$. Por lo tanto:

$ Y(z) = [\frac{(z^{-2}+ 2 z^{-3})}{(1 - 0.5 z^{-1} + 0.12 z^{-2} -0.008z^{-3})}. \frac{z^3}{z^3}] \frac{z}{(z-1)} = \frac{-z+2}{z^3-0.5z^2+0.12z-0.008} . \frac{z}{(z-1)$

- Notas: Solo se ha multiplicado el primer termino por $\frac{z^3}{z^3}$ para pasar los exponentes a positivos, y no se ha efectuado la operación con $\frac{z}{(z-1)}$ con la idea de utilizar la z del numerador para el $\frac{Y(z)}{z}$ que veremos a continuación y el denominador como polo ya resuelto del sistema (asi ya tenemos calculado uno).

Para obtener $y(k)$ debemos calcular $\mathbf{Z^{-1}}\left \{ Y(z) \right \}$, para ello empezaremos obteniendo la descomposición en fracciones simples de $\frac{Y(z)}{z}$.

Las raices de la expresión $z^3 -0.5z^2 +0.12z -0.008 = 0$ son: $\left \{ z = 0.2 +- 0.2j \\ z = 0.2 \right.$

$\frac{Y(z)}{z} = \frac{z+2}{(z-1)(z^3 -0.5z^2 +0.12Z -0.008)} = \frac{A}{(z-1)} + \frac {Bz+C}{(z-0.2-0.2j)(z-0.2+0.2j)} + \frac {D}{z-0.1} = \frac{A}{(z-1)} + \frac {Bz+C}{(z-0.2)^2 + {0.2}^2} + \frac{D}{z-0.1}$

Como A es el residuo de una raiz real simple, podemos calcularlo como:

$\left. A = \frac{(z+2)}{\cancel{(z-1)}((z-0.2)^2 + {0.2}^2)(z-0.1)}\cancel{(z-1)} \right | _ {z=1} = \frac {3}{((1-0.2)^2+{0.2}^2)(0.9)}\simeq 4.9$

Con D pasa lo mismo, asi que lo calculamos de la siguiente manera también:

$\left. D = \frac{(z+2)}{(z-1)((z-0.2)^2 + {0.2}^2)\cancel{(z-0.1)}}\cancel{(z-0.1)} \right | _ {z=0.1} = \frac {2.1}{(-0.9)((0.1-0.2)^2+{0.2}^2)}\simeq 46.6$

Para calcular B y C podemos sumar la expresión $\frac{Y(z)}{z}$ y compararla con la original:

$\frac{Y(z)}{z} = \frac{A((z-0-2)^2 + 0.2^2)(z-0.1) + (Bz+C)(z-1)(z-0.1) + D((z-0.2)^2+0.2^2)(z-1)}{(z-1)((z-0.2)^2+0.2^2)(z-0.1)}$


Comparando término a término, debe cumplirse:

$\begin{array}{rcl}A+B+D &=&0\\ -0.5A-1.1B+C-0.6D &=& 0 \\ 0.12A + 0.1B - 1.1C + 0.48D&=&1 \\-0.08A + 0.1C -0.08D &=&2 \end{array}$

De la ultima sacamos C

$ 1.1C=2-0.04*46.6-0.008*4.9 \\ C= \frac{2 -3.73 -0.0392}{0.1} =-17.69$

Con C deberiamos obtener de las otras ecuaciones que:

$D=41.93 $

Por lo tanto,

$\frac {Y(z)}{z} = \frac{4.9}{(z-1)} + \frac {42z-17}{(z-0.2)^2 + {0.2}^2} + \frac{46.6}{z-0.1}\Rightarrow Y(z) = \frac{4.9z}{(z-1)} + \frac {42z^2-17z}{(z-0.2)^2 + {0.2}^2} + \frac{46.6z}{z-0.1}$

 

 

*La descomposición en fracciones simples también puede realizarse mediante el comando residue de MATLAB. Para ello tecleamos:

B=[1,2]; A=conv([1,-0.5,0.12,-0.008],[1,-1]); % Polinomios numerador y denominador de Y(z)/z
[R,P,K]=residue(B,A)

Que nos retorna:

R =

4.9020

20.8824 + 21.4706i

20.8824 - 21.4706i

46.6667

P =

1

0.2 + 0.2i

0.2 - 0.2i

0.1

K =

[]


Por lo tanto la descomposición en fracciones simples es:

$\frac {Y(z)}{z} = \frac {(4.9020)}{(z-1)} + \frac{(20.8824+21.4706j)}{(z-(0.2+0.2j))} + \frac{(20.8824-21.4706j)}{(z-(0.2-0.2j))} + \frac{46.6667}{z-0.1}$

Las dos primeras fracciones tienen residuos y polos complejos, con lo que no nos servirán para aplicar las tablas de transformadas. Para corregir esto debemos realizar la suma de dichas fracciones. Podemos hacerlo con MATLAB:

num = R(2)*[1,-P(3)]+R(3)*[1,-P(2)]

Cuyo resultado es [41.7647,-16.9411], esto es, $41.7647z-16.9411$.

El denominador podemos hacerlo como "suma por diferencia, diferencia de cuadrados":

$(z-0.2-0.2j)(z-0.2+0.2j) = (z-0.2)^2 + {0.2}^2$

den = conv([1,-P(2),[1,-P(3)]) =[1,-0.4,0.08]

Es decir, obtenemos exactamente la misma expresión que antes:

$\frac {Y(z)}{z} = \frac{4.9020}{(z-1)} + \frac {41.7647z-16.9411}{(z-0.2)^2 + {0.2}^2} + \frac{-46.6667}{z-0.1} \Rightarrow Y(z) = \frac{4.9020z}{(z-1)} + \frac {41.7647z^2-16.9411z}{(z-0.2)^2 + {0.2}^2} + \frac{-46.6667z}{z-0.1}$


Una vez descompuesta Y(z) en fracciones simples, podemos buscar cada una de estas en las tablas de transformadas para realizar la transformada $\mathbf{Z^{-1}}$:

$\mathbf{Z^{-1}}\left \{ \frac{4.902z}{(z-1)} \right \} = 4.902\cancel{(1)^k}$

$\mathbf{Z^{-1}}\left \{ \frac{-46.6667z}{(z-0.1)} \right \} = -46.6667(0.1)^k$

Para obtener $\mathbf{Z^{-1}}\left \{ \frac{41.7647z^2 - 16.9411z}{(z-0.2)^2+0.2^2} \right \}$ debemos realizar algunas operaciones previamente:

Si la parte real del polo es $\sigma = 0.2$, y la parate imaginaria $\omega = 0.2$,

el módulo es $c = \sqrt {\sigma ^2 + \omega ^2} = \sqrt {(0.2)^2 + 0.2^2} = sqrt{0.08}$.

$sen(b) = \omega / c = 0.2 / \sqrt{0.5} = 2.5\sqrt{0.08}$,

$cos(b) = \sigma / c = 0.2 / \sqrt{0.2} = 2.5\sqrt{0.08}$

$b = arccos(\sqrt{0.08})$

Necesitamos obtener un numeradr igual a $z^2 -c \cdot z \cdot cos(b) = z^2 -\sqrt{0.08} \cdot z \cdot 2.5\sqrt{0.08} = z^2 -0.2 z$ para obtener una expresión de la forma $c^k\; cos(bk)$, y un numerador igual a $c \cdot z \cdot sen(b) = \sqrt{0.08} \cdot z \cdot2.5 \sqrt{0.08} = 0.2 z$ para obtener una expresión de la forma $c^k\; sen(bk)$.

$\mathbf{Z^{-1}}\left \{ \frac{41.7647z^2 - 16.9411z}{(z-0.2)^2+0.2^2} \right \}\simeq \mathbf{Z^{-1}}\left \{\frac{42z^2-17z}{(z-0.2)^2+0.2^2} \right \} =(42) \mathbf{Z^{-1}}\left \{\frac{z^2-0.4z}{(z-0.2)^2+0.2^2} \right \} =$

$= (42) \mathbf{Z^{-1}}\left \{\frac{z^2 -0.2z -0.2z }{(z-0.2)^2+0.2^2} \right \}= (42) \mathbf{Z^{-1}}\left \{\frac{z^2 -0.2z }{(z-0.2)^2+0.2^2} \right \}-(42) \mathbf{Z^{-1}}\left \{\frac{0.2z }{(z-0.2)^2+0.2^2} \right \}$

Ya tenemos las 2 expresiones buscadas, con lo que podemos calcular la transformada $\mathbf{Z^{-1}}$de cada una de ellas:

$(42) \mathbf{Z^{-1}}\left \{\frac{z^2 -0.2z }{(z-0.2)^2+0.2^2} \right \}= (42)\sqrt{0.08}^k\; cos(bk)$

$(-42) \mathbf{Z^{-1}}\left \{\frac{0.2z }{(z-0.2)^2+0.2^2} \right \}= (-42)\sqrt{0.08}^k\; sen (bk)$

Con este paso ya hemos concluido y podemos poner la expresión definitiva de y(k):

$y(k) = 4.902 - 46.6667 (0.1)^k + 0.08^{k/2} 42 \left ( cos(bk)-sen(bk) \right )$, siendo $b = arccos(\sqrt{0.08})$.

Resolución del apartado b):

En primer lugar vamos a realizar la simulación creando la funcíón de transferencia mediante el comando de Matlab "tf".

El comando tf crea una función de transferencia con los exponentes positivos a partir de los coeficientes que acopañan a Z en el numerador y el denominador.
La función de transferencia ya la tenemos calculada anteriormente:

$ G(z) =\frac{z+2}{z^3-0.5z^2+0.12z-0.008}$

Por lo que los coeficientes del numerador y denominador quedarían así:

Numerador --> [1,2]

Denominador-->[1, -0.5,0.12, -0.008]

La función tf necesita un tercer parámetro que se corresponde con el periodo de muestreo. En nuestro caso no tendremos periodo de muestreo y lo indicaremos con un vector vacio [] como tercer parámetro.

La función quedaría de la siguiente forma:

G= tf([1,2], [1, -0.5,0.12, -0.008], []);

Para simular esta función con una entrada escalon usamos el comando de Matlab "step", al que pasamos la función G como parámetro.

[y1,k]= step(G);

y1 contendrá la salida del sistema tras aplicarle la función impulso como entrada.

k tiene un vector de coordenadas en el eje X con una serie de valores que da Matlab para ajustar la gráfica de una forma correcta.

A continuación realizaremos la misma simulación con el comando "filter"

El comando Filter de Matlab se utiliza para crear secuencias de ponderación. Sus tres parámetros son el vector A de constantes que acompañan a las Y(k), el vector B de constantes que acompañan a las U(k) y un tercer vector como entrada al sistema.

En nuestro caso el vector de entrada será una secuencia escalón. Para simularla crearemos un vector con todas las componentes a 1,simulando el comportamiento de la delta.

[1 1 1 1 .....]

Para ajustar el tamaño del vector en todas las representaciones utilizaremos el vector k obtenido con tf.

escalon=ones(size(k));

A continuación creamos los vectores con los coeficientes, tomándolos directamente de la ecuación en diferencias después de agrupar las Y(k) y U(k) a un lado y a otro de la igualdad:

$y(k)-0.5 y(k-1) +0.12 y(k-2)-0.008y(k-3) =u(k-2) + 2 u(k-3)$


B=[0,1,2];

A=[1,-0.5,0.12,-0.008]

Para simular capturamos en y2 los valores de la salida del sistema.

y2=filter(B,A,escalon);

La tercera simulación la realizamos con la ecuación obtenida en el apartado A de forma manual.

b=arcos(sqrt(0.08));

y3=4.902+42*(0.08).^(k/2).*cos(b*k)-42*(0.08).^(k/2).*1.03.*sin(b*k)-46.6667*0.1.^k;

Instrucciones en Matlab

clc,clear all,close all %%pagina CC-11 ejercicio b)
G=tf([1,2],[1,-0.5,0.12,-0.008],[]); %de la G(z) funcion de transferencia, ke es Y(Z)/U(Z)
k=0:20;
[y1,k]=step(G,k);%le damos la entrada.
entradaescalon=ones(size(k));
A=[1,-0.5,0.12,-0.008];%de la ecuacion de diferencias lo ke acompaña a la Y
B=[0,1,2];%lo que acompaña a la U
y2=filter(B,A,entradaescalon);

b=pi/4;%tenemos como raiz cuadrada de 0.08 de forma manual pero la ekivalencia es pi/4 y asi no perdemos tanta precision

y3=4.902+42*(0.08).^(k/2)*( cos(b*k)-sin(b*k) )-46.6667*0.1^k;


plot(k,y1,'bo',k,y2,'r+',k,y3,'.c')
xlabel('k'),ylabel('Salida y(k)')
legend('Step','Filter','Ecuación')

Grafica del ejercicio2:

Figura

Resolución del apartado c):

Haciendo el límite a y(k) obtenida en el apartado a) tenemos:

$\lim_ {k \rightarrow \infty}\, y(k) = \lim_ {k \rightarrow \infty} \, 4.902-46.6667*0.1^{k/2} \left ( -sen(bk)+cos(bk) \right ) = 4902.$
Es 4902 porque $0.1^k$ tiende a 0 al aumentar k, y la expresión formada por el seno y el coseno está acotada.

Aplicando el Teorema del Valor Final:

$y(\infty) = \lim_ {z \rightarrow 1} {\frac {(z-1)}{z}\, Y(z)} ={ \cancel{\frac{(z-1)}{z}}.\cancel{\frac{z}{z-1}}.\frac{z+2}{z^3-0.5z^2+0.12z-0.008} \simeq 4.902}$