例4-2 在图4-4所示的压力容器螺栓组联接中,已知D1=400mm,D2=250mm,缸内工作压力p=1.5MPa,螺栓材料为35钢,σs=320MPa,安全系数S=3,取残余预紧力Qp=1.6F,采用铜皮石棉密封垫片。现从安全、可靠、经济的角度来选择螺栓的个数n和螺栓的直径d。
图4-4 压力容器受力图
问题分析:若从经济性考虑,螺栓数量尽量少些、尺寸小些,但这会降低联接的强度和密封性,不能保证安全可靠的工作;若从安全、可靠度角度考虑,螺栓数量应多一些、尺寸大一些为好,显然经济性差,甚至造成安装扳手空间过小,操作困难。为此,该问题的设计思想是:在追求螺栓组联接经济成本最小化的同时,还要保证联接工作安全、可靠。
1)选取螺栓的个数n和直径d(mm)为设计变量,即
X=(nd)T=(x1x2)T
2)追求螺栓组联接经济成本Cn最小为目标。而当螺栓的长度、材料和加工条件一定时,螺栓的总成本与nd值成正比,所以本问题优化设计的目标函数为
minF(X)=Cn=nd=x1x2
3)确定约束条件。
①强度约束条件。为了保证安全可靠地工作,螺栓组联接必须满足强度条件
式中,;。
对于粗牙普通螺纹,小径d1=0.85d,所以,强度约束条件为
②密封约束条件。为了保证密封安全,螺栓间距应小于10d,所以,密封约束条件为
③安装扳手空间约束条件。为了保证足够的扳手空间,螺栓间距应大于5d,所以,安装约束条件为
④边界约束条件为
g4(X)=-x1≤0
g5(X)=-x2≤0
4)综上所述,本问题的数学模型可表达为
设计变量X=(x1x2)T
目标函数minF(X)=x1x2
约束条件s.t. gi(X)≤0 (i=1,2,3,4,5,)(www.xing528.com)
现运用MATLAB的优化函数进行求解。
先编写M文件myfun.m:
function[c,ceq]=mynas(x)
c(1)=146192/(x(1)∗x(2)^2)-106; % 非线性不等式约束
c(2)=400∗pi/x(1)-10∗x(2);
c(3)=-400∗pi/x(1)+5∗x(2);
ceq=[];% 非线性等式约束
在MATLAB命令窗口输入:
fun=’x(1)∗x(2)’; % 目标函数
x0=[4,6]; % 设计变量初始值
A=[-1,0;0,-1]; % 线性不等式约束矩阵
b=[0;0];
Aeq=[]; % 线性等式约束矩阵
beq=[];
lb=[]; % 边界约束矩阵
ub=[];
[x,fval]=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,@mynlsub)
% 调用有约束优化函数
运行结果如下:
x=(11.4499 10.9751)
fval=125.6637
所以,该问题优化结果为:n=11.4499,d=10.9751mm,目标函数最小值F(X)=125.6637。根据实际问题的意义取整、标准化:n=12,d=12mm。
由此例可以看出,与其他编程语言相比,MATLAB语言可以简化编程。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。