tema 4. lenguajes de simulación de sistemas continuosfelipe/docencia/so4inf/tema4.pdf · – saber...

32
Simulación y Optimización 4º Ingeniería Informática 1 TEMA 4. Lenguajes de simulación de sistemas continuos Objetivos Conocer los tipos de lenguajes de simulación de sistemas continuos de propósito general. Saber describir un modelo sencillo en forma de diagrama de bloques. Saber describir un modelo sencillo en un lenguaje de simulación del estándar CSSL’67. Reconocer un lazo algebraico en un modelo de simulación y saber como tratarlo. Conocer las ventajas y desventajas de los lenguajes de simulación orientados a bloques y de los orientados a sentencias. Conocer el funcionamiento interno de los lenguajes de simulación orientados a bloques y de los orientados a sentencias. Conocer la problemática asociada a la reutilización de modelos matemáticos tanto en los lenguajes orientados a bloques como a sentencias. Simulación y Optimización 4º Ingeniería Informática 2 Contenidos: Lenguajes de simulación: ¿qué son?, ventajas y clasificación. Lenguajes de simulación orientados a bloques: Descripción del modelo, ordenación de bloques y estructura de cálculo Librerías de componentes: modularización y ¿reutilización? Ventajas e inconvenientes Lenguajes de simulación orientados a sentencias Estándar CSSL’67 ACSL,un lenguaje orientado a sentencias del estándar CSSL’67 Modularidad y reutilización del código en ACSL: estructuras MACRO Entornos de modelado gráfico de los lenguajes orientados a sentencias Conclusiones TEMA 4. Lenguajes de simulación de sistemas continuos

Upload: buihanh

Post on 24-Sep-2018

226 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: TEMA 4. Lenguajes de simulación de sistemas continuosfelipe/docencia/so4inf/tema4.pdf · – Saber describir un modelo sencillo en un lenguaje de simulación del ... • Suelen tener

1

Simulación y Optimización4º Ingeniería Informática

1

TEMA 4. Lenguajes de simulación de sistemas continuos

• Objetivos– Conocer los tipos de lenguajes de simulación de sistemas continuos de

propósito general.– Saber describir un modelo sencillo en forma de diagrama de bloques.– Saber describir un modelo sencillo en un lenguaje de simulación del

estándar CSSL’67.– Reconocer un lazo algebraico en un modelo de simulación y saber como

tratarlo.– Conocer las ventajas y desventajas de los lenguajes de simulación

orientados a bloques y de los orientados a sentencias.– Conocer el funcionamiento interno de los lenguajes de simulación

orientados a bloques y de los orientados a sentencias.– Conocer la problemática asociada a la reutilización de modelos

matemáticos tanto en los lenguajes orientados a bloques como a sentencias.

Simulación y Optimización4º Ingeniería Informática

2

• Contenidos:– Lenguajes de simulación: ¿qué son?, ventajas y clasificación.– Lenguajes de simulación orientados a bloques:

• Descripción del modelo, ordenación de bloques y estructura de cálculo• Librerías de componentes: modularización y ¿reutilización?• Ventajas e inconvenientes

– Lenguajes de simulación orientados a sentencias• Estándar CSSL’67• ACSL,un lenguaje orientado a sentencias del estándar CSSL’67• Modularidad y reutilización del código en ACSL: estructuras MACRO• Entornos de modelado gráfico de los lenguajes orientados a sentencias• Conclusiones

TEMA 4. Lenguajes de simulación de sistemas continuos

Page 2: TEMA 4. Lenguajes de simulación de sistemas continuosfelipe/docencia/so4inf/tema4.pdf · – Saber describir un modelo sencillo en un lenguaje de simulación del ... • Suelen tener

2

Simulación y Optimización4º Ingeniería Informática

3

Lenguajes de simulación

• ¿Qué son?Son programas de ordenador que facilitan:

La descripción del modelo y la asignación de causalidad computacional (manipulación de las ecuaciones).La descripción de los experimentos a realizar sobre el mismoLa resolución numérica del sistema de ecuaciones resultanteLa visualización de los resultados y el uso de la simulación

¿Ventajas?Dan fiabilidad a los resultadosPermiten ahorrar tiempoPermiten concentrarse en el problema y no en la programaciónAbren el campo a no expertos en informática

Simulación y Optimización4º Ingeniería Informática

4

Page 3: TEMA 4. Lenguajes de simulación de sistemas continuosfelipe/docencia/so4inf/tema4.pdf · – Saber describir un modelo sencillo en un lenguaje de simulación del ... • Suelen tener

3

Simulación y Optimización4º Ingeniería Informática

5

Lenguajes de simulación orientados a bloques

• Precursores: simuladores analógicos– Construían un circuito eléctrico con unas ecuaciones semejantes a

las del modelo se quiere resolver– Cada variable del modelo tenia su correspondiente variable en el

circuito posiblemente escalada– El funcionamiento del circuito proporcionaba el valor de las

variables del modelo– Ejemplo:

)()()( tFtxdt

tdx=+τ Vi= F V0= x

R

C

CR·=τ

Simulación y Optimización4º Ingeniería Informática

6

Lenguajes de simulación orientados a bloques

• Descripción del modelo:– Se hace en términos de un lenguaje que

reflejaba el diagrama de bloques que se hubiera utilizado para resolver el problema en una computadora analógica.

– Existe una librería de bloques de cálculo:• Cada bloque tiene una causalidad

computacional predefinida (entradas y salidas) y calcula el valor de la salida en función del valor de las entradas.

• El modelo se define interconectando entre si los bloques.

• Tipos de bloques: integradores, sumadores, ganancias, funciones especiales (limitadores,...)

• Suelen tener una interfaz gráfica (entorno de modelado).

Page 4: TEMA 4. Lenguajes de simulación de sistemas continuosfelipe/docencia/so4inf/tema4.pdf · – Saber describir un modelo sencillo en un lenguaje de simulación del ... • Suelen tener

4

Simulación y Optimización4º Ingeniería Informática

7

• Método para transformar una ecuación diferencial en un diagrama bloques:– Ejemplo:

Lenguajes de simulación orientados a bloques

• Paso 1: la ecuación diferencial debe de organizarse de modo que la derivada de mayor orden aparezca despejada en la parte izquierda de la ecuación.

• Paso 3: utilizar el resto de bloques para tratar de reflejar la ecuación diferencial representada.

• Paso 2: dibujar una cascada de integradores con tantos bloques como derivadas aparezcan en la ecuación.

( ) .0)()(1·)(·)(·)( 3111 =+−+′+′′+′′′ dtytyctybtyaty

( ) dtytyctybtyaty −−−′−′′−=′′′ )()(1·)(·)(·)( 3111

Simulación y Optimización4º Ingeniería Informática

8

tBtF

thgKtFdt

tdhA

·)(

)()()(

=

⋅−=

– Ejemplo: modelo de un depósito (A=2, K=1, g=9.8, Flujo de entrada aumenta linealmente con el tiempo)

F

h

Generador de rampas

Raiz cuadrada

Sumador

Integrador

1

0.5

2

4

-1.56

F h

3

tBtF

thA

gKtFAdt

tdh

·)(

)()(1)(

=

−=

Page 5: TEMA 4. Lenguajes de simulación de sistemas continuosfelipe/docencia/so4inf/tema4.pdf · – Saber describir un modelo sencillo en un lenguaje de simulación del ... • Suelen tener

5

Simulación y Optimización4º Ingeniería Informática

9

– Ejemplo: circuito eléctrico

dt

tdiLtU

dttdUCti

RtitUtU tURtitU

tAtU

LL

CC

LL

CC

)()(

)()(

2)·()()()(1)·()(

)··sin()(

=

=

+=+=

= ω

2)·()()(1

)()()(

)()(

)()()·(·)(

Rt- itUtU

R

t-UtUti

LtU

dttdi

Cti

dttdU

tsinAtU

LL

CC

LL

CC

=

=

=

=

= ω

Ecuacionesdel modelo

Manipulación del modelo

•Observar si se dispone de tantas ecuaciones como variables

•Si es así, intentar despejar de cada ecuación una de las variables

•Las variables que aparecen en una única ecuación se despejan de dicha ecuación.

•Las variables que aparecen derivadas se calculan por integración numérica (despejamos la derivada de la variables)

•Pueden aparecer problemas en la manipulación de las ecuaciones que pueden requerir actuaciones más complejas

Simulación y Optimización4º Ingeniería Informática

10

Diagrama de bloques

2)·()()(1

)()()(

)()(

)()()·(·)(

Rt- itUtU

R

t-UtUti

LtU

dttdi

Cti

dttdU

tsinAtU

LL

CC

LL

CC

=

=

=

=

= ω

Page 6: TEMA 4. Lenguajes de simulación de sistemas continuosfelipe/docencia/so4inf/tema4.pdf · – Saber describir un modelo sencillo en un lenguaje de simulación del ... • Suelen tener

6

Simulación y Optimización4º Ingeniería Informática

11

Lenguajes de simulación orientados a bloques: funcionamiento del programa de simulación

Simulación y Optimización4º Ingeniería Informática

12

Lenguajes de simulación orientados a bloques: edición del diagrama (ej: simulink)

• Ejemplo SIMULINK (muelle)

Page 7: TEMA 4. Lenguajes de simulación de sistemas continuosfelipe/docencia/so4inf/tema4.pdf · – Saber describir un modelo sencillo en un lenguaje de simulación del ... • Suelen tener

7

Simulación y Optimización4º Ingeniería Informática

13

• Ordenación de los bloques:– Anotarlos en la lista de bloques

calculables los bloques sin entrada• 1

– Suponiendo conocidas, condiciones iniciales, en t=0 la salida de los bloques tipo integrador (estados) , ver qué bloques tienen definidas sus entradas y anotarlos en la lista de bloques calculables e iterar hasta agotar el numero de bloques

• 2 y 3• 4 y 5• 6 y 7• 8 y 9

– Si en una iteración no hay nuevos bloques calculables: lazo algebraico

2

83

64

75 9

1

Lenguajes de simulación orientados a bloques: ordenación de los bloques (ej: simulink)

Simulación y Optimización4º Ingeniería Informática

14

Lenguajes de simulación orientados a bloques: estructura de cálculo

Partir de valores inicialeso bloques sin entrada

Calcular la salida de cada bloque en tsegún el orden de cálculo. Evaluar

las entradas a todos los integradores

Integrar las ecuaciones para obtener elvalor de las variables de estado en t+h

Page 8: TEMA 4. Lenguajes de simulación de sistemas continuosfelipe/docencia/so4inf/tema4.pdf · – Saber describir un modelo sencillo en un lenguaje de simulación del ... • Suelen tener

8

Simulación y Optimización4º Ingeniería Informática

15

Lenguajes de simulación orientados a bloques: lazos algebraicos

z(t) = 5·(sin(t) – ez(t))

SumSine Wave

Scope

eu

MathFunction

5

Gain¿Ordenación de

bloques?

Sum1Sum

Sine Wave

Scope

eu

MathFunction

5

Gainf (z) z

Solvef(z) = 0

Algebraic Constraint

Solución: uso de un bloque especial que resuelve ecuaciones

implícitas

Simulación y Optimización4º Ingeniería Informática

16

SOLUCIÓN

Otro ejemplo: z2=1-z1; z1=z2-1. z2=1, z1=0

Page 9: TEMA 4. Lenguajes de simulación de sistemas continuosfelipe/docencia/so4inf/tema4.pdf · – Saber describir un modelo sencillo en un lenguaje de simulación del ... • Suelen tener

9

Simulación y Optimización4º Ingeniería Informática

17

Tratamiento de eventos en SIMULINK• Bloque para la detección del evento: Hit Crossing.

– La salida del bloque vale la unidad en el instante en el que sucede el evento, el resto del tiempo su valor es cero.

– Puede distinguir el cruce por el valor asociado al evento en ambas direcciones, en dirección positiva y en dirección negativa.

Simulación y Optimización4º Ingeniería Informática

18

• El bloque integrator tiene la posibilidad de tener un reset interno cuando sucede un evento.

– Cuando sucede el evento el valor de la variable de salida es el valor de la entrada de condición inicial y se reinicia la integración numérica

dy/dty(t)Variable asociada al evento

Condición inicial

Estado del sistema (y(t)), cuando se necesite introducir la salida del integrador como entrada a través de la entrada de condición inicial

Page 10: TEMA 4. Lenguajes de simulación de sistemas continuosfelipe/docencia/so4inf/tema4.pdf · – Saber describir un modelo sencillo en un lenguaje de simulación del ... • Suelen tener

10

Simulación y Optimización4º Ingeniería Informática

19

Ejemplo: simulación del bote de la pelota

0 x(t)cuando )(·8.0)(

)()(

81.9)(

=−=

=

−=

tvtv

tvdt

tdxdt

tdv

Simulación y Optimización4º Ingeniería Informática

20

Lenguajes de simulación orientados a bloques: modularización (librerías-jerarquía)

Page 11: TEMA 4. Lenguajes de simulación de sistemas continuosfelipe/docencia/so4inf/tema4.pdf · – Saber describir un modelo sencillo en un lenguaje de simulación del ... • Suelen tener

11

Simulación y Optimización4º Ingeniería Informática

21

Lenguajes de simulación orientados a bloques: modularización (ejemplo)

• Cuatro niños en patinete empiezan a moverse a partir de diferentes coordenadas. Cada uno de ellos se mueve a una velocidad constante y su dirección de desplazamiento es la línea recta que une su posición actual con la de su siguiente vecino, es decir el niño 1 trata de alcanzar al niño 2, el niño 2 trata de alcanzar al niño 3, …

( ) ( )

( ) ( ))()(

)()()()(

))()(()(

)()(

)()()()(

))()(()(

21

21

1

21

21

1

tvty

tytytxtx

tytyvtv

tvtx

tytytxtx

txtxvtv

yjj

jjjj

jjjyj

xjj

jjjj

jjjxj

=′

−+−

−=

=′

−+−

−=

++

+

++

+

• Las ecuaciones de movimiento de cada niño (j) en las direcciones x e y son:

• Ejemplo SIMULINK

Simulación y Optimización4º Ingeniería Informática

22

Parámetros: vj

Condiciones iniciales:

xj(t=0) e yj(t=0)

Variables de entrada externas al modelo:

xj+1 e yj+1

( ) ( )

( ) ( )212

1

1

21

21

1

)()()()(

))()(()(

)()()()(

))()(()(

)()(

)()(

tytytxtx

tytyvtv

tytytxtx

txtxvtv

tvty

tvtx

jjjj

jjjyj

jjjj

jjjxj

yjj

xjj

++

+

++

+

−+−

−=

−+−

−=

=′

=′

Ecuaciones ordenadas y despejadas:Para un único niño

Page 12: TEMA 4. Lenguajes de simulación de sistemas continuosfelipe/docencia/so4inf/tema4.pdf · – Saber describir un modelo sencillo en un lenguaje de simulación del ... • Suelen tener

12

Simulación y Optimización4º Ingeniería Informática

23

Esa conducta puede encapsularse bajo un subsistema y reutilizar dicho modelo

Simulación y Optimización4º Ingeniería Informática

24

Conclusiones• Las principales ventajas son:

– Sencillos e intuitivos– Fáciles de construir debido a su interfaz gráfica

• Los principales inconvenientes de esta forma de simulación son:– La descripción del modelo no se asemeja a la formulación matemática original, por lo

que, normalmente genera un gran número de bloques (aún para problemas de escasa magnitud), lo que dificulta su depuración y modificación.

– La forma de cálculo de las ecuaciones (bloque a bloque) es muy lenta.– Esta forma de cálculo de las ecuaciones hace muy difícil la solución de ecuaciones

algebraicas, aún siendo matemáticamente correctas dan lugar a mensajes de error y se precisa el uso de bloques especiales.

– No existe separación modelo y experimento, lo cual resta flexibilidad y limita el uso del modelo.

– Al construir un modelo en base a una librería de bloques definida por el usuario pueden aparecer lazos algebraicos de difícil o incluso imposible solución.

– Construcciones jerárquicas y modulares con causalidad computacional fija (no reutilizables).

Page 13: TEMA 4. Lenguajes de simulación de sistemas continuosfelipe/docencia/so4inf/tema4.pdf · – Saber describir un modelo sencillo en un lenguaje de simulación del ... • Suelen tener

13

Simulación y Optimización4º Ingeniería Informática

25

Lenguajes de simulación orientados a sentencias• Estándar: CSSL’67 (Simulation 1967 Vol.9, pp. 281-303)

– Declaración directa de las ecuaciones en términos similares a la formulación matemática habitual.

– El programa se estructura temporalmente en tres regiones: inicial, dinámica y terminal.

– Generadores de código: • El programa que realiza la simulación no procesa continuamente los datos que

constituyen la descripción del modelo, sino que dicha descripción se utiliza para generar código en un lenguaje de alto nivel, por ejemplo FORTRAN, que después de ser compilado y montado con las librerías del sistema origina un código ejecutable que es quien resuelve el problema.

– El hecho de estar basado en un lenguaje de alto nivel facilita la tarea de incluir nuevas funciones (escritas en ese lenguaje de alto nivel) aumentando así las capacidades del lenguaje de simulación.

– La realización de experimentos con el modelo, presentación de resultados,... se hace por medio de un lenguaje de comandos que el usuario introduce a través de algún terminal del ordenador, constituyendo un paso hacia la separación del modelo y el experimento.

– ¿Reutilización? Uso de estructuras tipo MACRO.

Simulación y Optimización4º Ingeniería Informática

26

Lenguajes de simulación orientados a sentencias:Estructura del código CSSL’67

program deposito

INITIAL

DATA h0=1 , TMAX=1

END

DYNAMICDATA K=1 , A=2h=INTEG(F/A - K/A*SQRT(9.8*h),h0)TERMINATE (T>TMAX)

ENDEND

PROGRAM · · ····INITIAL

Sentencias que se ejecutan al comienzo de lasimulación.

END

DYNAMIC

Descripción de las ecuaciones del modelo.

END

TERMINAL

Sentencias que se ejecutan al final del modelo

ENDEND

A dhdt

F K g h= − ⋅

F

h

Page 14: TEMA 4. Lenguajes de simulación de sistemas continuosfelipe/docencia/so4inf/tema4.pdf · – Saber describir un modelo sencillo en un lenguaje de simulación del ... • Suelen tener

14

Simulación y Optimización4º Ingeniería Informática

27

Lenguajes de simulación orientados a sentencias:Generación de código

Edición delfichero

con el modelo.

Preprocesador paraanalizar el modelo,ordenar sentenciasy generar códigoen un lenguajede alto nivel.

Códigofuente.

Códigoobjeto.

Lenguaje decomandos.

Programaejecutableque realiza

la simulación.

Presentaciónde

resultados.

Librerias delsistema y dellenguaje desimulación.

Montaje

Compilación

Simulación y Optimización4º Ingeniería Informática

28

ACSL (Advanced Continuous Simulation Language) un lenguaje orientado a sentencias del estándar CSSL’67

Estructura del modelo

INITIALSentencias que se ejecutan en el instante inicial.

END

DERIVATIVESentencias que se integran continuamente

END

DISCRETESentencias que se ejecutan a intervalos discretos

END

DYNAMIC

END

TERMINALSentencias que se ejecutan al final de la simulación.

END

PROGRAM

END

Page 15: TEMA 4. Lenguajes de simulación de sistemas continuosfelipe/docencia/so4inf/tema4.pdf · – Saber describir un modelo sencillo en un lenguaje de simulación del ... • Suelen tener

15

Simulación y Optimización4º Ingeniería Informática

29

ACSL: sentencias de definición del modelo• De definición de tipos de variables

– Ej: REAL x(7), INTEGER h, LOGICAL flag ...• De definición del modelo

– Expresiones del tipo variable = expresión, junto a funciones propias de ACSL y llamadas a rutinas FORTRAN.

• Se considera una expresión a una combinación de operadores, funciones y operandos que cuando son evaluados producen un valor numérico único. Las expresiones pueden contener operadores aritméticos, lógicos y relacionales. Dentro de las funciones debemos destacar las estándar de FORTRAN así como las propias del lenguaje.

– Las sentencias que definen el modelo pueden escribirse en cualquier orden, pero para que una expresión sea correcta los valores de las variables de la expresión necesitan poder ser calculados previamente. Por eso una variable puede estar a ambos lados del signo igual si en la expresión figura un integrador o un solucionador de ecuaciones implícitas. En ACSL los operadores integrador son los más característicos e importantes y típicamente tienen la forma: INTEG(expresión, valor inicial).

– CONSTANT parametro=valor

dxdt

x u x

u t

= − ⋅ + =

=

9 8 3 0 12. ( ) .

cos( )

siendo

program modeloinitial

constant x0=1.endderivative

constant g=9.8x=integ(g-3*x**2+u,x0)u=cos(t)

endend

Ejemplo

Simulación y Optimización4º Ingeniería Informática

30

• Otras expresiones:

• Descripción tipo Fortran: exp, sin , IF THEN ELSE,...

• Primitivas de ACSL: BOUND, REALP, DELAY,….

• Generadores de Funciones: SIN, PULSE,...

• Tablas 2D y 3D

• Ecuaciones implícitas: IMPLC

• Tratamiento de eventos: SCHEDULE, INTERVAL,..

• Llamadas externas: call...• De definición de las condiciones en que se realiza la simulación

• palabre clave variable=valor

Page 16: TEMA 4. Lenguajes de simulación de sistemas continuosfelipe/docencia/so4inf/tema4.pdf · – Saber describir un modelo sencillo en un lenguaje de simulación del ... • Suelen tener

16

Simulación y Optimización4º Ingeniería Informática

31

Simulación y Optimización4º Ingeniería Informática

32

ACSL: lenguaje de comandos

Page 17: TEMA 4. Lenguajes de simulación de sistemas continuosfelipe/docencia/so4inf/tema4.pdf · – Saber describir un modelo sencillo en un lenguaje de simulación del ... • Suelen tener

17

Simulación y Optimización4º Ingeniería Informática

33

Ejemplo de modelado en ACSL

.0)1·(·· 3111 =+−+++ dyycybyay &&&&&&

dyycybyay −−−−−= )1·(·· 3111 &&&&&&

Despejando la derivada de mayor orden

La transformamos en un sistema de ecuaciones diferenciales de primer orden

dyycvbaadyycybyaya

yvayv

−−−−−=−−−−−==

===

)1·(··)1·(··)(

)(

311

31111

111

11

&&&&&&&

&&&

&

program suspensioninitial

!Condiciones inicialesconstant y10=..., v10=..., a10=...!Condiciones de la integración!Tienen valores por defectocinterval cint=0.1nsteps nstp=10algorithm ialg=5!Tiempo máximo de simulaciónconstant tmax=10.

enddynamicderivative

!Parámetros del modeloconstant a=..., b=..., c=..., d=....!Ecuaciones del modeloy1=integ(v1,y10)v1=integ(a1,v10)a1=integ(-a*a1-b*v1-c*(y1-y3)-d,a10)!La señal y3 es conocida en el tiempo ej:y3=cos(t)

endtermt(t.gt.tmax)

endend

Simulación y Optimización4º Ingeniería Informática

34

Ejemplo de modelado en ACSL

program circuitoinitial

!Condiciones inicialesconstant uc0=..., il0=....!Condiciones de la integración!Tienen valores por defectocinterval cint=0.01nsteps nstp=10algorithm ialg=5!Tiempo máximo de simulaciónconstant tmax=1.

enddynamicderivative

!Parámetros del modeloconstant a=..., w=...constant r1=..., r2=...., c=..., l=...!Ecuaciones del modelouc=integ(ic/c,uc0)il=integ(ul/l,il0)ic=(u-uc)/r1ul=u-il*r2!La señal u es conocida en el tiempo ej:u=a*sin(w*t)

endtermt(t.gt.tmax)

endend

LUdt

di

C/idt

dURU-iU

/R(U-UitWAU

LL

CC

LL

CC

/

2·1))··sin(

=

=

===

Page 18: TEMA 4. Lenguajes de simulación de sistemas continuosfelipe/docencia/so4inf/tema4.pdf · – Saber describir un modelo sencillo en un lenguaje de simulación del ... • Suelen tener

18

Simulación y Optimización4º Ingeniería Informática

35

ACSL: ejecución del modelo de simulación

• En el caso de que existan eventos y discontinuidades en el modelo:

– ACSL hace una lista de eventos y condiciones para que estos sucedan, de modo que los eventos en el tiempo los tiene perfectamente localizados y los eventos en el espacio de estados los comprueba cada intervalo de comunicación.

– Evidentemente el tamaño del paso de integración está en función de los eventos. Asílos algoritmos de paso variable funcionan bien con los eventos y los de paso fijo no, porque no pueden reducir el tamaño del paso.

Simulación y Optimización4º Ingeniería Informática

36

Generación del código de simulación:ordenación de sentencias

• Una vez se ha escrito un fichero *.csl se invoca el programa ACSL. Lo que origina una traducción del fichero *.csl para generar un fichero FORTRAN, que serácompilado y linkado hasta generar un ejecutable.

• Pasos previos a la generación de código FORTRAN:– Busca errores sintácticos en las sentencias, y otros tipos de errores de cálculo, como por

ejemplo variables no definidas, etc y lanza los correspondientes mensajes de error.– Si no existen errores sintácticos, ACSL procede a ordenar las ecuaciones para encontrar el

orden correcto en el que deben ejecutarse las sentencias.• ACSL ordenará las sentencias que se encuentren dentro de regiones derivative o en

otras secciones en las cuales de encuentre la sentencia sort.• El algoritmo de ordenación de ecuaciones es muy sencillo:

– ACSL se crea dos listas. La primera con todas las variables del modelo y marca en ella como conocidas las variables de estado (las que calcula por integración). La otra con todas las sentencias, las variables de salida de la sentencia y las variables que necesita para calcular esa variable de salida.

– Una vez construidas las listas, va pasando por la lista de sentencias. Si la sentencia seleccionada es tal que para calcular su variable de salida ya dispone de todas las variables necesarias entonces marca como conocida esa variable de salida y saca de la lista dicha sentencia, en otro caso la envía la final de la lista. El algoritmo finaliza cuando todas las variables están marcadas como conocidas y la lista de sentencias está ordenada.

Page 19: TEMA 4. Lenguajes de simulación de sistemas continuosfelipe/docencia/so4inf/tema4.pdf · – Saber describir un modelo sencillo en un lenguaje de simulación del ... • Suelen tener

19

Simulación y Optimización4º Ingeniería Informática

37

Ejemplo de ordenación de sentencias

Consideremos este modelo en una región derivative

R=RZ+LR

AREA=PI*R**2

CONSTANT PI=3.142, RZ=1.0

LR=INTEG(AREA,0.0)

Simulación y Optimización4º Ingeniería Informática

38

ACSL: lazos algebraicos• ¿Cómo implemento en ACSL z=5·(sin(t)-ez)?

– z=5*(sin(t)-exp(z)) es un lazo algebraico, para calcular z necesito conocer z.

– Solución: operador implícito (como en SIMULINK):• constant z0=... !estimación inicial de z• z=impl(z-5*(sin(t)-exp(z)),z0)

• ¿Qué sucede si escribo las siguientes sentencias en una región derivative?– CONSTANT CV1=5. , CV2=3.– CONSTANT P1=1.5, P3=1.– W=CV1*SQRT(P1-P2)– P2=(W/CV2)**2+P3

• ACSL me dice unsortable statement block ¿?

Page 20: TEMA 4. Lenguajes de simulación de sistemas continuosfelipe/docencia/so4inf/tema4.pdf · – Saber describir un modelo sencillo en un lenguaje de simulación del ... • Suelen tener

20

Simulación y Optimización4º Ingeniería Informática

39

Simulación y Optimización4º Ingeniería Informática

40

• Soluciones:– Decirle que no ordene el bloque, para ello lo incluiremos en un

bloque procedural. Pero deberemos inicializar alguna variable en el bloque initial, para que no se produzcan errores numéricos:

INITIAL P2=1.25END...CONSTANT CV1=5. , CV2=3.CONSTANT P1=1.5, P3=1.PROCEDURAL (W,P2=P1,P3)W=CV1*SQRT(P1-P2)P2=(W/CV2)**2+P3END

– Utilizar un operador implícito (IMPLC), por ejemplo:CONSTANT WI=10.

W=IMPLC(W-CV1*SQRT(P1-P2),WI)

P2=(W/CV2)**2+P3

Page 21: TEMA 4. Lenguajes de simulación de sistemas continuosfelipe/docencia/so4inf/tema4.pdf · – Saber describir un modelo sencillo en un lenguaje de simulación del ... • Suelen tener

21

Simulación y Optimización4º Ingeniería Informática

41

Modularidad y reutilización en ACSL

• El objetivo es descomponer un sistema de un modo jerárquico y modular, de modo que:

– Facilite la lectura de un modelo.– Permita la reutilización de componentes.– Permita la agrupación jerárquica de componentes.

• ACSL tiene un mecanismo que trata de proveer el modelado modular y jerárquico, las llamadas MACROS:

– Una MACRO es una estructura de programación que permite encapsular el código de simulación para su utilización repetitiva al definir nuevos operadores de un modo similar a los subprogramas o subrutinas de los lenguajes de programación tradicionales.

– Son diferentes a las subrutinas o subprogramas• Permiten incluir llamadas a otras MACROS y operadores de ACSL.• El código que contiene la MACRO se expande ante de sus análisis y compilación.• Se define en el mismo programa ACSL (antes de usarlas) o se pueden tener

“compiladas” en un fichero externo al código del modelo en el que se usen.

Simulación y Optimización4º Ingeniería Informática

42

Ejemplo de MACROS• Consideremos el siguiente modelo matemático de modo que conocido

el valor de u nos calcula la evolución en el tiempo de y:

xy

uxdtdx

·3

·3

=

+−=

• Una posible MACRO que encapsula dicho modelo es:

MACRO SIST_LIN(salida,entrada,v0)MACRO redefine v,dervMACRO standval v0=0.derv=-3*v+entradav=integ(derv,v0)salida=3*v

MACRO END

• Un posible uso de esta MACRO (se puede invocar de diferentes maneras) en un modelo ACSL es:

program ejemplo

initialconstant tmax=10.constant x0=5.

end

dynamicderivative

u=sin(0.5*t)sist_lin(y,u,x0)

endtermt(t.gt.tmax)

endend

Page 22: TEMA 4. Lenguajes de simulación de sistemas continuosfelipe/docencia/so4inf/tema4.pdf · – Saber describir un modelo sencillo en un lenguaje de simulación del ... • Suelen tener

22

Simulación y Optimización4º Ingeniería Informática

43

• El código ACSL que se genera es:

program ejemploinitial

constant tmax=10.constant x0=5.

end

dynamicderivative

u=sin(0.5*t)Znnnn1=3*Znnnn2+uZnnnn2 =integ(Znnnn1,x0)y=3*Znnnn2

endtermt(t.gt.tmax)

endend

• Otro ejemplo de uso de esta MACRO (con una invocación múltiple) es:

program ejemplo2initial

constant tmax=10.constant x0=5.

enddynamic

derivativeu=sin(0.5*t)q=5*ramp(2)sist_lin(y,u,x0)sist_lin(p,q)

endtermt(t.gt.tmax)

endend

...dynamic

derivativeu=sin(0.5*t)q=5*ramp(2)Znnnn1=3* Znnnn2+uZnnnn2=integ(Znnnn1,x0)y=3* Znnnn2Znnnn3=3* Znnnn4+qZnnnn4=integ(Znnnn3,x0)p=3* Znnnn4

end...

Simulación y Optimización4º Ingeniería Informática

44

• ¿Cuando son útiles las MACROS?– Cuando se tiene un operador que se va a usar muchas veces.– ¿Cuando modelamos subsistemas que se repiten y son conectables entre si?

• Problemas de las MACROS– Variables globales.– La sustitución de argumentos puede conducir a errores si no se conoce la estructura

interna de la MACRO o esta no está definida con detalle.– Se permite la selección de código en la invocación de la MACRO, pero sólo en

tiempo de compilación no de ejecución.– Dificultades para el manejo de parámetros en llamadas jerárquicamente largas.– La conexión entre componentes se hace a nivel de variables.– Causalidad computacional fija.

• Implica desarrollar múltiples modelos de una misma entidad física.• El desconocimiento de las ecuaciones que subyacen a las MACROS puede conducir a la

aparición de lazos algebraicos en el modelo de simulación.– Desarrollo de librerías de componentes muy extensas y difíciles de diseñar e

invocar correctamente. Los OOML resuelven de una forma bastante eficiente este problema.

Page 23: TEMA 4. Lenguajes de simulación de sistemas continuosfelipe/docencia/so4inf/tema4.pdf · – Saber describir un modelo sencillo en un lenguaje de simulación del ... • Suelen tener

23

Simulación y Optimización4º Ingeniería Informática

45

Problema de las variables globales• Las variables que contienen las MACROS son variables

globales y en el caso de que no se definan correctamente dan lugar a errores

• Ejemplo:

xy

uxdtdx

·3

·3

=

+−=

MACRO SIST_LIN(salida,entrada,v0)!MACRO redefine v,derv (no incluida)MACRO standval v0=0.derv=-3*v+entradav=integ(derv,v0)salida=3*v

MACRO END

program ejemplo2initial

constant tmax=10.constant x0=5.

enddynamic

derivativeu=sin(0.5*t)q=5*ramp(2)sist_lin(y,u,x0)sist_lin(p,q)

endtermt(t.gt.tmax)

endend

...dynamic

derivativeu=sin(0.5*t)q=5*ramp(2)derv=3*v+uv=integ(derv,x0)y=3*vderv=3*v+qv=integ(derv,0.)p=3*q

end...

Error: v y derv calculadas dos

veces

Simulación y Optimización4º Ingeniería Informática

46

• Además si se quiere tener acceso a ciertas variables “internas” de la MACRO están deben definirse en su invocación.

• Ejemplo:

xy

uxdtdx

·3

·3

=

+−=

MACRO SIST_LIN(salida,entrada,v0)MACRO redefine v,dervMACRO standval v0=0.derv=-3*v+entradav=integ(derv,v0)salida=3*v

MACRO END

program ejemplo

initialconstant tmax=10.constant x0=5.

end

dynamicderivative

u=sin(0.5*t)sist_lin(y,u,x0)

endtermt(t.gt.tmax)

endend

program ejemploinitial

constant tmax=10.constant x0=5.

end

dynamicderivative

u=sin(0.5*t)Znnnn1=3*Znnnn2+uZnnnn2 =integ(Znnnn1,x0)y=3*Znnnn2

endtermt(t.gt.tmax)

endend

Page 24: TEMA 4. Lenguajes de simulación de sistemas continuosfelipe/docencia/so4inf/tema4.pdf · – Saber describir un modelo sencillo en un lenguaje de simulación del ... • Suelen tener

24

Simulación y Optimización4º Ingeniería Informática

47

• Ejemplo, si quiero poder acceder a la x entonces:

xy

uxdtdx

·3

·3

=

+−=

MACRO SIST_LIN(salida,entrada,x,v0)MACRO dervMACRO standval v0=0.derv=-3*x+entradax=integ(derv,v0)salida=3*x

MACRO END

program ejemplo

initialconstant tmax=10.constant x0=5.

end

dynamicderivative

u=sin(0.5*t)sist_lin(y,u,x,x0)

endtermt(t.gt.tmax)

endend

program ejemploinitial

constant tmax=10.constant x0=5.

end

dynamicderivative

u=sin(0.5*t)Znnnn1=3*x+ux =integ(Znnnn1,x0)y=3*x

endtermt(t.gt.tmax)

endend

Simulación y Optimización4º Ingeniería Informática

48

Problema de la sustitución de argumentos• Ej: consideremos la acumulación

de líquido en un tanque: WoWidtdm

−=

MACRO DEPO(m,wi,wo,mi)m=integ(wi-wo,mi)

MACRO END

program tanque1initial

constant tmax=10.constant masai=...constant w1=..., w2=...

enddynamic

derivativeDEPO(masa,w1,w2,masai)endtermt(t.gt.tmax)

endend

Wi

m

Wo

program tanque1initial

constant tmax=10.constant masai=...constant w1=..., w2=...

enddynamic

derivativemasa=integ(w1-w2,masai)endtermt(t.gt.tmax)

endend

W1

m

W2

Page 25: TEMA 4. Lenguajes de simulación de sistemas continuosfelipe/docencia/so4inf/tema4.pdf · – Saber describir un modelo sencillo en un lenguaje de simulación del ... • Suelen tener

25

Simulación y Optimización4º Ingeniería Informática

49

MACRO DEPO(m,wi,wo,mi)m=integ(wi-wo,mi)

MACRO END program tanque2initial

constant tmax=10.constant masai=...constant w1=..., w21=..., w22=...

enddynamic

derivativeDEPO(masa,w1,w21+w22,masai)endtermt(t.gt.tmax)

endend

program tanque1initial

constant tmax=10.constant masai=...constant w1=..., w2=...

enddynamic

derivativemasa=integ(w1-w21+w22,masai)endtermt(t.gt.tmax)

endend

22211 WWWdtdm

−−=W1

m

W22W21

Erróneo

program tanque2initial

constant tmax=10.constant masai=...constant w1=..., w21=..., w22=...

enddynamic

derivativeDEPO(masa,w1,(w21+w22),masai)endtermt(t.gt.tmax)

endend

program tanque1initial

constant tmax=10.constant masai=...constant w1=..., w2=...

enddynamic

derivativemasa=integ(w1-(w21+w22),masai)endtermt(t.gt.tmax)

endend

Correcto,pero requiere saber como está programada la MACRO

Otra soluciónMACRO DEPO(m,wi,wo,mi)

m=integ((wi)-(wo),(mi))MACRO END

Simulación y Optimización4º Ingeniería Informática

50

Problema de la selección de las ecuaciones del modelo en tiempo de simulación

• Las estructuras MACRO tienen prevista la selección del modelo de una misma entidad física, pero en “tiempo de traducción” no de simulación.

• Ejemplo: supongamos que queremos modelar un motor DC y que queremos utilizar dos modelos de diferente grado de complejidad y poder elegir uno u otro.

MACRO DC (lista de variables,modelo)...MACRO if (modelo=1) etiqueta1

Ecuaciones 2MACRO goto etiqueta2MACRO etiqueta1..continue

Ecuaciones 1MACRO etiqueta2..continue

Ecuaciones comunesMACRO END

• Problema adicional:El paso de parámetros y de variables a la MACRO es el mismo usemos un modelo u otro, lo cual requiere pasar parámetros y variables innecesarias según se use un modelo u otro.

Page 26: TEMA 4. Lenguajes de simulación de sistemas continuosfelipe/docencia/so4inf/tema4.pdf · – Saber describir un modelo sencillo en un lenguaje de simulación del ... • Suelen tener

26

Simulación y Optimización4º Ingeniería Informática

51

Problema del paso de parámetros entre MACROS en diferentes niveles de la estructura jerárquica

• Las estructuras MACRO obligan al paso de argumentos de una MACRO jerárquicamente inferior a otra superior. En un lenguaje de modelado orientado a objetos no se hace ese paso de variables, sino que los componentes se organizan de forma jerárquica por especialización o agregación.

• Ejemplo: dos modelos de resistencias eléctricas, en uno de ellos se considera que la resistividad depende de la temperatura.

MACRO RESISTOR (V,I,R)V=R*IMACRO END

MACRO RESISTOR_T (V,I,T,a0,a1) MACRO REDEFINE RR=a0+a1*TRESISTOR(V,I,R)MACRO END

Se pasa como argumento las variables V e I.Sintácticamente es poco eficiente

Simulación y Optimización4º Ingeniería Informática

52

Problema de la conexión de componentesa nivel de variables

• Si un modelador desarrolla una librería de componentes que sea fácil de utilizar por un usuario final de la misma lo lógico es poder conectar los componentes a través de puertos físicos no a nivel de variables:

– Conexiones eléctricas (voltajes e intensidades).– Conexiones mecánicas (pares, velocidades).– Conexiones hidraúlicas (presiones, caudales, temperaturas, concentraciones).

• Las MACROS no permiten definir una interface que permita estructurar las variables que comparten los componentes.

• Las conexiones sólo se realizan variable a variable, lo cual:– Dificulta el uso de la librería de componentes (conexiones demasiado complejas).– Implica que no exista una analogía entre el componente modelado y su

correspondiente MACRO.• Este modo de conectar componentes sólo es útil cuando las conexiones entre

componentes requieran una sola variable (ej: diagramas de bloques).

Page 27: TEMA 4. Lenguajes de simulación de sistemas continuosfelipe/docencia/so4inf/tema4.pdf · – Saber describir un modelo sencillo en un lenguaje de simulación del ... • Suelen tener

27

Simulación y Optimización4º Ingeniería Informática

53

Problema de la causalidad computacional fija

• Los modelos matemáticos que contienen las macros tienen definida su causalidad matemática lo cual implica que:

• Las variables de entrada y salida están predeterminadas.• Las ecuaciones del modelo están manipuladas simbólicamente de una

determinada manera que es fija.• Problemas:

– Impiden la reutilización del código, desde el punto de vista del modelado, porque los modelos matemáticos no pueden adaptarse al contexto al no estar permitida la manipulación simbólica de ecuaciones.

– Así, si se quiere disponer de una librería de MACROS completa por cada unidad física a modelar deberían desarrollarse tantas MACROS como posibilidades lógicas de manipulación de las ecuaciones.

– Pueden aparecer lazos algebraicos en el modelo de simulación al conectar ciertos componentes si no se elige la MACRO con la manipulación simbólica adecuada. Para evitarlo el usuario de la librería de MACROS debe conocer su codificación.

• Veámoslo con dos ejemplos:– Circuito eléctrico.– Conexiones hidráulicas.

Simulación y Optimización4º Ingeniería Informática

54

Ejemplo 1: circuito eléctrico

• Imaginemos que hemos desarrollado una librería de MACROS de componentes eléctricos:

MACRO FUENTEV (V2,V1,V)

V2=V1+V

MACRO END

MACRO RESISTENCIA (I, V1,V2,R)

I=(V1-V2)/R

MACRO END

MACRO TIERRA (V)

V=0.

END

Page 28: TEMA 4. Lenguajes de simulación de sistemas continuosfelipe/docencia/so4inf/tema4.pdf · – Saber describir un modelo sencillo en un lenguaje de simulación del ... • Suelen tener

28

Simulación y Optimización4º Ingeniería Informática

55

• Tratamos de modelar este circuito eléctrico:

Una asignación de otra forma no funcionaría, no es igual vr2=vt2 que vt2=vr2

program circuito_1initial

constant r=5, vf=2.enddynamic

derivativetierra (vt1)fuente (vf2=vf1,vf)resistencia (i=vr1,vr2,r)tierra (vt2)vf1=vt1vr2=vt2vr1=vf2

endtermt (t.gt.10.)

endend

program circuito_1initial

constant r=5, vf=2.enddynamic

derivativevt1=0.vf2=vf1+vfi=(vr1-vr2)/rvt2=0.vf1=vt1vr2=vt2vr1=vf2

endtermt (t.gt.10.)

endend

Simulación y Optimización4º Ingeniería Informática

56

• Tratemos ahora de modelar este circuito eléctrico:

program circuito_2initial

constant r1=5, r2=10, vf=2.enddynamic

derivativetierra (vt1)fuente (vf2=vf1,vf)resistencia (i1=vr11,vr12,r1)resistencia (i2=vr21,vr22,r2)tierra (vt2)vf1=vt1vr22=vt2vr11=vf2vr12=vr21i1=i2

endtermt (t.gt.10.)

endend

program circuito_2initial

constant r1=5, r2=10, vf=2.enddynamic

derivativevt1=0.vf2=vf1+vfi1=(vr11-vr12)/r1i2=(vr21-vr22)/r2vt2=0.vf1=vt1vr22=vt2vr11=vf2vr12=vr21i1=i2

endtermt (t.gt.10.)

endend

program circuito_2initial

constant r1=5, r2=10, vf=2.enddynamic

derivativevt1=0.vf2=vf1+vfi1=(vr11-vr12)/r1vr21=i2*r2+vr22vt2=0.vf1=vt1vr22=vt2vr11=vf2vr12=vr21i2=i1

endtermt (t.gt.10.)

endend

NO FUNCIONA FUNCIONARíA después de manipularlas

Page 29: TEMA 4. Lenguajes de simulación de sistemas continuosfelipe/docencia/so4inf/tema4.pdf · – Saber describir un modelo sencillo en un lenguaje de simulación del ... • Suelen tener

29

Simulación y Optimización4º Ingeniería Informática

57

• Lo cual requiere definir una nueva MACRO para la resistencia eléctrica:

MACRO RESISTENCIA (V1,I,V2,R)V1=R*I+V2MACRO END

• Asignar bien la ecuación que une las dos intensidades.• Pero es que además, en este caso, también aparece un lazo

algebraico...constant vf=..., r1=..., r2=...vt1=0.vt2=0.vf1=vt1vr22=vt2vf2=vf1+vfvr11=vf2i1=(vr11-vr12)/r1vr21=i2*r2+vr22vr12=vr21i2=i1...

Simulación y Optimización4º Ingeniería Informática

58

Ejemplo 1: circuito hidraúlico

• Imaginemos que ahora queremos modelar esta conducción y que los modelos matemáticos de tubería y válvula son:

MACRO TUBO (w=cv,p1,p2)

W=cv*sqrt(p1-p2)

MACRO END

MACRO VALVULA (w=cv,p1,p2,u)

W=cv*u*sqrt(p1-p2)

MACRO END

21· ppcvw −=

21·· ppucvw −=

Page 30: TEMA 4. Lenguajes de simulación de sistemas continuosfelipe/docencia/so4inf/tema4.pdf · – Saber describir un modelo sencillo en un lenguaje de simulación del ... • Suelen tener

30

Simulación y Optimización4º Ingeniería Informática

59

program conduccioninitial

constant cv1=50., cv2=50., cvv=25.constant pa=3., pd=1.constant u=50.

enddynamicderivative

tubo (w1=cv1,pa,pav)valvula (w2=cvv,pav,pdv,u)tubo (w3=cv2,pdv,pd)w1=w2w2=w3

endtermt (t.gt.10.)

endend

program conduccioninitial

constant cv1=50., cv2=50., cvv=25.constant pa=3., pd=1.constant u=50.

enddynamicderivative

w1=cv1*sqrt(pa-pav)w2=cvv*u*sqrt(pav-pdv)w3=cv2*sqrt(pdv-pd)w1=w2w2=w3

endtermt (t.gt.10.)

endend

NO FUNCIONA, deberían manipularse simbolicamente.

Por ejemplo así:

pav=pa-(w1/cv1)**2)w2=cvv*u*sqrt(pav-pdv)pdv=(w3/cv3)**2)-pdw1=w2w3=w2

Lo cual implica tener definidas nuevas

MACROS para la misma entidad física “tubo”

Simulación y Optimización4º Ingeniería Informática

60

Pero aún así, además tenemos un lazo

algebraico, lo cual implicaría introducir otras MACROS con

operadores implícitos para “romper” dicho

lazo

MACRO TUBO1 (w=cv,p1,p2)

W=cv*sqrt(p1-p2)

MACRO END

MACRO TUBO2 (p1=w,cv,p2)

p1=(W/cv)**2+p2

MACRO END

MACRO TUBO3 (p2=w,cv,p1)

p2=p1-(W/cv)**2

MACRO END

pav=pa-(w1/cv1)**2)w2=cvv*u*sqrt(pav-pdv)pdv=(w3/cv3)**2)-pdw1=w2w3=w2

pav=implc(pav-(pa-(w1/cv1)**2),pavi)w2=cvv*u*sqrt(pav-pdv)pdv=(w3/cv3)**2)-pdw1=w2w3=w2

pav=pa-(w1/cv1)**2)w2=implc(w2-cvv*u*sqrt(pav-pdv),w2i)pdv=(w3/cv3)**2)-pdw1=w2w3=w2

pav=pa-(w1/cv1)**2)w2=cvv*u*sqrt(pav-pdv)pdv=implc(pdv-(w3/cv3)**2-pd),pdvi)w1=w2w3=w2

MACRO TUBO4 (p1=w,cv,p2,p1i)

p1=implc(p1-(p2-(w/cv)**2),p1i)

MACRO END

MACRO VALVU4(...)

...

MACRO TUBO5(...)

...

Page 31: TEMA 4. Lenguajes de simulación de sistemas continuosfelipe/docencia/so4inf/tema4.pdf · – Saber describir un modelo sencillo en un lenguaje de simulación del ... • Suelen tener

31

Simulación y Optimización4º Ingeniería Informática

61

Entornos de modelado gráfico de los lenguajes orientados a sentencias

• El incremento de la potencia de los ordenadores (capacidades gráficas) y las demanda de las técnicas de simulación obligo a que los sistemas se modelasen de un modo gráfico.

• El modelado gráfico consiste en tener una librería de modelos elementales y permitir la conexión gráfica de dichos modelos. Estos modelos deben de constar de un icono, un conjunto de conectores y las ecuaciones del sistema que modelan. El modelado se hace de modo gráfico sin más que seleccionar los componentes y conectar los iconos a través de los conectores.

• Ejemplo de estos entornos: – Graphic Modeller (ACSL).– MMS: entorno de modelado plantas nucleares

que genera código ACSL.

Simulación y Optimización4º Ingeniería Informática

62

• Graphic Modeller:– Definición de componentes:

• Icono.• Nombre del componente.• Puertos de entrada.• Puertos de salida.• Parámetros.• Ecuaciones.

– La conexión de componentes se realiza sin más que unir puertos de entrada con puertos de salida.

• Las conexiones se hacen a nivel de variables no de conexiones físicas reales. En el caso de sistemas complejos (fluidos), necesitamos múltiples conexiones de variables para una misma conexión física real y se complica el diagrama.

– Finalmente genera un código ACSL:• Pegando el código que existe debajo de cada componente (particularizado las variables

del modelo al nombre del componente).• Generando ecuaciones en las conexiones de la forma

variable_puerto_salida=variable_puerto_entrada.– Resuelve los problemas de asignación de nombres y de escritura del modelo de

simulación, pero desde un punto de vista conceptual presenta la misma problemática que las MACROS de ACSL (no es más que una interfaz gráfica de las MACROS).

– Sólo es útil para sistemas que se modelen desde la perspectiva de los diagramas de bloques.

Page 32: TEMA 4. Lenguajes de simulación de sistemas continuosfelipe/docencia/so4inf/tema4.pdf · – Saber describir un modelo sencillo en un lenguaje de simulación del ... • Suelen tener

32

Simulación y Optimización4º Ingeniería Informática

63

Simulación y Optimización4º Ingeniería Informática

64

Conclusiones• Las principales ventajas son:

– Declaración directa de las ecuaciones en términos similares a la formulación matemática habitual.

– Generadores de código no intérpretes de un diagrama.

– Son una primera aproximación a la distinción entre modelo y experimento, pero no los independizan completamente.

• El principal inconveniente de estos lenguajes es que son lenguajes de simulación pero no de modelado, con lo cual:

– No soportan una reutilización eficiente del código de simulación debido a la pobreza del concepto de MACRO.

– El tratamiento de los sistemas de estructura variable (híbridos), en los que las ecuaciones pueden cambiar en tiempo de simulación, no se soporta de un modo eficiente.

• Por ejemplo un interruptor eléctrico: si está cerrado la diferencia de potencial entre los extremos es nula y si está abierto la intensidad de corriente es nula.

I=0; V≠0 V=0; I≠0