欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-06-22 20:18:03
野火开源平衡车官网板块https://www.firebbs.cn/forum.php?mod=forumdisplay&fid=129&page=1参考资料暂无参考视频(这个群主讲的不错)https://www.bilibili.com/video/BV1j7411z7uX硬件平台开发平台KEIL5, STM32F103X主控,程序用的SWD下载(啥下载器都行,能下载进去就好,用串口下载也是可以的)开发(一)车车中的串级PID的速度环是正反馈(....

野火开源平衡车官网板块

https://www.firebbs.cn/forum.php?mod=forumdisplay&fid=129&page=1

参考资料

暂无

参考视频(这个群主讲的不错)

https://www.bilibili.com/video/BV1j7411z7uX

硬件平台

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

开发平台

KEIL5, STM32F103X主控,程序用的SWD下载(啥下载器都行,能下载进去就好,用串口下载也是可以的)

开发(一) 

车车中的串级PID的速度环是正反馈(人向前扑街的时候, 如果你的脚加速向走 就会避免扑街,如果向后走,就加速扑街,所以是正反馈)

调参开始

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

先确定车车的机械角度(装完电池,这些肯定会影响车车的重心的)

确定不了,车车一直在震,先不管

 

 

 

我这边出现了重大BUG,有一边电机一直在来回振动,我检查过AIN1和AIN2了 一直来回跳,只有按RESET键才有几率正常

这就加大了调试难度, 问题是找到了,但我调了4,5个小时还是没找到解决办法 不知道是不是硬件那边有虚焊

 

先确定车车重心

这边是-2.5左右(直立车车,观察OLED屏幕,再慢慢前推,看俯仰角差不多到哪个数值时车车直接扑街,同理慢慢后推,看看哪个数值扑街)

然后 前+后/2 = 机械中值

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

我测试过KP和KD,都是负号才是正反馈

KP我这边用 -360,已经出现振荡了 减小

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

我这边KD搞到-0.8 直立效果已经很好了 但还没出现高频抖动 继续增大

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

-1.8才出现抖动 

又试了几个,发现在     Vertical_Kd=-1.7; 时出现抖动幅度和概率都比较小,就选他了

 

然后    Vertical_Kp=-320*0.6,    //直立环KP、 = -192
    Vertical_Kd=-1.7*0.6; // -1.02

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

 

然后调速度环

测试速度环的记性, 先注释掉直立环和速度环

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

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

其中 Ki = 1/200 * Kp

转到一个车轮, 如果另一个车轮方向相反 速度相同 那么就是极性错误, 我这边确实是这种现象

修改

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

 

 

转动一个车轮, 当两个车轮同方向,并且不断加速直到最大, 那么速度环的极性就确定下来了,为正数

 

增大Kp和Ki,直至车车保持平衡的同时,速度趋于0,且移动后回到原位的效果好

测试,那边直立环注释取消掉,我们要用它

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

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

效果还行,但还是有点来回走

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

效果更好了 ,继续微调

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

还是不行,还是有来回摆

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

但用0.5 振荡很大 0.49没0.48好,试过0.47差不多了.但还是有点来回走,应该是重心没确定好 后面再改

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

 

下面搞转向环 先判断极性 注释速度环和直立环, 单独判断转向环极性

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

 

转动小车, 如果你感觉到你能转动小车(小车在帮你转),那么这个极性就是错误的

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

继续转动小车, 明显感觉到小车阻碍你转动, 这个极性就是对的了

开始调转性环参数,注释回来

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

最终选了Kp = -1, 感觉大差不差的

 

 

 

最后调到的参数, 并不好, 还是有来回走动的,应该是机械中值问题,后面再调

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

 

 

 

 

 

 

本文地址:https://blog.csdn.net/jwdeng1995/article/details/108179577

相关标签: stm32