コンパスの方向で車両を誘導するアプリケーションがあり、車両が 360 度から 0 度に交差するときに問題が発生しています。
この場合、制御ループには、進行方向に沿って曲がる最も近い方法を計算するためのスマートはありません。
たとえば、車両が 360 度の方向に従うように指示されている場合、車両は必然的に数度、エーテル側にドリフトします。0 度以上にドリフトすると、制御ループが異常になり、再び 360 度になるように車両を完全に操縦しようとします。
これに対処する優雅な方法はありますか?
ナビゲート関数の記述方法では、外部 PID コントローラー クラスを使用し、次のように見出しを計算します。
lock (steering)
{
if (!Engaged)
{
return;
}
double mv = 90 + Trim + pidController.CalculateCorrection(flyHeading, currentHeading);
steering.Degree = mv;
}
ありがとう!