2017-07-02 47 views
0

我試圖根據小時分辨率來優化一年內的能源生產過程。從電網購買的電價根據每天兩次有兩個不同的值; 07間:00-18:00的價格是10,18之間:00-07:00的價格是5年度數據的日常子集

的時間集是:

P_el  electricityprice    /t7*t18 10, t19*t6 5, ....../ 
t    time      /t1*t8760/ 

我怎麼能自動創建P_el,所以我不需要在第8760個小時之前手動寫出不同的集合呢?

回答

1

我認爲你想在這裏做的是使p_el參數,而不是一組。以下應該工作。 (做檢查,我得到的時機完全正確)

set t "time" /t1*t8760/; 

parameter hour(t) "hour of the day from 1 to 24"; 
parameter p_el(t) "electricity price"; 

hour(t) = mod(ord(t), 24); 
p_el(t) = 5; 
p_el(t)$(hour(t) >= 7 and hour(t) < 18) = 10; 
+0

親愛的馬丁,謝謝你這麼多,我想永遠吻你:)時代應該是一個參數,是的! – matlabcrz