资源简介
RGV动态调度问题,通过严格限定其单步时间操作完成时间最短而得到的最优化方案,在无故障率的前提下,只要限定初始RGV机车位置,便可以得到唯一的行驶轨迹和规律,通过对其初始下料顺序全排列进行优化,得到的最理想解即为接近最优解。而在有故障率的情况下,通过weibull曲线可以得出其故障时间相关期望,由期望结合实况模拟仿真,并不断循环,可以得到无数确定初始下料顺序下的调度优解,反应出RGV运行过程在不同场景下的不同规律。

代码片段和文件信息
%%%%%%%%%%%%%%%%%%国赛单工序无故障代码
clc
clear
ord_all=perms([1 2 3 4 5 6 7 8]);
n=[];
for j=1:40320
ord=ord_all(j:);
ord=[8 5 4 2 6 1 3 7]
%para=[0 20 33 46 560 400 378 28 31 25];
%para=[0 23 41 59 580 280 500 30 35 30];
para=[0 18 32 46 545 455 182 27 32 25];
t=para(1:4);
step1=para(5);%CNC加工完成一个一道工序的物料所需时间 560
step21=para(6);%CNC加工完成一个两道工序物料的第一道工序所需时间 400
step22=para(7);%CNC加工完成一个两道工序物料的第二道工序所需时间 378
updown1=para(8);%RGV为CNC1#,3#,5#,7#一次上下料所需时间 28
updown2=para(9);%RGV为CNC2#,4#,6#,8#一次上下料所需时间 31
t_wash=para(10);%RGV完成一个物料的清洗作业所需时间 25
cnc=zeros(85);%cnc的状态01、上料开始时间、加工剩余时间、距离、上下料时间每次清洗完更新
cnc_position=[11223344];
grv_position=1;
%初始化
cnc(:1)=1;%初始都在加工状态
dist=zeros(18);
ts=zeros(18)‘;
for i=1:8
dist(i)=abs(cnc_position(ord(i))-grv_position);
ts(i)=t(dist(i)+1);
grv_position=cnc_position(ord(i));
end
cnc(:5)=[updown1updown2updown1updown2updown1updown2updown1updown2];
cnc(ord(:)2)=cumsum([ts(1)cnc(ord(1)5)+ts(2)cnc(ord(2)5)+ts(3)cnc(ord(3)5)+ts(4)...
cnc(ord(4)5)+ts(5)cnc(ord(5)5)+ts(6)cnc(ord(6)5)+ts(7)cnc(ord(7)5)+ts(8)]);
t_work0=cnc(ord(8)2)-cnc(:2);
cnc(:3)=step1-t_work0;
cnc(:4)=abs(cnc_position-grv_position);
t_global=cnc(ord(8)2);%全局进行时
output_final=[];
% para=[0 20 33 46 560 400 378 28 31 25];
% t=para(1:4);
% %RGV移动1个单位所需时间 20
% %RGV移动2个单位所需时间 33
% %RGV移动3个单位所需时间 46
% step1=para(5);%CNC加工完成一个一道工序的物料所需时间 560
% step21=para(6);%CNC加工完成一个两道工序物料的第一道工序所需时间 400
% step22=para(7);%CNC加工完成一个两道工序物料的第二道工序所需时间 378
% updown1=para(8);%RGV为CNC1#,3#,5#,7#一次上下料所需时间 28
% updown2=para(9);%RGV为CNC2#,4#,6#,8#一次上下料所需时间 31
% t_wash=para(10);%RGV完成一个物料的清洗作业所需时间 25
%
% cnc=zeros(85);%cnc的状态01、上料开始时间、加工剩余时间、距离、上下料时间每次清洗完更新
% %初始化
% cnc(:1)=1;%初始都在加工状态
% cnc(:2)=cumsum([0updown1updown2+t(2)updown1updown2+t(2)updown1updown2+t(2)updown1]);
% t_work0=cnc(82)-cnc(:2);
% cnc(:3)=step1-t_work0;
% cnc(:4)=[33221100];
% cnc(:5)=[updown1updown2updown1updown2updown1updown2updown1updown2];
% t_global=cnc(82);%全局进行时
% grv_position=4;
% cnc_position=[11223344];
% output_final=[];
while(t_global<=8*3600)
if(length(find(cnc(:1)==0))==0)
[t_left_mini_min]=min(cnc(:3));
t_global=t_global+t_left_min;%如果所有cnc都在加工状态,时间推移至有信号
cnc(i_min1)=0;%更新cnc状态
cnc(:3)=cnc(:3)-t_left_min;%更新cnc加工剩余时间
end
if(length(find(cnc(:1)==0))==1)
po=find(cnc(:1)==0);
t_s=t(cnc(po4)+1);
t_updown=cnc(po5);
t_total=t_s+t_updown+t_wash;%rgv运行至cnc并完成下上料及清洗工作总时间
t_global=t_global+t_total;%更新时间至清洗完成
t_left=cnc(:3)-t_total;
%在rgv工作和清洗期间cnc完成后,状态和加工剩余时间更新
for i=1:8
if(t_left(i)<=0)
cnc(i3)=0;
cnc(i1)=0;
else
cnc(i3)=cnc(i3)-t_total;
cnc(i1)=1;
end
end
t_up=cnc(po2);
t_down=
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5127 2018-09-16 13:40 18国赛b题\guosaib1.m
文件 10538 2018-09-16 16:02 18国赛b题\guosaib2.m
文件 15418 2018-09-23 13:51 18国赛b题\guosaib31.m
文件 17480 2018-09-16 18:31 18国赛b题\guosaib32.m
目录 0 2018-09-23 13:53 18国赛b题
----------- --------- ---------- ----- ----
48563 5
- 上一篇:Labview自行车转速测量
- 下一篇:PID控制Matalb经典算法
相关资源
- 编程实现二维DCT变换
- 图像二值化
- 用FFT对信号进行频谱分析
- Tone-Reservation
- QGA 量子遗传算法
- 差分形式的阻滞增长模型
- 遗传算法的M文件
- 基于51单片机的模数转换与数模转换
- 简单二阶互联系统的非线性动力学分
- 以单片机AT89S52、光电脉宽调制器芯片
- 手写数字识别-模板匹配法
- Stock_Watson_动态因子分析模型
- 果蝇优化算法优化支持向量回归程序
- 自己做的一个简单GUI扑克纸牌识别-
- multi output SVR
- AR过程的线性建模过程与各种功率谱估
- PCNN TOOLBOX
- plstoolbox.zip
- 中国国家基础地理信息系统GIS数据
- 粒子群微电网优化调度
- 矩阵分析-经典教材-中文版-Roger.A.Ho
- 先电云计算比赛 国赛 试题答案2017 年
- 单指数模型在房地产投资组合中的应
- 压缩感知TwIST
- 基于最小错误率的贝叶斯手写数字分
- 最全系统辨识源代码,包括多种最小
- 导弹制导实验
- 2018年国赛题
- 数学建模国赛获奖论文分类整理:微分
- 画跟踪精确度图的程序.zip
评论
共有 条评论