1 CMAC概述
小脑模型神经网络(Cerebellar Model Articulation Controller,CMAC)是一种表达复杂非线性函数的表格查询型自适应神经网络,该网络可通过学习算法改变表格的内容,具有信息分类
存储的能力。
CMAC把系统的输入状态作为一个指针,把相关信息分布式地存人一组存储单元中。它本质上是一种用于映射复杂非线性函数的查表技术。具体做法是将输入空间分成许多分块,每个分块指定一个实际存储器位置;每个分块学习到的信息分布式地存储到相邻分块的位置上;存储单元数通常比所考虑问题的最大可能输入空间的分块数少得多,故实现的是多对一的映射,即多个分块映射到同样一个存储器地址上。
CMAC已被公认为是一类联想记忆神经网络的重要组成部分,它能够学习任意多维非线性映射,CMAC算法可有效地用于非线性函数逼近、动态建模、控制系统设计等。CMAC较其他神经网络的优越性体现在:
①它是基于局部学习的神经网络,它把信息存储在局部结构上,使每次修正的权很少,在保证函数非线性逼近性能的前提下,学习速度快,适合于实时控制;
②具有一定的泛化能力,即所谓相近输入产生相近输出,不同输入给出不同输出;
③连续(模拟)输入、输出能力;
④寻址编程方式,在利用串行计算机仿真时,它可使回响速度加快;
⑤作为非线性逼近器,它对学习数据出现的次序不敏感。
由于CMAC所具有的上述优越性能,使它比一般神经网络具有更好的非线性逼近能力,更适合于复杂动态环境下的非线性实时控制。
CMAC的基本思想在于:在输入空间中给出一个状态,从存储单元中找到对应于该状态的地址,将这些存储单元中的内容求和得到CMAC的输出;将此响应值与期望输出值进行比较,并根据学习算法修改这些已激活的存储单元的内容。CMAC的结构如图8-5所示。

2 一种典型CMAC算法
CMAC网络由输入层、中间层和输出层组成。在输入层与中间层、中间层与输出层之间分别为由设计者预先确定的输入层非线性映射和输出层权值自适应性线性映射。
在输人层对维输人空间进行划分。中间层由若干个基函数构成,对任意一个输入只有少数几个基函数的输出为非零值,称非零输出的基函数为作用基函数,作用基函数的个数为泛化参数c,它规定了网络内部影响网络输出的区域大小。
中间层基函数的个数用M表示,泛化参数c满足c《M。在中间层的基函数与输出层的网络输出之间通过连接权进行连接,采用梯度下降法实现权值的调整。
CMAC神经网络的设计主要包括输人空间的划分、输入层至输出层非线性映射的实现及输出层权值学习算法。CMAC是前馈网络,输入与输出之间的非线性关系由以下两个基本映射实现。

2.1 概念映射(U→AC)
概念映射是从输入空间U至概念存储器AC的映射。考虑单输入映射至AC中c个存储单元的情况。取u(k)作为网络的输入,采用如下线性化函数对输入状态进行量化,实现CMAC的概念映射

式中,xmax和xmin为输入的最大、最小值,M为xmax量化后所对应的初始地址,round()为四舍五入Matlab函数,i=1,2,…,c。
由式(8.9)可见,当u(k)为xmin时,u(k)映射地址为1,2,…,c;当u(k)为xmax时,u(k)映射
地址为M+1,M+2,…,M+c。
映射原则为:在输入空间邻近的两个点在AC中有部分的重叠单元被激励。距离越近,重叠越多;距离越远,重叠越少。这种映射称为局部泛化,c为泛化常数。

2.2 实际映射(AC→AP)
实际映射是指由概念存储器AC中的c个单元映射至实际存储器AP的c个单元,c个单元中
存放着相应权值。网络的输出为AP中c个单元的权值的和。
采用杂散编码技术中除留余数法实现CMAC的实际映射。设杂凑表长为m(m为正整数),

3 算例

4 验算结果

6 程序

%CMAC Approximation for nonlinear model
clc
clear;
close all;
%学习效率
xite=0.20;
%动量因子
alfa=0.05;M=200;
N=100;
c=3;
%权重值
w=zeros(N,1);
w_1=w;w_2=w;d_w=w;
%初始状态
u_1=0;y_1=0;
ts=0.05;
for k=1:1:200
time(k)=k*ts;
%% 输入层
u(k)=sign(sin(k*ts));xmin=-1.0;
xmax=1.0;
%% 概念映射与实际映射
for i=1:1:cs(k,i)=round((u(k)-xmin)*M/(xmax-xmin))+i;   %Quantity:U-->ACad(i)=mod(s(k,i),N)+1;          %Hash transfer:AC-->AP
endsum=0;
for i=1:1:csum=sum+w(ad(i));
end
%% 输出层
yn(k)=sum;
y(k)=u_1^3+y_1/(1+y_1^2);   %Nonlinear model
%% 跟踪误差
error(k)=y(k)-yn(k);
%% 权重调整
for i=1:1:cad(i)=mod(s(k,i),N)+1;j=ad(i);d_w(j)=xite*error(k);w(j)=w_1(j)+d_w(j)+alfa*(w_1(j)-w_2(j));
end
%% 迭代更新
%%%% Parameters Update %%%%
w_2=w_1;w_1=w;
。。。。。。。。。略

完整程序转链接:https://mp.weixin.qq.com/s?__biz=Mzg4MTc1MjE2Mg==&mid=2247484173&idx=1&sn=eeba850806f13eb7af0423b8d429fb69&chksm=cf606200f817eb16ce621e2a81514e2e28d58d71d2b38cd4268559e90d89c0ae45f74e123a67&token=283066880&lang=zh_CN#rd

基于小脑模型神经网络轨迹跟踪matlab程序相关推荐

  1. 基于运动学模型的轨迹跟踪控制

    章四 基于运动学模型的轨迹跟踪控制 MPC(4)基于运动学模型的轨迹跟踪控制器设计 无人驾驶车辆模型预测控制(龚建伟)第四章 基于运动学模型的轨迹跟踪控制(仿真部分) 无人车辆在惯性坐标系中,车辆必须 ...

  2. 基于小脑模型神经网络的轨迹跟踪研究(Matlab代码实现)

  3. 基于模糊BP神经网络轨迹跟踪(Matlab代码实现)

  4. 基于MPC的移动机器人轨迹跟踪控制qpOASES例程

    参考了 一个模型预测控制(MPC)的简单实现 https://www.cnblogs.com/zhjblogs/p/13880682.html 与 基于MPC的移动机器人轨迹跟踪控制matlab例程 ...

  5. ROS功能包|mav_control_rw(基于MPC的无人机轨迹跟踪控制)---gazebo仿真测试

    ROS功能包|mav_control_rw(基于MPC的无人机轨迹跟踪控制)---gazebo仿真测试 gazebo仿真测试 gazebo仿真测试 启动gazebo并加载无人机模型 $ roslaun ...

  6. 基于变色龙算法的线性规划问题求解matlab程序

    基于变色龙算法的线性规划问题求解matlab程序 1 变色龙算法 变色龙是爬行动物,是非常奇特的动物,它有适于树栖生活的种种特征和行为.避役的体长约15-25厘米,身体侧扁,背部有脊椎,头上的枕部有钝 ...

  7. 博弈论matlab程序,基于博弈论的频谱分配的matlab程序

    <基于博弈论的频谱分配的matlab程序>由会员分享,可在线阅读,更多相关<基于博弈论的频谱分配的matlab程序(5页珍藏版)>请在人人文库网上搜索. 1.是认知无线电场景下 ...

  8. matlab对声场仿真,基于声线模型的水声传播MATLAB仿真.pdf

    基于声线模型的水声传播MATLAB仿真.pdf 科技广场 2007.9 基于声线模型的水声传播MATLAB仿真 熊光耀 杨 琴 Ciong GuangyaoYang Qin (江西中医学院计算机系,江 ...

  9. CMAC小脑模型神经网络与Python实现

    CMAC 小脑模型神经网络 简述 CMAC是cerebellar model articulation controller,一种模拟小脑的模型.小脑对肢体动作的操作是近似"反射" ...

  10. 基于鲸鱼算法的线性规划问题求解matlab程序

    基于鲸鱼算法的线性规划问题求解matlab程序 1 鲸鱼算法 座头鲸有特殊的捕猎方法,这种觅食行为被称为泡泡网觅食法:标准 WOA 模拟了座头鲸特有的搜索方法和围捕机制,主要包括:围捕猎物.气泡网捕食 ...

最新文章

  1. 30分钟 Keras 创建一个图像分类器
  2. 服务器维护日常需做哪些工作?
  3. TF之LSTM:利用基于顺序的LSTM回归算法对DIY数据集sin曲线(蓝虚)预测cos(红实)(matplotlib动态演示)
  4. Python 内建函数 - sorted(iterable[, key][, reverse])
  5. 读书笔记_CLR.via.c#第十六章_数组
  6. Java实现图片压缩代码,图片大小转换
  7. mysql odb驱动_odb C++访问mysql数据库,从安装到写入
  8. height100%不能生效问题解决
  9. 大数据时代侦查机制有哪些改变
  10. 三维点云数据处理软件供技术原理说明_三维点云数据获取方法及获取系统与流程...
  11. 隐语义模型(Latent Factor Model, LFM)原理以及代码实现
  12. 台式计算机usb口不能用,电脑usb接口不能用怎么办【图文教程】
  13. Asp.Net Mvc基于Fleck开发的多人网页版即时聊天室
  14. SSH服务详解(七)– SSH 连接 Github
  15. 抖音创意拍摄玩法让你轻松上热门,抖音分身特效教程。
  16. C#Form和Load和Shown
  17. 高数 | 为什么f(x)从a到b的积分等于从b到a的积分的相反数?
  18. mysql 主键列_MySQL列属性 之 主键
  19. C语言中的静态变量和静态函数
  20. Red Hat 认证工程师(RHCE)

热门文章

  1. 微信小程序在线预览PDF格式文件
  2. java jbpm工作流_JBPM工作流
  3. 基于node.js和Vue的音乐管理系统 /音乐网站的设计与实现
  4. 持续改进----白狼族的故事(完结)
  5. WAP技术入门(续)
  6. c语言程序设计教程上海交通,C语言程序设计教程 交通学习文学.pdf
  7. Fiddler 4 - 抓包工作,只抓手机app的请求-转过来备忘
  8. 锁相环的输入、输出——以PSCAD的PLL元件为例
  9. 咚咚咚————【封装驱动】3.97寸800*480高清IPS驱动封装otm8009显示IC
  10. java 启动参数 配置_Java运行参数设置