Continuing, I will upload another example of numerical calculation by the Brent method, which I am making when necessary. "Python is convenient!"
The limit buckling pressure of the exposed penstock is calculated by the following formula.
\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> | Limit buckling pressure of iron pipe td> tr> |
$ t $ td> | Plate thickness (excluding margin thickness) td> tr> |
$ D_0'$ td> | Designed outer diameter td> tr> |
$ E_s $ td> | Elastic modulus of iron tube (= 206,000MPa) td> tr> |
$ \ nu_s $ td> | Poisson's ratio of iron pipe (= 0.3) td> tr> |
Here, the normal margin thickness is $ \ epsilon = 1.5 mm $, and the design plate thickness $ t_0 $ and the design external pressure $ D_0'$ including the margin thickness are calculated as follows.
\begin{equation}
t_0=t+\epsilon \qquad
D_0'=D_0+t_0
\end{equation}
Here, $ D_0 $ is the design inner diameter.
In the case of exposed penstock, the technical standards for sluice gates stipulate that it should be designed to withstand an external pressure of 0.02 MPa (actually a negative pressure) in case of water drainage. As for the required plate thickness for this, it is necessary to determine the plate thickness so that the critical buckling pressure $ p_k = 0.03 MPa $ or more is expected, assuming a safety factor of 1.5.
Here, it is considered that the plate thickness satisfying the given limit buckling pressure is calculated by the Brent method. By modifying the critical buckling pressure calculation formula, the following nonlinear equation such that $ f = 0 $ can be solved for $ 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}
The two initial values required for the Brent method solution are given as `` `t1 = 1.0, t2 = 50.0``` in the program.
A program example is shown below.
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()
The calculation result is as follows.
t + eps= 17.758192911648965
t0= 18.0
That's all. Thank you.
Recommended Posts