在 AMPL 中定义两个控件之间的包络

Define envelopment between two controls in AMPL

我目前正在将以下问题 (http://tomdyn.com/examples/minEnergyOrbitTransfer.html) 从 PROPT 翻译成 AMPL。有两个控件,ut 和 ur。还有一个条件将它们联系在一起。此条件采用 [0<=sqrt((ur²+ut²))}<=umax] 的形式。过去我编写了一个与此类似但没有不等式的条件(注意我使用的是 Simpon 的集成)

我在 AMPL 的手册中搜索了类似的东西,但我一无所获,特别是在专门讨论约束的章节中 https://ampl.com/BOOK/CHAPTERS/11-linprog.pdf

或许,附录A中的https://ampl.com/BOOK/CHAPTERS/24-refman.pdf order subject to 可以帮助我,但我不明白。

我上次的问题就是这样解决的。但是,那里总是将两个控件合二为一。

control_contraint{i in N}: u1[i]²=1-u2[i]²;
control_contraint_mid{i in N1}: midu1[i]²=1-midu2[i]²;

在这种情况下,我尝试做类似的事情

control_constraint{i in N}: ur[i]*ur[i] >=0, <=umax*umax-ut[i]*ut[i];
control_constraint_mid{i in N1}: midur[i]*midur[i] >=0, <=umax*umax-midut[i]*midut[i];

然而结果是语法错误。

我需要有关如何写方程式的建议。

最后我可以将每个条件一分为二。

upper_control_contraint {i in N} (ut[i]^2+ur[i]^2)^(0.5)<=umax;
lower_control_constraint {i in N} (ut[i]^2+ur[i]^2)^(0.5)>=0;

中间各州也是如此。