年度数据的每日子集

Daily subsets of Annual Data

我正在尝试根据每小时的分辨率在一年内优化能源生产过程。从电网购买的电价根据一天的两个时间有两个不同的值;在 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 小时之前我不需要手动编写不同的集合?

我想你想在这里做的是使 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;