TEMA 5. Lenguajes de modelado de sistemas …felipe/docencia/so4inf/tema5.pdf · 1 Simulación y...

40
Simulación y Optimización 4º 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ón 4º 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

Transcript of TEMA 5. Lenguajes de modelado de sistemas …felipe/docencia/so4inf/tema5.pdf · 1 Simulación y...

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.