matlab画调度甘特图
程序员文章站
2022-03-10 16:02:14
...
所采用案例为高亮老师书《柔性作业车间调度智能算法及其应用》第16页甘特图
clear
axis([0,18,0,3.5]); %x轴 y轴的范围
set(gca,'xtick',0:2:18) ; %x轴的增长幅度
set(gca,'ytick',0:1:3.5) ; %y轴的增长幅度
xlabel('加工时间','FontName','微软雅黑','Color','b','FontSize',16)
ylabel('机器号','FontName','微软雅黑','Color','b','FontSize',16,'Rotation',90)
title('P16示例(最短完工时间为16)','fontname','微软雅黑','Color','b','FontSize',16);
taskNum = 9; %任务数目
macStartTime = [0 3 5 0 5 8 3 8 13]; %各工序开始时间
macDurationTime = [3 2 4 3 3 3 3 5 3]; %各工序持续时间
macInfo = [0 0 0 1 1 1 2 2 2]; %在哪台机器上进行绘制,对应于y坐标,M1=0,M2=1…以此类推
jobId = [1 0 2 2 0 1 1 0 2]; %工件号,用于颜色索引,J1=0,J2=1…以此类推
oper=[1 1 2 1 2 3 2 3 3]; %第几道工序
rec = [0,0,0,0];
color = [0.8,0.8,0;
0,1,0.8;
0,0.8,1;
];
for i = 1 : taskNum
rec(1) = macStartTime(i); %矩形的横坐标
rec(2) = macInfo(i)+0.7; %矩形的纵坐标
rec(3) = macDurationTime(i); %矩形的x轴方向的长度
rec(4) = 0.6; %矩形高度
txt = sprintf('J%d.%d',jobId(i)+1,oper(i));
rectangle('Position',rec,'LineWidth',0.5,'LineStyle','-','FaceColor',[color(jobId(i)+1,1),color(jobId(i)+1,2),color(jobId(i)+1,3)]);%draw every rectangle [1,1,1]表示全白色
text(macStartTime(i)+0.2,(macInfo(i)+1),txt,'FontWeight','Bold','FontSize',16);%label the id of every task ,字体的坐标和其它特性
end
上一篇: 东北过年吃什么鱼