本文主要是介绍无名的飞控默认是用的PID,没用ADRC,可以改变宏定义切换。而且只在角速度环用ADRC。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
看了下代码,默认是PID模式,所以实际那飞的效果是PID。
而且从它这宏定义看书,无名只是把ADRC用在角速度环上面,角速度环的控制可以用ADRC或者PID。
我是怎么一步步找到那的呢,先找到main.c
这里说 主要核心:传感器滤波、姿态解算、惯导、控制等代码在TIME.c里面运行
那就找到time.c
可以看到最关键的一段,把整个控制算法都概括了!!!!
Total_Control();//总控制器:水平位置+水平速度+姿态(角度+角速度)控制器,高度位置+高度速度+高度加速度控制器
那我们找到 Total_Control() 的定义,右键可以跳转
会发现这个这么核心的函数也就几行,第一句就是控制器模式选择。
我查看 Attitude_Control() 的定义
我选择查看角速度控制这个函数的定义,因为之前听余义2017那个ADRC的论坛讲的他就是只在角速度环用了ADRC
https://v.youku.com/v_show/id_XMzMyOTMwNTMwOA==.html?spm=a2hzp.8253869.0.0
果然这个角速度控制函数的第一句就是判断是用什么控制器!!!!,这样一切就清楚了。
你再右键查看 GYRO_CONTROL_MODE 这个的定义,就会跳到,一切就真相大白了,默认用的PID模式。
这样无名飞控的大体思路我也能够理清楚了。就算用ADRC模式,我也知道如何调参。用PID更知道如何调参了。看来其实用PID就可以飞得很稳了。
这篇关于无名的飞控默认是用的PID,没用ADRC,可以改变宏定义切换。而且只在角速度环用ADRC。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!