【平衡小车制作】(七)串级PID调参及平衡成果展示(超详解)

  大家好,我是小政。本篇文章我将针对PID调参进行详细的讲解,让每位小伙伴能够对比例、积分、微分三个参数如何调节有更加清晰的理解。

一、调参步骤

  1. 确立机械中值
  2. 直立环(内环)——Kp极性、Kp大小、Kd极性、Kd大小
  3. 速度环(外环)——Kp&Ki极性、Kp&Ki大小
  4. 转向环——系数极性、系数大小

二、机械中值

  把小车放在底面上,从前向后以及从后向前绕电机轴旋转平衡小车,两次向另一边倒下的角度的中值,即为机械中值。
举例:往后倒在2度,往后倒在-3度左右,这边我取的机械中值为-1度

float Med_Angle=-1.0;      // 机械中值,能使得小车真正平衡住的角度 

在这里插入图片描述

图1 往后倒在2度左右(Y轴,即Roll)

在这里插入图片描述

图2 往前倒在-3度左右(Y轴,即Roll)

三、直立环

1.Kp极性:

极性错误:小车往哪边倒,车轮就往反方向开,会使得小车加速倒下。
极性正确:小车往哪边倒,车轮就往哪边开,以保证小车有直立的趋势。

2.Kp大小:

Kp一直增加,直到出现大幅低频振荡。(即小车平衡时出现抖动)
注:Kp的绝对值范围大概在150至350内,当我设置为320时出现低频振荡,可以略微增大Kp,当出现大幅度低频振荡时,说明Kp已经足够大,是时候引入微分项。

3.Kd极性:

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

4.Kd大小:

Kd一直增加,直到出现高频振荡。(即触碰小车出现剧烈抖动)
注:Kd的绝对值范围大概在0.1至0.9内,当我设置为0.8时出现高频振荡,此时需及时关闭电机,以防电机及驱动烧毁。
  直立环调试完毕后,对所有确立的参数乘以0.6作为最终参数。
  原因:之前得到的参数都是Kp、Kd最大值,根据工程经验平衡小车的理想参数为最大参数乘以0.6求得。
  结果:乘0.6后,小车抖动消失,但同时直立效果也变差。待下面加入速度环就能得到更好的性能。
我最终调整好的直立环Kp与Kd参数:

float 
  Vertical_Kp=200,
  Vertical_Kd=0.5;     // 直立环Kp、Kd

四、速度环

1.需要注意的点

(1)
 在调节【速度环参数极性】时,需要去掉【直立环运算】;
 在调节【速度环参数大小】时,需要引入【直立环运算】。
(2)
 【转向环运算】始终是去掉的一个状态,若转向环已提前将参数调好,未注释也影响不大。

2.Kp&Ki:

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

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

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

4.Kp&Ki大小:

增加Kp&Ki,直至:小车保持平衡的同时,速度接近于0,且回位效果好。
注:Kp的绝对值范围在0.1至0.9内。

我最终调整好的速度环Kp与Kd参数:

float 
  Velocity_Kp=0.30,
  Velocity_Ki=0.0015;   // 速度环Kp、Ki(正反馈)

五、转向环

1.Kp极性:
极性错误:拿起小车,并将小车绕Z轴旋转,两车轮旋转的趋势与小车旋转趋势一致——典型正反馈。
极性正确:拿起小车,并将小车绕Z轴旋转,两车轮旋转的趋势与小车旋转趋势相反——典型负反馈
2.Kp大小:
加大Kp,直至走直线效果较好,且无剧烈抖动。
注:Kp大概范围在0.1至0.9内。

我最终调整好的转向环Kp与Kd参数:

float 
  Turn_Kp=-0.6;

六、展示

PID参数调整完成后实物展示如下:

平衡小车(纯平衡)

七、总结

  以上一系列文章是平衡小车(纯平衡)系列的全部教学,后续还会更新利用蓝牙模块遥控平衡小车的详细讲解。感兴趣的小伙伴点个关注吧!
(1)硬件原理图+程序+APP:
网址:https://pan.baidu.com/s/1EVBBazPzmtm6Gd-0m8nLGA
提取码:1234

  以上就是平衡小车系列文章第七讲——串级PID调参,若文章中出现错误或者小伙伴对以上内容有所疑问,欢迎大家在评论区留言,小政看到后会尽快回复大家!
【平衡小车制作】(八)蓝牙遥控及平衡成果展示(超详解)
https://blog.csdn.net/weixin_44270218/article/details/113806544

  • 187
    点赞
  • 1349
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 296
    评论
串级PID控制算法是一种常用的控制策略,适用于需要精确控制的系统,例如平衡小车串级PID算法的结构包括两个PID控制器,一个用于控制系统的主环路,另一个用于控制系统的从环路。 在平衡小车串级PID算法中,主要有两个控制回路:速度环和姿态环。速度环用于控制小的移动速度,姿态环用于控制小平衡姿态。下面是串级PID算法的一般步骤: 1. 设定目标速度和目标姿态。 2. 通过速度传感器获取当前速度信息,计算速度误差。 3. 使用PID控制器计算速度环的输出控制信号。PID控制器根据速度误差、积分误差和微分误差来计算输出。 4. 将速度环的输出控制信号作为姿态环的参考输入。 5. 通过陀螺仪等传感器获取当前姿态信息,计算姿态误差。 6. 使用PID控制器计算姿态环的输出控制信号。PID控制器根据姿态误差、积分误差和微分误差来计算输出。 7. 将姿态环的输出控制信号作为电机驱动的控制信号,用于节电机的输出功率和方向,以实现平衡和控制小的姿态。 8. 循环执行上述步骤,不断更新控制信号,使小保持平衡并达到目标速度和姿态。 需要注意的是,串级PID算法的参数节是一个重要的环节,需要根据实际情况进行优化和整,以获得良好的控制效果。此外,还可以结合其他控制策略和方法,如模糊控制、神经网络等,来进一步优化控制性能。
评论 296
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鲁乎乎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值