|
在飞控的研发上,最有难度和挑战的恐怕就是控制性能的提升了。虽说论文一抓一大把,但是灌水的论文太多了,很难找到优秀的文章作为理论指导。另外,在市场上,有能力将理论算法与工程结合的很好的厂家也是屈指可数。
曾经在知乎上看过一个问答,就是讨论PID与先进控制在飞控上的应用情况。个人阅读了该问题下所有的回答,观察的结论是:客观现象是大部分的厂家,其实都只是用了串级的PID算法而已;大部分的工程师,也都认为PID足够使用了。
这里,个人的想法是,大部分厂家的确都是用的PID,但这不能说明PID就足够使用。业内优秀的飞控,在某些性能上是吊打其余厂家的,这个不仅仅是靠PID来满足的。
造成这个现象的原因有很多,最主要的还是搞飞行控制算法提升的优秀人才偏少(市场需求决定);
第二,厂商对这方面的重视程度不够,需要投入的成本与效益不成比例;
第三,理论与工程应用的天然鸿沟,搞理论的工程能力不行,搞工程的又不完全懂理论;
第四,控制算法属于系统的顶层设计,往往其实是下层的问题没有解决好,只靠控制算法提升是做不好的(飞控这块需要先解决数据处理问题,再考虑控制问题);
以上只是笔者的一家之言,仅供参考。
飞控控制性能指标讨论
假设:这里讨论的前提是飞机的动力足够,不需考虑动力系统问题。
抗风性/抗扰动能力
这个是一个关键指标,对应飞机说明书的抗风等级。
如何测试?
大风环境下测试悬停稳定性即可。动力满足的情况下,一般都可以抗住5-6级(常见的工业级别无人机),不会因为风大导致姿态翻转炸机。但是好与坏的区别就是其稳定性,如dji的飞控,在姿态的调整上不会过于频繁,而其余的飞控会动作很多,频繁修正,视觉感受不稳定。个人认为,区别在于控制算法上,常见的PID是主要靠积分控制作用,被动抗扰,积分作用起效慢,而风一般都是各个方向随机的作用于飞机上,所以得到的姿态目标会不断的调整变化,响应也慢;
还可以飞机机臂一侧,顶端挂重物。这个测试需要注意重物的重量不能太大,超出了控制能力。其次就是很多人测试的时候是将重物与机体固连,其实这样测试的话,没有达到测试效果,只有起飞瞬间,由于重心的偏移,导致飞机调整一下,正常飞行不会有任何影响。
推荐的做法是,用绳索挂载重物,这样当飞机姿态变化的时候,重物会开始摆动,这样当期望飞机悬停的时候,摆动的重物才会相当于不断的施加干扰力,类似于仿真测试的正弦扰动。
断桨保护
断桨保护功能其实涉及到比较多的东西,这里只是讨论控制维度。常见的6轴飞行器,如果突然停一桨,一般的PID也是能够恢复稳定的,核心还是在于积分项的控制作用是否够快;
而如果使用主动抗扰的算法,在恢复方面会比PID更快,更稳定;
这里多说一句,如果停两个桨叶,那就得看停哪两个桨。还有,断桨保护功能,如果能有反馈的电机转速,即知道哪个电机故障,其实不需要靠控制作用恢复,改变控制分配即可,现象上看,飞行器基本无影响,当然,对于控制而言,纯属作弊,这里不讨论。
鲁棒性
这里的鲁棒性,简单来说就是参数域广,如满载与空载飞行,常见的PID,其实也不需要进行参数调整。
算法上优化点:
动力分配上,考虑油门的自动调整;
引入前馈控制,提升手感;
传感器数据的动态陷波处理,尤其是IMU数据;
转速的反馈,断桨保护;
PID的滤波,包括目标输入的滤波,误差项的滤波,D项的滤波;
欧拉角形式改成四元数形式;
反馈回路的延时补偿;
串级的提升,位置-速度变成位置-速度-加速度;
干扰估计,并补偿;
控制算法选用鲁棒性强的控制算法;
某些工况下的参数自适应调整;
s曲线设计,提升点对点飞行的性能;
s曲线主要应用于位置轨迹的规划,根据位置目标,规划出合理的位置、速度、加速度目标,从而使得点到达精准。一般的做法是梯形移动,确定是加速度指令变化剧烈,因此采用s曲线技术,对加减速进行平滑,即对悸动(Jerk)控制。关于这方面的知识,可以阅读开源飞控代码。或者下面这篇文章
https://zhuanlan.zhihu.com/p/362729534
开源飞控PX4—S曲线路径规划(一)原理分析
https://zhuanlan.zhihu.com/p/362729534
具体算法上:
干扰估计,可以参考ADRC控制算法,控制的观测器设计(引入模型辨识,协助观测器的设计);
干扰估计实际验证还是效果比较明显的,同一飞行器的同样PID参数,对比加入干扰补偿与不加的,理论来说主动抗扰会更快,但需要准确估计出干扰才可以;
先进控制算法,如L1自适应,鲁棒控制;
关于这些控制算法的尝试,后续会继续更新心得;
关于无人机行业的飞控算法工程师,笔者觉得,核心能力就是要能够提取出问题,合理选取算法并实现,验证。 |
|