2018 国赛B题 CNC生产调度

clc;clear all;
%duanlianda MCMCU8
%%定义常量存储矩阵 以第一组为例
MT_N=[20 33 46]%【MT_1 MT_2 MT_3 】
T_NN=[560 400 378]%【T_11 T_21 T_22】
TJO=[28 31]%【TJ TO】
TW=25%【物料清洗所需时间】
ErrorRat=0.01%故障率
Timer=0;%总体时钟记录器
totalTime=1000;
NumofMaterial=13;
Result=zeros(NumofMaterial,3);%结果存储 有NumofMaterial这么多个物料
%下标(编程方便)
[CNCnm MatUP MatDown]=deal(1,2,3);%[cnc编号 上料时间 下料时间]
%%
%定义对象存储矩阵
%RGV
RGV=zeros(1,3);
%RGV状态矩阵下标
pos=2;%描述位置,四个点1 2 3 4
%Tips机器位置的计算方法:=ceil(机器编号/2) ceil(1.3)=2 也就是向上取整
ifBusy=1;%每一行第一个参数 忙闲 0代表空闲 不为0指示当前任务剩余时间

%%
%CNC状态矩阵(行号为机器号码)
CNC_ALL=zeros(8,3);%8个机器、三个参数
%CNC状态矩阵中的下标对应
ifBusy=1;%每一行第一个参数 忙闲 0代表空闲 不为0指示当前任务剩余时间
WorkNum=2;%当先作业业务编号
%%
%%主程序开始
%策略指定 task1 首先Rgv的初始位置为1
for timmer=0:totalTime
%找最近一台空闲机器
if(RGV(ifBusy)==0)

end
%添加移动指令
if(RGV(ifBusy)==0)

end
%添加上料指令(更新上料时间 机器编号 材料编号更新自CNC机器属性WorkNum)//RESULT [CNCnm MatUP MatDown]
if(RGV(ifBusy)==0)

end

%若有:添加下料指令
if(RGV(ifBusy)==0)

end
%寻找最近等待下料CNC
if(RGV(ifBusy)==0)

end
%添加移动指令
if(RGV(ifBusy)==0)

end
%添加下料指令(更新下料时间 机器编号 材料编号取自机器属性WorkNum) //RESULT [CNCnm MatUP MatDown]
    
    %%
    CNC_ALL(CNC_ALL(:,ifBusy)>0)-1;
    RGV(RGV(ifBusy)>0)-1;
end
%%

 

你可能感兴趣的:(MATLAB)