?? 17-無心磨削工藝參數(shù)的優(yōu)化.m
字號(hào):
% 無心磨削工藝參數(shù)優(yōu)化(調(diào)用wxmx_f和wxmx_g)
% 1----主程序
% 設(shè)計(jì)變量
% x(1)----工件線速度(m/min);
% x(2)----工件軸向進(jìn)給量(mm/r);
% x(3)----磨削深度(mm).
% 設(shè)計(jì)變量的初始值
x0=[60;5.3;0.016];
% 設(shè)計(jì)變量的下界與上界
vlb=[12.241;3.047;0.002];
vub=[88.579;7.621;0.030];
% 如果沒有設(shè)計(jì)變量邊界限制,則邊界參數(shù)lb,ub定義為空矩陣符號(hào)“[ ]”
% 六個(gè)線性不等式約束(g6、g7、g8、g9、g10、g11)中設(shè)計(jì)變量的系數(shù)矩陣
a=zeros(6,2);
a(1,1)=-1;a(2,1)= 1;
a(3,2)=-1;a(4,2)= 1;
a(5,3)=-1;a(6,3)= 1;
% 六個(gè)線性不等式約束中常數(shù)項(xiàng)列陣
b=[-12.241;88.579;-3.047;7.621;-0.002;0.030];
% 調(diào)用多維約束優(yōu)化函數(shù)
% 等式約束參數(shù)Aeq,beq定義為空矩陣符號(hào)“[ ]”
[x,fn]=fmincon(@wxmx_f,x0,a,b,[],[],vlb,vub,@wxmx_g);
fmax=1e3*x(1)*x(2)*x(3);
disp ' '
disp ' ******** 計(jì) 算 結(jié) 果 ********'
disp ' '
disp ' ******** 無心磨削工藝參數(shù)的最優(yōu)解 ********'
fprintf (1,' 工件線速度 vw = %3.4f m/min \n',x(1))
fprintf (1,' 工件軸向進(jìn)給量 fa = %3.4f mm/r \n',x(2))
fprintf (1,' 磨削深度 t = %3.4f mm \n',x(3))
fprintf (1,' 金屬切除率 fmax = %3.4f mm^3/min \n',fmax)
disp ' '
% 調(diào)用三維約束優(yōu)化非線性約束函數(shù)(wxmx_g)計(jì)算最優(yōu)點(diǎn)x*的性能約束函數(shù)值
g=wxmx_g(x);
disp ' ======== 最優(yōu)點(diǎn)的性能約束函數(shù)值 ========'
fprintf (1,' 表面粗糙度限制條件 g1 = %3.4f \n',g(1))
fprintf (1,' 防止磨削燒傷限制條件 g2 = %3.4f \n',g(2))
fprintf (1,' 磨輪耐用度限制條件 g3 = %3.4f \n',g(3))
fprintf (1,' 磨床主電機(jī)功率限制條件 g4 = %3.4f \n',g(4))
fprintf (1,' 工件軸向速度限制條件 g5 = %3.4f \n',g(5))
disp ' '
disp ' ======== 最優(yōu)點(diǎn)的邊界約束函數(shù)值 ========'
fprintf (1,' 工件線速度最小值 g6 = %3.4f \n',12.241-x(1))
fprintf (1,' 最大值 g7 = %3.4f \n',x(1)-88.579)
fprintf (1,' 工件軸向進(jìn)給量最小值 g8 = %3.4f \n',3.047-x(2))
fprintf (1,' 最大值 g9 = %3.4f \n',x(2)-7.621)
fprintf (1,' 磨削深度最小值 g10 = %3.4f \n',0.002-x(3))
fprintf (1,' 最大值 g11 = %3.4f \n',x(3)-0.03)
% 2----目標(biāo)函數(shù)(wxmx_f)
function f=wxmx_f(x);
% 金屬切除率(mm^3/min)最大化
f=1e3/(x(1)*x(2)*x(3));
% 3----非線性不等式約束函數(shù)(wxmx_g)
function [g,ceq] = wxmx_g(x);
hd=pi/180;
% 約束條件1-工件表面最大高度不超過表面粗糙度要求限制條件
Bw=28; % 工件寬度(mm);
dw=55.56; % 工件直徑(mm);
dr=500; % 導(dǎo)輪直徑(mm);
Rz=2; % 表面粗糙度(微米);
Kh=80; % 表面粗糙度系數(shù);
u=0.22; % 磨輪切削刃平均間隔(mm);
Lmd=53; % 磨輪磨刃半頂角(度);
n=1300; % 磨輪轉(zhuǎn)速(r/min);
v=1e-3*pi*dr*n; % 磨輪線速度(m/min);
g(1)=1.36*Kh*u^1.2*(x(1)*x(2)/(tan(Lmd*hd)*v*Bw))^0.4*(1/dr+1/dw)^0.2-Rz;
% 約束條件2-防止磨削燒傷限制條件
Cb=1920; % 磨削燒傷臨界系數(shù)(m.mm/min);
g(2)=(v-x(1))*x(3)^0.5*(dr*dw/(dr+dw))^0.5-Cb;
% 約束條件3-磨輪耐用度限制條件
Ct=2550; % 工件材料系數(shù);
Tb=30; % 磨輪耐用度適用值(min);
g(3)=Tb-Ct*dw^0.6/(x(1)*x(2))^1.82/x(3)^1.1;
% 約束條件4-磨床主電機(jī)功率限制條件
Pc=13; % 磨床主電機(jī)功率(kW);
nu=0.95; % 磨床主電機(jī)到主軸之間的傳動(dòng)效率;
Tb=30; % 磨輪耐用度適用值(min);
g(4)=0.0358*(1e3*x(1)*x(2)*x(3)/pi)^0.7-nu*Pc;
% 約束條件5-工件軸向速度限制條件
vam=2000; % 工件軸向速度最大值(mm/min);
g(5)=1e3*(x(1)*x(2))/(pi*dw)-vam;
% 沒有非線性等式約束條件
ceq=[];
% 4----計(jì)算結(jié)果分析
disp ' ******** 磨削工藝參數(shù)的湊整解 ********'
dw=55.56; % 工件直徑(mm);
dr=500; % 導(dǎo)輪直徑(mm);
hd=pi/180;
alf=atan(x(2)/(pi*dw)); % 導(dǎo)輪偏角(rad)
nr=1e3*x(1)/(pi*dr*cos(alf)); % 導(dǎo)輪轉(zhuǎn)速(r/min)
nrj=[13 17 23 30 40 53 71 94]; % 磨床導(dǎo)輪的八級(jí)轉(zhuǎn)速
for i=1:8
if nr<=nrj(i)
nrd=nrj(i-1);break % 確定導(dǎo)輪轉(zhuǎn)速
end
end
vwz=1e-3*pi*dr*nrd*cos(alf); % 工件線速度湊整解(m/min)
fnz=(pi*dr*nrd*cos(alf))*(pi*dw*tan(alf))*x(3); % 金屬切除率湊整解
alfy=2.50;nry=30;ty=0.01; % 原精磨工藝參數(shù)
fay=pi*dw*tan(alfy*hd); % 原工件軸向進(jìn)給量(mm/r)
vwy=1e-3*pi*dr*nry*cos(alfy*hd); % 原工件線速度(m/min)
fny=1e3*vwy*fay*ty; % 原金屬切除率(mm^3/min)
fprintf (1,' 磨床導(dǎo)輪偏角 alf = %3.4f 度 \n',alf/hd)
fprintf (1,' 導(dǎo)輪轉(zhuǎn)速 nr = %3.0f r/min \n',nrd)
fprintf (1,' 工件線速度 vwz = %3.4f m/min \n',vwz)
fprintf (1,' 金屬切除率湊整解 fnz = %3.4f mm^3/min \n',fnz)
disp ' '
disp ' ******** 原磨削工藝參數(shù) ********'
fprintf (1,' 原磨床導(dǎo)輪偏角 alfy = %3.4f 度 \n',alfy)
fprintf (1,' 原導(dǎo)輪轉(zhuǎn)速 nry = %3.0f r/min \n',nry)
fprintf (1,' 原工件線速度 vwy = %3.4f m/min \n',vwy)
fprintf (1,' 原工件軸向進(jìn)給量 fay = %3.4f mm/r \n',fay)
fprintf (1,' 原工件磨削深度 ty = %3.4f mm \n',ty)
fprintf (1,' 原金屬切除率 fny = %3.4f mm^3/min \n',fny)
disp ' '
fprintf (1,' 新舊工藝金屬切除率之比 fnb = %3.4f \n',fnz/fny)
fprintf (1,' 金屬切除率提高率 fnv = %3.4f \n',(fnz-fny)/fny)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -