优化设计0.doc
《优化设计0.doc》由会员分享,可在线阅读,更多相关《优化设计0.doc(6页珍藏版)》请在冰豆网上搜索。
Matlab优化工具箱在机械优化设计中的应用
摘要:
以汽门用弹簧为例,介绍了MATLAB优化工具箱在机械优化设计中的应用,根据汽门用弹簧设计要求和特点,建立了汽门用弹簧优化设计数学模型。
利用MATLAB优化工具箱来求解机械优化问题,具有编程简单、设计效率高的特点,来设计出汽门用弹簧重量最轻的结构方案。
关键词:
弹簧,matlab,优化设计
1引言
所谓优化设计,是以线性与非线性规划理论为基础,便某项设计在规定的各种限制条件下,利用计算机优选设计参数,使某项.或几项设计指标获得最优值,即获得最优的设计方案。
工程设计上的最优值,是指在满足多种设计目标和约束条件下所获得的最令人满意和最适宜的值。
机械最优化设计,就是在给定的载荷或环境条件下在对机械产品的性能、几何尺寸关系或其它因素的限制(约束范围内,选取设计变量,建立目标函数并使其获得最优值一种设计方法。
MATLAB语言针对优化问题设计了现成的优化工具箱,可直接调用最佳优化函数求解。
Matlab具有初始参数输入简单,语法通俗易懂、容易上手,编程工作量小等优势,因此,成为优化设计中常用的辅助工具。
2matlab优化工具箱简介
MATLAB优化丁具箱涉及函数的最小化或最大化问题,也就是函数的极值问题。
MATLAB优化工具箱包含一系列优化算法函数,可以求解无约束条件的非线性极小值、二次规划问题、线性规划问题、有约束条件下的非线性极小值等问题。
Matlab优化工具箱中由linprog函数来解线性规划问题。
数学模型为:
求解
Matlab优化工具箱中由fminunc和fminsearch函数来解无约束非线性问题。
其中fminunc函数用于目标函数连续情况,fminsearch用于不连续情况。
Matlab优化工具箱中由fminbnd、fmincon、fsemcnf、quadprog和fminmax函数来解约束优化问题。
数学模型如下:
3应用实例
现利用机械优化设计知识及Matlab优化工具箱对汽门用弹簧重量进行优化设计。
有一汽门用弹簧,已知安装高度H1=50.8mm,安装(初始)载荷F1=272N,最大工作载荷F2=680N,工作行程h=10.16mm弹簧丝用油淬火的50CrVA钢丝,进行喷丸处理;工作温度126°C;要求弹簧中径为20mm≤D2≤50mm,弹簧总圈数4≤n1≤50,支承圈数n2=1.75,旋绕比C≥6;安全系数为1.2;设计一个具有重量最轻的结构方案。
3.1建立数学模型
3.1.1选取设计变量
影响弹簧的重量的参数有弹簧钢丝直径:
d,弹簧中径D1和弹簧总圈数n1,可取这三个参数作为设计变量:
即:
3.1.2建立目标函数
弹簧的重量为
式中 ρ――钢丝材料的容重,
目标函数的表达式为
3.1.3.确定约束条件:
1)弹簧的疲劳强度应满足
式中
S――弹簧的疲劳安全系数,由下式计算:
式中,计算方法如下:
初选弹簧钢丝直径:
4mm≤d≤8mm,其抗拉强度,取弹簧的循环工作次数大于,则材料的脉动循环疲劳极限为
设可靠度为90%,可靠性系数:
;
工作温度为126°C,温度修正系数:
再考虑到材料经喷丸处理,可提高疲劳强度10%,则弹簧实际的脉动循环疲劳极限为
弹簧材料的剪切屈服极限,其计算公式为
弹簧的剪应力幅,计算公式为
式中k――曲度系数,弹簧承受变应力时,计算公式为
――载荷幅,其值为
――弹簧的平均剪应力,计算公式为
式中――应力修正系数,计算公式为
――平均载荷,其值为
由此,得到弹簧疲劳强度的约束条件为
计算剪应力幅:
计算平均应力幅:
计算弹簧的实际疲劳安全系数:
从而得到弹簧的疲劳强度约束条件为
2)根据旋绕比的要求,得到约束条件
3)根据对弹簧中径的要求,得到约束条件
4)根据压缩弹簧的稳定性条件,要求:
式中 ――压缩弹簧稳定性的临界载荷,可按下式计算:
式中K――要求弹簧具有的刚度,按下式计算:
――弹簧的自由高度,按下式计算:
当 时,
――长度折算系数,当弹簧一端固定,一端铰支时,取 ;
则:
于是得
5)为了保证弹簧在最大载荷作用下不发生并圈现象,要求弹簧在最大载荷时的高度应大于压并高度,由于
于是得到
6)为了保证弹簧具有足够的刚度,要求弹簧的刚度与设计要求的刚度的误差小于1/100,其误差值用下式计算:
式中 G――弹簧材料的剪切弹性模量,取G=80000Mpa。
于是得到
7)为了限制设计变量的取值范围,得到
3.2利用matlab优化工具箱求解
3.2.1编写目标函数M文件spring.m
functionf=spring(x)
f=0.1925*exp(-6)*x
(1)^2*x
(2)*x(3)
3.2.2编写约束函数M文件sprcon.m
function[cceq]=sprcon1(x)
z
(1)=830.30*x
(2)*exp(0.86)/(x
(1)*exp(2.86));
z
(2)=1212.12*x
(2)/x
(1)^3+745.46/x
(1)^2;
z
(1)=830.30*x
(2)*exp(0.86)/(x
(1)*exp(2.86));
z
(2)=1212.12*x
(2)/x
(1)^3+745.46/x
(1)^2;
z(3)=365.4/(1.506*z
(1)+0.494*z
(2));
z(4)=(x(3)-0.5)*x
(1)+20.304;
z(5)=(x
(2)/z(4))^2;
z(6)=3.268*z(4)*(1-sqrt(1-13.98*z(5)));
z(7)=8*x
(2)^3*(x(3)-1.75);
z(8)=80000*x
(1)^4/z(7);
c=[1.2/z(3)-1;6*x
(1)/x
(2)-1;20/x
(2)-1;
x
(2)/50-1;680/z(6)-1;0.0246*x
(1)*x(3)-0.0123*x
(1)-1;
abs(z(8))-0.401;-x
(1);6.0-x(3)];
ceq=[];
3.2.3在命令窗口中调用优化程序
options=optimset('LargeScale','off');
x0=[63527];
[x,fval,exitflag,output]=fmincon(@spring,x0,[],[],[],[],[],[],@sprcon,options)
得到结果为:
x=6.474224.947413.6076
fval=6.7895
由此可知,弹簧重量最轻的优化结果为:
弹簧钢丝直径d=6.4742,弹簧中径D1=24.9474和弹簧总圈数n1=13.6076,其最轻重量为W=6.7895。
4结论
通过以上实例可以看出,应用MATLAB优化工具箱进行优化设计问题求解,编程工作量小,初始参数输入简单,符合工程设计语言,提高设计效率。
尤其是对于某些工程问题,用一种预先选定的方法很可能得不到最优解,运用MATLAB语言优化工具箱来求解优化问题就显得简单方便。
参考文献:
[1]郑则坡,曾佑文,曾刚,等。
基于遗传算法的二级齿轮减速器优化设计[J].矿山机械.2010.38(20):
46-49;
[2]韩晓明,铁占续.机械优化设计及其MATLAB实现[J].焦作工学院学报(自然科学版).2004.23(6):
467-470;
[3]闻邦椿,张义民,孙志礼,等.机械设计手册[M].北京:
机械工业出版社,2010;
[4]孙靖民.机械优化设计[M].北京:
机械工业出版社,2000.
[5]张伟,刘成良,丁立强.200MW汽轮机次末级叶片的安装[J].民营科技,2011
(1):
33;
[6]李晓红,师建州.汽轮机叶轮键槽裂纹及安全评定[J].湖北电力.1995(3):
51-52;
[7]蒋浦宁.核电汽轮机防应力腐蚀技术[J].热力透平.2010,39
(2):
89-92;
.