10SIMULINK

62
10. SIMULINK 10.1 INTRODUCCION Simulink es un software que funciona bajo la plataforma de Matlab y es una herramienta muy útil para modelar, simular y analizar sistemas, tanto lineales como no lineales. Permite al usuario realizar sus estudios tanto en el dominio del tiempo como el de Laplace, expresar las funciones de transferencia en las diferentes formas incluyendo la del espacio de los estados y otras opciones. En una Figura 10.1. Librerias (Izquierda) y Espacio de trabajo de Simulink (Derecha) 10.2 ACCESO A SIMULINK Para acceder a Simulink se requiere abrir el espacio de trabajo de Matlab y presionar el icono “Simulink” o también mediante la digitación de dicha palabra clave con letras minúsculas en el editor de comandos. Con lo anterior se despliega, solamente, la ventana de título “Simulink Library Browser” que se

description

COCNTROL

Transcript of 10SIMULINK

Page 1: 10SIMULINK

10. SIMULINK

10.1 INTRODUCCION

Simulink es un software que funciona bajo la plataforma de Matlab y es unaherramienta muy útil para modelar, simular y analizar sistemas, tanto lineales como no lineales. Permite al usuario realizar sus estudios tanto en el dominio del tiempo como el de Laplace, expresar las funciones de transferencia en las diferentes formas incluyendo la del espacio de los estados y otras opciones. En una interfaz gráfica (GUI) como la que se observa en la Figura 10.1, el usuario construye un diagrama de bloques que desarrollan procedimientos que realizan las operaciones matemáticas requeridas para la solución de un modelo.

Figura 10.1. Librerias (Izquierda) y Espacio de trabajo de Simulink (Derecha)

10.2 ACCESO A SIMULINK

Para acceder a Simulink se requiere abrir el espacio de trabajo de Matlab y presionarel icono “Simulink” o también mediante la digitación de dicha palabra clave con letras minúsculas en el editor de comandos. Con lo anterior se despliega, solamente, la ventana de título “Simulink Library Browser” que se observa a la izquierda de la Figura 10.1. El espacio de trabajo de Simulink es la ventana que se observa a la derecha y se despliega presionando el icono “Create a new model” que se encuentra

Page 2: 10SIMULINK

178

en la barra estándar o desplegando el menú “File” y seleccionando sucesivamente“New” y “Model” (Ctrl + N)

10.3 LIBRERIAS DE SIMULINK

Al desplegar el árbol de Simulink y haciendo clic izquierdo sobredespliegan las librerías que contienen los bloques operacionales acuerdo a diferentes propósitos comunes. Los nombres de las

su nombre seagrupados de librerías son:

Continuous, Discontinuities, Discrete, Look-Up Tables, Math Operations, ModelVerification, Model-Wide Utilities, Ports & Subsystems, Signal Attributes, Signal Routing, Sinks, Sources y User-Defined Functions.

Instalación y Conexión de un bloque operacional

Para la instalación de un bloque en el espacio de trabajo de Simulink se seleccionade la librería con un clic izquierdo del mouse y en forma sostenida se arrastra hasta el espacio de trabajo de Simulink. Las conexiones entre dos bloques se realizan acercando el puntero del mouse a uno de los topes (entrada o salida) hasta que este cambie en forma de cruz, se presiona el botón izquierdo del mouse y en forma sostenida se arrastra hasta el otro tope. La conexión es correcta cuando el puntero del mouse tome la forma de una cruz de doble trazo. Se debe observar una línea con una saeta en el tope del bloque de entrada.

Especificación de un bloque operacional

Las especificaciones mínimas requeridas en un bloque se relacionan con laoperación que realizan dentro del diagrama que representa el proceso de solución del modelo matemático del sistema.

10.4 LIBRERÍA “CONTINUOUS” (CONTINUO)

La Figura 10.2a muestra la ventana que se despliega al hacer doble clic sobre lalibrería “Continuous” y la Figura 10.2b muestra los íconos que simbolizan a cada uno de los bloques que incluye esta librería. Los nombres de los bloques son: Derivative (Derivada), Integrator (Integrador), State-Space (Espacio de los Estados), Transfer Fcn (Función de Transferencia como numerador/denominador), Transport Delay (Tiempo Muerto), Variable Transport Delay (Tiempo Muerto Variable), Zero- Pole (Transferencia Muerto en la forma de zeros y polos)

Mach

Page 3: 10SIMULINK

179

(a) (b)

Figura 10.2. Librería (a) Continuous y (b) Bloques operacionales

Los bloques de la librería “Continuous” representan unidades que se alimentan deuna información de entrada y que al desarrollar sobre esta un proceso matemático transmite el resultado como una información de salida. En la librería “Continuous” se incluyen los bloques para realizar operaciones matemáticas continuas en el tiempo.

Bloque Derivada (“Derivative”)

El bloque “Derivative” desarrolla la derivada con respecto al tiempo de la variablede entrada para lo cual no se necesita especificación. La Figura 10.3 muestra la ventana que se despliega al hacer doble clic sobre el icono Derivative

Figura 10.3 Especificaciones del bloque Derivative

Mach

Page 4: 10SIMULINK

180

Bloque Integrador (“Integrator”)

El bloque “Integrator” desarrolla la operación de integrar la información de entradadesde un tiempo inicial hasta un tiempo final que se especifica como uno de los parámetros de la simulación. Se observa en la ventana de especificaciones del bloque integrador mostrada en la Figura 10.4a que se requiere la especificación de la condición inicial de la variable que se suma (integra)

(a) (b)

Figura 10.4 Especificaciones del bloque (a) Integrator (b) State-Space

Bloque Espacio de los Estados (“State-Space”)

La Figura 10.4b muestra la ventana de especificaciones para el bloque que desarrollaun modelo lineal en la forma del Espacio de los Estados. Se observan los cuadros para especificar las matrices A, B, C y D y las condiciones iniciales.

Bloques Funciones de Transferencia (“Transfer Fcn” y “Zero-Pole”)

La Figura 10.5 muestra las ventanas de especificaciones para las funciones detransferencia en la forma de numerador/denominador y en la de zeros y polos.

Mach

Page 5: 10SIMULINK

181

(a) (b)

Figura 10.5 Especificaciones de bloques (a) Transfer Fcn y (b) Zero-Pole

En la Figura 10.5a, se observan los cuadros donde se especifican en forma matricialel numerador y el denominador de la función de transferencia mientras que en la Figura 10.5b los cuadros donde se incluyen en forma matricial los zeros, los polos y las ganancias de la función de transferencia

Es común a todas las ventanas de especificaciones de bloques operacionales, lainclusión de la barra de título seguido de un pequeño cuadro con el nombre del bloque y una breve descripción de la función de éste. De igual manera, en la parte inferior se incluyen los botones “OK”, “Cancel”, “Help” y “Apply”

Bloque Tiempo Muerto (“Transport Delay”)

La Figura 10.6 muestra las ventanas de especificaciones para los bloques queincluyen un atraso por tiempo muerto dentro de la dinámica de un sistema. Simulink incluye un bloque “Transport Delay” y otro titulado “Variable Transport Delay”

El bloque “Transport Delay” aplica el tiempo muerto a la señal de entrada que seespecifica en el cuadro de nombre “Time Delay”, mientras que el bloque “Variable Transport Delay” aplica el tiempo muerto a la primera señal de entrada y en la segunda entrada se especifica el tiempo muerto. Las otras especificaciones, usualmente, se dejan como aparecen por defecto

Mach

Page 6: 10SIMULINK

182

(a) (b)

Figura 10.6 Especificaciones de los bloques Transport Delay

10.5 LIBRERÍA “MATH OPERATIONS” (OPERADORES)

La Figura 10.7 muestra la ventana que se despliega al hacer doble clic sobre lalibrería “Math Operations” y la Figura 10.8 los botones incluidos en dicha librería.

Figura 10.7 Librería Math Operations

Mach

Page 7: 10SIMULINK

183

Figura 10.8 Bloques de la librería Math Operations

Los bloques de la librería “Math Operations” se utilizan en la simulación de ladinámica de un sistema para aplicar operadores matemáticos sobre su información de entrada. A continuación se describe la especificación de algunos de ellos

Bloque Suma (“Sum”)

El bloque “Sum” realiza la suma algebraica de las informaciones de entradasalimentadas al bloque. La Figura 10.9 muestra la ventana de especificaciones de este bloque y se observa el cuadro desplegable donde se selecciona la forma del icono

Figura 10.9 Especificaciones del bloque Sum

Mach

Page 8: 10SIMULINK

184

El bloque “Sum” se especifica introduciendo en el cuadro “List of signs” los signosde cada uno de las informaciones de entrada o el número de ellas. En el primer caso los signos de suma o resta se despliegan a un lado de los topes de entrada del icono que representa al bloque

Bloques Ganancia (“Gain” y “Slider Gain”)

El bloque “Gain” aplica un factor multiplicador constante a la información deentrada y el producto lo transmite como la información de salida. El factor multiplicador es la ganancia. La Figura 10.10a muestra la ventana de especificaciones del bloque Gain. En el cuadro Gain se introduce la ganancia como un valor constante

El bloque “Slider Gain” realiza la misma operación del bloque “Gain” permitiendola variación del valor de la ganancia asignada, mediante el botón deslizable, desdeun valor mínimo hasta un máximo. La Figura 10.10b muestra la ventanaespecificaciones del bloque “Slider Gain”

de

(a) (b)

Figura 10.10 Especificaciones de los bloques (a) Gain y (b) Slider Gain

Bloque Producto (“Product”)

El bloque “Product” realiza el producto o la división entre las informaciones deentrada. Esto se especifica introduciendo, ya sea, el número de corrientes amultiplicar o los signos producto o división para cada una de las informaciones de entrada en el cuadro “Number of inputs” de la ventana de especificaciones que se muestra en la Figura 10.11

Mach

Page 9: 10SIMULINK

185

Figura 10.11 Especificaciones del bloque Product

Al especificar los signos, estos se despliegan con los símbolos de producto odivisión a un lado de los topes de entrada del icono que representa al bloque

Bloque Funcion (“Math Function” y “Trigonometric Function”)

El bloque “Math Function” aplica a la información de entrada una funciónmatemática que se selecciona en el cuadro desplegable “Function”, mientras que elbloque “Trigonometric Function”observa en la Figura 10.12

solo aplica funciones trigonométricas como se

(a) (b)

Figura 10.12 Especificaciones del bloque (a)Function

Math Function, (b) Trigonometric

Mach

Page 10: 10SIMULINK

186

Bloque Minimo y Maximo (“MinMax”)

El bloque “MinMax” selecciona el valor mínimo o el máximo entre loscorrespondientes a las informaciones de entrada. En su ventana de especificaciones se encuentra el cuadro donde se elige la función del bloque, es decir, “min” o “max” y un cuadro adicional donde se especifica el número de entradas al bloque. Después de introducir lo anterior, se observa en el icono del bloque un número de topes de entrada igual al especificado

10.6 LIBRERÍA “SOURCES” (ENTRADAS)

La Figura 10.13 muestra la ventana que se despliega al hacer doble clic sobre lalibreríalibrería

“Sources” y la Figura 10.14 los íconos de los bloques incluidos en dicha

Figura 10.13. Librería Sources

Mach

Page 11: 10SIMULINK

187

Figura 10.14 Bloques de la librería Sources

La librería “Sources” contiene un conjunto de bloques de donde emergen señalesque representan los cambios en las variables de entrada. Estos bloques solo tienen puertos de salida, es decir, no tienen puertos de entrada. A continuación se describenlos bloques Step, Ramp, Sine Wave,Generator

Constant, Clock, Digital Clock, Signal

Bloques Paso y Rampa (“Step” y “Ramp”)

La Figura 10.15a muestra la ventana de especificaciones del bloque “Step”. En elcuadro “Step Time” se introduce el tiempo transcurrido para que la variable de entrada cambie desde un valor inicial que se introduce en el cuadro “Initial value” hasta un valor final que se introduce en el cuadro “Final value”.

(a) (b)

Figura 10.15 Especificaciones de los bloques (a) Step y (b) Ramp

Mach

Page 12: 10SIMULINK

188

La Figura 1.15b muestra la ventana de especificaciones del bloque “Ramp”. En elcuadro “Slope” se introduce la pendiente de la rampa y en el cuadro “Start time” se introduce el tiempo de iniciación del cambio rampa. Los cuadros de especificaciones se dejan con sus valores por defecto

Bloques Seno y Generador de Señal (“Sine Wave” - “Signal Generator”)

La Figura 10.16a muestra la ventana de especificaciones del bloque “Sine Wave”.La Amplitud, el umbral, la frecuencia y la fase de la onda sinusoidal se introducenen los cuadrosrespectivamente.

de nombres “Amplitude”, “Bias”, “Frequency” y “Phase”,

(a) (b)

Figura 10.16 Especificaciones del bloque (a) Sine Wave y (b) Signal Generator

La Figura 10.16b muestra la ventana de especificaciones del bloque “SignalGenerator”. En el cuadro “Wave from” se especifica si la onda periódica de entrada es sinusoidal, cuadrada, diente de sierra o al azar. La amplitud y la frecuencia se introducen en los cuadros de nombres “Amplitude” y “Frequency”, respectivamente.

Bloques Reloj y Constante (“Clock” y “Constant”)

La Figura 10.17a muestra la ventana de especificaciones para el bloque “Clock” quese utiliza para mostrar el tiempo de simulación. Si se verifica el cuadro “Display

Mach

Page 13: 10SIMULINK

189

time” se despliega el tiempo sobre el icono. El bloque “Display Clock” seutilizar como otra opción.

puede

(a) (b)

Figura 10.17 Especificaciones del bloque (a) Clock (b) Constante

La Figura 10.17b muestra la ventana de especificaciones para el bloque “Constante”que se utiliza para entrar un valor constante en el diagrama de bloques que simula la dinámica de un sistema.

10.7 LIBRERÍA “SINKS” (SALIDAS)

La librería “Sinks” contiene un conjunto de bloques receptores de señales de saliday, por lo tanto, solo tienen puertos de entrada. Mediante estos bloques se observan los resultados de las simulaciones en diferentes formas, por ejemplo, gráfica o numérica. La Figura 10.18a muestra la ventana que se despliega al hacer doble clic sobre la librería “Sinks” y la Figura 6.18b muestra los botones que se incluyen en dicha librería.

Los botones “Scope”, “Floating Scope” y “XY Graph” despliegan la información desalida en función del tiempo, en forma gráfica. El botón “Scope” no requiere especificaciones y “Floating Scope” se utiliza para representar en gráficos separados los perfiles de cada una de las informaciones de salida, para lo cual se hace doble clic sobre el icono, se presiona el cuadro “Parameters” y se introducen el número de gráficos en el cuadro “Number of axes”. El botón “XY Graph” requiere de las especificaciones de los valores límites en los ejes de representación de las variables “X” e “Y”. La Figura 10.19 muestra la ventana de especificaciones de los botones “Floating Scope” y “XY Graph”.

Mach

Page 14: 10SIMULINK

190

(a) (b)

Figura 10.18 Librería Sinks

(a) (b)

Figura 10.19 Especificaciones del bloque (a) XY Graph y (b) Floating Scope

Los botones “Display” y “To Workspace” despliegan la información de salida enforma numérica. El primero lo muestra en forma digital sobre el mismo iconomientras que el segundo lo hace sobre el espacio de trabajo de Matlab asignándole

Mach

Page 15: 10SIMULINK

191

un símbolo a las variables que se quieren desplegar. El botón “Display” permite laselección del formato numérico para el despliegue de la información de salida. La Figura 10.20 muestra las ventanas de especificaciones de estos botones

(a) (b)

Figura 10.20 Especificaciones del bloque (a) “Display” y (b) “To Workspace”

Figura 10.21 Especificaciones del bloque “To File”

10.8 LIBRERÍAS “SIGNAL ROUTING” Y “PORTS & SUBSYSTEMS”

Las Figuras 10.22 muestran las ventanas que se despliegan al abrir las librerías“Signal Routing” y “Ports & Subsystems” que contienen bloques de enrutamiento de señales y definición de puertos y subsistemas.

Mach

Page 16: 10SIMULINK

192

(a) (b)

Figura 10.22. Librería (a) Signal Routing (a) y (b) Ports & Subsystems

La librería “Signal Routing” contiene un conjunto de bloques de enrutamiento deseñales como interruptores, mezcladores, divisores, etc. Estos bloques tienen puertos de entrada y de salida

La librería “Ports & Subsystems” contiene un conjunto de bloques que definenpuertos de entradas y de salidas o subsistemas con los que desarrollan lazos de control de flujo como if, switch, while, for, etc.

10.9 SIMULACION DE UN SISTEMA CON SIMULINK

10.9.1 Sistema de Primer Orden Lineal – Dominio Tiempo

En la Figura 10.23 se muestra un diagrama de bloques para la simulación delsistema de primer orden lineal en el dominio del tiempo, planteado en la Práctica No. 1.

Mach

Page 17: 10SIMULINK

193

Figura 10.23. Diagrama de bloques del sistema de la Práctica 1

Mach

Page 18: 10SIMULINK

194

Los parámetros físicos incluidos son los correspondientes al volumen en el tanque,el flujo volumétrico a través del mismo y la constante de velocidad de reacción.

El botón “Multiport Switch” es un interruptor múltiple que se encuentra en lalibrería “Signal Routing”. Su funcionamiento está acoplado con el botón constante denominado “Entrada” cuya función es indicar al interruptor la función que debe dejar pasar a través de él. Esto se hace asignando los números 1, 2 y 3 a los cambios Step, Ramp y Sine Wave, respectivamente. El botón “Mux” de la librería “Routing Signal” simula la circulación de la señal rampa de entrada separada de la señal de salida del sistema pero conjuntas de tal manera que el “Scope” que se alimenta con la descarga del botón “Mux” muestra en una misma ventana ambos perfiles. El botón “Manual Switch” se incluye para interrumpir el flujo de la información de salida a través de él cuando se haga la simulación de la respuesta rampa. Su operación es manual

Al hacer la simulación con la ecuación diferencial estándar de un sistema de primerorden lineal en términos de sus variables desviación, la condición inicial en el integrador es cero. Para la fijación de los parámetros de la simulación en cuanto a la fijación del tiempo y a la selección del método para la solución de la ecuación diferencial despliegue el menú “Simulation” y llénela como se observa en la Figura 10.24.

Figura 10.24 Especificación de los Parámetros de la Simulación

En el cuadro “Simulation Time” se ha fijado como tiempo de simulación 50unidades de tiempo y en el cuadro “Solver options” se ha seleccionado el método

Mach

Page 19: 10SIMULINK

195

ode23s (stiff/Mod. Rosenbrock). Estos métodos rigurosos se seleccionan,especialmente, cuando se observa que las respuestas se ven a trazos lineales muy notorios, lo que puede deberse a la aplicación de un método menos riguroso

10.9.2 Sistema de Primer Orden Lineal – Dominio Laplace

En la Figura 10.25 se muestra un diagrama de bloques para la simulación delsistema de primer orden lineal en el dominio del tiempo, planteado en la Práctica No. 3.

La función de transferencia se procesa con el botón “Transfer Fcn” de la librería“Continuous”. Se especificó con un numerador de [0.875] y un denominador de [4.375 1], es decir, con los parámetros correspondientes a la ganancia y constante de tiempo determinados para dicho sistema. El botón “Gain” se coloca para alimentar el “Scope” con la información correspondiente a la variable de salida dividida por la ganancia del sistema, con lo que se observa claramente el perfil lineal de la respuesta después de un cierto tiempo. Nuevamente, para la solución del modelo se utiliza el método ode23s (stiff/Mod. Rosenbrock) y se sugiere fijar un tiempo de 50 unidades de tiempo

Una función de transferencia se puede simular con el bloque “LTI System” que seencuentra en la herramienta “Control System Toolbox” y que se observa al hacer doble clic sobre dicha herramienta. Con el bloque “LTI System” se puede introducir la función de transferencia ya sea en la forma estándar, o zero-pole o espacio de los estados, utilizando los comandos correspondientes para cada una de ellas, es decir, tf, zpk o ss

10.9.3 Sistema de Segundo Orden Lineal – Dominio Tiempo

En la Figura 10.26 se muestra un diagrama de bloques para la simulación delsistema de segundo orden lineal en el dominio del tiempo, planteado en la Práctica No. 4.

Se utiliza el bloque “Math Function” de la librería “Math Operations” para realizarraíces cuadradas y potencias al cuadrado. Se incluye el botón “Display” de la librería “Sinks” para desplegar el valor del coeficiente de amortiguamiento. Se observa la necesidad de dos bloques “Integrator” debido a que la ecuación diferencial que se simula es de segundo orden

Mach

Page 20: 10SIMULINK

196

Figura 10.25 Diagrama de bloques del sistema de la Práctica 2

Mach

Page 21: 10SIMULINK

197

Figura 10.26 Diagrama de bloques del sistema de la Práctica 3

Mach

Page 22: 10SIMULINK

198

Las leyendas que aparecen sobre algunas corrientes se digitan haciendo un clic sobreel lugar sobre el cual se quiere introducir. Las letras griegas se colocan con el estilo “Symbol”

10.9.4 Sistema de Segundo Orden Lineal – Dominio Laplace

En la Figura 10.27 se muestra un diagrama de bloques para la simulación delsistema de segundo orden lineal en el dominio de Laplace, planteado en la Práctica No. 5.

En esta simulación, se construye un archivo con Matlab, es decir, con extensiónpunto m, que solicite al usuario los parámetros físicos del sistema (Masa del bloque, constante de elasticidad, coeficiente de amortiguamiento, aceleración de la gravedad y área del diafragma, calcule los parámetros dinámicos (Ganancia, constante de tiempo y coeficiente de amortiguamiento) y defina el numerador (num) y el denominador (den) de la función de transferencia que se introducen como los parámetros que especifican al bloque Función de Transferencia. Desde dicho archivo se llama el archivo punto mdl construido en Simulink para que se despliegue y que corresponde al diagrama de bloques que se observa en la Figura 10.27. Los parámetros de la simulación se introducen desde la ventana de Simulink

10.9.5 Sistemas con Tiempo Muerto – Dominio Laplace

En la Figura 10.28 se muestra el diagrama de bloques que simula la dinámica de unsistema con tiempo muerto en el dominio de Laplace e incluye los modelos de primero y segundo orden desarrollados en las Prácticas No. 3 y 5.

Para esta simulación, se construye un archivo tipo “Script” en Matlab con nombre“Sistemas.m” y un diagrama de bloques en Simulink denominado“Primer_Segundo_Orden.mdl”. En el primero se capturan o calculan todos losparámetros requeridos y en el segundo se desarrolla la simulación. De esta forma, los bloques del diagrama en Simulink se especifican con los símbolos asignados en el archivo “Sistemas.m”. Se observa, además, que el tiempo de simulación se captura con el nombre “Rango” y se introduce dentro de la ventana de especificaciones de los parámetros de simulación que se despliega dentro de la ventana de Simulink. La simulación se inicia con la apertura del archivo “Sistemas.m”, y desde aquí se ordena la corrida y posterior apertura del diagrama de bloques en Simulink. La solución gráfica resultante se observa desplegando los registradores respectivos. Algunos comandos de matlab utilizados en el primero de los archivos se explican al final de esta lección.

Mach

Page 23: 10SIMULINK

199

Figura 10.27 Diagrama de bloques del sistema de la Práctica 4

Mach

Page 24: 10SIMULINK

200

Figura 10.28 Simulación de la dinámica de un sistema con Tiempo Muerto

Mach

Page 25: 10SIMULINK

201

En la Figura 10.28 se incluye el botón “Transport Delay” de la librería “Continuous”para especificar el tiempo muerto y se simplifica el diagrama definiendo dos subsistemas, el “Subsystem1” incluye los elementos que seleccionan el sistema de primer o de segundo orden que se quiere simular y el denominado “Subsystem”incluye los elementos con los cuales se desarrolla la respuestadesarrollar o simular. Las Figuras 10.29 y 10.30 muestran correspondientes para cada uno de los subsistemas observados

que se quierelos diagramas

Figura 10.29 Subsistema para seleccionar el orden del sistema

Figura 10.30 Subsistema para seleccionar la respuesta del sistema

Mach

Page 26: 10SIMULINK

202

El botón “Subsystem” se selecciona en la librería “Ports&Subsystems” y elsubsistema se puede construir dentro del bloque seleccionado pero también se pueden escoger los elementos previamente y seleccionar la opción “Create Subsystem” del menú “Edit” del espacio de trabajo de Simulink,

En la Figura 10.29 se emplea el botón “Switch Case” de la librería“Ports&Subsystems” y que desarrolla la operación switch-case sobre el valor de la variable de entrada que en el programa codificado en Matlab corresponde a la asignación para seleccionar el sistema de primero o segundo orden. El caso 1 (Primer Orden) se conecta con un botón “Switch Case Action Subsystem”, de la misma librería, denominado “Primer Orden” que requiere de la alimentación de la acción (1), para lo cual se instala la función de transferencia para un sistema de primer orden (En el esquema se colocó afuera para ilustración del lector) entre su puerto de entrada y salida. La entrada a este bloque es el cambio en la variable de entrada (Paso, Rampa o Seno). Para el caso 2 (Segundo Orden) se construye un esquema similar. El interruptor multipuerto utiliza como indicador de salida el que se asigna para el orden del sistema.

En la Figura 10.30, un botón “Switch Case” desarrolla la operación switch-casesobre el valor que se asigna para seleccionar el tipo de cambio en la variable de entrada. Se incluyen un caso para la respuesta rampa y otro caso (2, 3), que desarrolla los cambios paso y seno. Los botones “Switch Case Action Subsystem” se alimentan de las acciones y entradas correspondientes a rampa y paso y seno, respectivamente. El botón “Merge” de la librería “Ports&Subsystems” emerge las señales de entrada en una sola señal de salida. En este caso, solo emerge la información alimentada

10.9.6 Sistema de Tres Tanques de Flujo No Interactuantes

En la Figura 10.31 se muestra un diagrama de bloques para la simulación delsistema de tres tanques en serie no interactuantes planteado en la Práctica No. 7. Se observa que los parámetros que se introducen a través de un programa codificado con Matlab son el dominio de solución del modelo y el tipo de respuesta que se quiere simular. De igual manera, se introducen los parámetros que especifican cada uno de los cambios que se incluyen, dentro del diagrama de bloque, para la variable de entrada. El archivo se incluye al final de este capítulo y se denomina “ordenmayorsimulink.m”

Las Figuras 10.32 muestra el diagrama interior al bloque denominado “Tiempo-Laplace”; es la aplicación de un lazo “Switch…Case” para desarrollar la solución de la respuesta seleccionada en el dominio del tiempo o de Laplace. Además, incluye

Mach

Page 27: 10SIMULINK

203

un bloque donde se selecciona el tipo de respuesta a simular, es decir, paso, rampa oseno.

Figura 10.31 Sistema de Orden Mayor – Tanques No Interactuantes

Figura 10.32 Selección del dominio de Solución

La Figura 10.33 muestra el diagrama de bloques que representa la soluciónmodelo en el dominio del tiempo. Al observar este diagrama, se deduce que

dellos

Mach

Page 28: 10SIMULINK

204

parámetros dinámicos correspondientes a cada uno de los tanques se introducen alcorrer el programa codificado en Matlab, es decir, las constantes de tiempo y las ganancias estacionarias. La Figura 10.34 es el diagrama de bloques que representa la solución del modelo en el dominio de Laplace

Figura 10.33 Solución del modelo en el dominio del tiempo

Figura 10.34 Solución del modelo en el dominio de Laplace

La Figura 10.35 es el diagrama de bloques correspondiente al subsistemadenominado “Salida” incluido en la Figura 10.32. Se observa, que mediante un lazo

Mach

Page 29: 10SIMULINK

205

de control “Switch…Case” se selecciona la salida de acuerdo al dominio, tiempo oLaplace, en que se hace la simulación.

Figura 10.35 Selección del dominio de Salida

La Figura 10.36 es el diagrama de bloques en donde se selecciona si la respuesta asimular es paso, rampa o seno para los respectivos gráficos de salida

Figura 10.36 Selecciona del tipo de respuesta

Mach

Page 30: 10SIMULINK

206

10.9.7 Sistema de Dos Tanques de Flujo Interactuantes

En la Figura 10.37 se muestra un diagrama de bloques para la simulación delsistema de dos tanques de flujo interactuantes planteado en la Práctica No. 7. Se observa que los parámetros que se introducen a través de un programa codificado con Matlab son el dominio de solución del modelo y el tanque cuya respuesta se quiere simular. De igual manera, se introducen los parámetros que especifican cada uno de los cambios que se incluyen, dentro del diagrama de bloque, para la variable de entrada. El código se incluye en el archivo “ordenmayorsimulink.m”

Figura 10.37 Tanques en serie interactuantes

Las Figuras 10.38 a 10.42 muestran los diagramas de bloques de cada uno de lossucesivos subsistemas introducidos en el diagrama de bloque de la Figura 10.37. La estructura de los subsistemas es similar a la construida para el modelo de tres tanques de flujo en serie no interactuantes.

Mach

Page 31: 10SIMULINK

207

Figura 10.38 Subsistema “Tiempo – Laplace”

Figura 10.39 Subsistema “Dominio del Tiempo”

Mach

Page 32: 10SIMULINK

208

Figura 10.40 Subsistema “Dominio Laplace”

Figura 10.41 Subsistema “Salida”

Mach

Page 33: 10SIMULINK

209

Figura 10.42 Subsistema “Salida1”

10.9.8 Espacio de los Estados con Simulink

En la Figura 10.43 se muestra el diagrama de bloques para la simulación del modelode los tres tanques de flujo en serie no interactuantes planteado en la Practica No. 7;

Figura 10.43 Tanques no interactuantes – Espacio de los Estados

Figura 10.44 Tanques Interactuantes – Espacio de los Estados

Mach

Page 34: 10SIMULINK

210

Y la Figura 10.44 muestra el diagrama de bloques para el sistema de dos tanques deflujo interactuantes simulado en la misma práctica. Las matrices son introducidas en el archivo “ordenmayorsimulink”

10.9.9 Sistemas No Lineales – Reacciones de Van de Vusse

En la Práctica No. 8 se plantea la simulación del sistema de reacciones de Van deVusse cuyo modelo matemático es no lineal y sus características permiten un análisis en estado estacionario o dinámico

Análisis en Estado Estacionario

En la Figura 10.45 se muestra el botón con el cual se determina el perfil de cambiode las concentraciones de A y B en estado estacionario del sistema de reacciones de Van de Vusse mediante las ecuaciones (8.8) y (8.9). Como se trata de un procedimiento para calcular dichas concentraciones para diferentes valores de la velocidad espacio se utiliza el bloque “For Iterator Subsystem” que se encuentra en la librería “Ports&Subsystems”. La entrada a dicho subsistema es el número de iteraciones y la salida ha sido anulada para mostrar los resultados en el interior del blorque “For Iterator Subsystem”.

Figura 10.45 Bloque For Iterator Subsystem

Al hacer doble clic sobre el bloque se despliega el subsistema que muestra el bloque“For Iterator”, y un puerto de entrada unido a un puerto de salida como se observa en la Figura 10.46

El bloque “For Iterator” se especificó para que la entrada del número de cálculos sealimente externamente seleccionando la opción “External” en el cuadro “Source of number of iterations”

Mach

Page 35: 10SIMULINK

211

Figura 10.46

El diagrama de bloques para el cálculo de las concentraciones de A y B en estadoestacionario se muestra en la Figura 10.48. Para la asignación de los sucesivos valores de la velocidad espacio se emplea el bloque “Memory” de la librería “Discrete” cuya función y especificaciones se observan en la Figura 10.47. Se asigna como valor inicial el valor de -0.1 para que los cálculos se inicien para un valor de cero ya que esta salida se ha de sumar con el valor constante de 0.1 alimentado. La salida de este botón es el valor de entrada anterior. Con este lazo, el valor de la velocidad espacio cambia de 0.1 en 0.1 desde cero y un número de veces dado por elnúmero de iteraciones especificado. Se requiere la verificaciónnombre “Inherit sample time”.

del cuadro de

Figura 10.47 Especificaciones del botón “Memory”

Tratándose de una solución en estado estacionario se fijan tanto el tiempo inicialcomo el final con un valor de cero. Al fijar un tiempo final diferente, los cálculos serepiten tantas veces como el tiempo permita repetir el número de cálculos.

Mach

Page 36: 10SIMULINK

212

Figura 10.48 Subsistema para calcular el perfil de las concentraciones de A y B

El número de iteraciones se multiplica por el valor de 0.1 para fijar la escala en eleje de las abscisa de 0 a 10 en las representaciones gráficas. Para la observación de los perfiles se sugiere el intervalo de 0 a 10 en el eje de las abscisas y los intervalos de 0 a 9 para la concentración de A y de 0 a 1.5 para la concentración de B.

10.10 MATLAB: COMANDOS UTILIZADOS

En los archivos codificados con Matlab para ejecutar algunas simulaciones en estalección se utilizan algunos comandos como el msgbox, errordlg y sim. Acontinuación se explican en cuanto a la sintaxis empleada en algunos de ellos:

Comando msgbox

Al ejecutar este comando se despliega un cuadro de mensaje escrito por el usuario.La sintaxis es:

Mach

Page 37: 10SIMULINK

213

msgbox(Mensaje, Título,Icono)

Los argumentos “Mensaje” y “Titulo” se escriben entre comillas simples y son elmensaje y el nombre o titulo, que aparecen en el cuadro. El argumento “Icono” es el dibujo que aparece en el lado izquierdo y que puede ser “none”, “error”, “help” o “warn”. El icono por defecto es el primero y los otros representan dibujos de error, ayuda o intejeccion, respectivamente. Estos cuadros incluyen un botón “OK” para aceptar el mensaje. La minimización o cancelación se consigue presionado los correspondientes en el extremo superior derecho de la barra de titulo. Algunas alternativas para el despliegue de cuadros de mensajes son los comandos “errordlg”, “helpdlg” y “warndlg”. Con ellos se tiene especificado, por defecto, el icono de error, ayuda o interjección y solo requieren de la especificación del mensaje y el titulo. Es decir, que su sintaxis es por ejemplo para el comando errordlg:

errordlg(Mensaje, Título)

El comando “questdlg” despliega un cuadro de mensaje con un icono deinterrogación e incluye tres botones para presionar que, por defecto, aparecen con los nombres de “Yes”, “No” y “Cancel”. La sintaxis para el comando “questdlg” es:

questdlg(Mensaje, Título,Botón1,Boton2,Boton3,BotonPorDefecto)

A los botones pueden asignárseles nombres diferentes a los que muestran pordefecto. La presión de uno de ellos acepta como respuesta el nombre correspondiente

Comando sim

Este comando ejecuta la simulación de un modelo representado mediante undiagrama de bloques en Simulink. Su sintaxis es una de las siguientes:

sim(‘Model’)[t,x,y] = sim(‘Model’, Intervalo de Tiempo)

Mach

Page 38: 10SIMULINK

214

‘Model’ es el nombre del archivo que contiene el diagrama de bloques construido enSimulink y debe escribirse entre comillas simples. La primera sintaxis despliega la respuesta del sistema de acuerdo a los receptores instalados en el diagrama. Por ejemplo, si se trata de observar la respuesta gráfica es necesario abrir el diagrama de bloques y desplegar los botones correspondientes. En el caso de respuestas numéricas receptadas en un botón “To Workspace”, estas se observan sobre el espacio de trabajo en Matlab.

La segunda sintaxis despliega los valores de tiempo, variables de entrada y variablesde salida en el espacio de trabajo de Matlab. Los argumentos incluyen, además del nombre del modelo, el intervalo del tiempo de simulación [to ∆t tf]

Comando beep

Este comando, simplemente, produce un sonido al ejecutarse

10.11 MATLAB: PROGRAMAS CODIFICADOS

Archivo Sistemas.m

% Simulacion de Sistemas con Tiempo Muertoclcclose allmsgbox('Pulse "OK" Para Entrar Al Ambiente De Simulacion En El Dominio De Laplace Con y Sin Tiempo Muerto','Bienvenido');beepglobal R K tau X r A w num den z p Rango Inicio sigma atraso Frecuencia Fase Sobrepaso Decaimiento findisp('disp(' ') disp('

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::')

SIMULACION DE SISTEMAS LINEALES DE PRIMER Y SEGUNDOORDEN CON TIEMPO MUERTO');disp(' ')disp('disp(' ') disp(' ')

disp(' ')

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::')

disp(':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::')disp(' ')disp('disp(' ')

TIPO DE RESPUESTA DEL SISTEMA')

Mach

Page 39: 10SIMULINK

215

disp(':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::')disp(' ') disp(' ')disp('1. PASO') disp('2. RAMPA') disp('3. SENO') disp(' ')R = input('Escriba La Respuesta a Simular: '); if (R < 1)|(R > 3)errordlg('Selecione 1, 2 o 3') beepR = input('Escriba La Respuesta a Simular: '); endclc disp(' ') disp(' ')

switch R

case 1clc disp('::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ') disp(' ')disp('disp(' ')

CAMBIO PASO EN LA VARIABLE DE ENTRADA')

disp('::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ')disp(' ')X = input('Introduzca El Valor Del Cambio Paso En La Variable De Entrada

= ');disp(' ')r=0;A=0;w=0; case 2

clcdisp('::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ') disp(' ')disp('disp(' ')

CAMBIO RAMPA EN LA VARIABLE DE ENTRADA')

disp('::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ')disp(' ')r = input('Introduzca El Valor De La Pendiente De La Rampa De Entrada = ');

Mach

Page 40: 10SIMULINK

216

disp(' ')X=0;A=0;w=0; case 3 clcdisp('::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ') disp(' ')disp('disp(' ')

CAMBIO SENO EN LA VARIABLE DE ENTRADA')

disp('::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ')disp(' ')A = input('Amplitud De La Entrada Seno = ');w = input('Frecuencia De La Entrada Seno = '); disp(' ')X=0;r=0;

end

disp(':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::')disp(' ')disp('disp(' ')

PARAMETROS DE LA SIMULACION DINAMICA')

disp(':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::')disp(' ')helpdlg('Si Desea Ver La Respuesta Sin Tiempo Muerto Digite "Cero" De Lo

Contrario Otro Valor','Tiempo Muerto')beepTo = input('* Escriba El Valor Del Tiempo Muerto, s = '); Rango = input('* Tiempo de simulación, s = ');disp(' ') clc disp('::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ') disp(' ')

disp('disp(' ')

SISTEMAS')

disp('::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ')disp(' ') disp(' ')disp('1. SISTEMA LINEAL DE PRIMER ORDEN: TANQUE CALENTADOR') disp('2. SISTEMA LINEAL DE SEGUNDO ORDEN: VALVULA DE

CONTROL') disp(' ')

Mach

Page 41: 10SIMULINK

217

S = input('¿ Que Sistema Desea Simular ?: ');if (S < 1)|(S > 2) errordlg('Selecione 1 o 2') beepS = input('¿ Que Sistema Desea Simular ?: '); enddisp(' ') disp(' ')

switch S

case 1clc disp(':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::') disp(' ')disp('¡USTED ESCOGIO SIMULAR EL SISTEMA LINEAL DE PRIMER

ORDEN: TANQUE CALENTADOR!')disp(' ') disp(':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::') disp(' ')disp(' ')

clcdisp(' ') disp(' ') disp('::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ') disp(' ')

disp('disp(' ')

PARAMETROS FISICOS DEL SISTEMA')

disp('::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ')disp(' ')F = input('* Flujo Volumetrico, m^3/s = ');V = input('* Volumen Del Liquido En El Tanque, m^3 = '); A = input('* Area De Transferencia De Calor, m^2 = ');U = input('* Coeficiente Global De Transferencia De Calor, KW/m^2-ºC = '); T = input('* Temperatura De Entrada Del Agua En Estado Estacionario, ºC =

');C = input('* Calor Específico, KJ/Kg-ºC = ');RHO = input('* Densidad Del Agua, Kg/m^3 = '); disp(' ')disp(' ') disp('::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ') disp(' ')

Mach

Page 42: 10SIMULINK

218

disp('disp(' ')

PARAMETROS DINAMICOS DEL SISTEMA')

disp('::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ')disp(' ')tau = RHO*V*C/(F*RHO*C + U*A) K = F*RHO*C/(F*RHO*C + U*A) disp(' ')disp(' ') disp('::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ') disp(' ')disp('disp(' ')

RESULTADOS')

disp('::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ')disp(' ')

switch Rcase 2disp('Atraso De La Respuesta Lineal') tau

case 3disp('Amplitud Del Perfil Sinusoidal De La Respuesta'); K*A/sqrt(1+(w*tau)^2)disp('Fase de la respuesta con respecto a la entrada'); atan(-w*tau)endSTOP=input('Presione ENTER para ver la simulacion en Simulink'); clc

case 2

clcdisp('::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ') disp(' ')disp('!USTED ESCOGIO SIMULAR EL SISTEMA LINEAL DE SEGUNDO

ORDEN: VALVULA DE CONTROL!')disp(' ') disp('::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ') disp(' ')disp(' ')

Mach

Page 43: 10SIMULINK

219

disp('::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ')disp(' ')disp('disp(' ')

PARAMETROS FISICOS DEL SISTEMA')

disp('::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ')disp(' ')

M = input('* Masa Del Bloque, lbm = ');C = input('* Coeficiente De Amortiguamiento Viscoso, lbf/pie/s = '); K = input('* Constante De Hooke Del Resorte, lbf/pie = ');A = input('* Area Del Diafragma, pie^2 = ');

disp(' ')disp(' ') disp('::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ') disp(' ')disp('disp(' ')

PARAMETROS DINAMICOS DEL SISTEMA')

disp('::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ')disp(' ')tau = sqrt(M/(32.2*K)) K = A/Ksigma = sqrt((32.2*C^2)/(4*M*K)) disp(' ')disp(' ') disp(':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::') disp(' ')disp('disp(' ')

RAICES DE LA ECUACION CARACTERISTICA')

disp(':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::')disp(' ')p = [tau^2 2*sigma*tau 1]; z = roots(p)disp(' ') disp(' ') disp('::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ') disp(' ')

disp('disp(' ')

RESULTADOS')

disp('::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ')disp(' ')

switch Rcase 1

if sigma > 1

Mach

Page 44: 10SIMULINK

220

disp('Respuesta Sobreamortiguada Estable')disp('Atrasos Dinámicos') atraso = -1./z

elseif sigma == 1disp('Respuesta Amortiguada Crítica') disp('Atrasos Dinámicos')atraso = -1./z

elseif (sigma < 1)&(sigma > 0) disp('Respuesta Subamortiguada Estable') Frecuencia = sqrt(1-sigma^2)/tauFase = atan(sqrt(1-sigma^2)/sigma)Sobrepaso = 100*exp(-pi*sigma/sqrt(1-sigma^2)) Decaimiento = (Sobrepaso/100)^2

elseif sigma == 0disp('Respuesta Oscilatoria Sostenida')

elsedisp('Respuesta Inestable')

end

case 2if sigma > 1

disp('Respuesta Sobreamortiguada') disp('Atrasos dinámicos')atraso = -1./z

elseif sigma == 1disp('Respuesta Amortiguada Crítica') disp('Atrasos dinámicos')atraso = -1./z

elseif (sigma < 1)&(sigma > 0) disp('Respuesta Subamortiguada') Frecuencia = (sqrt(1-sigma^2))/tauFase = atan(2*sigma*(sqrt(1-sigma^2))/(2*sigma^2-1))

elseif sigma == 0disp('Respuesta Oscilatoria Sostenida')

elsedisp('Respuesta Inestable')

end

case 3if sigma > 1

disp('Respuesta Sobreamortiguada') disp('Atrasos dinámicos')atraso = -1./z

Mach

Page 45: 10SIMULINK

221

Fase = atan(-w*atraso(1)) + atan(-w*atraso(2))Amplitud = K*A/((sqrt(1+(w*atraso(1))^2))*(sqrt(1+(w*atraso(2))^2)))

elseif sigma == 1disp('Respuesta Amortiguada Crítica') disp('Atrasos dinámicos')atraso = -1./z

elseif (sigma < 1)&(sigma > 0) disp('Respuesta Subamortiguada')

elseif sigma == 0disp('Respuesta Oscilatoria Sostenida')

elsedisp('Respuesta Inestable')

endend

STOP=input('Presione ENTER para ver la simulacion en Simulink'); clc

end

sim('Primer_Segundo_Orden')Primer_Segundo_Orden

Archivo “ordenmayorsimulink”

clcclose allglobal Ti Inicio K1 K2 K3 rho V Cv Cp w t0 tau1 tau2 tau3 h n m g11 g12 g13 g21 g22 g23 g31 g32 g33 G h11 h21 h31 H GH a11 a12 a13 a21 a22 a23 a31 a32 a33 A b11 b21 b31 B C D f1 f2 T10 T20 K10 K20 V1 V2 r r2 P P2 Am wf Am2 wf2 NT disp('|******************************************************************|')disp(' RESPUESTAS: PAS0, RAMPA Y SENO PARA SISTEMAS DEORDEN MAYOR')disp('|***************************************************************************|') disp(' ')disp('disp(' disp(' disp(' ')

|*********|')SISTEMAS')|*********|')

Mach

Page 46: 10SIMULINK

222

disp('1. SISTEMA NO INTERACTUANTE')disp('2. SISTEMA INTERACTUANTE') disp(' ');

% CAPTURA DEL MODELOS = [1 2];S = input('Digite el numero del sistema que desee SIMULAR = '); if S>2 | S<1errordlg('El numero del sistema tiene que ser 1 o 2') disp(' ')S = input('Digite el numero del sistema que desee SIMULAR = '); enddisp(' ');disp('disp(' disp(' disp(' ') disp(' ')disp('1. PASO')

|*************************************************|')TIPO DE RESPUESTA DEL SISTEMA')

|*************************************************|')

disp('2. RAMPA')disp('3. SENO') disp(' ')

% CAPTURA DE LA RESPUESTAR = [1 2 3];R = input('Digite el numero de la respuesta a simular = '); if R>3 | R<1errordlg('El numero de la respuesta tiene que ser 1,2 o 3') disp(' ')R = input('Digite el numero de la respuesta que desee simular = '); enddisp(' ')disp('disp(' disp(' disp(' ')disp('1. TIEMPO') disp('2. LAPLACE')

|**********|')DOMINIOS')|**********|')

disp('3. TIEMPO - ESPACIO DE LOS ESTADOS')disp(' ')

% CAPTURA DEL DOMINIOD = [1 2 3];

Mach

Page 47: 10SIMULINK

223

D = input('Digite el numero del dominio con que se va a hacer la simulacion = ');if D>3 | D<1errordlg('El numero del Dominio tiene que ser 1, 2 o 3') disp(' ')D = input('Digite el numero del dominio con que se va a hacer la simulacion = '); enddisp(' ') switch S case 1 disp(' ') disp('|*********************************************************************************|')disp('INTERACTUANTE') disp('

PARÁMETROS FÍSICOS DEL SISTEMA NO

|*********************************************************************************|') disp(' ')% ENTRADASrho = input('Valor de la densidad, lb/pie3 = '); V = input('Volumen de los tanques, pie3 = ');Cv = input('Calor especifico a volumen constante, Btu/lb-°F = '); Cp = Cv;w = input('Flujo masico, lb/min = '); Ti = input('Valor de Ti, °F = ');t0 = input('Tiempo de simulación, min = '); Inicio = input('Condiciones iniciales = ');

% PROCESOtau1 = rho*V*Cv/(w*Cp); tau2 = tau1;tau3 = tau2;K1 = w*Cp/(w*Cv);K2 = K1;K3 = K2;

switch Rcase 1 disp(' ') disp('|*********************************************************************************|')

Mach

Page 48: 10SIMULINK

224

disp('disp('

CAMBIO PASO DE UN SISTEMA NO INTERACTUANTE')

|*********************************************************************************|') disp(' ')% ENTRADASP = input('Cambio paso = '); r=0;Am=0;wf=0;

switch Dcase 1 disp(' ') disp('|*********************************************************************************|')disp(' RESPUESTA PASO DE UN SISTEMA NO INTERACTUANTE ENEL DOMINIO DEL TIEMPO')disp('|*********************************************************************************|') disp(' ')

% RESULTADOSdisp(' ') disp(' disp(' disp('

|***********|')RESULTADOS')|***********|')

disp('LAS CONSTANTES DE TIEMPO SON :')disp(' ')disp('tau1 = tau2 = tau3 = '), disp(tau1) disp(' ')disp('LAS GANANCIAS SON :') disp(' ')disp('K1 = K2 = K3 ='), disp(K1) disp(' ')sim('nointerordenmayor') nointerordenmayor

case 2disp(' ')

Mach

Page 49: 10SIMULINK

225

disp('|*********************************************************************************|')disp(' RESPUESTA PASO DE UN SISTEMA NO INTERACTUANTE ENEL DOMINIO DE LAPLACE ')disp('|*********************************************************************************|') disp(' ')

% RESULTADOSdisp(' ') disp(' disp(' disp('

|***********|')RESULTADOS')|***********|')

disp('LAS CONSTANTES DE TIEMPO SON :')disp(' ')disp('tau1 = tau2 = tau3 = '), disp(tau1) disp(' ')disp('LAS GANANCIAS SON :') disp(' ')disp('K1 = K2 = K3 ='), disp(K1) disp(' ')sim('nointerordenmayor') nointerordenmayor

case 3disp(' ') disp('|************************************************************************************************|')disp(' RESPUESTA PASO DE UN SISTEMA NO INTERACTUANTE EN ELDOMINIO DEL TIEMPO - ESPACIO DE LOS ESTADOS')disp('|************************************************************************************************|') disp(' ')

% PROCESOa11 = -1/tau1; a12 = 0;a13 = 0;

Mach

Page 50: 10SIMULINK

226

a21 = K1/tau2;a22 = -1/tau2; a23 = 0;a31 = 0;a32 = K2/tau3; a33 = -1/tau3;A = [a11 a12 a13; a21 a22 a23; a31 a32 a33] b11 = K1/tau1;b21 = 0;b31 = 0;B = [b11; b21; b31]C = [1 0 0; 0 1 0; 0 0 1] D = [0;0;0];

% RESULTADOSdisp(' ') disp(' disp(' disp('

|***********|')RESULTADOS')|***********|')

disp('LAS CONSTANTES DE TIEMPO SON :')disp(' ')disp('tau1 = tau2 = tau3 = '), disp(tau1) disp(' ')disp('LAS GANANCIAS SON :') disp(' ')disp('K1 = K2 = K3 ='), disp(K1) disp(' ')sim('nointerss') nointerssend

case 2disp('|*********************************************************************************|')disp('INTERACTUANTE') disp('

CAMBIO RAMPA DE UN SISTEMA NO

|*********************************************************************************|') disp(' ')% ENTRADASr = input('Pendiente = ');

Mach

Page 51: 10SIMULINK

227

P=0;Am=0;wf=0;

switch Dcase 1 disp(' ') disp('|*********************************************************************************|')disp(' RESPUESTA RAMPA DE UN SISTEMA NO INTERACTUANTE ENEL DOMINIO DEL TIEMPO')disp('|*********************************************************************************|') disp(' ')

% RESULTADOSdisp(' ') disp(' disp(' disp('

|***********|')RESULTADOS')|***********|')

disp('LAS CONSTANTES DE TIEMPO SON :')disp(' ')disp('tau1 = tau2 = tau3 = '), disp(tau1) disp(' ')disp('LAS GANANCIAS SON :') disp(' ')disp('K1 = K2 = K3 ='), disp(K1) disp(' ')

case 2disp(' ') disp('|*********************************************************************************|')disp(' RESPUESTA RAMPA DE UN SISTEMA NO INTERACTUANTE ENEL DOMINIO DE LAPLACE ')disp('|*********************************************************************************|') disp(' ')

% RESULTADOSdisp(' ')

Mach

Page 52: 10SIMULINK

228

disp('disp(' disp('

|***********|')RESULTADOS')|***********|')

disp('LAS CONSTANTES DE TIEMPO SON :')disp(' ')disp('tau1 = tau2 = tau3 = '), disp(tau1) disp(' ')disp('LAS GANANCIAS SON :') disp(' ')disp('K1 = K2 = K3 ='), disp(K1) disp(' ')

case 3msgbox('En el espacio de los estados solo se puede simular la respuesta paso') disp(' ')input('clcclose all

Pulse ENTER para terminar y realizar una nueva Simulacion')

ordenmayorsimulinkend sim('nointerordenmayor') nointerordenmayor

case 3disp('|*********************************************************************************|')disp('disp('

CAMBIO SENO DE UN SISTEMA NO INTERACTUANTE')

|*********************************************************************************|') disp(' ')% ENTRADASAm = input('Amplitud = ');wf = input('Frecuencia (rad/seg) = '); P=0;r=0;

switch Dcase 1 disp(' ') disp('|*********************************************************************************|')

Mach

Page 53: 10SIMULINK

229

disp(' RESPUESTA SENO DE UN SISTEMA NO INTERACTUANTE ENEL DOMINIO DEL TIEMPO')disp('|*********************************************************************************|') disp(' ')

% RESULTADOSdisp(' ') disp(' disp(' disp('

|***********|')RESULTADOS')|***********|')

disp('LAS CONSTANTES DE TIEMPO SON :')disp(' ')disp('tau1 = tau2 = tau3 = '), disp(tau1) disp(' ')disp('LAS GANANCIAS SON :') disp(' ')disp('K1 = K2 = K3 ='), disp(K1) disp(' ')

case 2disp(' ') disp('|*********************************************************************************|')disp(' RESPUESTA SENO DE UN SISTEMA NO INTERACTUANTE ENEL DOMINIO DE LAPLACE ')disp('|*********************************************************************************|') disp(' ')

% RESULTADOSdisp(' ') disp(' disp(' disp('

|***********|')RESULTADOS')|***********|')

disp('LAS CONSTANTES DE TIEMPO SON :')disp(' ')disp('tau1 = tau2 = tau3 = '), disp(tau1) disp(' ')disp('LAS GANANCIAS SON :')

Mach

Page 54: 10SIMULINK

230

disp(' ')disp('K1 = K2 = K3 ='), disp(K1) disp(' ')

case 3msgbox('En el espacio de los estados solo se puede simular la respuesta paso') disp(' ')input('clcclose all

Pulse ENTER para terminar y realizar una nueva Simulacion')

ordenmayorsimulinkend sim('nointerordenmayor') nointerordenmayorend

case 2disp(' ') disp('|*********************************************************************************|')disp('INTERACTUANTE') disp('

PARÁMETROS FÍSICOS DEL SISTEMA

|*********************************************************************************|') disp(' ')

% ENTRADASrho = input('Valor de la densidad, lb/pie3 = ');V1 = input('Volumen del primer tanque, pie3 = '); V2 = input('Volumen del segundo tanque, pie3 = ');f1 = input('Flujo volumetrico de entrada al primer tanque, pie3/min= ');f2 = input('Flujo volumetrico de entrada al segundo tanque, pie3/min= '); Cv = input('Calor especifico a volumen constante, Btu/lb-°F = ');Cp = Cv;T10 = input('Temperatura Inicial del Tanque 1, °F = '); T10 = T20;t0 = input('Tiempo de simulación, min = '); Inicio = input('Condiciones iniciales = ');

% PROCESOCp = Cv;

Mach

Page 55: 10SIMULINK

231

tau1 = rho*V1*Cv/(rho*Cp*(f1 + 0.2*(f1 + f2)))tau2 = rho*V2*Cv/(1.2*rho*Cp*(f1 + f2)) K10 = f1/(f1 + 0.2*(f1 + f2))K20 = f2/(1.2*(f1 + f2))K1 = 0.2*(f1 + f2)/(f1 + 0.2*(f1 + f2))K2 = (f1 + 0.2*(f1 + f2))/(1.2*(f1 + f2))

switch Rcase 1 disp('|*********************************************************************************|')disp('disp('

CAMBIO PASO DE UN SISTEMA INTERACTUANTE')

|*********************************************************************************|') disp(' ')% ENTRADAS NT = [1 2];NT = input('Número del tanque a cambiar = '); switch NTcase 1P = input('Cambio paso en el Primer Tanque = '); P2 =0;case 2P =0;P2 = input('Cambio paso en el Segundo Tanque = '); endr=0;Am=0;wf=0;r2=0;Am2=0;wf2=0;

switch Dcase 1 disp(' ') disp('|*********************************************************************************|')disp(' RESPUESTA PASO DE UN SISTEMA INTERACTUANTE EN ELDOMINIO DEL TIEMPO')disp('|*********************************************************************************|') disp(' ')

Mach

Page 56: 10SIMULINK

232

% RESULTADOSdisp(' ') disp(' disp(' disp('

|***********|')RESULTADOS')|***********|')

disp('LAS CONSTANTES DE TIEMPO SON :')disp(' ')disp('tau1 = tau2 = tau3 = '), disp(tau1) disp(' ')disp('LAS GANANCIAS SON :') disp(' ')disp('K1 = K2 = K3 ='), disp(K1) disp(' ')sim('interordenmayor') interordenmayor

case 2disp(' ') disp('|*********************************************************************************|')disp(' RESPUESTA PASO DE UN SISTEMA INTERACTUANTE EN ELDOMINIO DE LAPLACE ')disp('|*********************************************************************************|') disp(' ')

% RESULTADOSdisp(' ') disp(' disp(' disp('

|***********|')RESULTADOS')|***********|')

disp('LAS CONSTANTES DE TIEMPO SON :')disp(' ')disp('tau1 = tau2 = tau3 = '), disp(tau1) disp(' ')disp('LAS GANANCIAS SON :') disp(' ')disp('K1 = K2 = K3 ='), disp(K1) disp(' ')sim('interordenmayor') interordenmayor

Mach

Page 57: 10SIMULINK

233

case 3disp(' ') disp('|************************************************************************************************|')disp(' RESPUESTA PASO DE UN SISTEMA INTERACTUANTE EN ELDOMINIO DEL TIEMPO - ESPACIO DE LOS ESTADOS')disp('|************************************************************************************************|') disp(' ')

% PROCESOa11 = -1/tau1; a12 = K1/tau1; a21 = K2/tau2; a22 = -1/tau2;A = [a11 a12; a21 a22] b11 = K10/tau1;b12 = 0;b21 = 0;b22 = K20/tau2;B = [b11 b12; b21 b22] C = [1 0; 0 1]D = [0 0;0 0]

% RESULTADOSdisp(' ') disp(' disp(' disp('

|***********|')RESULTADOS')|***********|')

disp('LAS CONSTANTES DE TIEMPO SON :')disp(' ')disp('tau1 = tau2 = tau3 = '), disp(tau1) disp(' ')disp('LAS GANANCIAS SON :') disp(' ')disp('K1 = K2 = K3 ='), disp(K1) disp(' ')sim('interss') interssend

Mach

Page 58: 10SIMULINK

234

case 2disp('|*********************************************************************************|')disp('disp('

CAMBIO RAMPA DE UN SISTEMA INTERACTUANTE')

|*********************************************************************************|') disp(' ')NT = [1 2];NT = input('Número del tanque a cambiar = '); switch NTcase 1r = input('Pendiente en el Primer Tanque = '); r2 =0;case 2 r =0;r2 = input('Pendiente en el Segundo Tanque = '); endP=0;Am=0;wf=0;P2=0;Am2=0;wf2=0; switch Dcase 1 disp(' ') disp('|*********************************************************************************|')disp(' RESPUESTA RAMPA DE UN SISTEMA INTERACTUANTE EN ELDOMINIO DEL TIEMPO')disp('|*********************************************************************************|') disp(' ')

% RESULTADOSdisp(' ') disp(' disp(' disp('

|***********|')RESULTADOS')|***********|')

disp('LAS CONSTANTES DE TIEMPO SON :')disp(' ')disp('tau1 = tau2 = tau3 = '), disp(tau1) disp(' ')

Mach

Page 59: 10SIMULINK

235

disp('LAS GANANCIAS SON :')disp(' ')disp('K1 = K2 = K3 ='), disp(K1) disp(' ')

case 2disp(' ') disp('|*********************************************************************************|')disp(' RESPUESTA RAMPA DE UN SISTEMA INTERACTUANTE EN ELDOMINIO DE LAPLACE ')disp('|*********************************************************************************|') disp(' ')

% RESULTADOSdisp(' ') disp(' disp(' disp('

|***********|')RESULTADOS')|***********|')

disp('LAS CONSTANTES DE TIEMPO SON :')disp(' ')disp('tau1 = tau2 = tau3 = '), disp(tau1) disp(' ')disp('LAS GANANCIAS SON :') disp(' ')disp('K1 = K2 = K3 ='), disp(K1) disp(' ')

case 3msgbox('En el espacio de los estados solo se puede simular la respuesta paso') disp(' ')input('clcclose all

Pulse ENTER para terminar y realizar una nueva Simulacion')

ordenmayorsimulinkend sim('interordenmayor') interordenmayorcase 3

Mach

Page 60: 10SIMULINK

236

disp('|*********************************************************************************|')disp('disp('

CAMBIO SENO DE UN SISTEMA INTERACTUANTE')

|*********************************************************************************|') disp(' ')NT = [1 2];NT = input('Número del tanque a cambiar = '); switch NTcase 1Am = input('Amplitud, Am = ');wf = input('Frecuencia, wf (rad/seg) = '); Am2 = 0;wf2 = 0; case 2Am = 0; wf = 0;Am2 = input('Amplitud, Am2 = ');wf2 = input('Frecuencia, wf2 (rad/seg) = '); endP=0;r=0;P2=0;r2=0; switch Dcase 1 disp(' ') disp('|*********************************************************************************|')disp(' RESPUESTA SENO DE UN SISTEMA INTERACTUANTE EN ELDOMINIO DEL TIEMPO')disp('|*********************************************************************************|') disp(' ')

% RESULTADOSdisp(' ') disp(' disp(' disp('

|***********|')RESULTADOS')|***********|')

disp('LAS CONSTANTES DE TIEMPO SON :')disp(' ')

Mach

Page 61: 10SIMULINK

237

disp('tau1 = tau2 = tau3 = '), disp(tau1)disp(' ')disp('LAS GANANCIAS SON :') disp(' ')disp('K1 = K2 = K3 ='), disp(K1) disp(' ')

case 2disp(' ') disp('|*********************************************************************************|')disp(' RESPUESTA SENO DE UN SISTEMA INTERACTUANTE EN ELDOMINIO DE LAPLACE ')disp('|*********************************************************************************|') disp(' ')

% RESULTADOSdisp(' ') disp(' disp(' disp('

|***********|')RESULTADOS')|***********|')

disp('LAS CONSTANTES DE TIEMPO SON :')disp(' ')disp('tau1 = tau2 = tau3 = '), disp(tau1) disp(' ')disp('LAS GANANCIAS SON :') disp(' ')disp('K1 = K2 = K3 ='), disp(K1) disp(' ')

case 3msgbox('En el espacio de los estados solo se puede simular la respuesta paso') disp(' ')input('clcclose all

Pulse ENTER para terminar y realizar una nueva Simulacion')

ordenmayorsimulinkend sim('interordenmayor') interordenmayor

Mach

Page 62: 10SIMULINK

238

endend

disp(' ')disp('======================================================================================== ') disp(' ')disp('1. NUEVA SIMULACION')disp('2. TERMINAR LA SIMULACION') disp(' ')Sim=input('Escoger la opcion a realizar = '); if Sim == 1clcclose all ordenmayorsimulink elseif Sim ==2 clcclose all endend

Mach