Je suis nouveau à Pyomo, donc cela peut être une question idiote à poser. J'essaie de construire un modèle UC/ED à 4 zones avec de nombreux générateurs dans chaque zone. Je me suis donc le modèle dans la manière suivante:Pyomo ne peut pas itérer par-dessus l'erreur de l'ensemble et de l'indice de contrainte
model.Zone1Generators = Set()
model.Zone2Generators = Set()
model.Zone3Generators = Set()
model.Zone4Generators = Set()
model.Generators = model.Zone1Generators | model.Zone2Generators | model.Zone3Generators | model.Zone4Generators
Quand je lance le modèle, je reçu le message d'erreur suivant:
ERROR: Rule failed when generating expression for constraint Local1: RuntimeError: Cannot iterate over abstract Set 'Zone1Generators' before it has been constructed (initialized).
La contrainte liée est affichée ci-dessous:
def WECC1(i):
if i > 0:
seg1 = sum(model.mwh_1[j,i] for j in model.Zone1Generators)
seg2 = sum(model.mwh_2[j,i] for j in model.Zone1Generators)
seg3 = sum(model.mwh_3[j,i] for j in model.Zone1Generators)
renew = model.hydro[model.zones[0],i] + model.solar[model.zones[0],i]\
+ model.wind[model.zones[0],i] + model.pumpstorage[model.zones[0],i]
return seg1 + seg2 + seg3 + renew >= 0.25*model.HorizonDemand[model.zones[0],i]
else:
return Constraint.Skip
model.Local1= Constraint(rule=WECC1)
Je pense qu'il peut être causé par le fait que je n'ai pas passé toutes les informations du modèle. J'ai donc changé la contrainte de def WECC1(i)
à WECC1(model,i)
. Cela me donne un nouveau message d'erreur:
ERROR: Unexpected exception while running model: WECC1() takes exactly 2 arguments (1 given)
Toute aide serait très appréciée.
Merci beaucoup! –