我正在编程一个四轴飞行器控制器。我设法使它飞行。但是,我不确定如何为软件的每个部分设置定时时间表。

我有几个传感器(陀螺仪,加速度计,磁力计,气压计),它们的输出频率不同。这些数据进入传感器融合。然后,融合数据通过PID控制器。 PID输出进入电动机。与我配置传感器的频率有关?
应如何在此处应用诸如加速度计上的低通滤波器之类的硬件滤波器?融合时间应该基于新样品准备就绪的时间,还是我比样品运行得更快或更慢?
以不同速度采样的传感器如何影响融合?例如,我的磁力计的最大数据速率为100hz,但是目前,我的陀螺仪的运行速度为200hz。
PID控制器的运行速率应不同于融合吗? />

#1 楼



我应该多久从传感器读取一次采样(通过i2c读取寄存器),该频率与将传感器配置的频率有关? >如果您以一定的速度提供数据,则不应以更快的速度读取数据,因为这会带来任何新信息,只是重复旧的/已贬值的信息。



如何在这里应用诸如加速度计上的低通滤波器之类的硬件滤波器?数据融合算法,请注意,如果您过滤太多,将获得时间延迟。如果您在融合和控制中未明确说明它们,则会得到较差的结果



我应该在传感器融合过程中多快(按频率)使用这些数据(例如辅助过滤器)?融合时间应该基于新样品准备就绪的时间,还是我比样品运行得更快或更慢?




每当您获得新的测量值时,都应该运行融合算法,无论它是什么,您都可以调整每个传感器的频率以使融合算法完成




以不同速度采样的传感器如何影响融合?例如,我的磁力计的最大数据速率为100hz,但是目前,我的陀螺仪以200hz的速度运行。

以及它们的方差(即测量的可信度)来得出完整的状态估计。例如,如果您有一个非常精确的位置系统,但低频和快速加速度计,则位置模型将使加速度计集成在位置传感器的测量值之间,但是一旦获得下一个位置,则测量值将相对于估计。



PID控制器应该以不同于融合的速率运行吗?



您的控制应该尽可能快地运行,但不要比融合快,因为您没有信息更新有关您当前状态的信息,通常根据您的硬件能力,它们以相同的频率运行,并尽可能快地运行。