资源描述
word智能控制基于MATLAB 的神经网络的仿真学 院: 机电工程学院 姓 名: 白思明 学 号:年 级: 自研-11 学 科: 检测技术与自动化装置 日 期:2012-4-3 一 引言人工神经网络以其具有信息的分布存储、并行处理以与自学习能力等优点, 已经在模式识别、信号处理、智能控制与系统建模等领域得到越来越广泛的应用。MATLAB中的神经网络工具箱是以人工神经网络理论为根底, 利用MATLAB 语言构造出许多典型神经网络的传递函数、网络权值修正规如此和网络训练方法,网络的设计者可根据自己的需要调用工具箱中有关神经网络的设计与训练的程序, 免去了繁琐的编程过程。二神经网络工具箱函数最新版的MATLAB 神经网络工具箱为Version4.0.3, 它几乎涵盖了所有的神经网络的根本常用类型,对各种网络模型又提供了各种学习算法,我们可以根据自己的需要调用工具箱中的有关设计与训练函数,很方便地进展神经网络的设计和仿真。目前神经网络工具箱提供的神经网络模型主要用于:1. 数逼近和模型拟合;2. 信息处理和预测;3. 神经网络控制;4. 故障诊断。神经网络工具箱提供了丰富的工具函数,其中有针对某一种网络的,也有通用的,下面列表中给出了一些比拟重要的工具箱函数。三仿真实例BP 网络是一种多层前馈神经网络,由输入层、隐层和输出层组成。BP 网络模型结构见图1。网络同层节点没有任何连接,隐层节点可以由一个或多个。网络的学习过程由正向和反向传播两局部组成。在正向传播中,输入信号从输入层节点经隐层节点逐层传向输出层节点。每一层神经元的状态只影响到下一层神经元网络,如输出层不能得到期望的输出,那么转入误差反向传播过程,将误差信号沿原来的连接通路返回,通过修改各层神经元的权值,逐次地向输入层传播去进展计算,在经正向传播过程,这两个过程反复运用,使得误差信号最小或达到人们所期望的要求时,学习过程完毕。利用神经网络工具箱进展设计和仿真的具体步骤:1. 确定信息表达方式:将实际问题抽象成神经网络求解所能承受的数据形式;2. 确定网络模型:选择网络的类型、结构等;3. 选择网络参数:如神经元数,隐含层数等;4. 确定训练模式:选择训练算法,确定训练步数,指定训练目标误差等;5. 网络测试:选择适宜的训练样本进展网络测试。下面给出一个利用BP 神经网络进展函数逼近的例子。第一步问题的提出设计一个简单的BP 网络,实现对非线性函数的逼近,通过改变BP 网络的隐层神经元的数目,采用不同的训练方法来观察训练时间和训练误差的变化情况。假设将要将要逼近的函数为正弦函数,其频率参数N=1,绘制此函数见图2 所示。N=1;p= - 1:0.05:1 ;t=sin (N*pi*p) ;%假设N=1,绘制此函数曲线plot (p,t,r*)title (要逼近的非线性函数)xlabel (时间) ;第二步网络建立应用newff () 建立两层的BP 网络,隐层神经元数目可以改变,此时S=8 ,输出层一个神经元,隐层和输出层的传递函数分别为tansig 和purelin ,学习算法采用Levenberg - Marquadt ( trainlm) 。用sim() 观察初始化网络输出如图3 所示。S=8;net=newff (minmax (p) , S,1 , tansig,purelin ,trainlm) ;y1=sim (net,p) ;figure;plot (p,t, r* ,p,y1,b- )title (未训练网络的输出结果)xlabel (时间) ;ylabel (仿真输出- 原函数*) ;legend (要逼近的非线性函数,未训练网络的输出结果)图2要逼近的非线性函数图3未训练时网络的输出结果第三步网络训练将训练时间设为10,精度为0.001,用train ()进展训练,误差曲线见图4 所示。net.trainParam.epochs=10;net.trainParam.goal=0.001;net1 = train (net,p,t)图4训练过程图第四步网络测试用sim()观察训练后的网络输出如图5 所示。y2 = sim (net1,p)figure;plot (p,t,r* ,p,y1,b- ,p,y2,ko)title (训练后网络的输出结果)xlabel (时间) ;ylabel (仿真输出)legend (要逼近的非线性函数,未训练网络的输出结果,训练后网络的输出结果)图5训练后网路的输出结果从图5 可以看出经过很短时间的训练后BP 网络很好的逼近了非线性函数。讨论:1. 改变非线性函数的频率,即改变N 的值时发现,网络的训练时间会长些,逼近效果要差些。2. 改变隐层的神经元数目对网络的逼近效果也有影响,一般来说,隐层的神经元数目越多,如此BP 网络逼近非线性函数能力越强,但也并非隐层的神经元数目越多,网络性能就越好,而同时训练时间有所增长。3. 采用不同的训练函数,对本例采用三种训练方法,即Levenberg-Marquadt (trainlm)、剃度下降动量法traingdx、普通剃度下降法traingd ,通过比拟发现Levenberg - Marquadt ( trainlm) 训练速度最快,误差也较小,剃度下降动量法traingdx次之,普通剃度下降法traingd 最差。四 结论MATLAB 神经网络工具箱功能强大, 它提供了许多有关神经网络设计、训练和仿真的函数,我们只要根据需要调用相关函数, 就能方便进展神经网络设计与仿真, 从而免除了编写复杂而庞大的算法程序的困扰,可以很容易的调整各项参数,实现对神经网络的设计和仿真,为我们的工程应用提供很好的参考价值。参考文献:1 飞思科技产品研发中心.神经网络神经网络理论与MATLAB7实现M .:电子工业,2006.2 董长虹.MATLAB 神经网络与应用M . :国防工业,2005.3 高隽.人工神经网络原理与仿真实例M .:机械工业,2003.4 X志涌.精通MATLAB M .:航空航天大学,2005.6 / 6
展开阅读全文