我有一个应用程序,我在指南针方向上引导车辆,并且当车辆从 360 度穿越到 0 度时遇到问题。
在这种情况下,控制回路中没有智能来计算转弯以跟随航向的最近方式。
例如,如果指示车辆跟随 360 度的航向,它将不可避免地向以太侧漂移几度。如果它漂移到 0+ 度,控制回路将发疯并尝试将车辆一直转向以使其再次达到 360 度。
有没有优雅的方法来处理这个问题?
导航函数的编写方式,我使用外部 PID 控制器类,我计算标题如下:
lock (steering)
{
if (!Engaged)
{
return;
}
double mv = 90 + Trim + pidController.CalculateCorrection(flyHeading, currentHeading);
steering.Degree = mv;
}
谢谢!