ホームページ >バックエンド開発 >Python チュートリアル >時間最適制御例 GEKKO
リーリー
このままでは問題なく動作しますが、速度の最終値の制約を解除したい場合に使用します。
m.fix_final(velocity, 0) 行をコメントアウトしても、結果は変わりません。いずれにせよ、最終速度はゼロであるべきだと想定しているようです。また、最終速度を 0 から他の数値に変更すると、gekko からエラーが発生します:
例外: @エラー: ソリューションが見つかりません。
ご協力いただければ幸いです。 :)
m.fix_final(velocity, 0) と
m.fix_final(position) から変更します。 、300) が
に変更されました。
リーリー
position>=300 となるように最後のノードに不等式制約を適用しますが、これは等価制約である可能性もあります。また、実行不可能な解法によりソルバーが最終条件を達成できない場合には、
m.minimize(last*(position-300)**2) などのソフト制約を使用することもあります。代わりに、最終制約に可能な限り近い解を取得しようとします。
m.fix_final() を使用して最終値が固定されると、その変数は評価されなくなるため、導関数もゼロに固定されます。
こちらで説明されているように、これはgekkoの既知の制限です。
以上が時間最適制御例 GEKKOの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。