Je continuerai à télécharger un autre exemple de calcul numérique par la méthode Brent, que je fais si nécessaire. "Python est pratique!"
La pression limite de flambage du tuyau en fer hydraulique exposé est calculée par la formule suivante.
\begin{equation}
p_k=\cfrac{2\cdot E_s}{1-\nu_s{}^2}\cdot \left(\cfrac{t}{D_0'}\right)^3
\end{equation}
$ p_k $ td> | Limiter la pression de flambement du tuyau en fer td> tr> |
$ t $ td> | Épaisseur de la plaque (hors épaisseur de la marge) td> tr> |
$ D_0 '$ td> | Diamètre extérieur de conception td> tr> |
$ E_s $ td> | Élasticité du tube de fer (= 206 000MPa) td> tr> |
$ \ nu_s $ td> | Coefficient de Poisson du tuyau en fer (= 0,3) td> tr> |
Ici, l'épaisseur de marge normale est $ \ epsilon = 1,5 mm $, et l'épaisseur de la plaque de conception $ t_0 $ comprenant l'épaisseur de la marge et la pression externe de conception $ D_0 '$ sont calculées comme suit.
\begin{equation}
t_0=t+\epsilon \qquad
D_0'=D_0+t_0
\end{equation}
Ici, $ D_0 $ est le diamètre intérieur de conception.
Dans le cas des conduites hydrauliques en fer exposées, les normes techniques relatives aux conduites en fer à guillotine stipulent qu'elles doivent être conçues pour résister à une pression externe de 0,02 MPa (en fait une pression négative) en cas de drainage de l'eau. Quant à l'épaisseur de plaque requise pour cela, il est nécessaire de déterminer l'épaisseur de la plaque de sorte que la pression de flambement critique $ p_k = 0,03 MPa $ ou plus soit attendue, en supposant un taux de sécurité de 1,5.
Ici, envisagez de calculer l'épaisseur de la plaque qui satisfait la pression de flambement critique donnée par la méthode de Brent. En modifiant la formule de calcul de la pression de flambement critique, l'équation non linéaire suivante telle que $ f = 0 $ peut être résolue pour $ t $.
\begin{equation}
f=p_k-\cfrac{2\cdot E_s}{1-\nu_s{}^2}\cdot \left(\cfrac{t}{D_0+t+\epsilon}\right)^3=0
\end{equation}
Les deux valeurs initiales requises pour la solution de la méthode Brent sont données sous la forme
t1 = 1.0, t2 = 50.0``` dans le programme.
Un exemple de programme est présenté ci-dessous.
import numpy as np
from scipy import optimize
def func(t,d0,eps,pk):
Es=206000 # elastic modulus of steel
po=0.3 # Poisson's ratio of steel
f=pk-2*Es/(1-po**2)*(t/(d0+t+eps))**3
return f
def main():
d0=4000.0 # internal diameter of penstock
eps=1.5 # corrosion alloowance
pk=0.03 # critical buckling pressure
t1=1.0 # initial value for Brent method
t2=50.0 # initial value for Brent method
tt=optimize.brentq(func,t1,t2,args=(d0,eps,pk))
t0=np.ceil(tt+eps) # required plate thickness
print('t + eps=',tt+eps)
print('t0=',t0)
#==============
# Execution
#==============
if __name__ == '__main__': main()
Le résultat du calcul est le suivant.
t + eps= 17.758192911648965
t0= 18.0
That's all. Thank you.
Recommended Posts