0

次の形式の連続時間 Pyomo モデルがあります。

from pyomo.environ import *
from pyomo.dae import *

m      = ConcreteModel()
m.t    = ContinuousSet(bounds=(0,150)) 
m.T    = Param(default=150)
m.S    = Var(m.t, bounds=(0,None))
m.Sdot = DerivativeVar(m.S)

discretizer = TransformationFactory('dae.collocation')
discretizer.apply_to(m,nfe=100,ncp=3,scheme='LAGRANGE-RADAU')

m.obj  = Objective(expr=m.S[122],sense=maximize)

しかし、上記のコードを実行すると、次のエラーが発生します。

KeyError: "Error accessing indexed component: Index '120' is not valid for array component 'S'"

を見るlist(m.t)と、確かに、122 が離散化ポイントとして含まれていないことがわかります。

..., 121.73257700000001, 122.467423, ...

離散化に含めるポイントを指定するにはどうすればよいですか?

4

1 に答える 1