OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子全套STM32开发资料,上千讲STM32视频教程,RT1052教程免费下载啦...
查看: 2262|回复: 4

平衡小车PID的疑问之一

[复制链接]

  离线 

3

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2018-2-13
在线时间
16 小时
发表于 2018-2-13 16:45:28 | 显示全部楼层 |阅读模式
1金钱
     做平衡小车的基本都知道平衡小车的控制可以分为三部分的叠加: 直立控制, 速度控制, 方向控制.  直立控制是最主要的 这三部分控制是最终叠加来输出一个值来控制电机转速的. 我看了一些资料有说到直立控制周期为5ms, 速度控制周期为100ms. 然后为了不太影响到直立控制, 要把速度控制的较为缓慢和平滑, 说是把速度控制的输出变化量平均分配到20步5ms的控制周期中.          (暂时不考虑方向控制 假设直立控制输出量:b; 速度控制输出量:s; 最终给电机的控制量(5ms每次): P) 我的理解是:
                                         理解一.     P = b+s/20 * i;     (i初始值为1 然后++i/5ms, i满20后又为1)

                                         理解二.     P = b+s/20;
      大家感觉哪个才是正确的呢???    求解啊!!!

最佳答案

查看完整内容[请看2#楼]

嗯,飞思卡尔官方给出的那个程序没用过,不过看你给出的代码确实是你说的那样,“输出是在上次输出的基础之上慢慢改变的,是增量的”。不过,一定要有上一次速度的状态(g_nMotorOutSpeedOld),形成无论何时电机的速度都是渐变的。不知道飞思卡尔这种设计方案怎么样,我项目中的机子鲁棒性不太好,我之前的速度控制方式实现出来的效果不太好。
回复

使用道具 举报

  离线 

0

主题

6

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2018-3-6
在线时间
3 小时
发表于 2018-2-13 16:45:29 | 显示全部楼层
柒夜 发表于 2018-3-10 19:23
看到一个类似理解一的

上图是飞卡官方给的的速度控制的代码.

嗯,飞思卡尔官方给出的那个程序没用过,不过看你给出的代码确实是你说的那样,“输出是在上次输出的基础之上慢慢改变的,是增量的”。不过,一定要有上一次速度的状态(g_nMotorOutSpeedOld),形成无论何时电机的速度都是渐变的。不知道飞思卡尔这种设计方案怎么样,我项目中的机子鲁棒性不太好,我之前的速度控制方式实现出来的效果不太好。
回复

使用道具 举报

  离线 

512

主题

9万

帖子

31

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
133815
金钱
133815
注册时间
2010-12-1
在线时间
1284 小时
发表于 2018-2-19 22:01:31 | 显示全部楼层
帮顶、
回复

使用道具 举报

  离线 

0

主题

6

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2018-3-6
在线时间
3 小时
发表于 2018-3-6 14:09:04 | 显示全部楼层
我曾经做过一个项目关于平衡小车的,直立控制、速度控制以及方向控制都采用5ms控制周期,比较接近你的理解二,理解一应该是有问题。
回复

使用道具 举报

  离线 

3

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2018-2-13
在线时间
16 小时
 楼主| 发表于 2018-3-10 19:23:46 | 显示全部楼层
看到一个类似理解一的

code

code

上图是飞卡官方给的<<直立车参考设计方案>>的速度控制的代码.
红框部分的子程序是每隔5ms调用的(另一个是每隔100ms调用一次),  这很像我的理解一啊.  只不过他的输出是在上次输出的基础之上慢慢改变的,是增量的.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则




关闭

报名原子哥新品发布会&粉丝见面会上一条 /1 下一条

正点原子公众号

QQ|联系我们|手机版|官方淘宝店|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2018-10-22 03:51

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表
/* */