智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 24370|回复: 30
打印 上一主题 下一主题

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

    [复制链接]

14

主题

929

帖子

1

精华

功勋会员

WJ

Rank: 10Rank: 10Rank: 10

积分
6304

特殊贡献奖章

威望
1456
贡献
4674
兑换币
17
注册时间
2008-4-6
在线时间
87 小时
跳转到指定楼层
1#
发表于 2009-9-9 21:56:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
对于小车的控制算法,神经网络应该是不错的选择。但是很多人没有用,我想是计算量和收敛特征的问题导致大家在研究算法时不敢越雷池。神经网络的研究一般是基于OFF-LINE的,而飞思卡尔比赛用的只是MCU的ON-LINE模式的,这似乎就有了矛盾;另外,神经网络无论在分类还是拟合作用上,计算精确性并不是100%,这也是航空技术不用神网的原因。 此篇博文主要讨论神经网络用在小车控制算法上的可能性以及如何利用神经网络于小车控制算法。
          想必自动化的学生都对控制模型的建模有很深的印像,有的硕士论文就是研究这些模型。一般用机理分析法和系统辨识法对实验数据建模,得到传递函数,然后通过调试实际系统,从开环到闭环,不断调整参数和控制参数。举个例子:要建立小车直线、弧线行走的控制模型,即通过实测数据建立驱动控制和小车转弯偏移量的关系,那么输入的参数是当前速度,曲率大小,转弯弧度,最大安全速度,目前偏移角度等等参数,而输出的就是目标速度,目标角度。这个输入和输出之间的关系就是控制模型,一般也叫控制器。小车跑得快,跑得稳,主要就是这个”控制器“,控制器拟合得好,适应性强,OK,成绩就不差。
             说了半天,小车控制算法要解决的问题是: 输入——>控制模型——>输出控制参数。 按一般的方法,控制模型的建立需要大量数据,离线在线都必需调试多遍,系统的适应性不佳。而尝试神经网络,这些问题就都可以很大程度地避免了。
        1 首先,有必要介绍一下神经网络,到底神经网络是干什么用的,如何用。神经网络的理论并不复杂,我想是有些书或论文把简单问题复杂化了。大家不要对它恐惧。一堆数据A,通过一个NET不断调整,得到另一堆数据B。而A和目标结果数据C都是已知的,NET是未知的,这个调整NET的过程就是训练,NET训练好的结果是使B和C的误差最小,误差合理就收敛。收敛完了,这个NET就可以用了。神经网格的核心就是得到一个NET。控制模型就是一个NET,NET包含很多参数,如权值,隐含层数,训练方法,神经元模型,传递函数等,只要建立一个NET,那么输入和输出的关系就建立起来了。 神经网络主要有两个作用:一个是分类,另一个是回归(拟合)。如果把它运用于小车控制算法,毫无疑问是用于回归拟合的功能。回归什么呢?对,回归上面所说的控制模型,这个NET就是控制器。 神经网络用于小车控制算法上的优势比较明显,模型可以随时调整,而且模型不是通过公式表示,只是一个NET来表达,避免复杂的参数调整和试算过程。通过新的环境参数得到新的NET,增强系统的适应性。 为什么有些车在自己的场地上跑得好好的,在其它的场地上就不行呢? 为什么有些车不断地调整控制模型,控制效果却不好呢? 如何选择控制器的输入参数,参数的权重如何介定呢? 。。。。。。。。 一系列的问题,神经网络可以给大家答案。

22

主题

518

帖子

0

精华

版主

Rank: 9Rank: 9Rank: 9

积分
6442
QQ
威望
943
贡献
5041
兑换币
99
注册时间
2008-2-26
在线时间
229 小时
2#
发表于 2009-9-9 23:46:12 | 只看该作者
不知道北科的车用了没有,表现的很出色呀
回复 支持 反对

使用道具 举报

14

主题

929

帖子

1

精华

功勋会员

WJ

Rank: 10Rank: 10Rank: 10

积分
6304

特殊贡献奖章

威望
1456
贡献
4674
兑换币
17
注册时间
2008-4-6
在线时间
87 小时
3#
 楼主| 发表于 2009-9-10 00:11:23 | 只看该作者
这个基本没有人用到,一般人会觉得理论太深。
神经网络是我研一时的课程,学自动化的同学最好学习一下。以后工作上会用得着的。
另外,我写的这个东西用了我整整一个晚上时间,怎么没人看?
回复 支持 反对

使用道具 举报

6

主题

99

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
378
威望
289
贡献
33
兑换币
0
注册时间
2009-6-15
在线时间
28 小时
4#
发表于 2009-9-10 19:12:06 | 只看该作者
哪个车队用到了,可否交流一下?
回复 支持 反对

使用道具 举报

22

主题

518

帖子

0

精华

版主

Rank: 9Rank: 9Rank: 9

积分
6442
QQ
威望
943
贡献
5041
兑换币
99
注册时间
2008-2-26
在线时间
229 小时
5#
发表于 2009-9-16 19:42:54 | 只看该作者
3# whut_wj
好的想法,给大家一个启迪
回复 支持 反对

使用道具 举报

14

主题

161

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1382
QQ
威望
406
贡献
768
兑换币
10
注册时间
2009-9-4
在线时间
104 小时
6#
发表于 2009-9-16 19:54:26 | 只看该作者
看到了~~呵呵,谢谢lz分享!!~
新手,很想研究一下~~
回复 支持 反对

使用道具 举报

0

主题

22

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
369
威望
228
贡献
61
兑换币
20
注册时间
2009-6-25
在线时间
40 小时
7#
发表于 2009-9-19 10:00:05 | 只看该作者
wj,顶了
回复 支持 反对

使用道具 举报

3

主题

64

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
454
威望
250
贡献
166
兑换币
0
注册时间
2009-8-11
在线时间
19 小时
8#
发表于 2009-9-27 18:37:23 | 只看该作者
LZ,我踩一下
回复 支持 反对

使用道具 举报

3

主题

64

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
454
威望
250
贡献
166
兑换币
0
注册时间
2009-8-11
在线时间
19 小时
9#
发表于 2009-9-27 18:37:26 | 只看该作者
LZ,我踩一下
回复 支持 反对

使用道具 举报

7

主题

262

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2478
威望
499
贡献
1803
兑换币
0
注册时间
2009-5-12
在线时间
88 小时
10#
发表于 2009-9-28 10:58:26 | 只看该作者
神经网络用在智能车上恐怕还需要很长的时间

硬件上,可以发现神经网络算法大多都是用FPGA实现的,原因是FPGA可以在一定程度上做到架构上的application-specified,而MCU不行。即使是150MHZ的F2812跑一次MPC算法都需要100ms以上的时间,甚至超过1s,这种处理速度,只能在石油化工等非实时行业中应用。而智能车竞赛,以摄像头组为例,控制周期是在50ms,光电组更短。神经网络在控制中更多时候充当前馈补偿或自适应的作用,每经过一次神经元NET都要进行一次非线性运算,而且还要反复迭代,需要大量的CPU运算。HCS12即不programmable也不是floating-point,其频率、架构都不适合跑神经网络算法,远远无法达到智能车竞赛所需要的real-time.为什么模糊控制在智能车竞赛中有应用呢,因为HCS12其底层架构上有专门的模糊指令,大大缩短的运算时间,而且模糊控制大多是线性运算(三角形或梯形隶属度函数)。

嵌入式AI是一个很stimulating的领域,最终方向很可能是ASIC或ASSP。但控制并不是越高级越好,适合的才是最好的,这也是为什么工业控制器大多仍围绕PID和MPC算法来设计的原因。
回复 支持 2 反对 0

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-5 14:56 , Processed in 0.201645 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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