rfs

ADI年度贺岁片——用MEMS惯性传感器+Blackfin DSP实现平台稳定

rfs 在 2014-1-22 建立的討論區
最後回覆由ADIForum於2014-1-23提供

啊咧咧,ADI又有活动了,趁着今天有空就来碰碰运气

以前曾经用ADI的产品做过一个商用的固定翼自动驾驶系统,后来改造成了平台稳定系统,现在分享一下心得,并把电机控制部分开源

先说一下我用的芯片

NTC_3592.JPG

传感器:陀螺 ADXRS610 * 3,加速度 ADXL203 * 2

ADC:AD7606-6

DSP:ADSP-BF533

哈哈,全是ADI的产品,用起来顺手

 

陀螺仪和加速度的数据是用kalman滤波融合的,调试的时候发现在地面算法非常稳定,可是一到了飞机上就漂得很厉害。后来把算法换成抗干扰更强的高子样数算法也无法解决。最后发现是传感器与固定孔的距离太远,在电机产生的震动下产生了非常大的噪声。解决方法是在陀螺仪的周围打上几个固定孔。

这点后来在ADXRS450的datasheet上也有提到,大家在高震动环境下使用陀螺仪应该注意一下。

屏幕快照 2014-01-22 下午5.55.16.png

 

还有一个就是ADXRS610的量程只有300°/s,在平台产生意外运动的时候可能导致超量程,这时候可以安装一个备用的陀螺仪,并将其量程扩展,可以参考ADI的文档:

Modifying the Range of the ADXRS150 and ADXRS300 Rate Gyros

http://www.analog.com/static/imported-files/application_notes/591355220429067903767268819AN625_0.pdf

 

DSP与ADC采用字节模式通信,全部通道同步采样。滤波后交给姿态估计算法。控制器使用H-infinity算法,控制8个无刷舵机。使用纯C语言编程。这些所有算法在BF533上运行绰绰有余,哈哈

在平台稳定里,控制的是3个BLDC电机,同样使用H-infinity算法。

DSP和ADC没有什么需要特别注意的,只要按照datasheet来就可以了。一调就通,非常的爽,蛤蛤

 

上位机使用纯C语言 + OpenGL 编程。

20131109_230700.jpg

 

下面是控制一个无刷电机的轮子,上面插一个簸箕,最上面再顶一个橘子。。。

控制非常稳定,橘子都不会滚下来,ADXRS610的精度完全够用。

 

20131109_231019.jpg

 

这里是我的VVVF电机控制的源码,在BSD许可下发布

https://bitbucket.org/liyuchong/vvvf/src

 

最后祝您身体健康,再见(^o^)ノ

結果