You are on page 1of 14

LA TRANSFORMADA DE LAPLACE En esta seccin vamos a mencionar algunos aspectos relativos a la utilizacin de la transformada de Laplace que pueden ser

tratados con ayuda de Matlab. El primer detalle a tratar es la resolucin de un sistema algebraico de ecuaciones lineales. Este problema se presenta frecuentemente en anlisis de circuitos, especialmente en rgimen sinusoidal permanente. No es estrictamente un problema de utilizacin de transformadas de Laplace, pero puede estar relacionado indirectamente con l. El planteamiento del problema consiste, bsicamente, en reducirlo a uno del tipo para el que Matlab fue desarrollado inicialmente (manipulacin de matrices y vectores). El segundo apartado de la seccin est dedicado a presentar distintas operaciones con polinomios, de las cuales una de las ms importantes es la determinacin de sus races, que es un problema bsico en el clculo de transformadas inversas de Laplace. Finalmente, en el tercer apartado se hace referencia a distintas posibilidades de representar el mdulo y la fase de una funcin resultante de particularizar la transformada de Laplace de la funcin de transferencia de un circuito para el caso del rgimen sinusoidal permanente. 1. Resolucin de un sistema de ecuaciones La forma en la que generalmente se presenta un sistema de ecuaciones en un circuito en rgimen sinusoidal permanente es [V] = [Z] x [I] donde [V] es un vector columna de n elementos cada uno de los cuales es la suma algebraica de las fuentes independientes de tensin de las n mallas; [I] es un vector columna de n elementos cada uno de los cuales es la corriente de una malla, y [Z] es una matriz cuadrada n x n cuyos elementos son las impedancias de las distintas mallas (los elementos del tipo Zij con i = j) y las impedancias compartidas entre mallas diferentes (los elementos del tipo Zij con i j). Ocasionalmente, [I] puede incluir tensiones introducidas por fuentes dependientes. En todo caso, [I] debe reunir todas las incgnitas del sistema, las cuales no pueden aparecer ni en [V], ni en [Z]. Algo similar ocurrira si quisiramos resolver el circuito utilizando la tcnica de anlisis por nudos en lugar de la de anlisis por mallas. La resolucin de este sistema (es decir, la obtencin de los elementos de [I]) mediante Matlab requiere los siguientes pasos. En primer lugar hay que definir los vectores y las matrices que aparecen en el problema. En el caso general, una matriz se define mediante la instruccin M =[M11 M12 ... M1n; M21 M22 ... M2n; ...; Mk1 Mk2 ... Mkn] % Definicin de una matriz % Mij: elemento correspondiente a la fila i y a la columna j % k: nmero de filas de la matriz k x n % n: nmero de columnas de la matriz k x n Como puede observarse, los elementos de una misma fila van separados por espacios en blanco; el final de una fila se separa del comienzo de la siguiente mediante un punto y coma. Con la misma instruccin podemos definir vectores fila y vectores columna. F =[F11 F12 ... F1n] C =[C11; C21; ...; Ck1] % Definicin de un vector fila de n elementos % Definicin de un vector columna de k elementos Los elementos de la matriz [Z] sern complejos en general. Un nmero complejo en Matlab se define mediante el comando

real+imag*i % Definicin de un nmero complejo % real: parte real del nmero complejo % imag: parte imaginaria del nmero complejo Obsrvese que lo que es una j en teora de anlisis de circuitos se convierte aqu en una i (tambin vale la j). Obsrvese tambin que no se han dejado blancos ni antes, ni despus del signo ms; esto tiene por objeto evitar confusiones en la definicin de vectores y matrices que incluyen nmeros complejos (recurdese que, como se indic antes, los elementos de una fila van separados por blancos). Un ejemplo de la utilizacin de Matlab para obtener las corrientes de malla en un circuito en rgimen sinusoidal permanente es el siguiente. Supngase que el vector de tensiones es [V (V)] = [1 - j2; -5; 15 - j2] y que la matriz de impedancias es [Z ( )] = ([3, -2 + j2, 0; -1, 4 + j2, 1 - j3; 0, 1 - j2, 8 + j5]. El programa que obtiene las corrientes es %%%%% RESOLUCIN DE UN SISTEMA DE ECUACIONES %%%%% clear all; % Elimina variables utilizadas en otras rutinas V = [1-2*i; -5; 15-2*i] Z = [3 -2+2*i 0; -1 4+2*i 1-3*i; 0 1-2*i 8+5*i] I = Z\V clear all; % Elimina las variables utilizadas en esta rutina Lo que se obtiene en la ventana de comandos de Matlab es V= 1.0000- 2.0000i -5.0000 15.0000- 2.0000i Z= 3.0000 -2.0000+ 2.0000i 0 -1.0000 4.0000+ 2.0000i 1.0000- 3.0000i 0 1.0000- 2.0000i 8.0000+ 5.0000i I= 1.0000 0.0000+ 1.0000i 1.0000- 1.0000i Es decir, las corrientes buscadas son [I (A)] = (1; j; 1 - j). Obsrvese que los resultados anteriores aparecen en la ventana de comandos porque las distintas instrucciones no han sido terminadas con puntos y comas. De haber incluido esta terminacin en una o ms sentencias, el programa habra conservado la informacin internamente, pero no la habra reflejado en la ventana de comandos. Obsrvese que, contra lo que podra parecer lgico ([I] = [V] / [Z]), la instruccin de divisin tiene en este caso la forma [I] = [Z] \ [V]. En realidad, esta forma es equivalente a realizar la operacin [I] = inv[Z] x [V], que ya se corresponde con lo que parecera razonable. Esta sentencia viene impuesta por la forma de operar de Matlab y se denomina divisin a la izquierda, como contraposicin a la habitual divisin a la derecha. De hecho, podramos haber definido el sistema de ecuaciones como [V] = [I] x [Z] En ese caso el programa para obtener las corrientes sera %%%%% RESOLUCIN DE UN SISTEMA DE ECUACIONES %%%%% clear all; % Elimina variables utilizadas en otras rutinas V = [1-2*i -5 15-2*i] Z = [3 -2+2*i 0; -1 4+2*i 1-3*i; 0 1-2*i 8+5*i] I = V/Z.'

clear all; % Elimina las variables utilizadas en esta rutina y los resultados en la ventana de comandos de Matlab seran V= 1.0000- 2.0000i -5.0000 15.0000- 2.0000i Z= 3.0000 -2.0000+ 2.0000i 0 -1.0000 4.0000+ 2.0000i 1.0000- 3.0000i 0 1.0000- 2.0000i 8.0000+ 5.0000i I= 1.0000 0.0000+ 1.0000i 1.0000- 1.0000i Obsrvese que ahora el vector [V] se ha definido como fila y no como columna, lo cual hace que el vector [I] tambin sea presentado en la misma forma. Adems, en lugar de utilizar la matriz [Z], se utiliza su transpuesta, definida mediante la instruccin. Z. % Obtiene la matriz transpuesta de la matriz Z Tngase presente que la obtencin de la transpuesta de una matriz de nmeros complejos requiere un procedimiento matemtico de cierta complicacin. 2. Transformada inversa de Laplace Races de un polinomio En el clculo de transformadas inversas de Laplace un problema frecuente es la determinacin de las races de un polinomio en s. En general, un polinomio de este tipo P(s) = a k s k + a k 1s k 1 + + a 1s + a 0 es de la forma en la que los coeficientes de los trminos exponenciales son nmeros reales. Sin embargo, esta forma no es la ms adecuada para utilizar el procedimiento convencional de obtener la transformada inversa de Laplace. Es preferible expresar el polinomio como el producto de una serie de trminos en los que aparecen las races de aqul. Es decir,
P(s) = a k s k + a k 1s k 1 + + a 1s + a 0 = ( s + s1 ) ( s + s 2 ) (s + s j ) ( s + s m )
q

s j (y A cualquiera de los trminos s k se le denomina raz del polinomio, cualquier otra que figure en un trmino exponencial) se le denomina raz mltiple de orden q (el exponente del trmino exponencial). El orden del polinomio es k (es decir, el exponente de la mayor potencia de s que figure en el polinomio). k es igual al nmero total de races del polinomio; en el cmputo de este nmero cada raz mltiple cuenta tantas veces como su propio orden. Las races de un polinomio pueden ser reales o complejas; si un nmero complejo es raz de un polinomio representativo de un circuito, su complejo conjugado tambin lo es. En el problema de determinar las races de un polinomio pueden presentarse varios casos muy sencillos, como son los que se mencionan seguidamente.

Polinomio P(s)

s+r (s + r ) n

Races

(raz mltiple de orden n)


b b 2 4 a c 2a

a s 2 + b s + c (polinomio cuadrtico)

r1, 2 =

Al margen de estos casos, no existe ningn procedimiento analtico sencillo para obtener las races de polinomios de orden superior al segundo. Es necesario recurrir a procedimientos numricos para realizar dicha tarea. En Matlab esta operacin se realiza con la instruccin roots (pol) % Obtiene las races del polinomio pol

Obsrvese que la aplicacin de esta instruccin requiere definir previamente el polinomio del que se quieren obtener las races. El polinomio se define como un vector fila cuyos elementos son los coeficientes ordenados de los trminos exponenciales, empezando por el correspondiente a la potencia mayor. Si faltan algunos de los trminos exponenciales, esta circunstancia es tenida en cuenta asignando el valor nulo al coeficiente correspondiente. Recurdese que el trmino independiente del polinomio, si lo hay, corresponde a una potencia cuyo exponente es nulo; por tanto, dicho trmino debe ser incluido en la definicin del polinomio. As, la instruccin pol = [a(k) a(k-1) ... a(0)] % Definicin de un polinomio corresponde al polinomio P(s) = a k s k + a k 1s k 1 + + a1s + a 0 . Si el polinomio no va a ser utilizado con posterioridad a la obtencin de sus races, pueden combinarse las dos instrucciones que acabamos de mencionar en una sola y utilizar la sentencia roots ([a(k) a(k-1) ... a(0)]) % Obtiene las races de un polinomio A ttulo de ejemplo, considrese el polinomio P(s) = s 4 + 6 s 3 +14 s 2 +16 s + 8 . La utilizacin de la rutina %%%%% RACES DE UN POLINOMIO %%%%% clear all; % Elimina variables utilizadas en otras rutinas roots ([1 6 14 16 8]) clear all; % Elimina las variables utilizadas en esta rutina proporciona los siguientes resultados en la ventana de comandos de Matlab: -2.0000+ 0.0000i -2.0000- 0.0000i -1.0000+ 1.0000i -1.0000- 1.0000i Es decir, el polinomio tiene una raz real doble (-2 + j0) y un par de races complejas conjugadas (-1 + j, -1 - j). Valor de un polinomio Otra operacin de cierto inters que puede realizarse con Matlab es la determinacin del valor particular que toma un polinomio cuando la variable independiente tiene un valor dado. Ello puede realizarse utilizando la instruccin polyval (pol, k) % Obtiene el valor del polinomio pol cuando la variable vale k A ttulo de ejemplo, la rutina siguiente permite hallar el valor que toma el polinomio P(s) definido anteriormente cuando s es igual a -2. %%%%% VALOR DE UN POLINOMIO %%%%% clear all; % Elimina variables utilizadas en otras rutinas P = [1 6 14 16 8]; polyval (P, -2) clear all; % Elimina las variables utilizadas en esta rutina El resultado es ans = 0 Es un resultado lgico, por cuanto hemos pretendido calcular el valor del polinomio cuando la variable es igual a una de sus races y, por definicin, stas son los valores que anulan el polinomio. Producto de polinomios Otra operacin de inters es el producto de dos polinomios. Se realiza utilizando la instruccin

conv (pol1, pol2) % Efecta el producto de los polinomios pol1 y pol2 As, por ejemplo, si multiplicamos los polinomios P1 (s) = s 2 + 2 s + 2 y P2 (s) = s 2 + 4 s + 4 mediante la rutina %%%%% PRODUCTO DE POLINOMIOS %%%%% clear all; % Elimina variables utilizadas en otras rutinas P1 = [1 2 2]; P2 = [1 4 4]; conv (P1, P2) clear all; % Elimina las variables utilizadas en esta rutina obtenemos el siguiente resultado: ans = 1 6 14 16 8 Es decir, el polinomio resultante del producto est definido por sus coeficientes, al igual que cualquier otro polinomio. Obsrvese que el resultado obtenido en este ejemplo coincide con el polinomio P(s) definido anteriormente. Obsrvese tambin que la instruccin que se utiliza para el producto (conv) significa convolucin. Sin embargo, aunque esta instruccin tiene un papel relevante en la obtencin de la convolucin de seales discretas, no guarda una relacin inmediata con la convolucin de seales continuas, tal y como se indic en la seccin precedente de este manual. Divisin de polinomios Se trata de la operacin inversa de la que se acaba de mencionar. Se realiza utilizando la instruccin deconv (pol1, pol2) % Divide el polinomio pol1 entre el polinomio pol2 As, por ejemplo, si dividimos el polinomio P1 (s) = s 3 + 3 s 2 + 2 s + 2 entre el polinomio P2 (s) = s 2 + 4 s + 4 mediante la rutina %%%%% DIVISIN DE POLINOMIOS %%%%% clear all; % Elimina variables utilizadas en otras rutinas P1 = [1 3 2 2]; P2 = [1 4 4]; [cociente, resto] = deconv (P1, P2) clear all; % Elimina las variables utilizadas en esta rutina obtenemos los siguientes valores para el cociente y el resto de la operacin: cociente = 1 -1 resto = 0026 Ambas variables definen sendos polinomios. El segundo es el numerador de una fraccin cuyo denominador coincide con el del cociente original. En otras palabras, el P1 (s) 2s + 6 = s 1 + 2 resultado obtenido nos indica que . P2 (s) s + 4s + 4 Esta instruccin tiene un inters especial cuando una transformada de Laplace est definida por una fraccin impropia (es decir, el orden del numerador es mayor o igual que el del denominador). Recurdese que la aplicacin del procedimiento convencional para obtener la transformada inversa requiere efectuar el cociente de forma que el resto sea una fraccin propia (el orden del numerador es menor que el del denominador).

Descomposicin de un cociente en suma de fracciones simples Podemos utilizar todo lo que acabamos de exponer para obtener transformadas inversas de Laplace. Despus del cociente de polinomios, quedara por obtener las races del denominador del resto (roots) y formular tantas fracciones como races tenga dicho denominador (recurdese que una raz mltiple cuenta tantas veces como su orden). Sin embargo, hay un procedimiento directo para descomponer un cociente en una suma de fracciones simples cuyos denominadores corresponden a las races del denominador original. Ese procedimiento se ejecuta en Matlab mediante la instruccin [num, races, cociente] = residue (pol1, pol2) % Expande en suma de fracciones simples % el cociente entre los polinomios pol1 y pol2 % num: vector columna en la que aparecen el numerador de la fraccin % races: vector columna de las races del denominador ordenadas % cociente: cociente de los dos polinomios (slo si la fraccin original es impropia) No es preciso invocar explcitamente estos tres parmetros en la rutina dedicada a la descomposicin de un cociente; si no se pone un punto y coma tras la instruccin residue, tales parmetros aparecen directamente en la ventana de comandos. En cualquier caso, son guardados internamente por el programa y puede hacerse uso de ellos en operaciones posteriores. Al ejecutar esta instruccin una raz mltiple no aparece sealada explcitamente como tal. La indicacin de semejante caracterstica la proporciona el hecho de que la raz mltiple aparece repetida tantas veces como su orden. A cada una de ellas le corresponde el numerador que ocupa la misma posicin que la raz (o su repeticin) en ambos vectores. Recurdese que, al formular las fracciones simples originadas por una raz mltiple, el denominador de la primera de stas aparece elevado a la unidad; el segundo, al cuadrado, y as sucesivamente hasta alcanzar el orden de multiplicidad de la rutina. A ttulo de ejemplo, considrese la rutina %%%%% EXPANSIN DE UN COCIENTE EN FRACCIONES SIMPLES %%%% % clear all; % Elimina variables utilizadas en otras rutinas P1 = [1 3 2 2]; P2 = [1 4 4]; [num, races, cociente] = residue (P1, P2) clear all; % Elimina las variables utilizadas en esta rutina El resultado que aparece en la ventana de comandos de Matlab es num = 22 races = -2 -2 cociente = 1 -1 P1 (s) 2 2 = s 1 + + Es decir, se ha realizado la siguiente operacin siendo P2 (s) s + 2 ( s + 2) 2 P1 (s) y P2 (s) los polinomios definidos anteriormente.

La operacin inversa de la que acabamos de describir permite recomponer el cociente de dos polinomios a partir de los valores del cociente, las races y los numeradores. As, por ejemplo, la rutina %%%%% RECOMPOSICIN DE UN COCIENTE %%%%% clear all; % Elimina variables utilizadas en otras rutinas num = [2; 2]; races = [-2; -2]; cociente = [1; -1]; [P1, P2] = residue (num, races, cociente) clear all; % Elimina las variables utilizadas en esta rutina devuelve el resultado P1 = 1322 P2 = 144 que, como puede comprobarse, corresponde a los polinomios a los que nos estamos refiriendo. Evidentemente, todo lo que acabamos de exponer es aplicable igualmente en el caso de que la expansin conduzca a fracciones en las que aparecen races complejas. As, por P1 (s) 0.5 s = 2 ejemplo, si se trata del cociente , la ejecucin de la P2 (s) s + s + 0.5 correspondiente instruccin residue conduce a num = 0.2500+ 0.2500i 0.2500- 0.2500i races = -0.5000+ 0.5000i -0.5000- 0.5000i En trminos matemticos, este resultado puede expresarse como P1 (s) 0.5 s 0.25 + j0.25 0.25 + j0.25 K K* = 2 = + = + * P2 (s) s + s + 0.5 s + 0.5 j0.5 s + 0.5 + j0.5 s + s1 s + s1 con lo que la transformada inversa de Laplace de este cociente es directamente un nico trmino en el que aparecen el mdulo y la fase de K. stos pueden obtenerse por clculo manual, o utilizando instrucciones de Matlab a las que se hace referencia ms adelante. 3. Respuesta en rgimen sinusoidal permanente La respuesta de un circuito en rgimen sinusoidal permanente puede ser determinada a partir del conocimiento de su funcin de transferencia expresada en funcin de la variable s; para ello basta sustituir dicha variable por j . Esto supone una diferencia importante con relacin a lo expuesto en el apartado anterior. En l, s era una variable genrica, mientras que ahora pasa a ser una variable continua. Dado que es imposible reproducir exactamente en Matlab una variable continua, la transformacin implica el paso de la variable genrica s a la variable discreta j . En otras palabras, en lo que sigue s va a comportarse como un vector que almacena los distintos valores que puede tomar . Por otro lado, una vez que se ha efectuado la transformacin indicada, la funcin de ) ) . La transferencia H (s) pasa a ser una funcin variable con la frecuencia ( H( j observacin de la variacin de esta funcin proporciona informacin muy til acerca del comportamiento del circuito; por ejemplo, permite determinar su tipo de respuesta

) es en cuando el circuito es tratado como un filtro. Dado que la nueva funcin H ( j general compleja, dicha variacin queda determinada a partir de las variaciones de su mdulo y su fase con . En lo que sigue abordaremos precisamente estos aspectos: el tratamiento de s como vector, la definicin del rango de variacin de este vector, y la obtencin de mdulos y fases de funciones complejas. En definitiva, se trata de un problema cuyo planteamiento puede resumirse en las siguientes equivalencias matemticas P ( j ) 1 ( ) P (s) P ( j ) H (s) = 1 H ( j )= 1 = 1 = H ( j ) ( ) P2 (s) P2 ( j ) P2 ( j ) 2 ( ) P ( j ) H ( j ) = 1 ( ) = 1 ( ) 2 ( ) P2 ( j )

En otras palabras, hay distintas posibilidades de afrontarlo. A continuacin consideraremos algunas de ellas. Rango de frecuencias En los problemas abordados en este apartado lo que se persigue es representar la variacin de una magnitud frente a la frecuencia angular ( ). Por consiguiente, lo primero que hay que hacer en cualquiera de dichos problemas es establecer el rango de valores que debe tomar . Este aspecto es, en principio, formalmente idntico al de establecer una base de tiempos que hemos considerado en la seccin anterior. Por tanto, podemos definir el rango de frecuencias mediante cualquiera de los dos procedimientos que se mencionaron en dicha seccin, procedimientos que haban sido denominados lineales; basta sustituir la variable t por la variable para definir el rango de frecuencias. Ahora bien, al abordar problemas de respuesta en frecuencia de circuitos funcionando en rgimen sinusoidal permanente el rango de variacin de la frecuencia suele cubrir varias dcadas, con lo que establecer como lineal tal variacin no suele ser lo ms conveniente. Una instruccin ms adecuada es logspace (d1, d2, puntos) % Define un rango de valores de variacin logartmica % d1: parmetro que define el inicio del rango (10d1) % d2: parmetro que define el final del rango (10d2) % puntos: nmero de puntos totales entre el inicio y el final del rango (la separacin entre dos puntos consecutivos es igual en coordenadas logartmicas) As, por ejemplo, la instruccin w = logspace (1, 3, 1000) genera un vector de 1000 puntos comprendidos entre 10 y 103. Representacin de nmeros complejos Hay cuatro instrucciones bsicas para caracterizar un nmero complejo. En el caso particular que estamos tratando, dicho nmero tendr la forma genrica z ( ) = a ( ) + j b ( ) . Las instrucciones a las que nos referimos son: real (z) imag (z) abs (z) angle (z) % Obtiene la parte real de z % Obtiene la parte imaginaria de z % Obtiene el valor absoluto de z % Obtiene la fase de z (en rad) A ttulo de ejemplo, consideremos la siguiente rutina.

%%%%% NMEROS COMPLEJOS %%%%% clear all; % Elimina variables utilizadas en otras rutinas w = logspace (-1, 3, 1000); % Rango de frecuencias a = 1; b = (w - 1./w); z = a + i*b; % Nmero complejo subplot (2, 2, 1); % Parte real semilogx (w, real(z), 'b', 'LineWidth', 2); % Curva en azul de grosor 2 xlabel ('Frecuencia angular (rad/s)', 'FontName', 'Times', 'Fontsize', 14); % Abs ylabel ('Parte real', 'FontName', 'Times', 'Fontsize', 14); % Ord axis ([10^(-1) 10^3 (1/3)*min(real(z)) (3/2)*max(real(z))]); % rea de dibujo grid on; % Malla subplot (2, 2, 2); % Parte imaginaria semilogx (w, imag(z), 'b', 'LineWidth', 2); % Curva en azul de grosor 2 xlabel ('Frecuencia angular (rad/s)', 'FontName', 'Times', 'Fontsize', 14); % Abs ylabel ('Parte imaginaria', 'FontName', 'Times', 'Fontsize', 14); % Ord axis ([10^(-1) 10^3 (1/3)*min(imag(z)) (3/2)*max(imag(z))]); % rea de dibujo grid on; % Malla subplot (2, 2, 3); % Mdulo semilogx (w, abs(z), 'b', 'LineWidth', 2); % Curva en azul de grosor 2 xlabel ('Frecuencia angular (rad/s)', 'FontName', 'Times', 'Fontsize', 14); % Abs ylabel ('Mdulo', 'FontName', 'Times', 'Fontsize', 14); % Ord axis ([10^(-1) 10^3 (1/3)*min(abs(z)) (3/2)*max(abs(z))]); % rea de dibujo grid on; % Malla subplot (2, 2, 4); % Fase semilogx (w, angle(z), 'b', 'LineWidth', 2); % Curva en azul de grosor 2 xlabel ('Frecuencia angular (rad/s)', 'FontName', 'Times', 'Fontsize', 14); % Abs ylabel ('Fase (rad)', 'FontName', 'Times', 'Fontsize', 14); % Ord axis ([10^(-1) 10^3 -3*pi/4 3*pi/4]); % rea de dibujo grid on; % Malla clear all; % Elimina las variables utilizadas en esta rutina

Como puede observarse, la rutina representa la variacin con de la parte real, la parte imaginaria, el mdulo y la fase del nmero complejo que aparece definido a la izquierda de la figura. Algunas particularidades de esta rutina se mencionan seguidamente. En primer lugar, cabe destacar que la habitual instruccin plot ha sido remplazada. Como se ha visto en ejemplos anteriores, dicha instruccin permita obtener una

representacin lineal de ambos ejes coordenados. Teniendo en cuenta que la sensibilidad de un circuito a la variacin de la frecuencia suele ser exponencial, si utilizamos dicha instruccin obtendremos una representacin muy pobre, con la consiguiente prdida de informacin. Se sugiere al lector que observe este efecto analizando el comportamiento de la rutina cuando se utiliza la instruccin plot. A cambio, en este caso (y en prcticamente todos los que implican variaciones con la frecuencia) se ha utilizado la instruccin semilogx % El eje de abscisas se representa en coordenadas semilogartmicas Esta instruccin sencillamente sustituye a la de plot, con lo que puede ser dotada de los mismos atributos que aqulla. Hay otras instrucciones similares, que permiten representar semilogartmicamente el eje de ordenadas o bien utilizar coordenadas logartmicas en ambos ejes, pero carecen de inters desde la perspectiva de este manual. En segundo lugar, obsrvese que la fase del nmero complejo se calcula y se representa en radianes. sa es la representacin de Matlab por defecto, pero existen otras posibilidades, que sern expuestas ms adelante. Tambin es importante destacar que, en la definicin del nmero complejo, se utiliza el operador ./, que indica que el numerador debe ser dividido por todos y cada uno de los elementos del vector que constituye el denominador. De no utilizarse este operador, se producira una indefinicin (con la consiguiente paralizacin del programa), ya que Matlab ignorara qu valor concreto del vector denominador debe ser utilizado en el cociente. Finalmente, en la rutina se utilizan de forma accesoria las instrucciones max (x) min (x) % Obtiene el valor mximo del vector x % Obtiene el valor mnimo del vector x Nmeros complejos expresados como fracciones Aunque til para ilustrar algunos aspectos de la representacin de nmeros complejos, el ejemplo que acabamos de considerar es raramente representativo de lo que realmente interesa en el anlisis de la respuesta en frecuencia de circuitos funcionando en rgimen sinusoidal permanente. Lo ms habitual es que la funcin de transferencia est caracterizada por el cociente de dos polinomios de s; al sustituir esta variable por j queda un nmero complejo que vara con la frecuencia. Es a este caso al que nos referiremos en este epgrafe. La siguiente rutina permite obtener el mdulo y la fase de una funcin de transferencia representada por una fraccin propia (el orden del numerador es menor que el del denominador), Hs, en la que el numerador y el denominador son dos polinomios de s. Como puede observarse, tanto el mdulo y la fase se obtienen aplicando directamente las instrucciones abs y angle a la fraccin en lugar de hacerlo al numerador y al denominador por separado. %%%%% NMEROS COMPLEJOS COMO FRACCIONES %%%%% clear all; % Elimina variables utilizadas en otras rutinas inicial = -2; final = - inicial; puntos = 1000; % Rango de frecuencias w = logspace (inicial, final, puntos); s = i*w; % Nmero complejo como fraccin Hs = 0.5*s./(s.^2 + 2*s + 2); moduloh = abs(Hs); fase = (180/pi)*angle(Hs); subplot (2, 1, 1); % Mdulo

semilogx (w, moduloh, 'b', 'LineWidth', 2); % Curva en azul de grosor 2 xlabel ('Frecuencia angular (rad/s)', 'FontName', 'Times', 'Fontsize', 14); % Abs ylabel ('Mdulo', 'FontName', 'Times', 'Fontsize', 14); % Ord axis ([w(1) w(puntos) (1/3)*min(moduloh) (3/2)*max(moduloh)]); % rea de dibujo grid on; % Malla title ('Respuesta en frecuencia', 'FontName', 'Times', 'Fontsize', 24); % Ttulo subplot (2, 1, 2); % Fase semilogx (w, fase, 'b', 'LineWidth', 2); % Curva en azul de grosor 2 xlabel ('Frecuencia angular (rad/s)', 'FontName', 'Times', 'Fontsize', 14); % Abs ylabel ('Fase ()', 'FontName', 'Times', 'Fontsize', 14); % Ord axis ([w(1) w(puntos) -180 180]); % rea de dibujo grid on; % Malla modmax = max(moduloh) % Frecuencia central m = find (moduloh == max(moduloh)); wcentral = w(m) fasecentral = fase(m) positivo = find (fase >= 0); % Frecuencia de fase nula n = length (positivo); wfasenula = w(n) modfasnul = moduloh(n) fasenula = fase(n) clear all; % Elimina las variables utilizadas en esta rutina

Obsrvese, en la definicin de la fraccin, la utilizacin de los operadores ./ y ., ya que las operaciones aludidas son efectuadas entre vectores. Ntese tambin que la fase de la funcin de transferencia ha sido expresada en . La rutina se completa con un conjunto de instrucciones finales destinadas a proporcionar ciertos datos que no pueden obtenerse (al menos con precisin) de la observacin de las curvas. El primer grupo de tales instrucciones est destinado a obtener la frecuencia central (es decir, aqulla para la que se obtiene el mximo del mdulo de la funcin de transferencia), y los valores del mdulo y la fase correspondientes a dicha frecuencia. El segundo grupo tiene por objeto determinar la frecuencia para la que se anula la fase de la funcin de transferencia, y los consiguientes valores de mdulo y fase. Los resultados obtenidos se indican ms abajo. Es conveniente que el lector repare en la forma en la que se ha establecido el clculo de la segunda frecuencia. El mximo del mdulo es un valor concreto del vector que

contiene los valores de aqul; por tanto, es posible hallar directamente la posicin que ocupa tal valor en el vector. En cambio, la condicin de que la fase sea nula es algo impuesto externamente. En otras palabras, el vector que almacena los valores de la fase puede no contener el valor 0 exacto. Por consiguiente, es preciso determinar de forma aproximada la posicin dentro del vector que ocupa el valor de la fase ms prximo a 0. modmax = 0.2500 wcentral = 1.4130 fasecentral = 0.0681 wfasenula = 1.4130 modfasnul = 0.2500 fasenula = 0.0681 Obsrvese que en este caso las dos frecuencias son idnticas en apariencia. Ello puede ser as realmente, o bien el resultado de las aproximaciones y redondeos internos del programa en el caso particular de la funcin de transferencia considerada. Sin embargo, debe recordarse que, en general, tales frecuencias pueden diferir significativamente una de otra. Consideraciones sobre la representacin de la fase En ocasiones la representacin de la fase presenta una discontinuidad (por ejemplo, pasando de -180 a 180 ) a una frecuencia dada. Esta circunstancia puede deberse a que el circuito se comporta de forma que realmente se produce dicha discontinuidad, o bien puede ser originada por la manipulacin matemtica interna de Matlab. A este respecto, recurdese que, a fin de cuentas, los ngulos y 180 + tienen la misma tangente y que es la tangente la funcin que suele utilizarse en la determinacin de ngulos en ordenadores y calculadoras. Para tener la seguridad de que el comportamiento representado es el que corresponde realmente al circuito puede utilizarse la instruccin unwrap (fase) % Elimina discontinuidades debidas al clculo en la representacin de la fase La instruccin unwrap utiliza y devuelve ngulos expresados en radianes. Esta circunstancia debe ser tenida en cuenta cuando se pretende obtener representaciones en grados sexagesimales. A ttulo de ejemplo de la utilizacin de esta instruccin considrese el siguiente fragmento de rutina. s = i*w; Hs = s./(s.^4 + 2*s.^3 + 4*s.^2 + 2*s + 1); fas = angle(Hs); fase1 = (180/pi)*unwrap(fas); fase2 = (180/pi)*angle(Hs); semilogx (w, fase1, 'b', 'LineWidth', 2); % Sin discontinuidades de clculo (azul) hold on; semilogx (w, fase2, 'r', 'LineWidth', 2); % Con posibles discontinuidades (rojo) Con ayuda de este fragmento pueden obtenerse curvas como las representadas en la figura siguiente.

Por otro lado, la figura siguiente muestra un caso en el que la discontinuidad es propia del circuito y, por tanto, no puede ser eliminada con ayuda de la instruccin unwrap.

Esta segunda figura ha sido obtenida con ayuda del mismo fragmento de rutina considerado anteriormente, aunque cambiando la instruccin que define la funcin de transferencia. Determinacin simultnea de mdulo y fase En los epgrafes anteriores hemos presentado rutinas que tratan separadamente la representacin de mdulos y fases de funciones de transferencia de circuitos funcionando en rgimen sinusoidal permanente. Sin embargo, existe una instruccin que permite efectuar dicha representacin simultneamente. Se trata de la instruccin freqs (pol1, pol2, w) % Obtiene la variacin con w de la fraccin en la que pol1 y pol2 % son los polinomios del numerador y el denominador, respectivamente La rutina y la figura siguientes recogen un ejemplo de la utilizacin de esta instruccin. Como puede observarse, su uso implica una reduccin del nmero de instrucciones necesarias (antes eran precisas abs y angle), as como una disminucin del riesgo de equivocarse en la utilizacin de operadores precedidos de punto. Incluso, como se hace en la rutina siguiente, no es necesario definir explcitamente los polinomios que constituyen el numerador y el denominador de la fraccin a representar. A cambio, la utilizacin de esta instruccin comporta algunos inconvenientes. Por ejemplo, no es posible editar las figuras (la edicin la hace automticamente Matlab). Adems, el eje de ordenadas de la representacin del mdulo es de tipo logartmico, lo cual da lugar a una forma de presentacin muy poco habitual en este tipo de problemas. En este sentido, puede observarse que la funcin considerada en este ejemplo ya ha sido representada en uno anterior y comparar ambos tipos de representacin. %%%%% MDULO Y FASE DE UNA FRACCIN %%%%% clear all; % Elimina variables utilizadas en otras rutinas w = logspace (-2, 3, 1000); % Rango de frecuencias s = i*w; freqs ([0.5 0], [1 2 2], w); % Mdulo y fase del cociente de dos polinomios

clear all; % Elimina las variables utilizadas en esta rutina

4. Ejercicios propuestos Ejercicio 1

El siguiente circuito, representado en notacin fasorial, funciona en rgimen sinusoidal permanente a una frecuencia angular dada. Se desea obtener los valores de los fasores de las corrientes de malla y de la tensin en la fuente dependiente.
Ejercicio 2

Obtener la transformada de Laplace (expresndola como cociente de dos f ( t ) =3 ( t ) 2 t e 5 t +4 e 2 t cos(8 t ) . polinomios) de la funcin:
Ejercicio 3

Obtener la transformada inversa de Laplace de la funcin


L(s) = 2 s 6 + 2.3 s 5 6.39 s 4 6.755 s 3 1.9925 s 2 0.0275 s + 0.005 . s 6 + 3.1s 5 + 2.55 s 4 + 0.725 s 3 + 0.05 s 2

Ejercicio 4

Representar la variacin con la frecuencia del mdulo y la fase de la funcin de transferencia de un circuito funcionando en rgimen sinusoidal permanente.
H (s) = 2 10 6 s 2 +1018 (s +106 )(s 2 + 2 106 s +1012 ) .

You might also like