智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 9017|回复: 19
打印 上一主题 下一主题

神经网络用于小车控制的一点想法之二[原创]

  [复制链接]

14

主题

929

帖子

1

精华

功勋会员

WJ

Rank: 10Rank: 10Rank: 10

积分
6304

特殊贡献奖章

威望
1456
贡献
4674
兑换币
17
注册时间
2008-4-6
在线时间
87 小时
跳转到指定楼层
1#
发表于 2009-9-9 21:57:06 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
WJ本人对神经网络用于小车控制的一点思考。
  神经网络常用的一般有:感知器,BP,HOPFILED,RBF,ANN,ART和Kohonen网络。如果不用工具箱函数(即MATLAB的API函数),自己写的话,无所谓,说不定自己可以创造一种网络。只要收敛快,计算量小,泛化性能好,网络耗费资源小就行,话说起来简单,却有一定难度。但是小车的需求低,精度无需太高,因此应该来说比较容易实现。
  神经网络比PID, 模糊控制,遗传算法,bangbang等算法,更宏观,可以理解为从系统整体入手建模。但是正如本博文开头所说:计算量和收敛性必需保证,神经网络才有运用的可能性。WJ建议从以下几个方面解决这两个问题:
(1)不要指望神经网络的实时性。神经网络最要命的耗费时间是训练,神经网络在车运行时进行一两次成功的训练即可。在小车跑直线时通过获得的数据训练,因为直线时CPU会有空闲时间。另外,相信大家经常用拨码开关去选择多种控制决策,这不失一种方法。但是,这个控制决策是死的,也是事先规划好的,必定不能适应新的KT板的各种路径。
(2)最好用片内FLASH或SD卡,数据的处理是很重要的,数据也非常宝贵的,把数据存起来,传给PC,OFFLINE时研究神经网络的算法(有无数种训练算法),这是其一。其二,训练好的网络存在SD卡里,下次如果需要再训练,从老的网络开始(一般网络权值是随机开始),效率会高很多。
(3)正如数据融合一样,有决策层和数据层的融合,神经网络也一样,有决策层和数据层的运用。由于小车的路径是连续的,那么数据层的神经网络肯定是用得着的。在图像采集里,一般是40mS采集一次路径并做控制判决,那么这40mS的时间不够用怎么办?大家常用的一种方法是干脆80mS采集一次。我的建议是前60ms采集一次图像并作控制决策。后20ms运用前4Oms提取的路径信息并用神网预测路径的变化,这么一来相当于在20ms的时间里采集了一次图像。可想而知,效率提高了。
(4)上面是从数据层采用神经网络,这里讲一下从决策层采作神经网络。举个例子,假如控制器的输出-3 -2 -1 0 1 2 3分别代表舵机左偏30,左偏20,左偏10,直行,右偏10,右偏20,右偏30,而小车前7次的控制决策是:直行,右偏10,直行,左偏10,直行,右偏10,直行,(0 1 0 -1 0 1 0 )。。。。,那么第8次的决策通过神网应该就是左偏(-1)。如果实际需要的不是左偏的话,就应该把神网“惩罚”一下。
(5)寻找合适的误差阈值。小车寻迹不像激光切割,精度要求并不高。其训练的误差值可以“商量”的。
(6)神网的训练数据不是抓到一个就可以的,是要选择的。但这个选择也是要耗时间的,如果是在PC上,FCM(模糊聚类)是不错的选择。但是MCU是扛不起这个重任的,于是选择合适的训练数据和目标数据也是一个重要的研究话题。这里,如何优化神网输入不是重点,略过。
(7)重视归一化处理和神经网络训练算法。这两点很重要,归一化可以理解为把(100 45 -67 90)归一化为(1 0.45 -0.67 0.9),好处是改进数据的规范性,加快收敛。另外训练算法的重要性不言而喻,如用梯度下降法训练法使误差达到最小,什么是梯度下降法呢?打个比方 ,你要下山,山前的坡度是30度,山后是悬崖坡度是90度,要下山快,当然是找坡度大的直接跳。这个下山坡度和训练梯度是同一个含义
(8)个人觉得利用神经网络进行速度控制有较大优势,比PID控制起来精度会有些缺陷,但速度快。由于摩阻力,小车动力性能,小车驱动性能,电池等原因,需要对速度闭环控制。假如:小车以单位时间10ms为节拍,速度从X1m/s->Y1m/s,需要PWM为d1%占空比,速度从X2m/s->Y2m/s,需要PWM为d2%占空比.......速度从Xn m/s->Yn m/s,需要PWM为dn%占空比,那么以(X,Y)'为训练输入,(D)'为训练输出,建立神经网络并训练,那么建立起PWM和速度控制之间的关系是非常轻易的事。

0

主题

6

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
273
威望
148
贡献
73
兑换币
86
注册时间
2014-8-30
在线时间
26 小时
毕业学校
揭阳一中
20#
发表于 2014-9-26 23:53:47 | 只看该作者
whut_wj 发表于 2009-9-10 00:11
这个基本没有人用到,一般人会觉得理论太深。
神经网络是我研一时的课程,学自动化的同学最好学习一下。以 ...

楼主我是新手,看着挺好来顶一下,现在你应该也是毕业工作了,祝顺利
回复 支持 反对

使用道具 举报

1

主题

273

帖子

0

精华

高级会员

Rank: 4

积分
698
威望
359
贡献
205
兑换币
229
注册时间
2014-5-15
在线时间
67 小时
19#
发表于 2014-9-9 22:09:59 | 只看该作者
我正在学神经网络,作者给了我很大的信心,之前看神经的时候一直纠结应该怎么用到车上面,看了您的这篇文章,给了我很大的帮助,也给了我很大的信心,要不然我可能会坚持不了神经网络这个方法的。现在还没用上去,还在学习中,,,,,,,,,
回复 支持 反对

使用道具 举报

6

主题

114

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2055

活跃会员奖章优秀会员奖章

QQ
威望
982
贡献
623
兑换币
644
注册时间
2013-10-31
在线时间
225 小时
18#
发表于 2014-7-12 09:09:52 | 只看该作者
开阔了视野。。。。。
回复 支持 反对

使用道具 举报

24

主题

1176

帖子

0

精华

常驻嘉宾

车屌

Rank: 8Rank: 8

积分
3652

活跃会员奖章优秀会员奖章在线王奖章论坛元老奖章

威望
1680
贡献
1026
兑换币
1070
注册时间
2013-3-5
在线时间
473 小时
17#
发表于 2014-7-11 21:35:18 | 只看该作者
。看不懂
回复 支持 反对

使用道具 举报

6

主题

65

帖子

0

精华

高级会员

Rank: 4

积分
895
威望
385
贡献
306
兑换币
242
注册时间
2013-9-27
在线时间
102 小时
毕业学校
河北理工大学
16#
发表于 2013-11-8 19:22:48 | 只看该作者
太深奥了
回复 支持 反对

使用道具 举报

5

主题

50

帖子

0

精华

高级会员

Rank: 4

积分
550
威望
292
贡献
154
兑换币
178
注册时间
2012-12-22
在线时间
52 小时
毕业学校
汕尾中学
15#
发表于 2013-11-7 21:35:25 | 只看该作者
前阵子才开始接触神经网络,去年参加过飞思,就想试试把它写到小车上去,有种相见恨晚的感觉。。。
回复 支持 反对

使用道具 举报

7

主题

85

帖子

0

精华

高级会员

Rank: 4

积分
760
威望
347
贡献
199
兑换币
225
注册时间
2012-11-2
在线时间
107 小时
14#
发表于 2013-4-24 23:29:19 | 只看该作者
感觉第六,第五届,北理好像用了神经网络BP算法,其寻迹相当不错
回复 支持 反对

使用道具 举报

7

主题

85

帖子

0

精华

高级会员

Rank: 4

积分
760
威望
347
贡献
199
兑换币
225
注册时间
2012-11-2
在线时间
107 小时
13#
发表于 2013-4-24 23:26:07 | 只看该作者
楼主我也是搞自动化的,我最近在想如何用神经网络去自适应PID参数,你的文章很好,我在论坛很少看到如此创造性的东西
回复 支持 反对

使用道具 举报

7

主题

92

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1345
威望
663
贡献
350
兑换币
299
注册时间
2012-7-9
在线时间
166 小时
12#
发表于 2013-2-27 20:13:10 | 只看该作者
顶一下,
另外请问神经网络算法是不是平时说的记忆算法?
有没有什么更具体的参考资料呢?
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2025-1-1 07:50 , Processed in 0.166483 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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