论文范例1(下) 联系客服

发布时间 : 星期一 文章论文范例1(下)更新完毕开始阅读a9a107ec5ef7ba0d4a733b33

哈尔滨工业大学成人教育学院本科毕业论文(设计) 第4章 MATLAB应用工具的使用

4.1 MATLAB概述

MATLAB诞生于20世纪70年代,意为矩阵(M)和实验室(L)的组合,擅长于数值计算,能处理大量的数据,且效率比较高,其核心技术经进一步完善和强化后,许多工程领域的专业人员开始用它构造本领域的专门辅助工具,即MATLAB的各种工具箱。

MATLAB的语言最大的特点是简单和快捷。被称为第四代计算机语言,把人们从繁琐的程序代码中解放出来。

MATLAB产品族是支持从概念设计,算法开发,建模仿真到实时实现的理想的集成环境。无论是进行科学研究还是产品开发,MATLAB产品族都是必不可少的工具,MATLAB的核心是一个基于矩阵运算的快速解释程序,它交互式地接收用户输入的各种命令,输出计算结果。MATLAB提供了一个开放式的集成环境,用户可以运行系统提供的大量命令,包括数值计算,图形绘制,代码编制等。

具体来说,MATLAB具有以下功能:数据可视化功能,矩阵运算功能,大量的工具箱,绘图功能,GUI设计,Simulink仿真等。

用MATLAB神经网络进行短期负荷预测主要考虑三方面的内容,一是神经网络本身网络结构的合理选择和网络初始权值的优化选取;二是所要研究的短期负荷特性,负荷预测就是根据历史的负荷数据推导未来负荷的过程,因此,对预测对象的特性的深入了解是准确预测的前提;三是结合所要研究的具体问题的特性,提出相应的合理的预测模型。神经网络用于短期负荷预测,一个重要的优点就是可以非常方便而全面地考虑对短期负荷有重要影响的天气因素,而不需要对输入变量作相关的假设,体现在网络模型上就是可以方便地将天气因素作为输入变量来寻找其与负荷之间的映射关系。然而映射方式的不同,其预测的效果也不同,这就使得神经网络的预测模型具有某种程度的灵活性,更加需要我们同时研究负荷特性以及神经网络自身的特性,寻找最佳的映射方式。具体到细节上来说,就是需要对研究的历史数据进行预处理,样本数据容量确定,以及对一些相关参数的设定问题。

1

哈尔滨工业大学成人教育学院本科毕业论文(设计) 4.2 面向MATLAB工具箱的神经网络设计概述

4.2.1 MATLAB神经网络工具箱

神经网络工具箱是在MATLAB环境下开发出来的许多工具箱之一,它以人工神经网络理论为基础,用MATLAB语言构造出典型神经网络的激活函数如S型的,线性的等,使设计者对所选定网络输出的计算,变成对激活函数的调用。另外,根据各种典型的修正网络权值的规则,加上网络的训练过程,用MATLAB编写出各种网络设计与训练的子程序,网络的设计者则可以根据自己的需要去调用工具箱中有关神经网络的设计训练程序,使自己能够从繁琐的编程中解脱出来,集中精力去思考、解决问题,提高效率[58]。

目前MATLAB中几乎完整地概括了神经网络的基本成果,所涉及到的网络模型有:感知器,线性自适应网络,BP网络,径向基函数网络,自组织映射网络,回归网络等。

本文应用了其中的BP神经网络模型。

4.2.2 运用工具箱设计网络的过程

在实际应用中,面对一个具体的应用问题,要用神经网络方法解决时,要进行一些分析和处理,以及将实际问题抽象化的过程,具体而言[58]: (1)确定信息表达方式,

将领域问题及其相应的领域知识转化为网络所能表达并能处理的形式,即将领域问题提炼成适合网络求解所能接收的某种数据形式。

(2)网络模型选择,

主要包括确定激活函数,联接方式,各神经元的相互作用等,另外还可在典型网络模型的基础上,结合具体应用问题特点,对原网络模型进行变型,扩充,也可采用多种网络模型的组合等。

(3)网络参数选择

确定输入、输出神经元的数目、多层网的层数和隐层神经元的数目等。

(4)学习训练算法选择

2

哈尔滨工业大学成人教育学院本科毕业论文(设计) 确定网络学习训练时的学习规则及改进学习规则。在训练时,还要结合具体的算法,考虑初始化问题。

(5)系统仿真的性能对比试验

应用神经网络解决的领域问题与其他采用不同方法的仿真系统的效果进行比较。

4.3 在MATLAB工作环境下BP神经网络的实现函数

4.3.1 神经网络训练函数

初始化后的网络即可用于训练,即将网络的输入和输出反复作用于网络,不断调整其权重和阈值,以使网络性能函数net.performFcn达到最小,从而实现输入输出间的非线性映射.对于newff函数产生的网络,其缺省的性能函数是网络输出和实际输出间的均方差MSE。

在神经网络工具箱中,给出了十多种网络学习、训练函数,其采用的算法可分为基本的梯度下降算法和快速算法.在MATLAB中训练网络有两类模式:逐变模式(incremental mode)和批变模式(batch mode)。

在逐变模式中,每一个输入被作用于网络后,权重和阈值被更新一次。在批变模式中,所有的输入被应用于网络后,权重和阈值才被更新一次。使用批变模式不需要为每一层的权重和阈值设定训练函数,而只需为整个网络指定一个训练函数,许多改进的快速训练算法只能采用批变模式,在这里我们只讨论批变模式,以批模式来训练网络的函数是train ,其语法主要格式为:[net,tr]=train(NET,p,t),其中p和t分别为输入输出矩阵,NET为由newff产生的要训练的网络,net为修正后的网络,tr为训练的记录(训练步数epoch和性能perf).train根据在newff函数中确定的训练函数来训练,不同的训练函数对应不同的训练算法:

Traingd基本梯度下降算法.收敛速度慢,可用于增量模式训练。 Traingdm带有趋势动量的梯度下降算法.收敛速度快于Traingd,可用于增量模式训练。

Traingdx自适应学习速度算法.收敛速度快于Traingd,仅用于批量模式训练。

Trainnp强适应性BP算法.用于批量模式训练,收敛速度快,数据占用存储空间小. Trainbfg BFGS拟牛顿算法.数据存储量近似于Hessian矩

3

哈尔滨工业大学成人教育学院本科毕业论文(设计) 阵,每个训练周期计算虽大,但收敛速度较快。

以上是常用的几种,其余还有Traincgf Fletcher-reeves变梯度算法、 Traincgp Polak -Ribiere变梯度算法、Traincgb Powell-beale变梯度算法、 Trainscg固定变比的变梯度算法、 Trainoss变梯度法与拟牛顿法的折中算法、TrainlmLevenberg -Marquardt算法、Trainbr改进型L—M算法。如有需要可参阅相关文献详细了解。

训练时直接调用上述的函数名,调用前要为下列变量赋初始值: net.trainParam.show——每多少轮显示一次; net.trainParam.Lr——学习速度;

net.trainParam.epochs——最大训练轮回数; net.trainParam.goal——目标函数误差。

4.4 预测模型的输入量选择及处理

在利用BP神经网络进行预测时,关键是对各种输入因素的选择和处理,它直接关系到计算速度的快慢和预测结果的好坏。对短期负荷来说,影响因素主要有负荷构成、时间的变化、气象和温度等天气变化、随机波动等[59]。

4.4.1历史负荷数据及处理

历史数据是指历史上每天的实际负荷值,反映一段时期内的负荷水平。在负荷预测中,预测日的相邻日,即预测日前一天和临近的历史(三星期内)负荷相关性比较好,是相似日。在预测时,将采用提前六天对应小时的负荷,共624个负荷值。训练时,根据工作日和休息日的不同,选择训练样本集。

历史负荷数据来源于电力调度系统SCADA数据库,由于电力系统故障产生的异常,以及系统中各终端表的同步差异、传输错误、信道噪声等因素,数据库中的数据有时会受到污染。

负荷数据的不准确,对预测的影响很大,如训练期间,伪数据带来大的训练误差,使网络不能收敛到理想误差。即便预测阶段网络能够收敛,但训练出的网络不能反映负荷变化的内在规律,预测误差较大。而对训练完成的网络,预测中输入了伪数据(比如今天的负荷数据存在误差)

4