Está en la página 1de 54

MODELACIÓN MATEMÁTICA USANDO ECUACIONES

DIFERENCIALES ORDINARIAS
Edgar Andres Barrera Vega - Cód: 02-235126
Inti Marcelo Ramon Hernandez - Cód: 02-235104
Dpto. de Ingenierı́a Mecánica y Mecatronica, Facultad de Ingenierı́a
Universidad Nacional de Colombia
Bogotá D.C.

10 de mayo de 2017

Resumen
En este artı́culo se presenta el estudio y correspondiente análisis de dos problemas de aplicación
en particular del campo de la mecánica de fluidos. Se explica el planteamiento de las ecuaciones y
expresiones matemáticas que rigen ambos casos, y la posterior implementación de modelos compu-
tacionales para que se facilitara el estudio de ambos problemas. El primero de ellos consiste en
un actuador de micro-chorro, utilizado para controles de flujo y aplicaciones de refrigeración. El
segundo caso consiste en un sistema de control de llenado de un tanque mediante el flujo regulado
por una válvula, la cual se controla a través de un servomotor instalado en un circuito RL.

Introducción
La modelación matemática es una herramienta que ayuda a representar situaciones, sistemas o
fenómenos de estudio de alta complejidad, facilitando la comprensión, el análisis y las predicciones
de cada caso. Los modelos pueden ser implementados en distintos campos profesionales, como las
ingenierı́as, administración, lı́neas de producción, incluso en estrategia militar y áreas de la salud.
Sin embargo, cabe aclarar que un modelo matemático representa los escenarios anteriormente des-
critos de manera parcial e imperfecta. La calidad y eficacia de las representaciones dependen de la
robustez y detalles del modelo, como lo son las suposiciones hechas en la descripción del objeto de
estudio.
Los elementos de un modelo se pueden clasificar en tres:Las variables independientes y parámetros:
son los que afectan el modelo pero que no son estudiados por el mismo, pueden asumir valores constantes
o variables según la naturaleza del modelo; las variables dependientes, que son los elementos que el
modelo se encarga de estudiar; y suposiciones, que incluyen los principios y leyes que rigen el modelo,
las ecuaciones constitutivas, e información adicional que pueda simplificar el modelo en algunos rasgos.

1. Caso de estudio 1 - Análisis de un actuador de Micro-chorro


El estudio y diseño de actuadores de micro-chorro es uno de los campos de la ingenierı́a que
está siendo ampliamente explorado actualmente, particularmente para aplicaciones de control de flu-
jo, ası́ como para aplicaciones de refrigeración (por ejemplo, para producir enfriamiento en regiones
predeterminadas). Un esquema genérico de tal actuador es presentado en la Figura 1.
El modo de operación de tal dispositivo es bastante simple: Algún mecanismo de actuación vertical
se conecta a un diafragma (o pared móvil) ubicado en la parte inferior de una cámara plenum. El
diafragma se desplaza verticalmente, lo cuál genera cambios en el volumen de la cámara plenum (o
simplemente plenum, cámara interna conteniendo el gas a inyectar o extraer). Cuando el diafragma se
desplaza hacia arriba, el volumen de la cámara se reduce, elevando la presión p dentro de la cámara
plenum, lo que a su vez produce un chorro que sale eyectado de la cámara hacia la atmósfera circundante
a través de la ranura de salida (la apertura denominada micro slot en la Figura 1).

1
Si el mecanismo de actuación aplicado al sistema es oscilatorio, el diafragma oscilará verticalmente
(como se indica en el esquema de la Figura 1a) produciendo un flujo alternante de entrada y salida.
Este modo se operación se denomina actuador de chorro sintético. Otro tipo de actuación consiste
en un movimiento unidireccional rápido del diafragma seguido de un retroceso lento del mismo. De
esta forma el diafragma únicamente se deflecta hacia arriba para producir un incremento fuerte de la
presión y ası́ generar una especie de chorro pulsado. Este último modo de operación se suele denominar
como actuación tipo “salto de presión” (pressure-jump actuation).
En cualquiera de los modos de operación dos procesos diferentes están ocurriendo al interior de
la cámara, y los cuales sin embargo están intrı́nsecamente acoplados. Por un lado, la rata de flujo
másico a través de la ranura afecta la presión en la cámara, mientras que la presión al interior de
la cámara afecta las ratas de flujo másico fluyendo a través de la ranura. Ambos procesos dependen
mutuamente el uno del otro. Es importante considerar que las velocidades de flujo dentro de la cámara
son lo suficientemente lentas como para ser ignoradas (comparadas con las ratas de flujo en la ranura).

Figura 1: Esquema de un actuador de micro-chorro, obtenido de [1]

1.1. Modelo matemático


Para comenzar a diseñar el Modelo Matemático, primero se deben identificar las Variables Inde-
pendientes, Variables Dependientes y Parámetros que se encuentran en el estudio del fenómeno en
cuestión, tal clasificación se encuentra en la Cuadro 1.

Variable independiente Tiempo (t)


Variables Dependientes Presion (P), Posicion (x), Masa del Gas (m),
Volumen del Plenum (Vp ), Fuerza (Fs )
Parametros Temperatura (T), Presion Externa (Pext), Constante del Gas (R),
Viscosidad Dinamica del Gas (µ), Dimensiones del Plenum (d1 , Hmax, W, L),
Constante del Resorte (K), Constante el Amortiguador (C), Graveda (g)

Cuadro 1: Variables del caso de estudio 1.

2
1.1.1. Consideraciones y Suposiciones:
El plenum es una cavidad de sección transversal cuadrada de lado d1 , y con un volumen máximo
dado por V = d21 Hmax
La ranura tiene ancho W y una profundidad que incluye toda la cámara plenum.

El sistema de actuación es efectuado mediante una fuerza f(t), que acciona el sistema amortigua-
dor resorte.
El resorte es no lineal con coeficientes K1 y K2 , para los términos lineal y cuadrático, respecti-
vamente. Lo anterior se puede expresar como:

FR = −K1 x − K2 x2

El amortiguador es no lineal con coeficientes C1 y C2 , para los términos lineal y cuadrático,


respectivamente. Lo cual se puede expresar de la siguiente manera:

FA = −C1 ẋ − C2 ẋ2

Los terminos cuadraticos de las fuerzas producidas por el resorte y el amortiguador se consideran
un 5 % del termino lineal
En cuanto al fluido, se supone que el gas es ideal y que fluye en estado laminar.
El proceso se supone como isotérmico, es decir que la temperatura no se afecta bajo ningún
fenómeno y permanece constante a lo largo del tiempo
Todo el proceso de análisis, conclusiones y la implementación computacional estará enfocado
principalmente al método de chorro sintético; sin dejar a un lado el método de salto de presión,
ya que presenta las mismas caracterı́sticas en donde la única variación es la forma de las curvas
en los diagramas temporales y de fases.

1.1.2. Ecuaciones que rigen el Modelo Matemático


Para estudiar el comportamiento de este problema y poder realizar el modelo computacional del
mismo, recurrimos a las siguientes expresiones matemáticas como base inicial para el correspondiente
análisis.
2
d2 x

dx dx
md 2 = Fs − ∆P d1 2 − Kx − 0,05Kx2 − C − 0,05C − md g (1)
dt dt dt
dP 1 dm dVP
= (RT −P ) (2)
dt VP dt dt
dVP dx
= −d1 2 (3)
dt dt

dm m RH 4 π
= (Pext − P ) (4)
dt VP 8Lµ
Donde:
md : Masa instantánea del gas;
VP : Volumen instantáneo del plenum;
µ: Viscosidad Dinámica del gas;
Fs : Fuerza oscilante;
VP : Volumen del plenum;

A continuación se explica de dónde salieron las 4 ecuaciones anteriormente descritas:

3
Figura 2: Diagrama de Cuerpo Libre sobre el Diafragma

La expresión 1 surge de realizar un diagrama de cuerpo libre sobre el diafragma (Figura 2):
Se procede a hacer la sumatoria de fuerzas del diagrama, obteniendo la siguiente expresión:
X
md a = F

d2 x
md = Fs − FG − FR − FA − md g
dt2
2
d2 x

dx dx
md = F sin(ωt) − ∆P d1 2 − Kx − 0,05Kx2 − C − 0,05C − md g
dt2 dt dt

Donde:
dx 2
Fuerza del amortiguador = C dx

FA : dt − 0,05C dt ;
FG : Fuerza manometrica del gas = ∆PG d1 2 ;
FR : Fuerza del resorte = Kx − 0,05Kx2 ;
Fs : Fuerza oscilante = F sin(ωt);
Las expresiones FA , FR y Fs , se dan por definición de fuerzas de un amortiguador, de un resorte
determinada por la ley de Hooke y una fuerza oscilante, respectivamente.
La FG , se obtiene al despejar la fórmula de la presión que ejerce el gas sobre el diafragma, como
se hace a continuación:
Se debe tener en cuenta que la presión del gas PG tenida en cuenta es una presión absoluta, por
lo tanto, para obtener la presión manométrica, se le debe restar la presión exterior.
FG
∆PG = ; A = d1 2 ; ∆PG = P − Pext ; → FG = ∆PG d1 2
A

La expresión 2 se obtiene al derivar la ecuación de estado para los gases ideales descrita en [2, pág.
137] con respecto al tiempo, teniendo en cuenta que los valores de R, T son constantes debido al
proceso isoentropico:

P V = mRT
dP dV dm
V +P = RT
dt dt dt

4
dP
De esta expresión se despeja dt , obteniendo la expresión 2:

dP 1 dm dVP
= (RT −P )
dt VP dt dt

Esta expresión se puede comprobar recurriendo a [1, Eq. 34, Pág. 357], en donde se obtiene la
misma expresión para solución de un problema semejante.
La expresión 3 surge de obtener el volumen, teniendo en cuenta la variación de la altura del
plenum en una distancia x. El volumen total del plenum en cualquier instante de tiempo esta
dada por la ecuación:
VP = (HM ax − x)d21

Si se deriva esta ecuación con respecto al tiempo, se obtiene la expresión 3.


dVP dx
= −d1 2
dt dt

Para la obtención de la expresión 4, se parte de la implementación de la ecuación de Hagen-


Poiseuille descrita en [3, pág. 275], la cual se implementa en modelos de flujos en tubos, con una
modificación del área debido a que en este caso de estudio, el área es de sección no circular, por
lo tanto se usa el radio hidráulico como análogo. La fórmula es:

dVP RH 4 π
Q= = −∆P ;
dt 8Lµ

Y sabiendo que definición de densidad como:


m
ρ=
VP
Despejando y derivando la masa respecto al tiempo:
dm dVP

dt dt

Reemplazando en la expresión anterior, se obtiene una nueva forma de la ecuación 4

dm m RH 4 π
= (Pext − P )
dt VP 8Lµ

Como se puede ver, la ecuación diferencial 1 es de segundo orden, por lo que para poder ser
implementada computacionalmente, esta se debe reducir estableciendo un sistema de ecuaciones que
la describan, como de la siguiente manera:
2
d2 x

dx dx
md = Fs − ∆P d1 2 − Kx − 0,05Kx2 − C − 0,05C − md g
dt2 dt dt

d2 x
Despejando se obitene la siguiente expresion:
dt2
 2 !
d2 x
 
1 2 2 dx dx
= Fs − ∆P d1 − Kx − 0,05Kx − C − 0,05C − md g
dt2 md dt dt

Se reduce el orden de derivación de la expresión anterior obteniendo dos nuevas expresiones que
junto con 2, 3 y 4 conforman el conjunto de ecuaciones del modelo matemático a implementar compu-
tacionalmente:
dx dy d2 x
y= ; = 2
dt dt dt

5
dx
y= (5)
dt
 
dy 1
F sin(ωt) − (P − Pext )d1 2 − Kx − 0,05Kx2 − Cy − 0,05Cy 2 − md g

= (6)
dt md
Este modelo matemático es implementado para realizar las correspondientes simulaciones en FOR-
TRAN 90 y utilizando como graficador GNUPLOT. En el Apéndice ?? se podrá encontrar el código
fuente .f90 utilizado para la obtención de los resultados reflejados en este articulo.

1.2. Análisis de estabilidad


El análisis de estabilidad se hace para un proceso isotrópico, usando como fluido el aire, a tempe-
ratura estándar y la presión atmosférica a nivel del mar.

Parámetros
Pext = 1,01 ∗ 105 [P a]
g = 9,81 [m/s2 ]
R = 287 [J/kgk]
T = 310 [K]
µ = 1,73 ∗ 10−5 [N s2 /m2 ]

Los valores correspondientes a la Constante de Gas del Aire R y la Viscosidad Dinámica del Aire
µ se obtuvieron de [2, Tabla A-1, Pág. 908].

Dimensiones del Plenum


W = 0,01 [m]
d1 = 0,2 [m]
L = 0,1 [m]
H = 0,2 [m]
md = 0,025 [kg]
ω = 2π [rad/seg]

Para empezar con el análisis de estabilidad, se reemplazaron los valores de los parametros en las
expresiones 2, 3, 4, 5 y 6 obteniendo las siguientes expresiones, sobre las cuales se le realizara el análisis
en cuestión.

 
dy 1
= (F sin(t) − (P − 1,05E 5 )(0,04) − kx − 0,05kx2 − Cy − 0,05Cy 2 − 0,24325) (7)
dt md

dx
=y (8)
dt
dP 1   m  
= 88970 1,1671766E − 4 (1,0,1E5 − p) − 0,04P y (9)
dt VP V
dm m
= (1,16717E − 4)(1,0,1E5 − P ) (10)
dt VP
dVP
= −0,04y (11)
dt

6
1.2.1. Puntos de Equilibrio
igualando las expresiones 7, 8, 9, 10 y 11 a cero, se obtienen los siguientes puntos de equilibrio del
sistema:

y = 0[m]; P = 1,01E5[P a]; m = 9,081E − 3[kg]; VP = 8E − 3[m3 ];

Los cuales se deducen fácilmente de las expresiones 8, 9, 10 y 11, para luego finalmente reemplazarlas
en la expresión 7 y obtener la siguiente igualdad:
p
K ± 2 K 2 − 0,04905K + 0,2KF sin(ωt)
x= (12)
0,1K
El análisis de estabilidad se hizo mediante el método del Jacobiano, explicado a continuación:
Se debe cumplir la siguiente condición para hallar los valores propios del sistema:

|A − λI| = 0

Donde la matriz A es el Jacobiano del sistema de ecuaciones anteriormente descrito evaluado en


los puntos de equilibrio hallados, dando como resultado la siguiente matriz:
 
−40C 40(−K − 0,1Kx) 1,6 0 0

 0 1 0 0 0 
−505000 0 1473,44 0 0
 
 0 0 1,3248E − 4 0 0
−0,04 0 0 0 0

Luego, a esta matriz se le resta λ veces la matriz identidad I, obteniendo el siguiente resultado:
 
−40C − λ 40(−k − 0,1kx) 1,6 0 0

 0 1 − λ 0 0 0 
 −505000 0 1473,44 − λ 0 0 
1,3248E −4 −λ
 
 0 0 0 
−0,04 0 0 0 −λ

Finalmente, se procede a hallar el determinante de la matriz anterior, y con este resultado, se


encuentran los valores propios del Jacobiano, los cuales especificarán cómo es el comportamiento de
los puntos de equilibrio.

|A − λI| = −λ[−λ[(1473,44 − λ)(−40C − λ)(1 − λ) + (1,6)(λ − 1)(−505000)]] = 0

[λ2 [(1473,44 − λ)(−40C − λ)(1 − λ) + (1,6)(λ − 1)(−505000)]] = 0

λ1 = 0

λ2 = 0

(−58937, 78C − 1473,44λ + 40Cλ + λ2 )(1 − λ) − (−8080001)(1 − λ) = 0

λ3 = 1; Positivo

λ2 + (40C − 1473,44)λ + 808000 − 58937,78C = 0


p
−(40C − 1473,44)x− 2
(40C − 1473,44)2 − 4(808000 − 58937,78C)
λ=
2
Con esta expresión final, para encontrar los últimos dos valores propios, se puede concluir que el
único parámetro que puede afectar la estabilidad del sistema es la constante C del amortiguador.

7
Asumiendo el valor inicial de C = 5000[N ∗ s/m]; los valores propios dados por la ecuación anterior
son:

λ4 = 1469,43

λ5 = −199995,99
Con el proceso anterior se concluye que la masa del gas y el volumen pueden iniciar en cualquier
valor sin afectar la estabilidad del sistema; además, se puede ver que la constante del resorte K, es
irrelevante en el análisis de estabilidad. El único parámetro que influye en la estabilidad, es la constante
C del amortiguador como ya se mencionó anteriormente.
Para que sea un sistema estable, los puntos de equilibrio tienen que ser sumideros, por lo que no
pueden tener componente real positiva y tampoco componente imaginaria. Por consiguiente, se hace
el siguiente análisis, estableciendo el rango de C en el cual el sistema es estable.

−40C + 1473,44 < 0


11473,44
C> ⇒ C > 36,836
40
Por otro lado;
(40C − 1473,44)2 > 4(808000 − 58937,78C)
→ C < −81,7808; C > 8,1083
Con base en los análisis anteriores, el intervalo completamente válido para C es:

⇒ C > 36,836
Finalmente sabiendo el valor de C = 5000[N ∗ s/m], lo cual se ubica en los valores en donde el sistema
es estable, se concluye que este punto de equilibrio ha de ser un sumidero.

1.3. Análisis de Operación


Con base en los datos suministrados, entre ellos el valor de la constante del resorte K = 1000[N/m]
y usando la expresion 12, se halla la posición de equilibrio en la coordenada x = −2,45E − 4[m].
Como se mencionó anteriormente, el sistema presenta un comportamiento es estable, y partiendo
de unas condiciones iniciales, este va a tender hacia los puntos de equilibrio a medida que pasa el
tiempo.
Para comprobar dicho comportamiento, se presentan las gráficas temporales de tres casos en par-
ticular:

El primer caso, cuando se parte de una posición por debajo de la de posición de equilibrio se
puede ver en la Figura 3.
Como se puede ver en las Figura 3, se parte de una posición por debajo de la de equilibro, y al
avanzar el tiempo, el diafragma tiende a oscilar alrededor de la posición X = −2,45E−4[m].
El segundo caso particular, es cuando se parte de un punto superior al de la posición equilibrio,
sin embargo, en este caso, el diafragma también tiende a oscilar alrededor de la posición x =
−2,45E−4[m]
El comportamiento de las otras variables es similar a la de la posición, es decir, tienden a su
posición de equilibrio sin importar sus condiciones iniciales. Esto se puede apreciar en las figuras
ubicadas en los anexos. (Ver Anexo A.1 y A.2)
A la Figura 5 se expone el caso particular en el que se parte con el diafragma ubicado en la
posición de equilibrio.
Como se puede observar en la figura 5, al inicio no presenta un comportamiento de equilibrio,
lo cual se le atribuye al valor de la constante del amortiguador, que como ya se mencionó, es el
único parámetro que afecta la estabilidad del sistema. Posteriormente, se mostraran gráficas en
donde se desprecia esta constante.

8
Figura 3: Diagrama Tiempo vs Posicion para Xo < Xequi

Figura 4: Diagrama Tiempo vs Posicion para Xo > Xequi

9
Figura 5: Diagrama Tiempo vs Posicion para Xo = Xequi

Por otro lado, dos de los valores propios λ resultaron ser igual a cero. Esto significa que en algunos
de los diagramas de fase, se debe presentar un comportamiento circular. (Véase las Figuras 32, ?? y
?? en los Anexos A.1, A.2 y ??)
En el caso en el que se parte de una posición mayor a la de equilibrio, uno de los comportamientos
circulares se presenta en la gráfica 6

Figura 6: Diagrama Masa vs Presion para Xo > Xequi

Otro comportamiento particular, en el que se parte de la posición de equilibrio, que se presentó en


las gráficas es de forma lineal, lo cual se debe a que entre los valores propios hallados, se encuentran
tanto positivos como negativos, como se evidencia en la Figura 7:
Como se determinó anteriormente, el único parámetro que puede alterar la estabilidad del sistema,
es la constante C del amortiguador. Por lo cual, se decide anular su valor y ver que el comportamiento,
al partir de la posición de equilibrio, es oscilante al rededor de tal punto, y el estilo circular presenta
mayor definición. Ver Figuras 8 y 9.

10
Figura 7: Diagrama Volumen vs Masa para Xo = Xequi

Figura 8: Diagrama Tiempo vs Posición para Xo = Xequi


yC=0

11
Figura 9: Diagrama Masa vs Presión para Xo = Xequi
yC=0

1.4. Simulaciones con Gas Xenón


También se realizaron las mismas simulaciones para un gas diferente, en este caso, se utilizo Xenón
cuyos parámetros son: R = 63,32J/kg.k, µ = 2,12E − 5P a.s, y T = 273,0K que fueron tomados de [2,
Tabla A-1, Pág. 908]. En la Figura 10 se puede observar que no se aprecia una considerable diferencia
en el comportamiento dinámico, aun cuando la constante del gas R del Xenón es casi 4 veces menor a
las del Aire y su Viscosidad Dinámica µ es el doble.

Figura 10: Diagrama Tiempo vs Posición para Xo = Xequi


y Gas Xenón

Las demás gráficas correspondientes a este gas se pueden encontrar en el Anexo ?? al final del
documento.

12
1.5. Modo de Operación Salto de Presión
Al realizar las simulaciones correspondientes con el modo de operación Salto de Presión, en donde
se usaron los mismo parámetros del Aire utilizados en el análisis en modo de chorro sintentico, se pudo
notar que el comportamiento en general no presenta mayor variación, la única diferencia radica en la
forma y suavidad en las curvas de las gráficas, esto se debe principalmente al tipo de actuación de la
fuerza, en donde su carrera de subida es muy rápida en comparación a su carrera de bajada.
En la Figura 11 se puede apreciar el recorrido del diafragma en este modo de operación partiendo
de una posición semilla por debajo de la posición de equilibrio, y al compararla con la Figura 3 se
notara un comportamiento similar cuya única diferencia es la forma y suavidad de la curva.

Figura 11: Diagrama Tiempo vs Posición para Xo < Xequi


en modo de Salto de Presión

Cabe aclarar que para este modo de operación, la carrera de bajada o retorno es 10 veces la carrera
de subida.
En el Anexo ?? se pueden observar las demás gráficas correspondientes a este modo de operación.

13
2. Caso de estudio 2 - Sistema de Control de Nivel de Llenado
de un Tanque
En este caso, se pide asesorı́a en el diseño preliminar de un sistema de control del nivel de llenado
de un tanque. El sistema hidráulico de llenado del tanque consiste de una entrada del lı́quido de
operación, regulada por una válvula conectada a un servomotor controlado por un circuito eléctrico
como el mostrado en la Figura 12. El sistema de control analizado consta de un circuito RL que regula
el movimiento de una válvula por medio de un servomotor. El circuito de control del servomotor y su
configuración (esquemática) se presentan también en la Figura 12.

Figura 12: Esquema del sistema de control de nivel de llenado de un tanque

2.1. Modelo matemático


Es necesario identificar las variables independientes y dependientes que se deben tener en cuenta
para la modelación matemática, al igual que los parámetros de cada caso,ya que ésto facilitará el enten-
dimiento del problema y será útil cuando se haga la implementación computacional. La determinación
de las variables se plasma en la Cuadro 2

Variable independiente tiempo (t)


Variable dependiente Voltaje de entrada (Vin ), Corriente del circuito (ia ),
Caı́da de voltaje en el Servomotor (VSM ), altura (h), ángulo de apertura (θ),
Caudal de entrada (Qin ), Caudal de salida (QOut )
Parámetros Resistencia del circuito (Ra ), Impedancia del circuito (La ),
Constante del Servomotor (KSM ), Resistencia del servomotor (RSM ),
Voltaje de Desfase (V1 ), Constante de la válvula (Kθ ),
Caudal máximo (QM ax ), Altura máxima (HM ax ),
Altura mı́nima (HM in ), Volumen del Tanque (V ol), Área transversal (A)

Cuadro 2: Variables del caso de estudio 2.

Consideraciones y suposiciones:
El circuito RL presente solo acciona en un solo sentido el giro del servomotor, y por ende el de
la válvula.
La expresión que relaciona la caı́da de voltaje en el servomotor con la velocidad del giro del

14
servomotor y la válvula, es la siguiente:

VSM (t) = KSM
dt

Cuando no pasa corriente a través del servomotor, se permite el retroceso de la válvula hacia la
posición inicial, cortando el caudal de entrada del tanque, mediante un cierre de tipo mecánico.

La velocidad angular negativa de cierre es directamente proporcional al ángulo de giro de la


válvula.
Como modelo inicial, se parte de las siguientes relaciones para solo la apertura (10) y para la
apertura y cierre de la válvula (11), respectivamente:

dθ RSM θ
= ia (1 − )
dt KSM 2π
dθ RSM θ
= ia (1 − ) − Kθ θ
dt KSM 2π
La válvula se considera ideal, es decir, pérdidas. Por otro lado, la relación entre el movimiento
de la válvula y el caudal de flujo a través de la misma es de carácter lineal. De igual manera, se
asume que en el momento en el que se cierra la válvula, se suspende inmediatamente el caudal
de entrada al tanque, es decir, no se consideran tiempos de respuesta ni flujos residuales en la
tuberı́a.
Se asumirá también que el fluido es agua en condiciones estándar.

El tanque del diagrama es de sección transversal circular constante.


El nivel de llenado siempre debe estar dentro de un intervalo de valor máximo HM ax y un valor
mı́nimo HM in
El valor del voltaje de entrada del circuito y su forma de variación en el tiempo se determina
bajo el criterio de los diseñadores, ası́ como también la constante Kθ del resorte.

Datos de entrada del modelo:


El voltaje DC aplicado es de 12V.
La resistencia del circuito (Ra ) es 10 ?.
La inductancia del circuito (La ) es 150H.

Los parámetros del servomotor son: RSM = 0,0045?; y KSM = 0,9V srad−1 .
Máximo caudal posible (QM ax ): 100L/min.
Área transversal del tanque: 0,7m2 .
Volumen total del tanque: 2m3 .

Altura máxima (HM ax ) es: 90 % de la altura total del cilindro.


Altura mı́nima (HM in ) es 10 % de la altura total del cilindro.
Se han determinado valores experimentales del caudal de salida, según la altura del nivel de agua,
presentados en la Cuadro 3.

15
Altura (cm) Caudal (L/min)
0,12 0,4712
0,24 0,6896
0,36 0,8543
0,48 1,0125
0,60 1,1444
0,72 1,4302
0,84 1,4107
0,96 1,5381

Cuadro 3: Datos experimentales de descarga.

Ecuaciones que rigen el modelo:


Ecuación de caı́da de voltaje en el servomotor:


VSM (t) = KSM (13)
dt
Ecuación del voltaje de entrada del circuito:

Vin = V sin(2πωt) + V1 (14)

Ecuación de la variación de corriente del circuito:


di Vin Ra VSM
= − i− (15)
dt La La La

Ecuación de apertura y cierre de la válvula:


dθ RSM θ
= ia (1 − ) − kθ θ (16)
dt KSM 2π

Ecuación del flujo de entrada:


QM ax
Qin = θ (17)

Ecuación del flujo de salida:
QOut = 3,6321 ∗ 10−4 h0,5722 (18)

Ecuación de variación de la altura

dh 1
= (Qin − QM ax ) (19)
dt A
A continuación se explica de dónde salieron las ecuaciones que rigen este modelo:
La ecuación 13 es caracterı́stica del caso de estudio; y la ecuación 16, describe el mecanismo de
apertura y cierre de la válvula, obtenida como punto de partida para la implementación del modelo.
La ecuación 14 se establece de manera senoidal, ya que es necesario que el voltaje varı́e en el tiempo
por cuestiones de practicidad, y de esta manera la apertura de la válvula realizada por el servomotor
varié también en el tiempo, permitiendo el cierre de la misma, ayudando ası́ a controlar de una mejor
manera el nivel de llenado del tanque. Se escogió una función seno de manera arbitraria, ya que tiene
comportamientos conocidos y funciona para lo que se necesita.
Se le suma el valor V1 , para desfasar la función y ası́ no obtener valores de voltaje negativos sino
únicamente valores mayores que cero.
La ecuación 15 surge de aplicar las leyes de Kirchhoff, obteniendo las caı́das de voltaje en cada
componente del circuito de la siguiente manera:
di
Vin = Ra ia + La + VSM
dt

16
di
Despejando de la anterior expresión, se obtiene entonces la ecuación 15, que caracteriza la
dt
variación de la corriente del circuito respecto al tiempo:
di Vin Ra VSM
= − i−
dt La La La
La ecuación 17, relaciona el caudal de entrada, con el caudal máximo y la apertura de la válvula.
Surge de considerar la relación entre la apertura de la válvula y el caudal de flujo como lineal. Es decir,
cuando el ángulo de apertura es 2π, el caudal es máximo, y cuando el ángulo θ = 0, el caudal es cero.

QM ax → 2π; Qi n = θ
QM ax
Qin = θ

La expresión 18 se obtiene con base en el Cuadro 3, en la que se especifican valores experimentales
del caudal de descarga. Cabe aclarar que primero hay que hacer la conversión necesaria en los valores
de dicha tabla para obtener los datos en las unidades requeridas (Cuadro: 4). La función de dicha
descarga se ve en la figura 13

Altura (m) Caudal (m3 /s)


1, 2 ∗ 10− 3 7, 8544 ∗ 10− 6
2, 4 ∗ 10− 3 1, 1493 ∗ 10− 5
3, 6 ∗ 10− 3 1, 423 ∗ 10− 5
4, 8 ∗ 10− 3 1, 6875 ∗ 10− 5
6, 0 ∗ 10− 3 1, 90733 ∗ 10− 5
7, 2 ∗ 10− 3 2, 23367 ∗ 10− 5
8, 4 ∗ 10− 3 2, 3511 ∗ 10− 5
9, 6 ∗ 10− 3 2, 5635 ∗ 10− 5

Cuadro 4: Datos experimentales de descarga en unidades de m3 /s.

Figura 13: Gráfica de los datos experimentales de descarga en m3 /s

Partiendo de la gráfica 13 y utilizando una herramienta de regresión exponencial, se obtiene la


función potencial que caracteriza la descarga del agua según la altura del nivel.

QOut = 3,6321 ∗ 10−4 h0,5722


Finalmente, la expresión 19 caracteriza la variación de la altura respecto al tiempo. Se obtiene a
partir de un balance de masa aplicado al tanque, de la siguiente manera:

17
dm
= m˙in − mout
˙
dt
d(ρV ol))
= ρQin − ρQout
dt
Como el agua en estado liquido se considera incompresible, la densidad es constante.
dV ol dV ol dh
= Qin − Qout ; V ol = Ah; =A
dt dt dt
dh
A = Qin − Qout
dt
dh
Despejando dt :
dh 1
= (Qin − QM ax )
dt A
Para garantizar que el nivel del agua permanezca en los lı́mites establecidos, serı́a lógico cuando el
nivel del agua se encuentre por debajo del mı́nimo, se abra toda la válvula. Y en su caso contrario,
cuando el nivel sea superior al máximo, se cierre la válvula por completo. Esto se hace por medio de
control de sistemas dinámicos asumiendo las siguientes condiciones:

Cuando h < Hmin; ⇒ θ = 2π


Cuando h > Hmax; ⇒θ=0

La forma de implementación de estas condiciones serı́a añadiendo dos entradas de flujo, proveniente de
la entrada original del problema, pero cuyos sistemas de regulación de flujo (válvulas) sean diseñados
para que cumplan dichas condiciones, como se puede encontrar en [4].

2.2. Análisis del modelo


Uno de los parámetros que toco asumir en repetidas ocasiones, hasta encontrar el adecuado, es
la constante de proporcionalidad que relaciona el cierre de la válvula con la velocidad angular de la
misma. EL valor adecuado que presentaba un comportamiento estable fue de

kθ = 10−2 [s−1 ]

Aunque ahı́ que aclarar, que este valor es adecuado para cuando se requiere que el nivel del agua
varié por encima del la altura mı́nima establecida, ya que cuando se cambia por un valor de un orden
menor: kθ = 10−3 [s−1 ], el nivel del agua comienza a variar por debajo de la altura máxima establecida
como se pueden ver en las Figuras 14 y 15, en donde se parte de un nivel del agua semilla por encima
del máximo establecido.
También se decidió cambiar la fuente de alimentación del circuito, con valores pico de 12 y -12
voltios, con el objeto de que el modelo fuera mas dinámico en el tiempo, no llegara a un punto de
estabilidad invariante.

Como ya se considero, el servomotor solo abre la válvula en un solo sentido, por lo que hay que
garantizar que no se presenten valores negativos de voltaje, ası́ se decide ubicar en serie una baterı́a
de 13V, y de esta manera subir la gráfica de voltaje por encima de cero.
Hay que tener en cuenta que cuando la válvula se este cerrando y si se sigue estrictamente el modelo
anteriormente formulado, resultaran valores negativos de voltaje provenientes del servomotor, lo cual
con el signo negativo de la ecuación 15 se concluirı́a que el servomotor estarı́a suministrando energı́a
al circuito, lo que no serı́a coherente con la realidad, Por lo tanto, se debe añadir la siguiente condición:

<= 0; ⇒ VSM = 0
dt

Otro caso particular es cuando θ no varı́e en el tiempo, y por consiguiente dt = 0, entonces se
cumple que VSM = 0

18
Figura 14: Grafica Tiempo vs Nivel para kθ = Figura 15: Grafica Tiempo vs Nivel para kθ =
10−2 10−3

2.3. Simulaciones
Las simulaciones para este modelo matemático se implementaron en FORTRAN 90 usando como
graficador GNUPLOT. En el anexo ?? se encuentra el código fuente .f90 utilizado en este articulo.
Con el modelo matemático ya desarrollado se procede a realizar las correspondientes simulaciones
para los dos casos de operación extremos bajo las siguientes condiciones iniciales: H < Hmin , H >
HM ax , (Ver figuras 14 y 16) con el kθ optimo de 10−2 .

Figura 16: Grafica Tiempo vs Nivel para ho < Hmin con kθ = 10−2

Observando las gráficas temporales de la posición, en los dos casos especiales se puede apreciar que
el modelo esta cumpliendo con su función, ya que para el primer caso, se nota un aumento súbito del
nivel del agua hasta que entra en el rango permitido y se mantiene allı́ a lo largo del tiempo. En el
segundo caso, y en el segundo caso, se evidencia una disminución de la altura del nivel del agua hasta
estar dentro de los rangos permitidos, donde se mantiene en el tiempo.
También se puede observar el efecto que genera la señal AC en el voltaje del circuito (Armadura),
en donde el nivel del agua no permanece constante sino que varı́a de manera periódica entre los valores
lı́mites.

19
Otra relación importante es el comportamiento de la corriente a lo largo del tiempo. Para evidenciar
este fenómeno, se analizó la gráfica de la corriente en función del tiempo (Figura 17), para el caso en
el que H > HM ax , notando que en los tiempos iniciales el valor de la corriente es cero o nula; esto es
coherente con la realidad ya que en los primeros instantes de tiempo, el ángulo θ es cero, y no varı́a
en el tiempo, por lo que el dθ/dt es cero, lo que a su vez hace que la caı́da de voltaje en el servomotor
es nula, y se considera que el circuito se abre. AL momento de que el nivel del agua entra en los
intervalos permitidos, la válvula inicia su comportamiento dinámico y por tanto existe un voltaje en
el servomotor, permitiendo ası́ el paso de la corriente a través del circuito. Este comportamiento se
puede ver en la gráfica en cuestión, ya que se puede observar un aumento en la corriente hasta que
oscila en un determinado rango conforme avanza el tiempo.

Figura 17: Grafica Tiempo Vs Corriente, H > Hmax con kθ = 10−2

Los comportamientos de las otras variables involucradas en el sistema con este valor optimo de kθ
son similares a los del nivel, es decir, se estabilizan en un rango a medida que evolucionan en el tiempo.
Esto se puede observar en los Anexos ?? y ??.
En la figura 15, se puede notar como al cambiar el valor de kθ a 10−3 , pareciera que el comporta-
miento del sistema se invirtiera, pero se debe aclarar que el nivel del agua no excede los valores limites
establecidos. Esta Ïnversión”también se presenta en los demás diagramas temporales y de fases en esta
configuración con el nuevo kθ como se puede ver en el Anexos ?? y ??.
Se decidió también simular con valores de kθ > 0, en donde se obtuvo la Figura 18 para el caso en
donde se inicial de un nivel del agua semilla por encima de Hmax .
Como se puede ver en la Figura ??, el kθ resulta muy grande y fuera de proporción con el resto de
la Expresión 16, permaneciendo la válvula en una sola posición. En el Anexo ?? se pueden apreciar
las demás gráficas de esta configuración.
Al observar el diagrama de fase en la Figura ?? en el Anexo ??, se puede apreciar que la variación
en en el nivel del agua no ocasiona cambios significativos en la corriente; Sin embargo, al acercarse
al nivel máximo de agua cuando entra en estabilidad, la corriente empieza a experimentar variaciones
considerables.

3. Conclusiones Generales
Al realizar este trabajo de investigación se puede concluir que la modelación matemática es
una poderosa herramienta para determinar la influencia de factores importantes en el diseño
de procesos, maquinas, sistemas, mecanismos; ası́ como también para el análisis en el tiempo
de fenómenos presentes en los distintos campos de aplicación de la ingenierı́a, ya que permite
predecir con alta confiabilidad sucesos futuros teniendo en cuenta que no requiere mucho gasto

20
Figura 18: Grafica Tiempo Vs Nivel, H > Hmax con kθ = 102

económico ni se pone en peligro vidas humanas durante los ensayos de los modelos.

Uno de los factores de gran relevancia en los modelos dinámicos que define su buena ejecución
o deficiencia es el paso del tiempo elegido para realizar las simulaciones y los análisis, debido a
que si estos pasos son muy grandes, las derivadas con respecto al tiempo tienden a infinito; en
caso contrario, si el paso del tiempo es demasiado pequeño, la ejecución de la simulación tardarı́a
demasiado en lograrse y el modelo se volverı́a ineficiente, además de que los costos relacionados
a la herramienta computacional serı́an exageradamente altos.

Referencias
[1] Duncan A. Lockerby, Carlos A. Duque-Daza, Matthew K. Borg y Jason M. Reese,
Time-step coupling for hybrid simulations of multiscale flows, Journal of Computational Physics,
December, 2012.
[2] CENGEL Yunes y BOLES Michael, Termodinámica Técnica, Séptima edición, McGraw-Hill,
Mexico, DF, 2012.

[3] GIANCOLI, C Douglas, FÍSICA. Principios con Aplicaciones, Sexta edición, PEARSON EDU-
CATION, México, DF, 2006.
[4] Mantilla E. L. Carlos, Control de Nivel para un Sistema de tres Tanques, Diseño y Evaluación
de Estrategias, Facultad de Ingenierı́as Fı́sico-Mecánicas, Universidad Industrial de Santander,
Bucaramanga, 2005.

21
Appendices
A. Diagramas Temporales y de Fase en Chorro Sintético para
Aire
A.1. Cuando la posición semilla es menor a la posición de equilibrio

Figura 19: Figura 20:

Figura 21: Figura 22:

22
Figura 23: Figura 24:

Figura 25: Figura 26:

Figura 27: Figura 28:

23
Figura 29: Figura 30:

Figura 31: Figura 32:

24
A.2. Cuando la posición semilla es mayor a la posición de equilibrio

Figura 33: Figura 34:

Figura 35: Figura 36:

25
Figura 37: Figura 38:

Figura 39: Figura 40:

Figura 41: Figura 42:

26
Figura 43: Figura 44:

Figura 45: Figura 46:

27
A.3. Cuando la posición semilla es igual a la posición de equilibrio

Figura 47: Figura 48:

Figura 49: Figura 50:

28
Figura 51: Figura 52:

Figura 53: Figura 54:

Figura 55: Figura 56:

29
Figura 57: Figura 58:

Figura 59: Figura 60:

30
B. Diagramas Temporales en Chorro Sintético para Xenón
con posición semilla igual a posición de equilibrio

Figura 61: Figura 62:

Figura 63: Figura 64:

31
C. Diagramas Temporales y de Fase en Salto de Presión para
Aire con posición semilla menor a la posición de equilibrio

Figura 65: Figura 66:

Figura 67: Figura 68:

32
Figura 69: Figura 70:

Figura 71: Figura 72:

Figura 73: Figura 74:

33
Figura 75: Figura 76:

Figura 77: Figura 78:

34
D. Gráficas Temporales y de Fase para el Sistema de Control
de Llenado de un Tanque cuando ho < Hmin y kθ = 10−2

Figura 79: Figura 80:

Figura 81: Figura 82:

35
Figura 83: Figura 84:

36
E. Gráficas Temporales y de Fase para el Sistema de Control
de Llenado de un Tanque cuando ho > Hmax y kθ = 10−2

Figura 85: Figura 86:

Figura 87: Figura 88:

37
Figura 89: Figura 90:

38
F. Gráficas Temporales y de Fase para el Sistema de Control
de Llenado de un Tanque cuando ho < Hmin y kθ = 10−3

Figura 91: Figura 92:

Figura 93: Figura 94:

39
Figura 95: Figura 96:

40
G. Gráficas Temporales y de Fase para el Sistema de Control
de Llenado de un Tanque cuando ho > Hmax y kθ = 10−3

Figura 97: Figura 98:

Figura 99: Figura 100:

41
Figura 101: Figura 102:

42
H. Gráficas Temporales y de Fase para el Sistema de Control
de Llenado de un Tanque cuando ho > Hmax y kθ = 10+2

Figura 103: Figura 104:

Figura 105: Figura 106:

43
Figura 107: Figura 108:

44
I. Código Fuente .f90 para un Acuatador de Micro-Chorro
module derivadas

implicit none

real*8, parameter :: pi=4.0D0*atan(1.0D0)

contains

!Funcion dx/dt
real*8 function dx(A)
real*8, DIMENSION(5) :: A

dx=A(2)

end function dx

!Fuerza oscilante
real*8 function Ft(F, ome, t, n)
real*8 :: F, ome, t
integer :: n, i

if (n==1) then
Ft=F*sin(2.0D0*pi*ome*t)

else if (n==0) then


i=floor(t/2.2D0)
if ((t-i*2.2D0) <= 0.2D0) then
Ft=(F/0.2D0)*(t-i*2.2D0)
else if ((t-i*2.2D0) > 0.2D0) then
Ft=(F/2.0D0)*(2.2D0-(t-i*2.2D0))
endif
endif
end function Ft

!Fuerza del gas


real*8 function Fg(A, Pext, d1, d2)
real*8, DIMENSION(5) :: A
real*8 :: Pext, d1, d2

Fg=(A(5)-Pext)*d1*d2

end function

!Fuerza del Resorte


real*8 function Fre(A, Kr)
real*8, DIMENSION(5) :: A
real*8 :: Kr

Fre=Kr*A(1)+0.05D0*Kr*(A(1)**2)

end function Fre

!Fuerza del Amortiguador


real*8 function Fam(A, Cam)
real*8, DIMENSION(5) :: A

45
real*8 :: Cam

Fam=Cam*A(2)+0.05D0*Cam*(A(2)**2)

end function Fam

!Peso del Diafragma


real*8 function peso(md, g)
real*8 :: md, g

peso=md*g

end function peso

!Funcion dy/dt
real*8 function dy(Ft,Fg,Fre,Fam,Peso,md)
real*8 :: Ft, Fg, Fre, Fam, Peso, md

dy=(1.0D0/md)*(Ft-Fg-Fre-Fam-peso)

end function dy

!Funcion dv/dt
real*8 function dv(d1,d2,A)
real*8, DIMENSION(5) :: A
real*8 :: d1, d2

dv=-(d1*d2)*A(2)

end function dv

!Funcion dm/dt
real*8 function dm(q,Pext,A)
real*8, DIMENSION(5) :: A
real*8 :: q, Pext

dm=(A(4)/A(3))*q*(Pext-A(5))

end function dm

!Funcion dp/dtr
real*8 function dp(R,T,dm,A,dv)
real*8, DIMENSION(5) :: A
real*8 :: q, R, T, dm, dv

dp=(1/A(3))*((R*T*dm)-(A(5)*dv))

end function dp

end module derivadas

!-----------------------------------------------------------------------------------------------

program microchorro
use derivadas
implicit none

46
real*8, DIMENSION(5) :: xt, x

real*8 :: d1, d2, Ho, L, W, fa, fb !Parametros Dimensionales del Plenum


real*8 :: R, Temp, miu !Parametros del Gas
real*8 :: Kr, Cam, Pext, md, g !Parametros del Sistema
real*8 :: F, ome !Parametros de la Fuerza Oscilante
real*8 :: dt, tf, t !Parametros Temporales
real*8 :: Ab, Pb, Rh, q, Rk !Parametros del Modelo
real*8 :: vo, po, mo, xo, to !Condiciones Inciales
integer :: i, pasos, j, n !Contadores

real*8 :: x1, x2, x3, x4


real*8 :: y1, y2, y3, y4
real*8 :: v1, v2, v3, v4
real*8 :: m1, m2, m3, m4
real*8 :: p1, p2, p3, p4

real*8, parameter :: FR = 1.0D0/6.0D0

open(unit=35, file=’datosEntrada.txt’, status=’unknown’)

read(35,*), n

read(35,*), W, fa, fb, Ho, L

read(35,*), R, Temp, miu, Pext, po, xo

read(35,*), md, Kr, Cam, g

read(35,*), F, ome

read(35,*), tf, dt

d1 = W*fa !Calculo de ancho de la camara plenum


d2 = W*fb !Calculo de profundidad de la camara plenum

Ab=d2*W !Area de la Boquilla


Pb=(2.0D0*d2)+(2.0D0*W) !Perimetro Boquilla
Rh=Ab/Pb !Radio Hidraulico
q=((Rh**4.0D0)*pi)/(8.0D0*L*miu) !Factor de Masa

!Condiciones Iniciales
vo=(d1*d2)*Ho !Volumen Incial
po=Pext !Presion Incial
mo=(po*vo)/(R*Temp); !Masa Incial
t=0.0D0

!Valores Inciales al Vector x


x(1)=-1.0D0*xo
x(2)=0.0D0
x(3)=vo
x(4)=mo
x(5)=po

47
print*, x

xt=x

open(unit=99,file=’resultados.dat’,status=’unknown’)

write(99,709) t, (x(j), j= 1 , 5), Ft(F,ome,t,n)

pasos=floor(tf/dt)

do i= 1, pasos

x1=dt*dx(xt)
y1=dt*dy(Ft(F,ome,t,n),Fg(xt,Pext,d1,d2),Fre(xt,Kr),Fam(xt,Cam),peso(md,g),md)
v1=dt*dv(d1,d2,xt)
m1=dt*dm(q,Pext,xt)
p1=dt*dp(R,Temp,dm(q,Pext,xt),xt,dv(d1,d2,xt))

t=t+(0.5D0*dt)

xt(1)=x(1)+0.5D0*x1
xt(2)=x(2)+0.5D0*y1
xt(3)=x(3)+0.5D0*v1
xt(4)=x(4)+0.5D0*m1
xt(5)=x(5)+0.5D0*p1

x2=dt*dx(xt)
y2=dt*dy(Ft(F,ome,t,n),Fg(xt,Pext,d1,d2),Fre(xt,Kr),Fam(xt,Cam),peso(md,g),md)
v2=dt*dv(d1,d2,xt)
m2=dt*dm(q,Pext,xt)
p2=dt*dp(R,Temp,dm(q,Pext,xt),xt,dv(d1,d2,xt))

xt(1)=x(1)+0.5D0*x2
xt(2)=x(2)+0.5D0*y2
xt(3)=x(3)+0.5D0*v2
xt(4)=x(4)+0.5D0*m2
xt(5)=x(5)+0.5D0*p2

x3=dt*dx(xt)
y3=dt*dy(Ft(F,ome,t,n),Fg(xt,Pext,d1,d2),Fre(xt,Kr),Fam(xt,Cam),peso(md,g),md)
v3=dt*dv(d1,d2,xt)
m3=dt*dm(q,Pext,xt)
p3=dt*dp(R,Temp,dm(q,Pext,xt),xt,dv(d1,d2,xt))

xt(1)=x(1)+x3
xt(2)=x(2)+y3
xt(3)=x(3)+v3
xt(4)=x(4)+m3
xt(5)=x(5)+p3

t=t+(dt*0.5D0)

x4=dt*dx(xt)
y4=dt*dy(Ft(F,ome,t,n),Fg(xt,Pext,d1,d2),Fre(xt,Kr),Fam(xt,Cam),peso(md,g),md)
v4=dt*dv(d1,d2,xt)

48
m4=dt*dm(q,Pext,xt)
p4=dt*dp(R,Temp,dm(q,Pext,xt),xt,dv(d1,d2,xt))

x(1)=x(1)+FR*(x1+2*x2+2*x3+x4)
x(2)=x(2)+FR*(y1+2*y2+2*y3+y4)
x(3)=x(3)+FR*(v1+2*v2+2*v3+v4)
x(4)=x(4)+FR*(m1+2*m2+2*m3+m4)
x(5)=x(5)+FR*(p1+2*p2+2*p3+p4)

xt=x

write(99,709) t, (x(j), j=1,5), Ft(F,ome,t,n)

enddo

close(99)
709 format(7(ES16.9,2X))
end program microchorro

49
J. Código Fuente .f90 para un Sistema de Control de Llenado
de un Tanque
module nivel

implicit none

real*8, parameter :: pi=4.0D0*atan(1.0D0)

contains

real*8 function Qin(teta,Qmax)


real*8 :: Qmax, teta

Qin=(Qmax/(2.0D0*pi))*teta

end function Qin

real*8 function Qout(xt)


real*8, DIMENSION(3) :: xt

Qout=3.63211D-4*(xt(2)**(0.57222376))

end function Qout

real*8 function Vin(t,ome,v,v1)


real*8 :: t, ome, v, v1

Vin=v*sin(ome*t)+v1

end function Vin

real*8 function di(vin,xt,Ra,La,Vsm)


real*8, DIMENSION(3) :: xt
real*8 vin, Ra, La, Vsm

di=(1.0D0/La)*(vin-(xt(1)*Ra)-Vsm)

end function di

real*8 function Vsm(Ksm,dteta)


real*8 :: Ksm, dteta

if (dteta > 0.0D0) then


Vsm=Ksm*dteta

else
Vsm=0.0D0

endif
end function Vsm

50
real*8 function dteta(Rsm, Ksm, xt, ko, teta)
real*8, DIMENSION(3) :: xt
real*8 :: Rsm, Ksm, ko, teta

dteta=(Rsm/Ksm)*xt(1)*(1.0D0-(teta/(2.0D0*pi)))-(Ko*teta)

end function dteta

real*8 function dh(Qin, Qout, A)


real*8 :: Qin, Qout, A

dh=(1.0D0/A)*(Qin-Qout)

end function dh

real*8 function teta(Hmax, Hmin, xt)


real*8, DIMENSION(3) :: xt
real*8 :: Hmax, Hmin

if (xt(2) > Hmax) then


teta = 0.0D0

else if (xt(2) < Hmin) then


teta= 2.0D0*pi

else
teta=((2.0D0*pi)/(Hmin-Hmax))*(xt(2)-Hmax)

endif
end function teta

end module nivel

!-----------------------------------------------------------------------------------

program ControlNivel
use nivel
implicit none

real*8, DIMENSION(3) :: x, xt

real*8 :: Ho !Nivel Incial


real*8 :: v, ome, v1 !Parametros del Voltaje
real*8 :: Ra, La !Parametros del Circuito
real*8 :: Rsm, Ksm, ko !Parametros del Servomotor
real*8 :: Hmax, Hmin, A, Vtotal, Qlmax, Qmax !Parametros del Tanque
integer :: i, j, pasos !Contadores
real*8 :: dt, tf, t !Parametros de Tiempo

real*8 :: i1, i2, i3, i4


real*8 :: h1, h2, h3, h4
real*8 :: t1, t2, t3, t4

51
real*8 :: FR = 1.0D0/6.0D0

open(20, file=’datosNivel.txt’, status=’unknown’)

read(20,*), Ho
read(20,*), v, ome, v1
read(20,*), Ra, La
read(20,*), Rsm, Ksm, ko
read(20,*), Qlmax, A, Vtotal
read(20,*), tf, dt

Hmax=(Vtotal/A)*0.9D0
Hmin=(Vtotal/A)*0.7D0
Qmax=(Qlmax/6.0D4)

print*, ’H =’, Vtotal/A


print*, ’Hmax =’, Hmax
print*, ’Hmin =’, Hmin

x(1)=0.0D0
x(2)=Ho
x(3)=0.0D0

xt=x

t=0

pasos=floor(tf/dt)

open(unit=99, file=’resultadosNivel.dat’, status=’unknown’)

write(99,709) t, (x(i), i=1,3), Qin(teta(Hmax,Hmin,xt),Qmax), Qout(xt), Vin(t,ome,v,v1)

do j = 1, pasos

if (xt(2) > Hmax) then

x(3)=0.0D0
xt(3)=x(3)

h1=dt*dh(Qin(xt(3),Qmax),Qout(xt), A)

t=t+0.5D0*dt
xt(2)=x(2)+0.5D0*h1

h2=dt*dh(Qin(xt(3),Qmax),Qout(xt), A)

xt(2)=x(2)+0.5D0*h2

h3=dt*dh(Qin(xt(3),Qmax),Qout(xt), A)

xt(2)=x(2)+h3
t=t+0.5D0*dt

52
h4=dt*dh(Qin(xt(3),Qmax),Qout(xt), A)

x(2)=x(2)+FR*(h1+2.0D0*h2+2.0D0*h3+h4)

write(99,709) t, (x(i), i=1,3), Qin(xt(3),Qmax), Qout(xt), Vin(t,ome,v,v1)

else if (xt(2) < Hmin) then

x(3)=2.0D0*pi
xt(3)=x(3)

h1=dt*dh(Qin(xt(3),Qmax),Qout(xt), A)

t=t+0.5D0*dt
xt(2)=x(2)+0.5D0*h1

h2=dt*dh(Qin(xt(3),Qmax),Qout(xt), A)

xt(2)=x(2)+0.5D0*h2

h3=dt*dh(Qin(xt(3),Qmax),Qout(xt), A)

xt(2)=x(2)+h3
t=t+0.5D0*dt

h4=dt*dh(Qin(xt(3),Qmax),Qout(xt), A)

x(2)=x(2)+FR*(h1+2.0D0*h2+2.0D0*h3+h4)

write(99,709) t, (x(i), i=1,3), Qin(xt(3),Qmax), Qout(xt), Vin(t,ome,v,v1)

else

i1=dt*di(Vin(t,ome,v,v1),xt,Ra,La,Vsm(Ksm,dteta(Rsm,Ksm,xt,ko,xt(3))))
h1=dt*dh(Qin(xt(3),Qmax),Qout(xt), A)
t1=dt*dteta(Rsm,Ksm,xt,ko,xt(3))

t=t+0.5D0*dt

xt(1)=x(1)+0.5D0*i1
xt(2)=x(2)+0.5D0*h1
xt(3)=x(3)+0.5D0*t1

i2=dt*di(Vin(t,ome,v,v1),xt,Ra,La,Vsm(Ksm,dteta(Rsm,Ksm,xt,ko,xt(3))))
h2=dt*dh(Qin(xt(3),Qmax),Qout(xt), A)
t2=dt*dteta(Rsm,Ksm,xt,ko,xt(3))

xt(1)=x(1)+0.5D0*i2
xt(2)=x(2)+0.5D0*h2
xt(3)=x(3)+0.5D0*t2

i3=dt*di(Vin(t,ome,v,v1),xt,Ra,La,Vsm(Ksm,dteta(Rsm,Ksm,xt,ko,xt(3))))
h3=dt*dh(Qin(xt(3),Qmax),Qout(xt), A)
t3=dt*dteta(Rsm,Ksm,xt,ko,xt(3))

53
t=t+0.5D0*dt

xt(1)=x(1)+i3
xt(2)=x(2)+h3
xt(3)=x(3)+t3

i4=dt*di(Vin(t,ome,v,v1),xt,Ra,La,Vsm(Ksm,dteta(Rsm,Ksm,xt,ko,xt(3))))
h4=dt*dh(Qin(xt(3),Qmax),Qout(xt), A)
t4=dt*dteta(Rsm,Ksm,xt,ko,xt(3))

x(1)=x(1)+FR*(i1+2.0D0*i2+2.0D0*i3+i4)
x(2)=x(2)+FR*(h1+2.0D0*h2+2.0D0*h3+h4)
x(3)=x(3)+FR*(t1+2.0D0*t2+2.0D0*t3+h4)

write(99,709) t, (x(i), i=1,3), Qin(teta(Hmax,Hmin,xt),Qmax), Qout(xt), Vin(t,ome,v,v1)


endif

enddo

close(99)
709 format(7(ES16.9,2X))
end program ControlNivel

54

También podría gustarte