STM32野火开源平衡小车(六)之PID调参

2022-07-30,,,,

野火开源平衡车官网板块

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

《STM32野火开源平衡小车(六)之PID调参.doc》

下载本文的Word格式文档,以方便收藏与打印。