ありがとうございました!私はpyomoには新しく、今ではそれを使って具体的なモデルを解決しようとしています。ここPyomo "data = None"出力エラー
は、私のコードの一部である:
---(編集)
def objective_rule(model):
ans = sum(model.DAEB[t] * model.DAEP[t] for t in model.t)
ans -= sum(model.DARUP[t] * model.RU[t] + model.DARDP[t] * model.RD[t] for t in model.t)
ans += sum(0.5 * (sum(model.penalty[t, w]) + sum(-model.RTEP[t] * (model.DAEB[t] - ((model.RTRD[t, w] * model.RU[t]) +
sum(model.veh_pwer_dem[t, v, w] for v in model.v))))) for t in model.t for w in model.w)
ans += 0.95 * (model.epslon + 1/(0.5) * sum(0.01 * model.miu[w] for w in model.w))
return ans
- トンは1日のセット[0:23]、時間の時間として定義されます。
- wは[0,1]と定義されていますが、異なるシナリオです。
- vは[0:29]、30種類のサンプルです。
目的関数を定義する前に、上記のモデル変数に関連する束縛を定義しました。
すべてが最後のステップまでを除いてスムーズに実行、pyomoが与える:
を---(編集済み)すべての
Traceback (most recent call last):
line 61, in <module>
myresult = result.solve(project, pricefile, reg_dispatch, SOC=0, SOC_margin=0.05)
line 56, in solve
opti_model, result = self.Fr_optimal_bidding_optimization(self.vehicles, pricefile, reg_dispatch, SOC)
line 347, in Fr_optimal_bidding_optimization
model.objective = Objective(rule=objective_rule, sense=minimize, doc='minimize the total cost')
line 483, in __setattr__
self.add_component(name, val)
line 849, in add_component
val.construct(data)
line 307, in construct
tmp = _init_rule(_self_parent)
line 337, in objective_rule
sum(model.veh_pwer_dem[t, v, w] for v in model.v))))) for t in model.t for w in model.w)
ERROR: Rule failed when generating expression for objective objective:
line 337, in <genexpr>
TypeError: '_GeneralVarData' object is not iterable
sum(model.veh_pwer_dem[t, v, w] for v in model.v))))) for t in model.t for w in model.w)
ERROR: Constructing component 'objective' from data=None failed:
TypeError: '_GeneralVarData' object is not iterable
TypeError: '_GeneralVarData' object is not iterable
まず、私は_GeneralVarData
オブジェクトについては本当に混乱していますし、知りませんそれが何を指しているのか、そして二番目に、私の目的関数の問題は見えないので、どんな人でもアドバイスを提供できれば大いに感謝します!
(!私は「stackoverflowの、」私の質問が明記されていない場合は、フロントに謝罪にも新しいです)
テン
まず、式のどの部分がこのエラーの原因になるかを特定できるようになるまで、式の一部をコメントアウトすることをお勧めします。このような大きな表現を見て、問題を選ぶのは難しいです。 –
こんにちはガベッ!アドバイスをいただきありがとうございます。私は自分の投稿を再編集しました。 –
編集した投稿でも、このエラーが表示される理由は不明です。私は、関連する変数の定義を見る必要があると思います。 –