我正在尝试根据每小时的分辨率优化一年的能源生产过程。根据一天中的两次,从电网购买的电价有两个不同的值;在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小时之前不需要手动编写不同的设置?
答案 0 :(得分: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;