STM32野火开源平衡小车(六)之PID调参
野火开源平衡车官网板块
https://www.firebbs.cn/forum.php?mod=forumdisplay&fid=129&page=1
参考资料
暂无
参考视频(这个群主讲的不错)
https://www.bilibili.com/video/BV1j7411z7uX
硬件平台
开发平台
KEIL5, STM32F103X主控,程序用的SWD下载(啥下载器都行,能下载进去就好,用串口下载也是可以的)
开发(一)
车车中的串级PID的速度环是正反馈(人向前扑街的时候, 如果你的脚加速向走 就会避免扑街,如果向后走,就加速扑街,所以是正反馈)
调参开始
先确定车车的机械角度(装完电池,这些肯定会影响车车的重心的)
确定不了,车车一直在震,先不管
我这边出现了重大BUG,有一边电机一直在来回振动,我检查过AIN1和AIN2了 一直来回跳,只有按RESET键才有几率正常
这就加大了调试难度, 问题是找到了,但我调了4,5个小时还是没找到解决办法 不知道是不是硬件那边有虚焊
先确定车车重心
这边是-2.5左右(直立车车,观察OLED屏幕,再慢慢前推,看俯仰角差不多到哪个数值时车车直接扑街,同理慢慢后推,看看哪个数值扑街)
然后 前+后/2 = 机械中值
我测试过KP和KD,都是负号才是正反馈
KP我这边用 -360,已经出现振荡了 减小
我这边KD搞到-0.8 直立效果已经很好了 但还没出现高频抖动 继续增大
-1.8才出现抖动
又试了几个,发现在 Vertical_Kd=-1.7; 时出现抖动幅度和概率都比较小,就选他了
然后 Vertical_Kp=-320*0.6, //直立环KP、 = -192
Vertical_Kd=-1.7*0.6; // -1.02
然后调速度环
测试速度环的记性, 先注释掉直立环和速度环
其中 Ki = 1/200 * Kp
转到一个车轮, 如果另一个车轮方向相反 速度相同 那么就是极性错误, 我这边确实是这种现象
修改
转动一个车轮, 当两个车轮同方向,并且不断加速直到最大, 那么速度环的极性就确定下来了,为正数
增大Kp和Ki,直至车车保持平衡的同时,速度趋于0,且移动后回到原位的效果好
测试,那边直立环注释取消掉,我们要用它
效果还行,但还是有点来回走
效果更好了 ,继续微调
还是不行,还是有来回摆
但用0.5 振荡很大 0.49没0.48好,试过0.47差不多了.但还是有点来回走,应该是重心没确定好 后面再改
下面搞转向环 先判断极性 注释速度环和直立环, 单独判断转向环极性
转动小车, 如果你感觉到你能转动小车(小车在帮你转),那么这个极性就是错误的
继续转动小车, 明显感觉到小车阻碍你转动, 这个极性就是对的了
开始调转性环参数,注释回来
最终选了Kp = -1, 感觉大差不差的
最后调到的参数, 并不好, 还是有来回走动的,应该是机械中值问题,后面再调
本文地址:https://blog.csdn.net/jwdeng1995/article/details/108179577
上一篇: mysqldump你可能不知道的参数
下一篇: Redis密码设置与访问限制实现方法