PRACTICAS
REGULACION AUTOMATICA
PRACTICA Nº 4: INTRODUCCION A SIMULINK 3.1. Simulación de sistemas con SIMULINK. Herramientas adicionales y Blocksets 3.2. El entorno SIMULINK. Librerías de bloques 3.3. Método general para el modelado y simulación de un sistema con SIMULINK 3.4. Construcción del modelo: manejo de bloques y líneas 3.5. Simulación del modelo: Parámetros de la simulación y métodos de integración 3.6. Subsistemas y máscaras 3.7. Aplicaciones de Simulink Simulink aa la simulación y visualización de señales 3.8. Aplicaciones de Simulink Simulink aa la simulación de sistemas modelados por ecuaciones diferenciales (dominio del tiempo) 3.9. Aplicaciones de Simulink Simulink aa la simulación de sistemas modelados por su función de transferencia (dominio de Laplace). 3.10. Aplicaciones a la simulación de sistemas de control continuos en lazo abierto y en lazo cerrado 3.11. Aplicaciones a la simulación de sistemas continuos con controlador PID. Ajuste de parámetros 3.12. Aplicaciones a la simulación de sistemas de control continuos no lineales P3. 1
3.1. SIMULACION DE SISTEMAS CON SIMULINK
PRACTICAS
CARACTERISTICAS
Descripción de SIMULINK: Es un entorno gráfico interactivo para el modelado, simulación y análisis de sistemas dinámicos (mecánicos, eléctricos, aeronáuticos, de control, etc). MathWorks Inc. Inc. en 1990 con el Fue presentado por MathWorks nombre de SIMULAB para computadores personales. Características principales de SIMULINK: Trabaja totalmente integrado con MATLAB. Permite el estudio de una gran variedad de sistemas dinámicos: lineales y no lineales, modelados en tiempo continuo, en tiempo discreto o híbridos. Proporciona una interfaz gráfica de usuario en entorno Windows para construir los modelos como diagramas de bloques, utilizando operaciones de ratón de tipo pulsar y arrastrar. Incluye una amplia biblioteca de bloques de fuentes de señal, dispositivos de visualización de datos, elementos lineales y no lineales, conectores, funciones matemáticas, etc. Permite crear y personalizar nuevos bloques a medida del usuario.
REGULACION AUTOMATICA
P3. 2
3.1. SIMULACION DE SISTEMAS CON SIMULINK
PRACTICAS
HERRAMIENTAS ADICIONALES Y EXTENSIONES DE SIMULINK.
Herramientas adicionales de SIMULINK: Entre las herramientas adicionales integradas con SIMULINK se SIMULINK se pueden citar: REAL-TIME WORKSHOP: REAL-TIME WORKSHOP: Genera código C en tiempo real a partir
de los modelos realizados en Simulink, lo que nos permite la realización de prototipos rápidos, realizar simulaciones en tiempo real o acelerar las simulaciones en tiempo no real. SIMULINK REPORT SIMULINK REPORT GENERATOR GENERATOR : Permite la documentación automática de los modelos desarrollados en Simulink Simulink mediante mediante la creación de diversos informes. SIMULINK PERFORMANCE SIMULINK PERFORMANCE TOOLS TOOLS : Es un conjunto de 4 herramientas que gestionan y optimizan el rendimiento de Simulink Simulink en en las simulaciones de modelos de gran escala: Simulink Simulink Accelerator, Accelerator, Simulink Model Simulink Model Profiler, Simulink Simulink Model Model Differencing y Simulink Model Coverage. STATEFLOW: Es un entorno gráfico interactivo para el modelado de sistemas de eventos discretos. Se basa en la teoría de autómatas finitos y utiliza diagramas de transición de estados y diagramas de flujo. VIRTUAL REALITY REALITY TOOLBOX TOOLBOX : Permite la creación de escenas e imágenes en un entorno de realidad virtual de 3 dimensiones.
REGULACION AUTOMATICA
3.1. SIMULACION DE SISTEMAS CON SIMULINK
PRACTICAS
HERRAMIENTAS ADICIONALES Y EXTENSIONES DE SIMULINK.
Extensiones de SIMULINK. Blocksets: Igual que MATLAB presentaba toolboxes adicionales, SIMULINK también presenta aplicaciones adicionales para la simulación de sistemas en distintos campos denominadas blocksets . Ejemplos de Blocksets:
REGULACION AUTOMATICA
D SP SP Blockset Blockset : : Proporciona un conjunto de bloques para Simulink
enfocados al diseño de aplicaciones de procesado digital de señales (DSP) tales como transformadas FFT, filtros, estimación espectral, … Communications Blockset: Communications Blockset: Conjunto de más de 150 bloques para Simulink orientados Simulink orientados al diseño y simulación de sistemas de comunicaciones Dials & Dials & Gauges Gauges Blockset Blockset : : Monitoriza señales y parámetros de simulación mediante instrumentos gráficos de aspecto real. Aerospace Blockset: Aerospace Blockset: Contiene componentes básicos para construir sistemas aeronáuticos o aeroespaciales (aviones, misiles, naves espaciales, etc) Simulink circuitos circuitos SimPowerSystems: Permite modelar y simular en Simulink eléctricos, máquinas eléctricas y circuitos electrónicos de potencia. SimM echani chanics cs: : Permite modelar y simular los componentes de un sistema mecánico, ver y animar su movimiento, estudiar su cinemática y dinámica (directa e inversa, etc) P3. 4
3.2. EL ENTORNO DE SIMULINK
PRACTICAS
EL NAVEGADOR NAVEGADOR DE DE LIBRERÍAS ( LIBRARY BROWSER)
El entorno SIMULINK Iniciamos Simulink, tecleando > > simulink en la ventana de comandos de Matlab o haciendo click sobre el icono Al ejecutar Simulink, aparece una ventana como la que se muestra en la figura, que corresponde al Navegador de Librerías o Library Browser Library Browser de Simulink. En esta ventana se muestran todas las librerías disponibles. Cada una de estas librerías contiene bloques elementales con los que se pueden construir los sistemas a simular. Los bloques de cada librería se pueden visualizar haciendo click click sobre sobre la librería correspondiente.
REGULACION AUTOMATICA
Menú Barra de herramientas
Búsqueda de bloques
Descripción del bloque
Bloques Librerías de bloques
P3. 5
PRACTICAS
3.2. EL ENTORNO DE SIMULINK LIBRERIAS DE BLOQUES
REGULACION AUTOMATICA
Librerías de bloques: SIMULINK emplea diagramas de bloques para representar sistemas dinámicos. Un diagrama de bloques es una descomposición funcional del sistema que muestra la influencia (flechas) que cada una de las partes (bloques) tiene sobre las demás. Para construir los diagramas de bloques en SIMULINK, existen esencialmente 4 tipos de objetos: - Fuentes: emisores de información - Procesos: elementos que realizan alguna operación
(con puntos de entrada y salida) - Destinos: receptores de información - Conexiones unidireccionales (líneas)
Conexión
P3. 6
3.2. EL ENTORNO DE SIMULINK
PRACTICAS
LIBRERIAS DE BLOQUES
Librerías de bloques: Todos los bloques de SIMULINK se agrupan en diferentes librerías o categorías. A continuación se hace un repaso a los bloques más interesantes para Regulación Automática, agrupándolos en las siguientes categorías: Sources (Fuentes) Sinks (Sumideros) Continuous (Continuos) Discontinuities (No lineales) Math Operations (Operaciones matemáticas) Signal Routing (Conexionado de señales) User-Defined Functions (Funciones a medida) …
REGULACION AUTOMATICA
Se recomienda utilizar la Ayuda (Help) incorporada en cada bloque. P3. 7
3.2. EL ENTORNO DE SIMULINK
PRACTICAS
LIBRERIAS DE BLOQUES
Librería Sources: Fuentes de señales En esta librería se encuentran los generadores de señales que sirven de excitación o entrada al sistema dinámico. La salida de este bloque es una constante escalar o vectorial. Principales parámetros: Constante. Genera una función de tipo escalón. Principales parámetros: tiempo del escalón, valor inicial y valor final Genera una señal de tipo rampa. Principales parámetros: Pendiente, tiempo de inicio y valor inicial Genera una señal senoidal Principales parámetros: Amplitud, frecuencia en rad/seg y su fase inicial en radianes Simula un generador de señales electrónico, permitiendo elegir entre una señal senoidal, cuadrada o diente de sierra. Parámetros: forma de onda, amplitud, frecuencia y unidades (Hertz ó rad/s ) Permite aplicar cualquier tipo de señal generada en el espacio de trabajo de Matlab. Este bloque lee datos de una matriz en el espacio de trabajo, que, en su versión más sencilla, debe contener 2 columnas: en la primera columna deben figurar los instantes de tiempo crecientes y en la segunda columna los datos o valores de la señal a enviar a Simulink
REGULACION AUTOMATICA
3.2. EL ENTORNO DE SIMULINK
PRACTICAS
LIBRERIAS DE BLOQUES
Librería Sinks: Sumideros En esta librería se encuentran los bloques de salida o dispositivos de visualización y/o almacenamiento de las variables del sistema.
REGULACION AUTOMATICA
Representa gráficamente la evolución en el tiempo de una o varias variables. Las opciones que dispone el osciloscopio son: Parameters: Permite elegir el rango de tiempo de visualización, limitar el número de datos a visualizar, salvar los datos a una variable del espacio de trabajo de Matlab, … Zoom eje X Zoom eje Y Zoom sobre una región determinada. Autoscale: zoom automático viendo todo el gráfico. Salvar o recu erar e es seleccionados … Representa numéricamente el valor de una variable Las opciones que dispone el display son: Format: El tipo de formato que se va a visualizar (corto, largo, científico, …) . Decimation: Si este factor se toma como n , visualiza los datos cada n pasos de tiempo . Sample time: Selección del tiempo de muestreo para la visualización de los datos. Por defecto -1 no tiene en cuenta este intervalo. Representa una variable en función de otra Las opciones que dispone el graficador XY son: x-min / x-max : valor inicial / final en el eje x. y-min / y-max : valor inicial / final en el eje y. Sam le time: Selección del tiem o de muestreo ara la visualización de los datos. •
• • • • •
Guarda el valor de una señal en una variable del espacio de trabajo de Matlab. Las opciones del bloque permiten elegir el nombre de la variable y limitar su tamaño.
P3. 9
PRACTICAS
3.2. EL ENTORNO DE SIMULINK LIBRERIAS DE BLOQUES
Librería Continuous: Sistemas continuos Contiene bloques que realizan operaciones sobre señales continuas y representan sistemas continuos en el tiempo (en representación externa e interna).
REGULACION AUTOMATICA
La salida del bloque se corresponde con la derivada de la entrada: y=du/dt , donde du es el cambio experimentado en la entrada durante el intervalo de tiempo dt transcurrido en la simulación. El resultado del bloque se aproximará más a la derivada cuanto más pequeño sea el paso de integración utilizado en la simulación La salida del bloque se corresponde con la integral de la entrada. Principales parámetros: Valor inicial de la salida (constante de integración), Límites superior e inferior de la salida (saturación) Permite expresar una función de transferencia en s, como cociente de polinomios. Sus parámetros son un vector fila con los coeficientes del polinomio del numerador y otro vector fila con los coeficientes del polinomio del denominador. Función de transferencia descrita por sus ceros, sus polos y su ganancia (formato ZPK). Sus parámetros definen un vector fila con sus ceros, otro con vector sus polos y su ganancia escalar. La salida del bloque se corresponde con la entrada retrasada un cierto tiempo. El bloque simula un retardo puro continuo mediante la aproximación de Padé. Los parámetros permiten fijar el valor del retardo de tiempo y el valor de la salida en el instante inicial. Bloque que introduce un sistema de múltiples entradas y múltiples salidas (MIMO) descrito en el espacio de estados por las matrices A, B, C y D . Es posible fijar condiciones iniciales en el vector de estados
P3. 10
3.2. EL ENTORNO DE SIMULINK
PRACTICAS
LIBRERIAS DE BLOQUES
Librería Discontinuities: Bloques no lineales En esta librería se encuentran los bloques de las no-linealidades más comunes en los sistemas de control.
REGULACION AUTOMATICA
Bloque que simula una saturación. La salida sigue a la entrada salvo que ésta supere unos valores umbrales fijados por el usuario, en cuyo caso la salida toma los valores límites, máximo o mínimo. Los límites pueden ser constantes o variables. Bloque que simula la función no lineal de relé con histéresis (ON-OFF). El usuario debe especificar el valor de la entrada a partir del cual la salida conmuta de OFF a ON, el valor de la entrada a partir de la cual la salida conmuta en sentido inverso (de ON a OFF) y los valores de conmutación para la salida. Los valores de entrada utilizados en la conmutación pueden ser constantes o variables. Bloque que simula la función no lineal con zona muerta. La salida del sistema es 0 en la zona muerta. El usuario debe especificar los extremos de la zona muerta, que puede no ser simétrica. Los tramos lineales tienen endiente unitaria. Bloque que simula la función no lineal con histéresis y zona muerta. El usuario debe especificar la anchura de la zona muerta y los valores iniciales en la entrada y en la salida (en este último caso centrado sobre la zona muerta). Los tramos lineales tienen pendiente unitaria
P3. 11
3.2. EL ENTORNO DE SIMULINK
PRACTICAS
LIBRERIAS DE BLOQUES
Librería Math Operations : Operaciones matemáticas Contiene bloques que realizan operaciones matemáticas sobre sus entradas.
REGULACION AUTOMATICA
Sumador de señales. Permite sumar o restar varias señales. Principales parámetros: Forma y entradas. La forma del sumador puede ser redonda o rectangular. La lista de entradas se escribe con una secuencia de signos +, - ó | según se quiera que la entrada correspondiente sume, reste o esté vacía (deja un hueco). En el ejemplo del sumador redondo es ++ en el sumador rectan ular es +- . Producto de señales. Permite multiplicar o dividir señales. En la opción del número de entradas, se puede escribir una secuencia de signos * ó / . Si se escribe * se multiplica la señal, si se escribe / la señal se divide y si se introduce un número todas las entradas se multi lican. Ganancia. La salida es la entrada multiplicada por una constante: y = Ku , donde u es la entrada, y es la salida y K es un escalar. Princi ales arámetros: Valor de la constante K anancia . Función matemática. La salida realiza una función matemática sobre la entrada. Principales parámetros: Se debe elegir de una lista la función deseada como puede ser un logaritmo, exponencial, potencia, raíz cuadrada, etc. No incluye las funciones tri onométricas. Función trigonométrica. Se incluyen las funciones seno, coseno, tangente, …, y sus inversas. Principales parámetros: Se debe elegir de una lista la función trigonométrica deseada. Valor absoluto. La salida se obtiene como valor absoluto de la entrada. Este bloque calcula el signo de la señal de entrada. Devuelve un 1 si el signo es positivo, -1 si es negativo y 0 si el valor es nulo
P3. 12
3.2. EL ENTORNO DE SIMULINK
PRACTICAS
LIBRERIAS DE BLOQUES
Librería Signal Routing : Conexionado de señales En esta librería se encuentran bloques que permiten preparar el sistema para el conexionado exterior (en la recepción o generación de señales) o agrupar o separar señales que faciliten el conexionado entre bloques dentro el sistema.
REGULACION AUTOMATICA
Multiplexor: Sirve para unir señales. Permite agrupar distintas señales en un único vector o línea lo que facilita la representación del dibujo. Por ejemplo, varias señales se representan a la vez en un único osciloscopio. Principales parámetros: Número de entradas. Admite tanto entradas escalares como vectoriales Demultiplexor: Sirve para separar señales. Convierte una línea vectorial en n líneas escalares donde n es la dimensión del vector. Principales parámetros: Número de salidas.
Estos bloques se utilizan para trasmitir una señal de un lado a otro a través estos bloques. Es muy útil cuando los sistemas se vuelven muy complejos y se necesita una señal determinada en distintas ubicaciones.
P3. 13
3.2. EL ENTORNO DE SIMULINK
PRACTICAS
LIBRERIAS DE BLOQUES
Librería User-Defined Functions : Funciones definidas por el usuario:
REGULACION AUTOMATICA
En esta librería se encuentran bloques que permiten la definición de funciones a medida. Este bloque aplica a la señal de entrada cualquier expresión matemática definida por el usuario compuesta en general de varias funciones (polinómicas, trigonométricas, exponenciales, etc…). El usuario debe introducir la expresión a realizar sobre la entrada Este bloque aplica a la entrada una función programada en MATLAB (fichero .m ) . En el parámetro MATLAB function, se coloca el nombre del archivo de extension *.m generado en Matlab,
P3. 14
3.3. ETAPAS PARA LA SIMULACION DE UN SISTEMA DINAMICO CON SIMULINK Método general para el modelado y simulación de un sistema con SIMULINK Paso 1) : creación del modelo. Desde la ventana ‘Simulink Library Browser’, haremos click sobre el botón ‘Create a new model’ o bien en la opción de Menú File seleccionar New > M odel . Automáticamente se abrirá una ventana en blanco que será la ventana de diseño para nuestro modelo. Paso 2) : introducción de bloques en el modelo. Los elementos se introducen haciendo un arrastre con el ratón desde la ventana de la biblioteca de bloques hacia la ventana de diseño Paso 3) : configuración de los parámetros en los bloques del modelo. Todos los bloques de Simulink permiten una serie de opciones dependiendo de cada tipo concreto. Se puede acceder a los parámetros de cada bloque haciendo doble click sobre él. Opcionalmente, se puede dar formato a los bloques (color de fondo y de línea, tipo y tamaño de letra, …)
PRACTICAS
REGULACION AUTOMATICA
P3. 15
3.3. ETAPAS PARA LA SIMULACION DE UN SISTEMA DINAMICO CON SIMULINK Paso 4) : interconexión de elementos. Una vez situados los elementos en la ventana de diseño, es necesario establecer conexiones entre ellos. Para conectar 2 elementos debe hacerse un arrastre con el ratón desde la salida de uno de ellos hasta la entrada del elemento correspondiente. El modelo creado puede guardarse haciendo click en el botón y se generará un fichero con la extensión .mdl Paso 5) : ejecución de la simulación y visualización de resultados. Primero, se escogen los parámetros de la simulación (tiempo de simulación, método y paso de la resolución numérica de las ecuaciones diferenciales …) en la opción ‘Simulat ion Parameters’ del menú ‘Simulation’. Después, comenzamos la simulación con la opción ‘Start’ del menú ‘Simulation’ o bien haciendo clic en el símbolo y comprobamos los resultados obtenidos haciendo doble clic sobre el bloque de visualización final. Los parámetros de los bloques pueden cambiarse durante la simulación, de forma interactiva, a través de la ventana de diálogo de cada bloque.
PRACTICAS
REGULACION AUTOMATICA
Ver Video P3. 16
3.4. CONSTRUCCION DEL MODELO: MANEJO DE BLOQUES Y LINEAS En la construcción del modelo con SIMULINK es necesario efectuar distintas acciones para manipular bloques y líneas. Manipulación de bloques: Copiar Bloques
Mover Bloques
Rotar y girar Bloques
PRACTICAS
REGULACION AUTOMATICA
Seleccionar el bloque de la ventana de diseño, hacer click en el botón para copiarlo y pulsar en el botón para pegarlo. También se pueden utilizar las opciones de menú Edit/Copy y Edit/Paste . Si se copia un bloque que está conectado a otros bloques, SIMULINK no copia las líneas de conexión. Para copiar bloques entre distintas ventanas de diseño, se selecciona el bloque deseado, se arrastra y se suelta en la ventana de destino Para mover un único bloque en una ventana de diseño, se selecciona haciendo click sobre él y se arrastra con el ratón a la nueva posición. . Es posible mover de forma precisa el bloque con las teclas Para mover más de un bloque, incluyendo las líneas de conexión, se seleccionan los bloques y las líneas mediante un recuadro que los englobe y se arrastra el conjunto a la nueva osición Se puede rotar un bloque 90 grados en sentido de las agujas del reloj con la opción de menú F o r m a t / Rotate B l o c k (esta opción también se encuentra en el menú emergente con el botón derecho del ratón). Se puede girar un bloque 180 grados con la opción de menú Format /Flip B l o c k .
P3. 17
3.4. CONSTRUCCION DEL MODELO: MANEJO DE BLOQUES Y LINEAS
PRACTICAS
Manipulación de bloques (II): Redimensionar Bloques
Cambiar el nombre de Bloques
Personalizar Bloques
REGULACION AUTOMATICA P3. 18 Para cambiar el tamaño de un bloque, seleccionar el bloque de la ventana de diseño, y arrastrar cualquiera de sus esquinas. La forma del cursor indica la esquina y la dirección en la que está siendo arrastrado. Mientras el bloque está siendo redimensionado, un rectángulo punteado muestra el tamaño instantáneo. Seleccionar el recuadro donde se visualiza el nombre del bloque e introducir el nuevo. Se puede cambiar la ubicación del nombre del bloque, seleccionando el recuadro con el texto y arrastrándolo a una nueva posición Se puede seleccionar el color de las líneas y del texto que contiene el bloque con la opción de menú Format/Foreground Color. También es posible elegir el color de relleno del bloque mediante la opción de menú Format/Background Color .
Se puede cambiar el tipo de letra del bloque con la opción de menú Format/Font Se puede dar sombreado a un bloque con la opción de menú Format/Show D r o p S h a d o w …
Suprimir Bloques
Se puede suprimir uno o varios bloques, seleccionándolos y pulsando en el teclado la tecla DEL (o SUP). También se puede utilizar la opción de menú Edit/Delete
3.4. CONSTRUCCION DEL MODELO: MANEJO DE BLOQUES Y LINEAS Manipulación de líneas: Dibujar líneas entre bloques
PRACTICAS
REGULACION AUTOMATICA
Para dibujar líneas entre bloques, se posiciona el cursor sobre el punto de salida del primer bloque y manteniendo presionado el botón del ratón, se lleva el cursor hasta el punto de entrada del segundo bloque.
Dibujar líneas desde otras líneas
Mover segmentos de líneas
Mover vértices de línea
Suprimir una línea
Seleccionar la línea origen. Manteniendo pulsada la tecla CTRL, arrastrar el cursor desde la línea origen hasta el punto de entrada bloque destino.
Seleccionar la línea deseada. Se sitúa el cursor sobre el segmento de línea a desplazar y pulsando el botón ízquierdo del ratón se arrastra hacia la posición deseada. Durante esta operación el cursor aparece en forma de cruz con flechas Para mover un vértice de una línea, se sitúa el cursor sobre el vértice y pulsando el botón izquierdo del ratón se arrastra hasta la nueva posición. Durante esta operación el cursor aparece en forma de círculo Se puede suprimir una o varias líneas, seleccionándolas y pulsando en el teclado la tecla DEL (o SUP). También se puede utilizar la opción Edit/Delete
P3. 19
3.5. SIMULACION DEL MODELO: PARAMETROS Y METODOS DE INTEGRACION Una vez construido el modelo, antes de ejecutar la simulación es importante configurarla. Para ello, hay que acceder a la opción de menú Simulation/Configuration Parameters de la ventana del modelo. Aparece un menú de navegación con distintas opciones que permiten configurar diferentes características sobre la simulación.
PRACTICAS
REGULACION AUTOMATICA
…
P3. 20
3.5. SIMULACION DEL MODELO: PARAMETROS Y METODOS DE INTEGRACION El cuadro Solver :
El cuadro de diálogo Solver nos permite ajustar los siguientes parámetros: tiempo de simulación, método de integración, tamaño de pasos máximo y mínimo, márgenes de error (tolerancia relativa y absoluta)…
PRACTICAS
REGULACION AUTOMATICA
Tiempo de simulación (Simulation Time) : Los parámetros Start time y Stop time especifican el tiempo inicial y final de simulación. Por defecto, el tiempo inicial es de 0 sg y el tiempo final de 10 sg. Normalmente, el tiempo inicial no se modifica. En el tiempo final se puede colocar cualquier valor numérico o inf que significa infinito y ocasiona que la simulación no se detenga nunca. Se puede detener la simulación temporalmente mediante el botón Pause, indicado con el icono ,o abortarla con el botón Stop . Es conveniente notar que el tiempo de simulación y el tiempo que tarda el ordenador en realizar dicha simulación no es el mismo. Por ejemplo, si Stop time está seleccionado en 15 sg. , esto no significa que la máquina estará simulando durante 15 sg. El tiempo que tarda la simulación depende generalmente de una serie de factores como son: la complejidad del modelo, el tamaño del paso de integración, método de integración, del ordenador con el que realicemos la simulación, etc.
P3. 21
3.5. SIMULACION DEL MODELO: PARAMETROS Y METODOS DE INTEGRACION El cuadro Solver : Método de integración (Solver Options):
PRACTICAS
REGULACION AUTOMATICA
Es el método matemático que utiliza SIMULINK para resolver numéricamente las ecuaciones diferenciales que componen el modelo. Debido a la diversidad de conductas de los sistemas dinámicos, algunos de estos métodos responden de manera más eficiente que otros, en términos de velocidad y precisión, según cada caso en particular. Simulink presenta dos grupos de métodos de resolución dependiendo del paso de simulación , que es el intervalo de integración de los algoritmos de resolución de las ecuaciones del modelo: - De paso variable (Variable-step): Son aquellos que
modifican automáticamente el tamaño del paso durante la simulación; disponen de control de error y detección de cruces por cero. - De paso fijo (Fixed-step): Mantienen el tamaño del paso de integración a través de toda la simulación y contrariamente a los métodos de paso variable, estos no disponen de control de error y detección de cruces por cero.
P3. 22
3.5. SIMULACION DEL MODELO: PARAMETROS Y METODOS DE INTEGRACION Métodos de paso variable (Variable-step): • ode45: Este es el método por defecto si Simulink detecta que el
modelo es continuo en el tiempo. Está basado en la fórmula de Runge-Kutta de orden 4 y 5 (Par de Dormand-Prince). Es un método de un solo paso, es decir, para calcular un punto sólo se basa en el calculado anteriormente. Este método proporciona resultados satisfactorios para la mayoría de los modelos continuos y resulta ser útil como primera aproximación cuando no se conoce mucho del sistema en estudio. • ode23: Es un método de un solo paso basado en la fórmula de Runge-Kutta (2,3) (par de Bogacki-Shampine). Este método resulta más eficiente que el ode45 cuando las tolerancias del error son menos exigentes o en presencia de sistemas stiff suaves (los sistemas stiff son aquellos en que coexisten dinámicas lentas y rápidas). • ode113: Es un método multipaso (es decir, necesita la conocer varios puntos anteriores para calcular la solución actual) de orden variable de Adams-Bashforth-Moulton. Puede resultar más eficiente que ode45 cuando las tolerancias del error se tornan muy exigentes. • ode15s: Es un método multipaso de orden variable basado en fórmulas de diferenciación numérica (NDFs). Se puede usar cuando nos encontramos con un sistema stiff, o cuando el método ode45 falla o resulta muy lento. El orden de este método puede variar entre uno y cinco. Cuanto mayor es el orden del método, si bien mayor será la precisión de los cálculos efectuados, puede que el mismo resulte inestable. Por tal motivo, si el modelo es stiff y requiere mayor estabilidad es aconsejable reducir el orden a dos o usar ode23s .
PRACTICAS
REGULACION AUTOMATICA
• ode23s: Es un método basado en la fórmula de
Rosenbrock de segundo orden. Al ser un método de un solo paso puede en algunos casos ser más eficiente que ode15s cuando las tolerancias no sean muy exigentes. Recomendable para sistemas stiff. • discrete: Es el método que usa SIMULINK cuando detecta que el modelo contiene elementos en tiempo discreto. P3. 23
3.5. SIMULACION DEL MODELO: PARAMETROS Y METODOS DE INTEGRACION Métodos de paso fijo (Fixed-step): • ode5: Es la versión de paso fijo del método ode45 (fórmula de
Dormand-Prince). • ode4: Está basado en la fórmula de Runge-Kutta de orden 4. • ode3: Es la versión de paso fijo del método ode23 (fórmula de Bogacki-Shampine). • ode2: Está basado en el método de Heun, también conocido como fórmula de Euler mejorada. • ode1: Está basado en el método de Euler. • discrete (paso fijo): Este método no realiza integraciones por lo que es aconsejable para modelos discontinuos.
PRACTICAS
REGULACION AUTOMATICA
Tamaños de paso máximo y mínimo: En los sistemas de paso variable podemos seleccionar el tamaño de paso máximo y mínimo a utilizar en la simulación. En los sistemas de paso fijo, podemos fijar el tamaño de paso. - Tamaño de paso máximo (Max Step Size): Este parámetro es el límite superior para el tamaño que puede tomar el paso en los métodos de paso variable. Cuando la opción se encuentra en AUTO, el parámetro es determinado del siguiente modo:
- Tamaño de paso inicial (Initial step size): Por defecto, SIMULINK analiza las derivadas de los estados para determinar el tamaño inicial del paso y de este modo no perder información producto de haber comenzado con un Por lo general este valor es suficiente, pero puede haber casos que paso demasiado grande. Este parámetro es sólo un valor requieran una modificación del mismo para evitar que se pierdan sugerido como tamaño para el primer paso ya que el solver comportamientos rápidos del sistema a causa de que el solver tome reducirá automáticamente el paso si los criterios de error pasos muy grandes. Si la simulación tarda mucho tiempo, puede que no son satisfechos. el paso sea muy grande para que el solver encuentre la solución. P3. 24
3.5. SIMULACION DEL MODELO: PARAMETROS Y METODOS DE INTEGRACION Tolerancias de error: Los solvers utilizan técnicas locales de control de errores en cada paso de integración. Durante cada paso, no sólo se determina el valor de cada estado sino también el error local que es el error estimado de los estados calculados. Por ejemplo, ode23 emplea una aproximación de orden 2 y una de orden 3 y en base a la diferencia en los resultados obtenidos se estima el error local antes mencionado. Este error local es comparado con la cota de error aceptable que es función de las tolerancias relativa y absoluta. Si el error local estimado es mayor que la cota de error aceptable para alguno de los estados calculados, entonces el solver reduce el paso y recalcula.
PRACTICAS
REGULACION AUTOMATICA
- Tolerancia Relativa (Relative tolerance): Mide el error relativo al valor de cada estado y representa un porcentaje del valor del dicho estado. Por defecto este parámetro es 10-3, lo que significa que el estado calculado tendrá una precisión del 0.1%. - Tolerancia Absoluta (Absolute tolerance): Representa un umbral para el valor del error. Esta tolerancia representa la cota máxima del error a medida que los estados se aproximan a cero. P3. 25
3.6. SUBSISTEMAS Y MASCARAS Usando Simulink se pueden modelar sistemas complejos y grandes tan fácilmente como los sistemas simples, sin límites sobre la cantidad de bloques o conexiones. Los modelos complejos se crean agrupando bloques en subsistemas . Para trabajar con subsistemas, se pueden construir los modelos usando enfoques top-down y bottom-up.
PRACTICAS
REGULACION AUTOMATICA
Creación de subsistemas: La creación de subsistemas permite simplificar un diagrama de bloques, ya que consiste en agrupar varios bloques como si fueran uno solo. Para acceder a los elementos que forman el subsistema basta con hacer doble click con el ratón sobre el bloque subsistema. Existen dos formas de crear subsistemas: 1) Seleccionando los bloques que queremos que lo formen y eligiendo en el menú Edit/Create Subsystem . 2) Escogiendo directamente de la librería Commonly Used Blocks el bloque Subsystem y editándolo internamente En todo caso, el subsistema vendrá delimitado por un bloque entrada I n y un bloque de salida Out P3. 26
3.6. SUBSISTEMAS Y MASCARAS Máscaras. Personalización de bloques: Las funciones de enmascaramiento de SIMULINK sirven para personalizar los subsistemas. Una máscara presenta las siguientes ventajas: - Permite crear un icono personalizado para un bloque subsistema.
PRACTICAS
REGULACION AUTOMATICA
- Proporciona una interfaz de usuario mediante un cuadro de diálogo que permite introducir parámetros de los bloques que constituyen el subsistema.
Método de creación de una máscara (I): 1) Crear un bloque subsistema, como paso previo. 2) Seleccionar el bloque subsistema y elegir la opción de menú Edit/Mask Subsystem. También se puede acceder a esta opción mediante el menú que aparece al hacer click en el botón derecho del ratón. Se abrirá la ventana del Editor de Máscaras (Mask editor) que posee 4 pestañas: Icon/Parameters/Inicialization/Documentation P3. 27
3.6. SUBSISTEMAS Y MASCARAS Método de creación de una máscara (II): 3) Personalizar el icono con la pestaña Icon (Opcional) Las opciones más destacables de esta pestaña son: Frame: permite visualizar o no el rectángulo que encierra el bloque Transparency: las opciones opaque/transparent permiten ocultar o visualizar información del bloque Rotation: cuando el bloque está girado o invertido, permite girar o invertir el contenido del icono Units: Selecciona el sistema de coordenadas para los comandos de dibujo plot y text Drawing comands (Comandos de dibujo):
PRACTICAS
REGULACION AUTOMATICA
plot: dibuja una gr áfica formada por líneas rectas definidas por parejas de vectores x, y patch: dibuja un a gr áfica con relleno de un color seleccionable image: muestra un a foto o figura en el bloque elegido disp: muestra un texto en el centro del bloque text: muestra un texto en un a posición definida por coordenadas dpoly: visualiza un a función de transferencia en s o en z droots: visualiza una función de transferencia en formato ganancia- cero-polo zpk
Se recomienda consultar la ayuda (botón Help) para conocer la sintaxis concreta de cada comando P3. 28
PRACTICAS
3.6. SUBSISTEMAS Y MASCARAS Método de creación de una máscara (III): 4) Crear y definir los parámetros de la máscara en la pestaña Parameters
REGULACION AUTOMATICA
Para crear cada parámetro de la máscara se hace click en el botón Se habilita el panel Dialog parameters donde se pueden definir los atributos de cada parámetro de la máscara, que vienen representados en columnas: Prompt : Texto que identificará al parámetro en el cuadro de diálogo Variable : Nombre de la variable que identifica a los parámetros de los bloques contenidos en el subsistema Type : Tipo de control que se utilizará para editar el valor de cada parámetro. Existen 3 opciones: edit (campo editable), checkbox (casilla de verificación lógica) y popup (menú seleccionable en el que las opciones deben especificarse en la ventana inferior izquierda) Evaluate : Si se selecciona, Simulink evalúa la expresión introducida por el usuario antes de asignarla a la variable. Si no, Simulink trata la expresión como una cadena de caracteres Tunable : Si se selecciona, permite cambiar el parámetro mientras corre una simulación Para eliminar un parámetro de la máscara se hace click en el botón
. Para ordenarlo se usan los botones P3. 29
3.6. SUBSISTEMAS Y MASCARAS Método de creación de una máscara (IV): 5) Especificar opciones de inicio en la pestaña Initialization (Opcional) En el cuadro Inicialization commands se pueden introducir una serie de comandos en MATLAB (incluyendo funciones, operadores y variables) que se ejecutarán al cargar el modelo, al actualizar el bloque subsistema o al comenzar la simulación. En la tabla Dialog variables aparece una lista con los parámetros asociados a la máscara del subsistema, definidos en la pestaña Parameters, y se pueden editar aquí.
PRACTICAS
REGULACION AUTOMATICA
6) Añadir texto descriptivo y de ayuda en la pestaña Documentation (Opcional) El tipo de máscara (Mask type) es una clasificación del bloque para efectos de documentación. Aparecerá en el cuadro de diálogo de la máscara La descripción de la máscara (Mask description) es un texto informativo que aparecerá en el cuadro de diálogo de la máscara, útil para describir el propósito o función del bloque enmascarado. La ayuda de la máscara (Mask help) es un texto de ayuda que aparecerá al pulsar sobre el botón Help, útil para explicar cómo funciona el bloque y cómo introducir sus parámetros. P3. 30
3.7. APLICACIONES A LA SIMULACIÓN Y VISUALIZACIÓN DE SEÑALES Ejemplo 3.1: Visualizar en un osciloscopio una onda senoidal de amplitud 1 y de frecuencia 2 rad/s, en el intervalo entre 0-10 segundos. Utilizar el Generador de Señal.
PRACTICAS
REGULACION AUTOMATICA
P3. 31
3.7. APLICACIONES A LA SIMULACIÓN Y VISUALIZACIÓN DE SEÑALES
PRACTICAS
Ejemplo 3.2: Visualizar en un osciloscopio un tren de pulsos rectangular de amplitud 1 REGULACION y de período 2 segundos en el intervalo entre 0-10 segundos. El ancho del pulso debe serAUTOMATICA un 20 % del período. Utilizar el Generador de Pulsos.
P3. 32
3.7. APLICACIONES A LA SIMULACIÓN Y VISUALIZACIÓN DE SEÑALES Ejemplo 3.3: Visualizar en un osciloscopio 2 señales a la vez: Una onda senoidal de amplitud 1 y de frecuencia 1 rad/s y la misma señal multiplicada por 2. Enviar al espacio de trabajo de MATLAB la variable vectorial generada
PRACTICAS
REGULACION AUTOMATICA
P3. 33
3.7. APLICACIONES A LA SIMULACIÓN Y VISUALIZACIÓN DE SEÑALES
PRACTICAS
Ejemplo 3.4: Construir un modelo en Simulink que permita integrar un tren de pulsos REGULACION y visualizarlo en osciloscopio. El tren rectangular tiene amplitud 1, período 2 segundos AUTOMATICA y ancho de pulso el 50% del período
P3. 34
3.8. APLICACIONES A LA SIMULACIÓN DE SISTEMAS MODELADOS POR ECUACIONES DIFERENCIALES (DOMINIO DELTIEMPO) Simulink permite simular la respuesta de un sistema modelado por una ecuación diferencial lineal o no lineal ante una entrada cualquiera. Método para simular un sistema modelado por una ecuación diferencial lineal : n
an
1)
d y (t ) dt
d
n 1
dt
y (t ) n 1
... a 1
dy (t ) dt
REGULACION AUTOMATICA
a 0 y (t ) x (t )
Despejar la derivada de mayor orden a la izquierda de la ecuación n
2)
n
a
n1
PRACTICAS
1 d y (t ) ( x (t ) n dt an
a n1
d
n 1
dt
y (t ) n 1
... a 1
dy (t ) dt
a 0 y (t ))
En Simulink crear una cascada de integradores (bloque Integrator) con tantos bloques como derivadas aparezcan en la ecuación. Si existen condiciones iniciales, se deben especificar en los bloques de integración
P3. 35
3.8. APLICACIONES A LA SIMULACIÓN DE SISTEMAS MODELADOS POR ECUACIONES DIFERENCIALES (DOMINIO DELTIEMPO) 3)
Utilizando bloques Gain para los coeficientes y un bloque Sum, construir la ecuación diferencial
PRACTICAS
REGULACION AUTOMATICA
OBSERVACION: Si la ecuación diferencial es no lineal, el procedimiento es similar, siendo necesario utilizar bloques de función matemática (Math function ) en el paso 3) P3. 36
3.8. APLICACIONES A LA SIMULACIÓN DE SISTEMAS MODELADOS POR ECUACIONES DIFERENCIALES (DOMINIO DELTIEMPO) Ejemplo 3.5: Sea el siguiente sistema mecánico de un grado de libertad, compuesto de masa, muelle y amortiguador. Al aplicarse una fuerza F(t), la masa se desplaza de su posición inicial de reposo una distancia x(t). b
k
m
PRACTICAS
REGULACION AUTOMATICA
x(t) F(t)
La ecuación dinámica del sistema viene determinada por la 2ª Ley de Newton: 2
2
d x (t ) F (t ) b kx m 2 dt dt dx
o bien:
m
d x (t ) 2
dt
b
dx dt
kx F (t )
Considerando m=1 Kg , k=1 N/cm y b=0.2 N/ cm/s , construir el modelo en Simulink y representar la evolución de la posición x(t) entre 0 y 30 segundos cuando se aplica bruscamente una fuerza F =1 N (en escalón) partiendo de la situación inicial de reposo. 2
d x(t ) 2
dt
0.2
dx
x F (t )
dt P3. 37
3.8. APLICACIONES A LA SIMULACIÓN DE SISTEMAS MODELADOS POR ECUACIONES DIFERENCIALES (DOMINIO DELTIEMPO) Ejemplo 3.5 (solución): Se despeja la derivada de mayor orden, se construye el modelo y se ejecuta la simulación visualizando la respuesta en el Scope 2
d x(t ) 2
dt
PRACTICAS
REGULACION AUTOMATICA
u(t ) 0.2 dx x dt
P3. 38
PRACTICAS
3.8. APLICACIONES A LA SIMULACIÓN DE SISTEMAS MODELADOS POR ECUACIONES DIFERENCIALES (DOMINIO DELTIEMPO) Ejemplo 3.6: Sea un depósito de área A=4 m2, con caudal de entrada Qe(t) y de salida Qs(t) por un orificio circular de R=0.1m, siendo H(t) el nivel de líquido. La ecuación dinámica del depósito viene determinada por la Qe(t) siguiente ecuación diferencial no lineal: dH (t ) Q (t ) 4 0.14 H (t ) e
REGULACION AUTOMATICA
dt
Si inicialmente el tanque está vacío y se somete a una entrada constante de Qe(t)=0.2 m 3/seg, construir el modelo y representar la evolución del nivel
H(t) Qs(t)
Se despeja la derivada, se construye la ecuación y se visualiza la respuesta en el Scope dH (t ) 1 (Q (t ) 0.14 H (t ) ) e dt 4 P3. 39
PRACTICAS
3.9. APLICACIONES A LA SIMULACIÓN DE SISTEMAS MODELADOS POR LA FUNCION DE TRANSFERENCIA (DOMINIO DE LAPLACE)
REGULACION AUTOMATICA
Dado un sistema lineal invariante en el tiempo:
X(s)
Y(s)
G(s)
ENTRADA
SALIDA
la función de transferencia se define como el cociente salida/entrada a condiciones iniciales nulas G( s)
Y ( s)
L
( y(t )) L ( x(t ))
X ( s)
c.i.nulas
c.i.nulas
Si tenemos un sistema modelado por la ecuación diferencial lineal : n
a
n
d y (t ) dt
n
a
n 1
n1
d y (t ) dt
n 1
dy (t ) ... a a y (t ) b dt 1
0
m
m m
d x(t ) dt
... b
dx (t ) 1
dt
b x(t ) 0
tomando la transformada de Laplace a condiciones iniciales nulas , se obtiene la función m m 1 de transferencia Y ( s ) bm s bm 1 s ... b1 s b0 G ( s ) n n1 X ( s ) an s an1 s ... a1 s a0 En Simulink, se pueden introducir sistemas representados por su función de transferencia, utilizando bloques Transfer F cn , de la librería Continuous. En este bloque, se escriben los coeficientes del numerador y denominador de la función de transferencia en orden descendente. P3. 40
3.9. APLICACIONES A LA SIMULACIÓN DE SISTEMAS MODELADOS POR LA FUNCION DE TRANSFERENCIA (DOMINIO DE LAPLACE) Ejemplo 3.7: Considerar el sistema mecánico del ejemplo 3.5, compuesto de masa, muelle y amortiguador. Simular durante 30 segundos la respuesta del sistema a una fuerza de entrada de 1 N (en escalón) utilizando la función de transferencia. 2
d x(t ) 2
0.2
dt
dx dt
PRACTICAS
REGULACION AUTOMATICA
x F (t )
La función de transferencia del sistema resulta X ( s) 1 2 F ( s) s 0.2 s 1
Se crea el modelo utilizando un bloque Transfer Fcn, se lanza la simulación y se visualiza la posición de la masa en el Scope.
P3. 41
3.10. APLICACIONES A LA SIMULACIÓN DE SISTEMAS DE CONTROL CONTINUOS EN LAZO ABIERTO Y EN LAZO CERRADO
PRACTICAS
REGULACION Ejemplo 3.8: Se considera un sistema de control de velocidad en lazo abierto. La regulación de velocidad se consigue controlando directamente la tensión aplicada a un AUTOMATICA motor de cc controlado por armadura. ( s ) Si la función de transferencia del motor junto con su carga se aproxima por V ( s ) s 1 10 , simular la evolución de la velocidad angular de salida cuando se aplica un escalón de 1 Voltio a su entrada.
P3. 42
3.10. APLICACIONES A LA SIMULACIÓN DE SISTEMAS DE CONTROL CONTINUOS EN LAZO ABIERTO Y EN LAZO CERRADO
PRACTICAS
Ejemplo 3.9: Se considera ahora el sistema de control de velocidad en lazo cerrado. La REGULACION AUTOMATICA velocidad se mide con una tacodinamo que proporciona 0.1 Voltio / rad/seg . ( s ) 10 Si la función de transferencia del motor junto con su carga se aproxima por V ( s ) , s 1 simular la evolución de la velocidad angular de salida cuando se aplica un escalón de 1 Voltio a su entrada.
P3. 43
3.11. APLICACIONES A LA SIMULACIÓN DE SISTEMAS CONTINUOS CON CONTROLADOR PID. AJUSTE DE PARÁMETROS Ejemplo 3.10: Considérese el control de un sistema inestable en lazo abierto. 400 La función de transferencia del sistema viene dada por: G ( s ) 2 s ( s 30 s 200) Utilizando Simulink, ajustar un controlador PID para que la respuesta al escalón sea óptima.
PRACTICAS
REGULACION AUTOMATICA
NOTA: El bloque PI D Controller que viene por defecto en Simulink está en la librería Simulink Extras y se trata de un PID paralelo
P3. 44
PRACTICAS
3.12. APLICACIONES A LA SIMULACIÓN DE SISTEMAS DE CONTROL CONTINUOS NO LINEALES Ejemplo 3.11: En la Figura se muestra un sistema de brazo de robot, en el que sólo se considera el movimiento de la articulación de la base. Se utiliza un control proporcional con ganancia Kp=100 . Para una posición determinada del brazo, el diagrama de bloques es el siguiente : CONTROL
i +
-
100
MOTOR CC
5 s (0.55s + 1 )
REGULACION AUTOMATICA
MADE IN BEJAR ROBOT ACME
REDUCTOR
1 30
o REDUCTOR CONTROLADOR PID
o
i
Utilizando Simulink, obtener el movimiento de la base del robot cuando se aplica un escalón (se quiere que el robot se mueva de la posición inicial a otra fija), en las siguientes circunstancias: a) Suponiendo un motor cc perfectamente lineal b) Considerando un motor real de 24 Voltios
MOTOR CC
P3. 45
3.12. APLICACIONES A LA SIMULACIÓN DE SISTEMAS DE CONTROL CONTINUOS NO LINEALES Ejemplo 3.11.a): Solución motor ideal
PRACTICAS
REGULACION AUTOMATICA
P3. 46
3.12. APLICACIONES A LA SIMULACIÓN DE SISTEMAS DE CONTROL CONTINUOS NO LINEALES Ejemplo 3.11.b): Solución motor real 24 V
PRACTICAS
REGULACION AUTOMATICA
P3. 47
PRACTICAS
3.12. APLICACIONES A LA SIMULACIÓN DE SISTEMAS DE CONTROL CONTINUOS NO LINEALES REGULACION AUTOMATICA
Ejemplo 3.12: Utilizando Simulink, simular la respuesta del siguiente sistema de control todo-nada, en el intervalo 0-10 segundos.
u(t )
ON
10 El control ON-OFF tiene la siguiente característica:
0 OFF
0.1
0.1
e(t ) P3. 48
3.12. APLICACIONES A LA SIMULACIÓN DE SISTEMAS DE CONTROL CONTINUOS NO LINEALES Ejemplo 3.12: Solución
PRACTICAS
REGULACION AUTOMATICA
P3. 49
PRACTICAS
REGULACION