運動の法則が状態ベクトルの関数に依存する最適制御問題を解決するにはどうすればよいですか?


11

状態ベクトルx(t)と制御ベクトルy(t)の典型的な最適制御問題は、次のように表すことができます。

maxx(t),y(t)0t1f(t,x(t),y(t))dt

x(t)=g(t,x(t),y(t))およびxの境界条件に従いxます。

よく似た問題を解決したいのですが、コントロールの動作の法則は次のとおりです。

x(t)=g(t,x(t),y(t),z(x(t)))

ここでは、z(.)を選択する必要があります。しかし、その議論は国家です。

どこで解決策を探し始めるのかさえわかりません。この問題にどのように対処できますか?


1
私はそれを書き込むための正しい方法である推測 Iは、元の質問を修正します。。
x(t)=g(t,x(t),y(t),z(x(t))
ダニエル・ウィルス

優れた最初の質問のためのengineering.SE、+ 1へようこそ。
Chris Mueller、

閉じた形式または形式的なソリューションを探していますか、それとも実用的な最適化について質問していますか?前者の場合、math.stackexchange.comのようなサイトでこれを尋ねる必要があります。後者の場合、実際的な最適化に専念するさまざまな分野があります。どちらの場合も、実際の答えを得るには、詳細を提供する必要があります。
2015

実用的な最適化を探しています。詳細:制御変数のサブセットは(と呼んでいます)に依存し、制御変数のサブセットは(と呼んでいます)に依存しています。さらに、関数を選択する必要があります。最大化には制限があります だから、それを解決する直感的な方法は次のとおりです:-推測 -(現在の標準)最適制御問題を解く(与えられた)-かどうかを確認し、そうでない場合は別の推測し ます。ただし、アルゴリズムが収束する理由はないことがわかります。どうすればこれを解決できますか?tyxzx(t)
h(z(x(t)),y(t))=0
x(t)x(t)h(z(x(t)),y(t))=0x(t)
Daniel Wills

回答:


3

なぜは外部にある必要があるのでしょうか?zg

g(t,x(t),y(t))=g(t,x(t),y(t),z(x(t)))

ここでをとして使用しますgg

gは任意の関数にすることができるため、任意の関数をに組み込むことができます。zg

あなたの制限についてはコメント欄で述べました。制御入力に対する制限は、コスト関数を介して適用できます。h

fnew(t,x(t),y(t))=fold(t,x(t),y(t))Ch(x(t),y(t))2

ここで、は値をゼロに近づけるのに十分な大きさですが、数値誤差が元のを支配するほど大きくはありません。Chhf


1

問題の離散化をポイントに使用できるので、有限数のパラメーターを決定するだけで済みます(とがいくらか連続的な関数であると仮定)。微分と積分にはオイラー法を使用できますが、高次の方法を使用できますが、問題の解決が難しくなります。Nfg

再公式化により、

h=t1N1,x=[x1,x2,,xN],y=[y1,y2,,yN],

maxx,yn=1N1f(h(n1),xn,yn)hs.t.xn+1=xn+g(h(n1),xn,yn)h,n=1,2,,N1

また、最適化問題の等式制約に境界制約を追加する必要があります。複数の異なる方法を使用してこの問題を解決できます。たとえば、Matlabにアクセスできる場合は、fminconを使用できます。これは、合計の前にマイナス記号を追加することで修正できるコスト関数を最小化できます。多くの場合、異なる推測が異なる局所最大値に収束する可能性があるため、ソリューションに影響を与える可能性がある初期推測も指定する必要があります。を増やすことで、より正確な解を得る必要がありますが、おそらく解決に時間がかかります。より少ないポイントの問題の解を使用してそれらを補間し、それをより多くのポイントの問題の初期推定として使用すると、収束が速くなる可能性があります。N

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.