Ingeniero Electrnico: Monteza Zevallos Fidel Tomas
Marzo de 2014 (Primera Edicin)
ndice general
Introduccin
1. Entorno Grfico
2. Bloques Principales 2.1. Introduccin 2.2. Librera de Sistemas Lineales en Tiempo-Continuo (Continuous) 2.2.1. Bloque Derivative 2.2.2. Bloque Integrator 2.2.3. Bloque State-Space 2.2.4. Bloque Zero-Pole 2.2.5. Bloque Transfer Fcn 2.2.6. Bloque Transport Delay 2.3. Librera de Puertos y Subsistemas (Ports & Subsystems) 2.4. Librera de Sumidero (Sink) 2.4.1. Bloque Scope 2.4.2. Bloque Display 2.4.3. Bloque To Workspace 2.5. Librera de Funciones Definidas por el Usuario (User-Defined Functions) 2.5.1. Bloque Fcn 2.5.2. Bloque MATLAB Fcn 2.6. Librera de Fuentes (Sources) 2.6.1. Bloque From Workspace 2.6.2. Bloque Constant 2.6.3. Bloque Signal Generator 2.6.4. Bloque Ramp 2.6.5. Bloque Sine Wave 2.6.6. Bloque Step 2.7. Librera de Operaciones Matemticas (Math Operations) 2.7.1. Bloque Sum 2.7.2. Bloque Product 2.7.3. Bloque Gain 2.7.4. Bloque Trigonometric Function 2.7.5. Bloque Math Function 2.8. Librera de Ruta de Seales (Routing Signals) 2.8.1. Bloque Manual Switch 2.8.2. Bloques Mux y Demux
3. Simulaciones 3.1. Obtencin de las ecuaciones 3.2. Modelar las ecuaciones: identificacin de los bloques de Simulink 3.3. Creacin del archivo de Simulink 3.4. Configuracin de los parmetros de la simulacin 3.4.1. Tiempo de simulacin 3.4.2. Mtodo de integracin 3.4.3. Intervalo de muestreo 3.5. Anlisis de los resultados Introduccin MATLAB (abreviatura de MATrix LABoratory, "laboratorio de matrices") es una herramienta de software matemtico que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programacin propio (lenguaje M) y servicio de especie. Est disponible para las plataformas Unix, Windows, Mac OS X y GNU/Linux. Entre sus prestaciones bsicas se hallan: manipulacin de matrices, representacin de datos y funciones, implementacin de algoritmos, creacin de interfaces de usuario (GUI) y comunicacin con programas en otros lenguajes y con otros dispositivos hardware. El paquete MATLAB dispone de dos herramientas adicionales que expanden sus prestaciones a saber. Simulink (plataforma de simulacin multidominio) y GUIDE (editor de interfaces de usuario - GUI). Adems se pueden ampliar las capacidades de MATLAB con las cajas de herramientas (toolboxes); y las de Simulink con los paquetes de bloques (blocksets). Es un software muy usado en universidades y centros de investigacin y desarrollo. La teora de control pretende resolver la regulacin de sistemas reales, para ello es fundamental plantear modelos y disear controladores. Dichos modelos y controladores deben ser validados para comprobar su comportamiento antes de plantear una implementacin real. Esta validacin se realiza mediante simulaciones para diferentes condiciones, por ello necesario tener claro que significa simular en este campo. Simular sistemas es resolver las ecuaciones que modelan sistemas y controladores durante un periodo de tiempo y para unas condiciones determinadas. Utilizar una buena herramienta de simulacin es importante para obtener resultados de forma fcil y rpida. Este trabajo presenta la descripcin del software Simulink que es una herramienta que se utiliza por un gran nmero estudiantes de ingeniera para realizar tareas de simulacin de modelos y controladores avanzados. El programa Simulink presenta ventajas frente a otros programas matemticos que podran ser tambin utilizados para resolver las ecuaciones de los sistemas tales como un entorno interactivo y un conjunto de libreras con bloques personalizables que permiten simular, implementar y probar una serie de sistemas variables en el tiempo. Adems Simulink est integrado en MATLAB y por ello es posible tener acceso a una amplia gama de herramientas que permiten desarrollar algoritmos, analizar y visualizar simulaciones. Adems se pretende ayudar al alumno para inicializarse en la programacin de esta til herramienta de simulacin y est dividida en las siguientes secciones:
El captulo 1 se presenta las nociones bsicas para familiarizarse con el entorno grfico del programa Simulink describiendo las opciones ms bsicas para manejar dicho programa. El captulo 2 describe en detalle los bloques ms usados para crear archivos en Simulink explicando las funcionalidades y los parmetros configurables de cada uno de ellos. El captulo 3 describe los pasos a seguir para simular un sistema, detallando la configuracin de los parmetros especficos de simulacin.
1. Entorno Grfico Para poder utilizar el programa Simulink correctamente es importante estar familiarizado con las ventanas y las herramientas, al programa Simulink se accede a travs del programa MATLAB.
En la figura 1.1 se muestra el entorno grfico de la ventana principal del programa MATLAB desde donde se accede al programa Simulink de varias formas.
Figura 1.1: Ventana principal MATLAB.
a.- En el men File (marcado en la figura como Archivo) se desprende un listado de opciones donde en la opcin New se debe elegir la sub-opcin Model, inmediatamente se abrir otra ventana correspondiente a la figura 1.2 la cual es la ventana principal del programa Simulink. b.- Tambin se puede acceder a dicho programa mediante la librera de Simulink, seleccionando el icono marcado en la figura 1.1 como Librera de simulink se abre una ventana que corresponde a la figura 1.3 y desde esa ventana se debe seleccionar el men Archivo, la opcin New y sub-opcin Model . c.- Otra forma es hacer click directamente el icono que representa una pgina en blanco que se marca en la figura 1.3 como Nuevo modelo. d.- Tambin digitando simulink en la ventana del Command Window (figura 1.3) y dando Enter.
Una vez que se llega al programa Simulink es importante tener claro cules son las opciones ms importantes para realizar correctamente las simulaciones.
La figura 1.2 muestra la ventana principal de Simulink, en esta ventana se encuentra el icono marcado como Librera de Simulink y haciendo clic en esta opcin se abre la librera (figura 1.3) donde se encuentran los bloques que permiten crear cualquier tipo de modelo o controlador que se desee simular.
Tambin son importantes las opciones marcadas como Activar simulacin, Parar simulacin y Tiempo de simulacin que permiten comenzar a simular cualquier archivo Simulink creado en esa misma ventana, parar esa simulacin en cualquier momento o bien cambiar el tiempo que se desea simular correspondientemente.
Simular un sistema significa resolver unas ecuaciones que describen un sistema real o un controlador durante un periodo de tiempo por lo que el tiempo de simulacin es el periodo total de tiempo para el cual el programa resuelve las ecuaciones, siendo por lo tanto un parmetro que debe ser elegido adecuadamente para poder analizar y representar correctamente los resultados simulados.
Figura 1.2: Ventana principal Simulink.
La opcin marcada como Parmetros de simulacin en la figura 1.2 abre una ventana ms completa donde es posible configurar parmetros ms avanzados y mejorar los resultados de las simulaciones, los parmetros bsicos de la configuracin de simulaciones sern explicados detalladamente en publicaciones posteriores.
Las opciones marcadas como Porcentaje simulacin y Mtodo de integracin informan durante la simulacin del sistema en concreto, de cuanto porcentaje de la simulacin ha sido realizada y el mtodo de integracin seleccionado previamente en las opciones de la simulacin, la figura 1.3 muestra la librera de Simulink donde se encuentran los bloques que se utilizan para crear los archivos de Simukink. Recordar que desde esta librera se pueden abrir archivos Simulink y tambin crear nuevos archivos mediante las opciones marcadas como Archivo y Nuevo modelo, cada uno de los bloques que sern detallados en el siguiente captulo tienen referenciado un nombre para poder ser buscados de forma ms rpida a travs de la casilla marcada en la figura 1.3 como Bsqueda de bloques donde escribiendo el nombre y haciendo clic en el icono que representa unos binoculares se realiza la bsqueda del bloque que tenga el nombre especificado entre todos los toolboxes. Los resultados de la bsqueda se mostrarn en la sub-ventana marcada en la figura 1.3 como Listado bloques.
En la sub-ventana marcada como toolboxes se encuentran listados todos los toolboxes, herramientas, de Simulink disponibles, si se hace clic en cada herramienta o toolbox se desplegar en la sub-ventana Listado de bloques los bloques que estn dentro de ese toolbox y que podrn ser utilizados para crear archivos de Simulink.
En la sub-ventana Descripcin de bloques describe los bloques que se marquen en la sub-ventana Listado bloques y ser de ayuda para entender el funcionamiento de estos mismos describiendo la funcionalidad, las entradas y las salidas.
Figura 1.3: Librera Simulink.
Las opciones Help que aparecen en cada una de las ventanas descritas en este captulo son de gran ayuda para profundizar en la programacin de Simulink. Todas la ventanas mostradas en las figuras puede que difieran un poco con otras versiones pero la mayora de las opciones pueden ser encontradas con la misma apariencia.
2. Bloques Principales
2.1. Introduccin En este captulo sern presentados los bloques ms utilizados en Simulink y necesarios para la Teora de Control, en la figura 2.1 se ilustran los bloques que se detallarn en este captulo, cada de uno podr ser configurado dependiendo de las exigencias del problema que se pretenda resolver mediante la ventana de dialogo de configuracin de cada bloque, a esta ventana se accede haciendo doble clic sobre el bloque seleccionado.
Figura 2.1: Bloques principales.
2.2. Librera de Sistemas Lineales en Tiempo-Continuo (Continuous) En este apartado se describirn los bloques para la implementacin de sistemas lineales en tiempo-continuo comnmente utilizados en control, estos bloques son presentados en la figura 2.2.
Figura 2.2: Bloques de la librera Continuous.
2.2.1. Bloque Derivative
El bloque Derivative aproxima la derivada de su entrada considerando los valores inciales de la salida igual a 0, la exactitud de los resultados depende del tamao del periodo de muestreo utilizado en la simulacin, pequeos pasos de muestreo permiten obtener una curva de la salida ms suave y exacta, ver seccin 3.4.3.
2.2.2. Bloque Integrator
El bloque Integrator integra su entrada, los resultados de la integracin van a depender del mtodo de integracin que se seleccione en el men Configuration Parameters al que se accede mediante la opcin marcada como Parmetros de simulacin de la figura 1.2, ver seccin 3.4.2. El programa Simulink trata el bloque integrador como un sistema dinmico con un estado, su salida, la entrada de este bloque es la derivada en el tiempo del estado, el algoritmo de integracin numrica seleccionado calcula la salida del bloque integrador en el periodo de muestreo actual usando el valor de entrada actual y del paso anterior, el bloque tambin provee una opcin de condicin inicial que permite configurar el estado inicial, la ventana de dialogo de parmetros para el bloque Integrator es presentada en la Figura 2.3.
Figura 2.3: Parmetros del bloque Integrator.
La ventana de dialogo Function Block Parameter permite especificar valores para la condicin inicial, tambin permite especificar lmites inferiores y superiores para la integracin. Para determinar los limites inferiores y superiores se debe seleccionar la opcin Limit output y asignar valores en los campos: Upper saturation limit y Lower saturation limit .
2.2.3. Bloque State-Space
El bloque State-Space implementa un sistema definido a travs de ecuaciones en el espacio de estados.
(2.1)
Donde: Los vectores columna son x y u La matriz A debe ser definida cuadrada nn, con n siendo el nmero de estados del sistema La matriz B debe de ser definida con dimensin nm, con m siendo el nmero de entradas La matriz C es definida con dimensin rn, donde r representa el nmero de salidas La matriz D posee dimensin rm. La ventana de dialogo de configuracin de parmetros para el bloque State-Space se presenta en la Figura 2.4
Figura 2.4: Parmetros del bloque State-Space.
2.2.4. Bloque Zero-Pole
El bloque Zero-Pole implementa un sistema con ceros, polos y ganancia especificada en el dominio-s, representa la funcin de transferencia particularizada con los parmetros especificados para un sistema dado.
Figura 2.5: Parmetros del bloque Zero-Pole.
Los parmetros del sistema pueden ser especificados en la ventana de configuracin como una expresin o como un vector, el bloque modificar su apariencia dependiendo de la especificacin de los parmetros.
Por ejemplo si en la ventana de dialogo Function Block Parameters (figura 2.5) se especifica Zeros como: [2 4 6 8]; Poles como: [1 3 5 7 9]; y Gain como: 25, el bloque se presentar como se muestra en la figura 2.6.
Figura 2.6: Bloque Zero-Pole especificado a travs de vectores.
Si cada parmetro es especificado como una variable simblica, por ejemplo ceros, polos, Ganancia, a la que se le asigna unos valores en la ventana de comando del programa MATLAB (figura 2.1 ventana comandos Matlab):
El bloque representar la funcin de transferencia a travs de las variables simblicas seguidas por (s), como se muestra en la figura 2.7.
Figura 2.7: Bloque Zero-Pole especificado a travs de variables.
2.2.5. Bloque Transfer Fcn
El bloque Transfer Fcn implementa una funcin de transferencia con la entrada U(s) y la salida Y(s) como se muestra a continuacin:
(2.2)
Asumiendo un sistema de primer orden con un polo en s = 10 y un zero en s = 2, modelado por la funcin de transferencia:
(2.3)
Este modelo se programa utilizando el bloque Transfer Fcn, a travs de la ventana de dialogo presentada en la figura 2.8 donde el numerador es [1 2] y el denominador es [1 10].
Figura 2.8: Parmetros del bloque Transfer Fcn.
3.2.6. Bloque Transport Delay
El bloque Transport Delay retrasa la entrada del bloque por un determinado periodo de tiempo, este bloque puede ser usado para simular retrasos de tiempo, en la ventana de configuracin el bloque permite seleccionar un valor inicial Initial output que se mantendr constante hasta que el tiempo de la simulacin exceda el valor del retraso Time delay.
Figura 2.9: Parmetros del bloque Transport Delay.
El parmetro Time delay no debe de ser negativo, el tiempo de muestreo debe ser seleccionado adecuadamente de manera que el tiempo de retraso sea mayor que ese valor.
2.3. Librera de Puertos y Subsistemas (Ports & Subsystems) En este apartado se detallarn nicamente los bloques de esta librera presentados en la figura 2.10.
Los bloques de puerto de entrada y puerto de salida (del ingls Inport Block y Outport Block) son puertos que sirven para conectar un sistema externo con un subsistema (interno).
El bloque Subsistema (del ingls Subsystem) representa un subsistema de un sistema, cuando el modelo o el sistema de control aumenta en tamao y complejidad se puede simplificar agrupando bloques en subsistemas.
Figura 2.10: Bloques de la librera Ports & Subsystems.
Para crear un subsistema se inserta el bloque Subsystem en la ventana Simulink (figura 1.2), este bloque abre una ventana (doble clic sobre el bloque) en la que se debe programar los bloques pertenecientes al subsistema, si se desea crear un subsistema directamente de un grupo de bloques que se hayan programado en la ventana principal de Simulink se debe seleccionar los bloques deseados y pulsar el botn derecho del mouse sobre estos eligiendo la opcin Create Subsystem del men.
2.4. Librera de Sumidero (Sink) Este apartado describir los bloques ms utilizados de la librera Sink, los bloques detallados son presentados en la figura 2.11.
Figura 2.11: Librera Sink.
2.4.1. Bloque Scope
El bloque Scope representa grficamente la entrada conectada a este bloque con respecto al tiempo de simulacin, este bloque permite representar varias variables a la vez para el mismo periodo de tiempo, permite ajustar el tiempo y el rango de los valores de entrada presentados, se puede mover y redefinir el tamao de la ventana Scope y se puede modificar los valores de sus parmetros durante la simulacin. Si la seal de entrada al bloque Scope est formada por varias variables (en lugar de un vector es una matriz), ste asigna colores a cada elemento de la seal en el siguiente orden: amarillo, magenta, can, rojo, verde y azul oscuro. Cuando la seal posee ms de seis elementos, se repite el orden de los colores. Se pueden ajustar los lmites del eje-y pulsando el botn derecho sobre la grfica y seleccionando la opcin Axis Properties. La ventana del bloque Scope posee varios iconos en la barra de herramienta que permiten realizar zoom en la grfica, preservar las configuraciones de los ejes para la simulacin siguiente, limitar los datos presentados y guardar los datos en el espacio de trabajo. Entretanto, el icono con mayor utilidad es el denominado Parameters. Si se pulsa este botn, la primera pestaa que aparece es la de los parmetros generales, mostrado en la figura 2.12. En esta pestaa un parmetro importante es el Number of axes que permite seleccionar el nmero de ejes que se desean representar en la grfica del bloque Scope.
Figura 2.12: Icono Parameters.
En la figura 2.13 se presentan los parmetros de la pestaa Data history. El parmetro Limit data points to last permite especificar cuantos puntos sern representados durante la simulacin. Por ejemplo, si la simulacin posee un periodo de muestreo muy pequeo, durante la simulacin se generar un nmero muy grande de puntos, lo que implica que est opcin debe de tener un nmero muy elevado para poder visualizar toda la simulacin correctamente. Si esta opcin aparece como no seleccionada, el bloque Scope por defecto representar todos los puntos generados. A travs de este cuadro de dilogo es posible tambin guardar los datos de las variables representadas en el espacio de trabajo del programa MATLAB. En la opcin Variable name se define el nombre de la variable y en Format se configura el formato con el que se guardarn los datos: Structure with time, Structure y Array. Por ejemplo, si se selecciona el formato Array, los datos sern guardados en una matriz, donde en la primera columna se almacenan el vector del tiempo de simulacin, y de la segunda columna el vector de la seal de entrada del bloque.
Figura 2.13: Icono Parameters. 2.4.2. Bloque Display
El bloque Display muestra por pantalla el valor de su entrada. Los formatos de los datos visualizados son los mismos utilizados en MatLabr. El parmetro Decimation habilita la visualizacin de los datos con la n-sima muestra, donde n es el factor de conversin al sistema decimal. El parmetro Sample time sirve para especificar el intervalo de muestreo para cual cada punto es visualizado. Se puede modificar el tamao del bloque para visualizar correctamente los valores mostrados por pantalla. Es posible modificarlo tanto vertical como horizontalmente. La presencia de un pequeo tringulo negro indica que el bloque no est mostrando todos los elementos por pantalla.
2.4.3. Bloque To Workspace
El bloque To Workspace (figura 2.14) enva su entrada al espacio de trabajo workspace de MATLAB. Este bloque enva los valores de la entrada a una variable con el nombre especificado en la opcin Variable name. La opcin Save format determina el formato de la variable de salida.
Figura 2.14: Parmetros del bloque To Workspace. 2.5. Librera de Funciones Definidas por el Usuario (User- Defined Functions) En este apartado se presentarn los bloques Fcn y MATLAB Fcn de la librera User-Defined Functions.
Figura 2.15: Librera User- Defined Functions.
2.5.1. Bloque Fcn
El bloque Fcn ejecuta una ecuacin especificada que depende de la entrada del bloque, denominada u. Si u es un vector, u(i) representa el i -simo elemento del vector. u(1) o u representa el primer elemento. La ecuacin puede incluir constantes numricas, operadores aritmticos, operadores relacionales, operadores lgicos y funciones matemticas como: abs, acos, asin, atan, atan2, ceil, cos, cosh, exp, fabs, floor, hypot, ln, log, log10, pow, power, rem, sgn, sin, sinh, sqrt, tan, y tanh.
Ejemplo 1
Dada la siguiente expresin: (2.4)
Y representada por el diagrama de bloques de la figura 2.16
Figura 2.16: Diagrama de bloques del ejemplo 1.
Donde: u(1) = t = /6, u(2) = k 1 = 1 y u(3) = k 2 = 3, y en la ventana de comando de MatLab son definidos de la siguiente forma:
El bloque MATLAB Fcn ejecuta una determinada funcin Matlab o expresin de la entrada. Este bloque es ms lento que el bloque Fcn ya que llama a la funcin MATLAB para cada paso de integracin. Si se desea implementar una funcin MATLAB que haya sido previamente creada como se muestra a continuacin en el editor de m-function dentro del programa MATLAB
Al archivo se le debe asignar el mismo nombre con el que se define la funcin dentro del archivo m-file, en este caso sera ejemplo.m. El bloque deber llamar a esa funcin por lo que debe ser adecuadamente configurado con el nombre de la funcin como se ve en la figura 2.17.
Figura 2.17: Parmetros del bloque MATLAB Fcn.
2.6. Librera de Fuentes (Sources) En este apartado se presentarn los principales (figura 2.18) bloques que sirven como fuentes de seales en la simulacin. Estos bloques estn definidos en la librera Source. Sern comentados los siguientes bloques: From Workspace, Constant , Signal Generator , Ramp, Sine Wave y Step.
Figura 2.18: Librera Source.
2.6.1. Bloque From Workspace
El bloque FromWorkspace (figura 2.19) lee datos del espacio de trabajo workspace de MATLAB.
Figura 2.19: Parmetros del bloque From Workspace.
Los datos del espacio de trabajo son especificados con el parmetro Data a travs de una matriz de dos dimensiones (Ejemplo [t,u] son dos variables definidas en el espacio de trabajo).
2.6.2. Bloque Constant
El bloque Constant (figura 2.20) es usado para definir un valor constante real o complejo. Este bloque acepta salidas escalares, vectores (1-D) o matrices (2-D), dependiendo de la dimensin del parmetro Constant value que se especifica y si la opcin Interpreter vector parameters as 1-D est seleccionada o no. La salida del bloque posee la misma dimensin y los mismos elementos que la opcin Constant value. Si se configura esta opcin como un vector (matriz de 1-D), se debe marcar Interpreter vector parameters como 1-D. Si esta opcin no es debidamente configurada el bloque considera el parmetro Constant value como una matriz 2-D.
Figura 2.20: Parmetros del bloque Constant.
2.6.3. Bloque Signal Generator
El bloque Signal Generator (figura 2.21) puede generar cuatro diferentes tipos de formas de onda: onda seno (sine), onda cuadrada (square), onda diente de sierra (sawtooth) y onda aleatoria (ramdom). Los parmetros de las seales son expresados en hercios o radianes por segundo. Se puede invertir la onda configurando el valor de la amplitud en negativo en la ventada de dialogo de parmetros.
Figura 2.21: Parmetros del bloque Signal Generator.
2.6.4. Bloque Ramp
El bloque Ramp genera una seal que empieza en un instante de tiempo especificado con un valor tambin previamente configurado y que evoluciona con una pendiente determinada en el bloque. Las caractersticas de la seal generada son configuradas mediante las siguientes opciones: pendiente (Slope), tiempo de inicio (Start Time) y la condicin inicial de la salida (Initial Output ). Ver figura 2.22.
Figura 2.22: Parmetros del bloque Ramp.
2.6.5. Bloque Sine Wave
El bloque Sine Wave genera una onda seno. Se puede generar una onda coseno configurando el parmetro de fase (Phase) con el valor /2. El bloque SineWave puede ser definido de dos modos diferentes a travs del parmetro Sine type como modo basado en tiempo o como modo basado en muestras. El modo basado en tiempo posee dos sub-modos: sub-modo continuo o sub-modo discreto. Se utiliza el parmetro Sample time para especificar que el bloque trabaje en sub-modo continuo o discreto. Para el sub-modo continuo se especifica el valor 0, y para el sub-modo discreto se especifica un valor mayor que cero. El modo basado en muestras requiere un tiempo discreto finito. Un valor del parmetro Sample time mayor que cero provoca que el bloque se comporte como si estuviera siendo modificado por un mantenedor de orden cero Zero Order Holder . La ventana de dialogo de configuracin de parmetros de este bloque es presentada en la figura 2.23. Los parmetros de configuracin son descritos a continuacin: Amplitud: la amplitud de la seal; Bias: valor (DC) constante agregado al seno para producir una salida con offset en el eje-y; Frequency: la frecuencia en radianes por segundo. Este parmetro aparece solo para el modo basado en tiempo. Samples per period: nmero de muestras por periodo. Este parmetro aparece solo para el modo basado en muestras. Phase: el desfase en radianes. Este parmetro aparece para el modo basado en tiempo. Number of offset samples: El desplazamiento en nmero de muestras de tiempo. Este parmetro aparece solo para el modo basado en muestras. Sample time: Periodo de muestreo. El valor patrn es cero, pero si el tipo de seno es basado en muestras se debe definir el periodo de muestreo mayor que cero.
Figura 2.23: Parmetros del bloque Sine Wave.
2.6.6. Bloque Step
El bloque Step (figura 2.24) genera un escaln entre dos niveles definidos en un espacio de tiempo especificado. Si el tiempo de simulacin es menor que el valor del parmetro Step time, la salida del bloque ser el valor del parmetro Initial value. Para tiempos de simulacin mayores o iguales que el valor de Step time, la salida es el valor del parmetro Final value.
Figura 2.24: Parmetros del bloque Step.
2.7. Librera de Operaciones Matemticas (Math Operations) En este apartado se presentarn algunos bloques de operaciones matemticas comnmente utilizadas en el entorno Simulink.
Figura 2.25: Librera Math Operations.
2.7.1. Bloque Sum
El bloque Sum (figura 2.26) es la implementacin del bloque suma. Este bloque realiza las operaciones de adicin o sustraccin de sus entradas, pudiendo sumar o sustraer entradas escalares, vectoriales o matriciales.
Figura 2.26: Parmetros del bloque Sum.
Se puede tambin sumar los elementos de un nico vector entrada. Las operaciones del bloque son definidas en el parmetro List of Signs: ms (+), menos (-) y separador (|). El separador crea un espacio extra entre puertos en el icono del bloque. La forma del icono se puede definir como redonda o rectangular (del ingls round o rectangular) a travs del parmetro Icon shape en la ventana de dialogo de parmetros. Si hay dos o ms entradas, el nmero de operaciones de suma o resta debe ser igual al nmero de entradas. Por ejemplo, + + requiere tres entradas y se configura el bloque para sustraer la segunda entrada a la primera entrada, y luego sumar la tercera.
2.7.2. Bloque Product
El bloque Product (figura 2.27) realiza la multiplicacin o divisin de sus entradas. Este bloque calcula la salida multiplicando elemento a elemento o matricialmente, dependiendo del valor del parmetro Multiplication. El nmero de operaciones se configura con el parmetro Number of inputs.
Figura 2.27: Parmetros del bloque Product.
3.7.3. Bloque Gain
El bloque Gain (figura 2.28) multiplica la entrada por un valor constante (ganancia). La entrada y la ganancia pueden ser un escalar, un vector o una matriz.
Figura 2.28: Parmetros del bloque Gain. El valor de la ganancia se especifica a travs del parmetro Gain. El parmetro Multiplication determina se la multiplicacin es matricial o elemento a elemento. El orden de las multiplicaciones en las operaciones matriciales es configurado a travs de este parmetro.
2.7.4. Bloque Trigonometric Function
El bloque Trigonometric Function (figura 2.29) realiza las principales funciones trigonomtricas: seno sine, coseno cosine y tangente tangent; y las funciones trigonomtricas inversas: arco seno asin, arco coseno acos, arco tangente atan y atan2; funciones hiperblicas: sinh, cosh y tanh, y las funciones hiperblicas inversas: asinh, acosh, atanh. Si se elige la funcin atan2, el bloque presenta dos entradas, la primera entrada es el eje-y o la parte compleja del argumento de la funcin y la segunda entrada es el eje-x o la parte real del argumento de la funcin.
Figura 2.29: Parmetros del bloque Trigonometric Function.
2.7.5. Bloque Math Function
El bloque Math Function (figura 2.30) implementa las siguientes funciones matemticas: exp,log, 10u, log10, magnitude2, square, sqrt, pow, conj (conjugado complejo), reciprocal, hypot (clculo de la raz cuadrada de la suma de cuadrados), rem (resto de la divisin), mod (entero de la divisin), transpose (traspuesta de un vector o matriz) y hemiltian (una matriz cuadrada, tal que AT = A).
Figura 2.30: Parmetros del bloque Math Function. La salida del bloque es el resultado de la operacin de la funcin sobre la entrada. El nombre de la funcin aparece sobre el bloque. Se utiliza el bloque Math Function en el caso que se desee una salida vectorial o matricial ya que el bloque Fcn tiene caractersticas similares pero las salidas son slo escalares.
2.8. Librera de Ruta de Seales (Routing Signals) En este apartado se presentarn tres bloques de la librera Signal Routing: Manual Switch, Mux y Demux.
Figura 2.31: Librera Signal Routing.
2.8.1. Bloque Manual Switch
El bloque Manual Switch conmuta sus entradas pasando slo una de ellas a travs de su salida. No existe ventana de dialogo para este bloque, por lo que para conmutar entre las entradas se debe pulsar dos veces sobre el bloque. Este bloque mantiene el estado determinado cuando el archivo Simulink es guardado.
2.8.2. Bloques Mux y Demux
El bloque Mux combina sus entradas en una nica salida. Las seales de entrada pueden ser escalares, vectores o matrices. El parmetro Number of Inputs (figura 2.32) permite especificar el nmero de seales de entrada y su dimensin. Un valor de 1 significa que el puerto correspondiente puede aceptar seales de cualquiera dimensin.
Figura 2.32: Parmetros del bloque Mux.
El bloque Demux extrae las componentes de una seal de entrada y provee las componentes en separadas seales. El bloque acepta tanto seales vectoriales como buses de seales. El parmetro Number of outputs permite especificar el nmero y dimensin de cada puerto de salida. Si no se configura la dimensin de las salidas, el bloque lo determina automticamente. 3. Simulaciones En este captulo se describirn los pasos a seguir para crear un archivo Simulink y realizar una simulacin. Para ello se va a tomar un ejemplo sencillo de un sistema elctrico que se desea modelar, el caso en estudio est esquematizado en la figura 3.1.
Figura 3.1: Circuito elctrico.
Los pasos que se deben seguir para simular este ejemplo o cualquier otro, son generalmente los siguientes: 1. Obtencin de las ecuaciones 2. Modelar las ecuaciones: identificacin de los bloques de Simulink 3. Creacin del archivo de Simulink 4. Configuracin de los parmetros de la simulacin 5. Anlisis de los resultados
Para llevar a cabo correctamente cada uno de los pasos, el alumno debe estar familiarizado con las opciones bsicas de Simulink y se recomienda que el alumno haya ledo detenidamente los captulos precedentes.
3.1. Obtencin de las ecuaciones Esta seccin tiene como objetivo plantear las ecuaciones de la respuesta temporal del sistema que se pretende simular. En este caso, el sistema que vamos a estudiar es el presentado en la figura 3.1. Aplicando las leyes de Kirchhoff las ecuaciones que se obtienen son las siguientes:
(3.1)
(3.2)
Sustituyendo la ecuacin 3.1 en la 3.2, se obtiene:
(3.3)
Por ltimo, particularizando la ecuacin 3.3 con los parmetros mostrados en la figura 3.1, se obtiene:
(3.4)
3.2. Modelar las ecuaciones: Identificacin de los bloques de Simulink Las ecuaciones que se han obtenido en la seccin anterior pueden ser programadas de diversas maneras en Simulink. En esta gua presentamos dos formas diferentes, ilustrando la amplia variedad. La primera forma de programar este caso es mediante la obtencin de la transformada de Laplace del sistema y con ello la funcin de transferencia, y la segunda es programando directamente las ecuaciones diferenciales. Es de suma importancia antes de comenzar a programar, tener claro cules son las variables que quieren ser estudiada o simuladas, ya que las ecuaciones que se programen dependern de las variables seleccionadas. Para este ejemplo, pueden ser analizadas la intensidad del circuito o la tensin del condensador conociendo la tensin de la fuente de tensin continua. Por ejemplo, para simular la intensidad del circuito habra que calcular la tensin del condensador mediante la ecuacin 3.2 y luego a partir de la ecuacin 3.1 obtener los resultados de la intensidad. El clculo de la transformada de Laplace puede estudiarse en detalle en el tema 4 de los apuntes de clase, por lo que no se especificarn en la gua los pasos para su obtencin. Las transformadas de Laplace de las ecuaciones resultantes de la seccin anterior son las siguientes:
(3.5)
(3.6)
De estas ecuaciones se pueden obtener funciones de transferencias dependiendo de las variables que se quieran analizar. De esta manera para poder analizar la intensidad del circuito y la tensin del condensador tenemos las siguientes ecuaciones:
(3.7)
(3.8)
Una vez calculadas las funciones de transferencias, este ejemplo puede ser programado en Simulink mediante el bloque llamado Transfer Fcn dentro de la herramienta Simulink y del subgrupo Continuous. La configuracin de este bloque se describe en el captulo anterior. La figura 3.2 muestra el bloque Transfer Fcn configurado para la funcin de transferencia correspondiente a la tensin del condensador.
Figura 3.2: Bloque de Simulink para modelar funciones de transferencia.
Por otro lado es posible programar las ecuaciones diferenciales de forma ms directa sin tener que obtener las transformadas de Laplace. Como se observa en la ecuacin 3.4, se deben programar cada uno de los sumandos teniendo en cuenta que la entrada que se conoce en este ejemplo es la tensin de la fuente de continua u0. De esta manera necesitaramos bloques integradores, derivativos, ganancias y sumas. Todos estos bloques se han representado en la figura 3.3.
Figura 3.3: Bloque de Simulink para modelar ecuaciones diferenciales.
Los bloques que se muestran pueden encontrarse en la herramienta Simulink, en los subgrupos Math operation y Continuous y han sido detallados en el captulo anterior. Las entradas conocidas del sistema son las mismas para ambas programaciones. Dependiendo de las especificaciones de la simulacin podemos programar entradas en forma de escaln, rampa, constante, etc. Los bloques correspondientes a la programacin de las entradas se muestran en la figura 3.4, los cuales se encuentran en el subgrupo Sources del toolbox Simukink de la librera de Simulink. Cada uno de los bloques mostrados se detalla en el captulo anterior.
Figura 3.4: Bloques de Simulink bsicos para modelar entradas.
Las variables que se desean visualizar para analizar la simulacin deben ser unidas al bloque denominado Scope que permite representar los resultados. Adems hay otros bloques que pueden ser de ayuda para obtener informacin de las variables en estudio, como el bloque Display que muestra los valores que toma una variable determinada durante la simulacin y de forma permanente el valor final tomado por la variable una vez terminada la simulacin . Estos bloques se resumen en la siguiente figura.
Figura 3.5: Bloques de Simulink bsicos para visualizar variables.
Por ltimo recordar que los bloques que se presentan en esta gua son los ms usados. Para realizar simulaciones ms complejas debern utilizarse herramientas ms avanzadas explotando el gran potencial que tiene el programa Simulink para realizar simulaciones.
3.3. Creacin del archivo de Simulink Identificadas las ecuaciones y los bloques que son necesarios utilizar para programar, se debe crear el archivo Simulink para simular el sistema. Para empezar, una vez abierta la ventana que se muestra en la figura 1.2, se debe guardar el archivo con un nombre y en una carpeta que el alumno haya creado previamente. Las opciones de guardar archivo se encuentran en el men File marcado en la figura 1.2 como Archivo o bien con el icono que representa un disquete. Los bloques que han sido identificados en la seccin anterior deben arrastrarse con el ratn desde la ventana marcada como Listado bloques de la librera de Simulink (figura 1.3) a la ventana del archivo de Simulink (figura 1.2). Para ello, pinchar encima del bloque de Simulink que se desee incluir con el botn izquierdo del ratn, dejndolo pulsado mientras se arrastra el bloque a la posicin deseada en el archivo Simulink de la figura 1.2. Ver figura 3.6 donde se esquematiza el procedimiento.
Figura 3.6: Manejo del ratn para incluir bloques al archivo de Simulink.
Posicionados los bloques en el archivo de Simulink, deben ser conectados. De esta forma, pinchando sobre la salida del bloque que se desea unir con el botn izquierdo del ratn y mantenindolo pulsado, unir la salida del bloque con la entrada del siguiente bloque. Si se desean conectar lneas con bloques, se debe pinchar encima de la lnea con el botn derecho del ratn, mantenindolo presionado hasta unir con la lnea con la entrada del bloque. Ver figura 3.7 para ms aclaracin.
Figura 3.7: Manejo del ratn para unir bloques de Simulink.
Siguiendo todos los pasos anteriores el sistema quedara programado para cada uno de los mtodos presentados, como se ve en la figura 3.8. La tensin de la fuente de continua se considera constante e igual a la unidad, adems se han incluido bloques Scope para visualizar los resultados de la intensidad del circuito y la tensin del condensador.
Figura 3.8: Archivos de Simulink para el ejemplo presentado.
Los bloques se pueden invertir como se ve en la figura 4.8, haciendo clic con el botn de la derecha del ratn sobre el bloque que se desea invertir se desplegar un men donde se debe elegir la opcin Format y la sub-opcin Flip block. Hay otra sub-opcin denominada Rotate block en Format que permite rotar los bloques. La rotacin tambin puede realizarse directamente seleccionando el bloque y pulsando las teclas control y r (ctrl.+r).
3.4. Configuracin de los parmetros de la simulacin En esta seccin el sistema est preparado para ser simulado como se muestra en la figura 3.8 y es necesario configurar de forma adecuada las siguientes opciones bsicas que se enumeran a continuacin: 1. Tiempo de simulacin 2. Mtodo de integracin 3. Intervalo de muestreo
3.4.1. Tiempo de simulacin El tiempo de simulacin es un parmetro que hay que definir antes de comenzar las simulaciones. El tiempo de simulacin puede ser modificado en la casilla marcada en la figura 1.2 como Tiempo de simulacin o bien en la ventana Configuration Parameters que se muestra en la figura 3.9 y a la que se accede a travs de la opcin marcada como Parmetros de simulacin en la figura 1.2 y en la sub-opcin Configuration Parameters. El tiempo de simulacin puede configurarse en esta ventana modificando el tiempo de comienzo de la simulacin y el de parada, casillas denominadas Start time y Stop time de la figura 3.9. Por defecto siempre el tiempo de simulacin ser 10 segundos.
Figura 3.9: Parmetros de configuracin del programa Simulink.
3.4.2. Mtodo de integracin Hay dos grupos de mtodos de integracin, los de paso fijo y los de paso variable. El grupo de los mtodos de integracin de paso fijo mantienen un tamao de muestreo fijo para la resolucin de las ecuaciones durante todas las simulaciones frente al grupo de los mtodos de integracin de paso variable que varan el muestreo segn detecte que los resultados varen, por ello si detecta que los resultados se mantienen constantes aumenta el muestreo y si por el contrario hay muchas variaciones reduce el muestreo. De este modo, dependiendo de la dinmica del problema que se pretenda simular, los resultados que se obtienen de las simulaciones pueden variar con el mtodo de integracin seleccionado. El grupo de mtodos de integracin de paso fijo permite tener un control del muestreo por lo que son adecuados para programar en tiempo real, como desventaja frente al otro grupo, el tiempo que se tarda en obtener resultados de la simulacin puede llegar a ser ms lento que en el caso que se utilicen mtodos de paso variable, y adems si el tiempo de muestreo no ha sido correctamente seleccionado, las simulaciones pueden perder dinmica. Por otro lado el grupo de mtodos de integracin de paso variable simula los archivos de forma ms rpida que el anterior pero puede producir errores en los resultados de la simulacin para algunos tipos de problemas que mezclen dinmicas rpidas y lentas. Como se ve en la figura 3.9, la casilla Type permite cambiar el tipo de mtodo de integracin y la casilla Solver permite elegir el tipo de mtodo de integracin para cada grupo que haya sido elegido previamente en la casilla Type. Estas casillas estn marcadas por defecto con las opciones de paso variable y de ode45 (Domand-Prince). El alumno no tendr que modificar estas opciones para el desarrollo de las prcticas.
3.4.3. Intervalo de muestreo Como se ha comentado en la seccin anterior el tiempo de muestreo es muy importante para los mtodos de integracin y una mala eleccin puede provocar que no se simule adecuadamente la dinmica de los sistemas en estudio. Las opciones de configuracin del tiempo de muestreo son, para el caso de los mtodos de integracin de paso variable, las opciones denominadas Max step size y Min step size (figura 3.9). Estas opciones estn marcadas por defecto como auto. La casilla Max step size indica el periodo de muestreo mximo que puede tomar el mtodo de integracin en el caso que la dinmica no vare, la casilla Min step size indica, por el contrario, el periodo de muestreo mnimo que debe tomar el mtodo de integracin en el caso que la dinmica del sistema vare. Si los resultados de la simulacin no son los esperados y la dinmica del sistema no es la adecuada, puede ocurrir que el mtodo de integracin no est detectando los cambios en la dinmica y tome un periodo de integracin muy grande, provocando errores en la simulacin. Para solucionar este problema en el caso de los mtodos de integracin de paso variable, se debe reducir el tiempo mximo de muestreo en la casilla Max step size. En el caso en el que se haya elegido un mtodo de integracin de paso fijo, la opcin que debe ser configurada es Fixed-step size que corresponde con el periodo de muestreo fijo que el mtodo de integracin toma para resolver las ecuaciones. Por defecto est marcada como auto. Una vez que se hayan configurado los parmetros de simulacin se debe proceder a ejecutar la simulacin haciendo clic en el icono marcado en la figura 1.2 como Activar simulacin. Para pausar la simulacin se debe hacer clic el mismo icono de ejecucin y para parar la simulacin pinchar el icono marcado en la figura 1.2 como Parar la simulacin.
3.5. Anlisis de los resultados Una vez que se hayan realizado las simulaciones, es importante analizar y visualizar la evolucin de las variables del sistema en estudio, adems de poder acceder a los valores de las variables en forma vectorial a travs del espacio de trabajo workspace del programa MATLAB y de este modo poder utilizar todos los medios que este programa presenta para poder representar y trabajar con esas variables. Como hemos comentado anteriormente los bloques utilizados para visualizar las variables deseadas se muestran en la figura 3.5 y son explicados en el captulo anterior detalladamente. El bloque ms utilizado es Scope como se ve en la figura 3.10. Haciendo doble clic en el bloque Scope se abre una ventana (figura 3.12 que muestra la evolucin de la variable o de las variables que se hayan conectado al bloque. En la figura 3.10 se ha simulado el circuito elctrico presentado en la figura 3.1 para un voltaje de entrada de la fuente de tensin continua que evoluciona en forma de escaln.
Figura 3.10: Archivo de Simulacin del ejemplo.
Antes de simular es importante verificar que los parmetros del bloque Scope estn correctamente configurados porque si no es as, las variables no se representarn de forma adecuada. Para configurar los parmetros, hacer doble clic en el bloque de Scope antes de la simulacin y se abrir la ventana que se muestra en la figura 3.11.
Figura 3.11: Configuracin del bloque Scope.
Simplemente pinchando sobre el icono marcado como Configuracin en la figura 3.11, hay que verificar que la opcin marcada en la misma figura como Puntos representados no est seleccionada, ya que de esta manera el bloque representar todos los puntos que se calculen y no se limitar a 5000. Tener en cuenta que por defecto siempre esta opcin est seleccionada. La figura 3.12 muestra los resultados de la simulacin de la figura 3.10. Como se puede ver en la figura 3.10 se han conectado dos variables al bloque Scope mediante el bloque Mux, que son la tensin de la fuente de alimentacin y la tensin del condensador.
Figura 3.12: Bloque Scope.
En la figura 3.12 se han destacado las opciones de aumento de la grfica que son de gran utilidad para poder analizar y visualizar correctamente los resultados. La opcin marcada como Herramienta zoom permite aumentar regiones de la grfica obtenida, para ello una vez seleccionada esta opcin, hacer clic con el botn derecho del ratn en la regin de la grfica que se desee aumentar y dejar presionado este mismo botn a la vez que se arrastra el marco que aparece abarcando toda la regin deseada. Otras herramientas muy tiles son los zoom parciales de ejes, por ejemplo la opcin marcada como Zoom eje X permite aumentar regiones del eje X que funciona de forma semejante a la opcin anterior. Se pincha con el botn derecho del ratn en un punto de la regin que se quiera aumentar y dejando presionado el botn se arrastra la barra que aparece abarcando la regin deseada. Por ltimo la opcin marcada como Zoom eje Y funciona de la misma manera que las anteriores pero en el eje Y. Por otro lado para ajustar la grfica de manera que se visualice la simulacin completa seleccionar la opcin marcada en la figura como Ajuste pantalla. Las variables que se han obtenido de la simulacin pueden enviarse al espacio de trabajo del programa MATLAB denominado workspace mediante el bloque llamado To Workspace que est dentro de la herramienta Simulink y en el subgrupo Sinks de la librera de Simulink. Este bloque debe tambin ser configurado como se muestra en la figura 3.13. Haciendo doble clic en el bloque seleccionado se abrir la ventana de la figura 3.13. Primero hay que elegir un nombre para la variable que corresponder con el nombre de la variable en el workspace. Esta opcin se cambiar en la casilla denominada Variable Name. Adems deber seleccionarse la opcin Array en la casilla Save format . A este bloque deben conectarse variables individualmente y estas mismas variables, una vez que se ejecute la simulacin, aparecern en la ventana del workspace de la figura 1.1 marcada como Variables workspace.
Figura 3.13: Configuracin bloque To Workspace.
Para poder trabajar en MATLAB con los valores de las variables que se envan mediante el bloque To Workspace, es necesario tener la informacin del vector tiempo. Es decir si enviamos las variables al workspace sin el vector tiempo no podemos asociar a esas variables el tiempo para cada uno de los puntos obtenidos. De esa manera se incluye, como se puede observar en la figura 3.10, el bloque Clock que se encuentra en el grupo Simulink, subgrupo Sources. Este bloque genera automticamente el vector de tiempo para las simulaciones y debe ser conectado a un bloque To Workspace para poder enviar ese vector al espacio de trabajo de MATLAB y trabajar adecuadamente con las variables. Por ejemplo teniendo los valores de las variables y del tiempo se puede representar grficamente en el MATLAB los resultados de la simulacin. Las grficas de MATLAB pueden ser incorporadas a documentos de Word fcilmente con la opcin Copy figure dentro del men Edit. El programa representado en La figura 3.10 enva al workspace la variable tiempo que se denomina en la figura 3.10 t y la tensin del condensador que se denomina Vc. Ejecutando en la ventana de comando de MATLAB marcada en la figura 1.1 como Ventana comandos Matlab la funcin plot(t,Vc) obtenemos la figura 3.14.