【问题标题】:Differential equations/optimal control in AMPLAMPL中的微分方程/最优控制
【发布时间】:2013-06-04 16:43:44
【问题描述】:

有人在 AMPL 中求解微分方程有经验吗?我google了很多,但没有合适的结果...

在 google 群组中,我找到了一个简单的“手工”示例,但它不起作用...

所以,我找到了这个例子。

考虑这个 ODE:

   x' = -ax + u, x(0) = 0. 

其中a=0.2是一个参数; x = 状态变量,介于 0 和 9 之间;你= 输入变量,介于 0 和 5 之间。您可以在 AMPL 中编写如下 (使用教科书正向欧拉):

param N := 10; # no. of integration steps 
param dt := 0.01; # integration step size 
param a := 0.2; 
set kset ordered := 0..N; 
var x{kset}, >= 0, <= 9; 
var u{kset}, >= 0, <= 5; 
minimize obj: 0; 
subject to 
c1{k in 1..N}: (x[k] - x[k-1])/dt = -a*x[k-1] + u[k-1]; 
option solver ipopt; 
solve; 
display x, u;

解决方案给了我 u 和 x 的零...难怪因为这条线

最小化 obj: 0;

据我了解,我们需要将问题表示为代数方程组,但在这种情况下,目标函数是什么???

那么,有人可以给出任何建议或适当的例子吗?

提前致谢。

【问题讨论】:

    标签: math optimization mathematical-optimization differential-equations ampl


    【解决方案1】:

    恐怕 AMPL 不适合用于此类任务。正如您的示例所示,您可以劫持它,它甚至可以解决一些更简单的问题实例。

    Modelica(Optimica 语言扩展)或类似语言更有可能满足您的目的。

    【讨论】:

      猜你喜欢
      • 2013-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多