import math
#Input Data
E = IN[0]*10**6 #Модуль упругости
R = IN[1]*10**6 #Расчетное сопротивление
Lbd_max = IN[2] #Предельная гибкость
N = IN[3]*1000 #Продольная сила
L = IN[4] #Длина распорки
D = IN[5]*0.001 #Внешний диаметр трубы
t = IN[6]*0.001 #Толщина стенки трубы
Mu = IN[7] #Коэффициент расчетной длины
ro = 78500 #Объемный вес стали Ньютон на кубический метр
#Work
d = D - 2*t #Внутренний диаметр
F = math.pi*(D**2-d**2)/4 #Площадь сечения
J = math.pi*(D**4-d**4)/64 #Момент инерции сечения
W = math.pi*(D**3-d**3)/32 #Момент сопротивления сечения
i = (J/F)**0.5 #Радиус инерции
Lbd0 = Mu*L/i #Гибкость
q = F*ro #Распределенная нагрузка от собственного веса
gam = 1.1 #коэффициент надежности по нагрузке
k = ((N*gam)/(E*J))**0.5
def v(x):
return (-(1-math.cos(k*L))*math.sin(k*x)/math.sin(k*L)+1-math.cos(k*x)+k*k*(L*x-x*x)/2)*q/(E*J*k**4)
def M(x):
return ((1-math.cos(k*L))*math.sin(k*x)/math.sin(k*L)-1+math.cos(k*x))*q/k**2
sig_max = (N*gam/F+M(L/2)/W)/10**6
#Assign your output to the OUT variable
OUT = [sig_max,v(L/2),Lbd0]