五一放假终于有空,先验证一下之前了解的pid算法。
本次实验是应用pid算法,保持舵机与平面的角度保持在一定的数值。
感觉表述有点不清楚,从视频中看看吧。
说说我做了的尝试
系统辨识建立模型
本来之前以为可以通过matlab工具箱的系统辨识建立模型,然后通过工具箱自动调参
但是!自动调参更新完pid参数后,阶跃响应为负值
没办法,只能放弃这个操作了
瞎调参数
之后就随便乱调参数,发现要不抖的厉害,要不就迟滞时间太长
随便调了几下后就放弃这个方法了
Arduino中的自整定算法
就是Arduino-PID-Library的自整定例子
在疯狂调节相关参数后,还是抖的厉害,没法用
系统整体框架
模糊PID
最后还是选择了模糊PID的方法
随便在网上找到了一个用于Arduino的开源算法,Fuzzy-like-PI-controller
整合了mpu6050和舵机的相关代码后,得到了这个项目
这是这个项目的简单流程描述
存在问题
为了验证pid的算法,今天一整天就没得了,心态有点爆炸了,所以最后这代码写的很随意了
就存在了那么些问题,对代码有兴趣的可以自行去github下载,目录下的README有问题的描述
代码地址
https://github.com/greedyhao/servo_mpu6050_pid/tree/master/Arduino
后记
总算又完成一个任务,舒服