文档库 最新最全的文档下载
当前位置:文档库 › BP神经网络程序

BP神经网络程序

BP神经网络程序
BP神经网络程序

x1=rand(1,2000);

x2=rand(1,2000);

y1=x1.^2+x2.^2;

input=[x1',x2'];

output=[y1'];

k=rand(1,2000);

[m,n]=sort(k);

input_train=input(n(1:1900),:)';

output_train=output(n(1:1900),:)';

input_test=input(n(1901:2000),:)';

output_test=output(n(1901:2000),:)';

%训练数据归一化

[inputn,inputps]=mapminmax(input_train); [outputn,outputps]=mapminmax(output_train);

%BP神经网络的构建

net=newff(inputn,outputn,5);

%网络参数配置

net.trainParam.epochs=100;

net.trainParam.goal=0.00004;

net.trainParam.lr=0.1;

%BP神经网络训练

net=train(net,inputn,outputn);

inputn_test=mapminmax('apply',input_test,inputps); %BP神经网络预测输出

An=sim(net,inputn_test);

%输出结果反归一化

BPoutput=mapminmax('reverse',An,outputps);

%网络预测结果图形

figure(1)

plot(BPoutput,':or')

hold on

plot(output_test,'-*');

legend('预测输出','期望输出');

title('BP网络预测输出','fontsize',12);

ylabel('函数输出','fontsize',12);

xlabel('样本','fontsize',12);

%网络预测误差图形

figure(2)

error=[output_test]'-[BPoutput]';

plot(error,'-*')

title('BP网络预测误差','fontsize',12); ylabel('误差','fontsize',12)

xlabel('样本','fontsize',12)

BP神经网络预测的matlab代码

BP神经网络预测的matlab代码附录5: BP神经网络预测的matlab代码: P=[ 0 0.1386 0.2197 0.2773 0.3219 0.3584 0.3892 0.4159 0.4394 0.4605 0.4796 0.4970 0.5278 0.5545 0.5991 0.6089 0.6182 0.6271 0.6356 0.6438 0.6516

0.6592 0.6664 0.6735 0.7222 0.7275 0.7327 0.7378 0.7427 0.7475 0.7522 0.7568 0.7613 0.7657 0.7700] T=[0.4455 0.323 0.4116 0.3255 0.4486 0.2999 0.4926 0.2249 0.4893 0.2357 0.4866 0.2249 0.4819 0.2217 0.4997 0.2269 0.5027 0.217 0.5155 0.1918 0.5058 0.2395 0.4541 0.2408 0.4054 0.2701 0.3942 0.3316 0.2197 0.2963 0.5576 0.1061 0.4956 0.267 0.5126 0.2238 0.5314 0.2083 0.5191 0.208 0.5133 0.1848 0.5089 0.242 0.4812 0.2129 0.4927 0.287 0.4832 0.2742 0.5969 0.2403 0.5056 0.2173 0.5364 0.1994 0.5278 0.2015 0.5164 0.2239 0.4489 0.2404 0.4869 0.2963 0.4898 0.1987 0.5075 0.2917 0.4943 0.2902 ] threshold=[0 1] net=newff(threshold,[11,2],{'tansig','logsig'},'trainlm');

基于BP神经网络的PID控制器的设计

基于BP神经网络的PID控制器的研究与 实现 课程名称:人工神经网络

目录 前言 (3) 一、BP神经网络 (4) 二、模拟PID控制系统 (5) 三、基于BP神经网络的PID控制器 (6) 四、仿真程序 (10) 五、运行结果 (17) 六、总结 (18) 参考文献 (19)

前言 人工神经网络是以一种简单神经元为节点,采用某种网络拓扑结构构成的活性网络,可以用来描述几乎任意的非线性系统。不仅如此,人工神经网络还具有学习能力、记忆能力、计算能力以及各种智能处理能力,在不同程度和层次上模仿人脑神经系统的信息处理、存储和检索的功能。不同领域的科学家,对人工神经网络有着不同的理解、不同的研究内容,并且采用不同的研究方法。对于控制领域的研究工作者来说,人工神经网络的魅力在于:①能够充分逼近任意复杂的非线性关系,从而形成非线性动力学系统,以表示某种被控对象的模型或控制器模型;②能够学习和适应不确定性系统的动态特性;③所有定量或定性的信息都分布储存于网络内的各神经单元,从而具有很强的容错性和鲁棒性;④采用信息的分布式并行处理,可以进行快速大量运算。对于长期困扰控制界的非线性系统和不确定性系统来说,人工神经网络无疑是一种解决问题的有效途径。正因为如此,把人工神经网络引入传统的PID 控制,将这两者结合,则可以在一定程度上解决传统PID 调节器不易在线实时整定参数、难于对一些复杂过程和参数慢时变系统进行有效控制的不足。

一、BP神经网络 BP神经网络是一种有隐含层的多层前馈网络,其结构如图1-1所示。如果把具有M个输入节点和L个输出节点的BP神经网络看成是从M维欧氏空间到L维欧氏空间的非线性映射,则对于具有一定非线性因数的工业过程被控对象,采用BP网络来描述,不失为一种好的选择。在BP神经网络中的神经元多采用S型函数作为活化函数,利用其连续可导性,便于引入最小二乘学习算法,即在网络学习过程中,使网络的输出与期望输出的误差边向后传播边修正加权系数,以期使误差均方值最小。BP神经网络的学习过程可分为前向网络计算和反向误差传播——连接加权系数修正两个部分,这两个部分是相继连续反复进行的,直至误差满足要求。不论学习过程是否已经结束,只要在网络的输入节点加入输入信号,则这些信号将一层一层向前传播;通过每一层时要根据当时的连接加权系数和节点的活化函数与阈值进行相应计算,所得的输出再继续向下一层传输。这个前向网络计算过程,既是网络学习过程的一部分,也是将来网络的工作模式。在学习过程结束之前,如果前向网络计算的输出和期望输出之间存在误差,则转入反向传播,将误差沿着原来的连接通路回送,作为修改加权系数的依据,目标是使误差减小。

基于BP神经网络预测模型指南

基于BP神经网络的国际黄金价格预测模型 公文易文秘资源网顾孟钧张志和陈友2009-1-2 13:35:26我要投稿添加到百度搜藏 [摘要] 为了寻找国际黄金价格与道琼斯工业指数、美国消费者指数,国际黄金储备等因素之间的内在关系,本文对1972年~2006年间的各项数据首先进行归一化处理,利用MATLAB神经网络工具箱进行模拟训练,建立了基于BP神经网络的国际黄金价格预测模型 [摘要] 为了寻找国际黄金价格与道琼斯工业指数、美国消费者指数,国际黄金储备等因素之间的内在关系,本文对1972年~2006年间的各项数据首先进行归一化处理,利用MATLAB神经网络工具箱进行模拟训练,建立了基于BP神经网络的国际黄金价格预测模型。 [关键词] MATLAB BP神经网络预测模型数据归一化 一、引言 自20世纪70年代初以来的30多年里,世界黄金价格出现了令人瞠目的剧烈变动。20 世纪70年代初,每盎司黄金价格仅为30多美元。80年代初,黄金暴涨到每盎司近700美元。本世纪初,黄金价格处于每盎司270美元左右,此后逐年攀升,到2006年5月12日达到了26年高点,每盎司730美元,此后又暴跌,仅一个月时间内就下跌了约160美元,跌幅高达21.9%。最近两年,黄金价格一度冲高到每盎司900多美元。黄金价格起伏如此之大,本文根据国际黄金价格的影响因素,通过BP神经网络预测模型来预测长期黄金价格。 二、影响因素 刘曙光和胡再勇证实将观察期延长为1972年~2006年时,则影响黄金价格的主要因素扩展至包含道琼斯指数、美国消费者价格指数、美元名义有效汇率、美国联邦基金利率和世界黄金储备5个因素。本文利用此观点,根据1972年~2006年各因素的值来建立神经网络预测模型。 三、模型构建

BP神经网络实验 Matlab

计算智能实验报告 实验名称:BP神经网络算法实验 班级名称: 2010级软工三班 专业:软件工程 姓名:李XX 学号: XXXXXX2010090

一、实验目的 1)编程实现BP神经网络算法; 2)探究BP算法中学习因子算法收敛趋势、收敛速度之间的关系; 3)修改训练后BP神经网络部分连接权值,分析连接权值修改前和修改后对相同测试样本测试结果,理解神经网络分布存储等特点。 二、实验要求 按照下面的要求操作,然后分析不同操作后网络输出结果。 1)可修改学习因子 2)可任意指定隐单元层数 3)可任意指定输入层、隐含层、输出层的单元数 4)可指定最大允许误差ε 5)可输入学习样本(增加样本) 6)可存储训练后的网络各神经元之间的连接权值矩阵; 7)修改训练后的BP神经网络部分连接权值,分析连接权值修改前和修改后对相同测试样本测试结果。 三、实验原理 1 明确BP神经网络算法的基本思想如下: 在BPNN中,后向传播是一种学习算法,体现为BPNN的训练过程,该过程是需要教师指导的;前馈型网络是一种结构,体现为BPNN的网络构架 反向传播算法通过迭代处理的方式,不断地调整连接神经元的网络权重,使得最终输出结果和预期结果的误差最小 BPNN是一种典型的神经网络,广泛应用于各种分类系统,它也包括了训练和使用两个阶段。由于训练阶段是BPNN能够投入使用的基础和前提,而使用阶段本身是一个非常简单的过程,也就是给出输入,BPNN会根据已经训练好的参数进行运算,得到输出结果 2 明确BP神经网络算法步骤和流程如下: 1初始化网络权值 2由给定的输入输出模式对计算隐层、输出层各单元输出 3计算新的连接权及阀值, 4选取下一个输入模式对返回第2步反复训练直到网络设输出误差达到要求结束训练。

bp神经网络及matlab实现讲解学习

b p神经网络及m a t l a b实现

图1. 人工神经元模型 图中x1~xn是从其他神经元传来的输入信号,wij表示表示从神经元j到神经元i的连接权值,θ表示一个阈值 ( threshold ),或称为偏置( bias )。则神经元i的输出与输入的关系表示为: 图中 yi表示神经元i的输出,函数f称为激活函数 ( Activation Function )或转移函数 ( Transfer Function ) ,net称为净激活(net activation)。若将阈值看成是神经元i的一个输入x0的权重wi0,则上面的式子可以简化为: 若用X表示输入向量,用W表示权重向量,即: X = [ x0 , x1 , x2 , ....... , xn ]

则神经元的输出可以表示为向量相乘的形式: 若神经元的净激活net为正,称该神经元处于激活状态或兴奋状态(fire),若净激活net为负,则称神经元处于抑制状态。 图1中的这种“阈值加权和”的神经元模型称为M-P模型 ( McCulloch-Pitts Model ),也称为神经网络的一个处理单元( PE, Processing Element )。 2. 常用激活函数 激活函数的选择是构建神经网络过程中的重要环节,下面简要介绍常用的激活函数。 (1) 线性函数 ( Liner Function ) (2) 斜面函数 ( Ramp Function ) (3) 阈值函数 ( Threshold Function ) 以上3个激活函数都属于线性函数,下面介绍两个常用的非线性激活函数。 (4) S形函数 ( Sigmoid Function ) 该函数的导函数:

用matlab编BP神经网络预测程序加一个优秀程序

求用matlab编BP神经网络预测程序 求一用matlab编的程序 P=[。。。];输入T=[。。。];输出 % 创建一个新的前向神经网络 net_1=newff(minmax(P),[10,1],{'tansig','purelin'},'traingdm') % 当前输入层权值和阈值 inputWeights=net_1.IW{1,1} inputbias=net_1.b{1} % 当前网络层权值和阈值 layerWeights=net_1.LW{2,1} layerbias=net_1.b{2} % 设置训练参数 net_1.trainParam.show = 50; net_1.trainParam.lr = 0.05; net_1.trainParam.mc = 0.9; net_1.trainParam.epochs = 10000; net_1.trainParam.goal = 1e-3; % 调用TRAINGDM 算法训练BP 网络 [net_1,tr]=train(net_1,P,T); % 对BP 网络进行仿真 A = sim(net_1,P); % 计算仿真误差 E = T - A; MSE=mse(E) x=[。。。]';%测试 sim(net_1,x) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 不可能啊我2009 28对初学神经网络者的小提示

第二步:掌握如下算法: 2.最小均方误差,这个原理是下面提到的神经网络学习算法的理论核心,入门者要先看《高等数学》(高等教育出版社,同济大学版)第8章的第十节:“最小二乘法”。 3.在第2步的基础上看Hebb学习算法、SOM和K-近邻算法,上述算法都是在最小均方误差基础上的改进算法,参考书籍是《神经网络原理》(机械工业出版社,Simon Haykin著,中英文都有)、《人工神经网络与模拟进化计算》(清华大学出版社,阎平凡,张长水著)、《模式分类》(机械工业出版社,Richard O. Duda等著,中英文都有)、《神经网络设计》(机械工业出版社,Martin T. Hargan等著,中英文都有)。 4.ART(自适应谐振理论),该算法的最通俗易懂的读物就是《神经网络设计》(机械工业出版社,Martin T. Hargan等著,中英文都有)的第15和16章。若看理论分析较费劲可直接编程实现一下16.2.7节的ART1算法小节中的算法. 4.BP算法,初学者若对误差反传的分析过程理解吃力可先跳过理论分析和证明的内容,直接利用最后的学习规则编个小程序并测试,建议看《机器学习》(机械工业出版社,Tom M. Mitchell著,中英文都有)的第4章和《神经网络设计》(机械工业出版社,Martin T. Hargan等著,中英文都有)的第11章。 BP神经网络Matlab实例(1) 分类:Matlab实例 采用Matlab工具箱函数建立神经网络,对一些基本的神经网络参数进行了说明,深入了解参考Matlab帮助文档。 % 例1 采用动量梯度下降算法训练BP 网络。 % 训练样本定义如下: % 输入矢量为 % p =[-1 -2 3 1 % -1 1 5 -3] % 目标矢量为t = [-1 -1 1 1] close all clear clc % --------------------------------------------------------------- % NEWFF——生成一个新的前向神经网络,函数格式: % net = newff(PR,[S1 S2...SNl],{TF1 TF2...TFNl},BTF,BLF,PF) takes, % PR -- R x 2 matrix of min and max values for R input elements % (对于R维输入,PR是一个R x 2 的矩阵,每一行是相应输入的

基于BP神经网络PID整定原理和算法步骤

摘要 神经网络作为一门新兴的信息处理科学,是对人脑若干基本特性的抽象和模拟。它是以人的大脑工作模式为基础,研究自适应及非程序的信息处理方法。这种工作机制的特点表现为通过网络中大量神经元的作用来体现自身的处理功能,从模拟人脑的结构和单个神经元功能出发,达到模拟人脑处理信息的目的。 目前,在国民经济和国防科技现代化建设中神经网络具有广阔的应用领域和发展前景,其应用领域主要表现在信息领域、自动化领域、工程领域和经济领域等。 本文以BP神经网络作为研究对象。研究的内容主要有:首先介绍了神经网络的概念、控制结构,学习方式等。其次,介绍了人工神经元模型,并对BP神经网络的基本原理及推导过程进行详细阐述。再次将BP神经网络的算法应用于PID 中,介绍了基于BP神经网络PID整定原理和算法步骤。最后利用 MATLAB/Simulink 对BP神经网络PID控制系统进行仿真,得出BP神经网络的控制效果明显好,它具有很强的自整定,自适应功能。 关键词:BP算法,PID控制,自整定

ABSTRACT As a kind of emerging information processing science,the neural network can simulate some basic characteristic of human brain. It is an information-processed method which takes person's cerebrum working pattern as a foundation and studies the model of adaptive and non- program. The characteristics of this kind of work mechanism are that it can show its processing function through the massive neurons function in the network. Then, it starts with simulating the human brain structure and the single neuron function to achieve the goal that simulates the human brain to process information. Nowadays, the neural network has wide application fields and prospects in the national economy and modernization of national defense science. It mainly applies in information, automation, economical and so on. This article takes the BP neural network as the research object. The content of the research mainly contain: firstly, it introduces the concept of neural network, control structure and mode of study and so on. Secondly, it introduces the artificial neuron model, the basic principles of BP neural network and the derivation process in detail. Then, it applies BP neural network in the PID, and introduces the tuning principles of PID based the BP neural network and steps of the algorithm. Finally, Matlab/Simulink is used to simulate the BP neural network PID control system. In the consequence, the performance of BP neutral network control significantly good. BP neural network control system has a strong self-tuning, adaptive function. KEY WORDS: BP algorithm, PID control, self-tuning

MATLAB基于BP神经网络PID控制程序

MATLAB基于BP神经网络PID控制程序>> %BP based PID Control clear all; close all; xite=0.20; %学习速率 alfa=0.01; %惯性因子 IN=4;H=5;Out=3; %NN Structure wi=[-0.6394 -0.2696 -0.3756 -0.7023; -0.8603 -0.2013 -0.5024 -0.2596; -1.0749 0.5543 -1.6820 -0.5437; -0.3625 -0.0724 -0.6463 -0.2859; 0.1425 0.0279 -0.5406 -0.7660]; %wi=0.50*rands(H,IN); %隐含层加权系数wi初始化 wi_1=wi;wi_2=wi;wi_3=wi; wo=[0.7576 0.2616 0.5820 -0.1416 -0.1325; -0.1146 0.2949 0.8352 0.2205 0.4508; 0.7201 0.4566 0.7672 0.4962 0.3632]; %wo=0.50*rands(Out,H); %输出层加权系数wo初始化 wo_1=wo;wo_2=wo;wo_3=wo; ts=20; %采样周期取值 x=[0,0,0]; %比例,积分,微分赋初值 u_1=0;u_2=0;u_3=0;u_4=0;u_5=0; y_1=0;y_2=0;y_3=0; Oh=zeros(H,1); %Output from NN middle layer 隐含层的输出I=Oh; %Input to NN middle layer 隐含层输入 error_2=0; error_1=0; for k=1:1:500 %仿真开始,共500步 time(k)=k*ts;

BP神经网络matlab源程序代码

close all clear echo on clc % NEWFF——生成一个新的前向神经网络 % TRAIN——对 BP 神经网络进行训练 % SIM——对 BP 神经网络进行仿真 % 定义训练样本 % P为输入矢量 P=[0.7317 0.6790 0.5710 0.5673 0.5948;0.6790 0.5710 0.5673 0.5948 0.6292; ... 0.5710 0.5673 0.5948 0.6292 0.6488;0.5673 0.5948 0.6292 0.6488 0.6130; ... 0.5948 0.6292 0.6488 0.6130 0.5654; 0.6292 0.6488 0.6130 0.5654 0.5567; ... 0.6488 0.6130 0.5654 0.5567 0.5673;0.6130 0.5654 0.5567 0.5673 0.5976; ... 0.5654 0.5567 0.5673 0.5976 0.6269;0.5567 0.5673 0.5976 0.6269 0.6274; ... 0.5673 0.5976 0.6269 0.6274 0.6301;0.5976 0.6269 0.6274 0.6301 0.5803; ... 0.6269 0.6274 0.6301 0.5803 0.6668;0.6274 0.6301 0.5803 0.6668 0.6896; ... 0.6301 0.5803 0.6668 0.6896 0.7497]; % T为目标矢量 T=[0.6292 0.6488 0.6130 0.5654 0.5567 0.5673 0.5976 ... 0.6269 0.6274 0.6301 0.5803 0.6668 0.6896 0.7497 0.8094]; % Ptest为测试输入矢量 Ptest=[0.5803 0.6668 0.6896 0.7497 0.8094;0.6668 0.6896 0.7497 0.8094 0.8722; ... 0.6896 0.7497 0.8094 0.8722 0.9096]; % Ttest为测试目标矢量 Ttest=[0.8722 0.9096 1.0000]; % 创建一个新的前向神经网络 net=newff(minmax(P'),[12,1],{'logsig','purelin'},'traingdm'); % 设置训练参数 net.trainParam.show = 50; net.trainParam.lr = 0.05; net.trainParam.mc = 0.9; net.trainParam.epochs = 5000; net.trainParam.goal = 0.001; % 调用TRAINGDM算法训练 BP 网络 [net,tr]=train(net,P',T); % 对BP网络进行仿真 A=sim(net,P'); figure; plot((1993:2007),T,'-*',(1993:2007),A,'-o'); title('网络的实际输出和仿真输出结果,*为真实值,o为预测值'); xlabel('年份'); ylabel('客运量'); % 对BP网络进行测试 A1=sim(net,Ptest');

基于Bp神经网络的股票预测

基于神经网络的股票预测 【摘要】: 股票分析和预测是一个复杂的研究领域,本论文将股票技术分析理论与人工神经网络相结合,针对股票市场这一非线性系统,运用BP神经网络,研究基于历史数据分析的股票预测模型,同时,对单只股票短期收盘价格的预测进行深入的理论分析和实证研究。本文探讨了BP神经网络的模型与结构、BP算法的学习规则、权值和阈值等,构建了基于BP神经网络的股票短期预测模型,研究了神经网络的模式、泛化能力等问题。并且,利用搭建起的BP神经网络预测模型,采用多输入单输出、单隐含层的系统,用前五天的价格来预测第六天的价格。对于网络的训练,选用学习率可变的动量BP算法,同时,对网络结构进行了隐含层节点的优化,多次尝试,确定最为合理、可行的隐含层节点数,从而有效地解决了神经网络隐含层节点的选取问题。 【abstract] Stock analysis and forecasting is a complex field of study. The paper will make research on stock prediction model based on the analysis of historical data, using BP neural network and technical analysis theory. At the same time, making in-depth theoretical analysis and empirical studies on the short-term closing price forecasts of single stock. Secondly, making research on the model and structure of BP neural network, learning rules, weights of BP algorithm and so on, building a stock short-term forecasting model based on the BP neural network, related with the model of neural network and the ability of generalization. Moreover, using system of multiple-input single-output and single hidden layer, to forecast the sixth day price by BP neural network forecasting model structured. The network of training is chosen BP algorithm of traingdx, while making optimization on the node numbers of the hidden layer by several attempts. Thereby resolve effectively the problem of it. 【关键词】BP神经网络股票预测分析 1.引言 股票市场是一个不稳定的非线性动态变化的复杂系统,股价的变动受众多因素的影响。影响股价的因素可简单地分为两类,一类是公司基本面的因素,另一类是股票技术面的因素,虽然股票的价值是公司未来现金流的折现,由公司的基本面所决定,但是由于公司基本面的数据更新时间慢,且很多时候并不能客观反映公司的实际状况,采用适当数学模型就能在一定

bp神经网络详解

学习是神经网络一种最重要也最令人注目的特点。在神经网络的发展进程中,学习算法的研究有着十分重要的地位。目前,人们所提出的神经网络模型都是和学习算法相应的。所以,有时人们并不去祈求对模型和算法进行严格的定义或区分。有的模型可以有多种算法.而有的算法可能可用于多种模型。不过,有时人们也称算法为模型。 自从40年代Hebb提出的学习规则以来,人们相继提出了各种各样的学习算法。其中以在1986年Rumelhart等提出的误差反向传播法,即BP(error BackPropagation)法影响最为广泛。直到今天,BP算法仍然是自动控制上最重要、应用最多的有效算法。 1.2.1 神经网络的学习机理和机构 在神经网络中,对外部环境提供的模式样本进行学习训练,并能存储这种模式,则称为感知器;对外部环境有适应能力,能自动提取外部环境变化特征,则称为认知器。 神经网络在学习中,一般分为有教师和无教师学习两种。感知器采用有教师信号进行学习,而认知器则采用无教师信号学习的。在主要神经网络如BP网络,Hopfield网络,ART网络和Kohonen网络中;BP网络和Hopfield网络是需要教师信号才能进行学习的;而ART网络和 Kohonen网络则无需教师信号就可以学习。所谓教师信号,就是在神经网络学习中由外部提供的模式样本信号。 一、感知器的学习结构 感知器的学习是神经网络最典型的学习。 目前,在控制上应用的是多层前馈网络,这是一种感知器模型,学习算法是BP法,故是有教师学习算法。 一个有教师的学习系统可以用图1—7表示。这种学习系统分成三个部分:输入部,训练部和输出部。 图1-7 神经网络学习系统框图

神经网络算法详解

神经网络算法详解 第0节、引例 本文以Fisher的Iris数据集作为神经网络程序的测试数据集。Iris数据集可以在https://www.wendangku.net/doc/a213786351.html,/wiki/Iris_flower_data_set 找到。这里简要介绍一下Iris数据集: 有一批Iris花,已知这批Iris花可分为3个品种,现需要对其进行分类。不同品种的Iris花的花萼长度、花萼宽度、花瓣长度、花瓣宽度会有差异。我们现有一批已知品种的Iris花的花萼长度、花萼宽度、花瓣长度、花瓣宽度的数据。 一种解决方法是用已有的数据训练一个神经网络用作分类器。 如果你只想用C#或Matlab快速实现神经网络来解决你手头上的问题,或者已经了解神经网络基本原理,请直接跳到第二节——神经网络实现。 第一节、神经网络基本原理 1. 人工神经元( Artificial Neuron )模型 人工神经元是神经网络的基本元素,其原理可以用下图表示: 图1. 人工神经元模型 图中x1~xn是从其他神经元传来的输入信号,wij表示表示从神经元j到神经元i的连接权值,θ表示一个阈值( threshold ),或称为偏置( bias )。则神经元i的输出与输入的关系表示为:

图中yi表示神经元i的输出,函数f称为激活函数 ( Activation Function )或转移函数( Transfer Function ) ,net称为净激活(net activation)。若将阈值看成是神经元i的一个输入x0的权重wi0,则上面的式子可以简化为: 若用X表示输入向量,用W表示权重向量,即: X = [ x0 , x1 , x2 , ....... , xn ] 则神经元的输出可以表示为向量相乘的形式: 若神经元的净激活net为正,称该神经元处于激活状态或兴奋状态(fire),若净激活net 为负,则称神经元处于抑制状态。 图1中的这种“阈值加权和”的神经元模型称为M-P模型 ( McCulloch-Pitts Model ),也称为神经网络的一个处理单元( PE, Processing Element )。 2. 常用激活函数 激活函数的选择是构建神经网络过程中的重要环节,下面简要介绍常用的激活函数。 (1) 线性函数 ( Liner Function ) (2) 斜面函数 ( Ramp Function ) (3) 阈值函数 ( Threshold Function )

BP神经网络整定的PID算法 matlab源程序

BP神经网络整定的PID控制算法matlab源程序,系统为二阶闭环系统。 %BP based PID Control clear all; close all; xite=0.28; alfa=0.001; IN=4;H=5;Out=3; %NN Structure wi=0.50*rands(H,IN); wi_1=wi;wi_2=wi;wi_3=wi; wo=0.50*rands(Out,H); wo_1=wo;wo_2=wo;wo_3=wo; x=[0,0,0]; u_1=0;u_2=0;u_3=0;u_4=0;u_5=0; y_1=0;y_2=0;y_3=0; Oh=zeros(H,1); %Output from NN middle layer I=Oh; %Input to NN middle layer error_2=0; error_1=0; ts=0.01; sys=tf(2.6126,[1,3.201,2.7225]); %建立被控对象传递函数 dsys=c2d(sys,ts,'z'); %把传递函数离散化 [num,den]=tfdata(dsys,'v'); %离散化后提取分子、分母 for k=1:1:2000 time(k)=k*ts; rin(k)=40; yout(k)=-den(2)*y_1-den(3)*y_2+num(2)*u_2+num(3)*u_3; error(k)=rin(k)-yout(k); xi=[rin(k),yout(k),error(k),1]; x(1)=error(k)-error_1; x(2)=error(k);

基于BP神经网络的PID控制系统设计

基于BP神经网络的PID控制系统设计 摘要 本文主要研究一个基于神经网络的自适应PID控制系统的设计方法,利用BP神经网络对被控对象进行在线辨识和控制。基于BP神经网络学习算法设计出两个神经网络模型:一个利用神经网络(NNM)对非线性映射的逼近能力,对被控对象进行辨识,另一个构成具有PID结构的控制器(NNC)。通过神经网络NNM的在线学习和修正,产生对被控对象输出的预测作用,然后由网络NNC实施控制作用,从而实现对辨识对象的PID控制。在利用神经网络对系统进行辨识时,选用白噪声信号作为系统的输入信号,以提高系统的辨识精度;另外,为了得到神经网络控制器的初始化权值,本文在自整定过程中采用常规PID控制器整定方法之一的稳定边界法。在设计过程中运用MATLAB语言工具箱进行编程,并通过SIMULINK动态仿真工具对一阶非线性对象进行了仿真。仿真结果表明了利用神经网络对系统进行辨识的有效性,并用经辨识所得到的输出值取代系统的实际输出值,利用神经网络NNC对系统进行控制,获得了满意的控制效果。 关键词:神经网络,BP学习算法,自适应,参数优化,辨识

1 综述 PID调节器从问世至今已历经了半个多世纪,在这几十年中,人们为它的发展和推广做出了巨大的努力,使之成为工业过程控制中主要的和可靠的技术工具。近几十年来,现代控制理论迅速发展,出现了许多先进的控制算法,但到目前为止,即使在微处理技术迅速发展的今天,过程控制中大部分控制规律都未能离开PID,这充分说明PID控制仍具有很强的生命力。过程工业控制中实际应用最多的仍是常规的PID控制算法,这是因为PID控制具有结构简单、容易实现、控制效果好和鲁棒性强等特点,且PID算法原理简明,参数物理意义明确,理论分析体系完整,为广大控制工程师所熟悉。但在生产现场往往由于参数整定不好而使PID控制器控制效果欠佳,整定的好坏不但会影响到控制质量,而且还会影响到控制器的性能。 PID控制中一个至关重要的问题,就是控制器三参数(比例系数、积分时间、微分时间)的整定。在工业控制中,传统的PID控制至今仍处于主导地位,尤其适用于能建立数学模型的确定性控制系统,然而大量的工业过程往往具有非线性、时变不确定性等因素,难以建立其精确的数学模型,而且,在实际生产现场,由于条件常常受到限制,比如缺乏有关仪器、不允许附加扰动和调试时间短等,因此,PID参数的整定往往难以达到最优状态。并且即使针对某一工作点获得了PID控制的最优参数,由于工业过程对象一般具有时变性,仍存在整个工作范围和保持长期工作最优的问题。PID控制是工业控制中最常用的方法,但用其对具有复杂非线性特性的对象或过程进行控制难以达到满意的效果。针对上述问题,已提出过多种自适应PID控制方法,但由于自适应控制是在被控对象为线性对象的前提下进行研究的,面对工业过程的非线性对象,仍存在不尽人意之处。由于神经网络可在一定条件下逼近非线性,人们自然地将神经网络的方法与PID 控制的结构相结合,产生了基于神经网络的PID控制方法。 人工神经网络(Artificial Neural Network—ANN)是近十几年来迅速地发展起来的一门新兴交叉学科[1]。所谓“人工神经网络”实际上是以一种简单计算—处理单元(即神经元)为节点,采用某种网络拓扑结构构成的活性网络,可以用来描述几乎任意的非线性系统;不仅如此,ANN还具有学习能力、记忆能力、计算能力以及各种智能处理能力,在不同程度和层次上模仿人脑神经系统的信息处理、存储和检索的功能。神经网络具有许多优异的性能,它的可塑性、自适应性和自组织性使它具有很强的学习能力;它

BP神经网络matlab实例

神经网络Matlab p=p1';t=t1'; [pn,minp,maxp,tn,mint,maxt]=premnmx(p,t); %原始数据归一化net=newff(minmax(pn),[5,1],{'tansig','purelin'},'traingdx');%设置网络,建立相应的BP网络 net.trainParam.show=2000; % 训练网络 net.trainParam.lr=0.01; net.trainParam.epochs=100000; net.trainParam.goal=1e-5; [net,tr]=train(net ,pn,tn); %调用TRAINGDM算法训练BP网络 pnew=pnew1'; pnewn=tramnmx(pnew,minp,maxp); anewn=sim(net,pnewn); %对BP网络进行仿真 anew=postmnmx(anewn,mint,maxt); %还原数据 y=anew'; 1、BP网络构建 (1)生成BP网络 = net newff PR S S SNl TF TF TFNl BTF BLF PF (,[1 2...],{ 1 2...},,,) R?维矩阵。 PR:由R维的输入样本最小最大值构成的2

S S SNl:各层的神经元个数。 [1 2...] TF TF TFNl:各层的神经元传递函数。 { 1 2...} BTF:训练用函数的名称。 (2)网络训练 = [,,,,,] (,,,,,,) net tr Y E Pf Af train net P T Pi Ai VV TV (3)网络仿真 = [,,,,] (,,,,) Y Pf Af E perf sim net P Pi Ai T {'tansig','purelin'},'trainrp' BP网络的训练函数 训练方法训练函数 梯度下降法traingd 有动量的梯度下降法traingdm 自适应lr梯度下降法traingda 自适应lr动量梯度下降法traingdx 弹性梯度下降法trainrp Fletcher-Reeves共轭梯度法traincgf Ploak-Ribiere共轭梯度法traincgp Powell-Beale共轭梯度法traincgb 量化共轭梯度法trainscg 拟牛顿算法trainbfg 一步正割算法trainoss Levenberg-Marquardt trainlm

MATLAB基于BP神经网络PID控制程序.pdf

MATLAB基于BP神经网络PID控制程序 >> %BP based PID Control clear all; close all; xite=0.20; %学习速率 alfa=0.01; %惯性因子 IN=4;H=5;Out=3; %NN Structure wi=[-0.6394 -0.2696 -0.3756 -0.7023; -0.8603 -0.XXXX -0.5024 -0.2596; -1.0749 0.5543 -1.6820 -0.5437; -0.3625 -0.0724 -0.6463 -0.2859; 0.1425 0.0279 -0.5406 -0.7660]; %wi=0.50*rands(H,IN); %隐含层加权系数wi初始化 wi_1=wi;wi_2=wi;wi_3=wi; wo=[0.7576 0.2616 0.5820 -0.1416 -0.1325; -0.1146 0.2949 0.8352 0.2205 0.4508; 0.7201 0.4566 0.7672 0.4962 0.3632]; %wo=0.50*rands(Out,H); %输出层加权系数wo初始化 wo_1=wo;wo_2=wo;wo_3=wo; ts=20; %采样周期取值 x=[0,0,0]; %比例,积分,微分赋初值 u_1=0;u_2=0;u_3=0;u_4=0;u_5=0; y_1=0;y_2=0;y_3=0; Oh=zeros(H,1); %Output from NN middle layer 隐含层的输出 I=Oh; %Input to NN middle layer 隐含层输入 error_2=0; error_1=0; for k=1:1:500 %仿真开始,共500步 time(k)=k*ts; rin(k)=1.0; %Delay plant sys=tf(1.2,[208 1],'inputdelay',80); %建立被控对象传递函数? dsys=c2d(sys,ts,'zoh'); %把传递函数离散化? [num,den]=tfdata(dsys,'v'); %离散化后提取分子、分母

数学建模bp神经网络讲解学习

数学建模B P神经网 络论文

BP 神经网络 算法原理: 输入信号i x 通过中间节点(隐层点)作用于输出节点,经过非线形变换,产生输出信号k y ,网络训练的每个样本包括输入向量x 和期望输出量d ,网络输出值y 与期望输出值d 之间的偏差,通过调整输入节点与隐层节点的联接强度取值ij w 和隐层节点与输出节点之间的联接强度jk T 以及阈值,使误差沿梯度方向下降,经过反复学习训练,确定与最小误差相对应的网络参数(权值和阈值),训练即告停止。此时经过训练的神经网络即能对类似样本的输入信息,自行处理输出误差最小的经过非线形转换的信息。 变量定义: 设输入层有n 个神经元,隐含层有p 个神经元,输出层有q 个神经元 输入向量:()12,, ,n x x x x = 隐含层输入向量:()12,,,p hi hi hi hi = 隐含层输出向量:()12,,,p ho ho ho ho = 输出层输入向量:()12,,,q yi yi yi yi = 输出层输出向量:()12,,,q yo yo yo yo = 期望输出向量: ()12,, ,q do d d d = 输入层与中间层的连接权值: ih w 隐含层与输出层的连接权值: ho w 隐含层各神经元的阈值:h b 输出层各神经元的阈值: o b 样本数据个数: 1,2, k m =

激活函数: ()f ? 误差函数:21 1(()())2q o o o e d k yo k ==-∑ 算法步骤: Step1.网络初始化 。给各连接权值分别赋一个区间(-1,1)内的随机数,设定误差函数e ,给定计算精度值ε和最大学习次数M 。 Step2.随机选取第k 个输入样本()12()(),(), ,()n x k x k x k x k =及对应期望输出 ()12()(),(),,()q d k d k d k d k =o Step3.计算隐含层各神经元的输入()1 ()()1,2, ,n h ih i h i hi k w x k b h p ==-=∑和输出 ()()(())1,2, ,h h ho k f hi k h p ==及输出层各神经元的输入 ()1 ()()1,2, p o ho h o h yi k w ho k b o q ==-=∑和输出()()(())1,2, ,o o yo k f yi k o p == Step4.利用网络期望输出和实际输出,计算误差函数对输出层的各神经元的偏导数()o k δ。 o ho o ho yi e e w yi w ???=??? (()) () ()p ho h o o h h ho ho w ho k b yi k ho k w w ?-?==??∑ 2 1 1((()()))2(()())()(()())f (()) () q o o o o o o o o o o o o d k yo k e d k yo k yo k yi yi d k yo k yi k k δ=?-?'==--??'=---∑ Step5.利用隐含层到输出层的连接权值、输出层的()o k δ和隐含层的输出计算误差函数对隐含层各神经元的偏导数()h k δ。

相关文档
相关文档 最新文档