tema 5. lenguajes de modelado de sistemas …felipe/docencia/so4inf/tema5.pdf · 1 simulación y...
Post on 04-Oct-2018
237 Views
Preview:
TRANSCRIPT
1
Simulación y Optimización4º Ingeniería Informática
1
TEMA 5. Lenguajes de modelado de sistemas continuos orientados a objetos
• Objetivos– Conocer las bases y ventajas de los OOML.– Conocer la metodología de modelado orientado a objetos.– Conocer la problemática asociada a los OOML:
• Lazos algebraicos.• Problemas de índice superior.
– Resolver algún problema de simulación sencillo usando EcosimPro.
Simulación y Optimización4º Ingeniería Informática
2
• Contenidos:– Introducción– Características de los OOML– Proceso de modelado usando un OOML– Definición de una librería de componentes en un OOML en EcosimPro– Ejemplos de modelado y simulación de sistemas sencillos en
EcosimPro– Asignación de la causalidad computacional
TEMA 5. Lenguajes de modelado de sistemas continuos orientados a objetos
2
Simulación y Optimización4º Ingeniería Informática
3
Introducción: Modelado orientado a objetos• En los últimos años han aparecido diversos entornos de modelado que
utilizan los paradigmas del enfoque de la orientación a objetos.• Estos lenguajes permiten descomponer modularmente el modelo de un
sistema complejo en submodelos más sencillos, de modo que:– Diferentes especialistas puedan trabajar independientemente en cada parte
del modelo.– La actualización del modelo, si varía la realidad física o las hipótesis resulta
más sencilla.– Se facilita la reutilización de los modelos en diferentes contextos.
• Esta estructuración modular en los modelos permiten preservar laanalogía modelo-sistema.
• Esta metodología es menos segura que otras herramientas de modelado pero es mucho más potente.
Simulación y Optimización4º Ingeniería Informática
4
• Encapsulación del conocimiento– Permite codificar toda la información relativa al objeto de un
modo compacto y oculto al usuario.– Separa el interfaz externo con su descripción interna.– La interfaz pública del componente serán los parámetros, los
conectores y los datos. Las variables locales, las ecuaciones continuas y los eventos permanencen privadas.
– El modelador encapsula los datos y la conducta en componentes individuales (minimiza los datos globales).
– En C++ y Java la clase es la principal unidad de encapsulación, en ECOSIM es el componente.
Características de un OOML
3
Simulación y Optimización4º Ingeniería Informática
5
• Modelado jerárquico y herencia– Los modelos son representados como clases, siendo las relaciones
que existen entre las clases:• Especialización (mediante la herencia).
• Agregación.– Un componente hereda de otros componentes cuando extiende la
conducta de estos.– Estas propiedades permiten construir una librería de modelos
reutilizables y fácil de mantener.– La complejidad crece de un modo lineal en lugar de un modo
geométrico.– Simplifica el modelado al compartir datos y ecuaciones. Menos
código y más productividad
Simulación y Optimización4º Ingeniería Informática
6
• Capacidad de interconexión topológica– Debe de permitir interconectar objetos de un modo topológico.– Dispone de variables SUM (suma vale cero en el punto de conexión) y
EQUAL (son aquellas que valen lo mismo en el punto de conexión).Esto implica que las ecuaciones que describen los modelos sean declarativas, así el operador = no indica asignación sino igualdad.
– El paquete de modelado debe de analizar el contexto en el que se utiliza el objeto, determinar la causalidad apropiada y reordenar las ecuaciones asociadas al objeto.
• Instanciación de objetos– Permite describir clases de objetos genéricas e instanciar los modelos actuales
por un mecanismo de invocación de modelos.– Resuelve el problema de las librerías de los lenguajes de modelado orientados
a bloques.– Un componente puede contener parametros para particularizarle en el
momento de su instanciación.– El uso de ecuaciones virtuales permite cambiar ecuaciones de los padres a los
hijos. Así el usuario puede “sobreescribir” una ecuación de la clase padre con alguna propia.
4
Simulación y Optimización4º Ingeniería Informática
7
• Asignación de la causalidad:– Como los modelos contenidos en cada clase son inherentemente no
causales, no pueden ser usados para simular directamente.– Se hace necesario manipular simbólicamente las ecuaciones para
obtener un modelo de simulación. Este proceso se denomina asignación de la causalidad computacional.
– Esta ordenación de ecuaciones puede conducir a problemas algebraicos de difícil e incluso imposible solución (bucles algebraicos y problemas no singulares de índice superior).
Vo
+
I=V/RIo
+
V=I*R
Simulación y Optimización4º Ingeniería Informática
8
Algunos herramientas de simulación que disponen de OOML
• Como herramientas comerciales:– DYMOLA (el precursor de los OOML, en principio significo
Dynamic Modelling Language y posteriormente Dynamic Modelling Laboratory).
– gPromps.– EcosimPro.
• Como prototipos universitarios:– OMOLA (Lund, Suecia)– ASCEND IV (Carnegie Mellon University).– Smile (Technical University of Berlin and GMD FIRST).
• Intento de estandarizar el lenguaje de los OOML:Modelica (http://www.modelica.org)
5
Simulación y Optimización4º Ingeniería Informática
9
Proceso de modelado usando un OOML
Librería de modelosacausales
Modelo formado con componentes
Análisis y asignación de causalidad
computacional del conjunto (Partición)
Modelo con causalidadcomputacional asignada
Generación decódigo de simulación
Resolución del modeloCondiciones
de contorno
Simulación y Optimización4º Ingeniería Informática
10
Librería de modelos no causales• Cada componente contendrá las ecuaciones que modelan su conducta y
un interfaz que permita su conexión de componentes• Estará ubicado dentro de la jerarquía de componentes de la librería.• Adicionalmente puede disponer de una representación en forma de
icono que permita el modelado gráfico.
6
Simulación y Optimización4º Ingeniería Informática
11
mc_out
Tacha18
j_in1
j_in2
j_in3
v_in
va_out
c_out
mc_out
Tacha18
j_in1
j_in2
j_in3
v_in
va_out
c_out
mc_out
Tacha18
j_in1
j_in2
j_in3
v_in
va_out
c_out
mc_out
Tacha18
j_in1
j_in2
j_in3
v_in
va_out
c_out
mc_in
mp_out
mr_out
cristal_out
Turbinadiscontinua1
mc_in
mp_out
mr_out
cristal_out
Turbinadiscontinua1
mc_in
mp_out
mr_out
cristal_out
Turbinadiscontinua1
mc_in
mp_out
mr_out
cristal_out
Turbinadiscontinua1
mc_in
mp_out
mr_out
cristal_out
Turbinadiscontinua1
mc_in
mp_out
mr_out
cristal_out
Turbinadiscontinua1
mc_in
mp_out
mr_out
cristal_out
Turbinadiscontinua1
f_in1 f_in2 f_in3 f_in4 f_in5 f_in6 f_in7
f_out
niv
Deposito1
f_in1 f_in2 f_in3 f_in4 f_in5 f_in6 f_in7
f_out
niv
Deposito1
mc_in1 mc_in2
mc_out
Malaxador6 mc_in1 mc_in2
mc_out
Malaxador6
Conectar componentes (unidades de proceso)
Modelado formado por componentes
• Posteriormente veremos como desarrollar una
librería de componentes y como conectarlos.
Simulación y Optimización4º Ingeniería Informática
12
Modelado formado por componentes
R2
R3
R1v1 i3
i1vc v2
v3
i2
R2
R3
R1v1 i3
i1vc v2
v3
i2
i1 = i2 + i3v1 - vc = i1 * R1vc - v2 = i2 * R2vc - v3 = i3 * R3
¿Análisis y asignación de la causalidad computacional?
7
Simulación y Optimización4º Ingeniería Informática
13
Conceptos Fundamentales en EcosimPro
h COMPONENT: representa un sistema o parte de un sistema por medio de variables, ecuaciones algebraico-diferenciales, topología, y eventos discretos (ej:Resistencia, bomba, válvula, tubería, tanques etc.)
h PORT: Es un punto de conexionado de un componente. Se requiere un tipo de puerto diferente en cada disciplina (e.g. Eléctrica, Fluidos, Química,etc.)
h LIBRARY: encapsula componentes, puertos, tipos enumerativos y variables globales de una disciplina (eg. CONTROL, ELECTRICAL, THERMAL,etc.)
h PARTITION: Es una de las posibles formas de manipular las ecuaciones matemáticas del modelo.
h EXPERIMENT: Casos de simulación, de cada “partición”. Los experimentos más típicos son análisis estacionarios, transitorios, estudios paramétricos, etc.
Simulación y Optimización4º Ingeniería Informática
14
Conectores
hEcosimPro tiene una entidad para conectarcomponentes: el PORT.
hUn PORT encapsula las variables que representan el intercambio entre componentes
hPor un lado evita tener que conectar variable a variable, por otro permite introducir inteligencia para las variables (SUM, EQUAL).
hEvitan crear componentes divisores y uniones
8
Simulación y Optimización4º Ingeniería Informática
15
--Puerto eléctricoPORT electrico
SUM REAL i “corriente (Amperios)”EQUAL REAL v “voltaje (Voltios)”
END PORT
Simulación y Optimización4º Ingeniería Informática
16
PORT FluidoSUM REAL W RANGE 0, Inf "Mass Flow (Kg/s)"EQUAL REAL P RANGE 0, Inf "Pressure (Pa)"EQUAL OUT REAL T "Temperature (K)"SUM IN REAL E "Energy Flow (W)"
CONTINUOUSE=W*T
END PORT
9
Simulación y Optimización4º Ingeniería Informática
17
Introducción al Lenguaje EL: Componentes
hSon el elemento de modelado más importante. Proporcionan el medio de definir el comportamiento continuo, discreto y secuencial.
hNormalmente hay una correspondencia entre componentes de modelado y componentes del sistema real.
hTienen 9 bloques opcionales, dependiendo del modo en que se haya definido sucomportamiento dinámico.
Simulación y Optimización4º Ingeniería Informática
18
Introducción al Lenguaje EL: Componentes
Component_def::= ABSTRACT? COMPONENT ID(IS_A ID (,ID)* )?(‘(‘ parameter_s ‘)’)?( PORTS port_decl_s )?( DATA var_decl_s ) ?( DECLS comp_decl_s )?( TOPOLOGY topology_stm_s )?( INIT seq_stm_s )?( DISCRETE discrete_stm_s )?( CONTINUOUS labelled_stm_s )?
END COMPONENT
10
Simulación y Optimización4º Ingeniería Informática
19
Introducción al lenguaje EL: Componentes COMPONENT Cntrl_on_off IS_A ControllerDATA REAL e_off = -1. "Error for switching to OFF state" REAL e_on = 1. "Error for switching to ON state" REAL u_off = 0. "Value of controller output when OFF" REAL u_on = 1. "Value of controller output when ON"
DECLSENUM state_type = {OFF, ON} ENUM state_type state "Current state"
DISCRETE WHEN (e > e_on) THEN state = ON END WHEN
WHEN (e < e_off) THEN state = OFF END WHEN CONTINUOUS u = ZONE (state == ON) u_on
OTHERS u_offEND COMPONENT
Continuous equations
Discrete events
Local declarations
Parent Component
Data
Simulación y Optimización4º Ingeniería Informática
20
ABSTRACT COMPONENT Controller--**--** Purpose: An abstract class for definition of controllers--**
PORTSIN analog_signal s_var "controlled variable"IN analog_signal s_set "set point"OUT analog_signal s_out "controller output"
DECLSREAL e "Input error"REAL r "Set-point"REAL y "Measured variable"REAL u "Output"
CONTINUOUSr = s_set.signaly = s_var.signale = r - ys_out.signal = u
END COMPONENT
PORT analog_signal SINGLE INEQUAL OUT REAL signal
END PORT
11
Simulación y Optimización4º Ingeniería Informática
21
Introducción al Lenguaje EL: Componentes (ABSTRACT)
• Los componentes abstractos no se instancian nunca, sirven para definir la interfase y ecuaciones comunes
ABSTRACT COMPONENT TwoPins PORTS
IN Electric e_p "Input port”OUT Electric e_n "Output port"
DECLS REAL v "voltage ddp (Volts)"
TOPOLOGY PATH e_p TO e_n
CONTINUOUS e_p.i = e_n.iv = e_p.v - e_n.v
END COMPONENT
Simulación y Optimización4º Ingeniería Informática
22
Introducción al Lenguaje EL: Componentes (Herencia)
• Los componentes pueden heredar variables y comportamiento de un componente padre, o de varios (herencia múltiple).
COMPONENT C IS_A TwoPinsDATA
REAL C= 1.e-7 RANGE 0,Inf " Capacity (Farads)"CONTINUOUS
v'= e_p.i / C --voltage derivative lawEND COMPONENT
12
Simulación y Optimización4º Ingeniería Informática
23
Introducción al Lenguaje EL:Componentes (Puertos)
h Definen la interfase del mundo exterior (posiblemente otros componentes) con el componente. Tienen asociado un tipo (Electric, Fluid,...) y una dirección IN o OUT.
ABSTRACT COMPONENT TwoPins PORTS
IN Electric e_p "Input port”OUT Electric e_n "Output port“
…
Simulación y Optimización4º Ingeniería Informática
24
Introducción al Lenguaje EL: Componentes(Parámetros)
• Los parámetros son variables para configurar el componente en tiempo de instanciación (no son variables de simulación). Se usan sólo paradimensionar arrays sobre un rango entero o sobre un rango enumerado (composiciones químicas) y paraseleccionar ecuaciones alternativas.
COMPONENT test (INTEGER n)DATA
REAL v[n]…
13
Simulación y Optimización4º Ingeniería Informática
25
Introducción al Lenguaje EL: Componentes(Datos)
• Son variables cuyo valor es conocido y constante durante la integración (ej: el diámetro de una tubería, el valor de una resistencia,....)
COMPONENT resistorDATA
REAL R “resistance (Ohms)”…
Simulación y Optimización4º Ingeniería Informática
26
Introducción al Lenguaje EL: Componentes(Declaraciones)
En el bloque DECLS se declaran las variables y tipos locales que solamente son visibles dentro del componente y de sus hijos
ABSTRACT COMPONENT TwoPins PORTS
IN Electric e_p "Input port”OUT Electric e_n "Output port"
DECLS REAL v "voltage ddp (Volts)"
TOPOLOGY PATH e_p TO e_n
CONTINUOUS e_p.i = e_n.i v = e_p.v - e_n.v
END COMPONENT
14
Simulación y Optimización4º Ingeniería Informática
27
Introducción al Lenguaje EL: Componentes(Topología)
En este bloque se representa la agregación de componentes y el conexionado de los mismos, así como los caminos internos en el componente
COMPONENT circuitTOPOLOGY
source s1( ampl=10 )resistor r1 (1000)capacitor c1 ( 1e-1 )earth e1CONNECT s1.po TO r1.piCONNECT r1.po TO c1.piCONNECT c1.po TO s1.pi,e1.pi
END COMPONENT
ABSTRACT COMPONENT TwoPins PORTS
IN Electric e_p "Input port”OUT Electric e_n "Output port"
DECLS REAL v "voltage ddp (Volts)"
TOPOLOGY PATH e_p TO e_n
CONTINUOUS e_p.i = e_n.iv = e_p.v - e_n.v
END COMPONENT
Simulación y Optimización4º Ingeniería Informática
28
Sentencias CONNECT (I)
• Conexión básicaCONNECT R1.e_n TO C1.e_p
• Conexión en paraleloCONNECT R1.e_n, R2.e_n, R3.e_n TO C2.e_p
R C
R1C1
R
C
R1
C1
R
R
R1
R2
R3
15
Simulación y Optimización4º Ingeniería Informática
29
Sentencias CONNECT(II)
• Conexión en paraleloCONNECT C1.e_n TO L2.e_p, R2.e_p, R3.e_p
• Conexiones en Serie y paralelo cuando hay un definido un PATH
CONNECT R1 TO R2 TO R3, R4
L
RC
R
R3
C1L2
R2
R R
R
R
R1 R2
R3
R4
Simulación y Optimización4º Ingeniería Informática
30
Sentencias CONNECT(III)• La sentencia PATH define un camino principal entre dos puertos de un componente
PATH e_p TO e_n
• Si un componente con un PATH definido aparece en el lazo izquierdo del TO de unasentencia CONNECT, se asume que nos referimos al segundo puerto del PATH, y siaparece en el lado derecho del TO se asume que nos referimos al primer puerto del PATH
CONNECT R1 TO C1.e_p CONNECT R1.e_n TO C1.e_p
CONNECT R1.e_n TO C1 CONNECT R1.e_n TO C1.e_p
CONNECT R1 TO C1 TO R2 CONNECT R1.e_n TO C1.e_p
CONNECT C1.e_n TO R2.e_p
16
Simulación y Optimización4º Ingeniería Informática
31
Introducción al Lenguaje EL: Componentes(Inicialización)
Cuando un componente requiere una inicialización (un cálculo al principio de la simulación), ésta se hace en el bloque INIT. Paradigma secuencial de dicho bloque:
COMPONENT testDATA
REAL x,y,z[3]INIT
x= 0.0y= SUM (i IN 1,3; density[i])FOR (i IN 1,3)
z[i]= 0.0END FOR
END COMPONENT
Simulación y Optimización4º Ingeniería Informática
32
Introducción al Lenguaje EL: Componentes (Eventos Discretos)
En este bloque se definen los eventos discretos (WHEN) y las comprobaciones de consistencia del modelo (ASSERT), que son sentencias discretas. En las acciones del WHEN se sigue el paradigma secuencial:
COMPONENT freezer....DISCRETE
WHEN ( tr > -18 ) THENcompressorON= TRUE
END WHENWHEN ( tr < -20 ) THEN
compressorON= FALSEEND WHENASSERT( tr < -60 ) FATAL “Something wrong in tr”
17
Simulación y Optimización4º Ingeniería Informática
33
Introducción al Lenguaje EL: Componentes (Ecuaciones Continuas)
En el bloque CONTINUOUS se definen las ecuaciones algebraicas y diferenciales que deben satisfacerse en cualquier instante.
COMPONENT pendulum DATA
REAL m, L = 1 “mass and length” DECLS
REAL x, y, T CONTINUOUS
m * x’’ = - T * x / L m * y’’ = m * g - T * y / L x**2 + y**2 = L**2
END COMPONENT
Simulación y Optimización4º Ingeniería Informática
34
Formato de las ecuacioneshEs intrascendente:
h El orden en el que se introducenh La manipulación simbólica de la misma
h EcosimPro dispone de potentes algoritmos simbólicos que ordenan y transforman las ecuaciones simbólicamente.
h Se tratan simbólicamente también las funciones trigonométricas( sin, cos, arcsin, etc.)
h ¡Cuidado con usar llamadas a funciones que no tengan función inversa conocida!
LxTxmxLxTm
LxTxm
/*''*0''/)/*(
/*''*
+=−=
−=
18
Simulación y Optimización4º Ingeniería Informática
35
Introducción al Lenguaje EL:Ecuaciones Virtuales
• Se permite cambiar una ecuación heredada de un componente padre:COMPONENT baseREAL x,yCONTINUOUS
<eqt1> x= y’ / 2END COMPONENT
COMPONENT test IS_A baseCONTINUOUS
<:eqt1> x= y’ / 3END COMPONENT
Simulación y Optimización4º Ingeniería Informática
36
Introducción al Lenguaje EL: Librerías
h Una librería se compone de todas las unidades relacionadas con una disciplina (eléctrica, térmica, etc.).
h Las entidades de librería permitidas son Components, Ports, Functions, External functions pre-declarations, Experiments, Enumerative types (ENUM y SET_OF) y globals constants y variables.
h Se usa LIBRARY para indicar la librería de trabajo que se usa enese momento
h Se usará la cláusula USE para usar elementos de otras librerías.h EcosimPro proporciona dos librerías del sistema, con las funciones
más comunes para que sean visibles desde cualquier punto (sin,cos,log,etc.)
19
Simulación y Optimización4º Ingeniería Informática
37
Introducción al Lenguaje EL: Tipos de Datos
i Básicos: REAL, INTEGER, BOOLEAN, STRING REAL x, y STRING str= “hello world” BOOLEAN isConnected = FALSE
– Especiales:Tablas 1D, 2D y 3DTABLE_2D t = {{1,2}, -- X values {0.9,1.0,0.8 }, -- Y values {{4,6,7},{ 2, 3, 2 }}} -- output
– Vectores y Matrices:REAL v[3]REAL w[3,6,2]ENUM chemicals mix[2]= { H20, O2 }STRING colors[3]= { “red”,”white”,”blue”}
Simulación y Optimización4º Ingeniería Informática
38
Introducción al Lenguaje EL: Tipos de Datos• Constantes: El usuario puede declarar una variable como
constante, de manera que no pueda ser modificada despuésCONST REAL PI= 3.141592
• Rango de una variable: Se puede definir un rango para una variable, de manera que se avise (warning) cuando se salga de dicho rangoREAL v RANGE 0.5, 1.5
• Diferentes “alcances” de las variables en EL:LIBRARY DEFAULT_LIBREAL i= 9 -- Global variable
COMPONENT testDECLS
REAL v[4],y, i -- Local scopeINIT
i= DEFAULT_LIB.i + 4y= SUM(i IN 1,4; v[i]) -- expr. scope
20
Simulación y Optimización4º Ingeniería Informática
39
Introducción al Lenguaje EL:Variables TIME y TSTOP
• TIME contiene el tiempo actual al que ha llegado la integración
• TSTOP contiene el tiempo final para detener la integración– x= sin(TIME)
– WHEN( TIME >= (TSTOP / 2 ) )
Simulación y Optimización4º Ingeniería Informática
40
Introducción al Lenguaje EL: Expresiones
• Aritméticas: a * 2 + (c - u) / (x**2)
• SUM: x= SUM(i IN 1,3; inertia[i]) es equivalente a inertia[1]+inertia[2]+inertia[3]
• Relational: 2 > ( x - y)
• Lógica: (x > 9.8 AND n != 7 OR m == 6 )
• Ecuaciones Matemáticas continuas: cualquier ODE o DAE puede ser formulada y’’’ + 3*y’ = cos(TIME)
• ZONE: permite cambiar entre ecuaciones alternativas mientras la simulación se está ejecutando, dependiendo del valor de una condición.
X = ZONE( m > 0 ) y + zZONE( m > 1) y + 2*z
OTHERS
Los resolvedores de EcosimPro toman la responsabilidad de detectar el tiempo preciso de cambio de la condición, detectar la nueva rama del ZONE y continuar la integración del modelo
21
Simulación y Optimización4º Ingeniería Informática
41
Introducción al Lenguaje EL: Expresiones
• Sentencias discretas:WHEN ( speed > maxSpeed )
reachedMaxSpeed = TRUEEND WHEN
• Dentro de los WHEN, los bloques INIT, los cuerpos de las funciones (BODY) y de los experimentos, que son secuenciales, se pueden usar sentencias del tipo IF THEN ELSEIF ( x > 8.3 ) THEN
y= sqrt(x)ELSE
y= xENDIF
Simulación y Optimización4º Ingeniería Informática
42
Introducción al Lenguaje EL : Funciones de Librerías
• El usuario puede definir sus propias funciones en EL y puede llamarlas luego desde cualquier componente, puerto o función
FUNCTION REAL square(REAL x)BODY
RETURN x * xEND FUNCTION...x= square(y)
• El usuario puede re-usar funciones escritas en FORTRAN, C y C++, sin más que pre-declararlas en el lenguaje EL.
“FORTRAN” FUNCTION REAL square(REAL x)...x= square(y)
• En el momento de la compilación el usuario tiene que especificarel fichero objeto en que se encuentra la función, para su encadenado (linkage) con el ejecutable
22
Simulación y Optimización4º Ingeniería Informática
43
Ejemplo: Librería EléctricaCONST REAL PI = 3.1416-- Electrical portPORT Elec
SUM REAL i “Current (A)”EQUAL REAL v “Voltage (V)”
END PORT
-- Abstract component with an input and an output
ABSTRACT COMPONENT TwoPinsPORTS
IN Elec e_p “Positive pinOUT Elec e_n “Negative pin”
DECLSREAL i “Current (A)”REAL v “Voltage Difference (V)”
TOPOLOGYPATH e_p TO e_n
CONTINUOUSi = e_p.ie_p.i = e_n.iv = e_p.v - e_n.v
END COMPONENT
Simulación y Optimización4º Ingeniería Informática
44
---------------------------------------------------- Electrical resistor--------------------------------------------------COMPONENT R IS_A TwoPins
DATAREAL R = 1000 RANGE 0, 1.e40 “Resistance (Ohms)”
CONTINUOUSv = i * R --Ohms law
END COMPONENT
---------------------------------------------------- Electrical capacitor--------------------------------------------------COMPONENT C IS_A TwoPins
DATAREAL C= 1.e-7 RANGE 0, 1.e40 “Capacitance (F)”
CONTINUOUSv'= i / C --voltage derivative
END COMPONENT-------------------------------------------------------- Electrical AC Voltage Generator------------------------------------------------------COMPONENT VAC IS_A TwoPins
DAT REAL VAC = 1 “Amplitude (V)”REAL freq = 50. “Frequency (Hz)”REAL phase “Phase (degrees)”
CONTINUOUSv = - VAC * sin(2 * PI * \
(freq * TIME + phase / 360.))END COMPONENT
23
Simulación y Optimización4º Ingeniería Informática
45
-------------------------------------------------------- Electrical DC Voltage Generator------------------------------------------------------COMPONENT VDC IS_A TwoPins
DATAREAL VDC = 1 “Voltage (V)”
CONTINUOUSv = - VDC
END COMPONENT
-------------------------------------------------------- Electrical Ground------------------------------------------------------COMPONENT G
PORTSIN Elec e_p
TOPOLOGY PATH e_p TO e_p
CONTINUOUSe_p.v = 0.
END COMPONENT---------------------------------------------------- Electrical inductance---------------------------------------------------COMPONENT L IS_A TwoPins
DATA REAL L = 1.e-3 RANGE 0, Inf "Inductance (H)"
REAL TL= 300. "Inductance temperarture (Kelvin)"REAL TL1 = 0.REAL TL2 = 0.
DECLS REAL DTempREAL Lval RANGE 0, Inf
CONTINUOUSDTemp = TL - TrefLval = L + TL1 * DTemp + TL2 * DTemp**2v = Lval * e_p.i'
END COMPONENT
Simulación y Optimización4º Ingeniería Informática
46
------------------------------------------------------------------ Electrical variable inductance----------------------------------------------------------------COMPONENT L_var IS_A TwoPins
PORTSIN analog_signal s_in
DECLSREAL Lval RANGE 0, Inf
CONTINUOUSLval = s_in.signalv = Lval * e_p.i'
END COMPONENT
24
Simulación y Optimización4º Ingeniería Informática
47
Ejemplo 1: modelo del sistema de suspensión de un vehículo
Simulación y Optimización4º Ingeniería Informática
48
.0gf
kk)y1y(
M·fk·k
yMk
yf
kky 12
321
12
112
1 =+
+−+++
+ &&&&&&Modelo matemático:
Datos:
m=500.
k1=7500.
k2=150000.
f=2250
g=10
Condiciones iniciales:y1’’(0)=0.
y1’(0)=0.
y1(0)=-m·g·(1/k1+1/k2)
• Modelado y simulación:• Crear el componente que modele el sistema• Generación del modelo de simulación (partition)• Definición de experimentos
– Asignación de condiciones iniciales y variación de parámetros– Calculo de estacionario y condiciones de contorno que dependen del
tiempo
25
Simulación y Optimización4º Ingeniería Informática
49
COMPONENT Amortiguador
DATA
REAL m=500. "masa (kg)"
REAL k1=7500. "constante de restitución del amortiguador (Nw/m)"
REAL k2=150000. "constante de restitución del neumático (Nw/m)"
REAL f=2250 "constante de fricción del amortiguador (kg/s)"
REAL g=10 "constante de gravedad (Nw/kg)"
DECLS
REAL y "posición del coche con respecto a su posición de equilibrio (m)"
REAL y_suelo "posición del suelo (m)"
INIT
--Condiciones iniciales
--y=0.
--y'=0.
--y''=0.
CONTINUOUS
y'''+(k1+k2)/f*(y''+g)+(k2/m)*y'+(k1*k2)/(f*m)*(y-y_suelo)=0
END COMPONENT
Simulación y Optimización4º Ingeniería Informática
50
Ejemplo 2: modelo de un ciclo de histéresisUse dos eventos de estado para simular un ciclo de histéresis como el de la figura, donde a, b, p y n son parámetros. Particularice para a=1.0, b=-1.0, p=1.0 y n=-1.0.
Ayuda: Utilice una función periódica para generar la entrada al ciclo dehisteresis (x) entre –2 y 2
26
Simulación y Optimización4º Ingeniería Informática
51
COMPONENT Ciclo_histeresis
DATA
REAL a=1. --Límite derecho
REAL b=-1. --Límite izquierdo
REAL p=1. --Límite superior
REAL n=-1. --Límite inferior
REAL freq=0.1
DECLS
REAL y --Salida
REAL x --Entrada
INIT
y=0.
DISCRETE
WHEN (x>a AND x'>0) THEN
y=1
END WHEN
WHEN (x<b AND x'<0) THEN
y=-1
END WHEN
CONTINUOUS
x = 2. * sin(2 * MATH.PI * freq * TIME)
END COMPONENT
Simulación y Optimización4º Ingeniería Informática
52
Ejemplo 3: modelo de un circuito eléctricoUSE ELECTRIC
COMPONENT circuit
PORTS
OUT ELECTRIC.Elec Elec2
IN ELECTRIC.Elec Elec1
TOPOLOGY
ELECTRIC.C C1 ( TC = 300, C = .00005,TC1 = 0,TC2 = 0)
ELECTRIC.G G71
ELECTRIC.R R1 ( R = 5500,TR1 = 0, TR2 = 0, TR = 300)
ELECTRIC.VAC VAC1 ( VAC = 10, freq = 50, phase = 0, VDC = 0)
CONNECT R1.e_n TO VAC1.e_p, G71.e_p
CONNECT C1.e_n TO R1.e_p, Elec2
CONNECT VAC1.e_n, Elec1 TO C1.e_p
END COMPONENT
27
Simulación y Optimización4º Ingeniería Informática
53
Análisis y asignación de causalidad computacionalModelo
matemáticoMaximo Transversal
¿Problema de índice?Especificar que variable
no son de estado
Especificar condiciones de contornoModelo matemático con todas
las ecuaciones necesarias
NO
SI
BLT
¿Lazos algebraicos no
lineales?
NOSIEspecificar variables de “ruptura”
Modelo matemático simbólicamente
manipulado
Simulación y Optimización4º Ingeniería Informática
54
Algoritmo del Maximo Transversal (I)
Ecuaciones Variablesf1(x1)= 0 x1f2(x1,x2,x3)= 0 x2f3(x1)= 0 ??
Ecuaciones Variablesf1(x1)= 0 x1f2(x1,x2,x3)= 0 x2f3(x1,x3)= 0 x3
SISTEMA CORRECTO SISTEMA CON UNA SINGULARIDAD ESTRUCTURAL
•Para que un modelo sea matemáticamente correcto, la primeracondición es que sea posible establecer una correpondencia uno a uno entre las ecuaciones y las variables que aparecen en ellas.
28
Simulación y Optimización4º Ingeniería Informática
55
Algoritmo del Maximo Transversal (II)
R2
R3
R1v1 i3
i1vc v2
v3
i2 7 incógnitas:
v1, v2, v3, vc, i1, i2, i3
3 datos: R1, R2, R3
4 ecuacionesi1 = i2 + i3v1 - vc = i1 * R1vc - v2 = i2 * R2vc - v3 = i3 * R3
•Se utiliza el Algoritmo del Maximo transversal para proponer condiciones de contorno y chequear la validez de las mismas.
3 condiciones de contorno
Simulación y Optimización4º Ingeniería Informática
56
Algoritmo del Maximo Transversal (II)
Equations and Boundary Conditions VariablesEq 1: i1 = i2 + i3 i1Eq 2: v1 - vc = R1 * i1 i2Eq 3: vc - v2 = R2 * i2 i3Eq 4: vc - v3 = R3 * i3 v1BC 1: v1 v2BC 2: v2 v3BC 3: v3 vc
Condiciones de contorno válidas: v1,v2,v3
29
Simulación y Optimización4º Ingeniería Informática
57
Algoritmo del Maximo Transversal (III)
Equations and Boundary Conditions VariablesEq 1: i1 = i2 + i3 i1Eq 2: v1 - vc = R1 * i1 i2Eq 3: vc - v2 = R2 * i2 i3Eq 4: vc - v3 = R3 * i3 v1BC 1: v1 v2BC 2: v2 v3BC 3: v3 vc
Condiciones de contorno erroneas: i1,i2,i3
Equations and Boundary Conditions Variables
Eq 1: i1 = i2 + i3 ???? i1Eq 2: v1 - vc = R1 * i1 i2Eq 3: vc - v2 = R2 * i2 i3Eq 4: vc - v3 = R3 * i3 v1BC 1: i1 v2BC 2: i2 v3BC 3: i3 vc
Simulación y Optimización4º Ingeniería Informática
58
Algoritmo del Maximo Transversal (IV)
××
××××
××××××
×××
=−=−=−+=
v3v2v1
Ri2v2vcRi2v2vc
R1i1vcv1i3i2i1
v3v2v1i3i2vci1
32
××
×××××××
××××××
=−=−=−+=
v3v2v1
Ri2v2vcRi2v2vc
R1i1vcv1i3i2i1
v3v2v1vci3i2i1
32
Consideremos una matriz cuyas filas están asociadas a ecuacionesy cuyas columnas lo están a las variables y que tiene elementos no nulos si la variable de una columna aparece en la ecuación de la fila.
El algoritmo del Maximo Transversal intercambia las columnas tratando de encontrar una diagonal de elementos no nulos (de ahí el nombre del algoritmo)
30
Simulación y Optimización4º Ingeniería Informática
59
Algoritmo del Maximo Transversal (V)
¿Como se consideran las variables de estado y las derivadas en el maximo transversal?– Variables de estado
• Las variables cuya derivada aparece en el modelo se consideran conocidas, porque tienen asignados valores iniciales
– Derivadas • Las derivadas de las variables de estado se consideran
como variables desconocidas, porque el objetivo final es obtener una ODE calculable
dY / dt = f(Y, t)
Simulación y Optimización4º Ingeniería Informática
60
Algoritmo del Maximo Transversal (VI)
Las condiciones de contorno se eligen por el usuario, pero es posible ofrecer un conjunto coherente de las mismas o chequear las elecciones del usuario.
Se buscan tantas variables como condiciones de contorno se necesitan, dando preferencia a las variables que pertenecen a puertos no conectados, y se comprueba que dichas variables cumplen la condición del máximo transversal.
Si las variables seleccionadas no la cumplen, se itera sobre otro conjunto de variables, incluyendo variables que no corresponden a puertos no conectados si es necesario.
31
Simulación y Optimización4º Ingeniería Informática
61
Problemas de índice superior (I)
Aparecen cuando las variables de estado están sujetas a restricciones.
En estos casos el Algoritmo del máximo transversal falla.Los algoritmos de integración no consideran las ligaduras en las variables de estado
0),u,x,x(g
)t,u,x,x(ftd
xd
)t,u,x,x(ftd
xd
21
2122
2111
=
=
=
Simulación y Optimización4º Ingeniería Informática
62
U
RL
i1
MOTORDC
ω
L2
R2
U2
i2 DINAMO
21
211
1 ...TT...dt
dJ
ω=ω
+++=ω
...TT...dt
dJ 21
22 +++=ω
• Pueden aparecer cuando se unen componentes debido a las ecuaciones de ligadura de los puertos.
•• Pueden aparecer cuando se unen componentes debido a las Pueden aparecer cuando se unen componentes debido a las ecuaciones de ligadura de los puertos.ecuaciones de ligadura de los puertos.
Problemas de índice superior (II)
32
Simulación y Optimización4º Ingeniería Informática
63
idtdVC =
22
2
11
1
idt
dVC
idt
dVC
=
=
21 VV =
Problemas de índice superior (III)
Simulación y Optimización4º Ingeniería Informática
64
Ejemplo (DATA: C1,C2,I0)
C1*u1'=I1C2*u2'=I2I0=I1+I2u1=u2u0=u2
u1, u2 son estados al estar bajo el operador derivada y no son incognitas
incógnitas: u1', u2', I1, I2, u0conocidas: u1, u2, I0 (DATA)
uoC1 C2
I1 I2
+ +
-u1 u2
-
+
-
Io
No hay solución con el Maximo Transversal
u0
4 incógnitas (I1, I2, u1’,u2’) y 4 ecuaciones (pero una de ellas no tienen sentido)?
Problemas de índice superior (IV)
33
Simulación y Optimización4º Ingeniería Informática
65
A veces los problemas de índice se deben a formulaciones que no siguen la causalidad física causa efecto, sino que corresponden a otros problemas, p. e. control. ¿Cual es la fuerza que hace que la partícula se mueva de acuerdo a la trayectoria especificada? )tsin(e)t(x
dtxdmF
10/
2
2
t−=
=
En este ejemplo se debe a una condición de contorno sobre una variable de estado
Problemas de índice superior (V)
Simulación y Optimización4º Ingeniería Informática
66
Problemas de índice superior (VI)
• El algoritmo del Maximo Transversal falla cuando hay problemas de indice superior. Ejemplo:
MAXIMO TRANSVERSALF = m * v’ v’
x’ = v x’
x = exp(-TIME/10) * sin(TIME) ¿F?
EcuacionesF = m * v’ x’= vx = exp(-TIME/10) * sin(TIME)
VARIABLES CONOCIDASv & x variables de estadom dato VAR. DESCONOCIDAS
F, v’, x’
34
Simulación y Optimización4º Ingeniería Informática
67
Problemas de índice superior (VII) •El algoritmo de Pantelides se utiliza para reducir problemas de índice:•El algoritmo funciona seleccionando algunas ecuaciones (las de ligadura) que se derivan simbólicamente y se añaden al conjunto:
EQUATIONSF = m * v’ x’= vx = sin(TIME)x’ = cos(TIME)x’’(=v’) = -sin(TIME))
Ahora es posible resolver el Maximo Transversal si consideramos v & x como variables algebraicas (aparecen dos ecuaciones nuevas que permiten no tener que integrar esas variables)
Indice: nº de veces que hay que derivar para poder aplicar el Maximo Transversal
F = m * v’ F x’= v vx = sin(TIME) xx’ = cos(TIME) x’v’ = -sin(TIME)) v’
Simulación y Optimización4º Ingeniería Informática
68
Problemas de índice superior (VIII)
Aplicando Pantelides:
C1*u1'=I1C2*u2'=I2I0=I1+I2u1=u2
u0=u2
u1, u2 son estados al estar bajo el operador derivada
incógnitas: u1', u2', I1, I2, u1 o u2conocidas: C1, C2, I0 (DATA)
uoC1 C2
I1 I2
+ +
-u1 u2
-
+
-
Io
Ahora si hay solución con el Maximo Transversal
5 incógnitas (u1’,u2’,i1,i2,,u1 o u2) y 5 ecuacionesu1’=u2’
35
Simulación y Optimización4º Ingeniería Informática
69
Problemas de índice superior (IX)
• El algoritmo de Pantelides encuentra que ecuación diferenciar para evitar el problema de indice.
• Por cada nueva ecuación que se genera al derivar una de las ya existentes, el usuario debe eliminar una variable de estado que se calculará a partir de la nueva ecuación en lugar de por integración. Excepto en casos triviales, habrá varias alternativas para elegir.
• Un ejemplo típico de problema de índice son las ecuaciones de movimiento de un péndulo en coordenadas cartesianas.
x
y
T
y
L
222
2
2
2
2
Lyx
LyTgm
dtydm
LxT
dtxdm
=+
−=
−=
Simulación y Optimización4º Ingeniería Informática
70
Problemas de índice superior (X)
0yyyy2xx2xx20yy2xx2
L y x
v y v x
Ly g - T vm
Lx - T vm
22
222
y
x
y
x
=′+′′+′+′′
=′+′=+
=′=′
=′
=′
Al aplicar Pantelides al problema del péndulo, la restricción de longitud del péndulo x2 + y2 =L debe derivarse dos veces, luego hay que eliminar dos variables de estado.
Mala elecciónSi eliminamos x, x’ como variables, de estado, se calcularán a partir de:
pero como x puede ser cero, dará lugar a una división por cero
Buena elecciónEliminar y, y’ como variables de estado
x2yy2x
L y xxf 222
′−=′
=−+= 0)(
36
Simulación y Optimización4º Ingeniería Informática
71
Problemas de índice superior - Condiciones de contorno
• No se puede generar un problema de índice superior al definir las condiciones de contorno.
• El motivo es que la solución de un problema de índice necesita derivar ecuaciones, las cuales deben ser conocidas de antemano cuando se genera el modelo matemático.
•Por tanto se suele prohibir que una variable de estado se fije como condición de contorno.
• Si se requiere forzar el valor de una variable de estado, debe añadirse una ecuación en la parte continua del correspondiente componente.
Simulación y Optimización4º Ingeniería Informática
72
Ordenación de ecuaciones - Algoritmo BLT (I)•Una vez que se ha aplicado con éxito el Algoritmo del Máximo Transversal, se usa el algoritmo BLT (Block Lower Triangularisation) para la ordenación de las ecuaciones. Este algoritmo intercambia filas y columnas para obtener una matriz triangular inferior.
xxxxxxxxxxxxxxx
xxxxxxxxxxx
xxxxxxx
xxx
ffffffff
VVVVVVVV
0000000000000000000000000000
8
7
6
5
4
3
2
1
87654321 Si se encuentra tal matriz triangular inferior, el sistema de ecuaciones es explícito y V1puede calcularse de f1 , V2 de f2 , V3 de f3 , …
Luego puede usarse un procedimiento de manipulación simbólica para despejar cada variable de cada ecuación
37
Simulación y Optimización4º Ingeniería Informática
73
Ordenación de ecuaciones - Algoritmo BLT(II)
V0 - sin(time) = 0
V0 - V1 - i * R1 = 0
V1 - V2 - i * R2 = 0
V2 - V3 - i * R3 = 0
V3 - L * i’ = 0
ECUACIONES ORDENADAS
V0 = sin(time)V1 = V0 - i * R1V2 = V1 - i * R2V3 = V2 - i * R3i’ = V3 / L
L
RRR
VAC
G G
V0V1
V3
V2i
R1 R3R2
L1
BLTManipulacionsimbólica
i' V0 V1 V2 V3 V0 V1 V2 V3 i'V0 - sin(time)= 0 0 x 0 0 0 x 0 0 0 0V0 - V1 - i * R1 = 0 0 x x 0 0 x x 0 0 0V1 - V2 - i * R2 = 0 0 0 x x 0 0 x x 0 0V2 - V3 - i * R3 = 0 0 0 0 x x 0 0 x x 0V3 - L * i' x 0 0 0 0 0 0 0 0 x
BLT
Simulación y Optimización4º Ingeniería Informática
74
Ordenación de ecuaciones - Algoritmo BLT(III)
•Si no se encuentra una matriz triangular inferior, entonces existen lazos algebraicos en las ecuaciones.•En todo caso, el algoritmo BLT siempre encuentra una matriz triangular a trozos, en la cual los bloques Aii son cuadrados y no tienen forma de matriz triangular inferior.
NNN1
44434241
333231
2221
11
A.....A
0..
.0..
.0AAAA
.0AAA
000AA
0..0.00A Cada bloque de tamaño mayor que 1 representa un subsistema de ecuaciones acopladas (lazo algebraico) que no puede resolverse explícitamente.
38
Simulación y Optimización4º Ingeniería Informática
75
Ordenación de ecuaciones - Algoritmo BLT(IV)
V0 - sin(time) = 0
V0 - V1 - i * R1 = 0
V1 - V2 - i * R2 = 0
V2 - V3 - i * R3 = 0
V3’ - C * i = 0
ECUACIONES ORDENADAS
??????
BLT
RRR
VAC
G G
V0V1
V3
V2
i
R1 R3R2
L1
C
C
i V0 V1 V2 V3' V0 V1 V2 i V3'V0 - sin(time)= 0 0 x 0 0 0 x 0 0 0 0V0 - V1 - i * R1 = 0 x x x 0 0 x x 0 x 0V1 - V2 - i * R2 = 0 x 0 x x 0 0 x x x 0V2 - V3 - i * R3 = 0 x 0 0 x x 0 0 x x 0V3' - i / C = 0 x 0 0 0 x 0 0 0 x x
BLT
BLT
Simulación y Optimización4º Ingeniería Informática
76
Ordenación de ecuaciones - Lazos algebraicos (I)
•El algoritmo BLT encuentra un orden de solución explícito para las ecuaciones si no hay lazos algebricos, en caso contrario identifica los subsistemas de ecuaciones acopladas (Bloques de tamaño > 1). •Para resolver estos bloques: – Si todas las ecuaciones del bloque son lineales con respecto a
las variables que deben despejarse del bloque, entonces es facílusar un solver lineal o manipulador simbólico para despejarlas
– Si algunas ecuaciones del bloque son no-lineales respecto a las variables del bloque, entonces puede ocurrir que tengan que ser resueltas simultaneamente mediante un solver no-lineal y la selección previa de las variables de ruptura del lazo (tear off)
39
Simulación y Optimización4º Ingeniería Informática
77
Ordenación de ecuaciones - Lazos algebraicos(II)
V0 - sin(time) =0
V0 - V1 - i * R1 = 0
V1 - V2 - i * R2 = 0
V2 - V3 - i * R3 = 0
V3’ - i / C = 0
ECUACIONES ORDENADAS
V0 = sin(time)
V3’ = i / C
BLT
RRR
VAC
G G
V0V1
V3
V2
i
R1 R3R2
L1
C
C
i V0 V1 V2 V3' V0 V1 V2 i V3'V0 - sin(time)= 0 0 x 0 0 0 x 0 0 0 0V0 - V1 - i * R1 = 0 x x x 0 0 x x 0 x 0V1 - V2 - i * R2 = 0 x 0 x x 0 0 x x x 0V2 - V3 - i * R3 = 0 x 0 0 x x 0 0 x x 0V3' - i / C = 0 x 0 0 0 x 0 0 0 x x
−=
−−−−−
V30
V0
iV2V1
R310R211R101
Simulación y Optimización4º Ingeniería Informática
78
Lazos algebraicos- Ruptura de lazos (I)
•La solución mas directa para resolver un sistema de ecuaciones no-lineales es considerar todas las variables involucradas (tantas variables como el tamaño del bloque) y aplicarles un solver no-lineal, tal como el método de Newton-Raphson. •Así, si las resistencias del ejemplo anterior fueran no-lineales, obtendríamos tres ecuaciones no-lineales:
Sin embargo esto genera grandes sistemas de ecuaciones (tamaño del sistema = tamaño del bloque) por lo que es conveniente utilizar técnicas de ruptura de lazos (Equation Tearing) que permiten reducir considerable,mente dicho tamaño.
F1(V1, V2, i) = 0F2(V1, V2, i) = 0F3(V1, V2, i) = 0
Que deben resolverse para V1, V2 & i
40
Simulación y Optimización4º Ingeniería Informática
79
Lazos Algebraicos - Ruptura de lazos (II)
V0 - sin(time) =0
V0 - V1 - i**2 * R1 = 0
V1 - V2 - i**2 * R2 = 0
V2 - V3 - i**2 * R3 = 0
V3’ - i / C = 0
ECUACIONES ORDENADAS
V0 = sin(time)
i se supone conocidoV1 = V0 - i**2 * R1
V2 = V1 - i**2 * R2
F(i) = V2 - V3 - i**2 * R3 = 0
V3’ = i / C
BLT
RRR
VAC
G G
V0V1
V3
V2
i
R1 R3R2
L1
C
C
i V0 V1 V2 V3' V0 V1 V2 i V3'V0 - sin(time)= 0 0 x 0 0 0 x 0 0 0 0V0 - V1 - i * R1 = 0 x x x 0 0 x x 0 x 0V1 - V2 - i * R2 = 0 x 0 x x 0 0 x x x 0V2 - V3 - i * R3 = 0 x 0 0 x x 0 0 x x 0V3' - i / C = 0 x 0 0 0 x 0 0 0 x x
Simulación y Optimización4º Ingeniería Informática
80
Lazos Algebraicos - Ruptura de lazos(III)
La técnica de ruptura de lazos tiene un inconveniente:– No existen algoritmos que proporcionen una ruptura
optima y el número de posibles elecciones crece exponencialmente con el tamaño del bloque.
– Así como el Algoritmo del Maximo Transversal, el BLT y el algoritmo de Pantelides están basados en métodos formales, los algoritmos de ruptura de lazos se basan en reglas heurísticas.
– Por eso muchos lenguajes permiten al usuario modificar la selección hecha por el lenguaje de modelado.
top related