数学建模零件参数的优化设计说明.docx
《数学建模零件参数的优化设计说明.docx》由会员分享,可在线阅读,更多相关《数学建模零件参数的优化设计说明.docx(18页珍藏版)》请在冰豆网上搜索。
![数学建模零件参数的优化设计说明.docx](https://file1.bdocx.com/fileroot1/2022-12/1/c50dbb51-b353-4427-8bc4-bf21b23ca07c/c50dbb51-b353-4427-8bc4-bf21b23ca07c1.gif)
数学建模零件参数的优化设计说明
零件参数的优化设计
摘要
本文建立了一个非线性多变量优化模型。
已知粒子分离器的参数y由零件参数兀(,=1,2…7)决定,参数儿的容差等级决定了产品的成本。
总费用就包括y偏离y。
造成的损失和零件成本。
问题是要寻找零件的标定值和容差等级的最佳搭配,使得批量生产中总费用最小。
我们将问题的解决分成了两个步骤:
1.预先给定容差等级组合,在确定容差等级的情况下,寻找最佳标定值。
2.采用穷举法遍历所有容差等级组合,寻找最佳组合,使得在某个标定值下,总费用最小。
在第二步中,由于容差等级组合固定为108种,所以只要在第一步的基础上,遍历所有容差等级组合即可。
但是,这就要求,在第一步的求解中,需要一个最佳的模型使得求解效率尽可能的要高,只有这样才能尽量节省计算时间。
经过对模型以及matlab代码的综合优化»最终程序运行时间仅为3.995秒。
最终计算出的各个零件的标定值为:
^=(0.0750,0.3750,0.1250,0.1200,1.2919,15.9904,0.5625},
等级为:
d=B,B,B,C,C,B,B
一台粒子分离器的总费用为:
421.7878元
与原结果相比鮫,总费用由3074.8(元/个)降低到421.7878(元/个),降幅为86.28%,结果是令人满意的。
为了检验结果的正确性,我们用计算机产生随机数的方式对模型的最优解进行模拟检验,模拟结果与模型求解的结果基本吻合。
最后,我们还对模型进行了误差分析,给出了改进方向,使得模型更容易推广。
关键字:
零件参数非线性规划期望方差
一、问题重述
一件产品由若干零件组装而成,标志产品性能的某个参数取决于这些零件的参数。
零件参数包括标定值和容差两部分。
进行成批生产时,标定值表示一批零件该参数的平均值,容差则给出了参数偏离其标定值的容许围。
若将零件参数视为随机变量,则标定值代表期望值,在生产部门无特殊要求时,容差通常规定为均方差的3倍。
进行零件参数设计,就是要确定其标定值和容差。
这时要考虑两方面因素:
一是当各零件组装成产品时,如果产品参数偏离预先设定的目标值,就会造成质量损失,偏离越大,损失越大;二是零件容差的大小决定了其制造成本,容差设计得越小,成本越高。
试通过如下的具体问题给出一般的零件参数设计方法。
粒子分离器某参数(记作y)由7个零件的参数(记作XI,X2,.・・,xj决定,经验公式为:
y=174.42x
y的目标值(记作yo)为1.50。
当y偏离yo+0.1时、产品为次品,质量损失为1,000元;当y偏离yo+0・3时,产品为废品,损失为9,000元。
零件参数的标定值有一定的容许国;容差分为A、B、C三个等级,用与标定值的相对值表示,A等为+1%,B等为+5%,C等为+10%。
7个零件参数标定值的容许围,及不同容差等级零件的成本(元)如下表(符号/表示无此等级零件):
标定值容许围
C等
B等
A等
X1
[0.075,0.125]
/
25
/
X2
[0.225,0.375]
20
50
/
X3
[0.075,0.125]
20
50
200
X4
[0.075,0.125]
50
100
500
X》
[1.125,1.875]
50
/
/
XH
[12,20]
10
25
100
X?
[0.5625,0.935]
/
25
100
现进行成批生产,每批产#1,000个。
在原设计中,7个零件参数的标定值为:
Xi=0.1,X2=0.3,xs=0.1,xi=0.1,X5=l.5,Xe=16,X7=0.75;容差均取最便宜的等级°
请你综合考虑y偏离yo造成的损失和零件成本,重新设计零件参数(包括
标定值和容差),并与原设计比较,总费用降低了多少?
二、棋型假设
1、将各零件参数视为随机变量,且各自服从正态分布;
2、假设组成离子分离器的各零件互不影响,即各零件参数互相独立;
3、假设小概率事件不可能发生,即认为各零件参数只可能出现在容许围;
4、在大批量生产过程中,整批零件都处于同一等级,。
本题可认为1000各
零件都为A等、B等或C等;
5、生产过程中出质量损失外无其他形式的损失;
6、在质量损失计算过程中,认为所有函数都是连续可导的。
三、符号说明
兀:
第i类零件参数的标定值(21,2……7);
△兀:
第i类零件参数的实际值相对目标值的偏差(i=l,2……7);
r,:
第i类零件参数的容差(i=l,2,……7);
6:
第i类零件参数的方差(21,2,……7);
©,亿:
标定值“的上、下限;
y:
离子分离器某参数的实际值;
儿:
离子分离器该参数的目标值;
y:
离子分离器某参数的均值;
△y:
离子分离器某参数的实际值y相对平均值亍的偏差;
6:
离子分离器某参数的方差;
片:
一批产品中正品的概率;
人:
一批产品中次品的概率;
4:
一批产品中废品的概率;
W:
—批产品的总费用(包括损失和成本费);
5:
第i类零件对应容差等级为j的成本(j二A,B,C)单位:
元/个。
成本费
损失费
次品率废品率心服从正态分布容差等级
y服从正容差
态分布
泰勒公式将
其线性化
该问题是一定约束条件下的最优化问题,经分析题意,拟建立以总费用为目标函数的非线性规划模型。
总费用由损失费和成本费两部分组成,零件成本由简单的线性代数式决定,而损失费涉及概率分布的非线性函数。
要求出损失费,就必须知道一批产品的次品率和废品率、结合各类零件都服从Ngbj)、可假设y也服从正态分布,联想正态分布的性质——当各变量均服从正态分布时,其线性组合也服从正态分布。
题中所给经验公式为一复杂的非线性的公式,无法直接对其分析处理,所以需借助泰勒公式将其展开并作相应处理使其线性化。
而对于零件成本,需先确定容差等级才能求得成本费。
由容差等级和各类零件的标定值“便可知道给类零件的容差件。
最后,便将问题转化为呂、人关于总目标函数的最优解的问题上。
在进行零件参数设计时,如果零件设计不妥,造成产品参数偏离预先设定值,就会造成质量损失,且偏差越大,损失也越大;零件容差的大小决定了其制造成本,容差设计得越小(即精度越高)零件成本越高。
合理的设计方案应既省费用又能满足产品的预先设定值,设计方向应该如下:
(1)设计的零件参数,要保证由零件组装成的产品参数符合该产品的预先设定值,即使有偏离也应是在满足设计最优下的容许围。
(2)零件参数(包括标定值和容差等级)的设计应使总费用最小为优。
此外分析零件的成本及产品的质量损失不难发现,质量损失对费用的影响远大于零件成本对费用的影响,因而设计零件参数时,主要考虑提高产品质量来达到减少费用的目的。
五、棋型建立
为了确定原设计中标定值(的期望值)及已给的容差对产
品性能参数影响而导致的总损失W,即确定偏离目标值所造成的损失和零件成本,先列出总损失的数学模型表达如下:
7
VV=1000x(工q+10004+9000A)
当然、为了确定总损失W,必须知道片、巴、§(即正品、次品及废品的
概率)。
为此,将经验公式用泰勒公式在X=兀(=12・・7)处展开并略去二次以
上高次项后来研究y的概率分布,设f(x)=y/则f(x)=y=f(xi)+£鲁》
将标定值兀(/=12・7)带入经验公式即得
y=/U)
所以由于在加工零件时,在标定值知道的情况下,加工误差服从正态分布,即
Ar,-N(0,打)
且相互独立,由正态分布性质可知
△y~N(O,bJ)
y〜N(y,bJ)
由误差传递公式得
由于容差为均方差的3倍,容差与标定值的比值为容差等级,则
6_0.010.050,1
3,3,3
y的分布密度函数为
y偏离儿±0」的概率j即次品的概率为
p2=J:
:
0(y)〃(y)+]*:
》(刃〃(y)
(2)
y偏离儿±0.3的概率,即废品的概率为
P、=+『:
0(刃〃(y)(3)
由于y偏离儿越远、损失越大*所以在o\固定时、调整y使之等于目标值儿可
降彳氐扌员失0取=y_y0即y=y0,贝U
0(/)为标准正态分布函数o
综合考虑y偏离屮)造成的损失和零件成本,设计最优零件参数的模型建立如下:
目标函数
7
minW=1000x(^q+1000P.+9000/>)
S.t.fbt・=/(")(心1,2…7)
六、模型求解
初略分析
对于原给定的设计方案,利用matlab编程计算(见附录),计算结果如下:
正品率
次品率
废品率
成本费
损失费
总费用
0.1260
0.6239
0.2501
200
2874.8
3074.8
由于按原设计方案设计的产品正品率过低,损失费过高,显然设计不够合理。
进一步分析发现»参数均值y=1.7256偏离目标值儿习.5太远,致使损失过大°尽管原设计方案保证了正本最低,但由于零件参数的精度过低,导致正品率也过低。
所以我们应综合考虑成本费和损失费。
模型的实现过程:
本模型通过matlab进行求解,我们通过理论模型求解和随机模拟的求解过程如下:
在给定容差等级的情况下,利用matlab中求解非线性规划的函数fmincon,通过多次迭代求解,最终求得一组最优解。
最初,我们设定的fmincon函数的目标函数就是总费用,约束条件为各个标定值的容许围,以及各零件标定值带入产品参数表达式应为儿,即1.5。
然而,在迭代过程中我们发现,求解过程十分慢,在给定容差等级的确定的情况下,计算最优标定值需要将近400秒,如果在此基础上对108种容错等级进行穷举查找最优组合,将需要大概12小时。
显然这是不合理的。
因此,我们在仔细对matlab实现代码研究发现,求解过程之所以慢1是因为代码中存在多次调用求偏导和积分的函数*在fuiincon的多次迭代中,耗费大量时间。
所以,为了提高求解速度,我们首先利用matlab中diff函数对产品参数中的各个表达式进行求偏导,然后得到多个带参表达式,利用int函数对y的概率密度函数进行积分吩别得到出现次品和废品概率的表达式,然后将这些表达式写进程序里,这样在求解过程中就不需要在每一次迭代中都要
求偏导和积分了,修改后的程序运行时间大大减少。
程序流程图
等级未计算结束
程序见附录,求解结果如下:
零件
1
2
3
4
5
6
7
种
类
零
件
0.0750
0.3750
0.1250
0.1200
1.2919
15.9904
0.5625
参
数
容
差
B
B
B
C
C
B
B
等
级
正品率
次品率
废品率
成本费
损失费
总费用
0.8533
0.1476
0.0000
275
146.7878
421.7878
运行总时间:
3.995s
离子分离器参数均值y=1.5
离子分离器参数方差o-v=0.0689
模型检验
对设计方案进行动态模拟,由于每种零件参数均服从正态分布,用正态分布
随机数发生器在每种零件参数允许围产生1000个随机数参与真实值兀的计算随机模拟N次后结果如下:
正品率
次品率
废品率
成本费
损失费
总费用
0.8570
0.1430
0.0000
275
143
418
根据最优解的y=1.5»crv=0.0689画出y的概率分布图,再对x随机取样画出y的概率分布图(见图6.1),由图可知:
两组数据所画概率分布图的拟合度相当高,进一步确保了模型的正确性。
「对照图
6IIillII
/\注:
蓝线为对X随机取样求得的y分布5_/U红线为根据模型计算出的y分布'
图6.1概率分布图对比图
通过以上数据,与原设计方案所得结果相比较,总费用由3074.8(元/个)降低到421.7878(元/个),降幅为86.28%,结果是令人满意的。
七、误差分析
1、在建模过程中,通过泰勒公式将y=f(X)展开并略去二次及以上项使线性化,不可避免地产生了截斷误差,所以展开后的式子只是原经验公式的近似关系式。
但在一般情况下,线性化和求总和在实用上具有足够的精度,所以由于函数线性化而略去的高次项可以忽略不计。
在函数关系式较复杂的情况下,将其线性化更具有明显的优势。
2、本模型忽略了小概率事件发生的可能,认为零件的参数只可能出现在允围,即氐-3巧,兀+30;]o现实中,小概率事件仍有发生的可能性,但在大批量生产中,小概率事件的发生对最终结果没有影响,所以可以忽略。
3、该模型对于质量损失的计算,将所有函数都看作连续函数,而这对于每个零件参数而言是不可能的,所以其中也会产生误差。
八、棋型的评价及推广
1.优点
(1)建模过程中,采用泰勒公式将经验公式简化,并假设各零件参数都服从满足大量数据的正态分布,使得整个模型的建立及求解得到大大简化。
(2)本模型运用概率统计与优化知识对零件参数进行优化设计。
通过建立一个反映设计要求的数学模型,利用MATLAB软件,经过编程来实现对设计方案参数的调整,将总费用由3074.8(元/个)降低到421.7878(元/个),降幅达到86.28%,结果还是令人十分满意的。
(3)本模型在程序运算的过程中,做了适当处理,将每次循环本该由计算机求偏导和积分的提前人为处理,将求偏导和积分后的算式写入程序中,这样大大节约了运算时间,将运行时间由几个小时缩短为3.0995s。
2.缺点
(1)本模型在模型的求解过程中,对一些可接受围的误差直接进行了忽略,因而对于结果的精确性还是会有一定的影响。
(2)本模型是建立在一些假设中的,所有实用性受到了限制,在实际生产中,如果可以把更多的一些因素考虑进去应该会更好。
在已假定的条件下,本模型的优化结果是好的。
3推广
此模型有较强的应用价值。
工程中往往因为某个零件的选取不当,而影响产品的参数,使可靠性降低,造成了极大的经济损失。
所以需综合考虑零件成本和质量,以求获得最大的经济效益。
本模型具有广泛的适用性,很容易加以推广。
模型中的设计变量
可以推广到个的情形,即设计变量,其中设计空间是一个维空间。
本模不仅适用于粒子分离器参数的设计,而且也可用于类似的机构、零部件、工艺设备等的基本参数的设计问题;容差等级同样可推广应用。
参考文献
【1】之俊,平中,《概率与统计》,国防工业,1985
【2】宝林,《最优化理论与算法》,清华大学,1989
[3]裘宗燕,《数学软件系统的应用及程序设计》,大学,1994
[4]许波,(Matlab工程数学应用》、清华大学/2001
附录-matlab代码:
functionf=result
%穷举108种容错等级组合求解仝局最优解
fval=inf;
tic
%Bmin=[2333332);
%Xmin
B(l)=2;
B(5)=3;
fori=2:
3
B
(2)=i;
forj=l:
3
B(3)=j;
fort=l:
3
B(4)=t;
forg=l:
3
B(6)=g;
form=l:
2
B(7)=m;
[fv,x]=getcost(B);
iffvXmin=x;
Bmin=B;
fval=fv;
end;
end;
end;
end;
end;
end;
f=fval,Xmin,Bmin,p=getP(Xmin,Bmin)
toe
simulation(Xmin,Bmin);%用随机法和计算的结果进行模拟比较functionf=simulation(MU,B)
%用随机法和计算的结果进行模拟比校fori=l:
10000
y(i)=Yfun(getparaX(Ml\B));
end;
[f,xi]=ksdensity(y);plot(xi,f);%画经验概率密度曲线
holdon;
yO=Yfun(MU);
fc=getfcY(MU,B);
%{
x=normrnd(yO,fc,1,10000);
[fhxj]=ksdensity(x);
plot(xj>fl,'f);
%}
x0=min(y):
0.01:
max(y);
y=((2*pi)^0.5*fc)X-l)*exp(-(xO-yO).^2/2/fc*2);
plot(x0,y,T);
%{
x=min(y):
0.01:
max(y);
yg=gaussmf(x,[fc,yO]);plot(x,yg,*r);
%}
titleC对照图•);
gtextC注:
蓝线为对x随机取样求得的y分布');gtextC红线为根据模型计算出的y分布');xlabelC于);
ylabel('y的漑率密度’);
holdoff;
functionf,x]=getcost(B)
%在给定容差等级的情况下求最优的标定值,使得Y的均值为yO的情况下,方差最小
MU=(0.10.30.10.11.5160.75];%给定初始的标定值
options=optimsetCLargeScale*,*off*,*Display*,*off*);%,*Tolx*,1.0000e-032);[x,fval]=fminconCgetfcY*,MU,[]>[],(]>[],[],[]>*mycon,options,B);
x,B,f=cost(x,B)
function[c,ceq]=mycon(MU,B)
%求最优标定值时的约束条件
%c为不等式约束
%ceq为等式约束
c(l)=MU
(1)-0.125;
c
(2)=0.075-MK1);
c(3)=MU
(2)-0.375;
c(4)=0.225-MU
(2);
c(5)=Ml(3)-0.125;
c(6)=0.075-Ml(3);
c(7)=MU(4)-0.125;
c(8)=0.075-MK4);
c(9)=MU(5)-1.875;
c(10)=1.125-MU(5);
c(ll)=MU(6)-20;
c(12)=12-Ml(6);
c(13)=MU(7)-0.935;
c(14)=0.5625-MK7);
ceq(l)=Yfun(MU)-1.5;
functionf=cost(MU,B)
%当标定值为肌「容差等级为B时,求费用f=25;
p=getP(Ml\B);%求正晶>次品'废胳的概率
if(B
(2)==2)
f=f+50;else
f=f+20;end;
switch(B(3))
case1f=f+200;
case2f=f+50;
case3f=f+20;end;
switch(B(4))
case1f=f+500;
case2f=f+100;
case3
f=f+50;end;
f=f+50;
switch(B(6))
case1f=f+100;
case2f=f+25;
case3
f=f+10;
end;
if(B(7)==l)
f=f+100;
else
f=f+25;
end;
f=f+p
(2)*1000+p(3)*9000;
functionf=getfcY(MU,B)
%对于所给的标定值和容差求Y的方差f=0;
B=int32(B);
fori=l:
7
ifB(i)==l
sigma(i)=Ml(i)*0.01/3;
end;
ifB(i)==2
sigma(i)=MU(i)*0.05/3;
end;
ifB(i)==3
sigma(i)=MU(i)*0.1/3;
end;
end;
xl=MU(l);x2=MU
(2);x3=MU(3);x4=MU(4);x5=MU(5);x6=MU(6);x7=MU(7);
%求丫对各变量的偏导的评分与对应的方差乘积之和
f=(pdl(xl,x2,x3,x4,x5,x6,x7)*sigma(l))*2;f=f+(pd2(xl,x2,x3,x4,x5,x6,x7)*sigma
(2))2■
f=f+(pd3(xltx2,x3,x4,x5,x6,x7)*sigma(3))A2;f=f+(pd4(xl>x2,x3,x4,x5,x6,x7)*sigma⑷)
"2;
f=f+(pd5(xl,x2,x3,x4,x5,x6,x7)*sigma(5))"2;f=f+(pd6(xltx2,x3,x4,x5,x6,x7)*sigma(6))
"2;
f=f+(pd7(xl,x2,x3,x4,x5,x6,x7)*sigma(7))*2;
f=abs(f'O.5);
functionf=pdl(xLx2,x3,x4,x5,x6,x7)
%Y%xl的偏导f=8721/50/x5*(x3/(x2-xl))X17/20)*((l-131/50*(l-9/25/...
(x4/x2)・(14/25))“(3/2)*(x4/x2)“(29/25))/x6/x7)"l/2)+・•.
148257/1000*xl/x5/(x3/(x2-xl))73/20)*((l-131/50*(l-9/25/(x4/x2)...
“(14/25))“(3/2)*(x4/x2)・(29/25))/x6/x7)“(l/2)*x3/(x2-xl)"2;
functionf=pd2(xhx2,x3,x4,x5,x6,x7)
%Y%x2的偏导
f=-148257/1000*xl/x5/(x3/(x2-xl))\..
(3/20)*((l-131/50*(l-9/25/(x4/x2)"14/25)T(•…
3/2)*(x4/x2)“(29/25))/x6/x7)“(l/2)*x3/(x2-xl)•….
2+8721/100*xl/x5*(x3/(x2-xl))'(17/20)/(仃-131/50*(1-9/25/.・•
(x4/x2)・(14/25)),3/2)*(x4/x2),29/25))/x6/x7)“(l/2)*(24759/31250*….
(l-9/25/(x4/x2)"14/25))“(l/2)/(x4/x2)“(2/5)*x4/x2"2+3799/1250*(l-9/25/・・・
(x4/x2T(14/25))“(3/2)*(x4/x2)“(4/25)*x4/x2“2)/x6/x7;
functionf=pd3(xhx2,x3,x4,x5,x6,x7)
%Y%x3的偏导
f=148257/1