私はピモから始めて、いくつか質問があります。
抽象モデルと対応するデータ ファイルを作成します。後で変数のソリューションを使用するために、スクリプトで解決したいと思います。次のコードでそれをやろうとしました:
data = DataPortal()
data.load(filename="Datos\Datos_reactor2.dat")
instance = model.create_instance(data)
opt = SolverFactory("ipopt")
results = opt.solve(instance)
そして、それは完全に解決しますが、データに問題がありました。私のモデルでは設定されていないため、データは次のように定義された単純な定数です。
param qv := 2.832;
param ci := 14.46;
...
ただし、このデータ ファイル python を使用すると、エラーが表示されます。
ValueError: Parameter 'qv' defined with '1' dimensions, but data has '1' values: [2.832]. Are you missing a value for a 1-dimensional index?
次のようなパラメーターを定義するデータ ファイルを変更すると、次のようになります。
param qv := 1 2.832;
param ci := 1 14.46;
...
別のエラーが発生しました:
RuntimeError: Failed to set value for param=qv, index=1, value=2.832. source error message="Error setting parameter value: Cannot treat the scalar Param 'qv' as an array"
最後に、問題を解決するには、定数をテーブルとして定義する必要があります (以下を参照)。ただし、以前のエラーがわかりません。
table qv := 2.832;
table ci := 14.46;
...
強調するために、問題を解決しようとすると、次のように言うだけです。
!pyomo solve Reactor2.py Datos_reactor.dat --solver=ipopt --summary
最初のケース (param qv := 2.832; ...) のように定義されたデータでは、問題はなく、同じ解決策が得られました。
誰かが私に違いを教えて、エラーを説明してもらえますか?
ありがとうございました!!
マリア