Digital Signals & Z-Transform Chapters 2 PDF
Document Details
Uploaded by ExquisiteBay
UPNA
Tags
Related
- Q2 Topics for MC PDF
- BRS Physiology PDF - Secondary Active Transport
- ECEA108 Finals 4Q2324 - Digital Signal Processing PDF
- Filtri Digitali PDF - Elaborazione Dati e Segnali Biomedici II - 2023-24
- Deja de ser tú (Joe Dispenza): Un viaje a la auto-transformación transforma tu mente (PDF)
- Z-Transform & Inverse Z-Transform PDF
Summary
Chapter 2 of a document on digital signal processing covers difference equations and Z-transform. It explains how discrete signals are described using difference equations, similar to how continuous signals use differential equations. It defines the Z-transform, shows calculations, and illustrates properties. It details different aspects and demonstrates their use in control systems.
Full Transcript
Capı́tulo 2 Ecuaciones en diferencias y Transformada Z Como hemos visto en el capı́tulo 1, la introducción del ordenador en el lazo de control provoca la aparición de señales discretas. Esas señales evolucionan en el tiempo, pero sólo existen en determinados instantes. En los sistemas continuo...
Capı́tulo 2 Ecuaciones en diferencias y Transformada Z Como hemos visto en el capı́tulo 1, la introducción del ordenador en el lazo de control provoca la aparición de señales discretas. Esas señales evolucionan en el tiempo, pero sólo existen en determinados instantes. En los sistemas continuos la evolución temporal se describe mediante ecuaciones diferenciales, como por ejemplo: dy = ay + bu dt que describe la evolución de la señal y(t), conocidos los parámetros a y b y la señal de entrada u(t). La evolución temporal de los sistemas discretos se describe mediante ecuaciones en diferencias. El caso análogo al ejemplo anterior serı́a: yn+1 = αyn + βun que describe la evolución de la secuencia de valores {yk }, conocidos los parámetros α y β y la secuencia de entrada {uk }. El algoritmo de control que debe aplicar el ordenador para generar cada valor de la acción de control es habitualmente una ecuación en diferencias. Por ejemplo, la ecuación ak = 0,7ak−1 + 0,5(ek − ek−1 ) indica que para calcular la acción en un instante dado debemos tener en cuenta, adecuadamente ponderadas, la acción en el instante anterior y la diferencia entre los errores actual y anterior. Las ecuaciones en diferencias se pueden resolver mediante métodos análogos a los que se utilizan para las ecuaciones diferenciales. Sin embargo eso tiene una utilidad limitada en el ámbito del control, porque, como en el caso del ejemplo anterior, difı́cilmente vamos a conocer de antemano los valores de la señal de error. Es más interesante tratar de describir las propiedades del sistema que resolver la ecuación para una señal de error concreta. Para ello, al igual que en control continuo o analógico se utiliza la transformada de Laplace (L), en control digital se emplea la transformada Z (Z). 43 44 CAPÍTULO 2. ECUACIONES EN DIFERENCIAS Y TRANSFORMADA Z 2.1. Transformada Z Dada la secuencia de valores de una señal discreta {fk }, se define su transformada Z 1 como: Z [{fk }] ≡ f (z) f (z) = ∞ X fk z −k z∈C ; k=0 (2.1) La transformada Z está definida como una serie infinita de potencias de la variable compleja z (o z −1 ). En el estudio de los sistemas discretos lineales, habitualmente no es necesario expresar f (z) de esa manera, pues es posible realizar la suma y escribir f (z) como una función racional (un cociente de polinomios) en la variable z. Como ejemplo, podemos calcular la transformada Z de la secuencia: {fk } = 1, a, a2 , a3 , . . . Aplicando la ecuación (2.1), encontramos: f (z) = ∞ X (az −1 )k = 1 + k=0 a a2 + 2 + ··· z z Ası́ pues f (z) es la suma de una serie geométrica de razón r = az −1 . Aplicando la fórmula correspondiente se obtiene: f (z) = 1 z = 1 − az −1 z−a El resultado es una función racional en z, definida para cualquier valor de z, excepto en z = a. Aunque este es sólo un ejemplo, es representativo de lo que vamos a encontrar en general: funciones analı́ticas2 en el plano Z, excepto en un conjunto de singularidades3 . Es importante destacar que la función f (z) que hemos obtenido está definida para todo valor de z salvo z = a, mientras que la serie sólo está definida para los valores de z para los que converge. En nuestro ejemplo, para que se produzca la convergencia la razón de la serie geométrica ha de verificar la condición |r| < 1, por lo que encontramos |az −1 | < 1 −→ |z| > |a| por lo que la serie sólo converge para valores de z situados en el exterior del cı́rculo en el plano Z centrado en el origen y de radio a. El conjunto de valores de la variable z para los cuáles la suma converge se denomina región de convergencia (ROC). Las funciones que vamos a encontrar son racionales, y si el polinomio del denominador tiene sus raı́ces en pi , su ROC es |z| > máx |pi | es decir, el conjunto de puntos del plano Z situados en el exterior del cı́rculo más pequeño posible que esté centrado en el origen y contenga todas las raı́ces pi . 1 Transformada Z unilateral. Sólo tiene en cuenta los valores de la secuencia en instantes no negativos (k > 0). Existe la transformada Z bilateral, pero no la vamos a utilizar, por lo que siempre entenderemos por transformada Z la unilateral. 2 Funciones que pueden expresarse como una serie de potencias convergente. 3 Los puntos del plano Z donde f (z) se haga infinita. 45 2.1. TRANSFORMADA Z Siguiendo el ejemplo anterior encontramos que si a = 1/4 y tomamos z = 1, que pertenece al ROC de nuestra función la serie debe converger y se obtiene la siguiente igualdad: 1+ 1 1 1 1 4 + + + · · · = f (1) = = 4 16 64 1 − 1/4 3 que fue descubierta por Arquı́medes de Siracusa en el siglo III a. C., en su trabajo sobre la cuadratura de la parábola. Sin embargo si tomamos z = 1/8, que no pertenece al ROC, y aplicamos la misma idea encontramos: 1/8 = −1 1 + 2 + 22 + 23 + · · · = f (1) = 1/8 − 1/4 lo que es evidentemente falso. Podemos utilizar las funciones racionales obtenidas como nos sea conveniente, pero no debe perderse de vista que sólo hay relación con la definición (2.1) para valores de z pertenecientes al ROC. Eso se pone de manifiesto, por ejemplo, en el cálculo de valores en régimen permanente (sección 2.1.1) o del efecto de determinados ceros y polos (capı́tulo 10). Un caso particular es el de los sistemas muestreados. En ellos se obtienen secuencias de valores que se corresponden con las muestras de una señal continua en determinados instantes (instantes de muestreo). En tal caso, abusando de la notación, puesto que la transformada Z está definida como una operación sobre secuencias, utilizaremos para denotar la transformada de la secuencia de muestras de la señal continua f (t) la siguiente expresión: Z [f (t)] ≡ Z [{fk }] Una vez conocida la transformada Z de una secuencia determinada, podemos recuperarla utilizando la transformada inversa: fk = 1 2πi I f (z)z k−1 dz (2.2) Γ donde el contorno de integración Γ debe contener todas las singularidades de f (z)z k−1 . 2.1.1. Propiedades Para poder utilizar la transformada Z necesitamos conocer algunas de sus propiedades. Las más importantes son: Linealidad Teoremas de desplazamiento Retraso Adelanto Teorema de valor inicial Teorema de valor final Convolución 46 CAPÍTULO 2. ECUACIONES EN DIFERENCIAS Y TRANSFORMADA Z Linealidad Teorema. Z [{αfk + βgk }] = αZ [{fk }] + βZ [{gk }] = αf (z) + βg(z) (2.3) Demostración. Z [{αfk + βgk }] = ∞ X [αfk + βgk ] z −k k=0 ∞ X =α fk z −k + β k=0 ∞ X gk z −k k=0 = αf (z) + βg(z) Obviamente el ROC de Z [{αfk + βgk }] debe incluir ROCf ∩ROCg , pues está claro que para los valores de z para los que tanto Z [{fk }] como Z [{gk }] converjan también lo hará Z [{αfk + βgk }]. Pero puede haber valores de z para los que alguna de las dos no converja y la combinación sı́ lo haga. Desplazamiento Teorema (Retraso). Z [{fk−n }] = z −n f (z) + f−n + f−n+1 z −1 + · · · + f−1 z −n+1 (2.4) Demostración. Z [{fk−n }] = = ∞ X fk−n z −k k=0 n−1 X fk−n z −k + k=0 = n−1 X ∞ X fk−n z −k k=n fk−n z −k + z −n f (z) k=0 Teorema (Adelanto). Z [{fk+n }] = z n f (z) − z n f0 − z n−1 f1 − · · · − zfn−1 Demostración. Z [{fk+n }] = = ∞ X k=0 ∞ X fk+n z −k fl z −l+n = z n l=n = z n f (z) − z n ∞ X fl z −l l=n n−1 X l=0 fl z −l (2.5) 47 2.1. TRANSFORMADA Z Valor inicial Teorema (del valor inicial). f0 = lı́m f (z) (2.6) z→∞ Demostración. lı́m f (z) = lı́m z→∞ z→∞ ∞ X fk z −k = lı́m lı́m k=0 = lı́m lı́m p→∞ z→∞ p X z→∞ p→∞ p X fk z −k k=0 fk z −k = lı́m f0 p→∞ k=0 = f0 El interés del teorema del valor inicial está en que permite a partir de la transformada Z escrita en forma de cociente de polinomios recuperar el valor buscado, f0 . Para que esto sea posible, además de las condiciones necesarias para el intercambio de los lı́mites4 en la demostración anterior, el valor de z que nos interesa debe pertenecer al ROCf . En este caso no hay problema, puesto que como nos interesa el comportamiento de la serie en el infinito, sea cual sea f (z), ∞ ∈ ROC. Valor final Teorema (del valor final). lı́m fk = lı́m (z − 1)f (z) = lı́m (1 − z −1 )f (z) z→1 k→∞ (2.7) z→1 Demostración. " lı́m (1 − z z→1 −1 )f (z) = lı́m z→1 = lı́m z→1 ∞ X fk z −k k=0 ∞ X k=0 − ∞ X # fk−1 z −k k=0 (fk − fk−1 ) z −k = lı́m lı́m z→1 p→∞ = lı́m lı́m p→∞ z→1 p X (fk − fk−1 ) z −k k=0 p X (fk − fk−1 ) z −k k=0 = lı́m fp = f (∞) p→∞ Al igual que en el caso anterior, el interés del teorema está en que permite a partir de la transformada Z escrita en forma de cociente de polinomios recuperar el valor buscado, f (∞). Para que esto sea posible, además de las condiciones necesarias para el intercambio de los lı́mites en la demostración anterior, el valor de z que nos interesa debe pertenecer al ROC. Si definimos g(z) ≡ (1 − z −1 )f (z), la segunda lı́nea de la demostración indica que lı́m g(z) = lı́m Z [{fk − fk−1 }] z→1 4 La z→1 transformada Z converge uniformemente en el ROC. Ver, por ejemplo, [Allen and Mills, 2004] pág. 559. 48 CAPÍTULO 2. ECUACIONES EN DIFERENCIAS Y TRANSFORMADA Z por lo que la condición necesaria para que podamos utilizar el teorema con una transformada Z escrita en forma cerrada es que z = 1 pertenezca al ROC g . Ası́ pues todos los polos de g(z) deben estar dentro de un cı́rculo centrado en el origen y de radio 1 (cı́rculo unidad abierto: |z| < 1, unit circle, Open Unit Disk, OUD). Realmente la función que nos interesa es f (z), y como el factor z − 1 puede eliminar un polo en z = 1, al trasladar la condición sobre g(z) obtenemos que para poder aplicar el teorema del valor final la función f (z) debe tener todos los polos en el OUD, con la excepción de un único polo en z = 1. Convolución La respuesta de un sistema lineal discreto a una secuencia de entrada viene dada por la convolución de la respuesta impulsional {hk } y la secuencia de entrada (causal) {uk }: yn = ∞ X hk un−k (2.8) k=0 Una forma de calcular la convolución es aplicar el siguiente teorema: Teorema (de la convolución). "( y(z) = Z ∞ X )# hk un−k = h(z)u(z) (2.9) k=0 Demostración. y(z) = = = = = "∞ ∞ X X n=0 k=0 "∞ ∞ X X n=0 ∞ X k=0 ∞ X k=0 ∞ X k=0 # hk un−k z −n # hk un−k z −k z −(n−k) k=0 " hk z hk z −k −k hk z −k ∞ X # un−k z n=0 " ∞ X −(n−k) # ul z −l l=−k ∞ X ul z −l = h(z)u(z) l=0 donde se ha supuesto que si k < 0, uk = 0 (señal causal). 2.1.2. Métodos de cálculo El cálculo de la transformada Z es un paso esencial en el modelado del comportamiento de sistemas discretos o muestreados. Para hacerlo disponemos de las siguientes opciones: 1. Sumar la serie. 2. Buscar en las tablas. 49 2.1. TRANSFORMADA Z 3. Mediante la transformada de Laplace (Método de los resı́duos) (ver, por ejemplo [Ogata, 1995], sección 3.3). Sumar directamente la serie resulta poco operativo salvo para casos concretos (series geométricas o relacionadas con ellas por derivación o integración): Por ejemplo, podemos calcular la transformada Z del escalón unitario: f (z) = 1 + 1z −1 + 1z −2 + 1z −3 + · · · = 1 1 − z −1 Podrı́amos calcular ahora la de la rampa unitaria sabiendo que el escalón es la derivada de la rampa. El uso de las tablas es práctico si la secuencia es muy simple y podemos encontrarla directamente en ellas o si el esfuerzo de de representarla como combinación de elementos que estén en la tabla no es excesivo. En general se requieren los siguientes pasos: Descomposición en factores que aparezcan en la tabla. Localización en la tabla de elementos similares a los factores resultantes. Adaptación de cada factor al prototipo que aparece en la tabla. Recombinación de los factores obtenidos de la tabla. Cada uno de los pasos puede ser relativamente costoso, según la dificultad del caso concreto, y puede ocurrir que aparezca algún factor que no podamos encontrar en la tabla. En general debemos llegar hasta el final pues debemos obtener información sobre los ceros de la transformada Z de la secuencia. Método de los resı́duos El último de los métodos mencionados se basa en considerar que los valores de la señal discreta se obtienen a partir de muestras de una señal continua, y utilizar la transformada de Laplace de dicha señal para deducir mediante cálculo de variable compleja la transformada Z directamente. Por cada polo diferente de la transformada de Laplace de la señal continua se obtiene un factor, y una vez calculada la contribución de cada polo se deben combinar como en el caso de las tablas. Si somos capaces de encontrar una función x(t) que tome los valores de la secuencia {xk } en los instantes apropiados (xk = x(t = kT )), podemos encontrar x(z) utilizando x(s). Esto no supone ninguna dificultad porque en general conoceremos de antemano la función x(t): escalón, rampa, etc. Para obtener la transformada Z debemos emplear la siguiente fórmula (los detalles se pueden encontrar en el apéndice C): x(z) = X polos de x(s) resı́duo de X x(s)z = Ki T s z−e i (2.10) donde Ki es el resı́duo del polo pi , que se calcula con la siguiente expresión: Ki = dni −1 1 ni x(s)z lı́m (s − p ) i (ni − 1)! s→pi dsni −1 z − eT s (2.11) y ni es la multiplicidad de pi . Es fundamental tener en cuenta que para que podamos aplicar la fórmula (2.10) se debe cumplir la siguiente condición: 50 CAPÍTULO 2. ECUACIONES EN DIFERENCIAS Y TRANSFORMADA Z lı́m |s|→∞ , <[s]<0 x(s) = 0 (2.12) Cualquier función racional estrictamente propia5 la cumple, pero no ası́ las señales con retrasos. De acuerdo con eso sólo podremos calcular la transformada Z de la secuencia de valores {xk } obtenidos de la función 1 x(s) = eas s+1 si a > 0. Una consecuencia importante de la expresión (2.11) es que los polos de la transformada Z correspondientes a las muestras de una señal continua x(t) están directamente relacionados con los polos de x(s), pues se demuestra con facilidad que cada polo continuo ps , con multiplicidad n, aporta a x(z) una contribución proporcial a [z−e1T ps ]n . Es decir, que por cada polo continuo aparece un polo discreto en: pz = eT ps (2.13) Ejemplos 1. Supongamos que se desea calcular la transformada Z de la secuencia {xk } = {0, 2, 4, 6, . . .} Claramente los valores de la secuencia siguen la ley xk = 2k, por lo que podemos imaginar que provienen de: a) Una rampa unitaria: x(t) = t. Como xk = x(t = kT ) = kT , tendrı́amos que tomar T = 2. b) Una rampa de pendiente 2: x(t) = 2t. Como xk = 2kT , tendrı́amos que tomar T = 1. c) Cualquiera de las anteriores mas una señal que se anule en los instantes de muestreo, por ejemplo x(t) = t + sin(ωN t) El resultado debe ser el mismo independientemente de la función que se elija porque la transformada Z sólo depende del valor de las muestras. Escogiendo la primera opción tenemos x(s) = 1/s2 −→ p1 = 0, n1 = 2, por lo que de acuerdo con las fórmulas anteriores encontramos que la contribución (K0 ) del polo en el origen es: d 2z 2 x(s)z K0 = lı́m s = 2s s→0 ds z−e (z − 1)2 y como no hay más polos distintos, tenemos que x(z) = K0 = 2z (z − 1)2 Podemos verificarlo utilizando Scilab y la librerı́a LTI: s = %s; Tm = 2 ; // Definimos la variable de Laplace // Periodo de muestreo // Definimos la se~ n al xs = l t i s y s t e m ( 1 / s ˆ 2 ) // Calculamos la transformada xz = l t i z T r a n s f o r m ( xs , Tm) // xz = 2z/(z -1)^2 5 Que tenga más polos que ceros. 51 2.1. TRANSFORMADA Z // verificamos , calculando la inversa xk = l t i i n v Z e t a ( xz , 5 ) // xk = 2. Calcular Z [{fk }], dada la señal continua f (s) = 0. 2. 4. 6. 8. 3s+1 s(s2 +2s+5) Como la función no está en las tablas podemos descomponer en fracciones simples o utilizar el método de los resı́duos. El primer paso es obtener los polos, para después calcular su contribución. En este caso los polos están en: p1 = 0 p2 = −1 + 2i = −ξωn + iωd p3 = −1 − 2i La contribución del primer polo la calculamos directamente (podrı́amos hacerlo utilizando la ecuación (D.1), pero no merece la pena): K0 = lı́m sf (s) s→0 0,2z z = T s z−e z−1 La contribución de cada uno de los polos complejos podrı́amos calcularla de la misma manera, pues son polos simples. Hacerlo es un buen ejercicio para practicar con números complejos. En este caso vamos a utilizar la ecuación (D.7). Según se detalla en las sección D.4, debemos generar la función ĥ(s) eliminando de f (s) la pareja de polos complejos conjugados. En este caso tenemos: ĥ(s) = 3s + 1 s Evaluando esa función en el polo complejo con parte imaginaria positiva (p2 ) encontramos: ĥ(p2 ) = −2 + 6i 14 − 2i = −1 + 2i 5 Ahora debemos calcular el módulo y la fase del resultado (ĥ(p2 ) = Heiφ ). Pasando ĥ(p2 ) a forma polar encontramos que H = 2,8284 y φ = −0,1419. Substituyendo esos valores en la ecuación (D.7), se obtiene: Kpp∗ 2,8284 z −0,1414z − e−T sin(−0,1419 − 2T ) = 2 z 2 − 2e−T cos(2T )z + e−2T Finalmente, sumando la contribución de todos los polos encontramos la transformada Z buscada: z 0,2(1 − 2e−T cos(2T ))z + 1, 4142e−T sin(0,1419 + 2T )(z − 1) + 0,2e−2T f (z) = K0 +Kpp∗ = (z − 1) (z 2 − 2e−T cos(2T )z + e−2T ) Particularizando para T = 1 encontramos: f (z) = z3 0,6989z 2 − 0,4106z − 0,6938z 2 − 0,1708z − 0,1353 Podemos comprobar la solución utilizando Scilab y la librerı́a LTI: (2.14) 52 CAPÍTULO 2. ECUACIONES EN DIFERENCIAS Y TRANSFORMADA Z s = %s; Tm = 1 ; // Definimos la variable de Laplace // Periodo de muestreo // Definimos la se~ n al xs = l t i s y s t e m ( ( 3 * s +1)/ s / ( s ˆ2+2 * s +5)) // Calculamos la transformada xz = l t i z T r a n s f o r m ( xs , Tm) // Por defecto se representa la se~ n al en formato ’zpk ’ // Mostrarla como cociente de polinomios xz . d i s p = ’ t f ’ 2.2. Transformada inversa Aunque las técnicas de análisis y diseño de controladores se aplican directamente en el plano Z, en ocasiones es necesario obtener la secuencia de valores asociada a una transformada Z expresada en forma cerrada. El objetivo es por tanto obtener la secuencia {fk } = Z −1 [f (z)] Para ello contamos con la definición de la transformada Z dada por la ecuación (2.1) y con la relación (2.2), que se reproduce a continuación: 1 fk = 2πi 2.2.1. I f (z)z k−1 dz (2.15) Γ Métodos de cálculo Se utilizan habitualmente los siguientes métodos: 1. División directa: Si f (z) está expresada en forma racional, dividiendo el polinomio del numerador por el del denominador encontramos x(z) como desarrollo en serie de potencias de z −1 , por lo que teniendo en cuenta la definición de la transformada Z podemos identificar los coeficientes de las distintas potencias con los valores buscados {fk }. Se utiliza si se desean obtener únicamente los primeros términos de la secuencia. 2. Método computacional: Se trata de resolver iterativemente una ecuación en diferencias. Al igual que en el caso anterior para obtener el valor fk hemos de obtener previamente los anteriores. La diferencia está en que este método es muy sencillo de implementar en un programa de ordenador. 3. Descomposición en fracciones simples: Si f (z) racional, se descompone y después se busca cada término en las tablas. 4. Método de la integral de inversión (método de los residuos): Al igual que para el cálculo de la transformada directa, podemos utilizar el teorema de los resı́duos para resolver la ecuación (2.2) (ver, por ejemplo [Ogata, 1995], sección 2.5) En los dos últimos casos obtenemos expresiones generales, que nos permiten conocer el valor de fk directamente, sin tener que calcular los valores previos. 53 2.2. TRANSFORMADA INVERSA Descomposición en fracciones simples Se trata de descomponer la transformada Z en elementos que aparecen en la tabla. Se puede hacer un desarrollo en fracciones simples como el que se hace para calcular la transformada inversa de Laplace, pero conviene observar que en la tabla de transformadas aparece siempre un factor z en el numerador de cada expresión. Por ello es conveniente proceder de la siguiente manera: Descomponer en fracciones simples f (z)/z Calcular los coeficientos de los distintos factores de la descomposición. Multiplicar el resultado obtenido por z para obtener la descomposición de f (z) Buscar los factores en la tabla Es conveniente recordar las condiciones para hacer el desarrollo (polos múltiples, complejos conjugados) (véase, por ejemplo, [Franklin et al., 2014]). Método de los resı́duos Calculamos el valor fk utilizando la expresión: fk = Ki = 1 2πi I f (z)z k−1 dz = C m X Ki i=1 dni −1 1 lı́m (z − pi )ni f (z)z k−1 n −1 i (ni − 1)! z→pi dz donde m es el número de polos distintos de f (z)z k−1 pi es cada uno de los polos distintos de f (z)z k−1 ni es la multiplicidad del polo pi Es preciso tener en cuenta que dependiendo del valor de k el número de polos puede cambiar, apareciendo más o menos polos en el origen. Es importante determinar a partir de qué valor de k el número de polos no varı́a y el método nos da una fórmula general. Para valores de k inferiores se puede aplicar también el método, pero resulta poco práctico pues hay que repetir el cálculo de los resı́duos para cada k, que se complica por la aparición de polos múltiples en el origen. Suele ser más cómodo obtener esos primeros valores utilizando el método de división o el computacional, lo que permite además comprobar la fórmula general obtenida por el método de los resı́duos. 2.2.2. Ejemplo: polos reales Como ejemplo se va a calcular Z −1 [f (z)], para la función f (z) = utilizando los cuatro métodos presentados. 10z (z − 1)(z − 2) 54 CAPÍTULO 2. ECUACIONES EN DIFERENCIAS Y TRANSFORMADA Z 1. División directa: Puesto que en la definición de la transformada Z aparecen potencias de la variable z −1 , la forma más conveniente de plantear el problema es dividir por z 2 el numerador y el denominador de la función (hay que dividir por z elevado al grado del polinomio del denominador). f (z) = z −1 10z = 10 (z − 1)(z − 2) 1 − 3z −1 + 2z −2 Ahora debemos dividir numerador entre denominador. En cada paso de la división obtendremos un factor de la transformada Z por lo que deberemos continuar hasta conseguir el número de valores deseado. f (z) = 10 z −1 = 10z −1 + 30z −2 + 70z −3 + · · · 1 − 3z −1 + 2z −2 Comparando con la expresión f (z) = f0 + f1 z −1 + f2 z −2 + · · · , encontramos que los primeros elementos de la secuencia buscada son: {fk } = {0, 10, 30, 70, . . .} Podemos comprobarlo utilizando Scilab y la librerı́a LTI: z = %z; Tm = 1 ; // Definimos la variable ’z’ // Periodo de muestreo // Definimos la se~ n al xz = l t i s y s t e m ( 1 0 * z / ( z = 1)/( z = 2) , Tm) // calculamos la inversa xk = l t i i n v Z e t a ( xz , 5 ) // xk = 0. 10. 30. 70. 150. 2. Descomposición en fracciones simples: Según lo comentado dividimos por z antes de hacer la descomposición (y ya puestos también dividimos por 10, para que las cuentas sean más sencillas) f (z) 1 A B = ≡ + 10z (z − 1)(z − 2) z−1 z−2 Los coeficientes de la descomposición son A = −1, B = 1. f (z) = 10 z z − z−2 z−1 Consultando la tabla B encontramos el segundo de los factores directamente. El más parecido al primer factor es z z − epT luego tenemos que exigir que se cumpla la condición epT = 2 la secuencia correspondiente en la tabla es epkT θ(kT ) = epT k θ(kT ) = 2k θ(kT ) 55 2.2. TRANSFORMADA INVERSA Uniendo los dos factores llegamos a fk = 10(2k − 1)θk donde θk son las valores del escalón unitario discreto, que garantiza que fk = 0 si k < 0. Si damos a k los valores apropiados obtenemos la secuencia calculada por el método de la división. 3. Método computacional: La idea del método computacional es obtener una ecuación en diferencias que permita calcular iterativamente la secuencia de valores. Para el caso del ejemplo: f (z) = 10 1− z −1 + 2z −2 3z −1 Multiplicando por el denominador de f (z) ambos miembros de la ecuación se obtiene: (1 − 3z −1 + 2z −2 )f (z) = 10z −1 Teniendo en cuenta que la transformada Z del impulso unitario es δ(z) = 1, podemos escribir la ecuación como: (1 − 3z −1 + 2z −2 )f (z) = 10z −1 δ(z) (2.16) Como ambos miembros de la ecuación son iguales, sus tranformadas inversas también lo son: Z −1 (1 − 3z −1 + 2z −2 )f (z) = Z −1 10z −1 δ(z) Por la propiedad de linealidad tenemos que la ecuación anterior es equivalente a: Z −1 [f (z)] − 3Z −1 z −1 f (z) + 2Z −1 z −2 f (z) = 10Z −1 z −1 δ(z) Ahora se manifiesta la razón de haber expresado f (z) en función de la variable z −1 , al igual que se hizo para el método de la división: considerando que las condiciones iniciales son nulas (k < 0 −→ uk = yk = 0) se puede aplicar con facilidad el teorema de retraso, dado por la ecuación (2.4). {fk } − 3{fk−1 } + 2{fk−2 } = 10{δk−1 } donde {δk } es la secuencia de valores del impulso unitario. La ecuación anterior conduce a: {fk − 3fk−1 + 2fk−2 } = {10δk−1 } Puesto que ambas secuencias son iguales, todos sus elementos lo son, por lo que escribiendo uno genérico llegamos a: fk − 3fk−1 + 2fk−2 = 10δk−1 −→ fk = 3fk−1 − 2fk−2 + 10δk−1 Esta es la ecuación en diferencias que nos permite calcular los valores de fk . Obsérvese que a diferencia de la transformada directa, la inversa no es unı́voca, puesto que cualquier conjunto de secuencias que se diferencien únicamente en sus valores para k < 0 van a producir la misma transformada Z. Por eso sólo se trata de recuperar los valores de la secuencia para k > 0. Eso nos indica que, como se mostrará más adelante, el resultado no puede depender de las condiciones iniciales, lo que justifica la utilización de condiones iniciales nulas, que resultan más convenientes. 56 CAPÍTULO 2. ECUACIONES EN DIFERENCIAS Y TRANSFORMADA Z Dando valores a k obtenemos la secuencia calculada por el método de la división: k = 0 −→ f0 = 3f−1 − 2f−2 + 10δ−1 = 0 − 0 + 0 = 0 k = 1 −→ f1 = 3f0 − 2f−1 + 10δ0 = 0 − 0 + 10 = 10 k = 2 −→ f2 = 3f1 − 2f0 + 10δ1 = 30 − 0 + 0 = 30 k = 3 −→ f3 = 3f2 − 2f1 + 10δ2 = 90 − 20 + 0 = 70 Como se ha indicado, no es necesario suponer condiciones iniciales nulas. Si se aplica rigurosamente el teorema de retraso, el resultado es más complicado y difı́cil de aplicar, pero pone de manifiesto que los valores que se obtienen no dependen de las condiciones iniciales. Para comprobarlo podemos retroceder a la ecuación (2.16) y tener esta vez en cuenta condiciones iniciales no nulas: f (z) − 3 z −1 f (z) + f−1 − f−1 + 2 z −2 f (z) + f−2 + f−1 z −1 − f−2 − f−1 z −1 = 10z −1 δ(z) Ahora, al hacer la transformada inversa encontramos: fk − 3fk−1 + 3f−1 δk + 2fk−2 − 2f−2 δk − 2f−1 δk−1 = 10δk−1 Despejando: fk = 3fk−1 − 3f−1 δk − 2fk−2 + 2f−2 δk + 2f−1 δk−1 + 10δk−1 De ahı́: k = 0 −→ f0 = 3f−1 − 3f−1 δ0 − 2f−2 + 2f−2 δ0 + 2f−1 δ−1 + 10δ−1 = 0 k = 1 −→ f1 = 3f0 − 3f−1 δ1 − 2f−1 + 2f−2 δ1 + 2f−1 δ0 + 10δ0 = 10 k = 2 −→ f2 = 3f1 − 3f−1 δ2 − 2f0 + 2f−2 δ2 + 2f−1 δ1 + 10δ1 = 30 Y obtenemos la misma secuencia, sean cuales sean las condiciones iniciales. En general, si la función es: Pm −i i=0 bi z P f (z) = n 1 − j=1 aj z −j La ecuación en diferencias calculada teniendo en cuenta las condiciones iniciales resulta ser: fk = n X j=1 aj fk−j − n X j=k+1 aj fk−j + m X bi δk−i i=0 Es inmediato comprobar que el segundo sumando, que es 0 si k > n, se encarga de eliminar las contribuciones del primero debidas a condiciones iniciales, por lo que como hemos visto en el ejemplo el resultado es independiente de ellas y podemos considerarlas nulas, lo que simplifica el procedimiento. 4. Resı́duos: Las contribuciones de los polos son: K1 = lı́m (z − 1)f (z)z k−1 = −10 z→1 K2 = lı́m (z − 2)f (z)z k−1 = 10 × 2k z→2 Por lo que la secuencia buscada es {fk } = {K1 + K2 } = {10(2k − 1)θk } 57 2.2. TRANSFORMADA INVERSA 2.2.3. Ejemplo: polos complejos Calcular la transformada inversa por el método de los resı́duos de la función: f (z) = 10z (z − 1)(z 2 − z + 1) El primer paso es obtener los polos, para después calcular su contribución. Debemos recordar que los polos que nos interesan no son los de f (z), sino los de: f (z)z k−1 = 10z k (z − 1)(z 2 − z + 1) Vemos que para cualquier k > 0 hay tres polos, localizados en: p1 = 1 p2 = p3 = √ 1+ 3i 2 √ 1− 3i 2 La contribución del primer polo la calculamos directamente: 10z k = 10 z→1 z 2 − z + 1 K1 = lı́m (z − 1)f (z)z k−1 = lı́m z→1 La contribución de cada uno de los polos complejos podrı́amos calcularla de la misma manera, pues son polos simples. Hacerlo es un buen ejercicio para practicar con números complejos. En este caso vamos a utilizar la ecuación6 : Kpp∗ = H k−1 R sin([k − 1]α + φ) =[p] (2.17) donde R y α son el módulo y la fase del polo complejo con parte imaginaria positiva, y H y φ son el módulo y la fase de la función que se obtiene al eliminar la pareja de polos complejos, evaluada en el polo con parte imaginaria positiva. =[p] es la parte imaginaria de ese polo. En nuestro ejemplo tenemos: √ p = p2 −→ =[p] = 23 r √ 2 3 1 2 R= + = 1, α = 2 2 h(z) = 10z z−1 π 3 √ √ 1+ √3i −→ h(p) = 10 −1+ = 10 1−2 3i 3i = 10p∗ H = 10, φ = −α = − π3 Aplicando la fórmula (2.17) encontramos: 10 π π Kpp∗ = √ sin [k − 1] − 3 3 3/2 Finalmente, sumando la contribución de todos los polos encontramos: 6 La demostración es análoga a la de la fórmula (D.7). 58 CAPÍTULO 2. ECUACIONES EN DIFERENCIAS Y TRANSFORMADA Z fk = K1 + Kpp∗ π 2π π 2 20 θk θk = 10 1 − √ sin [k + 1] = 10 + √ sin k − 3 3 3 3 3 (2.18) Podemos comprobarlo utilizando Scilab y la librerı́a LTI: z = %z; Tm = 1 ; // Definimos la variable ’z’ // Periodo de muestreo // Definimos la se~ n al xz = l t i s y s t e m ( 1 0 * z / ( z = 1)/( zˆ2= z +1) , Tm) // calculamos la inversa xk = l t i i n v Z e t a ( xz , 7 ) // xk = 0. 0. 10. 20. 20. 10. 0. // comprobamos la solución analı́tica k = 0 : 6; // vector con los 7 primeros instantes de muestreo yk = 10 * (1 = 2/ s q r t ( 3 ) * s i n ( ( k+1) * %pi / 3 ) ) ; norm ( xk=yk ) // 9.252D -15 Si se resuelve el problema calculando la contribución de cada polo complejo se obtiene: fk = 10 1 + pk3 pk2 + θk (p2 − 1)(p2 − p3 ) (p3 − 1)(p3 − p2 ) No es immediato comprobar analı́ticamente que el resultado coincide con la ecuación (2.18), pero cuesta poco hacerlo con Scilab: z = %z; Tm = 1 ; // Definimos la variable ’z’ // Periodo de muestreo // Definimos la se~ n al xz = l t i s y s t e m ( 1 0 * z / ( z = 1)/( zˆ2= z +1) , Tm) // calculamos la inversa xk = l t i i n v Z e t a ( xz , 7 ) // xk = 0. 0. 10. 20. 20. 10. 0. // comprobamos la solución analı́tica k = 0 : 6; // vector con los 7 primeros instantes de muestreo p2 = (1+ s q r t ( 3 ) * %i ) / 2 ; // polo complejo p3 = c o n j ( p2 ) ; // su conjugado yk = 10 * (1+ p2ˆk / ( p2 = 1)/( p2=p3 ) + p3ˆk / ( p3 = 1)/( p3=p2 ) ) ; norm ( xk=yk ) // 8.123D -15 2.3. Transformada Z modificada∗ Aunque la transformada Z es la herramienta fundamental que se va a utilizar en control digital, hay un conjunto de sistemas que no permite tratar adecuadamente de manera directa7 . Se trata de aquellos sistemas con retraso, en los cuales la respuesta a una señal de entrada no se produce 7 No se van a poder emplear las tablas de transformadas. 2.3. TRANSFORMADA Z MODIFICADA∗ 59 hasta pasado un cierto tiempo. Si un sistema lineal continuo F (s) tiene un retraso de λ unidades de tiempo, se representa mediante un modelo como: F (s) = e−λs G(s) donde G(s) es una función de transferencia racional. En algunos casos es posible escoger el periodo de muestreo de manera que el retraso sea un número entero de periodos de muestreo. Si es ası́, el tratamiento de esos sistemas no reviste mayor dificultad porque lo único que debemos hacer es aplicar el teorema de retraso. Sin embargo eso no siempre es posible o conveniente, por lo que se introdujo el concepto de transformada Z modificada (ver, por ejemplo [Barker, 1952] o [Bergen, 1954]). Como veremos esta idea nos va a permitir, además de modelar los sistemas con retraso, encontrar una forma simple de calcular lo que ocurre en nuestros sistemas de control digital en instantes que no sean los de muestreo. Se suele representar el retraso descomponiéndolo en la suma de un número entero de periodos de muestreo y una fracción de periodo de muestreo de adelanto: λ = (l − m)T (2.19) donde l = dλ/T e es el número entero inmediatamente superior a λ/T y 0 6 m < 1. Asi podemos escribir la señal anterior como: F (s) = e−lT s emT s G(s) El primer factor no genera ninguna dificultad, pues equivaldrá a un factor z −l en la transformada de la señal F (s). Para poder manejar el otro necesitamos definir la transformada Z modificada. Su necesidad se puede ilustrar a través del siguiente ejemplo: Ejercicio 2.1 Calcular la transformada Z de las muestras obtenidas con T = 1,5 a partir de la señal continua: 1 f (s) = e−3,6s 2 s La señal f (t) es una rampa unitaria retrasada. Podemos escribir su transformada Z a partir de la definición, pero no encontrar una expresión compacta porque: 1. No está en la tabla ni se puede descomponer en factores que sı́ lo estén. 2. No se cumple la condición (2.12) para poder aplicar el teorema de los resı́duos, ya que lı́m |s|→∞ , <[s]<0 e−3,6s 1 =∞ s2 al menos para valores de s en el eje real. Para resolver la primera cuestión se introduce la transformada Z modificada. La tabla correspondiente puede encontrarse en el apéndice B. También es posible atacar la segunda, como se muestra en la sección 2.3.2. 2.3.1. Definición y propiedades Conceptualmente la transformada modificada no tiene mayor complicación. Se trata simplemente de la transformada Z de la señal retrasada una fracción de periodo de muestreo. Si el 60 CAPÍTULO 2. ECUACIONES EN DIFERENCIAS Y TRANSFORMADA Z retraso es de λ < T unidades de tiempo podemos definir la función g(t) = f (t − λ) y la transformada Z modificada de la señal f (t) no es otra cosa que la transformada Z correspondiente a la señal g(t): Z [f (t − λ)] = Z e−λs f (s) = Z [g(t)] (2.20) Acudiendo a la definición de la transformada Z encontramos: Z [g(t)] = ∞ X gk z −k = k=0 ∞ X k=0 f (kT − λ) z −k con 0<λ<T (2.21) Aunque podrı́a trabajarse perfectamente con esa formulación, se utiliza una distinta, que aparece al escribir el retraso de acuerdo con la ecuación (2.19). En este caso, como consideramos λ < T resulta l = 1 y por lo tanto: λ = (1 − m)T Esta ecuación indica que el retraso de una fracción de periodo de muestreo de la señal (λ < T ) se puede interpretar como la combinación de un retraso de un periodo entero y un adelanto de mT unidades de tiempo. La fracción de periodo de muestreo de adelanto (m) es el parámetro que se utiliza en la transformada Z modificada, que se define como: f (z, m) ≡ Z [f (t − λ)] = ∞ X k=0 f (kT − (1 − m)T ) z −k = ∞ X k=0 f ([k − 1]T + mT ) z −k (2.22) En la literatura de control digital se encuentra también la transformada Z adelantada (advanced Z transform). Es importante distinguirlas porque aunque están relacionadas las tablas son distintas. La transformada Z adelantada es la transformada Z de una señal adelantada una fracción m del periodo de muestreo. La denotaremos como fa (z, m). De acuerdo con la definición de la transformada Z se cumple: fa (z, m) ≡ Z [f (t + mT )] = ∞ X k=0 f (kT + mT ) z −k = Z emT s f (s) (2.23) Puesto que f (z, m) y fa (z, m) son transformadas Z de la misma secuencia, retrasada o adelantada un periodo de muestreo, podemos pasar de la una a la otra utilizando los teoremas de retraso o de adelanto. Por ejemplo, podemos calcular la transformada Z de la señal adelantada mT unidades de tiempo utilizando el teorema de adelanto (ecuación 2.5), a partir de la transformada Z modificada: fa (z, m) = zf (z, m) − zf (t = mT − T ) Propiedades 0<m<1 Retraso de (1 − m)T : f (z, m) ≡ Z [f (t − (1 − m)T )] (2.24) 2.3. TRANSFORMADA Z MODIFICADA∗ 61 Adelanto de mT : fa (z, m) ≡ Z [f (t + mT )] = zf (z, m) − zf (t = −(1 − m)T ) Si definimos fkm ≡ f (kT + mT ) f (z, m) = f−1m + f0m z −1 + f1m z −2 + · · · si f (t) es una función continua: lı́mm→1 f (z, m) = f0 + f1 z −1 + f2 z −2 + · · · = f (z) lı́mm→0 zf (z, m) = f−1 z + f0 + f1 z −1 + · · · = f (z) + zf−1 Ejemplo Una vez definida la transformada Z modificada podemos resolver el problema propuesto: calcular la transformada Z de las muestras obtenidas con T = 1,5 de la función f (s) = e−3,6s 1 s2 En primer lugar debemos expresar el retraso en términos del periodo de muestreo: 3,6 3,6 = = 2,4 −→ 3,6 = 2T + 0,4T T 1,5 Ası́ pues, tenemos un retraso de: dos periodos de muestreo enteros −→ z −2 una fracción de periodo de muestreo −→ 0,4T = (1 − m)T −→ m = 0,6 O bien, podemos descomponer el retraso directamente como: 3,6 3,6 = = 2,4 −→ l = 3 −→ m = l − 3,6/T = 3 − 2,4 = 0,6 T 1,5 Una vez obtenido el valor del parámetro m, acudiendo a la tabla B.2 encontramos que para la rampa unitaria la transformada Z modificada es f (z; m) = T mT + z − 1 (z − 1)2 Substituyendo el valor de m y teniendo en cuenta los dos periodos de muestreo de retraso llegamos a: f (z) = z −2 f (z; 0,6) = z −3 1,5z 0,9z + z − 1 (z − 1)2 Por lo que podemos ver la secuencia discreta como una combinación de escalón y rampa retrasados. Utilizando Scilab podemos comprobar ese resultado: 62 CAPÍTULO 2. ECUACIONES EN DIFERENCIAS Y TRANSFORMADA Z s = %s; Tm = 1 . 5 ; // Definimos la variable de Laplace // Periodo de muestreo // Definimos la se~ n al xs = l t i s y s t e m ( 1 / s ˆ 2 ) r = 3.6; // r = r /Tm; // re = f l o o r ( r ) ; // rd = r = r e ; // m = 1 = rd ; // retraso (en unidades de tiempo ) retraso (en unidades de Tm) (2.4) parte entera (2) parte decimal (0.4) 0.6 // Calculamos la transformada modificada xz = z ˆ( = r e ) * l t i z T r a n s f o r m ( xs , Tm, m) // xz = (0.6 + 0.9z)/z^2/(z -1)^2 // verificamos , calculando la inversa xk = l t i i n v Z e t a ( xz , 6 ) // xk = 2.3.2. 0. 0. 0. 0.9 2.4 3.9 Cálculo por el método de los resı́duos Como ya se ha mencionado no se puede utilizar el método directamente. Si lo intentamos, obtendrı́amos d z 1,5z 3,6z f (z) = lı́m s2 f (s) + =− s→0 ds z − eT s z − 1 (z − 1)2 resultado que no coincide con lo calculado a través de la tabla (y es claramente erróneo pues si hacemos la transformada inversa por el método de la división el primer valor que se obtiene es −3,6 en lugar de 0, que es lo que le corresponde a una señal retrasada). El problema es que no es posible aplicar el método de los residuos porque existen valores de s que hacen que el exponente tienda a infinito. Si, por ejemplo escogemos s = −r, con r real y positivo (la condición (2.12) se debe cumplir para valores de s con parte real negativa) tendrı́amos f (−r) = e−3,6(−r) 1 1 = e3,6r 2 (−r)2 r y si calculamos el lı́mite encontramos: lı́m |s|→∞ , <[s]<0 e−3,6s 1 1 = lı́m e3,6r 2 = ∞ 2 r→∞ s r El problema se debe a que se trata de una señal retrasada, ya que si el exponente tuviera el signo opuesto, el lı́mite anterior hubiera sido nulo. Esa observación sugiere que podemos aplicar el método si previamente adelantamos la señal. Ese adelanto habrá que eliminarlo después, pero eso es sencillo si es un múltiplo del periodo de muestreo. El procedimiento es simple. El retraso de la señal es de 2,4T . Si la adelantamos 3T obtenemos: g(s) = e3T s f (s) = e(4,5−3,6)s 1 1 = e0,9s 2 s2 s Como el signo del exponente es positivo, se cumple la condición para aplicar el método de los resı́duos. Haciéndolo encontramos que: d z 0,9z 1,5z 2 g(z) = lı́m s g(s) = + s→0 ds z − eT s z − 1 (z − 1)2 2.3. TRANSFORMADA Z MODIFICADA∗ 63 Como g(z) es la transformada Z de la señal adelantada 3 periodos de muestreo, aplicando el teorema de retraso se deduce que: 1,5z 0,9z f (z) = z −3 g(z) = z −3 + z − 1 (z − 1)2 que naturalmente coincide con el obtenido aplicando la tabla. 2.3.3. Comportamiento entre instantes de muestreo Supongamos que se desea calcular las muestras de la respuesta del sistema G(s) = 1 s+1 ante una entrada escalón unitaria tomadas cada T unidades de tiempo. Bastarı́a con buscar en la tabla de transformadas Z la correspondiente a la señal: y(s) = G(s) 1 1 z(1 − e−T ) = −→ y(z) = s s(s + 1) (z − 1)(z − e−T ) Si escogemos el periodo de muestreo de manera que e−T = 0,5 la transformada de la señal serı́a: y(z) = 0,5z (z − 1)(z − 0,5) y para obtener las muestras bastarı́a con aplicar alguno de los métodos de inversión de la transformada Z yk = (1 − 0,5k )θk La expresión anterior nos proporciona los valores de la respuesta en los instantes de muestreo: {yk } = {0., 0.5, 0.75, 0.875, 0.9375, 0.9687, . . . } Al diseñar un sistema de control digital, vamos a poder calcular qué le ocurre a la respuesta del sistema en los momentos en que se muestrea, pero se pierde información de qué hace la señal continua de salida el resto del tiempo. Eso puede ser muy importante, pues si la señal cambia deprisa entre instantes de muestreo pueden ocurrir fenómenos que no podemos observar con la información disponible. Una forma de recuperar esa información es utilizar la transformada Z modificada. Siguiendo con nuestro ejemplo, podrı́amos intentar calcular cuánto vale la salida del sistema en los instantes tk = (k + 0,2)T . Para ello bastarı́a con calcular la transformada Z de la señal adelantada 0,2T . Como el adelanto es de una fracción del periodo de muestreo debemos utilizar la fórmula (2.24): ya (z, m) = zy(z, m) − zy(t = −T + mT ) = zy(z; 0,2) − 0 La tabla que hay que consultar ahora es la de la transformada modificada, y para la señal que nos interesa se encuentra que: y(s) = 1 1 e−mT −→ y(z, m) = − s(s + 1) z − 1 z − e−T por lo que substituyendo en la ecuación anterior llegamos a: 64 CAPÍTULO 2. ECUACIONES EN DIFERENCIAS Y TRANSFORMADA Z ya (z, m) = zy(z; 0,2) = 1/5 z e−T z z ze−T /5 = − − z − 1 z − e−T z−1 z − 0,5 Los valores deseados se obtienen calculando la transformada inversa: i h p ya,k = 1 − 5 0,5(0,5)k θk = 1 − 0,8706 × 0,5k θk Dando valores a k obtenemos: {ya,k } = {0.1295, 0.5647, 0.7824, 0.8912, 0.9456, 0.9728, . . . } Los valores calculados se representan gráficamente en la figura 2.1. 1 señal continua {yk } {ya,k } 0,5 0 0 T 2T 3T 4T Figura 2.1: Respuesta entre instantes de muestreo Dando distintos valores a m podrı́amos obtener tantos puntos intermedios como se deseasen. Podemos verificarlo con Scilab: s = %s; z = %z; Tm = = l o g ( 0 . 5 ) ; // Periodo de muestreo // Sistema continuo Gs = l t i s y s t e m ( 1 / ( s +1)) ys = Gs/ s // Respuesta a escalón yz = l t i z T r a n s f o r m ( ys , Tm ) ; yk = l t i i n v Z e t a ( yz , 6 ) // Muestras // queremos se~ n al adelantada m*Tm m = 0.2; // Transformada Z de la se~ n al retrasada y z r e t = l t i z T r a n s f o r m ( ys , Tm, m ) ; y0 = 0 ; // La se~ n al retrasada vale 0 en k = 0 // Transformada Z de la se~ n al adelantada yza = z * ( y z r e t = y0 ) ; // verificamos , calculando la inversa yka = l t i i n v Z e t a ( yza , 6 ) // yka = 0.1295; 0.5647; 0.7824; 0.8912; 0.9456; 0.9728; // otro valor de m m = 0.4; y z r e t = l t i z T r a n s f o r m ( ys , Tm, m ) ; // Transformada Z de la se~ n al adelantada yzb = z * ( y z r e t = y0 ) ; ykb = l t i i n v Z e t a ( yzb , 6 ) // Representar resultados l t i s t e p P l o t ( Gs , 6 *Tm ) 65 2.4. EJERCICIOS Y CUESTIONES Tm : 5 * Tm; + 0 . 2 * Tm; + 0 . 4 * Tm; yk , ’ ko ’ , tka , yka , ’ bo ’ , tkb , ykb , ’ r o ’ ) tk = 0 : tka = tk tkb = tk p l o t ( tk , 2.4. Ejercicios y cuestiones Ejercicio 2.2 Dadas las siguientes señales continuas, considere las muestras obtenidas en tk = kT y encuentre las transformadas Z correspondientes 1. 2 s+1 2. 1 (s + 1)(s + 2) 3. 4. 5. 6. 7. 8. s2 z z − z − e−T z − e−2T 3z z − e−T cos(2T ) + 12 sin(2T ) z 2 − 2e−T cos(2T )z + e−2T 3s + 2s + 5 z z T ze−T − + 2 −2 T −T z−e z−e (z − e−T ) 1 (s + 2)(s + 1)2 1 (s + 1)2 (s + 2)2 1 (s + 1)(s + 2)3 s(s2 (s2 5 + 2s + 5) 1 + s + 1)2 con p = − 21 + 9. 2z z − e−T √ 2z 2z T ze−T T ze−2T − + + 2 2 −2T −T z−e z−e (z − e−T ) (z − e−2T ) T 2 z e−2T z + e−4T T ze−2T z z − − − 3 2 −T −2T z−e z−e 2(z − e−2T ) (z − e−2T ) z z − e−T cos(2T ) − 21 sin(2T ) z − z−1 z 2 − 2e−T cos(2T )z + e−2T # " ∗ Tz ep T 2iz 1 epT 1 + − √ − z−ep∗ T − 2 3 (z − epT )2 3 3 z − epT (z − ep∗ T ) 3 2 i e−2,3T s s+1 z −2 e−0,7T z − e−T Ejercicio 2.3 A partir de las siguientes ecuaciones en diferencias, encuentre las transformadas Z de las secuencias {yk }. (Considere condiciones iniciales nulas) 1. yk + 0,5yk−1 = uk + uk−1 2. yk − 43 yk−1 + 18 yk−2 = uk y(z) = y(z) = 1 + z −1 u(z) 1 + 0,5z −1 z2 u(z) (z − 1/2)(z − 1/4) 66 CAPÍTULO 2. ECUACIONES EN DIFERENCIAS Y TRANSFORMADA Z Ejercicio 2.4 Calcule la transformada Z inversa de las siguientes funciones: 1. z −3 z+1 2. z(z + 2) (z − 1)2 3. (−1)k−4 θk−4 (1 + 3k)θk z2 (z − 1)2 (z − e−aT ) (1 − e−aT )(k + 1) − 1 + e−(k+1)aT θk (1 − e−aT )2 Ejercicio 2.5 Suponga que en un instante determinado un organismo sano es infectado por un virus con un número de especı́menes n0 . El mecanismo de propagación de la infección es el siguiente: Cada célula produce, en promedio, al cabo de un periodo de T unidades de tiempo 3 ejemplares del virus y queda destruı́da al liberarlos. Cada T unidades de tiempo, en promedio, la mitad de los virus presente en el organismo consigue penetrar la membrana de una célula e infectarla (consideraremos por simplicidad que cada célula es infectada por un único ejemplar, que todas las células infectadas lo son al final de cada periodo y que los virus que se introducen en las células desaparecen). En cada instante k un número ak de ejemplares de virus es eliminado por las defensas (anticuerpos) del organismo. Estudie: 1. La evolución de la población de virus. 2. El número total de células destruidas. 3. El número mı́nimo de virus que deben ser destruı́dos por los anticuerpos para que el organismo pueda mantener controlada la población de virus. (solución en pág. 69) Ejercicio 2.6 Encuentre, en un crédito de cuota constante (sistema francés), cuál serı́a la cuota a pagar si se piden 100000 euros con un TAE del 3 % y se devuelven en 120 mensualidades (10 años). (solución en pág. 71) Ejercicio 2.7 67 2.4. EJERCICIOS Y CUESTIONES Encuentre, en un crédito de amortización constante (sistema alemán), cuáles serı́an las cuotas a pagar si se piden 100000 euros con un TAE del 3 % y se devuelven en 120 mensualidades (10 años). (solución en pág. 73) Ejercicio 2.8 La evolución del precio del trigo se puede modelar de acuerdo con las siguientes hipótesis: 1. El trigo producido cada año es proporcional al precio al que se vendió el año anterior: tk = 2pk−1 2. La demanda depende linealmente del precio actual: dk = 5 − 2pk 3. Se vende todo el trigo producido: tk = dk Indique cuál de las siguientes funciones se corresponde con la transformada Z de la secuencia de valores del precio del trigo, {pk }. p (z) = 2,5z 2 − zp−1 (z − 1) (z − 1) (z + 1) p (z) = 2,5 + zp0 z+1 p (z) = z (2,5 − p−1 ) z+1 p (z) = 2,5z + zp0 (z − 1) (z − 1) (z + 1) (solución en pág. 74) Ejercicio 2.9 De las transformadas Z que se muestran a continuación escoja la que corresponda a una secuencia que empiece en 1 y tienda a 0. f1 (z) = f2 (z) = f3 (z) = f4 (z) = z 3 + 2z + 1 − z 2 + 0,5z z3 z z −5 + z−1 z−1 z3 z 3 + 2z + 1 − 1,5z 2 + 0,5z z z −5 − z−1 z−1 (solución en pág. 74) 68 CAPÍTULO 2. ECUACIONES EN DIFERENCIAS Y TRANSFORMADA Z Ejercicio 2.10 Indique cuál o cuáles de las siguientes transformadas corresponden a señales que cumplen x∞ = −1 x1 (z) = −1 x2 (z) = x3 (z) = x4 (z) = z (z − 1)(z − 2) −z z−1 1 (z − 1)(1 − 2z) Ninguna de las otras opciones (solución en pág. 75) Ejercicio 2.11 Calcule el quinto valor de la secuencia cuya transformada Z es: x(z) = z3 −1 + z2 (solución en pág. 75) Ejercicio 2.12 Indique cuál de las siguientes secuencias, expresadas para k > 0, producen la transformada 2z 2 (z − 1)2 {2, 3, 4, 5, 6, . . . } {1, 2, 3, 4, 5, . . . } {0, 1, 2, 3, 4, . . . } {0, 0, 1, 2, 3, . . . } Ninguna de las otras opciones (solución en pág. 75) Ejercicio 2.13 La suma de los valores de la secuencia {fk }, cuya transformada Z es f (z) = 2z−1 3z+1 es: 69 2.5. SOLUCIONES A ALGUNOS EJERCICIOS 0 1/2 1/4 1 (solución en pág. 75) Ejercicio 2.14 La variable m de la transformada Z modificada indica: 1. La fracción de T que se adelanta la señal. 2. La fracción de T que se atrasa la señal. 3. El múltiplo de T que se adelanta la señal. 4. El múltiplo de T que se atrasa la señal. (solución en pág. 75) 2.5. Soluciones a algunos ejercicios Solución al ejercicio 2.5 Supongamos primero que el organismo no tiene defensas (ak = 0). 1. Evolución de la población de virus En primer lugar veamos cómo cambia la población de virus vk y de células infectadas ik en los primeros instantes: k = 0 El organismo estaba sano: v0 = n 0 , i0 = 0 k = 1 La mitad de los virus ha encontrado una célula huésped: v1 = v0 /2 , i1 = v0 /2 k = 2 Igual más los producidos por las células infectadas: v2 = v1 /2 + 3i1 , i2 = v1 /2 k = 3 Igual: v3 = v2 /2 + 3i2 , i3 = v2 /2 −→ v3 = v2 /2 + 3v1 /2 .. . k Igual: vk = vk−1 /2 + 3vk−2 /2 70 CAPÍTULO 2. ECUACIONES EN DIFERENCIAS Y TRANSFORMADA Z Podrı́amos considerar que la ecuación en diferencias que se debe considerar es ésta última, pero no es conveniente, porque para k = 0 encontramos: v0 = 3 1 v−1 + v−2 2 2 Obviamente el número de individuos del virus antes de la infección (k = 0) es 0, por lo que esa última ecuación predice que seguirá habiendo 0 en el instante inicial. La ecuación no describe el proceso de infección, sino la evolución de la población de virus una vez producida ésta. La ecuación no deberı́a permitirnos calcular el valor v0 , pues esa es la condición inicial. Una forma de resolver esa dificultad es considerar la infección como una entrada, como se verá en el ejercicio 3.4. Lo que podemos hacer ahora es adelantar la secuencia de interés, sumando una unidad al ı́ndice genérico k y obteniendo: vk+1 = 3 1 vk + vk−1 2 2 (2.25) De esa manera, para k = 0 se obtiene la ecuación v1 = v0 /2 + 3v−1 /2, que depende de las condiciones iniciales conocidas y coincide con lo que esperamos obtener para el valor de la población de virus transcurridas T unidades de tiempo. Si construimos las secuencias a partir de la ecuación (2.25) y aplicamos la transformada Z encontramos: Z [{vk+1 }] = 3 1 Z [{vk }] + Z [{vk−1 }] 2 2 Teniendo en cuenta los teoremas de desplazamiento, se llega a: z[v(z) − v0 ] = 3 1 v(z) + [z −1 v(z) + v−1 ] 2 2 Substituyendo los valores de las condiciones iniciales podemos despejar v(z) y encontrar la ecuación: v(z) = 2z 2 z2 n = n0 0 2z 2 − z − 3 (z − 3/2)(z + 1) (2.26) Para encontrar la evolución de la población de virus debemos aplicar la transformada inversa. Utilizando el método de los resı́duos se debe considerar la expresión: v(z)z k−1 = z k+1 n0 (z − 3/2)(z + 1) que tiene dos polos simples para cualquier valor no negativo de k. La solución se puede escribir como sigue: " # k n0 3 k vk = 3 + 2(−1) 5 2 , k>0 Es fácil comprobarla utilizando la ecuación en diferencias (2.25) para los primeros valores de k. 71 2.5. SOLUCIONES A ALGUNOS EJERCICIOS 2. Número total de células destruidas Para encontrar el número de células destruidas podemos proceder de la misma manera (encontrar la ecuación en diferencias, etc. ), lo que nos lleva a: 1 ck+1 = ck + vk−1 2 , k>0 De ahı́ se llega a: c(z) = 1 z n0 v(z) = 2z(z − 1) (z − 1)(z − 3/2)(z + 1) 2 cuya transformada inversa es: " # k n0 3 ck = 4 + (−1)k − 5 10 2 , k>0 3. El número mı́nimo de virus que deben ser destruı́dos por los anticuerpos para que el organismo pueda mantener controlada la población de virus. Debemos modificar la ecuación (2.25) descontando los virus destruı́dos en cada instante: vk+1 = 3 1 vk + vk−1 − ak+1 2 2 (2.27) Si el organismo es capaz de destruir un número de virus constante a tenemos: vk+1 = 1 3 vk + vk−1 − a 2 2 (2.28) Aplicando la transformada Z encontramos: z[v(z) − v0 ] = 1 3 z v(z) + [z −1 v(z) + v−1 ] − a 2 2 z−1 de ahı́: v(z) = z 2 [v0 (z − 1) − a] (z − 1)(z − 3/2)(z + 1) Calculando la transformada inversa se encuentra: vk = a + 2n0 + a 3 (−1)k + 5 5 k 3 [n0 − 2a] 2 , k>0 El último sumando crece indefinidamente si el coeficiente n0 − 2a es positivo. El mı́nimo valor de a que lo evita es n0 /2. En ese caso, la población de virus evoluciona de acuerdo con la ecuación: vk = n0 1 + (−1)k 2 es decir, toma alternativamente los valores n0 y 0. , k>0 72 CAPÍTULO 2. ECUACIONES EN DIFERENCIAS Y TRANSFORMADA Z Solución al ejercicio 2.6 En primer lugar, puesto que se va a pagar cada mes debemos calcular el interés nominal equivalente al TAE. La tasa anual equivalente (TAE) indica cuanto se incrementarı́a nuestra deuda en un año (si no se hiciera ningún pago). Si el capital solicitado es c0 y el interés nominal es in , al cabo de un mes deberı́amos: in in c1 = c0 + c0 = c0 1 + = c0 q 12 12 Ası́ pues, cada mes que transcurre el capital adeudado se multiplica por el factor q ≡ 1 + in /12, con lo que al cabo de un año se tiene que la deuda es: c12 = c0 q 12 = c0 in 1+ 12 12 Por otro lado, sabemos que el incremento que se produce al cabo de un año es el que se deduce de la TAE (c12 = c0 + TAE c0 ), por lo que se debe cumplir: 1+ in 12 12 = 1 + TAE En nuestro caso el interés nominal serı́a: " r in = 12 12 # 3 1+ − 1 ≈ 0,0296 = 2,96 % 100 Con ese dato ya podemos calcular el importe de la cuota. Llamemos {ck } a la secuencia de valores del capital adeudado (obsérvese que no van a corresponderse con los calculados anteriormente, porque ahora sı́ se van a hacer pagos mensuales) y {pk } a la secuencia de pagos realizados. Si llamamos k = 0 el momento de pedir el crédito tenemos c0 = 100000 y p0 = 0. A partir de ahı́ pagaremos una cuota constante, p, hasta el instante k = 120. Ası́ se tiene que {pk } = {0, p, p, . . . , p} es decir un escalón de amplitud p retrasado una muestra. La evolución del capital adeudado se rige por la ecuación: ck+1 = ck q − pk+1 que para k > 0 expresa el aumento de la deuda debido a los intereses pero descontando en cada periodo el pago realizado. Debemos resolver la ecuación en diferencias, exigiendo que c120 = 0, de manera que pasados los 10 años la deuda se cancele. De esa condición se obtendrá el valor de la cuota mensual que se debe abonar. Para resolverlo, basta con aplicar la transformada Z y el teorema de adelanto8 : z[c(z) − c0 ] = c(z)q − z[p(z) − p0 ] Como {pk } es un escalón retrasado una muestra con amplitud p tenemos: p(z) = pz −1 8 También z p = z−1 z−1 puede resolverse aplicando el de atraso, y es un ejercicio interesante. 73 2.5. SOLUCIONES A ALGUNOS EJERCICIOS Teniendo en cuenta que p0 = 0 podemos despejar c(z): c(z) = z[c0 (z − 1) − p] (z − 1)(z − q) Ahora sólo queda hacer la transformada inversa. Empleando el método de los resı́duos, debemos estudiar el número de polos de la función: c(z)z k−1 = z k [c0 (z − 1) − p] (z − 1)(z − q) Vemos que para cualquier valor no negativo de k siempre hay dos polos simples, por lo que podremos expresar la solución para k > 0 sumando la contribución de cada uno de los polos. El resultado es: ck = 1 p + {c0 (q − 1) − p}q k q−1 La evolución de la deuda depende de la cuantı́a de la aportación mensual, y esta se determina exigiendo que el capital adeudado sea cero al expirar el plazo: c120 = 0 −→ p = c0 (q − 1) 1 − q −120 Substituyendo los valores de capital inicial e interés nominal encontramos que la cuota mensual debe ser: p = 963,74 euros Solución al ejercicio 2.7 Si la amortización es constante, la diferencia entre dos valores consecutivos del capital adeudado es fija: ck − ck+1 = K Esta ecuación en diferencias se puede resolver con facilidad sin recurrir a la transformada Z. Sin embargo, vamos hacerlo utilizándola para tener un ejemplo más de su aplicación: c(z) − z[c(z) − c0 ] = K z z−1 despejando, encontramos: c(z) = c0 z z −K z−1 (z − 1)2 La ecuación nos indica que el capital adeudado es una combinación de escalón y rampa (T = 1). La transformada inversa nos da: ck = (c0 − kK)θk como podrı́amos haber deducido directamente ya que c1 = c0 − K, c2 = c1 − K = c0 − 2K, etc. Al final del periodo el capital adeudado debe ser cero. Si N es el número de mensualidades: 74 CAPÍTULO 2. ECUACIONES EN DIFERENCIAS Y TRANSFORMADA Z cN = 0 −→ K = c0 N En nuestro caso N = 120 y K = 833,33. Las cuotas se pueden deducir de la ecuación: ck+1 = ck q − pk+1 donde q es el mismo valor que el ejercicio anterior y k > 0. Podrı́amos encontrar la secuencia de cuotas, {pk }, mediante la transformada Z pero es más simple substituir directamente en la ecuación anterior el valor obtenido para ck . Como k > 0, θk = 1 y tenemos: pk+1 = qck − ck+1 = K + (q − 1)(c0 − kK) (2.29) Esta expresión permite calcular la secuencia {pk+1 }: {pk+1 } = {1079.9603, 1077.9051, 1075.8499, . . . } El primer valor se corresponde con la cuota del primer mes, etc. Si queremos escribir la secuencia {pk