目前经济全球化不断加强,企业都在追求成本优势。机械产品装配作为生产过程的最后一个环节,在生产中起到至关重要的作用。尤其对于结构与装配工艺复杂的机械产品,在装配过程中存在各种不确定因素,因此制定出合理的装配调度方案有利于提高机械产品的生产效率,提高企业竞争力和效益。机床生产装配工艺复杂、生产制造周期长。如何提高机床制造的生产管理水平,缩短复杂机床产品的制造周期,提高机床生产的准时交付能力,是当前非常紧迫的研究课题。车间调度是一项非常有效的提高生产效率的管理手段,通过选择不同的加工机器,改变加工次序,在不引进新设备的情况下,实现快速生产。传统的调度管理方法已很难满足顾客的个性化需求,为了追求机床制造业装配的合理性、高效性,能够灵活地生产适应各种需求的高质量产品,降低生产制造成本,提高准时交付率,加快库存资金周转,以获取企业效益最大化。本文主要研究内容如下:(1)对数控激光切割机床生产的国内外研究现状进行概述,简要介绍目前装配混合流水车间和模拟退火算法的研究现状。(2)以A公司机床装配车间为研究对象,分析了目前A公司机床装配生产线的运行情况。确定优化需求为装配时间最短,统计传统调度不同型号机床不同工序装配时间,建立机床装配调度的混合流水生产线。(3)分析了模拟退火算法的优缺点,结合所建模型,求解出混合流水车间装配调度模型。运用Matlab建模软件进行仿真。
clc;
clear;
close all;
%% Problem Definition
model=CreateModel(); % Create Model of the Problem
CostFunction=@(q) MyCost(q,model); % Cost Function
nVar=model.nVar; % Number of Decision Variables
VarSize=[1 nVar]; % Size of Decision Variables Matrix
%% SA Parameters
MaxIt=100; % Maximum Number of Iterations
MaxIt2=25; % Maximum Number of Inner Iterations
T0=10; % Initial Temperature
alpha=0.97; % Temperature Damping Rate
%% Initialization
% Create Initial Solution
x.Position=CreateRandomSolution(model);
[x.Cost, x.Sol]=CostFunction(x.Position);
% Update Best Solution Ever Found
BestSol=x;
% Array to Hold Best Cost Values
BestCost=zeros(MaxIt,1);
% Set Initial Temperature
T=T0;
%% SA Main Loop
for it=1:MaxIt
for it2=1:MaxIt2
% Create Neighbor
xnew.Position=CreateNeighbor(x.Position);
[xnew.Cost, xnew.Sol]=CostFunction(xnew.Position);
if xnew.Cost<=x.Cost
% xnew is better, so it is accepted
x=xnew;
else
% xnew is not better, so it is accepted conditionally
delta=xnew.Cost-x.Cost;
p=exp(-delta/T);
if rand<=p
x=xnew;
end
end
% Update Best Solution
if x.Cost<=BestSol.Cost
BestSol=x;
end
end
% Store Best Cost
BestCost(it)=BestSol.Cost;
% Display Iteration Information
disp(['Iteration ' num2str(it) ': Best Cost = ' num2str(BestCost(it))]);
% Reduce Temperature
T=alpha*T;
% Plot Solution
figure(1);
PlotSolution(BestSol.Sol,model);
pause(0.01);
end
img =gcf; %获取当前画图的句柄
print(img, '-dpng', '-r600', './img1.png') %即可得到对应格式和期望dpi的图像
%% Results
figure;
plot(BestCost,'LineWidth',2);
xlabel('Iteration');
ylabel('Best Cost');
grid on;
img =gcf; %获取当前画图的句柄
print(img, '-dpng', '-r600', './img.png') %即可得到对应格式和期望dpi的图像
[1]卢杭. 基于改进模拟退火算法的机床装配车间调度研究.