欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

matlab画调度甘特图

程序员文章站 2022-03-10 16:02:14
...

所采用案例为高亮老师书《柔性作业车间调度智能算法及其应用》第16页甘特图
matlab画调度甘特图

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

matlab画调度甘特图

相关标签: 甘特图 算法