Dr. Alejandro E. Rodríguez-Sánchez

Energía de deformación

En esta breve entrada, hablaré de la energía mecánica por consecuencia de deformación que adquiere un cuerpo. Es un concepto muy relevante en aspectos de diseño de dispositivos destinados a proteger algún bien o enser material, o incluso a personas en casos de aplicaciones de la automoción y la aeronáutica.

Concepto de energía de deformación

Dado un cuerpo sometido a una fuerza que a su vez provoca una deformación, la energía de deformación se puede calcular por medio de la siguiente expresión integral y continua:

\[E_a = \int_{\alpha}^{\beta} P\cdot \text{d}\delta,\]

donde \(P\) es la fuerza, \(d\delta\) corresponde con la deformación total, o desplazamiento infinitesimal del cuerpo. La anterior ecuación implica que la energía total que absorbe un cuerpo es equivalente al trabajo que realiza la fuerza aplicada a lo largo de la dirección de la deformación que sufre este. Además, debe notarse que la cantidad de energía de absorción es el área bajo la curva que se logra al graficar \(P\) versus \(\delta\).

🔑 Dado que la \(E_a\) corresponde a un área debajo de una curva, para calcularla se puede implementar numéricamente la Regla del Trapecio de acuerdo con la siguiente expresión:

\[E_a = \frac{1}{2}\sum_{i=2}^{n} (P_{i}+P_{i-1})\cdot(\delta_{i}-\delta_{i-1}).\]

Regla del Trapecio

Esta regla corresponde con una de las fórmulas cerradas de integración numérica de Newton-Cotes, en la cual se aproxima la integral de una función definida por un polinomio de primer grado de acuerdo con la siguiente expresión:

\[I = \int_a^b f(x)\text{d}x \approx \int_a^b f_{1}(x)\text{d}x \tag{1}.\]

Ahora, supóngase que se usa una recta para «aproximar» dicha función. Teniendo en cuenta que la ecuación de una linea puede representarse mediante la siguiente ecuación:

\[f_{1}(x) = f(a) + \frac{f(b)-f(a)}{b-a}(x-a)\tag{2},\]

sustituyendo \((2)\) en el término derecho de \((1)\), se tiene entonces la siguiente expresión:

\[I = \int_a^b \bigg[f(a) + \frac{f(b)-f(a)}{b-a}(x-a)\bigg]\text{d}x, \tag{3}\]

Integrando \((3)\), se tiene que el área debajo de la recta que aproxima una función es:

\[I = (b-a)\frac{f(a)+f(b)}{2}. \tag{4}\]

Regla del trapecio compuesta para una curva de datos

Dados \(N\) pares de datos de la forma \((x, y)\) que conforman una curva, es posible obtener el área \(A\) total de esta al usar una modificación de la Regla del Trapecio de la ecuación \((4)\). Dicha modificación consiste en adicionar las áreas de cada segmento usando una suma de la siguiente forma:

\[A=\frac{1}{2}\sum_{n=1}^{N} (x_{n+1}-x_n)(y_n+y_{n+1}). \tag{5}\]

** Notése que para el caso de integración y cálculo de áreas bajo la curva de datos provenientes de experimentación, como en el caso del cálculo de \(E_a\), se modifica el inicio de la suma para así considerar los segmentos de área por cada «trozo» delimitado desde \(x_0\) hasta \(x_N\).

Implementación en Python

import numpy as np
import pandas as pd

def energia(datos):
    """"Funcion que toma como argumento un tensor 2D tipo NumPy
    que contiene dos columnas con datos de carga y desplazamiento
    NOTA: ambas columnas deben tener el mismo tamaño"""
    energy = 0
    energy_vector = np.zeros(len(datos))
    # Ciclo para iterar sobre los datos
    for i in range(1, len(datos)):
        energy += (datos[i - 1][1] + datos[i][1]) * (datos[i][0] - datos[i - 1][0])  * 0.5
        energy_vector[i] = energy
    # Regresa dos estructuras de datos: un escalar que contiene 
    #la energia total, y un vector que contiene
    # la curva de la energia
    return energy, energy_vector
    
# Desplazamiento de 1 mm
delta = np.linspace(0, 0.001, 11)
print(delta)

# Fuerza de 5 N
P = np.linspace(0, 5, 11)
print(P)

# Aquí se crea un tensor 2D que contiene los datos para calcular la curva. 
# En el caso de un archivo CSV se debe cargar el mismo a un arreglo NumPy
datos = np.column_stack((P, delta))
print(datos)

total, vector = energia(datos)

print(total)
print(vector)

import matplotlib.pyplot as plt
plt.plot(delta, P, "r-")
plt.ylabel('Fuerza, $P$ [N]')
plt.xlabel('Desplazamiento, $\delta$ [m]')
plt.show()

plt.plot(delta, vector, "b-")
plt.ylabel('Energía, $E_a$ [J]')
plt.xlabel('Desplazamiento, $\delta$ [m]')
plt.show()

Notas finales:

En la ciencia e ingeniería de los materiales y la ingeniería mecánica, es de relevancia estudiar la \(E_a\) en un material, tanto para cuestiones de creación de materiales, como para el diseño de dispositivos. Por ello,

leer mas