BP神经网络逼近非线性函数
BP神经网络逼近非线性函数

应用BP 神经网络逼近非线性函一、实验要求1、逼近的非线性函数选取为y=sin(x 1)+cos(x 2) ,其中有两个自变量即x1,x2,一个因变量即y。
2、逼近误差<5% ,即:应用测试数据对网络进行测试时,神经网络的输出与期望值的最大误差的绝对值小于期望值的5% 。
3、学习方法为经典的BP 算法或改进形式的BP 算法,鼓励采用改进形式的BP 算法。
4、不允许采用matlab 中现有的关于神经网络建立、学习、仿真的任何函数及命令。
二、实验基本原理2.1神经网络概述BP 神经网络是一种多层前馈神经网络,该网络的主要特点是信号前向传播,误差反向传播。
在前向传递中,输入信号从输入层经隐含层逐层处理,直至输出层。
每一层的神经元状态只影响下一层神经元状态。
如果输出层得不到期望输出,则转入反向传播,根据预判误差调整网络权值和阈值,从而使BP 神经网络预测输出不断逼近期望输出。
BP 神经网络的拓扑结构如图所示。
2.2BP 神经网络训练步骤BP 神经网络预测前首先要训练网络,通过训练使网络具有联想记忆和预测能力。
BP 神经网络的训练过程包括以下几个步骤。
步骤 1 :网络初始化。
根据系统输入输出序列(X,Y) 确定网络输入层节点数n 、隐含层节点数l、输出层节点数m ,初始化输入层、隐含层和输出层神经元之间的连接权值ωij,ωjk ,初始化隐含层阈值a,输出层阈值 b ,给定学习速率和神经元激励函数。
步骤 2 :隐含层输出计算。
根据输入变量X,输入层和隐含层间连接权值ω ij 以及隐含层阈值a,计算隐含层输出H 。
2.3 附加动量法经典 BP 神经网络采用梯度修正法作为权值和阈值的学习算法, 从网络预测误差的负梯 度方向修正权值和阈值, 没有考虑以前经验的积累,学习过程收敛缓慢。
对于这个问题,可 以采用附加动量法来解决,带附加动量的算法学习公式为(k) (k 1) (k) a (k 1) (k 2)式中,ω (k),ω(k-1) ,ω(k-2)分别为 k ,k-1,k-2 时刻的权值; a 为动量学习率,一般取值 为 0.95 。
基于遗传算法的BP网络及其非线性逼近能力研究

【 ywod ] e ei agrh B ew r ; o l erF nt napoc Ke rs G nt l i m;Pn tok N ni a;u ci p rah c ot n o
O 引 言
Ko grv定 理 业 已证 明 , 有 合 适 结 构 . 且 经 过 充 分 学 习 训 l aa mo 具 并
g o a p i m n t e lc l a e a e f u d b d p i g g a intd s e t ag rt m.Co a e t h r d e td s e ta g rt m,t e smu ai n lb lo tmu i h o a r a c n b o n y a o tn r d e e c n l o h i mp d wih t e g a i n e c n lo h r i h i lt o s o h x d ag rt m sf a i l n f ci e h ws t e mie o h i e s b e a d ef tv . l i e
练后的 B P网络 能够 以任 意 精 度 逼 近 有 界 区域 非 线 性 函数 。针 对 B P 在 过 去 的 几 十 年里 , 们 提 出了 诸 多 神 经 网络 模 型 。这 些 模 型 在 网络 ,对 于 闭 区 间 的 一个 连 续 函数 都 可 以用 一 个 隐 含 层 的 B 人 P网 络 逼 图形 图 像 处 理 、 自动 控 制 、 据 挖 掘 、 式 识 别 等 领 域 不 断 得 到 了应 数 模 近 , 成 任 意 的 n维 到 m 维 的 映 射 。本 文神 经 网络 优 化 模 型 采 用 三 层 完 用, 自身 也 不断 改 进 和 发 展 。 其 中 , 向传 播 模 型 ( akPo aai , 这 反 B c rpgt n o B 网络 , 拓 扑 结 构 如 图 2所示 。 其 中 n为 输 入 单 元 数 ,, 网 络 中 P 其 x为 B )是 最 常 见 的也 是 应 用 最 广 泛 的 多 层 前 馈 网 络 模 型 。 这 得 益 于 B P P 第 () 样 本 的输 入 ,, 网 络 中第 () 样 本 的 实 际 输 出 , 为 网 络 第 i个 Y为 i个 网络 较 强 的逼 近能 力 和 分 类 能 力 _ l J 。 i个 是 w B P网 络 的学 习算 法 是 B P算 法 。针对 B P网 络采 用 的算 法 多 是 梯 () 样 本 期 望输 出 。w 输 入 层 与 隐含 层 的 连接 权 值 , 是 隐 含 层 与输 出层 的连 接 权 值 , 隐 单 元 的 阚 值 , 输 出单 元 的 阈值 。 B是 B是 度 下 降法 。梯 度 下 降 法 的 优 点 是 进行 局部 寻 优 时 速 度 很 快 , 是 梯 度 但 输 入层 隐 含屡 输 出层 下 降 法容 易 陷入 局 部 极 小 , 致 其 全局 搜 索 能力 弱 、 优 性 能 不 高 . 导 寻 收 敛 速 度 慢 甚 至 不 收 敛 、 易 陷 入 局 部 极 小 值 , 约 了其 一 定 程 度 的应 容 制 W1 B1 W2 B2 用 。 遗 传 算 法 ( eei Al rh 以 下 简 称 G 是一 种 非 导 数 优 化 的 X 1 G n t gi m, c ot A) ( 期望 输 出 ) 随 机优 化 搜 索 算 法 . 有 很 强 的 全 局搜 索 能 力 和 鲁 棒 性 。 但 是 它 在 寻 具 优 时搜 索 方 向不 停 的 发 生 变 化 , 搜 索 到 全 局 最 优 解 的 代 价 较 大 。研 其 X2 ( 期塑 输 出 ) 究 表 明 , 传 算 法 能 够 以 较 快 的速 度 收 敛 到 全 局 最 优 解 的 9 % . 这 遗 O 在 以后 其 收敛 速 度 明 显 减 慢 。 时 , 传算 法局 部 搜 索 能 力 不 足 , 算 过 同 遗 运 程有 时会 出 现 早 熟 现 象 , 初 始 种 群 的选 择 有 依 赖 性 , 且 并 行 机 制 对 而 的潜 在 能 力 不 容 易 得 到 充分 利 用 。 果 用 GA结 合 B 网络 构 建 模 型 . 如 P ( 望输出 ) 期 用来 训 练 神 经 网络 , 化 神 经 网 络 的权 值 阈值 , 可 以克 服 B 优 既 P算 法 容 ( 闽值 ) 易选 人 局 部 极 小 值 的缺 陷 ,同 时 又 能 克 服 遗 传 算 法 局 部 搜 索 能 力 不 强、 容易 早 熟 的 不 足 , 互取 长 补短 , 遗 传 算 法 优化 后 的 神 经 网 络 具 相 使 图 2 本 文 BP网 络 拓 扑 结构 有 自进 化 、 自适 应 能 力 。本 文采 用 一 种 基 于 自适 应 遗 传 算法 的 神 经 网 对于 B P网 络 的 这 种 前 向 神 经 网 络 训 练采 用 的算 法 是 “ 差 逆 传 误 络学 习算 法 , 用 自适应 遗 传 算 法 在 整 个 权 值 ( 先 阈值 ) 间进 行 粗 略 搜 空 , P算 法 。 准 B 标 P算 法 和 Wirw H f学 习规 则 一 样 是 一 do — of 索 , 后 再 采 用 梯 度 下 降 法 进 行 局 部 的 寻 优 , 终 得 到 问 题 的全 局 最 播 算 法 ” 即 B 然 最
毕业设计-神经网络控制算法仿真设计

摘要目前,由于PID结构简单,可通过调节比例积分和微分取得基本满意的控制性能,广泛应用在电厂的各种控制过程中。
电厂主汽温被控对象是一个大惯性、大迟延、非线性且对象变化的系统,常规汽温控制系统为串级PID控制或导前微分控制,当机组稳定运行时,一般能将主汽温控制在允许的围。
但当运行工况发生较大变化时,却很难保证控制品质。
因此本文研究基于BP神经网络的PID控制,利用神经网络的自学习、非线性和不依赖模型等特性实现PID参数的在线自整定,充分利用PID和神经网络的优点。
本处用一个多层前向神经网络,采用反向传播算法,依据控制要时输出Kp、Ki、Kd,依次作为PID控制器的实时参数,代替传统PID参数靠经验的人工整定和工程整定,以达到对大迟延主气温系统的良好控制。
对这样一个系统在MATLAB平台上进行仿真研究,仿真结果表明基于BP神经网络的自整定PID控制具有良好的自适应能力和自学习能力,对大迟延和变对象的系统可取得良好的控制效果。
关键词:主汽温,PID,BP神经网络,MATLAB仿真ABSTRACTAt present, because PID has a simple structure and can be adjusted proportional 、integral and differential to satisfactory control performance, it is widely used in power plants of various control process. The system of power plant main steam temperature is an large inertia、big time-delayed and nonlinear dynamic system. Conventional steam temperature control system adopted cascade PID control or the differential control of lead before. When the unit is stable, these methods will control the steam temperature in a certain range ,but when operating conditions changed greatly, it is difficult to ensure the quality of control. This article studies PID control based BP neural network . Using such characteristics of neural network self-learning, nonlinear and don't rely on model realize PID parameters auto-tuning. It can make full use of the advantages of PID and neural network. Here, we use a multilayer feedforward neural network using back propagation algorithm. This net can real-time output Kp, Ki, Kd as the PID controller parameters , insteading of the traditional PID parameters determined by experience, so it can obtain good control performance .For such a system ,we can simulate in MATLAB simulation platform. The simulation results show that the PID control based BP neural network has good adaptive ability and self-learning ability. For the system of large delay and free-model can obtain good control effect.KEY WORDS: main steam temperature ,PID ,BP neural network, MATLAB simulation目录摘要 (I)ABSTRACT (II)第一章绪论 (1)1.1 选题背景和意义 (1)1.2 国外研究现状 (1)1.3 立论依据 (5)1.4 本文所做的主要工作 (6)第二章神经网络的基本原理 (8)2.1 人工神经元模型 (8)2.2 神经网络的学习方式和学习规则 (9)2.2.1 神经网络的学习方式 (9)2.2.2 神经网络的学习规则 (9)2.3 神经网络的特点及应用 (10)2.4 BP神经网络 (11)2.4.1 BP神经网络的结构 (11)2.4.2 BP神经网络的算法 (12)2.5 本章小结 (16)第三章基于BP神经网络的PID控制 (17)3.1 PID控制器的离散差分方程 (17)3.2 基于BP神经网络的PID整定原理 (18)3.3 基于BP神经网络的PID控制算法流程 (22)3.4 本章小结 (22)第四章基于BP神经网络的PID控制在主汽温控制系统中的应用 (23)4.1 主汽温的控制任务 (23)4.2 主汽温被控对象的动态特性 (23)4.3 主汽温控制策略 (24)4.3.1 主汽温控制信号的选择 (24)4.3.2 主汽温控制的两种策略 (26)4.4仿真分析 (27)4.5 本章总结 (34)结论与展望 (35)参考文献 (37)致 (39)第一章绪论1.1 选题背景和意义在控制系统设计中,最主要而又最困难的问题是如何针对复杂、变化及具有不确定性的受控对象和环境作出有效的控制决策。
BP网络的优缺点介绍1-1

BP神经网络的优缺点介绍人工神经网络(Artificial Neural Network)又称连接机模型,是在现代神经学、生物学、心理学等学科研究的基础上产生的,它反映了生物神经系统处理外界事物的基本过程,是在模拟人脑神经组织的基础上发展起来的计算系统,是由大量处理单元通过广泛互联而构成的网络体系,它具有生物神经系统的基本特征,在一定程度上反映了人脑功能的若干反映,是对生物系统的某种模拟,具有大规模并行、分布式处理、自组织、自学习等优点,被广泛应用于语音分析、图像识别、数字水印、计算机视觉等很多领域,取得了许多突出的成果。
最近由于人工神经网络的快速发展,它已经成为模式识别的强有力的工具。
神经网络的运用展开了新的领域,解决其它模式识别不能解决的问题,其分类功能特别适合于模式识别与分类的应用。
多层前向BP网络是目前应用最多的一种神经网络形式, 它具备神经网络的普遍优点,但它也不是非常完美的, 为了更好的理解应用神经网络进行问题求解, 这里对它的优缺点展开一些讨论。
首先BP神经网络具有以下优点:1) 非线性映射能力:BP神经网络实质上实现了一个从输入到输出的映射功能,数学理论证明三层的神经网络就能够以任意精度逼近任何非线性连续函数。
这使得其特别适合于求解内部机制复杂的问题,即BP神经网络具有较强的非线性映射能力。
2) 自学习和自适应能力:BP神经网络在训练时,能够通过学习自动提取输出、输出数据间的“合理规则”,并自适应的将学习内容记忆于网络的权值中。
即BP神经网络具有高度自学习和自适应的能力。
3) 泛化能力:所谓泛化能力是指在设计模式分类器时,即要考虑网络在保证对所需分类对象进行正确分类,还要关心网络在经过训练后,能否对未见过的模式或有噪声污染的模式,进行正确的分类。
也即BP神经网络具有将学习成果应用于新知识的能力。
4) 容错能力:BP神经网络在其局部的或者部分的神经元受到破坏后对全局的训练结果不会造成很大的影响,也就是说即使系统在受到局部损伤时还是可以正常工作的。
(采用BP神经网络完成非线性函数的逼近)神经网络

控制系统仿真与模型处理设计报告(采用BP神经网络完成非线性函数的逼近)1、题目要求:(1)确定一种神经网络、网络结构参数和学习算法。
(2)选择适当的训练样本和检验样本,给出选取方法。
(3)训练网络使学习目标误差函数达到0.01,写出学习结束后的网络各参数,并绘制学习之前、第100次学习和学习结束后各期望输出曲线、实际输出曲线。
绘制网络训练过程的目标误差函数曲线。
(4)验证网络的泛化能力,给出网络的泛化误差。
绘制网络检验样本的期望输出曲线和网络输出曲线。
(5)分别改变神经网络的中间节点个数、改变网络的层数、改变学习算法进行比较实验,讨论系统的逼近情况,给出你自己的结论和看法。
2、设计方案:在MATLAB中建立M文件下输入如下命令:x=[0:0.01:1];y=2.2*power(x-0.25,2)+sin(5*pi*x);plot(x,y)xlabel('x');ylabel('y');title('非线性函数');得到如下图形,即所给的非线性函数曲线图:构造一个1-7-1的BP神经网络,第一层为输入层,节点个数为1;第二层为隐层,节点个数为7;变换函数选正切s型函数(tansig);第三层为输出层,节点个数为1,输出层神经元传递函数为purelin函数。
并且选Levenberg-Marquardt算法(trainlm)为BP网络的学习算法。
对于该初始网络,我们选用sim()函数观察网络输出。
继续在M函数中如下输入。
net=newff(minmax(x),[1,7,1],{'tansig','tansig','purelin'},'trainlm'); y1=sim(net,x);figure;plot(x,y,'b',x,y1,'r')title('期望输出与实际输出比较');xlabel('t');则得到以下所示训练的BP网络期望输出与实际输出曲线比较:应用函数train()对网络进行训练之前,需要预先设置训练参数。
神经网络在函数逼近中的应用

二 基于BP神经网络逼近函数 基于BP神经网络逼近函数
步骤1:假设频率参数k=1,绘制要逼近的非线性 步骤1:假设频率参数k=1,绘制要逼近的非线性 函数的曲线。函数的曲线如图1 函数的曲线。函数的曲线如图1所示 k=1; p=[p=[-1:.05:8]; t=1+sin(k*pi/4*p); plot( plot(p,t,'-'); '); title('要逼近的非线性函数'); title('要逼近的非线性函数'); xlabel('时间'); xlabel('时间'); ylabel('非线性函数'); ylabel('非线性函数');
图3 训练过程 从以上结果可以看出,网络训练速度很快,很 快就达到了要求的精度0.001。 快就达到了要求的精度0.001。
步骤4 步骤4: 网络测试 对于训练好的网络进行仿真: y2=sim(net,p); figure; plot(p,t,'plot(p,t,'-',p,y1,':',p,y2, '--') '--') title('训练后网络的输出结果'); title('训练后网络的输出结果'); xlabel('时间'); xlabel('时间'); ylabel('仿真输出'); ylabel('仿真输出'); 绘制网络输出曲线,并与原始非线性函数曲线以 及未训练网络的输出结果曲线相比较,比较出来 的结果如图4 的结果如图4所示。
BP网络在函数逼近中的应用 BP网络在函数逼近中的应用
MATLAB神经网络(2)BP神经网络的非线性系统建模——非线性函数拟合

MATLAB神经⽹络(2)BP神经⽹络的⾮线性系统建模——⾮线性函数拟合2.1 案例背景在⼯程应⽤中经常会遇到⼀些复杂的⾮线性系统,这些系统状态⽅程复杂,难以⽤数学⽅法准确建模。
在这种情况下,可以建⽴BP神经⽹络表达这些⾮线性系统。
该⽅法把未知系统看成是⼀个⿊箱,⾸先⽤系统输⼊输出数据训练BP神经⽹络,使⽹络能够表达该未知函数,然后⽤训练好的BP神经⽹络预测系统输出。
本章拟合的⾮线性函数为y=x12+x22该函数的图形如下图所⽰。
t=-5:0.1:5;[x1,x2] =meshgrid(t);y=x1.^2+x2.^2;surfc(x1,x2,y);shading interpxlabel('x1');ylabel('x2');zlabel('y');title('⾮线性函数');2.2 模型建⽴神经⽹络结构:2-5-1从⾮线性函数中随机得到2000组输⼊输出数据,从中随机选择1900 组作为训练数据,⽤于⽹络训练,100组作为测试数据,⽤于测试⽹络的拟合性能。
2.3 MATLAB实现2.3.1 BP神经⽹络⼯具箱函数newffBP神经⽹络参数设置函数。
net=newff(P, T, S, TF, BTF, BLF, PF, IPF, OPF, DDF)P:输⼊数据矩阵;T:输出数据矩阵;S:隐含层节点数;TF:结点传递函数。
包括硬限幅传递函数hardlim、对称硬限幅传递函数hardlims、线性传递函数purelin、正切型传递函数tansig、对数型传递函数logsig;x=-5:0.1:5;subplot(2,6,[2,3]);y=hardlim(x);plot(x,y,'LineWidth',1.5);title('hardlim');subplot(2,6,[4,5]);y=hardlims(x);plot(x,y,'LineWidth',1.5);title('hardlims');subplot(2,6,[7,8]);y=purelin(x);plot(x,y,'LineWidth',1.5);title('purelin');subplot(2,6,[9,10]);y=tansig(x);plot(x,y,'LineWidth',1.5);title('tansig');subplot(2,6,[11,12]);y=logsig(x);plot(x,y,'LineWidth',1.5);title('logsig');BTF:训练函数。
基于BP神经网络的非线性系统辨识

械工 业 出 版社 ,0 6 20.
作 者 简 介 : 志 勤 (9 1) 男 , 学 硕 士 , 程 师 , 要 从 事 杨 17 一 , 工 工 主 机 电一 体 化 方 面 的研 究 。 收 稿 日期 :08年 4月 8 日 20
2 采用 B P网络 来 实现 非 线性 系统 的辨 识
B P网络 的结构 是 :
1 )多层 网络结 构 : 输入层 、 隐层 和输 出层 ; 2 )传递 函数一 般 为 S型 函数 : ( 一 厂 z)
3 )误差 函数 ;
;
E 一寺∑( —0 ), £ 其中 f , O 分别为期望
性 较 强 的 系统 进 行 辨 识 , 有 一 定 的 适 用 性 。 具
关 键 词 : 识 ; 线 性 系统 ; P神 经 网络 辨 非 B
中图分 类号 : P 1 3 T 8
文 献标志 码 : A 经 网络用 于系 统辨识 具 有 以下 优 点 。 1 )不要求 建立 实 际系统 的辨识 格 式 , 以省去 可
1 )非线 性特性 : 经 网络具 有 逼近 任 意非 线性 神 函数 的能 力 , 为非线 性 系 统 提 供 了一 个 通 用 的 系统 辨识 方法 , 以用来 实现 非线 性系 统控 制 ; 可 2 )并 行 分 布 处 理方 式 : 在神 经 网络 中 , 息是 信
分布 存储 和并行 处 理 的 , 使 它 具有 很 强 的容 错性 这 和很 快 的处理 速度 ; 3 )自学 习和 自适应 能力 : 经 网络 在 训练 时 能 神 够从 输入 输 出数 据 中提 取 出规 律 性 的知 识 , 记忆 在
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
BP神经网络逼近非线性函数3、试用BP神经网络逼近非线性函数
f(u) =
)5.0
u(9.1
e+
-
sin(10u) 其中,u∈[-0.5,0.5]
解题步骤:
①网络建立:使用“net=newff(minmax(x), [20, 1], {'tansig’,’ purelin' });,语句建立个前馈BP神经网络。
该BP神经网络只含个隐含层,且神经元的个数为20。
隐含层和输出层神经元的传递函数分别为tansig和pure-lin。
其他参数默认。
②网络训练:使用“net=train (net, x , y) ;”语句训练建立好的BP神经网络。
当然在网络训练之前必须设置好训练参数。
如设定训练时间为50个单位时间,训练目标的误差小于0.01,用“net.trainParam.epochs=50; net.train-Param.goal=0.01;”,语句实现。
其他参数默认。
③网络仿真:使用“y1=sim(net, x); y2=sim(net, x};”语句仿真训练前后的BP神经网络。
(2)程序如下:
clear all;
x=[-0.5:0.01:0.5];
y=exp(-1.9*(0.5+x)).*sin(10*x);
net=newff(minmax(x),[20,1],{'tansig' 'purelin'});
y1=sim(net,x); %未训练网络的仿真结果net.trainParam.epochs=50;
net.trainParam.goal=0.01;
net=train(net,x,y);
y2=sim(net,x); %训练后网络的仿真结果figure;
plot(x,y,'-',x,y1,'-',x,y2,'--')
title('原函数与网络训练前后的仿真结果比较');
xlabel('x');ylabel('y');
legend('y','y1','y2');
grid on
(3)仿真结果如图:
图1
图1为原函数y与网络训练前后(y1,y2)的仿真结果比较图。
由图1可知,用工具箱函数Newff建立网络时,对权值和阈值的初始化是随机的,所以未训练网络的仿真输出效果很差,并且每次运行的结果也不相同。
训练网络的仿真输出曲线和原始曲线非常接近,这说明训练后的网络对非线性函数的逼近效果很好。
图2
网络训练过程中误差随训练时间的变化迅速减少,在经过0.7个单位时间以后,网络的
误差就达到了逼近要求。