Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Interacción Suelo-Estructura
Por lo tanto el objetivo del proyecto es proponer un método mecánico que proporcione un
marco de referencia para el diseño de estructuras sismorresistentes, el cual consiste en
determinar ciertos valores para la frecuencia y posición de diferentes terrenos sometidos a
una serie de movimientos telúricos. Estos valores originan un gráfico que muestra la
respuesta de la estructura permitiendo analizar el comportamiento del suelo-estructura.
Para lograr esto utilizaremos el lenguaje de programación Python para acceder a una
biblioteca SymPy, debido a que provee un módulo de ecuación diferencial (ODE). El trabajo
emplea una librería Python Numpy que permite generar una estructura de datos universal, lo
que se traduce por un mejor análisis de datos, ya que se da un intercambio de datos entre
diferentes algoritmos.
El uso del código permitirá obtener los parámetros necesarios para el análisis de datos. Con
dicha información se podrá determinar la interacción suelo-estructura puesto que al conocer
el tipo de suelo se sabrá si la estructura resistirá el movimiento sísmico.
Para lograr desarrollar la EDO se ocupará un programa en Python, para eso tenemos que
entender cómo hacer una EDO de segundo orden no homogénea con Python. Pero
empezaremos resolviendo una EDO de orden superior homogénea.
Para eso ocuparemos Jupiter notebook y la librería “sympy” y el método de latex para
imprimir en notación matemática, para verificar el código resolveremos la siguiente EDO
Por otro lado, para resolver una ecuación del oscilador armónico, tenemos el siguiente
ejemplo. Pero antes, hay que tener en cuenta qué es, este es un modelo de sistemas naturales,
como la masa, la cual está junto a un resorte, como se menciona en la ley de hooke.
Considerando la ecuación de cantidad de movimiento Newton: 𝑚𝑒𝑡𝑟𝑜𝑋 + 𝑘𝑋 = 0,
2 2 𝑘
simplificando a: 𝑋 + 𝑊 𝑥 = 0, donde 𝑤 = 𝑚
, periodo fundamental factor W.
A menos que no se realicen especificaciones de los parámetros, no se puede realizar el
cálculo numérico, pues se debe definir el oscilador en el tiempo que se origina.
Algunas condiciones iniciales a considerar son; 𝑋(𝑡) = 0, 𝑐𝑢𝑎𝑛𝑑𝑜 𝑡 = 0, es decir
posición cero. A su vez 𝑋´(𝑡) = 0 , donde no se puede la estructura, derivada del oscilador.
Se puede resolver, mediante tres herramientas: analiticamente usando SYMPY,
numéricamente usando un esquema de diferencias finitas de cero y SCIPY con herramientas
integradas numéricamente.
Define la función que representa la ecuación de respuesta del espectro sísmico. Esta función
debe tomar como entrada la frecuencia y los parámetros necesarios para resolver la ecuación
(como la masa, la rigidez y el amortiguamiento del sistema) y devolver la respuesta en
frecuencia del sistema. Asegúrate de fijar el valor del amortiguamiento en esta función.
Crea un rango de frecuencias para las que quieres calcular la respuesta del sistema. Puedes
utilizar la función linspace de NumPy para crear una secuencia de valores equipados.
Utiliza la función que has definido para calcular la respuesta del sistema en cada una de las
frecuencias del rango creado en el paso anterior. Puedes hacerlo mediante un bucle for o
utilizando la función vectorize de NumPy para aplicar la función a cada elemento del rango
de forma eficiente.
Utiliza la función plot de Matplotlib para graficar la respuesta del sistema en función de la
frecuencia. Puedes añadir etiquetas y títulos a la gráfica para mejorar su legibilidad y utilizar
diferentes opciones de estilo para personalizar su aspecto.
Luego, en la segunda línea del código, se llama al módulo Latex (vía mathjax) para una
digitación fácil de las expresiones algebraicas en notación matemática. Su principal función
es permitir la visualización de fórmulas matemáticas, sin importar su complejidad. En cuanto
a MathJax corresponde a un motor de visualización JavaScript de código abierto para la
notación LaTeX, MathML y AsciiMath que funciona en todos los navegadores modernos,
con soporte integrado para tecnología de asistencia como lectores de pantalla.
También es importante destacar que, para realizar operaciones simbólicas es necesario definir
explícitamente los símbolos que vamos a utilizar, que serán en general nuestras variables,
funciones u otros elementos de nuestras ecuaciones. Es por esto que, en la tercera y cuarta
línea del código podemos observar como se definen 'x' como la incógnita e 'y' como función
respectivamente.
En cuanto a la quinta línea del código, es necesario mencionar dos puntos importantes: en
primer lugar se utiliza la función sympy.Eq para expresar y definir la ecuación diferencial a
resolver; y como segundo punto a destacar es el uso de y(x).diff(x) que corresponde a la
primera derivada, a su vez para la segunda derivada se utiliza y(x).diff(x,x), esto es importante
destacar y utilizar de manera correcta debido a que nuestra ecuación diferencial es de
segundo orden.
Es importante destacar que, es necesario importar la librería Numpy para permitir un rápido
manejo y generación de datos, y trabajarlos de forma matricial o vectorial.También debemos
importar la librería Matplotlib especializada en la creación de gráficos en dos dimensiones, la
cual nos permitirá finalmente graficar el resultado.
Finalmente para visualizar nuestros resultados se utiliza el comando plt.plot para generar un
gráfico de las respuestas del sistema en función de su frecuencia asociada. El comando plt.
nos propone varias funciones sencillas para añadir elementos tales como títulos, imágenes,
líneas y textos sobre los ejes del gráfico. Finalmente se utiliza el comando plt.show() para
mostrar el gráfico final.
RESUMEN
BIBLIOGRAFÍA
Froilan. (2017). Resolver las ecuaciones del oscilador armónico. El blog de Froilan.
http://flothesof.github.io/harmonic-oscillator-three-methods-solution.html