Sie sind auf Seite 1von 116

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

Manual de Introduccin a SIMULINK

Autor: Jos ngel Acosta Rodrguez 2004

Cap tulo 1 Ejemplo


1.1. Modelado de un sistema din amico

En este ejemplo se realizar a el modelado de un sistema din amico muy sencillo. Se modelar a el movimiento de una masa sobre una supercie rugosa, sobre la que se le aplica una fuerza. El sistema a modelar posee una entrada u, que se corresponde con la fuerza aplicada, y una salida x que ser a la posici on de la masa. El modelo del sistema din amico se puede expresar mediante las ecuaciones de Newton: mx + cx =F m c F : : : Masa del cuerpo (Kg) Coeciente de fricci on del cuerpo sobre la supercie Fuerza aplicada (N) (1.1)

Queremos hacer un modelo en con la herramienta Simulinkpara el sistema propuesto. Primero ejecutamos la herramienta Simulinkdesde la ventana de comandos de Matlab haciendo click en el icono correspondiente

CAP ITULO 1. EJEMPLO

Saldr a por pantalla una ventana gr aca, como la de la Fig. 1.1, que contiene todas las librer as que el entorno de Simulinkbajo Matlab soporta.

Figura 1.1: Librer as del entorno Simulink

1.1. MODELADO DE UN SISTEMA DINAMICO

Para este sencillo ejemplo s olo necesitaremos la librer a b asica de Simulink, por tanto expandimos el menu simulink en la ventana anterior, quedando como aparece en la Fig. 1.2

Figura 1.2: Librer a base de Simulink Esta ventana est a dividida en dos partes. La de la derecha es la correspondiente a las librer as y la de la derecha es el contenido de la librer a seleccionada.

CAP ITULO 1. EJEMPLO

Elegimos un nuevo chero donde guardaremos el modelo: seleccionamos en el menu File New Model. Tendremos la situaci on de la Fig. 1.3

Figura 1.3: Apertura de un nuevo chero modelo

1.1. MODELADO DE UN SISTEMA DINAMICO

Se abrir a una ventana en blanco donde crearemos el modelo. La situaci on debe ser ahora la de la Fig. 1.4

Figura 1.4: Apertura de un nuevo chero modelo En esta nueva ventana que a un no hemos dado nombre (untitled) desarrollaremos el ejemplo. Lo primero que hacemos es darle un nombre adecuado. Para ello, en el menu File de la nueva ventana elegimos File Save. Nos situamos en el directorio adecuado a trav es del menu desplegable, ponemos un nombre al archivo, por ejemplo masa guardamos el modelo. Ya tenemos un archivo donde crear el modelo. La extensi on por defecto de los archivos de modelo es *.mdl. Empezamos a crear el modelo dado por la ecuaci on (1.2). Para ello es necesario hacer alguna modicaci on en la ecuaci on (1.2). Despejando de la ecuaci on (1.2) la aceleraci on del cuerpo se obtiene:

x =

c F x + m m

Como puede verse necesitaremos varios tipos de bloques. Elegimos estos bloques de la ventana de la derecha de la librer a (Fig. 1.2). El primero que seleccionamos el que denir a la fuerza aplicada a la masa, lo haremos mediante una constante. Seleccionamos Sources y en la derecha seleccionamos

(1.2)

CAP ITULO 1. EJEMPLO

el bloque de Constant. Ahora lo arrastramos hacia la ventana de nuestro modelo con el bot on izquierdo del rat on pulsado. Hacemos click en el la etiqueta del nombre del bloque de constante y le damos su nombre, por ejemplo F. La situaci on debe ser la de la Fig. 1.5

Figura 1.5: Construyendo el modelo Observando la ecuaci on (1.2), puede verse que se necesita hacer las operaciones de sumar y dividir. Para ello seleccionamos Math Operations en la ventana de la librer a y escogemos del mismo modo que antes los bloques de Sum y Gain. Para describir la ecuaci on diferencial se necesitar a adem as el bloque integrador Integrator en la librer a Continuous. Ya se est a en disposici on de describir la ecuaci on (1.2) utilizando bloques. Debemos unir los bloques de forma adecuada para describir dicha ecuaci on (1.2). Haremos el esquema como describe la Fig. 1.6. Para unir los bloques debemos pinchar con el bot on izquierdo del rat on en el bloque de origen y soltar en el bloque de destino. Como puede verse en la Fig. 1.6, se han editado los nombres de los bloques poni endoles nombres distintos a los originales. Tambi en se ha editado el valor de algunos de los bloques. Daremos valores concretos a las constantes. Supongamos que la masa es de un kg m = 1, que la constante de fricci on por ejemplo el vale c = 0,8 y que la fuerza aplicada es 0.1 N (F = 0,1). As bloque Gain denominado c/m posee en su interior el valor correspondiente c = 0,8, y el denominado 1/m tendr a valor 1. Estos valores se introducen am haciendo doble click en los bloques y editando el campo correspondiente. Por otro lado se ha escrito texto para hacer m as f acil la lectura del modelo. Estas cajas de texto se crean simplemente haciendo doble click en el lugar que se desee y editando el recuadro que aparece.

1.1. MODELADO DE UN SISTEMA DINAMICO


.. x
1 s Integrador

F/m
1 F 1 1/m

. x
1 s Integrador

. c*x /m
0.8 c/m

Figura 1.6: Modelo Para poder ver los resultados ponemos un bloque que nos muestre la posici on de la masa frente al tiempo. Seleccionamos dentro de la librer a Sinks el bloque Scope. Lo a nadimos al modelo de la forma habitual. Ya tenemos el modelo completo. Los bloques deben estar como se muestra en la Fig. 1.7.
F/m
1 F 1 1/m Integrador Integrador Scope

.. x
1 s

. x
1 s

. c*x /m
0.8 c/m

Figura 1.7: Modelo con Scope En la Fig. 1.7 debe notarse que las variables de estado est an perfectamente denidas y accesibles en el diagrama de bloques. Ahora se est a en disposici on de hacer una simulaci on del proceso. Para ello debemos denir algunos par ametros esenciales. Los m as importantes son las condiciones iniciales de las variables de estado y el tiempo de simulaci on. Las condiciones iniciales deben ponerse en los bloques integradores. Se hace doble click en ellos y se denen las mismas en la zona de edici on correspondiente. Por ejemplo ponemos el valor inicial de la velocidad a -1. En la Fig. 1.8 puede verse d onde se dene el par ametro despu es de haber hecho doble click en el integrador que nos da la velocidad.

CAP ITULO 1. EJEMPLO

Figura 1.8: Condici on inicial en velocidad Para denir el tiempo de simulaci on accedemos al menu de la ventana del modelo Simulation Simulation parameters. Se abre una ventana d onde es posible denir entre otros par ametros el tiempo de simulaci on, el m etodo de resoluci on y el paso jo o variable. Dejamos los dos u ltimos como est an y ponemos el tiempo de simulaci on a 10 segundos. La situaci on ser a como la mostrada en la Fig. 1.9 Por u ltimo denimos la fuerza aplicada que deseamos. Hacemos doble click en el bloque donde est a denida la fuerza y ponemos el valor deseado que era 0.1. Para ver el resultado en el Scope debemos hacer doble click sobre el mismo y se abrir a la ventana gr aca que nos dar a la posici on del cuerpo. . Una vez acabada la Ahora pulsamos el bot on de inicio de simulaci on simulaci on tendremos el resultado que puede verse en la Fig. 1.10. Si deseamos ver tambi en la velocidad tenemos acceso a la variable en el diagrama. Podemos poner otro Scope para la velocidad. El resultado puede verse en la Fig. 1.11 Se podr an ver las dos variables de estado en una sola ventana gr aca Scope. Se necesita para ello el bloque Mux dentro de la librer a Signal routing. Este bloque hace las veces de un multiplexor y anida vectores. Se

1.1. MODELADO DE UN SISTEMA DINAMICO

Figura 1.9: Par ametros de simulaci on

Figura 1.10: Simulaci on

10

CAP ITULO 1. EJEMPLO

Figura 1.11: Simulaci on. Utilizaci on del bloque Scope

1.1. MODELADO DE UN SISTEMA DINAMICO

11

modica el diagrama como se ve en la Fig. 1.12 y ya se tienen las dos variables en una s ola ventana gr aca.

Figura 1.12: Simulaci on. Utilizaci on del bloque Mux Supongamos que no s olo queremos ver el resultado sino que tambi en queremos guardar las variables en memoria para poder acceder a ellas. Buscamos dentro de la librer a Sinks el bloque To Workspace. Lo a nadimos al diagrama anterior y le damos un nombre a la matriz donde queremos guardar el valor de las variables, por ejemplo X. El resultado es el de la Fig. 1.13
F/m
0.1 F 1 1/m Integrador Integrador

.. x
1 s

. x
1 s

. c*x /m
0.8 c/m X To Workspace

Posicin y velocidad

Figura 1.13: Simulaci on. Utilizaci on del bloque To Workspace Si ahora queremos ver el valor de las variable desde la linea de comandos de Matlab, hacemos plot(tout, X). En la matriz X se encuentran la posici on

12

CAP ITULO 1. EJEMPLO

y la velocidad por columnas en el orden que se han puesto en el diagrama de bloques Fig. 1.13. El tiempo de simulaci on se guarda por defecto en la variable tout dada en el menu Simulation Simulation parameters Workspace I/O. El resultado se muestra en la Fig. 1.14.
0.4

0.2

0.2

0.4

0.6

0.8

10

Figura 1.14: Resultado de ejecutar el comando plot(tout,X) Todo este modelo se ha creado a trav es de las variables temporales y sus derivadas. Simulink permite hacer los modelos untilizando la transformada de Laplace. Para ello necesitamos transformar la ecuaci on del modelo (1.2) en el dominio de Laplace. Suponemos las condiciones iniciales iguales a cero. Por tanto, la ecuaci on (1.2) quedar a en el dominio de Laplace ms2 X (s) + csX (s) = F (1.3)

Podemos transformarla en una funci on de transferencia si tomamos como salida la posici on (X (s)) y como entrada la fuerza aplicada (F (s)) del modo siguiente
1 X (s) c = m F (s) s( c s + 1) K = , s( s + 1)

(1.4)

donde K =

1 c

y=

m . c

Para el ejemplo anterior K = = 1,25.

1.1. MODELADO DE UN SISTEMA DINAMICO

13

Ahora ya podemos construir el modelo utilizando Laplace. De la librer a Continuous elegimos los bloques Integrator y Transfer Fcn. Editamos este u ltimo bloque con los valores de K y anteriores haciendo doble click. El modelo quedar a como se muestra en la Fig. 1.15

F
0.1 F Transfer Fcn 1.25 1.25s+1

. x
1 s Integrador

Posicin y velocidad X To Workspace

Figura 1.15: Modelo en el dominio de Laplace Debe notarse que en este u ltimo esquema Fig. 1.15, la condici on inicial de la velocidad no est a accesible. Si se desea tener en cuenta hay que hacerlo a la hora de pasar las ecuaciones al dominio de Laplace. Ya sabemos hacer un modelo de un sistema din amico, tanto en el dominio del tiempo como en el de la frecuencia (Laplace). Ahora se describe como hacer subsistemas. La idea de estos subsistemas es agrupar bloques con alg un criterio predenido. Como ejemplo agruparemos los bloques del primer ejemplo como un s olo bloque que sea el modelo del sistema. Tendr a como entrada la fuerza aplicada y como salidas la posici on y la velocidad del sistema. Para conseguir esto debemos seleccionar todo aquello que queremos que pertenezca al subsistema. La selecci on se hace con el bot on izquierdo del rat on, como en Windows, haciendo un recuadro con todo aquello que queremos seleccionar. Todo esto con el bot on pulsado. Despu es se suelta y nos vamos al menu Edit Create subsystem, como en la Fig. 1.16 Una vez hecho esto tendremos la situaci on de la Fig. 1.17, donde todo lo seleccionado anteriormente se ha metido dentro de un bloque. Haciendo doble click en el bloque se puede ver su contenido en otra ventana como se muestra en la Fig. 1.17.

14

CAP ITULO 1. EJEMPLO

Figura 1.16: Creando subsistemas

Figura 1.17: Creando subsistemas

Universidad de Chile Facultad de Ciencias F sicas y Matem aticas Departamento de Ingenier a El ectrica

n a Matlab y Simulink Introduccio

Preparado por Diego Sep ulveda J. Version 1.0, 6 de agosto de 2002

Introducci on
Matlab es un poderoso sistema el cual permite el tratamiento num erico de una gran cantidad de aplicaciones en ingenier a, tales como: procesamiento de se nales, an alisis estad sticos, interpolaci on de curvas, series de tiempo, simulaci on y control de sistemas, l ogica difusa, redes neuronales, identicaci on de par ametros, etc. El nombre Matlab se debe a que en realidad consiste en un laboratorio de matrices (Matrix laboratory), raz on por la cual es excelente para el c alculo num erico de vectores y valores propios, descomposiciones de matrices y cualquier aplicaci on que involucre matrices. Adem as de lo mencionado anteriormente, Matlab tambi en incluye un subprograma llamado Simulink, el cual permite la simulaci on de todo sistema din amico lineal y casi cualquier sistema no lineal. A pesar de la gran cantidad de aplicaciones mencionadas anteriormente, este apunte est a enfocado hacia las aplicaciones orientadas hacia el control de sistemas. Si el lector desea ahondar m as sobre los aspectos generales de Matlab entonces deber a referirse a [1]

II

Indice general
1. Lo b asico 1.1. Matrices . . . . . . . . . . . . . . . . . . . . . . . 1.1.1. Denici on y asignaci on de variables . . . . 1.1.2. Operando con matrices . . . . . . . . . . . 1.1.3. Matrices especiales . . . . . . . . . . . . . 1.1.4. Manipulaci on de matrices . . . . . . . . . 1.1.5. Arreglos . . . . . . . . . . . . . . . . . . . 1.2. Variables y Funciones . . . . . . . . . . . . . . . . 1.2.1. Variables . . . . . . . . . . . . . . . . . . . 1.2.2. Funciones . . . . . . . . . . . . . . . . . . 1.2.3. Algunas Variables y Funciones de utilidad 1.3. Gr acos . . . . . . . . . . . . . . . . . . . . . . . 1.3.1. Figuras . . . . . . . . . . . . . . . . . . . 1.3.2. Gr acos en 2D . . . . . . . . . . . . . . . 2. Simulink 2.1. Diagramas de Bloques . . . 2.2. Usando Simulink . . . . . . 2.2.1. Librer a Continuos 2.2.2. Librer a Discrete . 2.2.3. Librer as Sources y 2.2.4. Otras Librer as . . . A. Funciones Comunes . . . . . . . . . . . . . . . . . . . . Sinks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 1 2 3 5 7 8 8 9 9 12 12 12 17 17 18 19 19 20 21 25

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

iii

IV

INDICE GENERAL

Cap tulo 1 Lo b asico


Dado que todas las aplicaciones de Matlab se basan en el uso de matrices, lo primordial en este cap tulo es mostrar c omo utilizarlas, posteriormente se ver an los distintos tipos de variables y funciones que existen, para nalmente aprender el manejo de gr acos.

1.1.
1.1.1.

Matrices
Denici on y asignaci on de variables

Para introducir una matriz en Matlab s olo se debe introducir los n umeros de la matriz entre par entesis cuadrados ([ ]), las columnas se separan por espacios y las las por punto y coma (;)1 . Por ejemplo: >> A=[3 4 5 ; 3 2 7] A = 3 3 4 2 5 7

Como se puede ver en el ejemplo anterior las variables se asignan mediante un signo igual (=) de la misma manera que en lenguajes como JAVA o C.
1

; tambi en se utiliza para suprimir la visualizaci on del resultado

Matrices

1.1.2.

Operando con matrices

Para transponer2 matrices s olo hay que poner despu es de la matriz o de la variable un ap ostrofe (), siguiendo con el ejemplo anterior quedar a: >> A ans = 3 4 5 3 2 7

En la variable ans mostrada en el ejemplo anterior, Matlab guarda el resultado de la u ltima operaci on ejecutada. Las operaciones aritm eticas son igual que ne la mayor a de los lenguajes, as para sumar (o restar) s olo hay utilizar el signo + (o -), para multiplicar se utiliza el asterisco (*) y para dividir por la derecha (izquierda) se utiliza (/ (\)). 3 Por ejemplo: >> B=[1 2 3; 4 5 6]; >> C=A+B C = 4 7 >> D=C*A D = 76 114 80 126 6 7 8 13

Para potenciar una matriz se utiliza el s mbolo (), seguido del exponente que se desea. Si se desea invertir una matriz se puede hacer de dos maneras: elevando la matriz a -1 o utilizando la funci on inv:
En el caso de que se utilicen n umeros complejos se obtiene la conjugada transpuesta Obviamente para poder realizar estas operaciones es necesario que las dimensiones de las matrices sean consistentes.
3 2

1.1.3 Matrices especiales >> A=[2 2 ; 0 1] A = 2 0 >> inv(A) ans = 0.5000 0 -1.0000 1.0000 2 1

En el cuadro 1.1 se muestra un resumen de los operadores matriciales. Operaci on Multiplicaci on Divisi on por la derecha Divisi on por la izquierda Potenciaci on Transposici on conjugada S mbolo * / \

Cuadro 1.1: Operadores para a lgebra matricial

1.1.3.

Matrices especiales

Dado que existen matrices que son muy utilizadas en la pr actica Matlab incluye funciones espec cas para crearlas: ones crea una matriz de unos zeros crea una matriz de ceros eye crea la matriz identidad La utilizaci on de las tres es muy similar, se introduce primero el n umero de las y posteriormente el n umero de columnas; como muestra el siguiente ejemplo:

4 >> A=ones(3,2) A = 1 1 1 1 1 1

Matrices

>> B=zeros(3,5) B = 0 0 0 >> C=eye(3) C = 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0

>> C=eye(3,4) C = 1 0 0 0 1 0 0 0 1 0 0 0

N otese que si se desea la matriz identidad de orden n s olo hay que introducir n, pero si se desea una rectangular se utiliza igual que las funciones anteriores. Otro tipo de matrices com unmente utilizadas son los vectores, los cuales se pueden denir como cualquier matriz. La importancia radica en que muchas veces se utilizan para indexar alguna serie de elementos, para denirlos de esta manera se utiliza (:), de la siguiente manera:

1.1.4 Manipulaci on de matrices n umero inicial:paso:cota superior Por ejemplo: >> 1:4:19 ans = 1 5 9 13 17

1.1.4.

Manipulaci on de matrices

Una aplicaci on de uso frecuente consiste en seleccionar algunas columnas, las o simplemente elementos de alguna matriz; esto se logra con la utilizaci on de par entesis despu es del nombre del nombre de la variable y de dos puntos (:). A continuaci on se muestran algunos ejemplos para la matriz denida anteriormente: >> A(1,1) ans = 2 >> A(:,1) ans = 2 0 >> A(2,:) ans = 0 >> A(4) 1

6 ans = 1

Matrices

En el primer ejemplo se obtiene el elemento a11 de la matriz, en el segundo ejemplo la primera columna, el tercer ejemplo se obtiene la segunda la, y para el u ltimo ejemplo se obtiene el cuarto elemento de la matriz. La numeraci on del u ltimo ejemplo es por columnas (as a11 es 1 , a21 es 2 , a12 es 3 , a22 es 4 ). Adem as de seleccionar elementos, muchas veces es u til eliminar alg un(os) elemento(s) de la matriz4 , para lograr lo anterior se utilizan un par de par entesis cuadrados. As , por ejemplo, si se desea borrar la segunda columna de una matriz dada: >> A=[1 2 6; 3 4 8; 5 7 9; 3 4 9]; >> A(:,2)=[ ] A = 1 3 5 3 6 8 9 9

Es importante notar que tanto la selecci on como la eliminaci on de elementos de una matriz se puede realizar utilizando un vector como conjunto ndices a utilizar. Por ejemplo: >> A=0:1:10 A = 0 1 2 3 4 5 6 7 8 9 10

>> indice=1:2:11 indice =


4

Sin embargo, s olo se puede hacer si la estructura resultante sigue siendo una matriz

1.1.5 Arreglos 1 3 5 7 9 11

>> B=A(indice) B = 0 2 4 6 8 10

obtiene los n umeros que est an en las posiciones impares del vector A. Muchas veces es u til concatenar matrices, lo cual se puede utilizar utilizando los par entesis cuadrados ([ ]). Por ejemplo para concatenar horizontalmente: >> B=[1 2 3; 4 5 6]; >> C=[1 ; 2]; >> [B C] ans = 1 4 2 5 3 6 1 2

y para concatenar verticalmente: >> B=1:1:4; >> C=4:-1:1; >> [B ; C] ans = 1 4 2 3 3 2 4 1

Obviamente las dimensiones de las matrices deben ser consistentes con la concatenaci on.

1.1.5.

Arreglos

Los arreglos son matrices, pero poseen una aritm etica distinta en cuanto a la multiplicaci on y divisi on. Estas operaciones se ejecutan elemento a

Variables y Funciones

elemento, y para que sean consistentes los arreglos deben ser de las mismas dimensiones. Para diferenciar las operaciones matriciales de las operaciones de arreglos los operadores van precedidos por un punto (.), como se muestra en el cuadro 1.2. Operaci on Multiplicaci on Divisi on por la derecha Divisi on por la izquierda Potenciaci on Transposici on no conjugada S mbolo .* ./ .\ . .

Cuadro 1.2: Operadores para a lgebra de arreglos Por ejemplo: >> A=[1 3 4; 4 2 6]; >> B=[3 4 8; 7 8 0]; >> A.\B ans = 3.0000 1.7500 1.3333 4.0000 2.0000 0
bij aij

corresponde a la divisi on de arreglos por la izquierda de A por B, i.e.

i, j .

1.2.
1.2.1.

Variables y Funciones
Variables

Existen varios tipos de variables en Matlab, las m as comunes son: double corresponden a las matrices y arreglos num ericos. char son los arreglos de caracteres, se denen entre ap ostrofes ():

1.2.2 Funciones >> Z=hola Z = hola

1.2.2.

Funciones

Las funciones son, al igual que en la mayor a de los lenguajes, subrutinas que facilitan el trabajo, por ejemplo la funci on mean calcula el promedio o media de un set de datos: >> A=1:1:4; >> mean(A) ans = 2.5000 Lo importante con respecto a las funciones en Matlab es que vienen algunas incluidas en el programa (built-in functions) y otras viene dentro de los distintos toolboxes que trae Matlab (por ejemplo mean). Generalmente las funciones vienen con alguna ayuda de su utilizaci on, la cual se puede visualizar a trav es de la funci on help.

1.2.3.

Algunas Variables y Funciones de utilidad

Matlab trae muchas variables y funciones predenidas, algunas de estas variables se muestran en el cuadro 1.3, mientras que algunas funciones m as utilizadas aparecen en el cuadro 1.4. Si se aplica alguna de las funciones matem aticas a alguna matriz se obtiene una matriz en la que los elementos han sido evaluados por la funci on. Por ejemplo: >> X=0:0.1:1; >> exp(-X) ans =

10 Nombre pi i j Inf NaN eps

Variables y Funciones Descripci on El n umero m as famoso del mundo Unidad imaginaria Lo mismo que i, pero para los el ectricos Innito No es un n umero Precisi on relativa de punto otante, 252 Cuadro 1.3: Variables Predenidas

Descripci on Funci on seno de X Funci on coseno de X Funci on tangente de X Funci on exponencial de X Funci on logaritmo natural de X Gr aca Y versus X Borra la variable A Calcula el determinante de la matriz A Calcula los valores y vectores propios de la matriz A poly(A) Calcula los coecientes del polinomio caracter stico de la matriz A roots(coef) Calcula los ra ces del polinomio cuyos coecientes vienen en coef sum(X) Suma los elementos del vector X length(X) Retorna el largo del vector X size(A) Retorna las dimensiones de la matriz A help funcion Entrega ayuda sobre la funci on funcion lookfor palabra Retorna las funciones en las que aparece el string palabra Cuadro 1.4: Funciones B asicas m as comunes Columns 1 through 7 1.0000 0.9048 0.8187 0.7408 0.6703 0.6065 0.5488

Nombre sin(X) cos(X) tan(X) exp(X) log(X) plot(X,Y) clear(A) det(A) eig(A)

1.2.3 Algunas Variables y Funciones de utilidad Columns 8 through 11 0.4966 0.4493 0.4066 0.3679

11

12

Gr acos

1.3.

Gr acos

Para gracar en Matlab fundamentalmente se utiliza la funci on plot mencionada anteriormente, sin embargo tambi en es posible gracar en forma escalonada, utilizando s olo l neas verticales, utilzando n umeros complejos o en 3D, entre muchas maneras de gracar. A continuaci on se detallan las m as utilizadas y los comandos m as u tiles relacionados.

1.3.1.

Figuras

Una gura es una ventana en la cual se desplegan los gr acos obtenidos mediante Matlab. Esto presenta varias ventajas las cuales se mostrar an m as adelante. Aunque, generalmente, las guras se generan por defecto al crear un gr aco, a veces es necesario pedir otra gura a Matlab, para esto se utiliza el comando figure, el cual genera otra gura en la pantalla. El modo de utilizarlo es: >> figure Si se desea cerrar alguna gura se utiliza la funci on close, seguida del n umero de la gura. Si se quiere cerrar todas las guras entonces se ejecuta: >> close all lo cual cierra todas las guras existentes5 .

1.3.2.

Gr acos en 2D

Como se menciona anteriormente se utiliza la funci on plot, tal como se muestra en el siguiente ejemplo: >> t=0:0.1:5; >> plot(t,exp(-t)) lo cual produce como resultado la g. 1.1. Para que plot funcione ambos vectores deben tener el mismo largo. Si X o Y es una matriz entonces el vector es gracado versus las las o columnas de la matriz, dependiendo de con cual se alinee.
5

De manera an aloga clear all borra todas las variables

1.3.2 Gr acos en 2D
1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0

13

0.5

1.5

2.5

3.5

4.5

Figura 1.1: Ejemplo de plot Adem as plot tiene m as opciones las cuales se pueden ver en la ayuda de la funci on. Una forma de gracar com unmente usada es aquella en la cual se encuentran dos gr acas en la misma gura . Lo anterior se puede lograr de varias maneras, dos de ellas son: >> plot(t,exp(-t),t,sin(t)) >> plot(t,[exp(-t); sin(t)]) las cuales producen el mismo resultado (g. 1.2). Sin embargo, hay otra opci on la cual consiste en utilizar la funci on hold que retiene el gr aco actual y agrega el gr aco deseado a la gura actual. Para el ejemplo anterior: >> >> >> >> plot(t,exp(-t)) hold on plot(t,sin(t)) hold off

cuyo resultado se muestra en la g. 1.3. La utilizaci on de hold off es para soltar la gura.

14
1 0.8 0.6 0.4 0.2 0 0.2 0.4 0.6 0.8 1

Gr acos

0.5

1.5

2.5

3.5

4.5

Figura 1.2: Dos gr acas en la misma gura Para crear una leyenda de las gr acas se utiliza la funci onlegend(string1, string2, ...), donde los string i son los textos de cada gr aco para la leyenda, as para el ejemplo anterior, la instrucci on: >> legend(exponencial, seno) produce la g. 1.4. Tambi en es posible gracar en escalonada utilizando la funci on stairs(X,Y) de manera an aloga al uso de la funci on plot, con la diferencia que los elementos del vector X deben ser equiespaciados. Si se quiere gracar se nales de tiempo discreto se puede utilizar la funci on stem(X,Y), cuyo uso es an alogo a las funciones anteriores. Muchas veces es muy u til agrupar varios gr acos en una misma gura, lo cual se consigue f acilmente con la funci on subplot(m,n,i), la cual divide la gura en una matriz de mn y el gr aco se agrega en el elemento i- esimo. Adem as, tiene la ventaja de agregar gr acas que ocupen distinto tama no en la gura resultante. Por ejemplo, las siguientes instrucciones: >> X=-pi:0.1:pi; >> subplot(3,2,1)

1.3.2 Gr acos en 2D
1 0.8 0.6 0.4 0.2 0 0.2 0.4 0.6 0.8 1

15

0.5

1.5

2.5

3.5

4.5

Figura 1.3: Ejemplo de hold >> >> >> >> >> >> >> plot(X,sin(X)); subplot(3,2,2) plot(X,cos(X)); subplot(3,1,2) plot(X,cos(X)+sin(X)); subplot(3,1,3) plot(X,[cos(X);sin(X)]);

generan como resultado la g. 1.5. Tambi en hay funciones para poner t tulos, formatear los ejes, poner textos en cualquier parte de la gura, nombrar el eje x y el eje y, utilizar grilla, etc. La mayor a de las funciones anteriores aparece en la ayuda de la funci on plot. No hay que olvidar que todas las instrucciones anteriores pueden combinarse, para producir las guras que uno desea.

16

Gr acos

1 0.8 0.6 0.4 0.2 0 0.2 0.4 0.6 0.8 1

exponencial seno

0.5

1.5

2.5

3.5

4.5

Figura 1.4: Ejemplo de legend


1 0.5 0 0.5 1 4 2 1 0 1 2 4 1 0.5 0 0.5 1 4 3 2 1 0 1 2 3 4 3 2 1 0 1 2 3 4 2 0 2 4 1 0.5 0 0.5 1 4 2 0 2 4

Figura 1.5: Ejemplo de subplot

Cap tulo 2 Simulink


Simulink es un sistema interactivo para simular sistemas din amicos nolineales. La gran ventaja de Simulink es su interfaz gr aca, mediante la cual se pueden implementar complicados modelos y obtener simulaciones en un tiempo extremadamente r apido a trav es de los diagramas de bloques.

2.1.

Diagramas de Bloques

En pocas palabras para utilizar Simulink s olo hay que saber c omo traducir una ecuaci on diferencial o de diferencias a un diagrama de bloques. Por ejemplo si se desea simular la respuesta de la siguiente ecuaci on diferencial y ( t ) + 3y ( t ) = 1 y (0) = 0 (2.1)

primero hay que generar el diagrama de bloques del modelo, el cual se observa en la g. 2.1. La implementaci on en Simulink se muestra la g. 2.2, y a

Figura 2.1: Diagrama de Bloques

17

18

Usando Simulink

Figura 2.2: Implementaci on en Simulink trav es de esta se obtiene la respuesta del sistema descrito por (2.1), la cual se aprecia en la g. 2.3.
0.35

0.3

0.25

0.2

0.15

0.1

0.05

10

Figura 2.3: Respuesta del sistema din amico

2.2.

Usando Simulink

Para utilizar Simulink s olo es necesario construir el diagrama de bloques mediante los bloques predenidos que vienen en la librer a. El uso de los bloques es bastante sencillo, s olo hay que arrastrar el icono del bloque al modelo que se est a construyendo. Si se desean cambiar los par ametros de los bloques s olo hay que hacer un doble click sobre su icono.

2.2.1 Librer a Continuos

19

Para conectar los bloques hay que situar el puntero del mouse sobre el puerto de salida del primer bloque, con lo que el puntero deber a cambiar a una cruz, y arrastrar el mouse hacia el puerto de entrada del siguiente bloque. A continuaci on se detallan los bloques m as utilizados.

2.2.1.

Librer a Continuos

En esta librer a se encuentran todos los bloques de tiempo continuo para sistemas lineales, los cuales son: Derivative: Derivada num erica de la se nal de entrada. Integrator: Integra la se nal de entrada. Memory: Retrasa la se nal en un tiempo de integraci on. State-Space: Representaci on en variables de estado. Transfer-Fcn: Representaci on en funci on de transferencia. Expresi on matricial para el numerador, expresi on vectorial para el denominador. El ancho de la salida debe ser igual al n umero de las del numerador. Los coecientes son potencias descendentes de s. Transport Delay: Aplica el retraso especicado a la se nal de entrada. Variable Transport Delay: Aplica un retraso a la primera se nal de entrada. La segunda entrada especica el retardo. Zero-Pole: Representaci on en polos y ceros. Expresi on matricial para los ceros. Expresi on vectorial para los polos y la ganancia. El ancho de la salida debe igualar el n umero de columnas de la matriz de ceros, o uno si los ceros son un vector.

2.2.2.

Librer a Discrete

Esencialmente es id entica a la anterior, pero para sistemas lineales de tiempo discreto, i.e. para ecuaciones de diferencias. Los bloques son: Discrete Transfer-Fcn: Funci on de transferencia discreta, an alogo al caso continuo.

20

Usando Simulink

Discrete Zero-Pole: Representaci on discreta en polos y ceros. Idem al caso continuo. Discrete Filter: Filtro discreto. Expresi on vectorial para el numerador y el denominador. Los coecientes son para potencias ascendentes de z1 . Discrete State-Space: Representaci on en variables de estado de tiempo discreto. Discrete-Time Integrator: Integraci on en tiempo discreto de la se nal de entrada. First-Order Hold: Retenedor de primer orden. Unit Delay: Muestrea y retiene con un per odo de muestreo de retraso. Zero-Order Hold: Retenedor de orden cero.

2.2.3.

Librer as Sources y Sinks

Estas librer as son aquellas que proveen las fuentes y los sumideros de los diagramas de bloques. Algunos de estos son: Clock: Librer a Sources. Genera el tiempo de simulaci on actual. Constant: Librer a Sources. Genera una constante especicada en el par ametro Constant value . Si Constant value es un vector y Interpret vector parameters as 1-D est a arriba (on), el valor constante es tratado como un arreglo 1-D. Sino, la salida es una matriz con las mismas dimensiones que el valor constante. Signal Generator: Librer a Sources. Genera varias formas de onda. Sine Wave: Librer a Sources. Genera una onda sinusoidal. Step: Librer a Sources. Genera un escal on. Display: Librer a Sinks. Representaci on num erica de los valores de entrada. Scope: Librer a Sinks. Representaci on gr aca de los valores de entrada versus el tiempo de simulaci on.

2.2.4 Otras Librer as

21

Stop Simulation: Librer a Sinks. Detiene la simulaci on cuando la entrada es distinta de cero. To File: Librer a Sinks. Escribe el tiempo y la entrada al archivo MAT especicado en formato la. El tiempo est a en la primera la. To Workspace: Librer a Sinks. Escribe la salida al arreglo o estructura especicado en el workspace principal de Matlab. Los datos no est an disponibles hasta que la simulaci on se detiene. XY Graph : Librer a Sinks. XY scope usando la ventana gr aca de Matlab. la primera entrada es usada como base temporal. Se ingresan los rangos del gr aco.

2.2.4.

Otras Librer as

Adem as de las librer as anteriormente detalladas, existen otras que proveen los siguientes bloques que son extremadamente u tiles: Fcn: Librer a Functions & Tables. Bloque para una expresi on general. Usa u como el nombre de la variable de entrada. Ejemplo: sin(u[1] * exp(2.3 * -u[2])) MATLAB Fcn: Librer a Functions & Tables. Pasa los valores de entrada a una funci on de Matlab para evaluarla. La funci on debe retornar un s olo argumento vectorial del largo de Output width. Ejemplos: sin, sin(u), foo(u(1), u(2)) Polynomial: Librer a Functions & Tables. Evaluaci on polinomial. Calcula P(u) dado por el arreglo de coecientes polinomiales P. P est a ordenado del mayor al menor orden, la forma aceptada por la funci on polyval de Matlab. S-Function: Librer a Functions & Tables. Bloque denible por el usuario. Los bloques pueden estar escritos en M, C, Fortran o Ada y deben cumplir los est andares de S-function. t,x,u y flag son autom aticamente entregados a la S-function por Simulink. Par ametros Extra pueden ser especicados en el campo S-function parameters. Abs: Librer a Math. Valor absoluto, i.e. y = |u|.

22

Usando Simulink

Dot Product: Librer a Math. Producto interno (punto). y = sum(conj( u1).*u2) Gain: Librer a Math. Ganancia elemento a elemento (y = K.*u) o ganancia matricial (y = K*u o y = u*K). Math Function: Librer a Math. Funciones matem aticas incluyendo funciones logar tmicas, exponencial, potenciaci on, y m odulo. Matrix Gain: Librer a Math. Ganancia elemento a elemento (y = K.*u) o ganancia matricial (y = K*u o y = u*K). MinMax: Librer a Math. La salida es el m nimo o m aximo de la entrada. Para una sola entrada, los operadores se aplican a trav es del vector de entrada. Para m ultiples entradas, los operadores se aplican a trav es de las entradas. Product: Librer a Math. Multiplica o divide las entradas. Especicar una de las dos opciones siguientes: 1. * o / para cada puerto de entrada (ej., **/*) 2. Un escalar especicando el n umero de puertos de entrada a ser multiplicados. El valor escalar 1 para producto elemento a elemento causa que todos los elementos de un solo vector de entrada sean multiplicados. Sum: Librer a Math. Suma o substrae las entradas. Especicar una de las dos opciones siguientes: 1. Un string conteniendo + o - para cada puerto de entrada, | para espacio entre los puertos (ej. ++|-|++) 2. Un escalar 1. Un valor 1 suma todas las entradas; 1 suma los elementos de una solo vector de entrada. Trigonometric Function: Librer a Math. Funciones trigonom etricas e hiperb olicas. Demux: Librer a Signals & Systems. Divide:

2.2.4 Otras Librer as 1. se nales vectoriales a escalares o vectores m as peque nos, o

23

2. se nales tipo bus producidas por el bloques Mux en sus valores escalares, vectoriales o matriciales constituyentes. Chequear Bus Selection Mode para dividir se nales tipo bus. Mux: Librer a Signals & Systems. Multiplexa se nales escalares, vectoriales, o matriciales a un bus. Terminator: Librer a Signals & Systems. Usado para terminarse nales de salida. (Previene advertencias acerca puertos de salida no conectados.)

24

Usando Simulink

Ap endice A Funciones Comunes


A continuaci on se incluyen las funciones m as utilizadas de Matlab con una peque na descripci on de lo que hacen. acos: Funci on. Sintaxis acos(X). Funci on arcocoseno de X. asin: Funci on. Sintaxis asin(X). Funci on arcoseno de X. atan: Funci on. Sintaxis atan(X). Funci on arcotangente de X. atan2: Funci on. Sintaxis atan(Y,X). Funci on arcotangente de Y/X. La salida se encuentra entre y . clear: Funci on. Sintaxis clear(A). Borra la variable A. cos: Funci on. Sintaxis cos(X). Funci on coseno de X. ctrb: Funci on. Sintaxis ctrb(A,B). Retorna la matriz de controlabilidad del sistema formado por A y B. det: Funci on. Sintaxis det(A). Calcula el determinante de la matriz A. eig: Funci on. Sintaxis eig(A). Calcula los valores y vectores propios de la matriz A. eps: Variable. Precisi on relativa de punto otante, 252 . exp: Funci on. Sintaxis exp(X). Funci on exponencial de X. expm: Funci on. Sintaxis expm(A). Calcula la matriz exponencial de A. 25

26

APENDICE A. FUNCIONES COMUNES

help: Funci on. Sintaxis help function. Entrega ayuda sobre la funci on function. i: Variable. Unidad imaginaria. inv: Funci on. Sintaxis inv(A). Retorna la matriz inversa de A. Inf: Variable. Innito. j: Variable. Lo mismo que i, pero para los el ectricos. length: Funci on. Sintaxis length(X). Retorna el largo del vector X. log: Funci on. Sintaxis log(X). Funci on logaritmo natural de X. logm: Funci on. Sintaxis logm(A). Logaritmo natural matricial de A. Es la funci on inversa de expm(A). log10: Funci on. Sintaxis log10(X). Funci on logaritmo ordinario (en base 10) de X. log2: Funci on. Sintaxis log2(X). Funci on logaritmo en base 2 de X. lookfor: Funci on. Sintaxis lookfor(string). Retorna las funciones en las que aparece la palabra string en la ayuda de dicha funci on. max: Funci on. Sintaxis [Y,I]=max(X). Retorna el elemento m as grande de X en Y, y el ndice en que se encuentra en I. mean: Funci on. Sintaxis mean(X). Retorna el valor medio o promedio de los elementos de X. min: Funci on. Sintaxis [Y,I]=max(X). Retorna el elemento m as peque no de X en Y, y el ndice en que se encuentra en I. NaN: Variable. No es un n umero, usualmente aparece cuando hay una divisi on del tipo 0/0. obsv: Funci on. Sintaxis obsv(A,C). Retorna la matriz de observabilidad del sistema formado por A y C. pi: Variable. El n umero m as famoso del mundo.

27 plot: Funci on. Sintaxis plot(X,Y). Gr aca Y versus X. poly: Funci on. Sintaxis poly(A). Calcula los coecientes del polinomio caracter stico de la matriz A. roots: Funci on. Sintaxis roots(coef). Calcula los ra ces del polinomio cuyos coecientes vienen en coef. sin: Funci on. Sintaxis sin(X). Funci on seno de X. size: Funci on. Sintaxis size(A). Retorna las dimensiones de la matriz A. sum: Funci on. Sintaxis sum(X). Suma los elementos del vector X. subplot: Funci on. Sintaxis subplot(m,n,i). Genera una separaci on en una gura, dada por un arreglo de m las y n columnas, y graca en la posici on i- esima del arreglo. ss: Funci on. Sintaxis ss(A,B,C,D). Genera un modelo formulado en variables de estado. ss2tf: Funci on. Sintaxis [num,den]=tf2ss(A,B,C,D). Convierte una representaci on en variables de estado a un modelo dado por la funci on de transferencia. ss2zp: Funci on. Sintaxis [Z,P,K]=zp2ss(A,B,C,D). Convierte una representaci on en variables de estado a un modelo en formato zpk. std: Funci on. Sintaxis std(X). Retorna la desviaci on est andar de los elementos de X. tan: Funci on. Sintaxis tan(X). Funci on tangente de X. tf: Funci on. Sintaxis tf(num,den). Crea una funci on de transferencia. num son los coecientes del numerador, que van listados en potencias decrecientes de s o z, den es an alogo. tf2ss: Funci on. Sintaxis [A,B,C,D]=tf2ss(num,den). Convierte una funci on de transferencia a una representaci on en variables de estado. num son los coecientes del numerador, que van listados en potencias decrecientes de s o z, den es an alogo.

28

APENDICE A. FUNCIONES COMUNES

tf2zp: Funci on. Sintaxis [Z,P,K]=tf2zp(num,den). Convierte una funci on de transferencia a una representaci on zpk. num son los coecientes del numerador, que van listados en potencias decrecientes de s o z, den es an alogo. var: Funci on. Sintaxis var(X). Retorna la varianza de los elementos de X. zpk: Funci on. Sintaxis zpk(Z,P,K). Genera un modelo en el formato cerospolos-ganancia (zpk). zp2ss: Funci on. Sintaxis [A,B,C,D]=zp2ss(Z,P,K). Convierte un modelo en formato zpk a una representaci on en variables de estado. zp2tf: Funci on. Sintaxis [num,den]=zp2tf(Z,P,K). Convierte una representaci on zpk a una funci on de transferencia.

Bibliograf a
[1] The Mathworks, Getting Started with Matlab

29

30

BIBLIOGRAF IA

Indice alfab etico


\, 2 , 2 , 8 (), 5 *, 2 +, 2 -, 2 ., 8 /, 2 :, 4, 5 ;, 1 =, 1 [], 1, 7 , 2 acos, 25 ans, 2 arreglos, 8 asin, 25 atan, 25 atan2, 25 char, 8 clear, 10, 12, 25 close, 12 concatenar, 7 cos, 10, 25 ctrb, 25 obsv, 26 det, 10, 25 31 double, 8 eig, 10, 25 eliminar elementos, 6 eps, 10, 25 exp, 10, 25 expm, 25 eye, 3 figure, 12 funciones, 1 help, 9, 10, 26 hold, 13 i, 10, 26 Inf, 10, 26 inv, 2, 26 j, 10, 26 legend, 14 length, 10, 26 librer a, 18 continuos, 19 Derivative, 19 Integrator, 19 Memory, 19 State-Space, 19 Transfer-Fcn, 19 Transport Delay, 19

32 Variable Transport Delay, 19 Zero-Pole, 19 discrete, 19 Discrete Filter, 20 Discrete State-Space, 20 Discrete Transfer-Fcn, 19 Discrete Zero-Pole, 20 Discrete-Time Integrator, 20 First-Order Hold, 20 Unit Delay, 20 Zero-Order Hold, 20 functions & tables, 21 Fcn, 21 MATLAB Fcn, 21 Polynomial, 21 S-Function, 21 math, 21 Abs, 21 Dot Product, 22 Gain, 22 Math Function, 22 Matrix Gain, 22 MinMax, 22 Product, 22 Sum, 22 Trigonometric Function, 22 signals & systems, 22 Demux, 22 Mux, 23 Terminator, 23 sinks, 20 Display, 20 Scope, 20 Stop Simulation, 21 To File, 21 To Workspace, 21

INDICE ALFABETICO XY Graph, 21 sources, 20 Clock, 20 Constant, 20 Signal Generator, 20 Sine Wave, 20 Step, 20 log, 10, 26 log10, 26 log2, 26 logm, 26 lookfor, 10, 26 matrices, 1, 8 max, 26 mean, 9, 26 min, 26 NaN, 10, 26 ones, 3 pi, 10, 26 plot, 10, 12, 27 poly, 10, 27 roots, 10, 27 seleccionar elementos, 5 sin, 10, 27 size, 10, 27 ss, 27 ss2tf, 27 ss2zp, 27 stairs, 14 std, 27 stem, 14 subplot, 14, 27 sum, 10, 27

INDICE ALFABETICO tan, 10, 27 tf, 27 tf2ss, 27 tf2zp, 28 var, 28 variables, 1 variables, 1 vectores, 4 zeros, 3 zp2ss, 28 zp2tf, 28 zpk, 28

33

Das könnte Ihnen auch gefallen