Você está na página 1de 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 interfaz grfica (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 matemticas requeridas para la solucin 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 presionar el icono Simulink o tambin mediante la digitacin de dicha palabra clave con letras minsculas en el editor de comandos. Con lo anterior se despliega, solamente, la ventana de ttulo 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

178

en la barra estndar 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 sobre su nombre se despliegan las libreras que contienen los bloques operacionales agrupados de acuerdo a diferentes propsitos comunes. Los nombres de las libreras son: Continuous, Discontinuities, Discrete, Look-Up Tables, Math Operations, Model Verification, Model-Wide Utilities, Ports & Subsystems, Signal Attributes, Signal Routing, Sinks, Sources y User-Defined Functions.

Instalacin y Conexin de un bloque operacional


Para la instalacin de un bloque en el espacio de trabajo de Simulink se selecciona de la librera 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 botn izquierdo del mouse y en forma sostenida se arrastra hasta el otro tope. La conexin es correcta cuando el puntero del mouse tome la forma de una cruz de doble trazo. Se debe observar una lnea con una saeta en el tope del bloque de entrada.

Especificacin de un bloque operacional


Las especificaciones mnimas requeridas en un bloque se relacionan con la operacin que realizan dentro del diagrama que representa el proceso de solucin del modelo matemtico del sistema.

10.4 LIBRERA CONTINUOUS (CONTINUO)


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

Mach

179

(a)

(b)

Figura 10.2. Librera (a) Continuous y (b) Bloques operacionales Los bloques de la librera Continuous representan unidades que se alimentan de una informacin de entrada y que al desarrollar sobre esta un proceso matemtico transmite el resultado como una informacin de salida. En la librera Continuous se incluyen los bloques para realizar operaciones matemticas continuas en el tiempo.

Bloque Derivada (Derivative)


El bloque Derivative desarrolla la derivada con respecto al tiempo de la variable de entrada para lo cual no se necesita especificacin. 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

180

Bloque Integrador (Integrator)


El bloque Integrator desarrolla la operacin de integrar la informacin de entrada desde un tiempo inicial hasta un tiempo final que se especifica como uno de los parmetros de la simulacin. Se observa en la ventana de especificaciones del bloque integrador mostrada en la Figura 10.4a que se requiere la especificacin de la condicin 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 desarrolla un 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 de transferencia en la forma de numerador/denominador y en la de zeros y polos.

Mach

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 matricial el numerador y el denominador de la funcin 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 funcin de transferencia Es comn a todas las ventanas de especificaciones de bloques operacionales, la inclusin de la barra de ttulo seguido de un pequeo cuadro con el nombre del bloque y una breve descripcin de la funcin 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 que incluyen un atraso por tiempo muerto dentro de la dinmica 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 seal de entrada que se especifica en el cuadro de nombre Time Delay, mientras que el bloque Variable Transport Delay aplica el tiempo muerto a la primera seal de entrada y en la segunda entrada se especifica el tiempo muerto. Las otras especificaciones, usualmente, se dejan como aparecen por defecto

Mach

182

(a)

(b)

Figura 10.6 Especificaciones de los bloques Transport Delay

10.5 LIBRERA MATH OPERATIONS (OPERADORES)


La Figura 10.7 muestra la ventana que se despliega al hacer doble clic sobre la librera Math Operations y la Figura 10.8 los botones incluidos en dicha librera.

Figura 10.7 Librera Math Operations

Mach

183

Figura 10.8 Bloques de la librera Math Operations Los bloques de la librera Math Operations se utilizan en la simulacin de la dinmica de un sistema para aplicar operadores matemticos sobre su informacin de entrada. A continuacin se describe la especificacin de algunos de ellos

Bloque Suma (Sum)


El bloque Sum realiza la suma algebraica de las informaciones de entradas alimentadas 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

184

El bloque Sum se especifica introduciendo en el cuadro List of signs los signos de cada uno de las informaciones de entrada o el nmero 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 informacin de entrada y el producto lo transmite como la informacin 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 operacin del bloque Gain permitiendo la variacin del valor de la ganancia asignada, mediante el botn deslizable, desde un valor mnimo hasta un mximo. La Figura 10.10b muestra la ventana de especificaciones del bloque Slider Gain

(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 divisin entre las informaciones de entrada. Esto se especifica introduciendo, ya sea, el nmero de corrientes a multiplicar o los signos producto o divisin 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

185

Figura 10.11 Especificaciones del bloque Product Al especificar los signos, estos se despliegan con los smbolos de producto o divisin 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 informacin de entrada una funcin matemtica que se selecciona en el cuadro desplegable Function, mientras que el bloque Trigonometric Function solo aplica funciones trigonomtricas como se observa en la Figura 10.12

(a)

(b)

Figura 10.12 Especificaciones del bloque (a) Math Function, (b) Trigonometric Function
Mach

186

Bloque Minimo y Maximo (MinMax)


El bloque MinMax selecciona el valor mnimo o el mximo entre los correspondientes a las informaciones de entrada. En su ventana de especificaciones se encuentra el cuadro donde se elige la funcin del bloque, es decir, min o max y un cuadro adicional donde se especifica el nmero de entradas al bloque. Despus de introducir lo anterior, se observa en el icono del bloque un nmero de topes de entrada igual al especificado

10.6 LIBRERA SOURCES (ENTRADAS)


La Figura 10.13 muestra la ventana que se despliega al hacer doble clic sobre la librera Sources y la Figura 10.14 los conos de los bloques incluidos en dicha librera

Figura 10.13. Librera Sources

Mach

187

Figura 10.14 Bloques de la librera Sources La librera Sources contiene un conjunto de bloques de donde emergen seales que representan los cambios en las variables de entrada. Estos bloques solo tienen puertos de salida, es decir, no tienen puertos de entrada. A continuacin se describen los bloques Step, Ramp, Sine Wave, Constant, Clock, Digital Clock, Signal Generator

Bloques Paso y Rampa (Step y Ramp)


La Figura 10.15a muestra la ventana de especificaciones del bloque Step. En el cuadro 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

188

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

Bloques Seno y Generador de Seal (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 introducen en los cuadros de nombres Amplitude, Bias, Frequency y Phase, respectivamente.

(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 Signal Generator. En el cuadro Wave from se especifica si la onda peridica 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 que se utiliza para mostrar el tiempo de simulacin. Si se verifica el cuadro Display

Mach

189

time se despliega el tiempo sobre el icono. El bloque Display Clock se puede utilizar como otra opcin.

(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 dinmica de un sistema.

10.7 LIBRERA SINKS (SALIDAS)


La librera Sinks contiene un conjunto de bloques receptores de seales de salida y, por lo tanto, solo tienen puertos de entrada. Mediante estos bloques se observan los resultados de las simulaciones en diferentes formas, por ejemplo, grfica o numrica. La Figura 10.18a muestra la ventana que se despliega al hacer doble clic sobre la librera Sinks y la Figura 6.18b muestra los botones que se incluyen en dicha librera. Los botones Scope, Floating Scope y XY Graph despliegan la informacin de salida en funcin del tiempo, en forma grfica. El botn Scope no requiere especificaciones y Floating Scope se utiliza para representar en grficos 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 nmero de grficos en el cuadro Number of axes. El botn XY Graph requiere de las especificaciones de los valores lmites en los ejes de representacin de las variables X e Y. La Figura 10.19 muestra la ventana de especificaciones de los botones Floating Scope y XY Graph.

Mach

190

(a) Figura 10.18 Librera Sinks

(b)

(a)

(b)

Figura 10.19 Especificaciones del bloque (a) XY Graph y (b) Floating Scope Los botones Display y To Workspace despliegan la informacin de salida en forma numrica. El primero lo muestra en forma digital sobre el mismo icono mientras que el segundo lo hace sobre el espacio de trabajo de Matlab asignndole
Mach

191

un smbolo a las variables que se quieren desplegar. El botn Display permite la seleccin del formato numrico para el despliegue de la informacin 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 LIBRERAS SIGNAL ROUTING Y PORTS & SUBSYSTEMS


Las Figuras 10.22 muestran las ventanas que se despliegan al abrir las libreras Signal Routing y Ports & Subsystems que contienen bloques de enrutamiento de seales y definicin de puertos y subsistemas.

Mach

192

(a)

(b)

Figura 10.22. Librera (a) Signal Routing (a) y (b) Ports & Subsystems La librera Signal Routing contiene un conjunto de bloques de enrutamiento de seales como interruptores, mezcladores, divisores, etc. Estos bloques tienen puertos de entrada y de salida La librera Ports & Subsystems contiene un conjunto de bloques que definen puertos 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 simulacin del sistema de primer orden lineal en el dominio del tiempo, planteado en la Prctica No. 1.
Mach

193

Figura 10.23. Diagrama de bloques del sistema de la Prctica 1


Mach

194

Los parmetros fsicos incluidos son los correspondientes al volumen en el tanque, el flujo volumtrico a travs del mismo y la constante de velocidad de reaccin. El botn Multiport Switch es un interruptor mltiple que se encuentra en la librera Signal Routing. Su funcionamiento est acoplado con el botn constante denominado Entrada cuya funcin es indicar al interruptor la funcin que debe dejar pasar a travs de l. Esto se hace asignando los nmeros 1, 2 y 3 a los cambios Step, Ramp y Sine Wave, respectivamente. El botn Mux de la librera Routing Signal simula la circulacin de la seal rampa de entrada separada de la seal de salida del sistema pero conjuntas de tal manera que el Scope que se alimenta con la descarga del botn Mux muestra en una misma ventana ambos perfiles. El botn Manual Switch se incluye para interrumpir el flujo de la informacin de salida a travs de l cuando se haga la simulacin de la respuesta rampa. Su operacin es manual Al hacer la simulacin con la ecuacin diferencial estndar de un sistema de primer orden lineal en trminos de sus variables desviacin, la condicin inicial en el integrador es cero. Para la fijacin de los parmetros de la simulacin en cuanto a la fijacin del tiempo y a la seleccin del mtodo para la solucin de la ecuacin diferencial despliegue el men Simulation y llnela como se observa en la Figura 10.24.

Figura 10.24 Especificacin de los Parmetros de la Simulacin En el cuadro Simulation Time se ha fijado como tiempo de simulacin 50 unidades de tiempo y en el cuadro Solver options se ha seleccionado el mtodo

Mach

195

ode23s (stiff/Mod. Rosenbrock). Estos mtodos rigurosos se seleccionan, especialmente, cuando se observa que las respuestas se ven a trazos lineales muy notorios, lo que puede deberse a la aplicacin de un mtodo 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 simulacin del sistema de primer orden lineal en el dominio del tiempo, planteado en la Prctica No. 3. La funcin de transferencia se procesa con el botn Transfer Fcn de la librera Continuous. Se especific con un numerador de [0.875] y un denominador de [4.375 1], es decir, con los parmetros correspondientes a la ganancia y constante de tiempo determinados para dicho sistema. El botn Gain se coloca para alimentar el Scope con la informacin correspondiente a la variable de salida dividida por la ganancia del sistema, con lo que se observa claramente el perfil lineal de la respuesta despus de un cierto tiempo. Nuevamente, para la solucin del modelo se utiliza el mtodo ode23s (stiff/Mod. Rosenbrock) y se sugiere fijar un tiempo de 50 unidades de tiempo Una funcin de transferencia se puede simular con el bloque LTI System que se encuentra 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 funcin de transferencia ya sea en la forma estndar, 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 simulacin del sistema de segundo orden lineal en el dominio del tiempo, planteado en la Prctica No. 4. Se utiliza el bloque Math Function de la librera Math Operations para realizar races cuadradas y potencias al cuadrado. Se incluye el botn Display de la librera Sinks para desplegar el valor del coeficiente de amortiguamiento. Se observa la necesidad de dos bloques Integrator debido a que la ecuacin diferencial que se simula es de segundo orden

Mach

196

Figura 10.25 Diagrama de bloques del sistema de la Prctica 2

Mach

197

Figura 10.26 Diagrama de bloques del sistema de la Prctica 3


Mach

198

Las leyendas que aparecen sobre algunas corrientes se digitan haciendo un clic sobre el 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 simulacin del sistema de segundo orden lineal en el dominio de Laplace, planteado en la Prctica No. 5. En esta simulacin, se construye un archivo con Matlab, es decir, con extensin punto m, que solicite al usuario los parmetros fsicos del sistema (Masa del bloque, constante de elasticidad, coeficiente de amortiguamiento, aceleracin de la gravedad y rea del diafragma, calcule los parmetros dinmicos (Ganancia, constante de tiempo y coeficiente de amortiguamiento) y defina el numerador (num) y el denominador (den) de la funcin de transferencia que se introducen como los parmetros que especifican al bloque Funcin 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 parmetros de la simulacin 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 dinmica de un sistema con tiempo muerto en el dominio de Laplace e incluye los modelos de primero y segundo orden desarrollados en las Prcticas No. 3 y 5. Para esta simulacin, 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 los parmetros requeridos y en el segundo se desarrolla la simulacin. De esta forma, los bloques del diagrama en Simulink se especifican con los smbolos asignados en el archivo Sistemas.m. Se observa, adems, que el tiempo de simulacin se captura con el nombre Rango y se introduce dentro de la ventana de especificaciones de los parmetros de simulacin que se despliega dentro de la ventana de Simulink. La simulacin 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 solucin grfica resultante se observa desplegando los registradores respectivos. Algunos comandos de matlab utilizados en el primero de los archivos se explican al final de esta leccin.

Mach

199

Figura 10.27 Diagrama de bloques del sistema de la Prctica 4

Mach

200

Figura 10.28 Simulacin de la dinmica de un sistema con Tiempo Muerto

Mach

201

En la Figura 10.28 se incluye el botn Transport Delay de la librera 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 respuesta que se quiere desarrollar o simular. Las Figuras 10.29 y 10.30 muestran los diagramas correspondientes para cada uno de los subsistemas observados

Figura 10.29 Subsistema para seleccionar el orden del sistema

Figura 10.30 Subsistema para seleccionar la respuesta del sistema

Mach

202

El botn Subsystem se selecciona en la librera Ports&Subsystems y el subsistema se puede construir dentro del bloque seleccionado pero tambin se pueden escoger los elementos previamente y seleccionar la opcin Create Subsystem del men Edit del espacio de trabajo de Simulink, En la Figura 10.29 se emplea el botn Switch Case de la librera Ports&Subsystems y que desarrolla la operacin switch-case sobre el valor de la variable de entrada que en el programa codificado en Matlab corresponde a la asignacin para seleccionar el sistema de primero o segundo orden. El caso 1 (Primer Orden) se conecta con un botn Switch Case Action Subsystem, de la misma librera, denominado Primer Orden que requiere de la alimentacin de la accin (1), para lo cual se instala la funcin de transferencia para un sistema de primer orden (En el esquema se coloc afuera para ilustracin 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 botn Switch Case desarrolla la operacin switch-case sobre 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 botn Merge de la librera Ports&Subsystems emerge las seales de entrada en una sola seal de salida. En este caso, solo emerge la informacin 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 simulacin del sistema de tres tanques en serie no interactuantes planteado en la Prctica No. 7. Se observa que los parmetros que se introducen a travs de un programa codificado con Matlab son el dominio de solucin del modelo y el tipo de respuesta que se quiere simular. De igual manera, se introducen los parmetros 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 captulo y se denomina ordenmayorsimulink.m Las Figuras 10.32 muestra el diagrama interior al bloque denominado TiempoLaplace; es la aplicacin de un lazo SwitchCase para desarrollar la solucin de la respuesta seleccionada en el dominio del tiempo o de Laplace. Adems, incluye

Mach

203

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

Figura 10.31 Sistema de Orden Mayor Tanques No Interactuantes

Figura 10.32 Seleccin del dominio de Solucin La Figura 10.33 muestra el diagrama de bloques que representa la solucin del modelo en el dominio del tiempo. Al observar este diagrama, se deduce que los

Mach

204

parmetros dinmicos correspondientes a cada uno de los tanques se introducen al correr 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 solucin del modelo en el dominio de Laplace

Figura 10.33 Solucin del modelo en el dominio del tiempo

Figura 10.34 Solucin del modelo en el dominio de Laplace La Figura 10.35 es el diagrama de bloques correspondiente al subsistema denominado Salida incluido en la Figura 10.32. Se observa, que mediante un lazo
Mach

205

de control SwitchCase se selecciona la salida de acuerdo al dominio, tiempo o Laplace, en que se hace la simulacin.

Figura 10.35 Seleccin del dominio de Salida La Figura 10.36 es el diagrama de bloques en donde se selecciona si la respuesta a simular es paso, rampa o seno para los respectivos grficos de salida

Figura 10.36 Selecciona del tipo de respuesta


Mach

206

10.9.7 Sistema de Dos Tanques de Flujo Interactuantes


En la Figura 10.37 se muestra un diagrama de bloques para la simulacin del sistema de dos tanques de flujo interactuantes planteado en la Prctica No. 7. Se observa que los parmetros que se introducen a travs de un programa codificado con Matlab son el dominio de solucin del modelo y el tanque cuya respuesta se quiere simular. De igual manera, se introducen los parmetros que especifican cada uno de los cambios que se incluyen, dentro del diagrama de bloque, para la variable de entrada. El cdigo 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 los sucesivos 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

207

Figura 10.38 Subsistema Tiempo Laplace

Figura 10.39 Subsistema Dominio del Tiempo

Mach

208

Figura 10.40 Subsistema Dominio Laplace

Figura 10.41 Subsistema Salida

Mach

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 simulacin del modelo de 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

210

Y la Figura 10.44 muestra el diagrama de bloques para el sistema de dos tanques de flujo interactuantes simulado en la misma prctica. Las matrices son introducidas en el archivo ordenmayorsimulink

10.9.9 Sistemas No Lineales Reacciones de Van de Vusse


En la Prctica No. 8 se plantea la simulacin del sistema de reacciones de Van de Vusse cuyo modelo matemtico es no lineal y sus caractersticas permiten un anlisis en estado estacionario o dinmico

Anlisis en Estado Estacionario


En la Figura 10.45 se muestra el botn con el cual se determina el perfil de cambio de 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 librera Ports&Subsystems. La entrada a dicho subsistema es el nmero 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 nmero de clculos se alimente externamente seleccionando la opcin External en el cuadro Source of number of iterations

Mach

211

Figura 10.46 El diagrama de bloques para el clculo de las concentraciones de A y B en estado estacionario se muestra en la Figura 10.48. Para la asignacin de los sucesivos valores de la velocidad espacio se emplea el bloque Memory de la librera Discrete cuya funcin y especificaciones se observan en la Figura 10.47. Se asigna como valor inicial el valor de -0.1 para que los clculos 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 botn 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 nmero de veces dado por el nmero de iteraciones especificado. Se requiere la verificacin del cuadro de nombre Inherit sample time.

Figura 10.47 Especificaciones del botn Memory Tratndose de una solucin en estado estacionario se fijan tanto el tiempo inicial como el final con un valor de cero. Al fijar un tiempo final diferente, los clculos se repiten tantas veces como el tiempo permita repetir el nmero de clculos.

Mach

212

Figura 10.48 Subsistema para calcular el perfil de las concentraciones de A y B El nmero de iteraciones se multiplica por el valor de 0.1 para fijar la escala en el eje de las abscisa de 0 a 10 en las representaciones grficas. Para la observacin 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 concentracin de A y de 0 a 1.5 para la concentracin de B.

10.10 MATLAB: COMANDOS UTILIZADOS


En los archivos codificados con Matlab para ejecutar algunas simulaciones en esta leccin se utilizan algunos comandos como el msgbox, errordlg y sim. A continuacin 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

213

msgbox(Mensaje, Ttulo,Icono) Los argumentos Mensaje y Titulo se escriben entre comillas simples y son el mensaje 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 botn OK para aceptar el mensaje. La minimizacin o cancelacin 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 interjeccin y solo requieren de la especificacin del mensaje y el titulo. Es decir, que su sintaxis es por ejemplo para el comando errordlg: errordlg(Mensaje, Ttulo) El comando questdlg despliega un cuadro de mensaje con un icono de interrogacin 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, Ttulo,Botn1,Boton2,Boton3,BotonPorDefecto) A los botones pueden asignrseles nombres diferentes a los que muestran por defecto. La presin de uno de ellos acepta como respuesta el nombre correspondiente

Comando sim
Este comando ejecuta la simulacin de un modelo representado mediante un diagrama de bloques en Simulink. Su sintaxis es una de las siguientes: sim(Model) [t,x,y] = sim(Model, Intervalo de Tiempo)

Mach

214

Model es el nombre del archivo que contiene el diagrama de bloques construido en Simulink 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 grfica es necesario abrir el diagrama de bloques y desplegar los botones correspondientes. En el caso de respuestas numricas receptadas en un botn To Workspace, estas se observan sobre el espacio de trabajo en Matlab. La segunda sintaxis despliega los valores de tiempo, variables de entrada y variables de salida en el espacio de trabajo de Matlab. Los argumentos incluyen, adems del nombre del modelo, el intervalo del tiempo de simulacin [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 Muerto clc close all msgbox('Pulse "OK" Para Entrar Al Ambiente De Simulacion En El Dominio De Laplace Con y Sin Tiempo Muerto','Bienvenido'); beep global R K tau X r A w num den z p Rango Inicio sigma atraso Frecuencia Fase Sobrepaso Decaimiento fin disp(' :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::') disp(' ') disp(' SIMULACION DE SISTEMAS LINEALES DE PRIMER Y SEGUNDO ORDEN CON TIEMPO MUERTO'); disp(' ') disp(' :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::') disp(' ') disp(' ') disp(' ') disp(':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::') disp(' ') disp(' TIPO DE RESPUESTA DEL SISTEMA') disp(' ')
Mach

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') beep R = input('Escriba La Respuesta a Simular: '); end clc disp(' ') disp(' ') switch R case 1 clc disp('::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ') disp(' ') disp(' CAMBIO PASO EN LA VARIABLE DE ENTRADA') disp(' ') disp('::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ') disp(' ') X = input('Introduzca El Valor Del Cambio Paso En La Variable De Entrada = '); disp(' ') r=0; A=0; w=0; case 2 clc disp('::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ') disp(' ') disp(' CAMBIO RAMPA EN LA VARIABLE DE ENTRADA') disp(' ') disp('::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ') disp(' ') r = input('Introduzca El Valor De La Pendiente De La Rampa De Entrada = ');
Mach

216

disp(' ') X=0; A=0; w=0; case 3 clc disp('::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ') disp(' ') disp(' CAMBIO SENO EN LA VARIABLE DE ENTRADA') disp(' ') 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(' PARAMETROS DE LA SIMULACION DINAMICA') disp(' ') disp(':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::') disp(' ') helpdlg('Si Desea Ver La Respuesta Sin Tiempo Muerto Digite "Cero" De Lo Contrario Otro Valor','Tiempo Muerto') beep To = input('* Escriba El Valor Del Tiempo Muerto, s = '); Rango = input('* Tiempo de simulacin, s = '); disp(' ') clc disp('::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ') disp(' ') disp(' SISTEMAS') disp(' ') disp('::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ') disp(' ') disp(' ') disp('1. SISTEMA LINEAL DE PRIMER ORDEN: TANQUE CALENTADOR') disp('2. SISTEMA LINEAL DE SEGUNDO ORDEN: VALVULA DE CONTROL') disp(' ')
Mach

217

S = input(' Que Sistema Desea Simular ?: '); if (S < 1)|(S > 2) errordlg('Selecione 1 o 2') beep S = input(' Que Sistema Desea Simular ?: '); end disp(' ') disp(' ') switch S case 1 clc disp(':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::') disp(' ') disp('USTED ESCOGIO SIMULAR EL SISTEMA LINEAL DE PRIMER ORDEN: TANQUE CALENTADOR!') disp(' ') disp(':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::') disp(' ') disp(' ') clc disp(' ') disp(' ') disp('::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ') disp(' ') disp(' PARAMETROS FISICOS DEL SISTEMA') disp(' ') 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 Especfico, KJ/Kg-C = '); RHO = input('* Densidad Del Agua, Kg/m^3 = '); disp(' ') disp(' ') disp('::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ') disp(' ')
Mach

218

disp(' PARAMETROS DINAMICOS DEL SISTEMA') disp(' ') 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(' RESULTADOS') disp(' ') disp('::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ') disp(' ') switch R case 2 disp('Atraso De La Respuesta Lineal') tau case 3 disp('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) end STOP=input('Presione ENTER para ver la simulacion en Simulink'); clc

case 2 clc disp('::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ') disp(' ') disp('!USTED ESCOGIO SIMULAR EL SISTEMA LINEAL DE SEGUNDO ORDEN: VALVULA DE CONTROL!') disp(' ') disp('::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ') disp(' ') disp(' ')

Mach

219

disp('::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ') disp(' ') disp(' PARAMETROS FISICOS DEL SISTEMA') disp(' ') 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(' PARAMETROS DINAMICOS DEL SISTEMA') disp(' ') disp('::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ') disp(' ') tau = sqrt(M/(32.2*K)) K = A/K sigma = sqrt((32.2*C^2)/(4*M*K)) disp(' ') disp(' ') disp(':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::') disp(' ') disp(' RAICES DE LA ECUACION CARACTERISTICA') disp(' ') disp(':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::') disp(' ') p = [tau^2 2*sigma*tau 1]; z = roots(p) disp(' ') disp(' ') disp('::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ') disp(' ') disp(' RESULTADOS') disp(' ') disp('::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ') disp(' ') switch R case 1 if sigma > 1
Mach

220

disp('Respuesta Sobreamortiguada Estable') disp('Atrasos Dinmicos') atraso = -1./z elseif sigma == 1 disp('Respuesta Amortiguada Crtica') disp('Atrasos Dinmicos') atraso = -1./z elseif (sigma < 1)&(sigma > 0) disp('Respuesta Subamortiguada Estable') Frecuencia = sqrt(1-sigma^2)/tau Fase = atan(sqrt(1-sigma^2)/sigma) Sobrepaso = 100*exp(-pi*sigma/sqrt(1-sigma^2)) Decaimiento = (Sobrepaso/100)^2 elseif sigma == 0 disp('Respuesta Oscilatoria Sostenida') else disp('Respuesta Inestable') end case 2 if sigma > 1 disp('Respuesta Sobreamortiguada') disp('Atrasos dinmicos') atraso = -1./z elseif sigma == 1 disp('Respuesta Amortiguada Crtica') disp('Atrasos dinmicos') atraso = -1./z elseif (sigma < 1)&(sigma > 0) disp('Respuesta Subamortiguada') Frecuencia = (sqrt(1-sigma^2))/tau Fase = atan(2*sigma*(sqrt(1-sigma^2))/(2*sigma^2-1)) elseif sigma == 0 disp('Respuesta Oscilatoria Sostenida') else disp('Respuesta Inestable') end case 3 if sigma > 1 disp('Respuesta Sobreamortiguada') disp('Atrasos dinmicos') atraso = -1./z
Mach

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 == 1 disp('Respuesta Amortiguada Crtica') disp('Atrasos dinmicos') atraso = -1./z elseif (sigma < 1)&(sigma > 0) disp('Respuesta Subamortiguada') elseif sigma == 0 disp('Respuesta Oscilatoria Sostenida') else disp('Respuesta Inestable') end end STOP=input('Presione ENTER para ver la simulacion en Simulink'); clc end sim('Primer_Segundo_Orden') Primer_Segundo_Orden

Archivo ordenmayorsimulink
clc close all global 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 DE ORDEN MAYOR') disp(' |******************************************************************* ********|') disp(' ') disp(' |*********|') disp(' SISTEMAS') disp(' |*********|') disp(' ')
Mach

222

disp('1. SISTEMA NO INTERACTUANTE') disp('2. SISTEMA INTERACTUANTE') disp(' '); % CAPTURA DEL MODELO S = [1 2]; S = input('Digite el numero del sistema que desee SIMULAR = '); if S>2 | S<1 errordlg('El numero del sistema tiene que ser 1 o 2') disp(' ') S = input('Digite el numero del sistema que desee SIMULAR = '); end disp(' '); disp(' |*************************************************|') disp(' TIPO DE RESPUESTA DEL SISTEMA') disp(' |*************************************************|') disp(' ') disp(' ') disp('1. PASO') disp('2. RAMPA') disp('3. SENO') disp(' ') % CAPTURA DE LA RESPUESTA R = [1 2 3]; R = input('Digite el numero de la respuesta a simular = '); if R>3 | R<1 errordlg('El numero de la respuesta tiene que ser 1,2 o 3') disp(' ') R = input('Digite el numero de la respuesta que desee simular = '); end disp(' ') disp(' |**********|') disp(' DOMINIOS') disp(' |**********|') disp(' ') disp('1. TIEMPO') disp('2. LAPLACE') disp('3. TIEMPO - ESPACIO DE LOS ESTADOS') disp(' ') % CAPTURA DEL DOMINIO D = [1 2 3];
Mach

223

D = input('Digite el numero del dominio con que se va a hacer la simulacion = '); if D>3 | D<1 errordlg('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 = '); end disp(' ') switch S case 1 disp(' ') disp(' |******************************************************************* **************|') disp(' PARMETROS FSICOS DEL SISTEMA NO INTERACTUANTE') disp(' |******************************************************************* **************|') disp(' ') % ENTRADAS rho = 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 simulacin, min = '); Inicio = input('Condiciones iniciales = '); % PROCESO tau1 = rho*V*Cv/(w*Cp); tau2 = tau1; tau3 = tau2; K1 = w*Cp/(w*Cv); K2 = K1; K3 = K2; switch R case 1 disp(' ') disp(' |******************************************************************* **************|')
Mach

224

disp(' CAMBIO PASO DE UN SISTEMA NO INTERACTUANTE') disp(' |******************************************************************* **************|') disp(' ') % ENTRADAS P = input('Cambio paso = '); r=0;Am=0;wf=0; switch D case 1 disp(' ') disp(' |******************************************************************* **************|') disp(' RESPUESTA PASO DE UN SISTEMA NO INTERACTUANTE EN EL DOMINIO DEL TIEMPO') disp(' |******************************************************************* **************|') disp(' ') % RESULTADOS disp(' ') disp(' |***********|') disp(' RESULTADOS') disp(' |***********|') 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 2 disp(' ')

Mach

225

disp(' |******************************************************************* **************|') disp(' RESPUESTA PASO DE UN SISTEMA NO INTERACTUANTE EN EL DOMINIO DE LAPLACE ') disp(' |******************************************************************* **************|') disp(' ') % RESULTADOS disp(' ') disp(' |***********|') disp(' RESULTADOS') disp(' |***********|') 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 3 disp(' ') disp(' |******************************************************************* *****************************|') disp(' RESPUESTA PASO DE UN SISTEMA NO INTERACTUANTE EN EL DOMINIO DEL TIEMPO - ESPACIO DE LOS ESTADOS') disp(' |******************************************************************* *****************************|') disp(' ') % PROCESO a11 = -1/tau1; a12 = 0; a13 = 0;
Mach

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]; % RESULTADOS disp(' ') disp(' |***********|') disp(' RESULTADOS') disp(' |***********|') 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') nointerss end case 2 disp(' |******************************************************************* **************|') disp(' CAMBIO RAMPA DE UN SISTEMA NO INTERACTUANTE') disp(' |******************************************************************* **************|') disp(' ') % ENTRADAS r = input('Pendiente = ');
Mach

227

P=0;Am=0;wf=0; switch D case 1 disp(' ') disp(' |******************************************************************* **************|') disp(' RESPUESTA RAMPA DE UN SISTEMA NO INTERACTUANTE EN EL DOMINIO DEL TIEMPO') disp(' |******************************************************************* **************|') disp(' ') % RESULTADOS disp(' ') disp(' |***********|') disp(' RESULTADOS') disp(' |***********|') 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 2 disp(' ') disp(' |******************************************************************* **************|') disp(' RESPUESTA RAMPA DE UN SISTEMA NO INTERACTUANTE EN EL DOMINIO DE LAPLACE ') disp(' |******************************************************************* **************|') disp(' ') % RESULTADOS disp(' ')
Mach

228

disp(' |***********|') disp(' RESULTADOS') disp(' |***********|') 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 3 msgbox('En el espacio de los estados solo se puede simular la respuesta paso') disp(' ') input(' Pulse ENTER para terminar y realizar una nueva Simulacion') clc close all ordenmayorsimulink end sim('nointerordenmayor') nointerordenmayor case 3 disp(' |******************************************************************* **************|') disp(' CAMBIO SENO DE UN SISTEMA NO INTERACTUANTE') disp(' |******************************************************************* **************|') disp(' ') % ENTRADAS Am = input('Amplitud = '); wf = input('Frecuencia (rad/seg) = '); P=0;r=0; switch D case 1 disp(' ') disp(' |******************************************************************* **************|')
Mach

229

disp(' RESPUESTA SENO DE UN SISTEMA NO INTERACTUANTE EN EL DOMINIO DEL TIEMPO') disp(' |******************************************************************* **************|') disp(' ') % RESULTADOS disp(' ') disp(' |***********|') disp(' RESULTADOS') disp(' |***********|') 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 2 disp(' ') disp(' |******************************************************************* **************|') disp(' RESPUESTA SENO DE UN SISTEMA NO INTERACTUANTE EN EL DOMINIO DE LAPLACE ') disp(' |******************************************************************* **************|') disp(' ') % RESULTADOS disp(' ') disp(' |***********|') disp(' RESULTADOS') disp(' |***********|') disp('LAS CONSTANTES DE TIEMPO SON :') disp(' ') disp('tau1 = tau2 = tau3 = '), disp(tau1) disp(' ') disp('LAS GANANCIAS SON :')
Mach

230

disp(' ') disp('K1 = K2 = K3 ='), disp(K1) disp(' ') case 3 msgbox('En el espacio de los estados solo se puede simular la respuesta paso') disp(' ') input(' Pulse ENTER para terminar y realizar una nueva Simulacion') clc close all ordenmayorsimulink end sim('nointerordenmayor') nointerordenmayor end case 2 disp(' ') disp(' |******************************************************************* **************|') disp(' PARMETROS FSICOS DEL SISTEMA INTERACTUANTE') disp(' |******************************************************************* **************|') disp(' ') % ENTRADAS rho = 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 simulacin, min = '); Inicio = input('Condiciones iniciales = '); % PROCESO Cp = Cv;
Mach

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 R case 1 disp(' |******************************************************************* **************|') disp(' CAMBIO PASO DE UN SISTEMA INTERACTUANTE') disp(' |******************************************************************* **************|') disp(' ') % ENTRADAS NT = [1 2]; NT = input('Nmero del tanque a cambiar = '); switch NT case 1 P = input('Cambio paso en el Primer Tanque = '); P2 =0; case 2 P =0; P2 = input('Cambio paso en el Segundo Tanque = '); end r=0;Am=0;wf=0;r2=0;Am2=0;wf2=0; switch D case 1 disp(' ') disp(' |******************************************************************* **************|') disp(' RESPUESTA PASO DE UN SISTEMA INTERACTUANTE EN EL DOMINIO DEL TIEMPO') disp(' |******************************************************************* **************|') disp(' ')

Mach

232

% RESULTADOS disp(' ') disp(' |***********|') disp(' RESULTADOS') disp(' |***********|') 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 2 disp(' ') disp(' |******************************************************************* **************|') disp(' RESPUESTA PASO DE UN SISTEMA INTERACTUANTE EN EL DOMINIO DE LAPLACE ') disp(' |******************************************************************* **************|') disp(' ') % RESULTADOS disp(' ') disp(' |***********|') disp(' RESULTADOS') disp(' |***********|') 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

233

case 3 disp(' ') disp(' |******************************************************************* *****************************|') disp(' RESPUESTA PASO DE UN SISTEMA INTERACTUANTE EN EL DOMINIO DEL TIEMPO - ESPACIO DE LOS ESTADOS') disp(' |******************************************************************* *****************************|') disp(' ') % PROCESO a11 = -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] % RESULTADOS disp(' ') disp(' |***********|') disp(' RESULTADOS') disp(' |***********|') 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') interss end
Mach

234

case 2 disp(' |******************************************************************* **************|') disp(' CAMBIO RAMPA DE UN SISTEMA INTERACTUANTE') disp(' |******************************************************************* **************|') disp(' ') NT = [1 2]; NT = input('Nmero del tanque a cambiar = '); switch NT case 1 r = input('Pendiente en el Primer Tanque = '); r2 =0; case 2 r =0; r2 = input('Pendiente en el Segundo Tanque = '); end P=0;Am=0;wf=0;P2=0;Am2=0;wf2=0; switch D case 1 disp(' ') disp(' |******************************************************************* **************|') disp(' RESPUESTA RAMPA DE UN SISTEMA INTERACTUANTE EN EL DOMINIO DEL TIEMPO') disp(' |******************************************************************* **************|') disp(' ') % RESULTADOS disp(' ') disp(' |***********|') disp(' RESULTADOS') disp(' |***********|') disp('LAS CONSTANTES DE TIEMPO SON :') disp(' ') disp('tau1 = tau2 = tau3 = '), disp(tau1) disp(' ')
Mach

235

disp('LAS GANANCIAS SON :') disp(' ') disp('K1 = K2 = K3 ='), disp(K1) disp(' ') case 2 disp(' ') disp(' |******************************************************************* **************|') disp(' RESPUESTA RAMPA DE UN SISTEMA INTERACTUANTE EN EL DOMINIO DE LAPLACE ') disp(' |******************************************************************* **************|') disp(' ') % RESULTADOS disp(' ') disp(' |***********|') disp(' RESULTADOS') disp(' |***********|') 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 3 msgbox('En el espacio de los estados solo se puede simular la respuesta paso') disp(' ') input(' Pulse ENTER para terminar y realizar una nueva Simulacion') clc close all ordenmayorsimulink end sim('interordenmayor') interordenmayor case 3

Mach

236

disp(' |******************************************************************* **************|') disp(' CAMBIO SENO DE UN SISTEMA INTERACTUANTE') disp(' |******************************************************************* **************|') disp(' ') NT = [1 2]; NT = input('Nmero del tanque a cambiar = '); switch NT case 1 Am = input('Amplitud, Am = '); wf = input('Frecuencia, wf (rad/seg) = '); Am2 = 0; wf2 = 0; case 2 Am = 0; wf = 0; Am2 = input('Amplitud, Am2 = '); wf2 = input('Frecuencia, wf2 (rad/seg) = '); end P=0;r=0;P2=0;r2=0; switch D case 1 disp(' ') disp(' |******************************************************************* **************|') disp(' RESPUESTA SENO DE UN SISTEMA INTERACTUANTE EN EL DOMINIO DEL TIEMPO') disp(' |******************************************************************* **************|') disp(' ') % RESULTADOS disp(' ') disp(' |***********|') disp(' RESULTADOS') disp(' |***********|') disp('LAS CONSTANTES DE TIEMPO SON :') disp(' ')
Mach

237

disp('tau1 = tau2 = tau3 = '), disp(tau1) disp(' ') disp('LAS GANANCIAS SON :') disp(' ') disp('K1 = K2 = K3 ='), disp(K1) disp(' ') case 2 disp(' ') disp(' |******************************************************************* **************|') disp(' RESPUESTA SENO DE UN SISTEMA INTERACTUANTE EN EL DOMINIO DE LAPLACE ') disp(' |******************************************************************* **************|') disp(' ') % RESULTADOS disp(' ') disp(' |***********|') disp(' RESULTADOS') disp(' |***********|') 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 3 msgbox('En el espacio de los estados solo se puede simular la respuesta paso') disp(' ') input(' Pulse ENTER para terminar y realizar una nueva Simulacion') clc close all ordenmayorsimulink end sim('interordenmayor') interordenmayor
Mach

238

end end disp(' ') disp('=============================================== ========================================= ') disp(' ') disp('1. NUEVA SIMULACION') disp('2. TERMINAR LA SIMULACION') disp(' ') Sim=input('Escoger la opcion a realizar = '); if Sim == 1 clc close all ordenmayorsimulink else if Sim ==2 clc close all end end

Mach

Você também pode gostar