Escolar Documentos
Profissional Documentos
Cultura Documentos
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.
178
en la barra estndar o desplegando el men File y seleccionando sucesivamente New y Model (Ctrl + N)
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.
Mach
180
(a)
(b)
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
Mach
182
(a)
(b)
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
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
(a)
(b)
Figura 10.10 Especificaciones de los bloques (a) Gain y (b) Slider Gain
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
(a)
(b)
Figura 10.12 Especificaciones del bloque (a) Math Function, (b) Trigonometric Function
Mach
186
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
(a)
(b)
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
(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.
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.
Mach
190
(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)
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
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
Mach
196
Mach
197
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
Mach
199
Mach
200
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
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
Mach
203
un bloque donde se selecciona el tipo de respuesta a simular, es decir, paso, rampa o seno.
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.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
206
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
Mach
208
Mach
209
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
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.
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
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