feng741 发表于 2010-12-26 22:12:34

[求助]自平衡车参数调节问题

我的车稍微一碰就倒了。我的算法是对角度PID,输出作为两轮速度给定,然后对速度误差PID输出送给PWM调节。我现在是只用P能稳定,小角度振荡,但一碰就会倒;还有个问题就是当车稳定一段时间时,车子会沿着一个方向漂移,速度越来越快,最后倒下。这个应该是稳态误差,我加入积分后有所改善,但有时候还是会倒。请问各位大大怎样增强车子的鲁棒性?我看zlstone的车使劲推一下都不倒。zlstone的程序我看了,车抗扰能力差好像要用车速和车位移来修正,不是很清楚。求各位指点,谢谢!

feng741 发表于 2010-12-27 17:15:38

没人来看啊?各位随便发表点意见啊。。

hemjidn 发表于 2010-12-27 17:51:47

倒下了就自己站起来嘛。你扶它它永远都不会站立。
:)

feng741 发表于 2010-12-27 18:59:15

回复【2楼】hemjidn
-----------------------------------------------------------------------

。。。

hemjidn 发表于 2010-12-27 19:32:39

呵,不同的状态就该用不同的模式,例如大外力震荡就允许大的摆幅,达到小摆幅就换模式。好像有个东西叫收敛吧。

feng_matrix 发表于 2010-12-28 14:59:35

首先应该对角速度做反馈控制(内环),然后才是角度的反馈控制(外环)
平衡小车用手推不倒,而且能手能感觉到反馈电流扭矩,主要是靠瞬时角速度反馈来做到的

我做了三个电流、角速度、姿态(角度)三个闭环,儿子用皮球砸它都不倒:
http://www.tudou.com/programs/view/89n6zMiFvcw/

http://cache.amobbs.com/bbs_upload782111/files_34/ourdev_595854XRR85G.JPG
(原文件名:未命名.JPG)

http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4374583&bbs_page_no=2&bbs_id=1025)

feng741 发表于 2010-12-28 15:36:21

呵呵 feng_matrix大大来啦,谢谢你的指点啊,很有道理啊,应该是相应不及时啊,加个内环应该会很有效。我试下。你的视频我早看过了,抗扰能力很好啊!你有对车速、车位移控制来控制平衡么?还有电流环我没有传感器,应该没多大关系吧。

feng_matrix 发表于 2010-12-28 15:43:05

目前还没有对位移做反馈,所以你看视频里儿子用皮球一砸,小车虽然不会倒,但得到一个水平方向的惯量,平移了很多

过段时间有空会再加上水平加速度的两阶积分算位移,然后PID反馈控制之,还在阿莫那里买了很多光电鼠标传感器,也准备以后用上

Gorgon_Meducer 发表于 2010-12-28 15:47:32

一定要分段啊,总试图用一个PID来做是事倍功半的。
就好比挖掘机不能用来夹鸡蛋一样……不同的范围,要用不同的参数和算法
如果以角速度和角加速度做一个坐标系,则可以很容易发现,13象限和24象限有一些有趣的共同点……
提示到此为止……

feng_matrix 发表于 2010-12-28 15:52:06

回复【8楼】Gorgon Meducer 傻孩子
一定要分段啊,总试图用一个pid来做是事倍功半的。
就好比挖掘机不能用来夹鸡蛋一样……不同的范围,要用不同的参数和算法
如果以角速度和角加速度做一个坐标系,则可以很容易发现,13象限和24象限有一些有趣的共同点……
提示到此为止……
-----------------------------------------------------------------------

等大侠的书啊,头发都白了呀!

feng741 发表于 2010-12-28 16:24:44

回复【9楼】feng_matrix 悟
-----------------------------------------------------------------------

都是大侠啊,受教了。我研究研究。谢谢各位!

feng741 发表于 2010-12-30 19:21:04

回复【9楼】feng_matrix 悟
-----------------------------------------------------------------------

角速度内环是单独一个很短的定时中断么?运算出的控制量inc_u(t)就累加到总体的控制量u(t)上吧? 我现在还没做,我把采样周期从原来的10ms缩短到了4ms(控制程序大约有3.8ms),应该够及时了吧,可现在还是调不好。不知道你的角速度环采样周期多长时间?
还有我用的是atmega16,现在3个定时器都用了,一个PWM输出,一个做采样周期,一个做测速。一旦我再用一个定时器的话,就必须把测速的定时器用掉,这是不可能的,因为以后要考虑行走。我用的是T法测速,一圈只有一个霍尔传感器必须有定时器定时,要是M法的话可以像zlstone那样直接在采样周期到后,查看累加了多少脉冲就行了,腾出一个定时器来。

另外请教下你,PID参数你是怎么调的,按照什么步骤,有时候站稳了,稍微瘦点扰动就慢慢发散了,加大微分应该是减小超调,但效果不怎么明显。P和D都影响了什么?我的PWM周期是255,PID输出就要限幅为-255~255,那么这个倾角PID参数大概在什么范围?

feng741 发表于 2010-12-31 15:56:07

自己顶一个,feng_matrix 大侠快看进来啊!

feng741 发表于 2011-1-1 22:36:57

feng_matrix 发表于 2011-1-6 10:49:26

采样周期取决于器件性能,一般是越快越好,角速度积分的Dt,也是越小求解角度越精确。

控制周期取决于电机及机械时间常数,这种小车应用取几十毫秒就行了。
好电机的时间常数应该可以查到,一般有铁芯的微电机在几十毫秒到上百毫秒左右,空心杯电机要低些,因为转子质量小频响高
机械时间常数跟你做的车体结构、质量分布及传动方式有关,这个精确计算不容易,但一般都是慢于电机响应速度的。

关于PID参数的选择,仅凭LZ说的信息我是没法给你个具体参数值的
首先要明确你说的PID是否是角速度的PID?角速度的积分实际就是角度信息,你是只对角速度做PID呢?还是对倾角也做了PID?
如果有对倾角的闭环控制,首先要保证倾角计算的合理性,不能直接用加速度计的倾角,他会被加减速时的线加速度干扰。
我自己是把角速度积分分离出来的,在采样周期里高速做积分,并与加速度倾角做数据融合,可用KALMAN滤波或者互补滤波算法。

简单的控制模型,注意这个图是相对于倾角控制的,Kp代表角度反馈量,Kd代表角速度反馈量,换成一般讲的角速度控制,就是PI控制
http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_609429KW9RQ5.JPG
(原文件名:未命名.JPG)
简单的调试方法:
角速度反馈P量(就是上图中的角度Kd)的调整比较简单,手捏住轮子固定,然后推车身,正反向都有明显阻力即可,比开始振荡时稍微小点就行了
--这个就相当于上图中的“阻尼器”。

然后P量设为0,调试角度反馈量(就是上图中的角度Kp),方法一样,保证车身在明显倾斜时能够缓慢反馈纠正即可。
--这个就相当于上图中的“复位弹簧”。

--你可以想象:
如果上图中只有“复位弹簧”没有“阻尼器”时,小车偏移后能归中,但过程会很长,有个收敛的摆动过程
如果上图中只有“阻尼器”没有“复位弹簧”时,小车对瞬时倾斜有很强的阻尼,但由于确少绝对参照永远不会归中
然后把两种反馈都加上,结合起来再调整下基本就OK了,一般的平衡车、四轴、航模直升机锁尾之类应用,基本都是这个PI算法。

关于角速度的微分量D,它实际控制的角加速度,不能照书本上片面的理解为“增加就可减小超调”
它的前提是输入信号必须“干净”,而且D量的反馈量要能被机械执行机构快速响应。

而在使用微机械惯性传感器作为输入的系统中,微机械传感器输出的高频噪声是非常大的
对于这种淹没在运动噪声中的信号求解加速度(D量)反馈,一般都是没效果,甚至是加速振荡的
要用好D量,首先要做好高低通滤波,找到系统的运动频谱,缩小通带,这个是最基础的,但最容易被忽视。

Mec.Rover 发表于 2011-1-6 11:38:41

mark

dkld_720 发表于 2011-1-7 11:17:47

真的不好做呀,我都研究好长时间了,越来越感觉难啊

feng741 发表于 2011-1-10 14:08:19

谢谢feng_matrix的解答!

我的车做完了,见此贴:http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4506043&bbs_id=3032

dkld_720 发表于 2011-2-18 09:51:35

我的也调出来了,但还有些不稳,在向一个方向偏时出现抖动,继续努力中、、、、、、、

fjort 发表于 2011-2-23 01:01:11

mark

hitor 发表于 2011-12-6 22:48:11

mark

zl6977 发表于 2011-12-19 12:10:01

学习了,看来我还得增加点算法结构上的东西啊。角速度环没用过,研究一下。

jiajiajia 发表于 2011-12-27 22:28:44

学习了,继续奋斗自平衡车去~

jiajiajia 发表于 2012-1-7 16:27:16

回复【5楼】feng_matrix 悟
-----------------------------------------------------------------------

请教前辈:

您所说的 先对角速度做反馈控制(内环),然后对角度做反馈控制(外环) 是串级控制吗?

我按照自己的理解画了一个控制系统框图,框图如下,不知对不对,还请您指教 ^_^

http://cache.amobbs.com/bbs_upload782111/files_50/ourdev_711085QBYLHG.jpg
(原文件名:平衡车双闭环控制系统图.jpg)

211LIRUISHUO 发表于 2012-1-14 17:12:31

回复【楼主位】feng741 梦不落
-----------------------------------------------------------------------

楼主在吗?我车子的情况跟楼主一模一样,希望楼主能够给点意见./emotion/em021.gif

lrbdh 发表于 2013-12-17 20:17:55

好贴留名!
页: [1]
查看完整版本: [求助]自平衡车参数调节问题