数学建模 零件参数的优化设计

  • 格式:doc
  • 大小:231.00 KB
  • 文档页数:14

零件参数的优化设计摘要本文建立了一个非线性多变量优化模型。

已知粒子分离器的参数y由零件参数)72,1(=ixi 决定,参数ix的容差等级决定了产品的成本。

总费用就包括y偏离y0造成的损失和零件成本。

问题是要寻找零件的标定值和容差等级的最佳搭视为随机变量,则标定值代表期望值,在生产部门无特殊要求时,容差通常规定为均方差的3倍。

进行零件参数设计,就是要确定其标定值和容差。

这时要考虑两方面因素:一是当各零件组装成产品时,如果产品参数偏离预先设定的目标值,就会造成质量损失,偏离越大,损失越大;二是零件容差的大小决定了其制造成本,容差设计得越小,成本越高。

试通过如下的具体问题给出一般的零件参数设计方法。

粒子分离器某参数(记作y)由7个零件的参数(记作x1,x2,...,x7)决定,经验公式为:y的目标值(记作y0)为1.50。

当y偏离y+0.1时,产品为次品,质量损失为1,000元;当y偏离y+0.3时,产品为废品,损失为9,000元。

零件参数的标定值有一定的容许范围;容差分为A、B、C三个等级,用与标定值的相对值表示,A等为+1%,B等为+5%,C等为+10%。

7个零件参数标定值的容许范围,及不同容差等级零件的成本(元)如下表(符号/表示无此等级i σ:第i 类零件参数的方差(i=1,2,……7);i i b a ,:标定值i x 的上、下限;y :离子分离器某参数的实际值;0y :离子分离器该参数的目标值; y :离子分离器某参数的均值;y∆:离子分离器某参数的实际值y相对平均值y的偏差;σ:离子分离器某参数的方差;yP:一批产品中正品的概率;1P:一批产品中次品的概率;2P:一批产品中废品的概率;3 Array又能满足产品的预先设定值,设计方向应该如下:(1)设计的零件参数,要保证由零件组装成的产品参数符合该产品的预先设定值,即使有偏离也应是在满足设计最优下的容许范围。

(2)零件参数(包括标定值和容差等级)的设计应使总费用最小为优。

此外分析零件的成本及产品的质量损失不难发现,质量损失对费用的影响远大于零件成本对费用的影响,因而设计零件参数时,主要考虑提高产品质量来达到减少费用的目的。

五、模型建立为了确定原设计中标定值(x i i (,,,)=127 的期望值)及已给的容差对产⎰⎰+=8.16.14.12.12)()()()(y d y y d y P ϕϕ(2)y 偏离3.00±y 的概率,即废品的概率为⎰⎰+∞∞-+=8.12.13)()()()(y d y y d y P ϕϕ(3)由于y 偏离0y 越远,损失越大,所以在y σ固定时,调整y 使之等于目标值0y 可降低损失。

取0y y y -=∆即0y y =,则)(t φ为标准正态分布函数。

综合考虑y 偏离y 0造成的损失和零件成本,设计最优零件参数的模型建立如下: 目标函数min )90001000(10003271P P C W i ij ++⨯=∑=解过程之所以慢,是因为代码中存在多次调用求偏导和积分的函数,在fmincon 的多次迭代中,耗费大量时间。

所以,为了提高求解速度,我们首先利用matlab 中diff 函数对产品参数中的各个表达式进行求偏导,然后得到多个带参表达式,利用int 函数对y 的概率密度函数进行积分,分别得到出现次品和废品概率的表达式,然后将这些表达式写进程序里,这样在求解过程中就不需要在每一次迭代中都要求偏导和积分了,修改后的程序运行时间大大减少。

程序流程图通过以上数据,与原设计方案所得结果相比较,总费用由3074.8(元/个)降低到421.7878(元/个),降幅为86.28%,结果是令人满意的。

七、误差分析1、在建模过程中,通过泰勒公式将)y=展开并略去二次及以上项使线(Xf性化,不可避免地产生了截断误差,所以展开后的式子只是原经验公式的近似关系式。

但在一般情况下,线性化和求总和在实用上具有足够的精度,所以由于函数线性化而略去的高次项可以忽略不计。

在函数关系式较复杂的情况下,将其线性化更具有明显的优势。

2、本模型忽略了小概率事件发生的可能,认为零件的参数只可能出现在允 范围内,即[]i i i i x x σσ3,3+-。

现实中,小概率事件仍有发生的可能性,但在大批量生产中,小概率事件的发生对最终结果没有影响,所以可以忽略。

3、该模型对于质量损失的计算,将所有函数都看作连续函数,而这对于每 个零件参数而言是不可能的,所以其中也会产生误差。

八、模型的评价及推广此模型有较强的应用价值。

工程中往往因为某个零件的选取不当,而影响产品的参数,使可靠性降低,造成了极大的经济损失。

所以需综合考虑零件成本和质量,以求获得最大的经济效益。

本模型具有广泛的适用性,很容易加以推广。

模型中的设计变量x i i (,,,)=127 可以推广到n 个的情形,即设计变量x i n R i n (,,,)=∈12 ,其中设计空间R n是一个n维空间。

本模不仅适用于粒子分离器参数的设计,而且也可用于类似的机构、零部件、工艺设备等的基本参数的设计问题;容差等级同样可推广应用。

参考文献【1】韩之俊,姚平中,《概率与统计》,国防工业出版社,1985【2】陈宝林,《最优化理论与算法》,清华大学出版社,1989【3】裘宗燕,《数学软件系统的应用及程序设计》,北京大学出版社,1994 【4】许波,《Matlab工程数学应用》,清华大学出版社,2001end;end;end;end;end;f=fval,Xmin,Bmin,p=getP(Xmin,Bmin)tocsimulation(Xmin,Bmin);%用随机法和计算的结果进行模拟比较function f=simulation(MU,B)%用随机法和计算的结果进行模拟比较for i=1:10000y(i)=Yfun(getparaX(MU,B));end;[f,xi]=ksdensity(y);plot(xi,f);%画经验概率密度曲线hold on;y0=Yfun(MU);fc=getfcY(MU,B);%{%求最优标定值时的约束条件%c为不等式约束%ceq为等式约束c(1)=MU(1)-0.125;c(2)=0.075-MU(1);c(3)=MU(2)-0.375;c(4)=0.225-MU(2);c(5)=MU(3)-0.125;c(6)=0.075-MU(3);c(7)=MU(4)-0.125;c(8)=0.075-MU(4);c(9)=MU(5)-1.875;c(10)=1.125-MU(5);c(11)=MU(6)-20;c(12)=12-MU(6);c(13)=MU(7)-0.935;c(14)=0.5625-MU(7); ceq(1)=Yfun(MU)-1.5; function f=cost(MU,B)switch(B(6))case1f=f+100;case2f=f+25;case3f=f+10;end;if(B(7)==1)f=f+100;elsef=f+25;end;f=f+p(2)*1000+p(3)*9000;function f=getfcY(MU,B)%对于所给的标定值和容差求Y的方差f=0;B=int32(B);for i=1:7^(14/25))^(3/2)*(x4/x2)^(29/25))/x6/x7)^(1/2)*x3/(x2-x1)^2;function f=pd2(x1,x2,x3,x4,x5,x6,x7)%Y对x2的偏导f=-148257/1000*x1/x5/(x3/(x2-x1))^...(3/20)*((1-131/50*(1-9/25/(x4/x2)^(14/25))^(...3/2)*(x4/x2)^(29/25))/x6/x7)^(1/2)*x3/(x2-x1)^...2+8721/100*x1/x5*(x3/(x2-x1))^(17/20)/((1-131/50*(1-9/25/...(x4/x2)^(14/25))^(3/2)*(x4/x2)^(29/25))/x6/x7)^(1/2)*(24759/31250*...(1-9/25/(x4/x2)^(14/25))^(1/2)/(x4/x2)^(2/5)*x4/x2^2+3799/1250*(1-9/25/...(x4/x2)^(14/25))^(3/2)*(x4/x2)^(4/25)*x4/x2^2)/x6/x7;function f=pd3(x1,x2,x3,x4,x5,x6,x7)%Y对x3的偏导f=148257/1000*x1/x5/(x3/(x2-x1))^(3/20)*((1-131/50*...(1-9/25/(x4/x2)^(14/25))^(3/2)*(x4/x2)^(29/25))/x6/x7)^(1/2)/(x2-x1);function f=pd4(x1,x2,x3,x4,x5,x6,x7)%Y对x4的偏导f=8721/100*x1/x5*(x3/(x2-x1))^(17/20)/((1-131/50*(1-9/25/(x4/x2)^(14/25))^...(3/2)*(x4/x2)^(29/25))/x6/x7)^(1/2)*(-24759/31250*(1-9/25/(x4/x2)^(14/25))^...(1/2)/(x4/x2)^(2/5)/x2-3799/1250*(1-9/25/(x4/x2)^(14/25))^(3/2)*(x4/x2)^(4/25)/x2)/%f(2)=(cdf('normal',y0+0.3,yb,fc)-cdf('normal',y0+0.1,yb,fc))*2;%f(3)=2*cdf('normal',y0-0.3,yb,fc);f(1)=1-f(2)-f(3);f=double(f);function f=jf1(u,a0)%通过积分求出现次品的概率...erf(1/10*2^(1/2)*(-9+5*u)/a0)*2^(1/2)*pi^(1/2).........function f=jf2(u,a0)%通过积分求出现废品的概率............function f=Yfun(x)%Y的表达式function f=getparaX(MU,B)%利用标定值MU和容错等级B,随机求一组零件的参数B=int32(B);for i=1:7if B(i)==1sigma0(i)=MU(i)*0.01;end;if B(i)==2sigma0(i)=MU(i)*0.05;if B(i)==3sigma0(i)=MU(i)*0.1;end;f(i)=normrnd(MU(i),sigma0(i)/3);%while(~(f(i)>(MU(i)-sigma0(i))&f(i)<(MU(i)+sigma0(i)))) %f(i)=normrnd(MU(i),sigma0(i)/3);%end;end;。