Professional Documents
Culture Documents
Lenguajes de simulacin de
sistemas continuos
Objetivos
Conocer los tipos de lenguajes de simulacin de sistemas continuos de
propsito general.
Saber describir un modelo sencillo en forma de diagrama de bloques.
Saber describir un modelo sencillo en un lenguaje de simulacin del
estndar CSSL67.
Reconocer un lazo algebraico en un modelo de simulacin y saber como
tratarlo.
Conocer las ventajas y desventajas de los lenguajes de simulacin
orientados a bloques y de los orientados a sentencias.
Conocer el funcionamiento interno de los lenguajes de simulacin
orientados a bloques y de los orientados a sentencias.
Conocer la problemtica asociada a la reutilizacin de modelos
matemticos tanto en los lenguajes orientados a bloques como a
sentencias.
Simulacin y Optimizacin
4 Ingeniera Informtica
Estndar CSSL67
ACSL,un lenguaje orientado a sentencias del estndar CSSL67
Modularidad y reutilizacin del cdigo en ACSL: estructuras MACRO
Entornos de modelado grfico de los lenguajes orientados a sentencias
Conclusiones
Simulacin y Optimizacin
4 Ingeniera Informtica
Lenguajes de simulacin
Qu son?
9 Son programas de ordenador que facilitan:
La descripcin del modelo y la asignacin de causalidad
computacional (manipulacin de las ecuaciones).
La descripcin de los experimentos a realizar sobre el mismo
La resolucin numrica del sistema de ecuaciones resultante
La visualizacin de los resultados y el uso de la simulacin
Ventajas?
Simulacin y Optimizacin
4 Ingeniera Informtica
Simulacin y Optimizacin
4 Ingeniera Informtica
dx(t )
+ x(t ) = F (t )
dt
V i= F
V0= x
= RC
Simulacin y Optimizacin
4 Ingeniera Informtica
Ejemplo:
dh(t )
= F (t ) K g h(t )
dt
F (t ) = Bt
K g
dh(t ) 1
= F (t )
dt
A
A
F (t ) = Bt
Generador
de rampas
1
h(t )
3
0.5
F
Sumador
-1.56
2
Integrador
Raiz
cuadrada
4
Simulacin y Optimizacin
4 Ingeniera Informtica
U ( t ) = A sin( t )
U ( t ) = i C ( t ) R 1 + U
Ecuaciones
del modelo
U (t ) = U
(t )
( t ) + i L ( t ) R 2
C (t )
dt
di L ( t )
(t ) = L
dt
iC ( t ) = C
U
dU
Manipulacin
del modelo
U ( t ) = A sin ( t )
i (t )
C (t )
= C
dt
C
di L ( t )
U L (t )
=
dt
L
U ( t ) -U C ( t )
iC ( t ) =
R1
U L ( t ) = U ( t ) - i L ( t ) R 2
dU
U ( t ) = A sin ( t )
i (t )
C
= C
dt
C
di L ( t )
U L (t )
=
dt
L
U ( t ) -U C ( t )
iC ( t ) =
R1
U L ( t ) = U ( t ) - i L ( t ) R 2
dU
(t )
Diagrama
de bloques
Simulacin y Optimizacin
4 Ingeniera Informtica
10
Simulacin y Optimizacin
4 Ingeniera Informtica
11
Ejemplo SIMULINK
(muelle)
Simulacin y Optimizacin
4 Ingeniera Informtica
12
1
6
2y3
4y5
6y7
8y9
8
3
13
Simulacin y Optimizacin
4 Ingeniera Informtica
14
Ordenacin de
bloques?
5
Sine Wave
Sum
Gain
Math
Function
Solucin: uso de un
bloque especial que
resuelve ecuaciones
implcitas
Scope
5
Sine Wave
Sum
Gain
f (z)
Sum 1
Solve
f(z) = 0
Algebraic Constraint
M ath
Function
Simulacin y Optimizacin
4 Ingeniera Informtica
15
SOLUCIN
Simulacin y Optimizacin
4 Ingeniera Informtica
16
Simulacin y Optimizacin
4 Ingeniera Informtica
17
dy/dt
y(t)
18
dv(t )
= 9.81
dt
dx(t )
= v(t )
dt
v(t ) = 0.8v(t )
cuando x(t) = 0
Simulacin y Optimizacin
4 Ingeniera Informtica
19
Simulacin y Optimizacin
4 Ingeniera Informtica
20
10
v xj (t ) = v j
(x j (t ) x j +1 (t ))2 + (y j (t ) y j +1 (t ))2
xj (t ) = v xj (t )
( y j (t ) y j +1 (t ))
v yj (t ) = v j
(x j (t ) x j +1 (t ))2 + (y j (t ) y j +1 (t ))2
y j (t ) = v yj (t )
Ejemplo SIMULINK
Simulacin y Optimizacin
4 Ingeniera Informtica
21
Parmetros: vj
y j (t ) = v yj (t )
Condiciones iniciales:
xj(t=0) e yj(t=0)
Variables de entrada externas al modelo:
( x j (t ) x j +1 (t ))
v xj (t ) = v j
(x j (t ) x j +1 (t ))2 + (y j (t ) y j +1 (t ))2
v yj (t ) = v j
(x j (t ) x j +1 (t ))2 + (y j (t ) y j +1 (t ))2
xj+1 e yj+1
Simulacin y Optimizacin
4 Ingeniera Informtica
( y j (t ) y j +1 (t ))
22
11
Esa conducta
puede encapsularse
bajo un subsistema
y reutilizar dicho
modelo
Simulacin y Optimizacin
4 Ingeniera Informtica
23
Conclusiones
Las principales ventajas son:
Sencillos e intuitivos
Fciles de construir debido a su interfaz grfica
24
12
25
INITIAL
A
h
dh
= F K gh
dt
program deposito
DYNAMIC
INITIAL
END
END
TERMINAL
DYNAMIC
DATA K=1 , A=2
h=INTEG(F/A - K/A*SQRT(9.8*h),h0)
TERMINATE (T>TMAX)
END
END
Simulacin y Optimizacin
4 Ingeniera Informtica
26
13
Edicin del
fichero
con el modelo.
Preprocesador para
analizar el modelo,
ordenar sentencias
y generar cdigo
en un lenguaje
de alto nivel.
Compilacin
Cdigo
fuente.
Cdigo
objeto.
Programa
ejecutable
que realiza
la simulacin.
Presentacin
de
resultados.
Montaje
Librerias del
sistema y del
lenguaje de
simulacin.
Lenguaje de
comandos.
Simulacin y Optimizacin
4 Ingeniera Informtica
27
28
14
Ejemplo
dx
= 9.8 3 x 2 + u siendo x (0) = 1.
dt
u = cos(t )
program modelo
initial
constant x0=1.
end
derivative
constant g=9.8
x=integ(g-3*x**2+u,x0)
u=cos(t)
end
end
Simulacin y Optimizacin
4 Ingeniera Informtica
29
Otras expresiones:
Descripcin tipo Fortran: exp, sin , IF THEN ELSE,...
Primitivas de ACSL: BOUND, REALP, DELAY,.
Generadores de Funciones: SIN, PULSE,...
Tablas 2D y 3D
Ecuaciones implcitas: IMPLC
Tratamiento de eventos: SCHEDULE, INTERVAL,..
Llamadas externas: call...
Simulacin y Optimizacin
4 Ingeniera Informtica
30
15
Simulacin y Optimizacin
4 Ingeniera Informtica
31
Simulacin y Optimizacin
4 Ingeniera Informtica
32
16
v1 = y&
a1 = v& (= &y& )
Ejemplo de modelado
en ACSL
U = A sin( W t )
i C = (U-U C ) /R 1
U
= U-i
R 2
dU C
= iC / C
dt
di L
= U L /L
dt
program circuito
initial
!Condiciones iniciales
constant uc0=..., il0=....
!Condiciones de la integracin
!Tienen valores por defecto
cinterval cint=0.01
nsteps nstp=10
algorithm ialg=5
!Tiempo mximo de simulacin
constant tmax=1.
end
dynamic
derivative
!Parmetros del modelo
constant a=..., w=...
constant r1=..., r2=...., c=..., l=...
!Ecuaciones del modelo
uc=integ(ic/c,uc0)
il=integ(ul/l,il0)
ic=(u-uc)/r1
ul=u-il*r2
!La seal u es conocida en el tiempo ej:
u=a*sin(w*t)
end
termt(t.gt.tmax)
end
end
Simulacin y Optimizacin
34
4 Ingeniera Informtica
17
Simulacin y Optimizacin
4 Ingeniera Informtica
35
Una vez se ha escrito un fichero *.csl se invoca el programa ACSL. Lo que origina
una traduccin del fichero *.csl para generar un fichero FORTRAN, que ser
compilado y linkado hasta generar un ejecutable.
Pasos previos a la generacin de cdigo FORTRAN:
Busca errores sintcticos en las sentencias, y otros tipos de errores de clculo, como por
ejemplo variables no definidas, etc y lanza los correspondientes mensajes de error.
Si no existen errores sintcticos, ACSL procede a ordenar las ecuaciones para encontrar el
orden correcto en el que deben ejecutarse las sentencias.
36
18
Simulacin y Optimizacin
4 Ingeniera Informtica
37
Simulacin y Optimizacin
4 Ingeniera Informtica
38
19
Simulacin y Optimizacin
4 Ingeniera Informtica
39
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 numricos:
INITIAL
P2=1.25
END
...
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+P3
END
Simulacin y Optimizacin
4 Ingeniera Informtica
40
20
41
Ejemplo de MACROS
Consideremos el siguiente modelo matemtico de modo que conocido
el valor de u nos calcula la evolucin en el tiempo de y:
dx
= 3x + u
dt
y = 3 x
program ejemplo
initial
constant tmax=10.
constant x0=5.
end
dynamic
derivative
u=sin(0.5*t)
sist_lin(y,u,x0)
end
termt(t.gt.tmax)
end
end
Simulacin y Optimizacin
4 Ingeniera Informtica
42
21
program ejemplo
initial
constant tmax=10.
constant x0=5.
end
dynamic
derivative
u=sin(0.5*t)
Znnnn1=3*Znnnn2+u
Znnnn2 =integ(Znnnn1,x0)
y=3*Znnnn2
end
termt(t.gt.tmax)
end
end
...
dynamic
derivative
u=sin(0.5*t)
q=5*ramp(2)
Znnnn1=3* Znnnn2+u
Znnnn2=integ(Znnnn1,x0)
y=3* Znnnn2
Znnnn3=3* Znnnn4+q
Znnnn4=integ(Znnnn3,x0)
p=3* Znnnn4
end
...
Simulacin y Optimizacin
4 Ingeniera Informtica
43
Simulacin y Optimizacin
4 Ingeniera Informtica
44
22
program ejemplo2
initial
constant tmax=10.
constant x0=5.
end
dynamic
derivative
u=sin(0.5*t)
q=5*ramp(2)
sist_lin(y,u,x0)
sist_lin(p,q)
end
termt(t.gt.tmax)
end
end
derv=-3*v+entrada
v=integ(derv,v0)
salida=3*v
MACRO END
...
dynamic
derivative
u=sin(0.5*t)
q=5*ramp(2)
derv=3*v+u
v=integ(derv,x0)
y=3*v
derv=3*v+q
v=integ(derv,0.)
p=3*q
Error: v y derv
calculadas dos
veces
end
...
Simulacin y Optimizacin
4 Ingeniera Informtica
45
program ejemplo
initial
constant tmax=10.
constant x0=5.
end
derv=-3*v+entrada
v=integ(derv,v0)
salida=3*v
MACRO END
program ejemplo
initial
constant tmax=10.
constant x0=5.
end
dynamic
derivative
dynamic
u=sin(0.5*t)
Znnnn1=3*Znnnn2+u
Znnnn2 =integ(Znnnn1,x0)
y=3*Znnnn2
derivative
u=sin(0.5*t)
sist_lin(y,u,x0)
end
termt(t.gt.tmax)
end
end
end
termt(t.gt.tmax)
end
end
Simulacin y Optimizacin
4 Ingeniera Informtica
46
23
dx
= 3x + u
dt
y = 3 x
program ejemplo
program ejemplo
initial
constant tmax=10.
constant x0=5.
end
initial
constant tmax=10.
constant x0=5.
end
dynamic
derivative
dynamic
u=sin(0.5*t)
Znnnn1=3*x+u
x =integ(Znnnn1,x0)
y=3*x
derivative
u=sin(0.5*t)
sist_lin(y,u,x,x0)
end
termt(t.gt.tmax)
end
termt(t.gt.tmax)
end
end
end
end
Simulacin y Optimizacin
4 Ingeniera Informtica
47
Wi
m
Wo
W1
m
W2
dm
= Wi Wo
dt
MACRO DEPO(m,wi,wo,mi)
m=integ(wi-wo,mi)
MACRO END
program tanque1
initial
constant tmax=10.
constant masai=...
constant w1=..., w2=...
end
dynamic
derivative
DEPO(masa,w1,w2,masai)
end
termt(t.gt.tmax)
end
end
Simulacin y Optimizacin
4 Ingeniera Informtica
program tanque1
initial
constant tmax=10.
constant masai=...
constant w1=..., w2=...
end
dynamic
derivative
masa=integ(w1-w2,masai)
end
termt(t.gt.tmax)
end
end
48
24
W1
W21
dm
= W 1 W 21 W 22
dt
m
W22
Otra solucin
MACRO DEPO(m,wi,wo,mi)
m=integ((wi)-(wo),(mi))
MACRO END
MACRO DEPO(m,wi,wo,mi)
m=integ(wi-wo,mi)
MACRO END
program tanque2
initial
constant tmax=10.
constant masai=...
constant w1=..., w21=..., w22=...
end
dynamic
derivative
DEPO(masa,w1,w21+w22,masai)
end
termt(t.gt.tmax)
end
end
program tanque1
initial
constant tmax=10.
constant masai=...
constant w1=..., w2=...
end
dynamic
derivative
masa=integ(w1-w21+w22,masai)
end
termt(t.gt.tmax)
end
end
program tanque2
initial
constant tmax=10.
constant masai=...
constant w1=..., w21=..., w22=...
end
dynamic
derivative
DEPO(masa,w1,(w21+w22),masai)
end
termt(t.gt.tmax)
end
end
program tanque1
initial
constant tmax=10.
constant masai=...
constant w1=..., w2=...
end
dynamic
derivative
masa=integ(w1-(w21+w22),masai)
end
termt(t.gt.tmax)
end
end
Errneo
Correcto,pero
requiere saber
como est
programada
la MACRO
Simulacin y Optimizacin
4 Ingeniera Informtica
49
Problema adicional:
9 El paso de parmetros y de
variables a la MACRO es el
mismo usemos un modelo u
otro, lo cual requiere pasar
parmetros y variables
innecesarias segn se use un
modelo u otro.
Simulacin y Optimizacin
4 Ingeniera Informtica
50
25
Simulacin y Optimizacin
4 Ingeniera Informtica
51
Las MACROS no permiten definir una interface que permita estructurar las
variables que comparten los componentes.
Las conexiones slo se realizan variable a variable, lo cual:
Dificulta el uso de la librera de componentes (conexiones demasiado complejas).
Implica que no exista una analoga entre el componente modelado y su
correspondiente MACRO.
Este modo de conectar componentes slo es til cuando las conexiones entre
componentes requieran una sola variable (ej: diagramas de bloques).
Simulacin y Optimizacin
4 Ingeniera Informtica
52
26
Simulacin y Optimizacin
4 Ingeniera Informtica
53
Simulacin y Optimizacin
4 Ingeniera Informtica
54
27
Tratamos de modelar
este circuito elctrico:
program circuito_1
initial
constant r=5, vf=2.
end
dynamic
derivative
vt1=0.
vf2=vf1+vf
i=(vr1-vr2)/r
vt2=0.
vf1=vt1
vr2=vt2
vr1=vf2
end
termt (t.gt.10.)
end
end
program circuito_1
initial
constant r=5, vf=2.
end
dynamic
derivative
tierra (vt1)
fuente (vf2=vf1,vf)
resistencia (i=vr1,vr2,r)
tierra (vt2)
vf1=vt1
vr2=vt2
vr1=vf2
end
termt (t.gt.10.)
end
end
Simulacin y Optimizacin
4 Ingeniera Informtica
55
Tratemos ahora de
modelar este circuito
elctrico:
program circuito_2
initial
constant r1=5, r2=10, vf=2.
end
dynamic
derivative
tierra (vt1)
fuente (vf2=vf1,vf)
resistencia (i1=vr11,vr12,r1)
resistencia (i2=vr21,vr22,r2)
tierra (vt2)
vf1=vt1
vr22=vt2
vr11=vf2
vr12=vr21
i1=i2
end
termt (t.gt.10.)
end
end
program circuito_2
initial
constant r1=5, r2=10, vf=2.
end
dynamic
derivative
vt1=0.
vf2=vf1+vf
i1=(vr11-vr12)/r1
i2=(vr21-vr22)/r2
vt2=0.
vf1=vt1
vr22=vt2
vr11=vf2
vr12=vr21
i1=i2
end
termt (t.gt.10.)
end
end
NO FUNCIONA
Simulacin y Optimizacin
4 Ingeniera Informtica
program circuito_2
initial
constant r1=5, r2=10, vf=2.
end
dynamic
derivative
vt1=0.
vf2=vf1+vf
i1=(vr11-vr12)/r1
vr21=i2*r2+vr22
vt2=0.
vf1=vt1
vr22=vt2
vr11=vf2
vr12=vr21
i2=i1
end
termt (t.gt.10.)
end
end
FUNCIONARA despus
de manipularlas56
28
Simulacin y Optimizacin
4 Ingeniera Informtica
57
w = cv p1 p 2
w = cvu p1 p 2
Simulacin y Optimizacin
4 Ingeniera Informtica
58
29
program conduccion
initial
constant cv1=50., cv2=50., cvv=25.
constant pa=3., pd=1.
constant u=50.
end
dynamic
derivative
tubo (w1=cv1,pa,pav)
valvula (w2=cvv,pav,pdv,u)
tubo (w3=cv2,pdv,pd)
w1=w2
w2=w3
end
termt (t.gt.10.)
end
end
program conduccion
initial
constant cv1=50., cv2=50., cvv=25.
constant pa=3., pd=1.
constant u=50.
end
dynamic
derivative
w1=cv1*sqrt(pa-pav)
w2=cvv*u*sqrt(pav-pdv)
w3=cv2*sqrt(pdv-pd)
w1=w2
w2=w3
end
termt (t.gt.10.)
end
end
pav=pa-(w1/cv1)**2)
w2=cvv*u*sqrt(pav-pdv)
pdv=(w3/cv3)**2)-pd
w1=w2
w3=w2
NO FUNCIONA, deberan
manipularse simbolicamente.
Por ejemplo as:
Simulacin y Optimizacin
4 Ingeniera Informtica
59
pav=pa-(w1/cv1)**2)
w2=cvv*u*sqrt(pav-pdv)
pdv=(w3/cv3)**2)-pd
w1=w2
w3=w2
MACRO END
pav=implc(pav-(pa-(w1/cv1)**2),pavi)
w2=cvv*u*sqrt(pav-pdv)
pdv=(w3/cv3)**2)-pd
w1=w2
w3=w2
pav=pa-(w1/cv1)**2)
w2=implc(w2-cvv*u*sqrt(pav-pdv),w2i)
pdv=(w3/cv3)**2)-pd
w1=w2
w3=w2
pav=pa-(w1/cv1)**2)
w2=cvv*u*sqrt(pav-pdv)
pdv=implc(pdv-(w3/cv3)**2-pd),pdvi)
w1=w2
w3=w2
Simulacin y Optimizacin
4 Ingeniera Informtica
MACRO VALVU4(...)
...
MACRO TUBO5(...)
...
60
30
61
4 Ingeniera Informtica
Graphic Modeller:
Definicin de componentes:
Icono.
Nombre del componente.
Puertos de entrada.
Puertos de salida.
Parmetros.
Ecuaciones.
62
31
Simulacin y Optimizacin
4 Ingeniera Informtica
63
Conclusiones
Las principales ventajas son:
Declaracin directa de las ecuaciones en trminos similares a la formulacin
matemtica habitual.
Generadores de cdigo no intrpretes de un diagrama.
Son una primera aproximacin a la distincin entre modelo y experimento, pero no
los independizan completamente.
I=0; V0
Simulacin y Optimizacin
4 Ingeniera Informtica
V=0; I0
64
32