2018數模國賽RGV排程

2021-09-10 10:51:21 字數 2315 閱讀 4909

參考了很多的部落格終於算弄懂了一點點去年國賽b題 今天就給大家簡單寫下,部分思路和**有參考大佬的,盡量每條都加上了注釋方便大家理解。

一、分析

1.本機器操作一共分為4種狀態:停止、移動。清洗及下成料(清洗時間忽略不計),上下料(機械臂連線兩個操作,做乙個的時候另乙個同時做)

2.上下料,將原機器位置上的孰料拿起,機械手臂轉動放生料,當第一次的時候沒有熟料可拿但是由於在同一條機械手臂上所以仍然要執行上料,所以上下料的時間是一樣的。

3.清洗作業:將成料放進清洗槽再將成料下料。清洗及下成料時間固定,因為即使第一次操作時,清洗槽內沒有放進去的清洗好的成料,但是由於機械臂連著兩個手在一起,取成料操作仍然會執行。

4.移動:題目中預設r**只有在收到某cnc需求訊號後,才會移動至該cnc處,對其進行上下料操作。

5.整個分析有這樣幾種情況:

一道工序:根據距離r**的遠近,對所有的cnc進行上料,然後不斷進行》上下料》清洗》上下料

兩道工序:將一部分cnc分為a類,一部分為b類,分別操作第一道和第二道工序,a類加工完後,將半熟料放入b類cnc執行上料下料然後清洗後到達a類繼續上下料操作,a>b>a>b,ab類的分布看到某位博主用的是暴力全排的做法,說可能有優化的可能,暫時我也想不出來,後面有可能再更吧。

改進後的r**模型,說白了就是本來是等待cnc的呼叫,r**響應去執行,在改進後可以就是r**提前對走到任意乙個機器的時間和該機器的工作時間排列後提前到達該cnc進行等待。 二、

1.對一道工序的cnc求解

%cnc:

% 第一行:cnc位置常量

% 第二行:cnc工作變數,空閒為0,忙碌為1

% 第三行:cnc工作時間,為常量560

% 第四行:cnc上下料時間

% 第五行:cnc預計完成時間

% 第六行:cnc加工物料數

1 1 2 2 3 3 4 4

0 0 0 0 0 0 0 0

560 560 560 560 560 560 560 560

28 31 28 31 28 31 28 31

0 0 0 0 0 0 0 0

%r**:

% 第一行:r**初始位置變數,初始為1

% 第二行:r**工作變數,進行上下料或清洗作業,空閒為0,忙碌為1

% 第三行:r**一次清洗作業時間

% 第四行:r**預計完成時間10

250%speedr**:

%移動1~3個單位所需時間

2033

46

clear all;clc;

cnc = load ('1_cnc_1.txt');

cnc(6,:)=-1;%加工物料數

r** = load ('1_r**_1.txt');

speedr** = load('1_speedr**_1.txt');

case_1_result = (1:800)';

t = 0;

r = 1; %僅計數用

while t <= 28800 %以秒為計數單位

%1.在r**和cnc均空閒狀態下,找到距離最近的cnc編號

dist = 4; %距離

signal = 0;

for i=1:8%八個工作點

if cnc(2,i) == 0 %如果cnc空閒

if abs(cnc(1,i)-r**(1))= cnc(5,i) && cnc(5,i) ~= 0

cnc(2,i) = 0;

endend

if signal == 0

t = t +1; %這部分的意思就是當while每迴圈一次時間也走了一秒

%else

%continue;

endend

%計算下料開始時間,即改cnc的下一次上料時間

for i = 1:800

for j =i+1:800

if case_1_result(i,2)==case_1_result(j,2)

case_1_result(i,4)=case_1_result(j,3);%如果上次的加工機器正好是同乙個那麼這次的下料時間也就等於上次的上料時間

break;

endend

end

結果

今天就寫到這,剩下的情況再更。

2018數學建模國賽記錄

本來是在答辯之後就想寫的,無奈中途太多事情抽不開身,再加上期末複習的時間,結果就拖到了現在。這次國賽其實還是對我幫助很大的,從暑假培訓開始,到整個答辯過程結束,中間經歷了很多事情。首先是暑期培訓,由於我是從大二才開始進行數學建模,所以對於這方面的各種常用演算法和其他的模型都不太了解。暑期培訓的這乙個...

2020數模國賽B題第一問

雖然結束這麼久才發 我也很好奇我這演算法對不對emm 演算法思路 考慮dp i u x1 x2 dp i u x1 x2 dp i u x 1 x 2 為第i天,在u節點,剩x1單位的水,x2單位的食物,所剩的最多的錢 轉移部分詳見 pragma gcc optimize 2 include def...

2018藍橋杯B組國賽 雷射樣式

x星球的盛大節日為增加氣氛,用30台機光器一字排開,向太空中打出光柱。安裝除錯的時候才發現,不知什麼原因,相鄰的兩台雷射器不能同時開啟!國王很想知道,在目前這種bug存在的情況下,一共能打出多少種雷射效果?ctgu yyf include include include include includ...