Ich werde weiterhin ein weiteres Beispiel für eine numerische Berechnung nach der Brent-Methode hochladen, das ich bei Bedarf mache. "Python ist praktisch!"
Der Grenzknickdruck des freiliegenden hydraulischen Eisenrohrs wird nach der folgenden Formel berechnet.
\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> | Begrenzen Sie den Knickdruck des Eisenrohrs td> tr> |
$ t $ td> | Plattendicke (ohne Randdicke) td> tr> |
$ D_0 '$ td> | Entworfener Außendurchmesser td> tr> |
$ E_s $ td> | Eisenrohrelastizität (= 206.000 MPa) td> tr> |
$ \ nu_s $ td> | Poisson-Verhältnis des Eisenrohrs (= 0,3) td> tr> |
Hier beträgt die normale Randdicke $ \ epsilon = 1,5 mm $, und die Konstruktionsplattendicke $ t_0 $ einschließlich der Randdicke und des Designaußendrucks $ D_0 '$ wird wie folgt berechnet.
\begin{equation}
t_0=t+\epsilon \qquad
D_0'=D_0+t_0
\end{equation}
Hier ist $ D_0 $ der Konstruktionsinnendurchmesser.
Bei freiliegenden hydraulischen Eisenrohren sehen die technischen Normen für Wassertor-Eisenrohre vor, dass sie so ausgelegt sind, dass sie bei Wasserablauf einem Außendruck von 0,02 MPa (tatsächlich einem Unterdruck) standhalten. Für die hierfür erforderliche Plattendicke ist es erforderlich, die Plattendicke so zu bestimmen, dass der kritische Knickdruck $ p_k = 0,03 MPa $ oder mehr unter der Annahme einer Sicherheitsrate von 1,5 erwartet wird.
Betrachten Sie hier die Berechnung der Plattendicke, die den gegebenen kritischen Knickdruck nach der Brent-Methode erfüllt. Durch Modifizieren der Berechnungsformel für den kritischen Knickdruck kann die folgende nichtlineare Gleichung, so dass $ f = 0 $ ist, für $ t $ gelöst werden.
\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}
Die zwei für die Brent-Methodenlösung erforderlichen Anfangswerte werden im Programm als "t1 = 1,0, t2 = 50,0" angegeben.
Ein Programmbeispiel ist unten dargestellt.
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()
Das Berechnungsergebnis ist wie folgt.
t + eps= 17.758192911648965
t0= 18.0
That's all. Thank you.
Recommended Posts