Lucky_Lucky 发表于 2012-7-9 16:26:46

四驱小车直线行走控制

手头有个四驱的小车,听说由于四路减速电机即便是给同样占空比的pwm,速度也是不同的,想加入pid闭环控制,但没有任何经验,比例,积分,微分的这几个参数该怎么设?大概在什么范围?求大神指教

lindabell 发表于 2012-7-9 16:33:08

走直线挺难的,即使你能控制每一个轮精确转过同样的圈数,也不一定能走出直线来
因为每一个轮与地面的摩擦力是不一样的。

Lucky_Lucky 发表于 2012-7-9 16:36:07

lindabell 发表于 2012-7-9 16:33 static/image/common/back.gif
走直线挺难的,即使你能控制每一个轮精确转过同样的圈数,也不一定能走出直线来
因为每一个轮与地面的摩擦 ...

这个。。。。大概是直线就行。不要偏得太明显就行。
主要是PID这些个参数大概范围不知道。

Lucky_Lucky 发表于 2012-7-9 16:38:33

PID调节经验总结
PID控制器参数选择的方法很多,例如试凑法、临界比例度法、扩充临界比例度法等。但是,对于PID控制而言,参数的选择始终是一件非常烦杂的工作,需要经过不断的调整才能得到较为满意的控制效果。依据经验,一般PID参数确定的步骤如下:
(1)      确定比例系数Kp
确定比例系数Kp时,首先去掉PID的积分项和微分项,可以令Ti=0、Td=0,使之成为
纯比例调节。输入设定为系统允许输出最大值的60%~70%,比例系数Kp由0开始逐渐增大,直至系统出现振荡;再反过来,从此时的比例系数Kp逐渐减小,直至系统振荡消失。记录此时的比例系数Kp,设定PID的比例系数Kp为当前值的60%~70%。
(2)      确定积分时间常数Ti
比例系数Kp确定之后,设定一个较大的积分时间常数Ti,然后逐渐减小Ti,直至系统出现振荡,然后再反过来,逐渐增大Ti,直至系统振荡消失。记录此时的Ti,设定PID的积分时间常数Ti为当前值的150%~180%。
(3)      确定微分时间常数Td
微分时间常数Td一般不用设定,为0即可,此时PID调节转换为PI调节。如果需要设定,则与确定Kp的方法相同,取不振荡时其值的30%。
(4)      系统空载、带载联调
对PID参数进行微调,直到满足性能要求。


论坛里看到的帖子,好多不懂的,什么是系统震荡,怎么看出来呢。对小车来说,是不是电机的抖动?

xinzhi1986 发表于 2012-7-9 16:41:11

走直线指的是寻线?

Lucky_Lucky 发表于 2012-7-9 16:44:58

xinzhi1986 发表于 2012-7-9 16:41 static/image/common/back.gif
走直线指的是寻线?

不巡线,就简单的直走。巡线的话还可以稍调整,但简单的直走,没有参照的话,貌似只能采用闭环的控制,不知道还有没有其他好的方法?

kayatsl 发表于 2012-7-9 16:55:50

这个难度跟叫你闭着眼睛走直线没什么差别..

xinzhi1986 发表于 2012-7-9 17:49:35

Lucky_Lucky 发表于 2012-7-9 16:44 static/image/common/back.gif
不巡线,就简单的直走。巡线的话还可以稍调整,但简单的直走,没有参照的话,貌似只能采用闭环的控制,不 ...

真心没什么办法,你可以试试加个码盘,计数,这样的话误差就是摩擦力和你轮子直径的差~

Lucky_Lucky 发表于 2012-7-9 17:57:13

恩,是的。我现在在4路电机都加了码盘,测速。然后反馈之后调整他们的占空比,尽量让4路电机速度相同。

Lucky_Lucky 发表于 2012-7-9 17:57:58

只是在闭环反馈方面不太懂,没有经验。

Lucky_Lucky 发表于 2012-7-9 17:58:27

PID 的程序是有的,参数方面的设定无从下手啊

JamesErik 发表于 2012-7-9 18:04:36

加个陀螺仪有点效果,以前做过

kayatsl 发表于 2012-7-9 18:10:03

搞那么复杂,还不如加个电子罗盘

Lucky_Lucky 发表于 2012-7-9 18:29:14

JamesErik 发表于 2012-7-9 18:04 static/image/common/back.gif
加个陀螺仪有点效果,以前做过

好复杂{:sweat:} 简单点的有吗?

Lucky_Lucky 发表于 2012-7-9 18:30:04

Lucky_Lucky 发表于 2012-7-9 18:29 static/image/common/back.gif
好复杂 简单点的有吗?

加速度传感器我想后面用在姿态控制上,比如走跷跷板

Lucky_Lucky 发表于 2012-7-9 18:30:28

kayatsl 发表于 2012-7-9 18:10 static/image/common/back.gif
搞那么复杂,还不如加个电子罗盘

好复杂{:sweat:} 简单点的有吗?

Lucky_Lucky 发表于 2012-7-9 18:32:14

JamesErik 发表于 2012-7-9 18:04 static/image/common/back.gif
加个陀螺仪有点效果,以前做过

用加速度传感器是什么思路呢?走直线,怎么控制呢?比如要沿x 走,如果y轴方向有加速度,那么肯定是走偏了。然后呢?

kayatsl 发表于 2012-7-9 18:34:16

Lucky_Lucky 发表于 2012-7-9 18:30 static/image/common/back.gif
好复杂 简单点的有吗?

电子罗盘跟加速度没什么大差别.. 就是计算车头角度

Lucky_Lucky 发表于 2012-7-9 18:40:55

kayatsl 发表于 2012-7-9 18:34 static/image/common/back.gif
电子罗盘跟加速度没什么大差别.. 就是计算车头角度

恩,主要是在闭环这块,我想用pid 的控制算法,在pid调试方面有什么好的思路,对于小车来说,参数大概范围是多少呢?

kayatsl 发表于 2012-7-9 19:01:37

这个参数范围没法说,得你去测试

tiancaigao7 发表于 2012-7-9 19:20:55

嗯,加一个陀螺仪,然后利用它来进行转角的检测,然后就是考虑如何协调轮子的事情了。

Lucky_Lucky 发表于 2012-7-9 19:28:56

tiancaigao7 发表于 2012-7-9 19:20 static/image/common/back.gif
嗯,加一个陀螺仪,然后利用它来进行转角的检测,然后就是考虑如何协调轮子的事情了。 ...

另外,还想测行驶的距离,如果该用陀螺仪的话,可以实现吗?我知道用码盘的话,可以测速,然后可以准换成行驶里程

JamesErik 发表于 2012-7-9 21:47:27

Lucky_Lucky 发表于 2012-7-9 19:28 static/image/common/back.gif
另外,还想测行驶的距离,如果该用陀螺仪的话,可以实现吗?我知道用码盘的话,可以测速,然后可以准换成 ...

测行驶距离还是码盘好,简单方便。拖个鼠标也可以,以前这么干过。

qual 发表于 2012-7-9 21:59:47

学一下自动控制原理吧

lhxr 发表于 2012-7-10 00:43:06

JamesErik 发表于 2012-7-9 18:04 static/image/common/back.gif
加个陀螺仪有点效果,以前做过

要个灵敏度高的才行

Lucky_Lucky 发表于 2012-7-10 10:57:04

本帖最后由 Lucky_Lucky 于 2012-7-10 11:00 编辑

qual 发表于 2012-7-9 21:59 static/image/common/back.gif
学一下自动控制原理吧

在看了,不过要到大三才有课的

JamesErik 发表于 2012-7-10 11:40:20

lhxr 发表于 2012-7-10 00:43 static/image/common/back.gif
要个灵敏度高的才行

的确,那次用的铁壳子的,好像3000块吧。

Lucky_Lucky 发表于 2012-7-10 12:26:32

JamesErik 发表于 2012-7-10 11:40 static/image/common/back.gif
的确,那次用的铁壳子的,好像3000块吧。

好贵啊。。。。。表示我的加速度传感器也才30块

heixinhai 发表于 2014-12-19 15:08:14

楼主,直线小车做的怎么样啊,我想用三轴加速度,你看行不?

captain_steve 发表于 2014-12-19 15:12:49

首先你要明白闭环是什么,PID是是啥,P是什么作用,I是什么作用,D是什么作用,所以还是先下个文章看看吧,没有固定的范围,不同的系统,不同的机械,参数都不同,并且不一样得很离谱
页: [1]
查看完整版本: 四驱小车直线行走控制