Processing math: 28%

jueves, 15 de marzo de 2012

Anylogic : Simulación

OSO DE PELUCHE CON MUELLE



En este ejercicio práctico vamos a simular el movimiento de un oso de peluche atado al extremo con un muelle. Movimiento vertical definido por ecuaciones diferenciales.


Hay que definir dos ecuaciones diferenciales , cada una de ellas representa la velocidad y la aceleración del peluche.

x2=alanda+bu
x(0)=Xo

Por lo que la segunda derivada queda en funcion de :  x" = f (t,x,x`)
Aplicando la segunda ley de newton para cargas :  \Sumatorio de fuerzas = m * a \]
 Siendo "m" la masa de la marioneta y "a" su aceleración y "v" su velocidad.La fuerza "f" sera la fuerza de rozamiento del aire. Por lo tanto sustituyendo y derivando en las encuaciones anteriormente mencionadas :

f -k*x  b*v = m * a
x" = -k/m *x - b/m* x` + 1/m * f  + g

Realizaremos el ejercicio de forma gráfica con los diagramas de Forester. (Creador de system dinamics). Anylogic tiene una libreria denominada System dinamic para resolver ecuaciones diferenciales mediante el diagrama.

Las ventajas de realizar el ejercicio de forma grafica ( versus EJS ) es que en este ejemplo tenemos pocas ecuaciones pero si tuvieramos 80 ecuaciones no resultaria mas facil resolverlas gráficamente que con el metodo matematico.
La variable independiente por defecto en Anylogic es el tiempo ( t ) por lo que no es necesario definirla en ningun sitio.

A la ecuacion diferencial aplicaremos el teorema que para convertir un sistema de una ecuacion de orden n en n ecuaciones de primer  grado mediante cambios de variables.


x` = v
v" = -k/m *x - b/m* v` + 1/m * f + g

 Con el diagrama de forester  asociaremos a la función incognita una variable de tipo Stock. Hay que definir también su derivada de tipo Flow. Estas definiciones deben realizarse para cada ecuación diferencial.


Dando click derecho sobre Dx : Definiremos la ecuación diferencial:

Para establecer los valores iniciales daremos click en la función incognita y en v:

Las constantes las definiremos en las propiedades del main , en el apartado "Additional Class Code" en codigo JAVA:


Como Dv depende de las variables x y v  realizaremos la asociación   correspondiente con la herramienta tipo "Link":

La fuerza es una variable de control , es decir un parametro ( f ) .





Asi quedaria cuando ejecutamos el programa:








No hay comentarios:

Publicar un comentario