1

マイクロコントローラーで2つの常微分方程式を解きたい。100msごとに評価する必要があります

x'=-k_{1}\cdot (x-x_{ref})\cdot e^{-b\cdot ((x-x_{obs})^{2}+(y-y_{obs})^{2})}
y'=-k_{1}\cdot (y-y_{ref})\cdot e^{-b\cdot ((x-x_{obs})^{2}+(y-y_{obs})^{2})}

基本的に私はオイラー統合を使用することを考えました(Runge-Kute I)

y(k+1)=y(k)+f(k,y(k))*dT

エラーは0.001未満になると思います。そのエラー率に達するまで実行する必要がある反復回数を決定するにはどうすればよいですか?

4

1 に答える 1

2

、、、、は時間に依存しているxと思います。これにより、使用できるODEソルバーの数が制限されます。したがって、オイラー法と2次のルンゲクッタ法(名前を忘れた)のみが可能であり、x(t + 2dT) `、..の時点でのみ常微分方程式のrhsを評価します。yx_{ref}y_{ref}x_{obs}y_{obs}x(t)x(t+dT)´,

これらの2つの方法で、従来のステップサイズ制御を使用できます。つまり、オイラー法で1ステップ、RK-II法で1ステップを作成します。これらの2つのステップの違いはエラーの指標であり、従来のステップサイズ制御に使用できます。詳細については、数値レシピをご覧ください。

于 2013-03-10T07:49:50.123 に答える