Está en la página 1de 22

Máster Universitario en Ingenierı́a Informática

Métodos de simulación y modelado

Trabajo práctico

Romolo Rosario Caponera De Cobellis

DNI: 7164217B

Centro asociado: UNED Málaga

Diciembre de 2021
Índice
1. Ejercicio 1 2
1.1. ¿Qué analogı́as pueden establecerse entre el modelado basado en diagramas de bloques
y el paradigma de la simulación analógica? . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2. ¿Qué es el paradigma de modelado fı́sico? ¿Qué tipo de modelos matemáticos se obtienen
de aplicar el paradigma del modelado fı́sico? . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3. ¿Qué diferencias hay entre el paradigma de la simulación analógica y el paradigma del
modelado fı́sico? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.4. Observe la Figura y comente su contenido basándose en el artı́culo. . . . . . . . . . . . . 2

2. Ejercicio 2 3

3. Ejercicio 3 11
3.1. Modelo atómico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2. Modelo compuesto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

4. Ejercicio 4 19

1
1. Ejercicio 1
1.1. ¿Qué analogı́as pueden establecerse entre el modelado basado en dia-
gramas de bloques y el paradigma de la simulación analógica?
Históricamente tiene mucho sentido que los primeros softwares de modelado de sistemas estuvie-
ran basados en bloques. Anteriormente a la aparición del modelado por ordenador, la simulación se
realizaba a través de componentes electrónicos que, a su vez, estaban simulando componentes fı́sicos
de un sistema. Durante la transición a la simulación informática, la manera más intuitiva de hacerlo
era simulando precisamente estos componentes electrónicos (en lugar de los propios componentes del
sistema), ya que esto no requiere en modificar el paradigma de simulación con el que estaban acostum-
brados a trabajar cientı́ficos e ingenieros de la época. En cierto modo, el software era un “simulador de
simuladores”: al igual que los componentes electrónicos simulaban el sistema, el ordenador simulaba los
componentes electrónicos y por ende, el sistema. Esto suponı́a, sin embargo, las mismas limitaciones
que la simulación analógica basada en componentes electrónicos, de entre las que destaca la necesidad
de que los sistemas estuvieran compuestos únicamente por ODEs, no permitiéndose la simulación de
sistemas DAE ni PDE.

1.2. ¿Qué es el paradigma de modelado fı́sico? ¿Qué tipo de modelos ma-


temáticos se obtienen de aplicar el paradigma del modelado fı́sico?
El modelado fı́sico se basa en un principio fundamental de la fı́sica: subdividir un gran sistema
complejo de estudiar y analizar, en varios sistemas más pequeños y simples cuyo comportamiento
sea fácil de predecir (y, en este caso, modelar), para posteriormente unirlos y formar un modelo
del sistema completo. Cuando estos sub-sistemas, descritos cada uno con sus propios conjuntos de
ecuaciones, se conectan entre sı́, se crean nuevas restricciones entre variables de entrada y de salida de
los componentes, lo que intuitivamente conlleva la construcción de un sistema DAE para el modelado
del sistema.

1.3. ¿Qué diferencias hay entre el paradigma de la simulación analógica y


el paradigma del modelado fı́sico?
La principal diferencia reside en la idea básica de ambos paradigmas: En la simulación analógica se
toma un sistema, se describen sus ecuaciones, y se construye un dispositivo mecánico que cumpla con
estas ecuaciones (es decir, en cierto modo se está construyendo una versión simplificada del sistema);
mientras que en el modelado fı́sico se simula el sistema basándose en sus ecuaciones, sin necesidad de
construir ningún otro dispositivo, sino programando un modelo. Al igual que la simulación analógica,
el modelado fı́sico también intenta simplificar el modelo, pero lo hace de manera diferente: dividiendo
el problema en pequeños sub-problemas que sean fáciles de manejar, y a continuación uniéndolos.
En la implementación de los paradigmas, esto supone una gran ventaja del modelado fı́sico respecto
al analógico: los componentes pueden ser creados y compartidos fácilmente; y pequeños cambios que
puedan modificar mucho el sistema de ecuaciones del modelo son fácilmente subsanables en los modelos
fı́sicos, pero no tanto en la simulación analógica.

1.4. Observe la Figura y comente su contenido basándose en el artı́culo.


En la figura se muestra cómo han evolucionado las técnicas de simulación y modelado entre los
años 1930 y el 2000. Se ilustra cómo anteriormente la década de 1960, la simulación se realizaba de
manera analógica, utilizando componentes electrónicos que simularan el sistema. Posteriormente a esta
fecha, la simulación empezó a transicionar hacia la digitalización. Se desarrolló un estándar para los
lenguajes de modelado, CSSL, que contaba con más de 23 simuladores a finales de la década. Este
estándar se centraba en la simulación de sistemas de propósito general, basándose principalmente en
sistemas ODE, o en la descripción causal del sistema. Sin embargo también se desarrollaron programas
de simulación de propósito especı́fico, como SPICE para el dominio electrónico, que reducen mucho la
complejidad inherente al uso de programas de modelado especı́fico, aunque con la evidente limitación
de ser utilizables únicamente en un domino. A mediados de la década de los 70 aparece ACSL, un
programa basado en CSSL que introducı́a algunas novedades y muchas mejoras, y que se considera el

2
predecesor del lenguaje FORTRAN.
A partir de los años 80, cuando la tecnologı́a empieza a permitirlo, surgen programas de simulación con
interfaz gráfica, lo que permite basar el modelado en diagramas de bloques. Esto resulta muy cómodo e
intuitivo en comparación con el modelado textual, si bien internamente los bloques utilizaban este tipo
de modelado para definir su comportamiento. Este tipo de programas permitı́a continuar con el mismo
paradigma analógico, aunque digitalizado; es decir, continuar utilizando una versión digitalizada de
los mismos componentes electrónicos que se utilizaban con anterioridad a la década de los años 30.
Sin embargo pronto se dieron cuenta de que este paradigma contaba con muchas limitaciones, y que
era necesario un cambio, y hallaron en el modelado fı́sico la respuesta. Desde finales de los años 80
han ido surgiendo muchos programas diferentes e independientes basados en el modelado fı́sico y en
la programación orientada a objetos. De entre estos destaca Dymola. Estos programas permitı́an la
simulación de sistemas DAE, y lo permitı́an sin necesidad de explicitar la causalidad del modelo (es
decir, eran acausales), lo cual supone una gran ventaja. Si se querı́a realizar un cambio de paradigma
a nivel global, sin embargo, era necesario unificar de algún modo la enorme cantidad de programas y
lenguajes diferentes que se encontraban disponibles, para permitir, entre otras cosas, que los compo-
nentes desarrollados con una herramienta fueran transferibles y reutilizables en otra, incrementando
significativamente la calidad de los modelos desarrollados en general, y facilitando mucho esta tediosa
labor, puesto que podı́an encontrarse modelos preexistentes que ya implementaran el comportamiento
necesitado. Con esta finalidad surge MODELICA, un lenguaje que pretende estandarizar el desarrollo
de modelos de propósito general, basado en el modelado fı́sico la programación orientada a objetos
que, aún a dı́a de hoy, sigue vigente como el estándar de modelado a nivel internacional.

2. Ejercicio 2
El primer paso para modelar el sistema será establecer las ecuaciones que definen el comportamiento
del mismo, que pueden verse a continuación:
( √
K · h − h1 , si a1 = 1 y h ≥ h1
Fout,1 = (1)
0, en otro caso
( √
K · h − h2 , si a2 = 1 y h ≥ h2
Fout,2 = (2)
0, en otro caso
(
1 si sin( Tπ t) < 0
a1 = (3)
0 en otro caso
a2 = 1 − a2 (4)
Fin = B · min(20, max(u, 0)) (5)
e = hsp − h (6)
∂i
=e (7)
∂t
I
u = Kp · e + (8)
Ki
∂h Fin − Fout,1 − Fout,2
= (9)
∂t A


 5 si t ≤ 60
3 + 1 si 60 < t ≤ 120

hsp = 30 (10)
1


 5 − 30 si 120 < t ≤ 180
5 si t > 180

Donde se mantiene la misma nomenclatura que la utilizada en el enunciado del problema, exceptuando
av,1 y av,2 que se han renombrado a a1 y a2 , respectivamente. Nótese que, basándose en la gráfica de
hsp , se ha construido una función por partes que produzca esos mismos valores. Nótese también que

3
las ecuaciones (1) y (2) pueden reescribirse como:
p
Fout,1 = K · max(h − h1 , 0) · a1 (11)
p
Fout,2 = K · max(h − h2 , 0) · a2 (12)

de manera que se obtengan ecuaciones equivalentes pero no divididas en subcasos,de modo que el
conjunto de ecuaciones final que modelan el sistema es:
p
Fout,1 = K · max(h − h1 , 0) · a1 (13)
p
Fout,2 = K · max(h − h2 , 0) · a2 (14)
(
π
1 si sin( T t) < 0
a1 = (15)
0 en otro caso
a2 = 1 − a2 (16)
Fin = B · min(20, max(u, 0)) (17)
e = hsp − h (18)
∂i
=e (19)
∂t
I
u = Kp · e + (20)
Ki
∂h Fin − Fout,1 − Fout,2
= (21)
∂t A


 5 si t ≤ 60
3 + 1 si 60 < t ≤ 120

hsp = 30 (22)
5 − 301

 si 120 < t ≤ 180
5 si t > 180

Podemos ver cómo en el sistema de ecuaciones del modelo aparecen una serie de parámetros y cons-
tantes, cuyo valor y unidades se muestran en la Tabla 1.

Variable Nombre Valor Unidades


Área de la sección del depósito A 2 m2
Periodo de activación de las válvulas T 30 s
Altura de la primera válvula h1 4 m
Altura de la segunda válvula h2 1.5 m
m2
Parámetro de las tuberı́as K 0.5 s
V
Parámtro proporcional del controlador PI Kp 5 m
m·s
Parámetro integral del controlador PI Ki 10 V
m3
Caudal producido por la bomba por unidad de tensión B 0.3 s·V

Cuadro 1: Parámetros y constantes del modelo

Una vez definido el modelo, se intenta construir la matriz BLT para comprobar si el problema
es estructuralmente singular. Se asume, inicialmente, que todas las variables que aparecen derivadas
(esto es, h e i) son variables de estado, y se sustituyen por tanto por las variables mudas derh y deri.
A continuación se muestra la matriz BLT que es posible construir, si bien existen otras ordenaciones
igualmente válidas. Se rodea con un cuadrado aquella variable que se calcula de la ecuación correspon-
diente.

4
a1 a2 hsp Fout,2 Fout,1 e u Fin derh deri
 
(15) X 0 0 0 0 0 0 0 0 0
(16)  0 X 0 0 0 0 0 0 0 0
 

 
(22) 
 0 0 X 0 0 0 0 0 0 0 

(14)  0 X 0 X 0 0 0 0 0 0
 

 
(13) 
 X 0 0 0 X 0 0 0 0 0 

(18) 
 0 0 0 0 0 X 0 0 0 0 

 
(20) 
 0 0 0 0 0 X X 0 0 0 

(17) 
 0 0 0 0 0 0 X X 0 0 

 
(21)  0 0 0 X X 0 0 X X 0 
(19) 0 0 0 0 0 X 0 0 0 X
Quedando por tanto la causalidad computacional asignada de la siguiente manera:

(
1 si sin( Tπ t)
a1 = (23)
0 en otro caso
a2 = 1 − a (24)


 5 si t ≤ 60
3 + 1 si 60 < t ≤ 120

hsp = 30 (25)
1


 5 − 30 si 120 < t ≤ 180
5 si t > 180

p
Fout,2 = K · max(h − h2 , 0) · a2 (26)
p
Fout,1 = K · max(h − h1 , 0) · a1 (27)
e = hsp − h (28)
I
u = Kp · e + (29)
Ki
Fin = B · min(20, max(u, 0)) (30)
Fin − Fout,1 − Fout,2
derh = (31)
A
deri = e (32)

Se puede ver que no se trata de un problema de ı́ndice superior, y que por tanto no será necesario,
sino que podrá resolverse con las ecuaciones proporcionadas. Además, y puesto que se han considerado
dos variables de estado, el sistema tiene dos grados de libertad, pudiéndose elegir libremente los valores
iniciales de i y h (viniendo este último determinado por el enunciado como 0.5m).
El algoritmo que debe ser implementado entonces, para simular este sistema, sigue el diagrama de flujo
que se muestra en la Figura 1.

En el diagrama se muestra cómo se ha seleccionado un paso de integración de 0.1 segundos. Este


paso ha sido elegido por ofrecer una buena precisión, tratándose de un sistema que no requiere una
especial granularidad a la hora de ser simulado; a la vez que ofrece un buen rendimiento, pues pasos de
integración más pequeños, como 0.01, requerı́an un largo tiempo de ejecución y ofrecı́an un resultado
muy similar.
Adjunto a esta memoria se encuentra el código en R que simula este mismo sistema, que puede verse
también en la Figura 2; obteniéndose como resultado de su ejecución las gráficas mostradas en las
Figuras 3 - 9

5
Inicio

∆t = 0,1

t=0

A=2
T = 30
h1 = 4
h2 = 1,5
K = 0,5
B = 0,3
Kp = 5
Ki = 10

h(0) = 0,5
i(0) = 0

(
1 si sin( Tπ t) < 0
a1 =
0 en otro caso
a2 = 1 − a


5 si t ≤ 60
3 + 1 si 60 < t ≤ 120

hsp = 30
1
5 − 30

 si 120 < t ≤ 180
5 si t > 180

t = t + ∆t
p
Fout,2 = K · max(h − h2 , 0) · a2
p
Fout,1 = K · max(h − h1 , 0) · a1
e = hsp − h
I
u = Kp · e +
Ki
Fin = B · min(20, max(u, 0))
Fin − Fout,1 − Fout,2
derh =
A
deri = e

h(t+∆t) = h(t) + ∆t · derh


t > 240 Fin
i(t + ∆t) = i(t) + ∆i · deri No Sı́

Figura 1: Diagrama de flujo del sistema modelado


6
Figura 2: Código R para la simulación del sistema

7
Figura 3: Graficado de la altura de agua en el depósito

Figura 4: Graficado de la consigna de altura de agua en el depósito

8
Figura 5: Graficado del flujo de agua entrante

Figura 6: Graficado del flujo de agua saliente por la primera tuberı́a

9
Figura 7: Graficado del flujo de agua saliente por la segunda tuberı́a

Figura 8: Graficado de la activación del paso de lı́qudo por la primera tuberı́a

10
Figura 9: Graficado de la activación del paso de lı́qudo por la segunda tuberı́a

3. Ejercicio 3
3.1. Modelo atómico
El desarrollo del modelo atómico se ha realizado aplicando las mismas ecuaciones mostradas en el
Ejercicio 2. Junto a esta memoria, se adjunta el código fuente del modelo, que también puede verse en
la Figura 10. Las variables y parámetros se han definido utilizando, en la medida de lo posible, las
unidades del Sistema Internacional ofrecidas por la librerı́a de Modelica.Units.SI; y se ha añadido a
cada una de ellas una descripción que facilite la legibilidad y usabilidad del modelo. Las ecuaciones no
están dispuestas en ningún orden en particular. Se muestran las salidas de este modelo en las Figuras
17 - 22, utilizando el algoritmo de simulación DASSL con una tolerancia de 1e-4 durante un periodo
de 240s. El modelo presenta Chattering, debido a que habrá momentos en que el lı́mite del agua oscile
en un pequeño entorno de la altura de la válvula, cambiando constantemente entre que haya o no flujo
a través de la misma. Puede verse en la Figura 11 cómo la cantidad de evaluaciones de la crossing
function es elevadı́sima, varios órdenes de magnitud por encima de los producidos por el método de
Euler. Un sı́ntoma de esto es que la ejecución con DASSL consume una gran cantidad de tiempo y
recursos. Es por ello que el método de integración explı́cito de Euler, si bien menos preciso, resulta
más efectivo en este modelo concreto. Se verá en el apartado 3.2 cómo, con un modelo compuesto, esto
no es ası́. Este error puede solucionarse reescribiendo las ecuaciones (1) y (2) como (11) y (12), tal
y como se ha detallado en la primera sección del Ejercicio 2. Se muestra en las Figuras 12 y 13 el
código modificado con este cambio, y la mejora de rendimiento que supone.

3.2. Modelo compuesto


Para este modelo se han creado dos paquetes, que pueden verse en la Figura 14, y que a su vez
están englobados dentro de otro paquete que es el que compone la librerı́a completa. Dentro de este
último paquete encontramos también el modelo Ejercicio3, que aprovecha el resto de componentes
definidos en la librerı́a para modelar el sistema en cuestión. En esta ocasión, debido a su extensión,

11
Figura 10: Código Modelica para la simulación del sistema en un modelo atómico

Figura 11: Estadı́sticas de la simulación del modelo atómico, donde se muestra un gran número de
evaluaciones de la crossing function

12
Figura 12: Código del modelo atómico reescrito para reducir el chattering

Figura 13: Estadı́sticas de rendimiento del modelo tras la reescritura de las ecuaciones correspondientes
a Fin yFout

13
Figura 14: Estructura de paquetes de la librerı́a Ejercicio 3

no se muestra el código completo de la librerı́a en la memoria, si bien adjunto a la misma se puede


encontrar el fichero fuente. Se detallan a continuación los distintos modelos y conectores desarrollados,
ası́ como su finalidad.
Paquete componentes Dentro de este paquete se encuentran los distintos componentes que se uti-
lizarán para modelar el sistema.
FuenteHSP Es un componente que emite una señal con la consigna de la altura del fluido, y
que se conecta al ControladorPI a través de un SensorNivel.
ControladorPI Intuitivamente, este componente representa un controlador Proporcional-Integral.
Toma como parámetros las constantes proporcional e integral. Recibe como entradas dos
SensorNivel, uno correspondiente con la consigna para la altura y otro con la altura real
del lı́quido en el depósito, y a través de un ConectorElectrico se comunica con la bomba
para regular el flujo de agua.
Deposito Este componente modela el depósito de agua. Toma como parámetros la sección del
mismo, y la altura inicial del agua, y contiene las ecuaciones apropiadas para representar el
nivel del fluido en su interior. Contiene un conector ConectorHidraulico que regulará la
entrada de flujo al depósito (conectado con la bomba), y un ConectorValvula, subclase de
ConectorHidraulico, para regular la salida del mismo.
Valvula Representa la válvula por la que cirulará el fluido. Toma como parámetro la altura
a la que se encuentra, ya que de esta depende el flujo que pueda atravesarla. Puesto que
este flujo depende también de la altura del fluido en el depósito, y que carecı́a de semántica
conectar una válvula a un SensorNivel para medir el nivel del agua, se utiliza un nuevo
conector ConectorValvula que, además del flujo, transmite el nivel del agua en el fluido.
Con el fin de generalizar al máximo el uso de los componentes, la lógica que define el paso
de fluido por la válvula en función de la altura se encuentra en este componente, y no en el
depósito.

14
Figura 15: Modelo compuesto del sistema, utilizando los componentes de la librerı́a creada.

CoordinadorValvulas Una vez más para limitar al máximo la lógica presente en el depósito y
en las válvulas, se ha diseñado una clase CoordinadorValvulas que coordina las válvulas,
en el sentido de que se encarga de activarlas y desactivarlas según sea necesario, se asegura
de que cuando una está abierta la otra se encuentra cerrada, etc.
Bomba La bomba se encarga de transformar la corriente que recibe del ControladorPI en un
flujo de agua que, a través de un ConectorHidraulico, entrará al depósito. Toma como
parámetro la constante B, que define el caudal que se emitirá en relación a la corriente de
entrada.
Paquete conectores Dentro de este paquete se encuentran los conectores necesarios para comunicar
los distintos componentes del sistema.
ConectorHidraulico Este conector se utiliza para conectar entre sı́ componentes que trans-
porten un flujo volumétrico de fluido, por ejemplo la bomba de agua, el depósito o las
válvulas.
ConectorEléctrico De manera análoga, este conector se utiliza para circuitos eléctricos, como
el controlador PI o la bomba de agua.
SensorNivel Es un conector utilizado para medir el nivel del agua del depósito y transmitı́rselo
al controlador PI. Si bien en el sistema real el sensor de nivel serı́a un componente y no un
conector, en este caso se ha optado por utilizar un conector puesto que su funcionalidad es
únicamente la de “transmitir” un dato (la altura) de un componente a otro.
ConectorValvula Se trata de un conector especı́fico para las válvulas porque, además del flujo
que de agua que se debe transmitir (para lo que se podrı́a haber utilizado un ConectorHidraulico,
también transmite la altura del lı́quido en el depósito. Esto es importante porque el flujo de
agua a través de la válvula dependerá de si la misma se encuentra por debajo o por encima
del nivel del fluido.
ConectorCoordinadorValvulas Se utiliza para conectar el coordinador con las válvulas, trans-
mitiendo una señal que representa si la válvula debe estar abierta o cerrada.

Por último encontramos el modelo Ejercicio3 que modela el sistema completo tal y como se ha
descrito anteriormente, y cuyo código puede verse en la Figura 15.
En este caso, y utilizando el mismo algoritmo de simulación y los mismos parámetros de tolerancia
que en la versión atómica de este modelo, se obtiene un rendimiento mucho mejor, con un tiempo de
simulación que pasa de los casi 700 segundos a tan solo unas centésimas, como puede apreciarse en la
figura 16
Más allá de la diferencia de rendimiento entre los dos modelos, los resultados obtenidos son los
mismos (y serı́a sı́ntoma de error que ası́ no fuera), por lo que se muestran los gráficos una única vez,
en las Figuras 17 a 22

15
Figura 16: Mejora sustancial del rendimiento en el modelo compuesto respecto al atómico

Figura 17: Graficado de la altura del lı́quido del depósito (h) y su consigna (hsp)

16
Figura 18: Graficado del flujo entrante al depósito

Figura 19: Graficado del flujo saliente del depósito por la primera válvula

17
Figura 20: Graficado del flujo saliente del depósito por la segunda válvula

Figura 21: Graficado de la activación de la primera válvula

18
Figura 22: Graficado de la activación de la segunda válvula

Se puede ver como, independientemente del sistema y el lenguaje utilizados para el modelado, los
resultados coinciden con los expuestos en el Ejercicio 2.

4. Ejercicio 4
Para la resolución de este ejercicio se ha utilizado un script FlexPDE que contiene una única región
(el bloque) estando esta dividida en varias partes, como puede apreciarse en la Figura 23:

1. La mayor parte del contorno del bloque se compone del material aislado, para el que no se definen
condiciones de contorno adicionales.
2. En la parte inferior del bloque, se define una condición de contorno para la temperatura, igualándo-
la a 300ºK.
3. En la parte superior, encontramos una pequeña sección que representa la zona de contacto con
W
el calefactor, a la que se le añade una carga de 500 m 2 para representar el efecto del calefactor.

El resultado de la ejecución de este script se muestra en las Figuras 24 y 25, en las que se
pueden apreciar las curvas equipotenciales de temperatura de la superficie y los vectores de flujo de
temperatura, respectivamente.

19
Figura 23: Código FlexPDE para la simulación del sistema

Figura 24: Resultado de la ejecución del script FlexPDE - curvas equipotenciales de la temperatura.

20
Figura 25: Resultado de la ejecución del script FlexPDE - vectores del flujo de calor.

21

También podría gustarte