Mostrando entradas con la etiqueta Simulación de Sistemas. Mostrar todas las entradas
Mostrando entradas con la etiqueta Simulación de Sistemas. Mostrar todas las entradas

martes, 21 de abril de 2009

EDLUT: Simulador de redes de neuronas GNU

EDLUT es una herramienta que permite simular redes de neuronas de integración y disparo.

Realiza las simulaciones en dos etapas:

  1. Caracterización del comportamiento. A partir de las ecuaciones diferenciales que modelan el comportamiento de un determinado tipo de célula, hace una simulación intensiva y almacena su comportamiento en tablas.
  2. Simulación de la red. Gracias a la caracterización previa de cada tipo de célula puede realizar simulaciones masivas con un coste computacional reducido.
El simulador ha sido desarrollado por el grupo de investigación CASIP de la Universidad de Granada. Podéis encontrar el código bajo licencia GNU aquí.


Vía Consumer.es.

jueves, 16 de abril de 2009

La simulación en el Séptimo Arte

Cuando barajamos conceptos como simulación, modelado, resonancia, ecuaciones diferenciales, etc.; puede parecer que hablamos de "extrañas entelequias" totalmente alejadas de lo cotidiano. Aquí os dejo tres películas cuyos argumentos toman como excusa la simulación:






jueves, 9 de abril de 2009

Cómo determinar experimentalmente el amortiguamiento de la suspensión de un turismo

En esta entrada explicamos cómo determinar el amortiguamiento de la suspensión delantera de un automóvil. Para ello usamos los datos obtenidos en un ensayo realizado a un vehículo en un banco de suspensiones. Se ha excitado la rueda izquierda delantera llevándola hasta los quince hertzios mediante un motor con una leva excéntrica conectada a una placa. De modo que una vez que dejamos de excitar el automóvil con la placa tenemos asegurado el barrido de todas las frecuencias menores que quince hertzios.

El modelo de dos grados de libertad que hemos usado tiene un inconveniente: omite la barra estabilizadora. Para corregirlo sumamos la rigidez de la barra estabilizadora a la rigidez del resorte.

Veamos los parámetros del modelo de 2 g.d.l. usado en la siguiente figura:

Este modelo exige que recojamos tres lecturas de posición durante el experimento: la de la placa, la de la rueda y la de la carrocería.

Para ello empleamos sensores de posición (dos de ellos láser) y un ordenador portátil equipado con una tarjeta de adquisición de datos y con LabVIEW.

Parámetros a considerar
  • Rigidez de los resortes: Kr = 20000 N/m.
  • Rigidez de la barra estabilizadora: Ke = 9600 N/m.
  • Rigidez K del modelo: K = Ke + Kr = 29600 N/m.
  • Rigidez de los neumáticos: Kn =150000 N/m.
  • Amortiguamiento del neumático: Rn = 300 Ns/m (despreciable).
  • Peso del eje delantero sobre la rueda izquierda: Pi = 345 kg.
  • Masa semisuspendida: mss = 30 kg (estimada).
  • Masa M del modelo: M = Pi – mss = 315 kg.
Tratamiento de los datos

Hemos tomado datos con una frecuencia de muestreo de 2000 Hz durante 28 segundos. A continuación describimos algunos comandos de MATLAB utilizados.

Lectura de datos del fichero de texto:

arch=dlmread('ruedaizq10hz.txt');
L0=arch(:,1);
L1=arch(:,2);

Las señal del láser uno está retrasada 0.005 segundos respecto al láser cero. Por tanto lo corregimos de la siguiente forma:

L1=L1(10:56000,1);
L0=L0(1:55991,1);

Tenemos almacenada la información de cada láser en voltios. Usaremos las correspondientes rectas de regresión para pasar mm:


L0=(L0.*(-8.0376))-0.0884;
L1=(L1.*(-2.8638))-0.0121;

Aunque este apartado es muy dependiente del software y del hardware usado; puede servir de orientación a quien quiera realizar un experimento similar con otro equipo.

Gráficas obtenidas

Graficando las lecturas del láser uno (x2) y del cero (x1) obtenemos:



Desechamos los transitorios y nos quedamos entre los 10 y los 20 s. En esas zonas calcularemos la frecuencia y la amplitud de x1 y de x2. Aplicando el zoom:



Amplitudes:

A1 = 5.7385 – 4.238 = 1.5005 mm
A2 = 7.9023 + 5.8214 = 13.7237 mm

Frecuencia (las dos señales tiene la misma):



Para disminuir el error hemos tomamos siete periodos.

Planteamiento y resolución de ecuaciones

Planteando el diagrama del sólido libre de la masa M obtenemos la siguiente ecuación diferencial:



Despreciamos el efecto del peso



Usando la transformada de Laplace:



Haciendo s=jw:



Tomando módulos:



Despejando nuestra incógnita (R):



Validación de la hipótesis de masa semisuspendida

Determinamos a partir de la señal de la placa su amplitud en el intervalo comprendido entre los 10 y los 20 s: Ao=12 mm.



Se han usado las siguientes sentencias MATLAB para obtener la gráfica:

arch=dlmread('ruedaizq10hz.txt');
p=arch(:,1);
p=arch(:,5);
p=p(10:56000,1);
p=(p.*(-18.2177))+49.5693;
plot (p)


Usando un procedimiento análogo al del apartado 5, obtenemos a partir de la siguiente ecuación el valor de la masa semisuspendida. Si el resultado es similar al supuesto (30 kg) la estimación será correcta.



De esta ecuación obtenemos dos valores:

m1 = 72.74 kg (la desechamos por estar fuera del intervalo de valores típicos)
m2 = 30.27 kg. Muy cercana a 30 kg => Hipótesis Correcta => R = 1854.098 Ns/m

domingo, 5 de abril de 2009

Colapso del puente de Tacoma en 2 gdl

Allá por 1940, el puente colgante de Tacoma Narrows (cerca de Seattle) colapsó debido a que fue excitado en una de sus frecuencias naturales por un viento racheado. En este post explicaremos el fenómeno mediante un modelo simplificado de 2 grados de libertad. Sí sí, he dicho 2 gdls...



1. Modelo de parámetros concentrados del puente

Hemos estudiado la sección transversal del puente mediante un modelo de dos grados de libertad: traslación en vertical y rotación alrededor de sus centro de masa. Se ha supuesto el tablero infinitamente rígido y el amortiguamiento despreciable.

Esquema del modelo:

Las equaciones que rigen el comportamiento del sistema:

Para que el sistema parta del equilibrio:

x(0) = -14,04 m

Ya que el modelo no tiene grado de libertad en la dirección del viento, hemos de imponer una condición inicial artificial para que el tablero ofrezca una resistencia al viento en el instante inicial:

Siendo:

2. Cálculo de la rigidez y de la frecuencia natural de giro

Para determinar la rigidez nos apoyamos en un dato experimental. La frecuencia natural del grado de libertad es de 0.8353 rad/s.

Análogamente podemos determinar la frecuencia natural de giro:

3. Acción de viento

Cuando se produjo el colapso del puente, la velocidad del viento no excedía los 68 km/h. Asimilamos el tablero del puente a un perfil aerodinámico. Por tanto, la fuerza de sustentación vendrá dada por:


Cuando el viento cambia de sentido, invertimos el signo de Fl. No conocemos el coeficiente de sustentación (Cl), pero sabemos que los valores típicos oscilan entre 0 y 1.8.

4. Simulación

Hemos realizado la simulación mediante el lenguaje de modelado de sistemas dinámicos Modelica.

Ante un viento racheado de frecuencia igual a la frecuencia natural de giro, el sistema se comporta de la siguiente manera (para distintos coeficientes de sustentación):



Ante un viento racheado de frecuencia igual a la frecuencia natural de translación, el sistema se comporta de la siguiente manera (para distintos coeficientes de sustentación):



5. Conclusión

Hemos de tener en cuenta que el colapso del puente Tacoma Narrows es un fenómeno demasiado complejo como para simularlo fielmente con dos grados de libertad. Aún así, podemos deducir del apartado anterior (en el que observamos el comportamiento del sistema) que el modo de vibración que más contribuyó al desastre fue el de rotación. Esto se debe a que es el más fácil de excitar con una carga de viento transversal.


domingo, 29 de marzo de 2009

Comportamiento complejo a partir de sistemas sencillos

El Juego de Conway (también conocido como Vida) es un ejemplo de autómata celular que ilustra de manera didáctica como sistemas sencillos pueden encerrar comportamientos complejos. Lo inventó el matemático John Horton Conway en 1970.

El "universo" del juego es un tablero cuadriculado en el que las celdas llenas representan células vivas.

En cada paso de tiempo o generación, el estado del tablero cambia atendiendo a las siguientes reglas:

  1. Supervivencia: cada célula con dos o tres vecinas sobrevive en la siguiente generación.
  2. Muerte: cada célula con cuatro o más vecinas muere por sobrepoblación, y cada célula con una o ninguna vecina muere por aislamiento.
  3. Nacimiento: cada célula vacía con exactamente tres células vecinas es una célula de nacencia, donde se origina una célula en la generación siguiente.
Según del programador Bill Gosper:
"... al principio no estaba claro que las cosas que podían ocurrir en este universo eran casi tan complicadas como las que podían ocurrir en nuestro universo. Y posteriormente, por una secuencia de pequeños descubrimientos, avanzando por grados, se hizo claro que cualquier cosa que podamos imaginar puede ocurrir en el mundo de Vida."
Si os apetece jugar un poco con Vida, podéis descargaros aquí una versión del juego que escribí hace mucho, mucho tiempo...

Bibliografía: "Vida simulada en el ordenador" (Claus Emmeche).

domingo, 22 de marzo de 2009

Dinámica de poblaciones

La simulación de sistemas tiene una gran campo de aplicación. Como primer ejemplo de ello veremos el sistema Volterra-Lotka. Es un sencillo modelo matemático para la dinámica de poblaciones de especies en competencia.

Las ecuaciones diferenciales que lo rigen son:

x1' = A · x1 - B · x1 · x2
x2' = - C · x2 + D · x1 · x2

Suposiciones:
  • La población de depredadores viene dada por la función dependiente del tiempo x2(t).
  • Análogamente la de presas viene dada por x1(t).
  • El alimento disponible para la presa es ilimitado, por tanto la tasa de natalidad de la presa debe seguir la ley de Malthus o exponencial.
  • La tasa de mortalidad de la presa depende del número de interacciones entre presas y depredadores.
  • Las presas x1 son el único alimento de los depredadores x2. Por ello la tasa de natalidad de los depredadores depende de las interacciones con las presas.
  • Cuando excasee el alimento, los depredadores morirán en número proporcional a su población.
Para determinados valores de las constantes y de las condiciones iniciales, el sistema presenta un comportamiento periódico (ver figura).

Por ejemplo para A = 2, B = 2, C = 1 y D = 1; con condiciones iniciales x1(0) = 1 y x2(0) = 3.