零件参数设计matlab程序(数学建模)
Min=90000;
global H A C %全局变量
H=[10000,25,10000;20,50,10000;20,50,200;50,100,500;50,10000,10000;10,25,100;10000,25,100 ]; %成本矩阵
A=[0.1 0.05 0.01;0.1 0.05 0.01;0.1 0.05 0.01;0.1 0.05 0.01;0.1 0.05 0.01;0.1 0.05 0.01;0.1 0.05 0.01]; %容差矩阵
C=zeros(7,3); 把容差选择矩阵元素全部赋值为0
for z=1:1:3
for x=1:1:3
for c=1:1:3
for v=1:1:3
for g=1:1:3
for n=1:1:3
for m=1:1:3
D=[z x c v g n m];
C=zeros(7,3);
for i=1:1:7
C(i,D(i))=1;
end %产生7 3列矩阵,该矩阵特点是每一行只有一个
1 ,其它两个数为0。本矩阵是为了对零件容差等级
进行选择
lb=[0.075 0.225 0.075 0.075 1.125 12 0.5625];
ub=[0.125 0.375 0.125 0.125 1.875 20 0.935];
X0=[0.075 0.225 0.075 0.075 1.125 12 0.5625];
[xopt fopt]=fmincon(@mubiao,X0,[],[],[],[],lb,ub,[]);
if fopt Min=fopt; XOPT=xopt; Q=C; end end end end end end end end function f=junzhi(X) f=3.4512+[24.5896,-5.9911,14.6675,-4.0281,-1.1504,-0.0539,-1.1504]*X' ; %把一组X取值带入经验公式的简化式,得到期望值μ function f=junzhi2(X) f=([24.5896,-5.9911,14.6675,-4.0281,-1.1504,-0.0539,-1.1504].*X)/3; %得到一个行向量,为计算均方差σ做准备 function f=mubiao(X) global C A H %全局变量 B=C.*A; E=(sum(B,2)); G= junzhi2(X); F=(G'.*E).^2; b=(sum(F(:)))^0.5; %求解产品参数的均方差,b即是均方差 a= junzhi(X); %求解产品参数的期望值 p0=normcdf(1.6,a,b)-normcdf(1.4,a,b); %产品为合格品的概率 p1=normcdf(1.8,a,b)-normcdf(1.6,a,b)+normcdf(1.4,a,b)-normcdf(1.2,a,b ); %产品为次品的概率 p2=1-p0-p1; %产品为废品的概率 sunshi=1000*p1+9000*p2; %产品的损失费用 I=C.*H; %用容差选择矩阵选择容差等级 chengben=sum(I(:)); %零件的总成本 f=chengben+sunshi; %目标函数