我看到多次借助于仿真平台进行无人机的算法研发的
这也让我觉得你玩ROS可以没必要急着买设备,先去仿真跑跑,对不对。
这个也说了,不先仿真,肯定炸机100次啊。
https://blog.csdn.net/zhengyuxin0507/article/details/79953737
https://blog.csdn.net/zhengyuxin0507/article/details/80449146
https://mp.weixin.qq.com/s/yU_xj8bMAASm8cIZnn2iZw
阿木社区也有无人机仿真的课
https://bbs.amovlab.com/plugin.php?id=zhanmishu_video:video
阿木实验室TB店的这个产品我感觉也挺有意思的,当然也说明他们重视仿真,也说了仿真的好处。
https://mp.weixin.qq.com/s/UzfeVZiRe3HGdvVcJOB8HA
原创 across超越者 across说 昨天
在飞控系统中,常用的控制算法是PID,基于其控制架构的特性,一般采用串级PID的控制结构,即是角速度/角度、速度/位置的串级PID。
而由于PID算法实现较为简单,因此不是工程上的难点,反而,往往是在其调参上,需要耗费大量的精力,甚至最终也未找到相对较优的参数。
那首先思考,难在哪?
具体来说,首先,因为控制器是串级的,所有两个控制器在一起调节的时候,很难把握某一个参数具体影响什么性能,相当于没有标准;
其次,对于飞控而言,角度的性能又会影响到定点的位置性能,所以往往只调一个回路是不奏效的;
工程如何做?
难归难,活还是要做的。那如何去做呢?简单来说就是由底层到上层,一层一层的进行控制器参数调节。至于调优的指标,首先就是实际多调试,经验多了自然懂,另外可以关注一下控制器的量化指标,简单来说就是目标值的跟踪性能,关注一下跟踪时间、超调以及稳定性之类的。
有没有更好的办法?
答案自然是有的。做算法的,自然可以借助一下matlab工具,在仿真环境中进行对模型的参数调优。
早期呢,可以在仿真中自己手动调优,这样明显是要比实际现场调参要快的多。
但是也有以下问题:
首先,仿真中调优,很依赖于使用的模型,模型如果与实际飞行器差别很大,那得到的参数也会偏差很大,这也是为什么大多数人并不遵循对飞行器进行数学建模,然后仿真调参,最后验证的流程的原因;
第二,在仿真中手动调参一样是不能保证找到最优参数的;
以上描述了仿真调优的两个问题。逐个分析,第一,精确的模型建模不在本文探讨范围;第二,针对上面的手动调优的问题,本文介绍如何在matlab下进行串级PID控制器的调参,仅供参考;
举例:
这里以四旋翼飞行器的姿态控制回路为例:
图中的传函表示的是控制输入到角速度的模型,加上积分环节,得到角度的模型。
找到matlab的app页面下的Control System Tuner。
打开:
然后加载控制器模块,即你要调优的控制器。
这里把要调参的两个控制器都勾选上。
这里需要对设置的参数再进行一些设置,以方便更加准确的找到最优参数。
比如姿态环只采用P控制,并设定最大最小值,因为参数不会小于0,最大值也是可以估计出来的。
然后再选择调优的目标,这里主要考察阶跃响应的跟踪,比如给定一个0.5rad的姿态目标。
在这个页面下,选择输入和输出的信号,这里从模型中进行选择,点中以后,再去simulink模型下选择对应的信号线就可以了。
选择完以后:
最后,就是设置你想要达到的目标响应。这里,我们选择一阶系统的阶跃响应,无超调,响应时间设置成0.4,其余设为默认。
1s改成0.4s
图中虚线就是要达到的目标状态,即在1.5s左右,响应到1rad目标值。
设置完成后,点击tune:
可以通过tuning report查看调优的结果,数值越接近1,效果越好。
图中看出,基本达到设置的响应曲线。
最后将调优的参数更新到simulink的PID模块中进行验证。
验证结果:
可以看出基本满足控制要求,具体的响应时间,可以根据需求调整。
姿态环参数:
角速度环PID参数:
以上就是本文的内容,如何通过matlab进行串级PID控制器的参数调优。以上都是最简单的基本功能,在调优APP中还可以通过其他指标,比如幅值和相角裕度等。
通过这个工具,能够帮我们找到基本的参数量级和大概参数值,而实际应用中,由于仿真的模型不够精准,往往还需要再精调一次,但参数的量级基本是正确的。
across说:一个有趣有用的公众号,分享笔者在无人机、无人驾驶、机器人等领域的技术开发心得与见解。扫描下方二维码,即可关注本公众号。