CMAC神经网络模糊控制器设计

2006-05-07 15:49:30来源: 电子技术应用

   摘 要: 详细介绍了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神经网络的第一步是对输入空间的划分方法进行定义。设输入向量为s1.gif (1212 字节)且xi∈Ri,Ri为一有限区间,定义为:

s2.gif (1636 字节)

对该区间进行如下分割:

s3.gif (1721 字节)

其中λi,j 称为xi的第j个内节点。

同样也可以定义xi的外节点:

s4.gif (2175 字节)

    通常,所有左边的外节点均置于,所有右边的外节点均置于。若两节点在同一位置,则称该节点为重节点。所有这些节点将整个区间RI分为ri+1个子区间Rr,j(0≤j≤ri):

s5.gif (2010 字节)

    对于任意输入x它在每一个输入坐标轴的子区间号为 s6.gif (3388 字节)

    内节点的选区办法可以是在区间[]等间隔划分或是根据实际问题的需要非均匀划分,即在期望输出变化快的区域多划分,在期望输出变化慢的区域少划分。对输入空间的划分不仅影响网络的内存消耗,还影响网络的建模能力和学习收敛速度。

   1.2 CMAC输入层非线性映射的实现

    设计CMAC输入层非线性映射的目的是保证对任意一个输入,在中间层只有ρ个基函数的输出值为非零值,并且在输入沿某一输入坐标轴平行移动一个超立方体单元后,只有一个非零输出的基函数与原来的不同。而在输入沿某一坐标轴平行移动ρ个超立方体单元后,已无任何一个非零输出的基函数与原来相同,这样就保证了当输入相近时,输出也比较相近,当输入的距离较远时,相应的输出互不相关。并且,输出层权值的调整也是局部的,在每一次学习过程中只有ρ个权值发生调整,对两个相近的输入,只有少量的权值发生变化,而不影响大多数权值,这样大大加快了网络学习速度,减少了学习干扰。当泛化参数ρ增大时,学习变得缺少局部特性,网络的建模能力通常也会下降。

    由于对任意一个输入向量x,只有ρ个中间层的基函数的输出非零,问题归结为找到这ρ个基函数在中间层p维基函数向量a(t)中的地址。下面分别给出在输入为一维、二维和多维情况下的作用基函数的地址的计算方法。

    1.2.1 一维输入的计算方法

    当n=1时,共有ρ个作用基函数输出非零,其中第j个作用基函数地址ad(j)的计算方法如下:

s7.gif (3095 字节)

    其中是第k个覆盖偏移向量的第一个分量=1,=2=ρ。

   Ceil函数定义如下:

s8.gif (2469 字节) 为自然数

   1.2.2 二维输入的计算方法

    当n=2时,ad(j)的计算方法如下:

s9.gif (10638 字节)

       1.2.3 多维输入的计算方法

    当n>2时,第j个作用基函数地址ad(j)的计算方法如下:

s10.gif (7382 字节)

        1.3 CMAC 基函数的输出

    本文采用二进制CMAC神经网络,作用基函数的输出为1/ρ,这样CMAC网络作用基函数的输出和为 s11.gif (1683 字节)

    1.4 CMAC 输出层权值学习算法

    本文采用带有输出死区的NLMS学习算法:

s12.gif (3419 字节)

   b1.gif (6869 字节) 这里,δ为学习速率,当δ∈(0,2)时,学习收敛输出误差Εy=y-y(t)。

    2 水下机器人CMAC神经网络控制器设计

    采用CMAC神经网络对水下机器人深度模糊控制器进行学习,从而得到水下机器人CMAC神经网络控制器。

    2.1 水下机器人深度模糊控制器

    本文对某水下机器人深度通道设计了一PD型模糊控制器,以系统输出误差e及误差变化率e作为模糊控制器的输入,s13.gif (2218 字节),模糊控制器的输出是z轴方向上的推力,u∈[-270N,270N]。模糊控制器的输入t1.gif (11777 字节)和输出语言变量的模糊子集均为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


编辑: 引用地址:http://www.eeworld.com.cn/designarticles/sensor/200605/1298.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部

小广播

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved