Dopo aver visto alcuni esempi della libreria Python Matplotlib, come la risoluzione numerica dell'equazione della diffusione e uno studio di idrodinamica, correnti 1D, vediamo un altro caso interessante: calcolo strutturale e deformazione di una trave, soggetta ad un certo carico e con un certo schema statico.
Queste le ipotesi di partenza:
- lunghezza trave L=5m
- carico totale (peso proprio + carico di progetto) 1000 kg/m, di tipo uniformemente distribuito
- schema statico semplice di tipo apoggio-appoggio
- materiale acciaio, modulo di elasticità 2.11 * 1011 Pa
- sezione circolare cava, con D=6cm, d=4cm, quindi momento di inerzia I=pi*(D4-d4)/64
- ipotesi modulo di elasticità decrescente nel tempo, secondo la legge E(t)=E0*exp(-kt), k=log(2)/100, con l'ipotesi che E si dimezzi dopo 100 iterazioni di tempo (unità che si vuole, non ha importanza, dati di esempio)
L'immagine che segue riassume questo caso di studio.
Vediamo di seguito il codice del programma e il risultato grafico con Matplotlib:
import numpy as np
from matplotlib import pyplot as plt
L=5 #[m]
E0=2.1*10**11 #[Pa]
q=1000 #[kg/m]
D=0.06 #[m]
d=0.04 #[m]
N=100
I=np.pi*(D**4-d**4)/64 #[m^4]
time=0
k05=np.log(2)/100 #costante di dimezzamento
E=E0*np.exp(-k05*time)
V=np.zeros(N)
for i in range(0,N):
V[i]=q*L**3/(24*E*I)*(i*L/N)+q/(24*E*I)*((i*L/N)**4-2*L*(i*L/N)**3)
plt.figure()
i = np.linspace(0, L, N)
plt.plot(i,-V)
plt.show()
Il grafico seguente mostra in modo semplice l'andamento della freccia, ovviamente la massima deformazione in una situazione semplice e simmetrica di questo tipo si ha per x=L/2.
Nel codice, abbiamo indicato time=0
ovvero l'istante iniziale. Nel caso time=100
invece secondo questo esempio si ha E=E/2
ovvero la rigidezza, modulo di elasticità del materiale è dimezzato (es. usura nel tempo), si vede dai valori del grafico successivo che esso risulta più accentuato ovvero maggiore deformazione rispetto a prima (meno rigidezza del materiale, meno resistenza alla deformazione), in termini tecnici è maggiore la "freccia" (abbassamento rispetto alle condizioni di riposo).
Ora il grafico con time=100
, giusto per avere un confronto dei valori.