摘 要: 详细介绍了CMAC神经网络结构、中间层作用函数地址的计算方法、输出层权值的学习算法,并利用CMAC神经网络对水下机器人深度模糊控制器进行了学习。仿真结果表明,训练得到的CMAC神经控制器控制效果良好,中间层作用函数地址的计算方法正确。
关键词: CMAC神经网络 模糊控制 水下机器人
小脑模型关节控制器神经网络(Cerebella Model Articulation Controller Neural Network,即CMAC NN)由J.S.Albus 于1975年首先提出并由W.T.Miller等人成功运用于机械手的实时动态轨迹跟踪控制。与多层前项神经网络这样的全局逼近神经网络[1]相比,CMAC神经网络在任意时刻的学习都是少数的输出层权值的调节过程,并且是一个线性优化过程,因此具有学习速度快的特点,非常适合于在线实时控制。对于大多数的控制问题,完全可以达到与多层前向神经网络相同的控制效果。目前,CMAC神经网络被越来越多地应用于机器人控制、模式识别、信号处理以及自适应控制等领域。
1 CMAC的结构及工作原理
CMAC是类似于感知器的基于网格基的联想记忆神经网络。它由输入层、中间层和输出层组成。在输入层与中间层和中间层与输出层之间分别有由设计者预先确定的输入层非线性映射和输出层权值的自适应线性映射。在输入层对n维输入空间进行划分形成一个n维网格基,任意一个输入都降落到此n维网格基的一个超立方体单元内。中间层由若干个基函数构成,对任意一个输入只有少数几个基函数的输出为非零值,我们称非零输出的基函数为作用基函数,作用基函数的个数为泛化参数ρ(generalization parameter)它规定了网络内部影响网络输出的区域大小。中间层基函数的个数用P表示,泛化参数应满足ρ<<P。在中间层的基函数与输出层的网络输出之间通过若干个连接权进行连接,它是一个全连接,在网络训练阶段,可以通过梯度下降算法对权值进行调整。CMAC神经网络的设计主要包括输入空间的划分、输入层非线性映射的实现、输出层权值学习算法,下面给予详细介绍。
1.1 CMAC 输入空间的划分
设计CMAC神经网络的第一步是对输入空间的划分方法进行定义。设输入向量为且xi∈Ri,Ri为一有限区间,定义为:
对该区间进行如下分割:
其中λi,j 称为xi的第j个内节点。
同样也可以定义xi的外节点:
通常,所有左边的外节点均置于,所有右边的外节点均置于。若两节点在同一位置,则称该节点为重节点。所有这些节点将整个区间RI分为ri+1个子区间Rr,j(0≤j≤ri):
对于任意输入x它在每一个输入坐标轴的子区间号为
内节点的选区办法可以是在区间[,]等间隔划分或是根据实际问题的需要非均匀划分,即在期望输出变化快的区域多划分,在期望输出变化慢的区域少划分。对输入空间的划分不仅影响网络的内存消耗,还影响网络的建模能力和学习收敛速度。
1.2 CMAC输入层非线性映射的实现
设计CMAC输入层非线性映射的目的是保证对任意一个输入,在中间层只有ρ个基函数的输出值为非零值,并且在输入沿某一输入坐标轴平行移动一个超立方体单元后,只有一个非零输出的基函数与原来的不同。而在输入沿某一坐标轴平行移动ρ个超立方体单元后,已无任何一个非零输出的基函数与原来相同,这样就保证了当输入相近时,输出也比较相近,当输入的距离较远时,相应的输出互不相关。并且,输出层权值的调整也是局部的,在每一次学习过程中只有ρ个权值发生调整,对两个相近的输入,只有少量的权值发生变化,而不影响大多数权值,这样大大加快了网络学习速度,减少了学习干扰。当泛化参数ρ增大时,学习变得缺少局部特性,网络的建模能力通常也会下降。
由于对任意一个输入向量x,只有ρ个中间层的基函数的输出非零,问题归结为找到这ρ个基函数在中间层p维基函数向量a(t)中的地址。下面分别给出在输入为一维、二维和多维情况下的作用基函数的地址的计算方法。
1.2.1 一维输入的计算方法
当n=1时,共有ρ个作用基函数输出非零,其中第j个作用基函数地址ad(j)的计算方法如下:
其中是第k个覆盖偏移向量的第一个分量=1,=2…=ρ。
Ceil函数定义如下:
为自然数
1.2.2 二维输入的计算方法
当n=2时,ad(j)的计算方法如下:
1.2.3 多维输入的计算方法
当n>2时,第j个作用基函数地址ad(j)的计算方法如下:
1.3 CMAC 基函数的输出
本文采用二进制CMAC神经网络,作用基函数的输出为1/ρ,这样CMAC网络作用基函数的输出和为
1.4 CMAC 输出层权值学习算法
本文采用带有输出死区的NLMS学习算法:
这里,δ为学习速率,当δ∈(0,2)时,学习收敛输出误差Εy=y-y(t)。
2 水下机器人CMAC神经网络控制器设计
采用CMAC神经网络对水下机器人深度模糊控制器进行学习,从而得到水下机器人CMAC神经网络控制器。
2.1 水下机器人深度模糊控制器
本文对某水下机器人深度通道设计了一PD型模糊控制器,以系统输出误差e及误差变化率e作为模糊控制器的输入,,模糊控制器的输出是z轴方向上的推力,u∈[-270N,270N]。模糊控制器的输入和输出语言变量的模糊子集均为NL(负大)、NM(负中)、NS(负小)、ZE(零)、PS(正小)、PM(正中)、PL(正大)。模糊隶属函数采用等腰三角形,且隶属函数的重合度为2,采用Mandani推理方法。模糊控制规则表如表1所示。
模糊控制器的输出曲面见图1,模糊控制器作用下的系统输出见图2.
2.2 水下机器人CMAC神经网络深度控制器
本文利用CMAC神经网络对水下机器人CMAC模糊深度控制器进行学习,以模糊控制规则的前件和后件隶属函数的中心对应的e、e和μ的取值作为训练样本对,组成49个训练样本对。CMAC神经网络的设计参数如下:少年宫化参数p=5,输入空间为均匀划分,划分数为20*20,覆盖偏移向量,,,,,输出死区ζ=5。训练得到的CMAC神经网络深度控制器输出曲面见图3,该控制器作用下的系统输出见图4。
上一篇:用DSP实现新一代磁浮列车悬浮控制器
下一篇:车用柴油机电控系统的设计
- 热门资源推荐
- 热门放大器推荐
- Power Integrations面向800V汽车应用推出新型宽爬电距离开关IC
- 打破台积电垄断!联电夺下高通先进封装订单
- Ampere 年度展望:2025年重塑IT格局的四大关键趋势
- 存储巨头铠侠正式挂牌上市:首日股价上涨超10%
- Vishay 推出新款精密薄膜MELF电阻,可减少系统元器件数量,节省空间,简化设计并降低成本
- 芯原推出新一代高性能Vitality架构GPU IP系列 支持DirectX 12和先进的计算能力
- NXP 2.5亿美元收购Aviva,但车载SerDes领域依然处于战国时期
- 应对 AI 时代的云工作负载,开发者正加速向 Arm 架构迁移
- 沉浸式体验漫威宇宙,英特尔锐炫显卡为《漫威争锋》提供Day 0支持
- 艾迈斯欧司朗与法雷奥携手革新车辆内饰,打造动态舱内环境