打印

《自平衡两轮小车》现在进行时(2011.05.20更新:小车已站立)

[复制链接]
楼主: 程序匠人
手机看帖
扫描二维码
随时随地手机跟帖
201
123jj| | 2011-5-18 07:38 | 只看该作者 回帖奖励 |倒序浏览
最后,给个电机控制实际公式,祝玩耍两轮平衡小车的盆友们早日成功!

PWM 输出 =  K * Vx   +  V0

式中: K 为比例系数, Vx 为采样输入修正值, V0 为一定值,以克服电机启动时的静摩擦力。

使用特权

评论回复
202
xwj| | 2011-5-18 08:00 | 只看该作者
哈哈,206楼: 讲的不错。

问题出在最终的伺服驱动问题上,电机的反应不够灵敏

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
123jj + 1
203
123jj| | 2011-5-18 08:18 | 只看该作者
老X是高手中的超级高手,俺难得碰到知音~~~ :D

使用特权

评论回复
204
123jj| | 2011-5-18 11:33 | 只看该作者
1.  是R19, 主要调整偏置电压,R9改不改无所谓,短路也可。
2.  任何附加的算法,主要是增加稳定性,匠人武艺高强,预先装载像卡尔曼滤波这种高科技算法,当然没问题。
只是小菜鸟们俺不建议用,因为,让小车站起来,起最重要作用的是陀螺仪,让小车长时间站稳,起最重要作用的是加速度传感器,小菜鸟们如还没能让小车站起来,就将算法复杂化,将各种数据混合在一起捣桨糊,说实话,在什么地方翻船都不知道,能调出来是本事,是运气,调不出来很正常,一切都在情理之中。
因此,俺只建议小菜鸟们,先抓主要矛盾,抓住事物的本质,各个击破。
先只用陀螺仪数据,通过以上调整,能让两轮平衡小车站立 10秒以上,就已大功告成。如站不到 10秒,站立 5秒也成。
再逐步加入加速度传感器数据,小菜鸟们想怎样捣鼓就怎样捣鼓,不管是卡尔曼滤波,还是自个发明的捣桨糊算法,目的只有一个,让站立的更稳定。

使用特权

评论回复
205
123jj| | 2011-5-18 12:09 | 只看该作者
玩过PID的盆友们都知道,怎样调整PID?

先去掉 I 和 D, 调整比例系数 即 P .

先确定合适的 P 后,再逐步加入 I 和 D , 数值由小到大,逐步试验,并适当更改 P .




也有些老鸟是这样调整的。

先去掉 I 和 D, 调整比例系数 即 P .

确定合适的 P 后,只加入 I ,不加入 D ,  调整到临界自激点,

重复上面过程,不过只加入 D , 不加入 I ,  调整到临界自激点,

根据上面得到的数据,将P, I, D三个原始数据根据经验公式捣捣桨糊,确定合适的P, I, D之值。

这种方法确定合适的P, I, D值,速度和效率要高很多。



几乎没有老鸟这样调整,上来不问三七二十一,P, I, D三个值一起调整,能调出来是高手,是本事+运气,调不出来也很正常,因为互相牵制互相影响的因素太多了。

使用特权

评论回复
206
程序匠人|  楼主 | 2011-5-18 12:10 | 只看该作者
1.  是R19, 主要调整偏置电压,R9改不改无所谓,短路也可。
2.  任何附加的算法,主要是增加稳定性,匠人武艺高强,预先装载像卡尔曼滤波这种高科技算法,当然没问题。
只是小菜鸟们俺不建议用,因为,让小车站起来 ...
123jj 发表于 2011-5-18 11:33


其实这个卡尔曼滤波器是很不错的。绝不仅仅是为了炫技,而是有它实际的意义。

比如说123jj所说的关于陀螺仪的温漂问题。我几乎没有“察觉”。因为用了卡尔曼滤波后,已经自动滤除,几乎不必关心。牙好胃口就好,吃嘛嘛香。神马温漂都是浮云。

使用特权

评论回复
207
123jj| | 2011-5-18 12:15 | 只看该作者
其实这个卡尔曼滤波器是很不错的。绝不仅仅是为了炫技,而是有它实际的意义。

比如说123jj所说的关于陀螺仪的温漂问题。我几乎没有“察觉”。因为用了卡尔曼滤波后,已经自动滤除。几乎不必关心。牙好胃口就好, ...
程序匠人 发表于 2011-5-18 12:10



消除陀螺仪的温漂问题,根本功劳在于加速度传感器提供的水平基准信号,不用卡尔曼滤波,最简单的校正法也一样能消除。

使用特权

评论回复
208
123jj| | 2011-5-18 12:19 | 只看该作者
本帖最后由 123jj 于 2011-5-19 05:14 编辑

不管黑猫白猫,能站起来就是好猫,匠人jj 的小车站起来,指日可待~~~  :victory:

使用特权

评论回复
209
123jj| | 2011-5-19 05:15 | 只看该作者
牙好胃口就好,吃嘛嘛香。神马温漂都是浮云。


匠人这句形容的很好,在小车中,最大的不稳定不和谐因素是电机的伺服驱动,如把电机伺服驱动这个大门牙医好了,吃啥都是香。神马温漂都是浮云。~~~

使用特权

评论回复
210
xxmmtt| | 2011-5-19 08:39 | 只看该作者
好啊

使用特权

评论回复
211
jaffy| | 2011-5-19 10:25 | 只看该作者
来捧场了,正在看您的老书,感觉很亲切!

使用特权

评论回复
212
123jj| | 2011-5-19 15:55 | 只看该作者
不知怎么回事,说派件没人接收~~~

匠人你打电话沟通一下,

使用特权

评论回复
213
123jj| | 2011-5-19 17:23 | 只看该作者
大概给快递公司搞散架了,已通知重新送,你收到后先看看,东东在不在。

使用特权

评论回复
214
程序匠人|  楼主 | 2011-5-19 18:07 | 只看该作者
呵呵, 快递变慢递了。。

使用特权

评论回复
215
程序匠人|  楼主 | 2011-5-19 18:23 | 只看该作者
电话查询了,说是包装破损,明天再发。

使用特权

评论回复
216
程序匠人|  楼主 | 2011-5-19 18:36 | 只看该作者
今日进展

这两天趁着等驱动片的空档期。把测速部分先写完了。另外把传感器的信号整理了一下思路,调整了几个滤波参数。


今天更新了3楼的硬件楼内容如下:
4、PWM部分:
MCU只有1路PWM。如果要实现两个轮子的同步或差动。需要软件实现PWM。
A.一路PWM口,继续使用;
B.另一路原本接INT0,改到T0。

5、测速部分:
把INT2改接到INT0。

6、调试电位器(临时):
AN2,AN3,AN4,AN5 临时接4个电位器,用于调试参数。

7、陀螺仪部分:
C6去掉

8、加速度计放大部分:
R10和R25,改为10欧姆。——这里的最终目标是想把C8和C21去掉。

接下来,就是等驱动片到了继续干。

使用特权

评论回复
217
lrlh| | 2011-5-19 18:37 | 只看该作者
NXT插件谁有? 帮忙做个NXT自平衡机器人,感激不尽

使用特权

评论回复
218
程序匠人|  楼主 | 2011-5-20 17:54 | 只看该作者
今日战况:

1、电机驱动芯片收到了
2、把小车重心做了些调整后,取得重大突破。小车能够站立了,最多一次达到几分钟。回头上视频!

使用特权

评论回复
219
neyo.zhong| | 2011-5-20 18:28 | 只看该作者
226# 程序匠人
恭喜匠人,“最烂”MCU果然没有让你失望,呵呵。

使用特权

评论回复
220
程序匠人|  楼主 | 2011-5-20 20:56 | 只看该作者
226# 程序匠人
恭喜匠人,“最烂”MCU果然没有让你失望,呵呵。
neyo.zhong 发表于 2011-5-20 18:28


呵呵,托您的洪福。没有前面那个小S,不会有如此给力。没有后面那个小J,也不会有如此动力。:lol

说到这颗芯片。在匠人眼里倒不算最烂。性能还是挺不错的。

唯一有点小小的不足,就是PWM的功能稍微弱了一些。有点不太给力。而且只有一路PWM。所以最终我还是用软件模拟了两路PWM。

视频正在整理上传中,稍后可以与大家见面。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则