神经网络实验报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

实验报告课程名称BP神经网络实验实验名称一级倒立摆实验实验仪器matlab、一级倒立摆实验台系别自动化专业班级/学号学生姓名实验日期2014年4月8日成绩指导老师一级倒立摆实验实验目的:(1)熟悉Matlab/Simulink的使用.(2)掌握BP神经网络的基本原理和基本的设计步骤.(3)了解BP神经网络在实际中的应用.(4)针对简单的实际系统,能够建立BP神经网络控制模型.实验原理:1.前馈型人工神经网络前馈型人工神经网络是整个神经网络体系中最常见的一种,其结构模型如图2所示。网络结构包含输入层、隐层(可能是多层)和输出层,它的连接方式是同层之间不相连接,相邻层之间单元为全连接型。这种网络没有反馈存在,实际运行是单向的,学习方式是一种监督式学习。前馈型神经网络具有很强的非线性映射能力,寻找其映射是靠学习实践的,只要学习数据足够完备,就能够描述任意未知的复杂系统。因此前馈神经网络为非线性系统的建模和控制提供了有力的工具。YnXnY1Y212hX2X1输入层隐层输出层图1前馈型神经网络结构2.BP算法原理BP(BackPropagation)神经网络是一种利用误差反向传播训练算法的前馈型网络,BP学习算法实质是求取网络总误差函数的最小值问题[2]。这种算法采用非线性规划中的最速下降方法,按误差函数的负梯度方向修改权系数,它是梯度下降法在多层前馈网络中的应用。具体学习算法包括两大过程,其一是输入信号的正向传播过程,其二是输出误差信号的反向传播过程。1.正向传播输入的样本从输入层经过隐层单元一层一层进行处理,通过所有的隐层之后,则传向输出层;在逐层处理的过程中,每一层神经元的状态只对下一层神经元的状态产生影响。在输出层把现行输出和期望输出进行比较,如果现行输出不等于期望输出,则进入反向传播过程。2.反向传播反向传播时,把误差信号按原来正向传播的通路反向传回,并对每个隐层的各个神经元的权系数进行修改,以望误差信号趋向最小。网络各层的权值改变量,则由传播到该层的误差大小来决定。3.BP算法的特点BP神经网络具有以下三方面的主要优点[3]:第一,只要有足够多的隐含层和隐层节点,BP神经网络可逼近任意的非线性映射关系;第二,BP学习算法是一种全局逼近方法,因而它具有较好的泛化能力。第三,BP神经网络具有一定的容错能力。因为BP神经网络输入输出间的关联信息分布存储于连接权中,由于连接权的个数总多,个别神经元的损坏对输入输出关系只有较小影响。但在实际应用中也存在一些问题,如:收敛速度慢,极有可能陷入最优陷阱(局部极值),而且典型的BP网络是一个冗余结构,它的结构及隐节点数的确定往往有人为的主观性,而且一旦人工决定之后,不能在学习过程中自主变更。其结果是隐节点数少了,学习过程不收敛;隐节点数多了,则网络的学习及推理的效率较差。实验步骤:(1)建立控制模型神经网络训练数据来源于MATLAB6.5自带的一阶T-S型模糊控制slcp.mdl。如图2所示。图2一级倒立摆的模糊控制仿真在上面的控制系统中提取摆角、角速度、位移、速度初始条件为分别为0.5rad,1rad/s,0和0,在此条件下响应的输入输出对,(2)提取训练数据如图3所示,利用【SignalToWorkspace】模块获取一阶T-S型模糊控制仿真过程的控制器输入输出数据对,并保存到工作区中,可以直接用到神经网络的训练中。图3数据提取(3)BP神经网络控制器的训练首先将提取出的训练数据变为标准的训练数据形式,标准的训练数据分为输入和目标输出两部分。输入部分是一个形式为输入个数训练数据个数的矩阵,这里输入个数为4。目标输出为一个输出个数训练数据个数的矩阵,这里输出个数为1。而经signaltoworkspace模块提取出的数据为一个训练数据个数输入(或输出)个数的矩阵,因此分别将p、t转置后就得到标准训练数据p’,t’。接着选择要训练的步数,训练步数的选择可由下面语句定义:net.trainParam.epochs=250这一语句定义了一个500步的训练步数。做完上面的工作后就可以对网络进行训练了,按照上一节中的选择和定义初始化网络后,在没有输入延迟和输出延迟的条件下,并设训练后的网络还为NET,便可用下面语句对网络训练:[net,tr]=train(net,P,T,[],[])使用下面语句初始化BP神经网络控制器并进行训练:P=p';T=t';net=newff([-0.350.35;-11;-33;-33],[121],{'tansig','purelin'},'trainlm','learngdm');net.trainParam.show=25;net.trainParam.epochs=250;[net,tr]=train(net,P,T,[],[]);系统提示如下:图4训练误差曲线可以看出,经过250步训练控制器输出与期望输出间的误差已经很小了。神经网络的结构用语句gensim(net,-1)可以在simulink里生成控制器并使用其进行控制,其中-1的意思是系统是实时的,生成的神经网络控制器结构如图5所示。图5神经网络控制器外部结构(4)神经网络控制的实现使用训练后的BP神经网络控制器代替原模糊控制器控制器便可进行仿真试验。控制结构如图6所示。图6直线一级倒立摆神经网络控制仿真单击模型窗口上的’run’,运行以上的仿真实验,可以看出训练后的BP神经网络能成功的实现倒立摆的控制.倒立摆实际的实验效果如下图所示:实验总结:为减少导轨的摩擦影响在进行倒立摆的实验的操作前,应在导轨上涂抹适量的油,然后运行程序并打开电源,要慢慢把杆转上去,转到正立起来后快速收手。

1 / 7
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功