Python: Find the required plate thickness for the limit buckling pressure of the exposed tube by the Brent method

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 $ Limit buckling pressure of iron pipe
$ t $ Plate thickness (excluding margin thickness)
$ D_0'$ Designed outer diameter
$ E_s $ Elastic modulus of iron tube (= 206,000MPa)
$ \ nu_s $ Poisson's ratio of iron pipe (= 0.3)

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

Python: Find the required plate thickness for the limit buckling pressure of the exposed tube by the Brent method
Pandas of the beginner, by the beginner, for the beginner [Python]
Find the diameter of the graph by breadth-first search (Python memory)
[Python] How to use the for statement. A method of extracting by specifying a range or conditions.
Understand the arguments required for the HTTP request method of the Requests module
Find the ratio of the area of Lake Biwa by the Monte Carlo method
Find out the name of the method that called it from the method that is python
Python learning memo for machine learning by Chainer until the end of Chapter 2