机械优化设计实例(人字架优化)Word文档下载推荐.doc
《机械优化设计实例(人字架优化)Word文档下载推荐.doc》由会员分享,可在线阅读,更多相关《机械优化设计实例(人字架优化)Word文档下载推荐.doc(5页珍藏版)》请在冰豆网上搜索。
设计变量:
平均直径D、高度h
三、数学建模
所设计的空心传动轴应满足以下条件:
(1)强度约束条件即
≤
经整理得
(2)稳定性约束条件:
(3)取值范围:
则目标函数为:
约束条件为:
四、优化方法、编程及结果分析
1优化方法
综合上述分析可得优化数学模型为:
;
。
考察该模型,它是一个具有2个设计变量,6个约束条件的有约束非线性的单目标最优化问题,属于小型优化设计,故采用SUMT惩罚函数内点法求解。
2方法原理
内点惩罚函数法简称内点法,这种方法将新目标函数定义于可行域内,序列迭代点在可行域内逐步逼近约束边界上的最优点。
内点法只能用来求解具有不等式约束的优化问题。
对于只具有不等式约束的优化问题
转化后的惩罚函数形式为
或
式中r——惩罚因子,它是由大到小且趋近于0的数列,即。
由于内点法的迭代过程在可行域内进行,障碍项的作用是阻止迭代点越出可行域。
由障碍项的函数形式可知,当迭代靠近某一约束边界时,其值趋近于0,而障碍项的值陡然增加,并趋近于无穷大,好像在可行域的边界上筑起了一道“围墙”,使迭代点始终不能越出可行域。
显然,只有当惩罚因子时,才能求得在约束边界上的最优解。
3编程
首先编制两个函数文件,分别保存为目标函数和约束函数。
functionf=objfun(x)
B=1520;
T=2.5;
P=7.8e-3;
f=2*pi*P*x
(1)*T*sqrt((B/2)^2+x
(2)^2);
再编写非线性约束函数文件M文件confun.m;
function[c,ceq]=confun(x)
P=300000;
E=2.1e5;
F1=420;
Q=0.5*P*sqrt((B/2)^2+x
(2)^2)/x
(2);
st=Q/(pi*T*x
(1));
g
(1)=st-F1;
F2=0.125*pi^2*E*(x
(1)^2+T^2)/((B/2)^2+x
(2)^2);
g
(2)=st-F2;
ceq=[];
在MATLAB命令窗口给出搜索值和线性约束,并调用优化程序:
x0=[100;
700];
a=[-1,0;
1,0;
0,-1;
0,1];
b=[-10;
120;
-200;
1000];
1b=[10;
200];
ub=[120;
[x,fval]=fmincon(@objfun,x0,a,b,[],[],1b,ub,@confun)
4结果分析
优化程序经过11次迭代计算收敛,得到结果如下:
x=64.3083 760.0000
fval=8468.5714
圆整后得到X=(65,760)T.
图1
图2
验算:
<
五、课程实践心得体会
通过《机械优化设计》这门课程的学习,初步了解和熟悉了机械优化设计的基本设计流程。
传统的机械设计往往很保守,这样就造成了材料的浪费,也增加了产品的成本。
优化方法随着计算机的应用而迅速发展起来,采用优化方法,既可以使方案在规定的设计要求下达到某些优化的结果,又不必耗费过多的计算工作量,因而得到广泛的重视,其应用也越来越广。
再本科做课程设计设计轴以及其他零件的时候,往往把尺寸加大,用这种方法来使零件满足强度要求。
这种做法在实际的生产过程中实不可取的。
因此作为一名机械专业的学生,在走向工作岗位之前了解并能够熟练运用这些方法是很有必要的。
在这2个多月的学习中,我学习了一些优化方法的原理及其求解步骤。
在实际应用中,能够对简单的问题进行分析和求解。
在这次的作业中,因为编程的基础比较薄弱,因此我运用了matlab软件。
只要能够建立起问题的数学模型,运用matlab很容易就能求得结果。
在做的过程当中,还是遇到了许多的问题。
虽然本题的设计变量,约束方程相对来说比较少,但在编程的时候还是出现了很多的错误。
用了很长的时间来排除这些错误。
因此如果面对的是比较复杂的问题,在编程之前一定要先做好规划。
通过这门课程的学习,开拓了我的视野。
任何的事物都在不断的发展改进,书本上所学到的各种算法也都有其局限性,随着工程问题的日益扩大,优化要面对的问题的规模和复杂程度的逐渐增大,这种局限性也就更加的明显。
因此,算法也在不断的改进,所以需要在以后及时的了解更加先进的算法,使其能够解决实际的问题。