我在Pyomo模型的迭代运行中遇到麻烦。我的模型是一天-24小时的调度模型。例如,我要运行2次,这意味着我运行了2天(第1天,第2天)。我要更改的参数是model.SPV = Param (model.Time)
。第一天的参数如下:
param : SPV :=
1 0
2 0
3 0
4 0
5 0.003
6 0.067
7 0.227
8 0.388
9 0.559
10 0.776
11 0.851
12 0.891
13 0.845
14 0.831
15 0.639
16 0.388
17 0.318
18 0.097
19 0.016
20 0
21 0
22 0
23 0
24 0 ;
第二天的参数如下:
param : SPV :=
1 0
2 0
3 0
4 0
5 0.004
6 0.087
7 0.227
8 0.388
9 0.759
10 0.776
11 0.851
12 0.891
13 0.825
14 0.931
15 0.639
16 0.308
17 0.318
18 0.197
19 0.036
20 0
21 0
22 0
23 0
24 0 ;
我知道我必须使用for循环,但是那之后我什么也没得到。有没有人可以解释在Pyomo中描述它的方式?
for i in range(1,2) :
""" I do not know....
或者有人可以在Python的AMPL API中对其进行描述吗?
答案 0 :(得分:0)
您为什么不在脚本中尝试此操作:
model.DAY = Set([1, 2])
model.HOUR = RangeSet(1, 24)
model.SPV = Param(model.DAY, model.HOUR)
并在您的.dat文件中,尝试使用此格式或其他形式的表格数据>
param SPV :=
1 1 0
1 2 0
1 3 0
1 4 0
1 5 0.003
1 6 0.067
1 7 0.227
1 8 0.388
1 9 0.559
1 10 0.776
1 11 0.851
1 12 0.891
1 13 0.845
1 14 0.831
1 15 0.639
1 16 0.388
1 17 0.318
1 18 0.097
1 19 0.016
1 20 0
1 21 0
1 22 0
1 23 0
1 24 0
2 1 0
...(DO THE SAME AS DAY 1)
;