IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> HAL库版STM32双轮自平衡车(五) ———— 调参 -> 正文阅读

[嵌入式]HAL库版STM32双轮自平衡车(五) ———— 调参

?系列文章目录

HAL库版STM32双轮自平衡车(一) ———代码思路和PID基础精讲

HAL库版STM32双轮自平衡车(二) ——— CubeMX的配置、原理图接线、物料准备

HAL库版STM32双轮自平衡车(三) ———代码精讲

HAL库版STM32双轮自平衡车(四) ———— 原理图以及PCB绘制

HAL库版STM32双轮自平衡车(五) ———— 调参(本篇)


前言

这部分B站上以及CSDN里面都有很好的调参过程,其实都大同小异。这篇文章的内容是我学习了网上的各种学习资源然后自己进行归纳总结得到的,希望对你有帮助。文末还放了一些参考链接可以参照学习。


首先要知道

直立环是负反馈,就简单理解为小车往哪倒,直立环就阻碍小车往哪倒

速度环是正反馈,就简单理解为小车失去平衡后,只能通过单方向运动维持平衡,加入速度环就是修正小车的角度,小车一直往前面开时,速度环让小车以更快速度行驶使得小车后仰

总体的调参过程如下:

  1. 确立机械中值(这里主要针对的是角度的机械 中值,速度的机械中值就设置为0就好了)
  2. 计算确定需要调节参数的大概范围
  3. 直立环 ——Kp极性、Kp大小、Kd极性、Kd大小
  4. 速度环 ——Kp&Ki极性、Kp&Ki大小(根据调参经验线性关系:Ki=(1/200)*Kp,仅调Kp即可)

具体调参过程如下:

计算确定需要调节参数的大概范围

如果小车需要直立,摆幅差不多就要≤10°。,如果超过此范围,小车抖动较为厉害

根据直立环的程序:

balance_up=Up_balance_KP*Bias+Up_balance_KD*Gyro; //计算平衡控制的电机PWM  PD控制   Up_balance_KP是P系数,Up_balance_KD是D系数

由于PWM最大是7200,角度在10°,反推可以得到:

直立环的Kp可选范围应该在0~700。

当然这只是个大致的范围,具体多少还需要进一步调试。

直立环的Kd对应的是角速度,由于角速度都是四位数以上的数值,所以可以从1左右开始试。

速度环Kp&Ki

小车电机满速旋转时,左右两个电机,编码器相加可达160。

假设速度偏差(实际测量值与理想值)达到50%时满转,即速度偏差相加达80时电机满转

velocity=Velocity_KP*Encoder

那么有 7200/80=90,也就说kp最大为90

(注意,这里只是在假设偏差为50%的前提下).


判断极性以及调参现象

  • 直立环

1.Kp极性:

?? 极性错误:小车往哪边倒,车轮就往反方向开,会使得小车加速倒下。 ?

? ?极性正确:小车往哪边倒,车轮就往哪边开,以保证小车有直立的趋势。

2.Kp大小:

? ?Kp一直增加,直到出现大幅低频振荡。(即小车平衡时出现抖动)

? ?P过小,响应太慢,不能达到直立。

? ?P过大,会出现大幅度的低频抖动。
?

3.Kd极性:

?极性错误:拿起小车绕电机轴旋转,车轮反向转动,无跟随。?

?极性正确:拿起小车绕电机轴旋转,车轮同向转动,有跟随。

4.Kd大小:

?Kd一直增加,直到出现高频振荡。(即触碰小车出现剧烈抖动)

? ?D可消除P大了之后产生的大幅低频抖动。

? ?D过大,会出现高频抖动。

直立环调试完毕后,对所有确立的参数乘以0.6作为最终参数。

原因:之前得到的参数都是Kp、Kd最大值,根据工程经验平衡小车的理想参数为最大参数乘以0.6求得。 ??

结果:乘0.6后,小车抖动消失,但同时直立效果也变差。待下面加入速度环就能得到更好的性能。


  • 速度环

需要注意的是:

在确定【速度环参数极性】时,需要去掉【直立环运算】;

?在调节【速度环参数大小】时,需要引入【直立环运算】。

.Kp&Ki:线性关系:Ki=(1/200)*Kp,仅调Kp即可

1. Kp&Ki极性:(直立环注释)

? ? 极性错误:手动转动其中一个车轮,另一车轮会以同样速度反向旋转——典型负反馈。

? ??极性正确:手动转动其中一个车轮,两个车轮会同向加速,直至电机最大速度——典型正反馈。

2.Kp&Ki大小:

? ?增加Kp&Ki,直至:小车保持平衡的同时,速度接近于0,且回位效果好。?

? ?P过小,响应慢,出现的现象是加速减速慢,迟钝。

? ?P过大,会出现低频抖动。


学习文章:

平衡小车就该这么调


结语

关于HAL库版平衡小车系列文章的更新也接近尾声了,跟着我的步骤一步步地来相信兄台也可以做出来属于自己的平衡小车,如果在制作过程遇到了什么问题,欢迎评论区或者私信与我探讨交流,大家一起进步。


码字不易,希望喜欢的小伙伴别忘了点赞+收藏+关注,你们的肯定就是我创作的动力


欢迎大家积极交流,本文未经允许谢绝转载!!!

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-09-15 02:09:57  更:2022-09-15 02:11:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 22:53:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码