Control Básico Toolbox: Control System Facultad de Ingeniería-UNER GUÍA PARA EL USO DE MATLAB PARTE 1 GUÍA DE USUARIO BÁSICO PARA MATLAB El programa Matlab MatLab (MATrix LABoratory) es un programa para realizar cálculos numéricos con vectores y matrices. Una de las capacidades más atractivas es la de realizar una amplia variedad de gráficos en dos y tres dimensiones. MatLab es un gran programa de cálculo técnico y científico, que tiene su propio lenguaje de programación. Dicho lenguaje, es una herramienta de alto nivel para desarrollar aplicaciones técnicas fáciles de utilizar. Al arrancar MatLab se abre una ventana como la indicada en la Figura 1. Figura 1 Ventana Inicial La parte más importante de la ventana inicial es la Command Windows, que aparece en la parte derecha (recuadrada en rojo en la Figura 2). En esta sub-ventana es donde se ejecutan los comandos de MatLab, a continuación del símbolo característico (>>), que indica que el programa está preparado para recibir instrucciones. 1 Control Básico Toolbox: Control System Facultad de Ingeniería-UNER Figura 2 Sub-ventanas de comandos En la parte izquierda de la pantalla aparecen dos ventanas también muy útiles: en la parte superior aparece la ventana (recuadrada en verde en la Figura 2) Current Folder, que se puede alternar con Workspace clickeando en la pestaña correspondiente. La ventana Current Folder muestra los ficheros del directorio activo o actual. El Workspace contiene información sobre todas las variables que se hayan definido en esta sesión y permite ver y modificar las matrices y vectores con los que se esté trabajando. En la parte inferior aparece la ventana (recuadrada en azul en la Figura 2) Command History que muestra los últimos comandos ejecutados en la Command Window. Estos comandos se pueden volver a ejecutar haciendo doble click sobre ellos. La instrucciones se pueden proporcionar directamente en la venta de comando (Command Window) o a través de ficheros-M (o M-files). Estos ficheros tienen la extensión *.m y contienen conjuntos de comandos o definición de funciones. La importancia de estos ficheros-M es que al teclear su nombre en la línea de comandos y pulsar Intro, se ejecutan uno tras otro todos los comandos contenidos en dicho fichero. Aunque los ficheros *.m se pueden crear con cualquier editor de texto tal como Block de Notas, Notepad, Word, etc, MatLab dispone de un editor que permite crear y modificar estos ficheros, como ejecutarlos paso a paso para ver si contiene errores. La Figura 3 muestra la ventana principal del Editor. El editor muestra con diferentes 2 Control Básico Toolbox: Control System Facultad de Ingeniería-UNER colores los diferentes tipos o elementos constitutivos de los comandos (en verde los comentarios, en rojo las cadenas de caracteres, etc.). Las líneas de comentario se indican con el carácter % delante del comentario. Figura 3 Ventana del editor de texto Operaciones con vectores y matrices Para definir una matriz o un vector no hace falta establecer de antemano su tamaño. Las matrices se definen por filas, los elementos de la misma fila están separados por blancos o por comas, mientras que las filas están separadas por pulsaciones intro o por caracteres punto y coma (;). Por ejemplo el siguiente comando define una matriz ‘A’ de dimensión 3x3: 3 Control Básico Toolbox: Control System Facultad de Ingeniería-UNER De forma análoga a las matrices, es posible definir un vector fila ‘x’ en la forma siguiente: En MatLab se accede a los elementos de un vector poniendo el índice entre paréntesis, por ejemplo: Para definir un vector columna ‘y’ hay que separar los elementos por (;) o intro, Y de la misma forma se accede a un elemento de él: MatLab tiene en cuenta la diferencia entre vectores fila y vectores columna. Si intentamos sumar los vectores ‘x’ e ‘y’ obtendremos el siguiente mensaje de error: 4 Control Básico Toolbox: Control System Facultad de Ingeniería-UNER Para poder sumar los vectores necesitamos que ambos sean vectores filas o ambos columna. Si hacemos: Transforma el vector fila ‘x’ en un vector columna. Si sumamos ahora obtenemos: Si transformamos ‘y’ en vector fila y sumamos, entonces: Operaciones entre vectores MatLab puede operar con vectores por medio de operadores y por medio de funciones. Los operadores son los siguientes: Suma (+) : 5 Control Básico Toolbox: Control System Facultad de Ingeniería-UNER Resta (-) : Multiplicación (*): 1. Vector fila por vector columna, el resultado es un número. 2. Vector columna por vector fila, el resultado es una matriz. Producto elemento a elemento (.*): 1. Por un número: 2. Por un vector elemento a elemento: 6 Control Básico Toolbox: Control System Facultad de Ingeniería-UNER División elemento a elemento: 1. División de todos los elementos del vector por un número(./) 2. División de un número por todos los elementos de un vector (.\) Elevar a una potencia elemento a elemento (.^) Si anteriormente no hemos definido el vector x se hace de la misma forma, es decir: 7 Control Básico Toolbox: Control System Facultad de Ingeniería-UNER Funciones de Matlab Funciones Matemáticas elementales: Se aplican a valores escalares o a vectores elemento a elemento. sin(x) -> función seno cos(x)-> función coseno tan(x) -> función tangente log(x) -> función logaritmo neperiano log10(x) -> función logaritmo decimal exp(x) -> función exponencial sqrt(x) -> función raíz cuadrada round(x) -> función redondeo hacia el entero mas próximo abs(x) -> función valor absoluto Funciones que actúan sobre vectores: Las siguientes funciones solo actúan sobre vectores. [xm,im ]=max(x) [ym,jm]=min(x) sum(x) mean(x) std(x) Devuelve el valor máximo xm y la posición im del vector x Devuelve el valor mínimo ym y la posición jm Suma de los elementos de un vector Valor medio de los elementos del vector Desviación estándar Funciones para cálculos con polinomios: Para MatLab un polinomio se puede definir mediante un vector de coeficientes. Por ejemplo, el polinomio: x4-8x2+6x -10=0 se puede representar mediante el vector [1, 0, -8, 6, -10]. MatLab puede realizar diversas operaciones sobre él, como por ejemplo evaluarlo para un determinado valor de ‘x’ Si se tiene el siguiente polinomio: p(s) = s3 + 3s2 + 4 » p=[1 3 0 4] 8 Control Básico Toolbox: Control System Facultad de Ingeniería-UNER Algunas de las funciones que podemos realizar sobre éste son las siguientes: » r=roots(p) Calcula las raíces de p(s)=0 r= -3.3553 0.1777 + 1.0773i 0.1777 - 1.0773i Rearma el polinomio a partir de las raíces » q=poly(r) q= 1.0000 3.0000 raíces 0.0000 4.0000 + 0.0000i También podemos realizar: » p=[3 2 1]; q=[1 4]; » n=conv(p,q) n= Multiplica los polinomios p y q n(s)=3s3+14s2+9s+4 3 14 9 4 » val=polyval(n,-5) val = -66 Evalúa n(s) en s=-5 Gráficas bi-dimensionales MatLab dispone de cinco funciones básicas para crear gráficos 2-D. Estas funciones se diferencian principalmente por el tipo de escala que utilizan en los ejes de abscisas y de ordenadas. Estas cuatro funciones son las siguientes: plot() crea un gráfico a partir de vectores y/o columnas de matrices, con escalas lineales sobre ambos ejes. loglog() ídem con escala logarítmica en ambos ejes. semilogx() ídem con escala lineal en el eje de ordenadas y logarítmica en el eje de abscisas. semilogy() ídem con escala lineal en el eje de abscisas y logarítmica en el eje de ordenadas. 9 Control Básico Toolbox: Control System Facultad de Ingeniería-UNER plotyy() dibuja dos funciones con dos escalas diferentes para las ordenadas, una a la derecha y otra a la izquierda de la figura. Existen además otras funciones orientadas a añadir títulos al gráfico, a cada uno de los ejes, a dibujar una cuadrícula auxiliar, a introducir texto, etc. Estas funciones son las siguientes: title('título') añade un título al dibujo. xlabel('tal') añade una etiqueta al eje de abscisas. Con ‘xlabel off’ desaparece. ylabel('cual') añade una etiqueta al eje de ordenadas. Con ‘ylabel off’ desaparece. Ejemplo: Una segunda forma de utilizar la función plot() es con dos vectores como argumentos. En este caso los elementos del segundo vector se representan en ordenadas frente a los valores del primero, que se representan en abscisas. 10 Control Básico Toolbox: Control System Facultad de Ingeniería-UNER Ejemplo: Por último, desde la ventana de graficación pueden realizarse cambios en las formas de mostrar las funciones como por ejemplo modificar colores, escalas, agregar leyendas, etc. Una ventana gráfica se puede dividir en m particiones horizontales y n verticales, con objeto de representar múltiples gráficos en ella. Cada una de estas subventanas tiene sus propios ejes, aunque otras propiedades son comunes a toda la figura. La forma general de este comando es: donde m y n son el número de subdivisiones en filas y columnas, e i es la subdivisión que se convierte en activa. Las subdivisiones se numeran consecutivamente empezando por las de la primera fila, siguiendo por las de la segunda, etc. Por ejemplo, la siguiente secuencia de comandos genera seis gráficos en la misma ventana: 11 Control Básico Toolbox: Control System Facultad de Ingeniería-UNER Es posible dibujar varias funciones en una sola ventana con la instrucción: >>hold on; Para desactivarla solo es necesario escribir: >>hold off; 12 Control Básico Toolbox: Control System Facultad de Ingeniería-UNER 13 Control Básico Toolbox: Control System Facultad de Ingeniería-UNER GUIA PARA EL USO DE MATLAB PARTE 2 TOOLBOX DE CONTROL FUNCION DE TRANSFERENCIA MatLab es una potente herramienta para el análisis de ‘sistemas’ descriptos por funciones de transferencia. La función de transferencia de un sistema lineal e invariante en el tiempo, relaciona la transformada de Laplace de la salida con la transformada de Laplace de la entrada en un sistema de ecuaciones diferenciales a condiciones iniciales nulas. En forma genérica se representa de la siguiente forma: Y ( s) am s m am1 s m1 ...a1 s a0 G( s) U ( s) s n bn1 s n1 ...b1 s b0 En sistemas reales o físicamente realizables m <= n. El polinomio del denominador igualado a cero representa la ecuación característica que se utiliza ampliamente en el análisis de la estabilidad del sistema. Para crear funciones de transferencia en MatLab se utilizan los siguientes comandos: a) g=tf(num,den) dónde “num” es un vector que contiene los coeficientes del polinomio del numerador de G(s) ordenado respecto a las potencias de s donde el primer elemento es el coeficiente que acompaña a la mayor potencia de s. “den” es otro vector que contiene los coeficientes del polinomio del denominador de G(s) ordenados de la misma forma que para el numerador. Ejemplo de sintaxis en MatLab % Introducir una función de transferencia polinómica G( s) s 2 2.s 3 s 3 3.s 2 3.s 1 14 Control Básico b) Toolbox: Control System Facultad de Ingeniería-UNER g=zpk(z,p,k) Donde “z” es un vector que contienen los ceros del numerador de G(s), “p” es un vector que tiene los polos de G(s) y “k” es la ganancia estática de G(s) Ejemplo de sintaxis en MatLab %Cargar en Matlab una G(s) que tiene ceros en -1 y -2, polos en -10, -3+/-3i % y ganancia estática k=5 G( s) c) 5( s 1)(s 2) ( s 10)(s ^ 2 6s 18) s=tf(‘s’) A partir de esta instrucción de puede utilizar la “s” en las expresiones polinómicas de G(s) para que Matlab las interprete como funciones de transferencia. Ejemplo de sintaxis en MatLab s 2 2.s 3 G( s) 3 s 3.s 2 3.s 1 % Introducir una función de transferencia polinómica 15 Control Básico Toolbox: Control System Facultad de Ingeniería-UNER Una función de transferencia se puede descomponer en fracciones simples, utilizando la instrucción ‘residue’ de MatLab. La diferencia con respecto a la forma tradicional de trabajo, es que, si existen polos complejos, los residuos que devuelve ‘residue’ corresponden a cada uno de los polos: G( s) Y ( s) a m s m a m1 s m1 ...a1 s a 0 r (1) r ( 2) r ( n) ...... k ( s) n n 1 U ( s) s bn 1 s ...b1 s b0 s p(1) s p(2) s p( n) G( s) Y ( s) num( s) U ( s) den( s) [r,p,k]=residue(num,den) residuos polos término independiente Como práctica ingresar la siguiente función de transferencia y descomponerla en fracciones simples : G( s) » n=[1 1]; » d=[1 3 1 7]; » [r,p,k]=residue(n,d) s 1 s 3.s 2 s 7 3 r= -0.1630 0.0815 - 0.1493i 0.0815 + 0.1493i p= -3.3307 0.1654 + 1.4402i 0.1654 - 1.4402i k= [] 16 Control Básico Toolbox: Control System Facultad de Ingeniería-UNER REPRESENTACIÓN EN DIAGRAMA DE BLOQUES: Los diagramas de bloques representan gráficamente a un sistema indicando las funciones realizadas por cada componente y el flujo de las señales. Generalmente los elementos que podemos encontrar en este tipo de representación son: la planta (elemento a controlar), controladores, actuadores, sensores, entre otros. Un sistema sencillo de control a lazo abierto lo podemos obtener a partir de la interconexión en serie de la planta y del controlador. La función de transferencia obtenida para este caso en forma genérica sería: U(s) SISTEMA 1 G1(s) T ( s) SISTEMA 2 G2(s) Y ( s) num U ( s) den G1( s) num1 den1 Y(s) G2( s) num2 den2 [num,den]=series (num1,den1,num2,den2) En ciertos sistemas pueden aparecer bloques en paralelo, y para su resolución, MatLab utiliza la instrucción parallel: SISTEMA 1 G1(S) + Y(S) U(s) + SISTEMA 2 G2(S) 17 Control Básico Toolbox: Control System T ( s) Y ( s) num U ( s) den G1( s) num1 den1 Facultad de Ingeniería-UNER G2( s) num2 den2 [num,den]=parallel(num1,den1,num2,den2) En el caso que se quiera obtener la función de transferencia de un sistema realimentado podemos utilizar la función ‘feedback’ de MatLab para calcular la función resultante : R(s) + Y(s) SISTEMA 1 G(S) SISTEMA 2 H(S) T ( s) Y ( s) num U ( s) den G( s) num1 den1 H(s) = num2 1 Realimentacion Positiva o negativa den2 [num,den]=feedback(num1,den1,num2,den2,signo) Como ejemplo se calcula la función de transferencia total de los siguiente diagrama de bloques haciendo uso de las instrucciones de Matlab de dos maneras diferentes : Entrada + - 540 + - 10 s 1 1 2. s 0.5 Salida + + 01 . 18 Control Básico Toolbox: Control System Facultad de Ingeniería-UNER >> s=tf(‘s’); >> f1=10/(s+1); >> f2=1/(2*s+0.5); >> f3=0.1; >> f4=540; >> fp=parallel(f1,f2); >> fb=feedback(fp,f3,-1); >> fs=series(fb,f4); >> ft=feedback(fs,1,-1); >> ft Transfer function: 11340 s + 3240 -------------------------2 s^2 + 1.134e004 s + 3241 Resumen de instrucciones para la resolución de bloques: Función en MATLAB Descripción Sintaxis basica feedback Sistema Realimentado H=feedback(H1,H2) parallel series Diagrama Es el paralelo de dos sistemas, es H=parallel(H1,H2) equivalente a sumar sistemas. Sistemas en serie, es equivalente a multiplicar sistemas. H=series(H1,H2) 19 Control Básico Toolbox: Control System Facultad de Ingeniería-UNER RESPUESTA TEMPORAL DE SISTEMAS: El objetivo que nos planteamos es el de mostrar cómo Matlab describe la respuesta temporal de cualquier sistema a diferentes entradas: Entrada escalón : Y(t) - salida valuada en t G(s) = num den X(t) - respuesta de esatdo en t t - tiempo de simulacion t - tiempo al que es calculado la respuesta al escalon ( opcional ) [y,x,t]=step(num,den,t) Ejemplo usando función de transferencia: 20 Control Básico Toolbox: Control System Facultad de Ingeniería-UNER Entrada impulso : Y(t) - salida valuada en t G(s) = num den X(t) - respuesta de esatdo en t t - tiempo de simulacion t - tiempo al que es calculado la respuesta al impulso ( opcional ) [y,x,t]=impulse(num,den,t) 21 Control Básico Toolbox: Control System Facultad de Ingeniería-UNER Ejemplo usando función de transferencia: Entrada arbitraria creada por el usuario : Y(t) - salida valuada en t G(s) = num U - entrada den t - tiempo al que es calculado la respuesta a U X(t) - respuesta de esatdo en t [y,x]=lsim(num,den,u,t) 22 Control Básico Toolbox: Control System Facultad de Ingeniería-UNER Ejemplo usando función de transferencia: LUGAR DE RAÍCES: Teniendo un sistema como el de la figura la función transferencia a lazo cerrado es: La ecuación característica esta dada por el denominador de esta función transferencia igualado a cero. Para que esta igualdad se cumpla, y recordando que estamos en el plano complejo, se deben cumplir dos condiciones: 23 Control Básico Toolbox: Control System Facultad de Ingeniería-UNER Condición de ángulo: Condición de módulo: El lugar de raíces es un método a través del cual se puede visualizar como varían las raíces de la función transferencia a bucle cerrado a medida que la ganancia K del sistema crece de cero a infinito. Teniendo en cuenta que la ecuación característica debe tener la siguiente forma: Utilizando la instrucción ‘rlocus’ en MatLab puede obtenerse el lugar de raíces de una función transferencia. Ejemplo: % Siendo g la función en transferencia a bucle abierto. 24 Control Básico Toolbox: Control System Facultad de Ingeniería-UNER Los detalles de cómo trabajar con la gráfica (límites, títulos, colores, etc) serán explicados en la sección de respuesta en frecuencia ya que son similares a los que se pueden realizar sobre los diagramas de Bode. RESPUESTA EN FRECUENCIA: La función respuesta en frecuencia representa la manera en que el sistema responde a entradas de diferentes frecuencias. Para calcularla, se reemplaza la variable ‘s’ de la función de transferencia por ‘jω’. Bode La orden ‘bode’ calcula las magnitudes y los ángulos de fase de la respuesta en frecuencia de sistemas continuos, lineales e invariantes en el tiempo. Los diagramas de Bode se utilizan frecuentemente para analizar y diseñar sistemas de control. Estos diagramas indican el margen de ganancia, el margen de fase, la ganancia, el ancho de banda, etc. Cuando se introduce la orden ‘bode’ (sin argumentos del lado izquierdo), MatLab realiza el diagrama de bode sobre la pantalla, permitiendo además recuperar datos de los diferentes puntos. 25 Control Básico Toolbox: Control System Facultad de Ingeniería-UNER El diagrama de bode, resulta de mucha utilidad a la hora de establecer la estabilidad relativa de los sistemas. Para esto se utilizan los márgenes de estabilidad: Margen de Ganancia: Es valor de la ganancia en db cuando la fase cruza por -180° cambiado de signo. Para la estabilidad, este parámetro debe ser mayor a 6 db. Margen de Fase: Es el valor que toma la fase cuando la Magnitud cruza por 0db sumado a 180. Para la estabilidad, este parámetro debe ser mayor a 30°. En la gráfica se muestran los valores correspondientes al margen de fase y al margen de ganancia del sistema. Para que éstos indicadores aparezcan en pantalla, se debe hacer click con el botón derecho del mouse sobre la gráfica, seleccionar la opción ‘Características’ y luego elegir ‘Márgenes de estabilidad mínimos’. Hacer click con el botón izquierdo del mouse sobre los puntos para que aparezca el letrero. Al hacer click con el botón derecho del mouse sobre las gráficas aparecen varias opciones: System: indica con qué color se están representando cada función de transferencia en caso de que estemos graficando varias de ellas. De igual modo, se puede seleccionar para que solo aparezca en la gráfica la función de transferencia que a mí me interesa ver. 26 Control Básico Toolbox: Control System Facultad de Ingeniería-UNER Características: Posee tres opciones, de las cuales los dos últimas tiene relación a los márgenes de ganacia y fase. La primer opción, permite encontrar un pico en la magnitud en caso de que la gráfica lo posea. Show: Permite seleccionar si se quiere visualizar la magnitud, la fase o ambas gráficas en la misma ventana. Grid: Agrega una grilla que facilita la observación de las gráficas. Full view: Optimiza la visualización de las gráficas a fin de utilizar todo el espacio disponible con el trazado de la gráfica. Propiedades: Dicha ventana permite modificar varios parámetros de la gráfica como por ejemplo: etiquetas sobre los ejes, límites de la grafica, unidades de las variables, estilos de gráfica ( semilogarítmico, lineales) y desde esta ventana también se pueden varias las opciones antes descriptas. Para obtener información de la grafica o de cualquier punto de la misma, se debe hacer click con el botón izquierdo sobre la gráfica. A continuación aparecerá un punto cuadrado negro, con la información de dicho punto. Si colocamos el mouse sobre el punto y mantenemos apretado el botón izquierdo, podemos arrastrar el punto sobre la gráfica hasta cualquier punto de interés de la misma. Al escribir la sentencia ‘margin (función de transferencia)’ se obtiene lo siguiente: 27 Control Básico Toolbox: Control System Facultad de Ingeniería-UNER Por otra parte, es posible obtener los márgenes de ganancia y los márgenes de fase mediante la función ‘margin’. [mg,mf,wmg,wmf]=margin(num, den); Mg es el margen de ganancia del sistema. Mf es el margen de fase. Wmg es la frecuencia a la cual sucede el cruce de la fase por -180º. Wmf es la frecuencia de cruce de ganancia por cero. Otra forma de introducir la sentencia bode en Matlab es la siguiente: Las matrices mag y fase contienen las magnitudes y los ángulos de fase de la respuesta en frecuencia del sistema evaluados en los puntos de frecuencia especificados por el usuario. El vector w se define, por ejemplo, de la siguiente manera: Siendo el valor representado por -2, en este caso, la potencia del límite menor de la gráfica. El 3 representa la potencia del límite superior. Por último, el 100 es la cantidad de espacios separados logarítmicamente entre los extremos. 28 Control Básico Toolbox: Control System Facultad de Ingeniería-UNER Nyquist Es otra manera de representar la respuesta en frecuencia del sistema. Consiste en una gráfica donde el eje ‘x’ se denomina eje real y el ‘y’, eje imaginario. La imagen se construye con la magnitud y la fase según cómo varíen con la frecuencia ω. Por otra parte, es posible obtener los márgenes de ganancia y los márgenes de fase mediante la función ‘margin’. [mg,mf,wmg,wmf]=margin(num, den); Mg es el margen de ganancia del sistema. Mf es el margen de fase. Wmg es la frecuencia a la cual sucede el cruce de la fase por -180º. Wmf es la frecuencia de cruce de ganancia por cero. 29 Control Básico Toolbox: Control System Facultad de Ingeniería-UNER GUIA PARA EL USO DE MATLAB PARTE 3 Symbolic Math Toolbox Las rutinas de matemática simbólica de MatLab son utilizadas para poder escribir ecuaciones con variables genéricas sin necesidad de crear vectores. Algunas ventajas del Symbolic Math Toolbox para el diseño y análisis de sistemas: Las funciones y ecuaciones se pueden ingresar de manera simbólica, pudiéndose utilizar tanto caracteres alfabéticos como numéricos. Por ejemplo puede ingresar B = x^2+3*x+7, en lugar de B= [1 3 7]. También puede ingresar B=a*x^2+b*x+c. Se pueden manipular algebraicamente y simplificar expresiones simbólicas. Las transformadas de Laplace y Z se pueden ingresar y determinar sus inversas en forma simbólica. Las funciones se puede “imprimir con una mejor presentación” para mejor claridad en la Command Window y entonces imprimirse en papel. 1. Definición de objetos simbólicos: El inicio de cualquier cálculo simbólico requiere definir los objetos simbólicos, por ejemplo, la variable de la transformada de Laplace (s) o la variable de tiempo (t). Se utiliza el comando: syms s t, siendo s y t la variables simbólicas. Solamente en necesario definir los objetos que entran al programa, las variables producidas por el programa no necesitan definirse. De este modo, si se está determinando transformadas inversas de Laplace, solamente se necesita definir s puesto que t resulta del cálculo. 2. Imprimir con mejor presentación: Se utiliza el comando pretty(F), siendo F la función que se quiere imprimir en bonito. Ejemplo 1: syms s; %declaro variable simbólica F=2/[(s+1)*(s+2)^2] %función de transferencia pretty(F) %imprimo en bonito f=ilaplace(F) %transformada inversa pretty(f) Vista en Command Window: Sin pretty: F= 2/((s + 1)*(s + 2)^2) 30 Control Básico Toolbox: Control System Facultad de Ingeniería-UNER Con pretty: 2 ---------------2 (s + 1) (s + 2) 3. Cambios en la apariencia de los resultados desplegados: collect(F,s): Reúne los términos con coeficientes comunes de F, si coloco s le aclaro que variable quiero que reúna. expand(F): Expande los productos de factores. factor(F): Factores de F. simple(F): Determina la forma más sencilla de F con el menor número de términos. simplify(F): Simplifica F. vpa(expression, places): Quiere decir precisión aritmética variable, este comando convierte términos simbólicos fraccionarios en términos decimales con un número específico de lugares después de la coma. Ejemplo 2: syms t; f=2*exp(-t)-2*t*exp(-2*t)-2*exp(-2*t);%defino la función en el tiempo 'Función en el tiempo' %desplego etiqueta pretty(f) F=laplace(f);%calculo su transformada, tener en cuenta que Matlab da F(s) %fracciones parciales 'Transformada' pretty(F) %imprimir en bonito las fracciones paciales F=simplify(F); %Combino las fracciones parciales 'Con simplify' pretty(F) Vista en Command Window: Función en el tiempo 2 2 2t ------ - -------- -------exp(t) exp(2 t) exp(2 t) 31 Control Básico Toolbox: Control System Facultad de Ingeniería-UNER Transformada 2 2 2 ----- - ----- - -------s+1 s+2 2 (s + 2) Con simplify 2 ---------------2 (s + 1) (s + 2) Ejemplo 3: syms t; f=3/16-3/16*exp(-t)*[cos(2*t)+(1/2)*sin(2*t)]; F=laplace(f); 'Transformada' pretty(F) F=vpa(F,3); 'Precisión aritmética variable con pretty' pretty(F); Vista en Command Window: Transformada 3 3 (s + 1) ---- - ----------------- 16 s 2 16 ((s + 1) + 4) 3 ----------------2 16 ((s + 1) + 4) Precisión aritmética variable con pretty 0.188 ----- s 0.188 ---------------- 2 (s + 1.0) + 4.0 0.188 (s + 1.0) ---------------2 (s + 1.0) + 4.0 Ejemplo 4: syms x y z; a=collect(((log(x)+2*x)*(x+2))) b=collect((2*x+y)*(x^3+5*y+3),y) 32 Control Básico Toolbox: Control System Facultad de Ingeniería-UNER d=expand((z+3)*(z+6)*(z-4)) e=x^3+x^2+3*x+x*y+x*z; f=factor(e) g=sin(x)^2+cos(x)^2; h=simple(g) Vista de Command Window a= 2*x^2 + (log(x) + 4)*x + 2*log(x) b= 5*y^2 + (x^3 + 10*x + 3)*y + 2*x*(x^3 + 3) d= z^3 + 5*z^2 - 18*z - 72 f= x*(x^2 + x + y + z + 3) h= 1 4. Funciones transferencia con la regla de Cramer: La regla de Cramer da la solución de un sistema de ecuaciones lineales con el mismo número de incógnitas que de ecuaciones, el determinante de la matriz de los coeficientes debe ser distinto de cero. Un sistema de ecuaciones lineales tiene la forma Ax=B, siendo A la matriz formada por los coeficientes de las incógnitas, x es el vector de las incógnitas y B es un vector que contiene las entradas. Xk= det(Ak)/det(A), siendo Ak la matriz formada al reemplazar la k-ésima columna de la matriz A con elvector de entrada B Ejemplo 5: Dado el siguiente circuito obtener la función de transferencia (I2/V) aplicando regla de Cramer. 33 Control Básico Toolbox: Control System Facultad de Ingeniería-UNER Solución: Obtenemos el sistema de ecuaciones: (R1+Ls) I1 - Ls I2 = Vi -Ls I1 + (Ls+R2+1/Cs) I2 = 0 LC.s 2 G( s) ( R 2 R1)CL.s 2 ( R1R2C L).s R1 En MatLab: syms Vi R1 L R2 C s; A2=[(R1+L*s) Vi;-L*s 0]; A=[(R1+L*s) -L*s; -L*s (L*s+R2+(1/(C*s)))]; I2=det(A2)/det(A) G=I2/Vi; G=collect(G,s) pretty(G) Vista en Command Window I2 = (C*L*Vi*s^2)/(R1 + L*s + C*L*R1*s^2 + C*L*R2*s^2 + C*R1*R2*s) G= ((C*L)*s^2)/((C*L*R1 + C*L*R2)*s^2 + (L + C*R1*R2)*s + R1) 2 (C L) s ------------------------------------------2 (C L R1 + C L R2) s + (L + C R1 R2) s + R1 34 Control Básico 5. Toolbox: Control System Facultad de Ingeniería-UNER Ingreso de funciones de transferencia complicadas: Cuando se tiene funciones de transferencia complicadas, se puede hacer distributiva en tres pasos. Ejemplo 6: En MatLab: syms s; G=(54*(s+27)*(s^3+52*s^2+37*s+73))... /(s*(s^4+872*s^3+437*s^2+89*s+65)*(s^2+79*s+36)); [numg,deng]=numden(G); numg=sym2poly(numg); deng=sym2poly(deng); 'Función transferencia reordenada' Gtf=tf(numg,deng) 'Función de transferencia en forma de ceros y polos' Gzpk=zpk(Gtf) Vista en Command Window Función transferencia reordenada Transfer function: 54 s^4 + 4266 s^3 + 77814 s^2 + 57888 s + 106434 --------------------------------------------------------------------s^7 + 951 s^6 + 69361 s^5 + 66004 s^4 + 22828 s^3 + 8339 s^2 + 2340 s Función de transferencia en forma de ceros y polos Zero/pole/gain: 54 (s+51.31) (s+27) (s^2 + 0.6934s + 1.423) -------------------------------------------------------------------s (s+871.5) (s+78.54) (s+0.558) (s+0.4584) (s^2 - 0.05668s + 0.1337) 6. Graficación: Se pueden hacer gráficas bidimensionales con objetos simbólicos, se utiliza la instrucción ezplot(f, [xmin xmax]), si no se colocan los valores [xmin xmax], MatLab grafica automáticamente entre -2*pi y 2*pi. Ejemplo7: En MatLab: syms x;hold on; ezplot(abs(x), [-3 3]); ezplot(x^2, [-3 3]) figure subplot(2,1,1) ezplot(cos(x)) 35 Control Básico Toolbox: Control System Facultad de Ingeniería-UNER subplot(2,1,2) ezplot(x^3) 36 Control Básico Toolbox: Control System Facultad de Ingeniería-UNER 37