五一放假终于有空,先验证一下之前了解的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

后记

总算又完成一个任务,舒服