机械优化大作业 MATLAB复合型法

发布 2022-09-10 09:37:28 阅读 8904

机床主轴机构优化设计。

机床主轴是机床中重要的零件之一,一般多为支撑空心阶梯轴。为了便于使用材料力学进行结构分析,常常将阶梯轴简化成以当量直径表示的等截面轴。

如图0.1所示是一个已经简化处理的专用机床双主轴的力学模型。从机床主轴制造成本较低和加工精度较高的要求出发,需要考虑主轴的自重和外身段挠度这样两个重要因素。

对于专用机床来说,并不追求过高的加工精度。因此选取零件自身重量轻为设计目标,将主轴的刚度作为约束条件。

一、 设计变量和目标函数。

当主轴的材料选定之后,与主轴重量设计方案有关设计变量主轴的外径d、孔径d、两支承跨度l、和外伸段长度a,如图0.1所示。由于机床主轴的孔径主要取决于待加工棒料的直径,不能作为设计变量处理。

因此,设计变量为。

机床主轴重量最轻优化设计目标函数为。

二、 约束条件。

1. 刚度性条件。

机床的加工质量在很大程度上取决于主轴的刚度,主轴刚度是一个很重要的性能指标。因此,要求主轴悬臂端挠度不超过给定的变形量y0 。

根据材料力学可知,主轴悬臂端挠度为。

式中,是空心主轴的惯性矩;e=2.1x105mpa是主轴的弹性模量;f是作用主轴外伸端的力。

整理得到主轴刚度的约束条件为。

2.设计边界条件。

三个设计变量的边界约束条件为。

3.具体算例。

已知某机床主轴悬臂端受到的切削力f=15000n,主轴内径d=30mm,悬臂端许用挠度y0=0.05mm。要求主轴两支承跨度,外径,悬臂长度。

建立优化的数学模型。

4.基于matlab程序的复合形法实现优化。

1)算法原理。

复合形法**于无约束优化问题的单纯形法,通过构造复合形来求得最优解,新的复合形通过替换旧的复合形中的坏点(目标函数最大或次大的点)得到,替换方式仍是单纯性法中的反应、压缩、扩展这几个基本方法。

2)算法步骤。

其程序框图如下:

3)算法的matlab实现。

在matlab中利用编程语句编写实现复合形法的函数,命名:

功能:用复合形法求解约束多为函数的极值。

调用格式:[x,minf]= jiangfun(f,g,x,alpha,sita,gama,beta,var,eps)

其中符号表示如下:

由目标函数级约束条件,取初始复合形。

取α(反射系数)=1.2,β(收缩系数)=0.3,θ(紧缩系数)=0.5,γ(扩展系数)=2。

在matlab中输入下列命令。

>syms s t r

>f=0.7854*(s+r)*(t^2-900);

>g=[1-9.7009*r^2*(s+r)/(t^4-30^4);s/300-1;1-s/650;t/60-1;1-t/140;r/90-1;1-r/150];

>x=[325 380 500 600;90 120 100 135;100 95 120 130];

>[x,minf]=jiangfun(f,g,x,1.2,0.5,8,0.3,[s t r])

所得结果为:

x =300.0357

minf = 1458663.2594

可以得出结论当l=300.0357mm,d=75.2442mm,a=90.

0013mm时可以在满足刚度性能的条件下,得到最小的结构体积minf=1458663.2594mm3 再乘以所选材料的密度,即可得出最小质量。

5、总结。复合形法作为求解最优化问题的一种算法,较为适合解决有约束优化问题。使用该法仅需比较目标函数值即可决定搜索方向,算法较简单,对目标函数的要求不苛刻。

同时利用mat实现该方法的程序设计,较之c语言互换性以及通用性强,使用方便。

引用:《优化设计应用》——电子工业出版社。

附录i:m实现复合形算法源程序。

附录i:m实现复合形算法源程序。

function [x,minf]= jiangfun(f,g,x,alpha,sita,gama,beta,var,eps)

目标函数:f

约束函数:g

初始复合形:x

反射系数:alpha

紧缩系数:sita

扩展系数:gama

收缩系数:beta

自变量向量:var

自变量精度:eps

目标函数最小值时的自变量值:x

目标函数的最小值:minf

if nargin ==8

eps = 1.0e-6;

endn = size(x);

n = n(2);

fx = zeros(1,n);

while 1

for i=1:n

fx(i) =subs(f,var,x(:,i));

end将复合形法的顶点排序。

[xs,ix] =sort(fx

xsorted = x(:,ix);

px = sum(xsorted(:,1:(n-1)),2)/(n-1复合形前n个点的中心。

fpx= subs(f,var,px);

sumf = 0;

for i=1:n

sumf = sumf + fx(ix(i))-fpx)^2;

endsumf = sqrt(sumf/n);

if sumf <=eps

x = xsorted(:,1精度判断。

break;

elsebcon_1 = 1;

cof_alpha = alpha;

while bcon_1

x2 = px + cof_alpha*(px - xsorted(:,n));反射条件。

gx2 = subs(g,var,x2);

if min(gx2)>=0

bcon_1 = 0;

elsecof_alpha = sqrt(cof_alpha); 以开方的方式减小反射系数。

endend

fx2 = subs(f,var,x2);

if fx2 < xs(1)

cof_gama = gama;

bcon_2 = 1;

while bcon_2

x3 = px + cof_gama*(x2 - px); 扩展操作。

gx3 = subs(g,var,x3);

if min(gx3)>=0

bcon_2 = 0;

else cof_gama = sqrt(cof_gama); 采用开方的方式减小扩展系数。

endend

fx3 = subs(f,var,x3);

if fx3 < xs(1)

xsorted(:,n) =x3;

x = xsorted;

continue;

elsexsorted(:,n) =x2;

x = xsorted;

continue;

endelse

if fx2 < xs(n-1)

xsorted(:,n) =x2;

x = xsorted;

continue;

elseif fx2 < xs(n)

xsorted(:,n) =x2;

endcof_beta = beta;

bcon_3 = 1;

while bcon_3

x4 = px + cof_beta*(xsorted(:,n) -px);%收缩操作。

gx4 = subs(g,var,x4);

if min(gx4)>=0

bcon_3 = 0;

elsecof_beta = cof_beta/2; %减小收缩系数。

endend

fx4 = subs(f,var,x4);

fnnew = subs(f,var,xsorted(:,n));

matlab机械优化

基于matlab的二级齿轮减速器的优化设计。1 引言。齿轮减速器是原动机和工作机之间独立的闭式机械传动装置,能够降低转速和增大扭矩,是一种被广泛应用在工矿企业及运输 建筑等部门中的机械部件。在本学期的机械课程设计中,我们对二级齿轮减速器进行了详细的计算和autocad出图。在计算齿轮减速器中心距时,...

机械优化设计大作业

1.题目自拟。多元函数优化问题。2.已知条件。根据具体题目确定。3.作业要求。1 建立优化模型 包括设计变量 目标函数 约束条件 2 程序求解,可以选用c fortran basic等编程语言或matlab maple等工具软件,写出最优解。3 学习本课程的心得体会。不少于 4 用a4纸打印。注意 ...

机械优化设计大作业

一 问题的描述。设计一重量最轻的空心传动轴。空心传动轴的d d分别为轴的外径和内径。轴的长度不得小于3m。轴的材料为45钢,密度为7.8 10 6kg mm,弹性模量e 2 10 5mpa,许用切应力 60mpa。轴所受扭矩为m 1.5 10 6n mm。二 数学模型的建立。1 扭转强度。因为空心传...