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, 感觉大差不差的

 

 

 

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

 

 

 

 

 

 

  • 5
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
野火上位机PID波形是指在野火PID助手软件中,通过串口通信将PID控制器的输出值和实际值以波形的形式显示出来。这样可以直观地观察PID控制器的调节效果。在野火PID助手中,可以通过设置主调量设定值、主调实际值、主调的PID输出、副调的实际值和副调的PID输出等参数来实现PID控制。\[2\]当野火PID助手发送数据时,另一端的串口助手软件可以接收并显示野火PID助手发来的数据,从而分析PID控制器下发数据的数据格式。\[1\]如果遇到野火PID助手下发指令板子没有反应,或者板子上传数据PID数据无法显示曲线,可以先排查串口数据的格式是否正确,然后检查自己程序中的串口收发函数是否正确编写,只有串口数据符合规定的协议格式,才能正确进行数据通信。\[3\] #### 引用[.reference_title] - *1* *3* [电机PID控制补充篇-野火上位机串口协议介绍](https://blog.csdn.net/hbsyaaa/article/details/123966179)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [【单片机学习笔记】(36):理解应用PID算法,通过上位机查看波形以整定PID参数](https://blog.csdn.net/wenhaiii/article/details/120941979)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值