早上好!所以我再次陷入困境......我正在尝试确定使用不同材料的圆柱体的最佳壁厚。我有一个电流管(铁),我知道这个的刚度('k')。我正在尝试使用 matlab 迭代不同的“d”(内部直径)值,并在刚度值 k 与铁管的 ki 相同(或相似)时停止(如果它确实收敛) !)我试过while和for循环,但有些不对劲!任何建议表示赞赏,干杯
clc
Efe = 211e9; % Youngs modulus for iron [GPa]
Eal = 69e9; % Youngs modulus for Aluminium [GPa]
Esteel = 200e9; % Youngs modulus for steel [GPa]
D = 53 % Outer diameter [mm]
dFe = 36 % Inner diameter [mm]
dguess = 36
disp('Second moment of area for Iron cylinder: ')
IFe = pi*(D.^4-dFe.^4)/64
I = pi*(D.^4-dguess.^4)/64
disp('Stiffness for Iron: ')
Stiffness_Fe = Efe/IFe
disp('Stiffness for Aluminium: ')
Stiffness_Al = Eal/I
d=D;
while Stiffness_Fe>Stiffness_Al
d=d-1
I = pi*(D.^4-d.^4)/64;
Stiffness_Al=Stiffness_Fe
if d<0;
disp('Gone negative, step out')
break;
end
end
d
我希望 for 循环版本可以工作,但似乎我无法在此循环中正确使用 Stiffness_Al 变量....我可能可以在电子表格上完成此操作并过滤匹配的“k”值,但它通常更有趣使用 matlab (除非我遇到这样的基本问题!)