人工神经网络作业MATLAB仿真(共3篇)
(完整word版)神经网络学习算法matlab仿真(word文档良心出品)
东南大学自动化学院智能控制概论神经网络学习算法研究学院:姓名:学号:日期:目录1 任务要求叙述 ..................................................... 错误!未定义书签。
2 系统分析及设计原理 ......................................... 错误!未定义书签。
3 设计实现.............................................................. 错误!未定义书签。
4仿真验证.. (6)5 讨论与分析.......................................................... 错误!未定义书签。
一.任务要求叙述(1)任务(a) 运行算法,观察和分析现有学习算法的性能;clear all;close all;nu=20;pi=3.1415926;for i=1:nup(i)=2*pi*i/nu;t(i)=0.5*(1+cos(p(i)));endminmax=[min(p(:)) max(p(:))]net = newff([ 0 7],[6 1],{'logsig' 'purelin'},'traingd');% traingd traingdm trainlmnet.trainParam.epochs = 10000;net.trainParam.goal = 0.0001;net.trainParam.show=200;net.trainParam.lr=0.1;net.trainParam.mc=0.6; %0.9 default value; available for momentumnet = train(net,p,t);y1 = sim(net,p);figure(2);plot(p,t,'*-',p,y1,'r--')%************** test data ******************nu2=nu*3/2;for i=1:(nu2)p2(i)=2*pi*i/(nu2);t2(i)=0.5*(1+cos(p2(i)));endy2 = sim(net,p2);figure(3);plot(t2,'*-');hold on; plot(y2,'r');xlabel('times');ylabel('outputs');figure(4);plot(t2-y2);xlabel('times');ylabel('error');(b) 为了进一步提高学习逼近效果,可以采取那些措施,调节规律如何?根据所提的每种措施,修改算法程序,给出仿真效果验证、过程以及相应的曲线图,给出适当的评述;(c) 联系、结合前向神经网络的算法样本学习、测试等过程,谈谈本人对神经网络系统的一些认识和看法。
基于MATLAB的BP神经网络的仿真与实现论文
2012届毕业设计论文基于MatLab的BP神经网络的仿真与实现院、部:计算机与信息科学学院学生姓名:指导教师:职称讲师专业:计算机科学与技术班级:完成时间:2012年5月摘要摘要本文首先说明课题研究的目的和意义,评述课题的国内外研究现状,引出目前存在的问题。
然后分析了神经网络算法的基本原理,给出经典神经网络算法的具体实现方法,总结神经网络算法的特点,并给出神经网络算法的基本流程。
采用Matlab软件编程实现BP神经网络算法。
将神经网络算法应用于函数逼近,样本分类和样本含量估计问题中,并分析相关参数或算法对运行结果的影响。
最后对BP神经网络算法进行了展望。
关键字: 神经网络;BP神经网络;函数逼近;样本分类ABSTRACTABSTRACTFirst, the research purpose and significance of neural network is expounded in this article. Commentary studies current situation at the problem home and abroad. Leads to the existing problems. and then have analyzed algorithmic basal principle of neural networks, Give algorithmic concert of classics neural networks out the realization method. Summing up the characteristics of neural network algorithm. Neural network algorithm is given the basic processes. The arithmetic of BP neural network is realized in Matlab software. The algorithm applies of BP neural networks to the function approximation problem,Sample classification and computes the swatch content. And analysis of relevant parameters on the results of algorithm. Finally, The BP neural network algorithm is Outlook.Key words: Neural network;BP neural network;Function approximation; Sample classfication目录摘要 (I)ABSTRACT........................................................ I I 目录............................................................ I II 前言.. (V)第一章绪论................................................... - 1 -1.1 人工神经网络的研究背景和意义............................ - 1 -1.2 神经网络的发展与研究现状................................ - 2 -1.2.1 神经网络的发展..................................... - 2 -1.2.2 神经网络的现状.................................... - 3 -1.3 神经网络的研究内容和目前存在的问题...................... - 3 -1.3.1 神经网络的研究内容................................. - 3 -1.3.2 神经网络研究目前存在的问题......................... - 3 -1.4 神经网络的应用.......................................... - 4 - 第二章神经网络结构及BP神经网络................................ - 5 -2.1 神经元与网络结构........................................ - 5 -2.1.1 生物神经元......................................... - 5 -2.1.2 人工神经元......................................... - 6 -2.1.3人工神经网络的构成................................. - 6 -2.2 BP神经网络及其原理...................................... - 9 -2.2.1 BP神经网络定义.................................... - 9 -2.2.2 BP神经网络模型及其基本原理........................ - 9 -2.3 BP神经网络的主要功能................................... - 10 -2.4 BP网络的优点以及局限性................................. - 11 - 第三章 BP神经网络在实例中的应用............................... - 13 -3.1 基于MATLAB的BP神经网络工具箱函数..................... - 13 -3.1.1 BP网络创建函数................................... - 14 -3.1.2 神经元上的传递函数................................ - 14 -3.1.3 BP网络学习函数................................... - 15 -3.1.4 BP网络训练函数................................... - 15 -3.2 BP网络在函数逼近中的应用............................... - 15 -3.2.1 问题的提出........................................ - 15 -3.2.2 基于BP神经网络逼近函数........................... - 16 -3.2.3 不同频率下的逼近效果.............................. - 19 -3.2.4 讨论............................................. - 21 -3.3仿真实验................................................ - 21 -3.3.1 BP神经网络MATLAB设计............................ - 21 -3.3.2 各种BP学习算法MATLAB仿真........................ - 23 -3.3.3 各种算法仿真结果比较与分析........................ - 26 -3.3.4 调整初始权值和阈值的仿真.......................... - 27 -3.3.5 其他影响因素仿真.................................. - 29 -3.4 BP网络在样本含量估计中的应用........................... - 30 -3.4.1 问题的提出........................................ - 30 -3.4.2 基于BP神经网络对胆固醇含量估计................... - 31 -3.4.3 不同条件下的输出结果.............................. - 33 -3.4.4 讨论.............................................. - 35 -3.5 BP神经网络在样本分类中的应用........................... - 36 -3.5.1问题的提出........................................ - 36 -3.5.2 基于BP神经网络的样本分类......................... - 36 -3.5.3不同算法条件下的不同测试过程以及输出结果.......... - 38 -3.5.4讨论.............................................. - 42 - 结论........................................................... - 43 - 参考文献 (1)致谢 (2)前言前言BP神经网络是目前人工神经网络模式中最具代表性,应用最广泛的一种模型,具有自学习、自组织、自适应和很强的非线性映射能力,可以以任意精度逼近任意连续函数.近年来,为了解决BP网络收敛速度慢,训练时间长等不足,提出了许多改进算法.然而,在针对实际问题的BP网络建模过程中,选择多少层网络,每层多少个神经元节点,选择何种传递函数等,均无可行的理论指导,只能通过大量的实验计算获得.MATLAB中的神经网络工具箱(Neural NetworkToolbox,简称NNbox),为解决这一问题提供了便利的条件.神经网络工具箱功能十分完善,提供了各种MATLAB函数,包括神经网络的建立、训练和仿真等函数,以及各种改进训练算法函数,用户可以很方便地进行神经网络的设计和仿真,也可以在MATLAB源文件的基础上进行适当修改,形成自己的工具包以满足实际需要。
(完整word版)神经网络学习算法matlab仿真(word文档良心出品).docx
东南大学自动化学院智能控制概论神经网络学习算法研究学院:姓名:学号:日期:目录1任务要求叙述 .....................................................错误!未定义书签。
2系统分析及设计原理 .........................................错误!未定义书签。
3设计实现 ..............................................................错误!未定义书签。
4 仿真验证 (6)5讨论与分析 ..........................................................错误!未定义书签。
一.任务要求叙述( 1)任务(a)运行算法,观察和分析现有学习算法的性能;clear all;close all;nu=20;pi=3.1415926;for i=1:nup(i)=2*pi*i/nu;t(i)=0.5*(1+cos(p(i)));endminmax=[min(p(:)) max(p(:))]net = newff([ 0 7],[6 1],{'logsig' 'purelin'},'traingd');% traingd traingdm trainlmnet.trainParam.epochs = 10000;net.trainParam.goal = 0.0001;net.trainParam.show=200;net.trainParam.lr=0.1;net.trainParam.mc=0.6; %0.9 default value; available for momentumnet = train(net,p,t);y1 = sim(net,p);figure(2);plot(p,t,'*-',p,y1,'r--')%************** test data ******************nu2=nu*3/2;for i=1:(nu2)p2(i)=2*pi*i/(nu2);t2(i)=0.5*(1+cos(p2(i)));endy2 = sim(net,p2);figure(3);plot(t2,'*-');hold on; plot(y2,'r');xlabel('times');ylabel('outputs');figure(4);plot(t2-y2);xlabel('times');ylabel('error');(b)为了进一步提高学习逼近效果,可以采取那些措施,调节规律如何?根据所提的每种措施,修改算法程序,给出仿真效果验证、过程以及相应的曲线图,给出适当的评述;(c)联系、结合前向神经网络的算法样本学习、测试等过程,谈谈本人对神经网络系统的一些认识和看法。
人工神经网络计算机仿真中matlab的应用[Word文档]
人工神经网络计算机仿真中matlab的应用[Word文档] 人工神经网络计算机仿真中matlab的应用关键字: 人工神经网络计算机仿真中matlab的应用本文为Word文档,感谢你的关注,【摘要】人工神经网络是目前发展较迅速的交叉学科,神经网络可以用来计算复杂的输入和输出之间的关系。
文中把Matlab的神经网络工具箱与Simulink合理结合,完成神经网络控制系统的计算仿真。
【关键词】计算机神经网络 Matlab 应用近年来,大多控制系统的高品质控制都少不了对系统的仿真进行研究。
根据仿真研究可以优化设定的控制参量,因此,控制系统的模拟与仿真一直是研究的重点。
通常来说,控制系统进行计算机仿真必须首先创建系统模型,之后根据模型设定仿真城西,充分运用计算机对其进行动态模拟并展示结果。
本文以计算机神经网络为研究视角,介绍了人工神经网络及BP网络模型,提出设计基于Simulink控制系统及动态仿真。
一、简述人工神经网络人工神经网络又被称为神经网络,是由人脑结构的启发之下创建的计算模型,人工神经网络不单单是高度非线性动力学系统,也是自适应组织系统。
神经网络的主要特征表现在他的学习、组织及容错能力方面。
神经网络可以采用被训练的状态实现特定任务,从而为系统提供独具代表性的描述问题样本,就是其可以成组的输入、输出样本,神经网络可以推测出输入与输出数据之间的关系。
等到训练完成之后,神经网络又能永凯训练和识别任意样本之间相似的新数据。
同时,神经网络也能对不完整或存在噪音的数据进行识别,这一特征被广泛使用到预测、诊断、控制方面。
在最抽象的层次上,神经网络可以看做一个黑箱,数据由一边输入,通过神经网络处理之后给予相应的输出。
对比输出及目标数值,采用产生的误差调整网络内部之间的链接权重。
人工神经网络功能如图1所示。
二、创建BP网络模型BP网络是现今使用最广泛的神经网络模型。
该模型的学习规则是采用反向传播(BP)对网络的权值和阀值进行调整,却阿伯网络误差的平方和达到最小状态。
神经网络与matlab仿真
神经网络与matlab仿真摘要随着技术的发展,人工神经网络在各个方面应用越来越广泛,由于matlab仿真技术对神经网络的建模起着十分重要的作用,因此,本文通过讨论神经网络中基础的一类——线性神经网络的matlab仿真,对神经网络的matlab仿真做一个基本的了解和学习。
关键词:人工神经网路matlab仿真线性神经网络1 神经网络的发展及应用人工神经网络(Artificial Neural Network,简称ANN)是一种高度并行的信息处理系统,它具有高度的容错性,自组织能力和自学习能力;它以神经科学的研究成果为基础,反映了人脑功能的若干基本特性,对传统的计算机结构和人工智能方法是一个有力的挑战,其目的在于探索人脑加工、储存和搜索信息的机制,进而应用于人工智能系统。
1.1 神经网络的研究历史及发展现状神经网络的研究已有较长的历史。
1943年,心理学家McCulloch和数学家Pitts 合作提出形式(兴奋与抑制型)神经元的数学模型(MP模型),开创了神经科学理论研究的时代。
1944年,Hebb提出了神经元连接强度的修改规则,它们至今仍在各种神经网络模型中起着重要作用。
50年代末60年代初,开始了作为人工智能的网络系统的研究。
1958年,F.Rosenblatt首次引进了模拟人脑感知和学习能力的感知器概念,它由阈值性神经元组成。
1962年,B.Widrow提出的自适应线性元件(adaline),具有自适应学习功能,在信息处理、模式识别等方面受到重视和应用。
在这期间,神经网络大都是单层线性网络。
此时,人们对如何解决非线性分割问题很快有了明确的认识,但此时,计算机科学已被人工智能研究热潮所笼罩。
80年代后,传统的数字计算机在模拟视听觉的人工智能方面遇到了物理上不能逾越的基线,此时,物理学家Hopfield提出了HNN模型,引入了能量函数的概念,给出了网络稳定性的判据,同时开拓了神经网络用于联想记忆和优化计算的新途径。
MATLAB程序代码--人工神经网络的及其工程的应用的
MATLAB程序代码--人工神经网络及其工程应用目录第一章人工神经网络 (3)§1.1人工神经网络简介 (3)1.1 人工神经网络的起源 (3)1.2 人工神经网络的特点及应用 (3)§1.2人工神经网络的结构 (4)2.1 神经元及其特性 (5)2.2 神经网络的基本类型 (6)2.2.1 人工神经网络的基本特性……………………………………62.2.2 人工神经网络的基本结构……………………………………62.2.3 人工神经网络的主要学习算法………………………………7§1.3人工神经网络的典型模型 (7)3.1 Hopfield网络 (7)3.2 反向传播(BP)网络 (8)3.3 Kohonen网络 (8)3.4 自适应共振理论(ART) (9)3.5 学习矢量量化(LVQ)网络 (11)§1.4多层前馈神经网络(BP)模型 (12)4.1 BP网络模型特点 (12)4.2 BP网络学习算法 (13)4.2.1信息的正向传递 (13)4.2.2利用梯度下降法求权值变化及误差的反向传播 (14)4.3 网络的训练过程 (15)4.4 BP算法的改进 (15)4.4.1附加动量法 (15)4.4.2自适应学习速率 (16)4.4.3动量-自适应学习速率调整算法 (17)4.5 网络的设计 (17)4.5.1网络的层数 (17)4.5.2隐含层的神经元数 (17)4.5.3初始权值的选取 (17)4.5.4学习速率 (17)§1.5软件的实现 (18)第二章遗传算法 (19)§2.1遗传算法简介 (19)§2.2遗传算法的特点 (19)§2.3遗传算法的操作程序 (20)§2.4遗传算法的设计……………………………………………………………20第三章基于神经网络的水布垭面板堆石坝变形控制与预测§3.1概述 (23)§3.2样本的选取 (24)§3.3神经网络结构的确定 (25)§3.4样本的预处理与网络的训练……………………………………………254.1 样本的预处理 (25)4.2 网络的训练 (26)§3.5水布垭面板堆石坝垂直压缩模量的控制与变形的预测 (30)5.1 面板堆石坝堆石体垂直压缩模量的控制 (30)5.2 水布垭面板堆石坝变形的预测 (35)5.3 BP网络与COPEL公司及国内的经验公式的预测结果比较 (35)§3.6结论与建议 (38)第四章 BP网络与遗传算法在面板堆石坝设计参数控制中的应用§4.1概述 (39)§4.2遗传算法的程序设计与计算 (39)§4.3结论与建议 (40)参考文献 (41)第一章人工神经网络§1.1人工神经网络简介1.1人工神经网络的起源人工神经网络(Artificial Neural Network,简称ANN)研究的先锋,美国心理学家Warren S McCulloch和数学家Walter H Pitts曾于1943年提出一种叫做“似脑机器”(mindlike machine)的思想,这种机器可由基于生物神经元特性的互连模型来制造,这就是神经学网络的概念。
MATLAB人工神经网络
Artificial Neural NetworksAbstract: The Artificial Neural Network (ANN) is a functional imitation of simplified model of the biological neurons and their goal is to construct useful ‘computers’ for real -world problems and reproduce intelligent data evaluation techniques like pattern recognition, classification and generalization by using simple, distributed and robust processing units called artificial neurons.This paper will present a simple application of the artificial neural network: process, design and performance analysis.1. Working process of Artificial Neural NetworksAn artificial neuron models the dendrites of a biological neuron by receiving one or more inputs, then applying appropriate weights (positive ornegative multipliers) to the signals, and passes theweighted inputs to the soma. The soma or body of anartificial neuron, receives the weighted inputs andcomputes a single output signal (a discrete or continuousfunction of the sum of the weighted inputs) by applying athreshold or transfer function (Yoon, 1989). The last sectionof each artificial neuron is analogous to theaxon of a biological neuron, and passes theoutput signal to one or more subsequentartificial neurons or to the outside world. Everynon-trivial artificial neural network contains aninput layer and an output layer. Most alsocontain one or more intermediate processinglayers.Types of Neural Networks : Both feed-forwardand recurrent networks are examples ofsupervised learning. In unsupervised learning, no external teacher isrequired. The system self-organizes the input data, discovering foritself the regularities and collective properties of the data.These feed-forward networks have the ability to learn. To do so, anartificial neural network must learn to produce a desired output bymodifying the weights from its inputs. The process of how this is doneis simple.2. ProblemsA.9 training samples, 361 testing samples.B.9 training samples, 361 testing samples.C.11*11 training samples, 41*41 testing samples.1sin(),[0,2]f x x π=∈2|sin()|,[0,2]f x x π=∈1231212sin()sin(),,[10,10]x x f x x x x =∈-+3.DesigningWeighted Sum activation function1122...n n net x w x w x w =+++1f ()1e net y net -==+error function211(()())2qo o o e d k yo k ==-∑ Step 1: initialize the weight parameters and other parametersdefaultpoints=50; %%隐含层节点数inputpoints=2; %%输入层节点数outputpoints=2; %%输出层节点数Testerror=zeros(1,100); %每个测试点的误差记录a=zeros(1,inputpoints); %输入层节点值y=zeros(1,outputpoints); %样本节点输出值w=zeros(inputpoints,defaultpoints);%输入层和隐含层权值%初始化权重很重要,比如用rand 函数初始化则效果非常不确定,不如用zeros 初始化 v=zeros(defaultpoints,outputpoints); %隐含层和输出层权值bin=rand(1,defaultpoints); %隐含层输入bout=rand(1,defaultpoints);%隐含层输出base1=0*ones(1,defaultpoints);%隐含层阈值,初始化为0cin=rand(1,outputpoints);%输出层输入cout=rand(1,outputpoints);%输出层输出base2=0*rand(1,outputpoints);%%输出层阈值error=zeros(1,outputpoints);%拟合误差errors=0;error_sum=0; %误差累加和error_rate_cin=rand(defaultpoints,outputpoints);%误差对输出层节点权值的导数 error_rate_bin=rand(inputpoints,defaultpoints);%误差对输入层节点权值的导数alfa=1; %%%% alfa 是隐含层和输出层权值-误差变化率的系数,影响很大 belt=0.5; %%%% belt 是隐含层和输入层权值-误差变化率的系数,影响较小 gama=3; %%%% gama 是误差放大倍数,可以影响跟随速度和拟合精度trainingROUND=5;% 训练次数,有时训练几十次比训练几百次上千次效果要好 sampleNUM=100; % 样本点数x1=zeros(sampleNUM,inputpoints); %样本输入矩阵y1=zeros(sampleNUM,outputpoints); %样本输出矩阵x2=zeros(sampleNUM,inputpoints); %测试输入矩阵()⎪⎭⎫ ⎝⎛-==∑=n i i i x f f y 1θωξy2=zeros(sampleNUM,outputpoints); %测试输出矩阵observeOUT=zeros(sampleNUM,outputpoints); %%拟合输出监测点矩阵i=0;j=0;k=0; %%%%其中j 是在一个训练周期中的样本点序号,不可引用i=0;h=0;o=0; %%%%输入层序号,隐含层序号,输出层序号x=0:0.1:50; %%%%步长Step 2: select sample input and output()12()(),(),,()n k x k x k x k = x()12()(),(),,()q k d k d k d k = o dfor j=1:sampleNUM %这里给样本输入和输出赋值,应根据具体应用来设定x1(j,1)=x(j);x2(j,1)=0.3245*x(2*j)*x(j);temp=rand(1,1);x1(j,2)=x(j);x2(j,2)=0.3*x(j);y1(j,1)=sin(x1(j,1));y1(j,2)=cos(x1(j,2))*cos(x1(j,2));y2(j,1)=sin(x2(j,1));y2(j,2)=cos(x2(j,2))*cos(x2(j,2));endfor o=1:outputpointsy1(:,o)=(y1(:,o)-min(y1(:,o)))/(max(y1(:,o))-min(y1(:,o)));%归一化,使得输出范围落到[0,1]区间上,当激活函数为对数S 型时适用y2(:,o)=(y2(:,o)-min(y2(:,o)))/(max(y2(:,o))-min(y2(:,o)));endfor i=1:inputpointsx1(:,i)=(x1(:,i)-min(x1(:,i)))/(max(x1(:,i))-min(x1(:,i)));%输入数据归一化范围要和输出数据的范围相同,[0,1]x2(:,i)=(x2(:,i)-min(x2(:,i)))/(max(x2(:,i))-min(x2(:,i)));endfor i=1:inputpoints %%%%%样本输入层赋值a(i)=x1(j,i);endfor o=1:outputpoints %%%%%样本输出层赋值y(o)=y1(j,o);endStep 3: compute the input and output of the neural network hidden layer1()()1,2,,n h ih i hi hi k w x k b h p ==-=∑()f(())1,2,,h h ho k hi k h p ==for h=1:defaultpointsbin(h)=0;for i=1:inputpointsbin(h)=bin(h)+a(i)*w(i,h);endbin(h)=bin(h)-base1(h);bout(h)=1/(1+exp(-bin(h)));%%%%%%隐含层激励函数为对数激励endStep 4: compute the input and output of the neural network output layer, compute the error function ’s partial derivatives for each neuron of the output layer.1()()1,2,p o ho h oh yi k w ho k b o q ==-=∑()f(())1,2,o o yo k yi k o q == o ho o hoyi e e w yi w ∂∂∂=∂∂∂ (())()()p ho h o o h h ho ho w ho k b yi k ho k w w ∂-∂==∂∂∑211((()()))2(()())()(()())f (())()qo o o o o o o oo o o o d k yo k e d k yo k yo k yi yi d k yo k yi k k δ=∂-∂'==--∂∂'=---∑ temp_error=0;for o=1:outputpointscin(o)=0;for h=1:defaultpointscin(o)=cin(o)+bout(h)*v(h,o);endcin(o)=cin(o)-base2(o);cout(o)=1/(1+exp(-cin(o))); %%%%%%输出层激励函数为对数激励observeOUT(j,o)=cout(o);error(o)=y(o)-cout(o);temp_error=temp_error+error(o)*error(o);%%%%%记录实际误差,不应该乘伽玛系数 error(o)=gama*error(o);endTesterror(j)=temp_error;error_sum=error_sum+Testerror(j);for o=1:outputpointserror_rate_cin(o)=error(o)*cout(o)*(1-cout(o));endStep 5: compute the error function ’s partial derivatives for each neuron of the hidden layer, using the errors and weights()()o o h ho o hoyi e e k ho k w yi w δ∂∂∂==-∂∂∂ 1()()(())()()h ih h ihn ih i h h i i ihih hi k e e w hi k w w x k b hi k x k w w =∂∂∂=∂∂∂∂-∂==∂∂∑ 21212111((()()))()2()()()1((()f(())))()2()()1(((()f(())))()2()()q o o o h h h h q o o o h h h q p o ho h o o h h h h d k yo k ho k e hi k ho k hi k d k yi k ho k ho k hi k d k w ho k b ho k ho k hi k ====∂-∂∂=∂∂∂∂-∂=∂∂∂--∂=∂∂∑∑∑∑11()(()())f (())()(())f (())()q h o o o hoo h qo ho h h o ho k d k yo k yi k w hi k k w hi k k δδ==∂'=--∂'=--∑∑for h=1:defaultpointserror_rate_bin(h)=0;for o=1:outputpointserror_rate_bin(h)= error_rate_bin(h)+error_rate_cin(o)*v(h,o);enderror_rate_bin(h)=error_rate_bin(h)*bout(h)*(1-bout(h));endStep 6: modify the link weights of hidden layer and output layer, and hidden layer and input layer. 1()()()()()ho o h ho N N ho ho o h e w k k ho k w w w k ho k μμδηδ+∂∆=-=∂=+ 1()()()()()()()h ih h i ih h ihN N ih ih h i hi k e e w k k x k w hi k w w w k x k μμδηδ+∂∂∂∆=-=-=∂∂∂=+ for h=1:defaultpointsbase1(h)=base1(h)-5*error_rate_bin(h)*bin(h);for o=1:outputpointsv(h,o)=v(h,o)+alfa*error_rate_cin(o)*bout(h); %% base1(i)=base1(i)+0.01*alfa*error(i);endfor i=1:inputpointsw(i,h)=w(i,h)+belt*error_rate_bin(h)*a(i); %%base2=base2+0.01*belt*out_error;endendStep 7: compute the overall error sum.2111(()())2qm o o k o E d k y k m ===-∑∑ temp_error=temp_error+error(o)*error(o);Testerror(j)=temp_error;error_sum=error_sum+Testerror(j);Step 8: judge whether the error rate satisfy the precision, if it does then return, else go back to step 3 until it exceed the limit time.parameter designing1. 50 hidden nodes, when alfa *gama =3, the error sum is least ,belt only influence a little.2. 100 hidden nodes, when alfa *gama =1.5, the error sum is least ,belt only influence a little. And the minimum error sum is approximately the same as 50 hidden nodes.3. 200 hidden nodes, when alfa *gama =0.7, the error sum is least ,belt only influence a little. And the minimum error sum is approximately the same as 50 hidden nodes.4. base1 influence the minimum error sum very little, but it does help stabilize the system.4. Performance analysisA 50 hidden points, training for 200 times, test the network with testing samples, the shape is basically expected, and the error sum is 1.49.10 hidden points, training for 200 times, test the network with testing samples, the shape is basically expected, and the error sum is 0.89416.2001.494420 hidden points, training for 200 times, test the network with testing samples, the shape is basically expected, and the error sum is 0.89416.Problem B:20 hidden points, training for 200 times, test the network with testing samples, the shape is basically expected, and the error sum is 2.3833.alfa=0.5; belt=0.5; gama=3; learning rate: alfa *gama=1.52000.89416200 1.0081From the first and second figure, we come to the conclusion: ANN with more hidden points performances better;From figure 2 ~ 4, we come to the conclusion: this ANN performance best at the learning rate 1.5. Problem C:From the two figure, we can see that with all the other parameters the same, ANN with 50 hidden nodes only has an error sum of 0.89102, but ANN with 20 hidden nodes has an error sum of 1.8654. Thus, we can come to a conlusion that ANN with more hidden nodes performances better.From the two figures, ANN with training time of 10 produces the same error sum (0.89) as training time of 100.5. ConclusionArtificial neural networks are a completely different approach to AI in processing information. Instead of being programmed exactly what do to step by step, they are trained with sample data. They can then use this previous data to classify new things in ways that would be difficult for humans to do. They can be very powerful classification tools since they are capable of handling massive amounts of data through parallel processing. Learning is accomplished supervised and unsupervised models. The algorithmic advances to neural networks have led to advancements in many fields like model simulation and pattern recognition. Thus, due to the wide variety of high-complexity problems neural networks can solve they are a widely researched area and have many promising capabilities.。
神经网络故障的MATLAB仿真毕业设计论文
毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:日期:学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:日期:年月日导师签名:日期:年月日注意事项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。
MATLAB神经网络应用实验.
• 该函数用来初始化一个前馈网络,函数输入参数含义如下: • PR :一个R 行2 列的矩阵,第i 行是R 维输入向量的第i 个分
• • • •
• • •
量取值区间的端点值. Si :第i 层包含的结点个数. TFi :第i 层的传输函数,缺省值为函数tansig. BTF :反向传播网络的训练函数,缺省值为函数trainlm. BLF :反向传播权值P阀值的学习函数,缺省值为函数 learngdm. PF :执行函数,缺省值为函数mse. newff () 函数返回一个多层前馈反向传播网络. 与该函数 对应的老版本函数为 [w1 ,b1 ,w2 ,b2 ,w3 ,b3 ] = initff (p ,s1 ,f1 ,s2 ,f2 ,s3 ,f3) .
.
• 三、 过程离线辩识的实验步骤 • 例:辩识以下非线性仿真对象 • 1) 初步确定网络的层数,各层结点数和各层传输函数等结
构参数,然后以它们为参数调用newff () 或initff () 初始化 一个网络net . 对于该仿真对象可预设网络结构为:5 ×20 ×10 ×1
• 2) 调用u = random(’unif’, - 5 ,5 ,1 ,100) 产生均匀分布白
y (5) ⋯y (100) 构成网络在输入p 下的输出
• • •
步数、训练误差、学习率取为(5000 0. 02 0. 0015) , (15000 0. 015 0. 0011) 或(20000 0. 015 0. 0008) 均可. 5) 观察、检验网络在其它输入下和被辩识过程在相同输入 下的输出逼近情况. 6)将训练好的网络和仿真对象或实际系统在工况输入,如 su = 5 *sin (2*pi 3 k/50) 下的输出一同绘图. 注:若发现网络输出不能很好地逼近仿真对象或实际系统 的输出时,则要增加学习样本个数、增加输入延时序列长 度或者调整(1) 、(3) 中的参数,重复上述步骤.
MATLAB程序代码--人工神经网络及其工程应用
MATLAB程序代码--人工神经网络及其工程应用目录第一章人工神经网络 (3)§1.1人工神经网络简介 (3)1.1 人工神经网络的起源 (3)1.2 人工神经网络的特点及应用 (3)§1.2人工神经网络的结构 (4)2.1 神经元及其特性 (5)2.2 神经网络的基本类型 (6)2.2.1 人工神经网络的基本特性 (6)2.2.2 人工神经网络的基本结构 (6)2.2.3 人工神经网络的主要学习算法 (7)§1.3人工神经网络的典型模型 (7)3.1 Hopfield网络 (7)3.2 反向传播(BP)网络 (8)3.3 Kohonen网络 (8)3.4 自适应共振理论(ART) (9)3.5 学习矢量量化(LVQ)网络 (11)§1.4多层前馈神经网络(BP)模型 (12)4.1 BP网络模型特点 (12)4.2 BP网络学习算法 (13)4.2.1信息的正向传递 (13)4.2.2利用梯度下降法求权值变化及误差的反向传播 (14)4.3 网络的训练过程 (15)4.4 BP算法的改进 (15)4.4.1附加动量法 (15)4.4.2自适应学习速率 (16)4.4.3动量-自适应学习速率调整算法 (17)4.5 网络的设计 (17)4.5.1网络的层数 (17)4.5.2隐含层的神经元数 (17)4.5.3初始权值的选取 (17)4.5.4学习速率 (17)§1.5软件的实现 (18)第二章遗传算法 (19)§2.1遗传算法简介 (19)§2.2遗传算法的特点 (19)§2.3遗传算法的操作程序 (20)§2.4遗传算法的设计 (20)第三章基于神经网络的水布垭面板堆石坝变形控制与预测§3.1概述 (23)§3.2样本的选取 (24)§3.3神经网络结构的确定 (25)§3.4样本的预处理与网络的训练 (25)4.1 样本的预处理 (25)4.2 网络的训练 (26)§3.5水布垭面板堆石坝垂直压缩模量的控制与变形的预测 (30)5.1 面板堆石坝堆石体垂直压缩模量的控制 (30)5.2 水布垭面板堆石坝变形的预测 (35)5.3 BP网络与COPEL公司及国内的经验公式的预测结果比较 (35)§3.6结论与建议 (38)第四章BP网络与遗传算法在面板堆石坝设计参数控制中的应用§4.1概述 (39)§4.2遗传算法的程序设计与计算 (39)§4.3结论与建议 (40)参考文献 (41)第一章人工神经网络§1.1人工神经网络简介1.1人工神经网络的起源人工神经网络(Artificial Neural Network,简称ANN)研究的先锋,美国心理学家Warren S McCulloch和数学家Walter H Pitts曾于1943年提出一种叫做“似脑机器”(mindlike machine)的思想,这种机器可由基于生物神经元特性的互连模型来制造,这就是神经学网络的概念。
MATLAB神经网络及其应用3篇
MATLAB神经网络及其应用第一篇:MATLAB神经网络基础及其实现MATLAB是一个非常强大的科学计算软件,它具有很多功能,其中包括神经网络的实现。
神经网络是一种基于简单神经元相互连接的模型,用于进行数据分类、预测、模式识别等任务。
在本篇文章中,我们将介绍MATLAB神经网络的基础和其实现。
1. 神经网络的基础神经网络是由多个神经元组成的,每个神经元都有一个输入和一个输出,在神经网络中,每个神经元的输出可以作为其他神经元的输入。
神经元之间的连接可以有不同的权重,这些权重决定了神经元之间信息传递的强度。
神经网络可以分为很多种,例如感知机、递归神经网络、卷积神经网络等。
2. MATLAB神经网络工具箱的实现MATLAB神经网络工具箱是一个扩展的MATLAB工具箱,它提供了基于神经网络的解决方案,可以用于分类、回归等多种任务。
在MATLAB神经网络工具箱中,有很多函数可以用来构建神经网络,其中最常用到的是“feedforwardnet”。
“feedforwardnet”函数用于构建前馈神经网络,该函数的语法如下:net = feedforwardnet(hiddenSizes)其中,“hiddenSizes”是一个数组,用于指定神经网络中隐藏层的大小。
例如,如果要构建一个具有10个隐藏层节点的神经网络,可以使用以下语句:net = feedforwardnet([10]);构建神经网络之后,需要训练它以适应特定的任务。
MATLAB神经网络工具箱提供了很多训练算法,例如误差逆传播算法、遗传算法等。
其中最常用到的训练算法是“trainlm”。
“trainlm”函数用于使用Levenberg-Marquardt算法训练神经网络,该函数的语法如下:net = trainlm(net,inputs,targets)其中,“inputs”是一个输入数据矩阵,“targets”是一个目标数据矩阵,用于训练神经网络。
“人工神经网络”教学中的Matlab仿真工程实践
The Ap ia i n o o lBa e n BP ur lNe wo k i plc to fM da s d o Ne a t r n ANN a h ng Te c i
图 2B P神经 网络结构 图
利用人 工 神 经 网络 建 立 海 产 食 品 的风 险 分 析 模 型有很 大 的优 越 性 , 先 , 种 方法 是 开 放 的 , 首 这 输 入输 出 的调整 比较灵 活 , 比较 适 合 目前 海 产 食 品种 类 繁多 的行 业 现状 。神 经 网络 模 型 的调 整 具 有 很 大 的灵活 性 。模 型 的 建立 依 赖 于 训 练 的样 本 , 本 样
s o h rh tcu e a d sr cu e, rt nd k yt c oo y i eal h ws t e ac i tr n tu t r me isa e e hn l g n d t i。Fia l e n ly,t e p p rt sst lo ih o h h a e e t hea g rt m ft e s se t r u h s me a t a aa,a d t e r s lss o t a hi d li t ih a c r c n i d e s l to y tm h o g o c u ld t n h e u t h w h tt smo a swih h g c u a y a d fn sa n w ou in b t e he c a s a d a p i ain. ewe n t l s n p lc to Ke wo ds:BP e r lnewo k;rs n l ss;Mal b;n n l e r y r n u a t r i k a a y i ta o —i a n
人工神经网络matlab程序
神经网络MATLAB程序%根据预测方法得到输入向量和目标向量P=[0.4413 0.4707 0.6953 0.8133 0.4379 0.4677 0.6981 0.8002 0.4517 0.4725 0.7006 0.8201;0.4379 0.4677 0.6981 0.8002 0.4517 0.4725 0.7006 0.8201 0.4557 0.4790 0.7019 0.8211;0.4517 0.4725 0.7006 0.8201 0.4557 0.4790 0.7019 0.8211 0.4601 0.4811 0.7101 0.8298;]';T=[0.4557 0.4790 0.7019 0.8211;0.4601 0.4811 0.7101 0.8298;0.4612 0.4845 0.7188 0.8312]';%输入向量的取值范围为[0 1],用threshold来标记threshold=[0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1];%创建一个Elman神经网络,隐含层的神经元个数为17个,4个输出层神经元,隐含层激活函%数为tansig,输出层激活函数为purelinnet=newelm(threshold,[17,4],{'tansig','purelin'});net.trainParam.epochs=3000;net=init(net);net=train(net,P,T);%输入测试数据P_test=[0.4557 0.4790 0.7019 0.8211 0.4601 0.4811 0.7101 0.8298 0.4612 0.4845 0.7188 0.8312]';T_test=[0.4615 0.4891 0.7201 0.8330]';y=sim(net,P_test)%在测试数据下,计算网络的输出和实际目标向量之间的差值error=y-T_test;%在坐标平面上画出差值曲线plot(1:4,error,'-');程序运行后,结果如图2-29所示,命令行窗口中的结果如下:……TRAINGDX, Epoch 2950/3000, MSE 2.65822e-005/0, Gradient 0.000916222/1e-006 TRAINGDX, Epoch 2975/3000, MSE 2.64788e-005/0, Gradient 0.000221814/1e-006 TRAINGDX, Epoch 3000/3000, MSE 2.6293e-005/0, Gradient 0.000102435/1e-006 TRAINGDX, Maximum epoch reached, performance goal was not met.y =0.47610.49160.72170.8344Hopfield%数字1的点阵表示one=[-1 -1 -1 1 1 1 1 -1 -1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1];%数字2的点阵表示two=[1 1 1 1 1 1 1 1 -1 -1 1 1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 -1 -1 1 1 1 1 1 1 1 1 -1 -1 1 1 1 1 1 1 1 1 -1 -1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 1 1 1 1 1 -1 -1 1 1 1 1 1 1 1 1 -1 -1];%设定网络的目标向量T=[one;two]';%创建一个Hopfield神经网络net=newhop(T);%给定一个受噪声污染的数字2的点阵,所谓噪声是指数字点阵中某些本应为1的方块变成了-1no2={[1 1 1 -1 1 1 -1 1 -1 -1 1 1 1 1 1 1 1 1 -1 -1 -1 1 -1 1 -1 -1 1 1 -1 -1 -1 -1 1 -1 1 -1 1 1 -1 -1 1 1 1 1 1 1 1 1 -1 -1 1 1 1 1 1 1 1 1 -1 -1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 -1 1 1 1 1 -1 -1 1 1 -1 1 1 1 1 1 -1 -1]'};%对网络进行仿真,网络的仿真步数为5tu2 =sim(net,{1,5},{},no2)%输出仿真结果向量矩阵中的第3列向量,并将其转置tu2{3}'程序运行后,在命令行窗口得到下面的结果:ans =Columns 1 through 211 1 1 1 1 1 1 1 -1 -1 1 1 1 1 1 1 1 1 -1 -1 -1Columns 22 through 42-1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 -1 -1 1 1Columns 43 through 631 1 1 1 1 1 -1 -1 1 1 1 1 1 1 1 1 -1 -1 1 1 -1Columns 64 through 84-1 -1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 1Columns 85 through 1001 1 1 1 -1 -1 1 1 1 1 1 1 1 1 -1 -1由结果可以看出所得到的点阵与数字2的正常点阵是一致的,表明网络可以从受到污染的数字2的点阵中识别出数字2,证明网络是有效的。
(完整word版)神经网络与matlab仿真(word文档良心出品)
神经网络与matlab仿真随着技术的发展,人工神经网络在各个方面应用越来越广泛,由于matlab仿真技术对神经网络的建模起着十分重要的作用,因此,通过讨论神经网络中基础的一类——线性神经网络的matlab仿真,对神经网络的matlab仿真做一个基本的了解。
1.面向matlab工具箱的神经网络设计人工神经网络可通过硬件或软件方式来实现。
硬件方式即神经计算机。
目前较常用的还是软件实现方式。
已有许多公司和研究单位设计了通用的ANN程序以方便人们使用,matlab提供的神经网络工具箱就是其重要代表。
神经网络工具箱是在matlab环境下所开发出来的许多工具箱之一,它是以人工神经网络理论为基础,用matlab语言构造出典型神经网络的激活函数,如S 型、线性、竞争层、饱和线性等激活函数,使设计者对所选定网络输出的计算变成对激活函数的调用。
另外,根据各种典型的修正网络权值的规定,加上网络的训练过程,用matlab编写出各种网络设计与训练所涉及的公式运算、矩阵操作和方程求解等大部分子程序,网络的设计者可以根据自己的需要进行调用,免除了自己编写复杂而庞大的算法程序的困扰,集中精力去思考需要解决的问题,提高工作效率和解题质量。
目前matlab几乎完整地概括了神经网络的基本成果,对于各种网络模型,神经网络工具箱集成了多种学习算法,为用户提供了极大的方便。
同时,matlab的其他工具箱也为我们在神经网络工具箱的基础上开发研究模糊与神经网络的结合、神经网络的样条算法等问题提供了辅助手段。
2 线性神经网络线性神经网络是最简单的一种神经元网络,它可以由一个或多个线性神经元构成。
50年代末期提出的自适应线性元件是线性神经网络最早的典型代表。
其每个神经元的传递函数为线性函数,其输出可以取任意值。
线性神经网络可以采用Widrow-Hoff学习规则,也称为LMS算法来调整网络的权值和阈值。
2.1 线性神经网络模型线性神经元模型的神经元有一个线性传递函数purelin,其输入输出之间是简单的比例关系,一次对单个线性神经元,由图1可得,a=purelin(ω×p+b).因此,线性神经网络允许输出可以取任意值,而不仅仅是0或1。
神经网络与MATLAB仿真 (1)
两次迭代之间的权值变化已经很小
设定最大迭代次数M,当迭代了M次之后算 法就停止迭代
条件的混合使用,防止 出现算法不收敛现象。
2.单层感知器的学习算法
确定学习率
不应当过大,以便为输入向量提供一个比较稳 定的权值估计
不应当过小,以便使权值能够根据输入的向量x 实时变化,体现误差对权值的修正作用
P=[ -9, 1, -12, -4, 0, 5;...
15, -8, 4, 5, 11, 9]; d=[0,1,0,0,0,1]; % 期望输出
P=[ones(1,6);P]; P
P=
1 -9 15
1
1
1 -4 5
1 0 11
1 5 9
1 -12 -8 4
%% (2)显示要分类的点 figure; subplot(2,1,1); 类结果 plot([-9 , -12 -4 hold on; plot([1,5],[-8,9],'*'); axis([-13,6,-10,16]); legend('第一类','第二类'); title('6个坐标点的二分类'); % 显示待分类的点和分 0],[15, 4 5 11],'o');
2.单层感知器的学习算法
在实际应用中 ,通常采用纠错学习规则的学习算法。 将偏置作为一个固定输入
x0=1 x1 x2
... ...
1
2
0 =b
xi xN
输入 权值
i
N
T
f
y
x (n) 1, x1 (n), x2 (n), , xN (n)
ω(n) b(n), 1 (n), 2 (n), , N (n)
MATLAB程序代码-人工神经网络及其项目工程应用
MATLAB程序代码--人工神经网络及其工程应用目录第一章人工神经网络 (3)§1.1人工神经网络简介 (3)1.1 人工神经网络的起源 (3)1.2 人工神经网络的特点及应用 (3)§1.2人工神经网络的结构 (4)2.1 神经元及其特性 (5)2.2 神经网络的基本类型 (6)2.2.1 人工神经网络的基本特性 (6)2.2.2 人工神经网络的基本结构 (6)2.2.3 人工神经网络的主要学习算法 (7)§1.3人工神经网络的典型模型 (7)3.1 Hopfield网络 (7)3.2 反向传播(BP)网络 (8)3.3 Kohonen网络 (8)3.4 自适应共振理论(ART) (9)3.5 学习矢量量化(LVQ)网络 (11)§1.4多层前馈神经网络(BP)模型 (12)4.1 BP网络模型特点 (12)4.2 BP网络学习算法 (13)4.2.1信息的正向传递 (13)4.2.2利用梯度下降法求权值变化及误差的反向传播 (14)4.3 网络的训练过程 (15)4.4 BP算法的改进 (15)4.4.1附加动量法 (15)4.4.2自适应学习速率 (16)4.4.3动量-自适应学习速率调整算法 (17)4.5 网络的设计 (17)4.5.1网络的层数 (17)4.5.2隐含层的神经元数 (17)4.5.3初始权值的选取 (17)4.5.4学习速率 (17)§1.5软件的实现 (18)第二章遗传算法 (19)§2.1遗传算法简介 (19)§2.2遗传算法的特点 (19)§2.3遗传算法的操作程序 (20)§2.4遗传算法的设计 (20)第三章基于神经网络的水布垭面板堆石坝变形控制与预测§3.1概述 (23)§3.2样本的选取 (24)§3.3神经网络结构的确定 (25)§3.4样本的预处理与网络的训练 (25)4.1 样本的预处理 (25)4.2 网络的训练 (26)§3.5水布垭面板堆石坝垂直压缩模量的控制与变形的预测 (30)5.1 面板堆石坝堆石体垂直压缩模量的控制 (30)5.2 水布垭面板堆石坝变形的预测 (35)5.3 BP网络与COPEL公司及国内的经验公式的预测结果比较 (35)§3.6结论与建议 (38)第四章BP网络与遗传算法在面板堆石坝设计参数控制中的应用§4.1概述 (39)§4.2遗传算法的程序设计与计算 (39)§4.3结论与建议 (40)参考文献 (41)第一章人工神经网络§1.1人工神经网络简介1.1人工神经网络的起源人工神经网络(Artificial Neural Network,简称ANN)研究的先锋,美国心理学家Warren S McCulloch和数学家Walter H Pitts曾于1943年提出一种叫做“似脑机器”(mindlike machine)的思想,这种机器可由基于生物神经元特性的互连模型来制造,这就是神经学网络的概念。
[医学]BP人工神经网络及matlab实现
David Rumelhart
J. McClelland
BP算法基本原理
利用输出后的误差来估计输出层的直接前导层的误差, 再用这个误差估计更前一层的误差,如此一层一层的 反传下去,就获得了所有其他各层的误差估计。
2006-12-6
北京科技大学 自动化系
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
人工神经网络作业M A T L A B仿真(共3篇)-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII人工神经网络仿真作业(3篇)人工神经网络仿真作业1:三级倒立摆的神经网络控制人工神经网络仿真作业2:基于模型整体逼近的机器人RBF网络自适应控制人工神经网络仿真作业3:基于RBF的机械手无需模型自适应控制研究神经网络仿真作业1:三级倒立摆的神经网络控制摘要:建立了基于人工神经网络改进BP 算法的三级倒立摆的数学模型,并给出了BP 网络结构,利用Matlab 软件进行训练仿真,结果表明,改进的BP 算法控制倒立摆精度高、收敛快,在非线性控制、鲁棒控制等领域具有良好的应用前景。
1.引言倒立摆系统的研究开始于19世纪50年代,它是一个典型的非线性、高阶次、多变量、强耦合和绝对不稳定系统.许多抽象的控制概念,如系统的稳定性、可控性、系统的收敛速度和抗干扰能力都可以通过倒立摆直观地表现出来。
随着现代控制理论的发展,倒立摆的研究对于火箭飞行控制和机器人控制等现代高科技的研究具有重要的实践意义。
目前比较常见的倒立摆稳定控制方法有线性控制,如LQR,LQY 等;智能控制,如变论域自适应模糊控制,遗传算法,预测控制等。
2.系统的数学模型2.1三级倒立摆的模型及参数三级倒立摆主要由小车,摆1、摆2、摆3组成,它们之间自由链接。
小车可以在水平导轨上左右平移,摆杆可以在铅垂平面内运动,将其置于坐标系后如图1 所示:规定顺时针方向的转角和力矩均为正。
此外,约定以下记号:u 为外界作用力,x 为小车位移,i (i =1,2,3)为摆i 与铅垂线方向的夹角, i O 分别为摆i 的链接点位置。
其它的系统参数说明如下:0m -- 小车系统等效质量; 2l -- 二摆质心至旋转轴之间的距离;1m -- 一摆质量; 3l -- 三摆质心至旋转轴之间的距离; 2m-- 二摆质量; 1L -- 一、二摆之间的距离;3m -- 三摆质量; 2L -- 二、三摆之间的距离;1J -- 一摆对其质心处转动惯量; 0f -- 小车系统的摩擦系数;2J -- 二摆对其质心处转动惯量; 1f -- 一摆转轴处的摩擦阻力矩系数; 3J -- 三摆对其质心处转动惯量; 2f -- 二摆转轴处的摩擦阻力矩系数;1l -- 一摆质心至旋转轴之间的距离; 3f -- 三摆转轴处的摩擦阻力矩系数。
2.2三级倒立摆的非线性模型为:000),,(),,,,,(),,(0321321321321321321U G N Z F Z M ++=θθθθθθθθθθθθθθθθθθ 其中01231121311222112111112131123223222212131221333331312232233132212()cos ()cos (,,)()cos cos()cos()cos cos()()cos cos cos(m m m m m l m L m L m l m L J m l m L m L M m l m L m l L m L L m l m l L m l m L m l L m l L θθθθθθθθθθθθθθθθ+++++⎡⎢++++⎢=⎢+-+-⎢-⎣+-13122133131222223233232233332333)cos()cos()cos()cos()m L L m l L J m l m L m l L m l L J m l θθθθθθθθθ⎤⎥+--⎥⎥++-⎥-+⎦011213111121231232221312121331131223222333322232331313233()sin 0()(,,,,,)0()sin()0sin()()sin sin ()sin()()f m l m L m L f f F f m l L m L L m l L m l m L m l f m l m L m l L f f f m l θθθθθθθθθθθθθθθθθθθθ⎡-++⋅⎢-+⎢=⎢-+⋅-⎢--⎢⎣+⋅⋅⋅++--++3233233322323sin()sin()L f m l L f θθθθθθ⎤⎥⎥⎥-⎥---⎥⎦112131112223223330()sin (,)()sin sin m l m L m L N m l m L g m l g θθθθθ⎡⎤⎢⎥++⎢⎥=⎢⎥+⎢⎥⎢⎥⎣⎦, 100T G = 3.神经网络控制器的设计3.1 BP 神经网络人工神经网络(ANN)由于具有信息的分布存储、并行处理以及自学习能力等优点,在信息处理、模式识别、智能控制及系统建模等领域得到越来越广泛的应用。
近年来,已有多种ANN 模型被提出并得以深入研究。
其中,80%~90%的人工神经网络模型是采用BP 网络或它的改进形式,它是前向网络的核心部分,体现了网络最精华的部分。
标准的BP 网络是根据Widrow -Hoff 规则,采用梯度下降算法,主要由信息信号的正向传播和误差信号的反向传播两部分组成。
BP神经网络在未经任何训练的情况下,不能作为系统控制器使用。
训练样本数的多少对训练结果有很大影响。
样本数越多,网络训练结果越精确,但运行时间加长,计算成本也增加,所以合理选择样本数据非常重要。
在实际仿真过程中,经过试探训练样本数为5000时结果较为合理,此时样本数据能够反映系统的基本特征,可以得到预期的仿真结果。
3.2控制程序整个的程序设计如下:p=[x3_1';x3_2';x3_3';x3_4';x3_5';x3_6';x3_7';x3_8'];u=x_u';%%初始化训练数据net=newff(minmax(p),[8,1],{'tansig','purelin'},'trainlm');%%生成一个两层的神经网络,第一层的传递函数为,第二层的传递函数为net.trainParam.goal=0.0000001;%%设置与网络训练相关的数据,包括训练精度和最大训练次数net.trainParam.epochs=5000;net=init(net);%%初始化网络net=train(net,p,u);%%根据前面的数据和设置的参数对网络进行训练y=sim(net,p)%%对已经训练好的网络进行仿真,检查所得的网络是否符合要求plot(u,'r')hold on;plot(y,'*')%%将训练所用数据和神经网络仿真的数据画在同一张图上,进行对比gensim(net,-1)%%如果所得到的网络符合要求,则将得到的网络生成一个simulink模块,替代原来的反馈矩阵对倒立摆模型进行控制采用LQR方法对系统进行建模生成系统传递函数程序如下所示:clcclearm0= 1.32822; m1= 0.2200; m2= 0.2200; m3= 0.1870;J1= 0.0049626; J2= 0.0049626; J3 = 0.0048235;d1= 0.304; d2= 0.304; d3= 0.226;D1= 0.49; D2= 0.49;f0= 22.9147; f1= 0.007056;f2= 0.002646; f3= 0.002646;g= 9.81;M=[m0+m1+m2+m3 m1*d1+m2*D1+m3*D1 m2*d2+m3*D2 m3*d3;m1*d1+m2*D1+m3*D1 J1+m1*d1*d1+m2*D1*D1+m3*D1*D1m2*d2*D1+m3*D1*D2 m3*d3*D1;m2*d2+m3*D2 m2*d2*D1+m3*D1*D2J2+m2*d2*d2+m3*D2*D2 m3*d3*D2;m3*d3 m3*d3*D1 m3*d3*D2 J3+m3*d3*d3] M=[1.95522 0.26631 0.15851 0.042262;0.26631 0.12301522 0.0776699 0.02070838;0.15851 0.0776699 0.07019322 0.02070838;0.042262 0.02070838 0.02070838 0.014375212]F=[-f0 0 0 0;0 -f1-f2 f2 0;0 f2 -f2-f3 f3;0 0 f3 -f3]F=[ -22.9147 0 0 0;0 -0.009702 0.002646 0;0 0.002646 -0.005292 0.002646;0 0 0.002646 -0.002646]G=[11.88;0;0;0];Nb=[0 0 0 0;0 m1*d1+m2*D1+m3*D1 0 0;0 0 m2*d2*g+m3*D2*g 0;0 0 0 m3*d3*g]Nb=[ 0 0 0 0;0 0.26631 0 0;0 0 1.553398 0;0 0 0 0.4141676]A22=inv(M)*FA21=inv(M)*NbB2=inv(M)*GA21=inv(M)*NbA22=inv(M)*FB2=inv(M)*GT0=[1 0 0 0 ;0 1 0 0;0 -1 1 0;0 0 -1 1];%T0=eye(4,4)A21=T0*A21*inv(T0);A22=T0*A22*inv(T0);B2=T0*B2;A=[zeros(4,4) eye(4,4);A21 A22]B=[ zeros(4,1);B2 ]C = [ eye(4,4) zeros(4,4) ]D = [zeros(4,1)]%%%LQR%%%%%%%%%Q=diag([100 1 1 1 1 1 1 1]);R = 0.01;K = lqr(A,B,Q,R)Ac = [(A-B*K)];Bc = [B];Cc = [C];Dc = [D];T = 0:0.01:10;U = ones(size(T));sys_c=ss(Ac,Bc,Cc,Dc);[Y,T,X]=lsim(sys_c,U,T);figure(1)plot(T,Y)gridxlabel('time(s)');legend('Cart','PendulumDown','PendulumMiddle','PendulumUp') Nbar= K(1);Cn = [1 0 0 0 0 0 0 0];%sys = ss(A,B,Cn,0);sys_cl = ss(Ac,Bc*Nbar,Cc,Dc);[Y,T,X] = lsim(sys_cl,U,T);figure(2)plot(T,Y)gridxlabel('time(s)');legend('Cart','PendulumDown','PendulumMiddle','PendulumUp')%全维观测器P = [-40 -41 -42 -43 -44 -45 -46 -47];L = place(A',C',P)'Ace = [A-B*K B*K;zeros(size(A)) (A-L*C)];eig(Ace)Bce = [ B*Nbar;zeros(size(B))];Cce = [Cc zeros(size(Cc))];Dce = [0;0;0;0];est_cl = ss(Ace,Bce,Cce,Dce);[Y,T,X] = lsim(est_cl,U,T);figure(3)plot(T,Y)gridxlabel('time(s)');legend('Cart','PendulumDown','PendulumMiddle','PendulumUp')采用Simulink和S函数进行控制系统的设计,系统仿真程序如下所示:图2 Simulink仿真图function[sys,x0,str,ts]=dot2(t,x,u,flag)switch flagcase 0,[sys,x0,str,ts]=mdlInitializeSizes;case 1,sys=mdlDerivatives(t,x,u);case 3,sys=mdlOutputs(t,x,u);case {2,9}sys=[];otherwiseerror(['Unhandled flag = ',num2str(flag)]);endfunction [sys,x0,str,ts]=mdlInitializeSizessizes = simsizes;sizes.NumContStates = 8;sizes.NumDiscStates = 0;sizes.NumOutputs = 8;sizes.NumInputs = 1;sizes.DirFeedthrough = 0;sizes.NumSampleTimes = 1;sys = simsizes(sizes);%x0=[0.05,0.08,0.008,0.009,0,0,0,0]';x0=[0.05,0.08,0.001,0.008,0,0,0,0]';str=[];ts=[0 0];function sys=mdlDerivatives(t,x,u)tao=[-11.88*u;0;0;0];D=[-1.95522 -0.26631*cos(x(2)) -0.15851*cos(x(3)) -0.042262*cos(x(4));-0.26631*cos(x(2)) -0.12301522 -0.0776699*cos(x(3)-x(2)) -0.02070838*cos(x(4)-x(2));-0.15851*cos(x(3)) -0.0776699*cos(x(3)-x(2)) -0.07019322 -0.02070838*cos(x(4)-x(3));-0.042262*cos(x(4)) -0.02070838*cos(x(4)-x(2)) -0.02070838*cos(x(4)-x(3)) -0.014375212];H=[-22.947*x(5)+0.26631*sin(x(2))*x(6)^2+0.15851*sin(x(3))*x(7)^2+0.042262*sin(x(4 ))*x(8)^2;-0.009702*x(6)+0.002646*x(7)+0.0776699*sin(x(3)-x(2))*x(7)^2+0.02070838*sin(x(4)-x(2))*x(8)^2+2.609838*sin(x(2));0.002646*x(6)-0.0776699*sin(x(3)-x(2))*x(6)^2-0.005292*x(7)+0.002646*x(8)+0.02070838*sin(x(4)-x(3))*x(8)^2+1.553398*sin(x(3));-0.02070838*sin(x(4)-x(2))*x(6)^2+0.002646*x(7)-0.02070838*sin(x(4)-x(3))*x(7)^2-0.002646*x(8)+0.4141676*sin(x(4))];sys=[x(5);x(6);x(7);x(8);-inv(D)*H+inv(D)*tao];function sys=mdlOutputs(t,x,u)E=[1 0 0 0 0 0 0 0;0 1 0 0 0 0 0 0;0 -1 1 0 0 0 0 0;0 0 -1 1 0 0 0 0;0 0 0 0 1 0 0 0;0 0 0 0 0 1 0 0;0 0 0 0 0 -1 1 0;0 0 0 0 0 0 -1 1];sys=E*x;图3结果仿真图4.小结通过对一级倒立摆数学模型分析,进行了倒立摆小车改进BP算法的控制系统仿真实验。