我目前正在将以下问题(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中的命令可以为我提供帮助,但我不理解。
这是我上次解决问题的方式。但是,总是将两个控件添加到其中。
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;
同样对于中间状态。