pyomo dae 微分方程正在应用 ode "retroactively"

pyomo dae differential equation is applying ode "retroactively"

抱歉,标题中用词不当。

事情是:我有一个具体的模型,它有一个连续的集合变量来表达时间和一个非常简单的颂歌,其中一个变量的导数,我们称之为 dadt,等于另外两个变量 b 和 c 之间的差它们不依赖于 a(换句话说,a 只是 b 和 c 的差乘以时间)。不幸的是,程序似乎向后应用了积分,这意味着如果 dadt 在时间 = 20s 时为 20,则 a 在 0s 和 20s 之间增加 20*dadt。这样,微分方程约束并不真正适用于 time=0s,因此使优化变得无用。 是故意这样还是我一路走错了?我应该添加 Lagrange-Radau 搭配。是不是这种搭配的标准诠释方向的整合方式,意思是"backward"?

谢谢。

您可以使用ContinuousSet 上的next(i) 和prev(i) 方法来获取相邻点。例如,

Model.A[model.t.next(i)] == Model.B[i]

警告:如果您在应用离散化后声明约束,这将始终如一地工作