查看: 1588|回复: 5

现在实际能飞的无人机(四旋翼和固定翼)的飞控算法除了PID ...

[复制链接]
发表于 2022-9-24 21:11:35 | 显示全部楼层 |阅读模式
目前能用的除了PID控制,或者改进的PID包括模糊、神经网络、专家系统这些之外,有没有其他可以在硬件平台上跑起来的控制算法,还有大疆宣称用了鲁棒H无穷控制算法,这个比PID性能又好出多少
已绑定手机
发表于 2022-9-24 21:20:07 | 显示全部楼层
PID控制器在有扰动时效果不好(如正弦扰动),PID只能在一定的飞行包线内使用(因为本质是将非线性的系统线性化)。PID一般基于Euler angle,所以还存在singularity. 其实 $H_{\infty}$也先线性化再做优化,不能做到全局。

下面是两个比较靠谱的控制器:
1. geometric control能做到almost global stabilization.

Lee, Taeyoung, Melvin Leoky, and N. Harris McClamroch. "Geometric tracking control of a quadrotor UAV on SE (3)."Decision and Control (CDC), 2010 49th IEEE Conference on. IEEE, 2010.Geometric tracking control of a quadrotor UAV on SE(3)Lee, Taeyoung, Melvin Leoky, and N. Harris McClamroch. "Geometric tracking control of a quadrotor UAV on SE (3)."Decision and Control (CDC), 2010 49th IEEE Conference on. IEEE, 2010.
Geometric tracking control of a quadrotor UAV on SE(3)
2. 由于rotational dynamics的global stabilization存在topological obstruction, 用smooth control law不能做到全局稳定,全局稳定要用hybrid controller.

Naldi, Roberto, et al. "Robust global trajectory tracking for underactuated VTOL aerial vehicles using inner-outer loop control paradigms."IEEE Transactions on Automatic Control62.1 (2017): 97-112.
Robust Global Trajectory Tracking for Underactuated VTOL Aerial Vehicles Using Inner-Outer Loop Control Paradigms
回复 支持 反对

使用道具 举报

发表于 2022-9-24 21:29:14 | 显示全部楼层
/*------------*/
编辑于回答后一天
同学们,收藏比赞多一半儿,啥情况?请顺手点个赞呀~~
/*------------*/
正文
现在实际能飞的无人机(四旋翼和固定翼)的飞控算法除了PID,还有别的控制算法么?
先说我个人的结论:有,而且应该不少
消费级无人机的主流算法还是PID。优点是调试直观,没有理论基础的人靠试凑也能调出不错的性能。可以看看这个视频,,作者教大家在穿越机上进行在线PID调参,你会对PID的便捷程度有新的认识:
PID Tuning Masterclass - Part 1 - P Term From Low To High
包括某家迷你无人机,在悬停时稳定得能立住一个硬币,非常炫酷,其实背后也是PID。此处 @晋鹏翔  (不逃
PID应用这么广泛,但也是有一些不足的。我只从实践角度讲一下自己的三点理解。
其一,如果飞机的物理参数变化,PID的性能可能会有比较大的变化。
比如之前一阵儿资本热捧的无人机送货。设想一下,你的飞机动力强劲(力大砖飞?),可以拉上接近空机自重的货物。然后你开心地用PID做了一个姿态/速度控制,用来执行上层的路径规划算法发过来的指令,好像demo起来都没啥问题。然而,某天你拉上沉重的货物,飞机又突然遇上一个障碍,就裤衩一声撞了上去。。为什么?因为惯性和重力变化让你的速度控制响应变化了,PID做的速度闭环无法正确执行规划算法的指令。
其二,PID补偿外部扰动的性能不太好。
对于外部扰动的补偿在飞控中是非常重要的。我们可以看Mavic的暴力测试视频:
DJI Mavic Pro Drone Extreme Test With Props Cut Off - This Drone Is Tough
现在实际能飞的无人机(四旋翼和固定翼)的飞控算法除了PID ...-3478
挂一个矿泉水瓶,姿态和位置都控制得非常好。
又比如来一阵风,你的飞机能否快速调整动力输出,力图保持在原位置?
以上两个例子,就是补偿外部扰动。PID如何补偿外部扰动?比例增益不可能无限增大,所以主要是靠积分项。然而对误差进行积分,这个过程本身就是很慢的,而且会反复震荡。调过参的人都知道积分参数不能很大,否则系统就容易变得不稳定。也就是说,抗扰和鲁棒性的矛盾在PID中是不可完全调和的。
其三,多输入、多输出系统的耦合问题
这个很好理解。 @Shutong 的回答是活生生的例子。当然这个不光是一个控制回路设计的问题,还涉及到进行运动学或者动力学的解耦。

无法应对物理参数变化、抵抗扰动慢,以及无法处理耦合,是PID应用在无人机飞控里的主要缺陷。
所以,是否有实用的“先进控制算法”可以弥补PID的这些缺陷?
我可以举两个例子:

  • L1-Adaptive Control
在已商用化的小型无人机有应用的是成都纵横自动化技术有限公司
The multi-rotors adopt L1 self-adapting control algorithm, high-accuracy control ability of attitude and flight path, strong ability against disturbance, good stability, control accuracy and stability will not vary with the change of center of gravity and weight of aircraft.
L1自适应控制我之前按照paper做了仿真,在被控对象参数变化时,效果比PID好得多(别听那些水论文的人唱衰L1,看了那些论文发现并没啥卵用)。在对传感器噪声、控制延迟、未建模特性的鲁棒性上,比传统的MRAC要强很多倍。
传统MRAC把自适应律直接作用在被控对象上。为了保证收敛速度,控制增益(适应速率)都调的比较高。有点啥不理想的扰动,输出就很容易带着整个系统呼啦啦震起来,这就是它不如PID常用的一个重要原因。而L1自适应控制就是为了解决这个问题而出现的。
L1自适应控制的核心思想是:它把MRAC掉了个个儿,不是对象跟踪模型,而是让原本的“参考模型”去自适应地跟踪被控对象。参考模型摇身一变成为了一个自适应观测器,或者说是一个参数辨识器。再用观测器观测到的参数和状态变量去间接地控制被控对象。同时闭环控制部分常采用滞后校正(低通滤波),因此就算观测器的自适应过程有高频震荡,控制器输出到被控对象的控制量也是“风雨不动安如山”。如此把自适应律和反馈控制解耦后,调参自由度更大,控制也更平顺和鲁棒了。这个自适应观测器不光能观测参数变化,还能被设计成观测外部扰动,所以也解决了MRAC不能抵抗外扰的问题。
至于运行效率,比PID多几个乘法而已,估计AVR都能跑。(话说谁去KK飞控上实现一下?)
2. 自抗扰控制(ADRC)
这个是老生常谈了,发明者和PID有着不解之缘ᖗ( ᐛ )ᖘ
其实它也很简单。就是假定被控对象的物理参数不变(比如就是一个二阶串联积分系统),然后用一个高增益观测器,估计这个被控对象受到的控制量和控制器给它的控制量之间的偏差(即外部扰动)。然后。。直接把这个估计出来的扰动补偿到被控对象的控制量上。

简单,粗暴,有效。
ADRC强就强在这个高增益扰动观测器上。刚才说了PID靠对误差的缓慢积分去补偿扰动。但ADRC的扰动观测器通过一个近似的被控对象模型,直接估计扰动并做补偿,这个速度能比PID的I快5倍以上,并且超调很小。
晚上编辑:这一部分写的过于通俗,不够准确。因此补充一下评论区 @yr13236  同学更准确的原理解释,并感谢进行指正的各位。
adrc的关键在于那个扩张观测器eso,也就是将所有不确定量或者不便于控制的部分扩张为一个状态并通过eso实时估计,然后通过前馈的方式加以补偿,一般由于eso的带宽远大于系统带宽,因此可以有效的实现确定量与不确定量的完美解耦,从而大大简化控制器的设计并改善控制系能。
当然ADRC还有一些其它的小trick去加快响应速度,比如很作弊地用最速控制(bang-bang控制)取代PD部分。
经过P、I、D三项全面升级的ADRC,性能是啥样的?据我遇到的一位TI电机的FAE称,他们的电机做位置控制,采用PID,用手能“掰”得偏离设定点,用ADRC后则用手推“纹丝不动”,ADRC响应速度可见一斑。
另外还有演示视频:
ADRC 技術 vs  PID技術 その 1ADRC 技術 vs  PID技術 その 2至于计算效率?实现一个线性版本的ADRC,C代码不超过50行。非线性的稍微多一点,不超过100行。

说了这么多,无非是想让提问者了解,工业界除了PID,还是有很多性能又好,又简单实用的控制律可用的。
以上。

/*---------------------------*/
PS. 我的理解中,直接用神经网络做控制无非是用神经网络的函数逼近能力去逼近一个「能达到性能指标的、误差数据到控制量之间的对应关系函数」。它会有神经网络该有的一切问题。比如网络太小会欠拟合,精度还不如PID。网络太大了也会欠拟合(局部极小值),又有可能过拟合。 过拟合的话要是跑到corner case就完了。离线训练还好说,在线训练的收敛性感觉完全没有保证。。。反正我是不敢用ᖗ( ᐛ )ᖘ
关于神经网络和PID的关系,可以看我这篇答案。[BP神经网络用遗传算法来优化,然后来自调整pid的参数可行吗?] 水平一般,欢迎指正。

PPS. DJI用H无穷可信度很高。但我理解的H无穷不是一种控制律,而是一种确定线性控制器的参数的方法。好比你用串级PID,加上中间的高通低通啥的一下有十几个参数,不知道怎么样的参数性能有理论保障。这时可以用H无穷的方法确定参数。大抵如此。这样的控制律在硬件上实现成本和PID是一样的。而且H无穷设计现在有现成的Matlab工具包,并不太难。

PPPS. 模糊控制只能作为线性控制器的补充,无非是个参数可以平滑变化的增益调度,没啥神秘的,也不是万能的。
回复 支持 反对

使用道具 举报

已绑定手机
发表于 2022-9-24 21:37:33 | 显示全部楼层
这个问题的答案实在是太多,就好比你问下棋的人有多少种下法一样。控制理论发展这么多年,无数的仁人志士没日没夜的研究各种办法,线性的,非线性的,model based, model independent,实在是太多了。我下面列点我能想到的吧
线性:pid, LQR, LQG, part of Optimal control and robust control etc
非线性:LTV(gain-scheduling) control, sliding model, geometry control, lyapunov based control, backstepping control, neural network control, adaptive control, many kinds of robust adaptive control, iterative learning control, nonlinear pid control etc 还有就是几种非线性控制混在一起使用, 例如adaptive control + sliding model control.
不了解大疆怎么说的,h infinity归根结底还是鲁棒控制(不知道这中文谁翻译的)的一种,一般来说是基于线性化系统的。所以就涉及到非线性系统线性化,所以它会使得飞行器的flight envelop有限制,但优点自然是更robust了。
回复 支持 反对

使用道具 举报

发表于 2022-9-24 21:50:37 | 显示全部楼层
跑题的、得罪人的答案:
理论、仿真、乃至实验室中,现实其实没有那么复杂,顶多算是温室,很多东西可以控制。简单的方法,复杂的方法,其实都能用。说句得罪大多数(注意啊,不是全部)做理论的人的话,简单的方法只要是本科生大多都会,复杂点的只要是研究生、博士生大多都会,没什么大不了。各种花里胡哨的排列组合,先咬定自己的方法好,选选对象,挑挑数据,各种伎俩,不一而足。
但真实的现实太复杂,简单的方法,复杂的方法,往往都很难直接用上。简单的方法自由度不够往往捉襟见肘,复杂的方法自由度太多而很难抓住主线往往陷于细枝末节。这时,则需要把简单的方法用出变化,加上去,要考虑现实中的局限条件,甚至可以用出深度;或是复杂的方法简化到极致,乃至用出变化… 说句得罪大多数(注意啊,不是全部)做工程的人话,很多人声称只有简单的理论才能用上,是自己眼界不够呢?还是现实就是如此呢?有没有别人用复杂方法的简化,而跳出了原来的框架,其实效果更好呢(当年Wiener滤波盛行,Kalman滤波出来,在当时算是复杂的方法,大多数人一开始也是不接受和怀疑,幸亏有登月计划才逼得用上)?再说了,比如自适应/非线性等等的PID,到底是该定义为PID(简单方法)呢?还是自适应/非线性等等(复杂方法的简化)呢?
回复 支持 反对

使用道具 举报

发表于 2022-9-24 21:57:51 | 显示全部楼层
常见的还是PID,其他的还有LQG、鲁棒H无穷、预测、滑模这些控制方法,我所列举的都是我所知道的已经实现的,实际飞过,不是理论仿真阶段。不过,提一句,方法无所谓高级低级,能达到你想要的效果就行,从表现来看,与PID相比是一样的。即使是PID,也要看你描述的对象,是控制欧拉角、旋转矩阵还是四元数。所以,就看你用的怎么样!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入联盟

本版积分规则

快速回复 返回顶部 返回列表