function plot_gantt_chart(job_num, machine_num, start_time, makespan, processing_time) color = lines(job_num); figure; for j = 1:machine_num for i = 1:job_num x = start_time(i, j); y = j-0.4; w = processing_time(i, j); h = 0.5; rectangle('Position',[x, y, w, h],'FaceColor',color(i,:)); end end xlabel('时间'); ylabel('机器'); xlim([0 makespan]); ylim([0 machine_num+1]); title('甘特图'); end改成正确的流水车间调度函数
时间: 2023-12-07 18:02:41 浏览: 68
以下是流水车间调度的甘特图展示函数:
```matlab
function gantt(schedule, sequence, p, m, n)
color = lines(n);
makespan = max(max(schedule));
figure;
for i = 1:m
for j = 1:n
job = sequence(i, j);
if job > 0
machine = find(p(job, :) == schedule(i, job));
x = schedule(i, job) - p(job, machine) + 1;
y = i - 0.4;
w = p(job, machine);
h = 0.5;
rectangle('Position',[x, y, w, h],'FaceColor',color(job,:));
end
end
end
xlabel('时间');
ylabel('机器');
xlim([0 makespan]);
ylim([0 m+1]);
title('甘特图');
end
```
该函数接收以下参数:
- `schedule`:每个工件在每个机器上的加工结束时间,大小为 $m\times n$。
- `sequence`:调度方案,即每个工件加工的顺序,大小为 $m\times n$。
- `p`:每个工件在不同机器上的加工时间,大小为 $n\times m$。
- `m`:机器数。
- `n`:工件数。
函数会生成一张甘特图,横轴为时间,纵轴为机器,用不同颜色的矩形表示每个工件在不同机器上的加工情况。
阅读全文