人工智能在电力系统中的应用.ppt
,人工智能在电力系统中的应用,孟安波,第一章 概述,人工智能是那些与人的思维相关的活动,诸如决策、问题求解和学习等的自动化(Bellman,1978);人工智能是一种计算机能够思维,使机器具有智力的激动人心的新尝试(Haugeland,1985);人工智能是那些使知觉、推理和行为成为可能的计算的研究(Winston,1992);人工智能是关于人造物的智能行为,而智能行为包括知觉、推理、学习、交流的行为(Nilsson,1998)。像人一样思考的系统、像人一样行动的系统、理性地思考、行动的系统(Stuart Russell,2003)。,1.1 人工智能定义,1.2人工智能的研究途径与研究领域,专家系统(Expert Systems)人工神经网络(Artificial Neural Networks)模糊逻辑(Fuzzy Logic)进化算法(如:遗传算法Genetic Algorithm,粒子群Swarm Particle,禁忌搜索Tabu Search,模拟退火算法Simulated Annealing,)多智能体系统(Multi-agent system),心理模拟,符号推演 生理模拟,神经计算 行为模拟,控制进化 群体模拟,仿生计算,1.3人工智能在电力系统的应用领域,机组启停 Unit Commitment维护计划 Maintenance scheduling负荷预测 Load Forecasting发电控制与保护 Generation control and protection潮流优化 Optimal Power Flow Analysis电力系统安全分析 Security Analysis电力系统稳定分析 Stability Analysis无功优化分配 Var dispatch and planning控制优化 Optimization of self-adaptive control,继电保护 Relaying protection经济调度 Economic dispatch变电所运行控制 Substation switching and control系统恢复供电 System reconfiguration and restoration电力质量控制 Power quality Control系统设计优化 System Design Optimization电力规划 planning for electric Power电气设备故障诊断 Fault diagnosis for electric facilities,1.3人工智能在电力系统的应用领域,第二章 神经网络及其在电力系统中的应用,人工神经网络是集脑科学、神经心理学和信息科学等多学科的交叉研究领域,是近年来高科技领域的一个研究热点。它的研究目标是通过研究人脑的组成机理和思维方式,探索人类智能的奥秘,进而通过模拟人脑的结构和工作模式,使机器具有类似人类的智能。它已在模式识别、机器学习、专家系统等多个方面得到应用,成为人工智能研究中的活跃领域。本章将简要介绍神经网络基本的概念、模型以及学习算法以及应用实例。,2.1 神经网络的基本概念及组成特性,神经元及其突触是神经网络的基本器件。因此,模拟生物神经网络应首先模拟生物神经元。在人工神经网络中,神经元常被称为“处理单元”。有时从网络的观点出发常把它称为“节点”。人工神经元是对生物神经元的一种形式化描述。神经元主要由三部分构成:(1)细胞体;(2)轴突;(3)树突,2.2 人工神经网络的特性,高度的并行性 ANN是由许多相同的简单处理单元并联组合而成,虽然每个单元的功能简单,但大量简单处理单元的并行活动,使其对信息的处理能力与效果惊人。高度的非线性全局作用 ANN每个神经元接受大量其它神经元的输入,并通过并行网络产生输出,影响其他神经元。网络之间的这种互相制约和互相影响,实现了从输入状态到输出状态空间的非线性映射。从全局的观点来看,网络整体性能不是网络局部性能的简单迭加,而表现出某种集体性的行为。良好的容错性与联想记忆功能 ANN通过自身的网络结构能够实现对信息的记忆。而所记忆的信息是存储在神经元之间的权值中。从单个权值中看不出所储存的信息内容,因而是分布式的存储方式。这使得网络具有良好的容错性,并能进行聚类分析、特征提取、缺损模式复原等模式信息处理工作;又宜于模式分类、模式联想等识别工作。十分强的自适应、自学习功能 ANN可以通过训练和学习来获得网络的权值与结构,呈现出很强的学习能力和对环境的自适应能力。,2.3 人工神经网络的学习方法,监督学习(有教师学习)如图所示,这种学习方式需要外界存在一个“教师”,他可对给定一组输入提供应有的输出结果,这组已知的输入-输出数据称为训练样本集,学习系统(神经网络)可根据已知输出与实际输出之间的差值(误差信号)来调节系统参数非监督学习(无教师学习),2.3 人工神经网络的分类,前向网络中,各神经元节点接受前一层的输出信号,并将本层的输出作为下一层的输入,其特点是信号的流向是从输入流向输出。在ANN的实际应用中,8090的ANN模型是采用BP网络或它的变化形式,它也是前向网络的核心部分、体现了ANN精华的部分。,前向神经网络,2.3 人工神经网络的分类,反馈神经网络,反馈网络中,输出信号通过与输入连接而返回到输入端,从而形成一个回路。在前向网络中,有单层感知器、自适应线性网络和BP网络。在反馈网络中,有离散型和连续型霍普菲尔德网络。,2.4 BP神经网络,2.4.1 BP神经网络概述 BP 网络神经网络是目前应用最为广泛和成功的神经网络之一。它是在1986年由Rumelhant 和 McClelland 提出的一种多层网络的“逆推”学习算法。其基本思想是,学习过程由信号的正向传播与误差的反向传播两个过程组成。正向传播时,输入样本从输入层传入,经隐层逐层处理后传向输出层。若输出层的实际输出与期望输出不符,则转向误差的反向传播阶段。误差的反向传播是将输出误差以某种形式通过隐层向输入逐层反传,并将误差分摊给各层的所有单元,从而获得各层单元的误差信号,此误差信号即作为修正各单元权值的依据。这种信号正向传播与误差反向传播的各层权值调整过程是周而复始地进行。权值不断调整的过程,也就是网络的学习训练过程。此过程一直进行到网络输出的误差减少到可以接受的程度,或进行到预先设定的学习次数为止。,2.4.2 BP神经网络应用领域,函数逼近:用输入矢量和相应的输出矢量训练个网络逼近一个函数;模式识别:用一个特定的输出矢量将它与输入矢量联系起来;分类:把输入矢量以所定义的合适方式进行分类;数据压缩:减少输出矢量维数以便于传输或存储。,2.4 BP神经网络,2.4.3 BP网络模型与结构,BP网络具有一层或多层隐含层,其主要差别也表现在激活函数上 BP网络的激活函数必须是处处可微的,BP网络经常使用的是S型的对数或正切激话函数和线性函数,2.4 BP神经网络,2.4.4 BP神经网路的几种常见激活函数,阀值型,不带偏差的阀值型激活函数,带偏差的阀值型激活函数,2.4 BP神经网络,2.4.4 BP神经网路的几种常见激活函数,线形型,不带偏差的线性激活函数,带偏差的线形型激活函数,2.4 BP神经网络,2.4.4 BP神经网路的几种常见激活函数,2.4 BP神经网络,对数S型激活函数,双曲正切S型激活函数,对数S型函数关系为:,双曲正切S型函数关系:,Sigmoid 型,2.4.5 BP网络学习,2.4 BP神经网络,BP算法的学习目的是对网络的连接权值进行调整,使得调整后的网络对任一输入都能得到所期望的输出。学习过程由正向传播和反向传播组成。正向传播用于对前向网络进行计算,即对某一输入 信息,经过网络计算后求出它的输出结果。反向传播用于逐层传递误差,修改神经元间的连接权值,以使网络对输入信息经过计算后所得到的输出能达到期望的误差要求。,2.4.5 BP网络学习,2.4 BP神经网络,设输入为P,输人有r个,隐含层内有s1个神经元,激话函数为F1,输出层内有个s2神经元,对应的激活函数为F2,输出为A,目标矢量力T。,隐含层,输出层,输入层,2.4.5 BP网络学习,2.4 BP神经网络,1、信息的正向传递,(1)隐含层中第i个神经元的输出为:,(2)输出层第k个神经元的输出为,(3)定义误差函数为:,2.4.5 BP网络学习,2.4 BP神经网络,1、误差反向传播,(1)输出层的权值变化:,对从第i个输入到第k个输出的权值有:,其中:,:学习速率,过大容易震荡,过小调整过慢;,:训练样本对目标输出;,:神经网络实际输出;,:输出层神经元传递函数的导数;,:误差;,2.4.5 BP网络学习,2.4 BP神经网络,1、误差反向传播,(2)输出层的阀值变化:,其中:,!注意:输出层的权值变化与输出层的阈值变化的差别,2.4.5 BP网络学习,2.4 BP神经网络,1、误差反向传播,(3)隐含层的权值变化:,对从第j个输入到第i个输出的权值有:,其中:,(4)隐含层的阈值变化:,2.4.6 BP网络的限制与不足及改进,2.4 BP神经网络,1 不足需要较长的训练时间 对于一些复杂的问题,BP算法可能要进行几小时甚至更长的时间的训练。这主要是由于学习速率太小所造成的。可采用变化的学习速率或自适应的学习速率加以改进。完全不能训练 这主要表现在网络出现的麻痹现象上。在网络的训练过程中,当其权值调得过大,可能使得所有的或大部分神经元的加权总和偏大,这使得激活函数的输入工作在S型转移函数的饱和区,从而导致其导数非常小,从而使得对网络权值的调节过程几乎停顿下来。通常为了避免这种现象的发生,一是选取较小的初始权值,二是采用较小的学习速率,但这又增加了训练时间。,2.4.6 BP网络的限制与不足及改进,2.4 BP神经网络,1 不足局部极小值 BP 算法可以使网络权值收敛到一个解,但它并不能保证所求为误差超平面的全局最小解,很可能是一个局部极小解。这是因为BP算法采用的是梯度下降法,训练是从某一起始点沿误差函数的斜面逐渐达到误差的最小值。对于复杂的网络,其误差函数为多维空间曲面,就像一个碗,其碗底是最小值点。但是这个碗的表面是凹凸不平的,因而在对其训练过程中,可能陷入某一小谷区,而这一小谷区产生的是一个局部极小值。由此点向各方向变化均使误差增加,以致于使训练无法逃出这一局部极小值。,2.4.6 BP网络的限制与不足及改进,2.4 BP神经网络,1 改进增加动量项 标准BP算法在调整权值时,只按t时刻误差的梯度下降方向调整,而没有考虑t时刻以前的梯度方向。为了提高训练速度,可以在权值调整公式中加一动量项,其中a为动量系数:,动量项反映了以前积累的调整经验。当误差梯度出现局部极小时,虽然 但,使其跳出局部极小区域,加快迭代收敛速度。目前,大多数BP算法中都增加了动量项,以至于有动量项的BP算法成为一种新的标准算法。,2.4.6 BP网络的限制与不足及改进,2.4 BP神经网络,1 改进可变学习速度的反向传播算法,(1)如果平方误差(在整个训练集上)在权值更新后增加了,且超过了某个设置的百分数(典型值为1%5%),则权值更新被取消,学习速度被乘以一个因子(01),并且动量系数(如果有的话)被设置为0。(2)如果平方误差在权值更新后减少,则权值更新被接受,而且学习速度将乘以一个大于1的因子。如果动量系数过去被设置为0,则恢复到以前的值。,2.4.6 BP网络的限制与不足及改进,2.4 BP神经网络,1 改进引入陡度因子防止饱和,误差曲面上存在着平坦区。其可预付调整缓慢的原因在于S转移函数具有饱和特性。如果在调整进入平坦区后,设法压缩神经元的净输入,使其输出退出转移函数的饱和区,就可改变误差函数的形状,从而使调整脱离平坦区。实现这一思路的具体作法是在转移函数中引进一个陡度因子。,2.5 使用MATLAB神经网络工具箱,MATLAB神经网络工具箱大大降低了开发各种神经网络应用的难度。设计者只需要调用相关函数即可,甚至通过NNTOOL图形界面,不用编写一行程序,就可完成一个神经网络的设计仿真。本节主要介绍NNTOOL图形工具,神经网络程序设计见2.6。,2.5 使用MATLAB神经网络工具箱,第一步 在MATLAB命令下打开nntool界面,2.5 使用MATLAB神经网络工具箱,第二步 通过Import从工作空间或通过New Data手动输入训练样本,2.5 使用MATLAB神经网络工具箱,第三步 点击new network建立神经网络,该页面用来建立神经网络结构,主要设置的参数有:神经网络类型、训练函数、各层神经元数目及相应的传递函数等,2.5 使用MATLAB神经网络工具箱,第四步 设置训练参数 点击train进入training parameters页设置训练参数,主要包括训练代数、允许误差、显示频度等。,2.5 使用MATLAB神经网络工具箱,第四步 点击train进入training parameters页设置训练参数,主要包括训练代数、允许误差、显示频度等。,2.5 使用MATLAB神经网络工具箱,第五步 训练已经建立好的神经网络点击train network开始训练。训练过程会显示误差随代数的变化。,2.5 使用MATLAB神经网络工具箱,第六步 仿真验证,进入simulate页,设置输入,点击simulate network。,2.6 神经网络在电力系统应用实例,实例1:短期电力负荷预测实例2:变压器故障诊断,2.6.1 实例1 神经网络在负荷预测中的应用,问题描述 以广东某城市的2004年7月20日到7月30日的负荷值以及2004年7月21日到7月31日的气象特征状态作为网络的训练样本,来预测7月31日的电力负荷为例,2.6.1 实例1 神经网络在负荷预测中的应用,广东某地区7月20日25日24小时电力负荷表,2.6.1 实例1 神经网络在负荷预测中的应用,广东某地区7月26日31日24小时电力负荷表,2.6.1 实例1 神经网络在负荷预测中的应用,学习样本的分析与处理在预测日的前一天中,每隔2个小时对电力负荷进行一次测量,这样一天可以得到12组负荷数据,将前一天的实时负荷数据作为网络的样本数据;另外电力负荷还与环境因素有关,所以本例中还考虑了气温和天气。即最高、最低气温和天气特征,可以通过天气预报得到预测日的最高、最低气温和天气特征(晴天、阴天、雨天),可以用0、0.5、1 分别表示晴天、阴天、雨天,将预测当天的气象特征作为网络的输入变量,这样输入变量P就是一个15 维的向量,即n=15;目标向量就是预测日当天的12个负荷值,即输出变量T为一个12维的向量,m=12。由于在输入的数据中各类型的数据大小、单位都不统一,这样大大增加了系统的运算量、运算时间还降低了精度甚至可能使神经元趋于饱和不能继续运算。为了避免神经元的饱和性,在确定输入和输出变量后,应对其进行归一化处理,将数据处理为一定范围之间。这样就降低了运算量,提高运算速度和时间。归一化的方式很多,MATLAB中也有归一化函数可对数据进归一化和反归一化,2.6.1 实例1 神经网络在负荷预测中的应用,2.确定网络结构,2.6.1 实例1 神经网络在负荷预测中的应用,2.确定网络结构,MATLAB实现函数net=newff(minmax(P),10,12,tansig,logsig,trainlm)含义:Newff:建立BP神经网络结构函数参数的意思指该网络隐含层、输出层神经元数目分 别为10个与12个;传递函数分别为正切S函数与对数S函数;训练函数选取增加动量项的BP算法;minmax(P)指定输入样本的范围,使得网络初始权值 合理化。Net储存返回的神经网络,注意此时的神经网络还没有开始训练,只是指定了网络结构而已;注意输入的是预测日头天的历史负荷数据与预测日的天气数据,而输出是预测日需要预测的24小时负荷。,2.6.1 实例1 神经网络在负荷预测中的应用,3.设置训练参数,训练网络前,必须设置训练参数,MATLAB神经网络设置训练参数示例如下:=10;解释:每10代显示一次=0.05;解释:设置训练速率=0.9;解释:设置动量因子=100000;解释:设置训练的代数=0.01;解释:设置目标误差注意!上面的net指的是上一步已经建立好的BP神经网络,2.6.1 实例1 神经网络在负荷预测中的应用,4.训练构建好的神经网络,利用MATLAB神经网络工具箱的train函数即可对前面指定好网络结构与训练参数的神经网络进行训练,train函数的调用格式如下:,Net=Train(net,P,T),解释:P表示训练样本的输入矢量;T表示训练样本的输出矢量,为训练目标;右边的参数net指得的还未开始训练的神经网 络,左边的变量net指得的练好的神经网络保 存的位置,2.6.1 实例1 神经网络在负荷预测中的应用,5.仿真训练好的神经网络,利用MATLAB神经网络工具箱的sim函数即可对使用train函数训练好的神经网络进行仿真,以便验证训练的效果是否达到预期的目标误差,sim的调用格式如下:,A=sim(net,P),解释:P表示训练样本的输入矢量;参数net指得的练好的神经网络 A指得是当训练好的神经网络net获得输入P 时的实际 输出,得到实际输出A后,与训练样本目标输出T相比较,即可得到误差,2.6.1 实例1 神经网络在负荷预测中的应用,5.仿真过程与结果,下面是采用增加动量项的BP算法训练函数traingdm、隐层为10个神经元的预测结果。,左边是训练过程误差曲线,横坐标是训练代数,纵坐标是误差,该曲线是训练过程中自动产生的;右边是实际输出与目标输出负荷曲线,横坐标是小时,纵坐标是负荷,注意负荷已经被正规化了。,2.6.1 实例1 神经网络在负荷预测中的应用,5.仿真过程与结果,下面是采用自适应学习速率训练函数trainlm、隐层为10个神经元的预测结果。,左边是训练过程误差曲线,横坐标是训练代数,纵坐标是误差,该曲线是训练过程中自动产生的;右边是实际输出与目标输出负荷曲线,横坐标是小时,纵坐标是负荷,注意负荷已经被正规化了。,2.6.1 实例1 神经网络在负荷预测中的应用,6.训练结果数据表,2.6.1 实例1 神经网络在负荷预测中的应用,7.主要的源码,%定义训练样本%P为输入矢量,T为输出目标矢量,注意样本的构成。P=0.2452 0.1466 0.1314 0.2243 0.5523 0.6642 0.7015 0.6981 0.6821 0.6945 0.7549 0.8215 0.2415 0.3027 0;0.2217 0.1581 0.1408 0.2304 0.5134 0.5312 0.6819 0.7125 0.7265 0.6847 0.7826 0.8325 0.2385 0.3125 0;0.2525 0.1627 0.1507 0.2406 0.5502 0.5636 0.7051 0.7352 0.7459 0.7015 0.8064 0.8156 0.2216 0.2701 1;0.2016 0.1105 0.1243 0.1978 0.5021 0.5232 0.6819 0.6952 0.7015 0.6825 0.7825 0.7895 0.2352 0.2506 0.5;0.2115 0.1201 0.1312 0.2019 0.5532 0.5736 0.7029 0.7032 0.7189 0.7019 0.7965 0.8025 0.2542 0.3125 0;0.2335 0.1322 0.1534 0.2214 0.5623 0.5827 0.7198 0.7276 0.7359 0.7506 0.8092 0.8221 0.2601 0.3198 0;0.2368 0.1432 0.1653 0.2205 0.5823 0.5971 0.7136 0.7129 0.7263 0.7153 0.8091 0.8217 0.2579 0.3099 0;0.2342 0.1368 0.1602 0.2131 0.5726 0.5822 0.7101 0.7098 0.7127 0.7121 0.7995 0.8126 0.2301 0.2867 0.5;0.2113 0.1212 0.1305 0.1819 0.4952 0.5312 0.6886 0.6898 0.6999 0.7323 0.7721 0.7956 0.2234 0.2799 1;0.2005 0.1121 0.1207 0.1605 0.4556 0.5022 0.6553 0.6673 0.6798 0.7023 0.7521 0.7756 0.2314 0.2977 0T=0.2217 0.1581 0.1408 0.2304 0.5134 0.5312 0.6819 0.7125 0.7265 0.6847 0.7826 0.8325;0.2525 0.1627 0.1507 0.2406 0.5502 0.5636 0.7051 0.7352 0.7459 0.7015 0.8064 0.8156;0.2016 0.1105 0.1243 0.1978 0.5021 0.5232 0.6819 0.6952 0.7015 0.6825 0.7825 0.7895;0.2115 0.1201 0.1312 0.2019 0.5532 0.5736 0.7029 0.7032 0.7189 0.7019 0.7965 0.8025;0.2335 0.1322 0.1534 0.2214 0.5623 0.5827 0.7198 0.7276 0.7359 0.7506 0.8092 0.8221;0.2368 0.1432 0.1653 0.2205 0.5823 0.5971 0.7136 0.7129 0.7263 0.7153 0.8091 0.8217;0.2342 0.1368 0.1602 0.2131 0.5726 0.5822 0.7101 0.7098 0.7127 0.7121 0.7995 0.8126;0.2113 0.1212 0.1305 0.1819 0.4952 0.5312 0.6886 0.6898 0.6999 0.7323 0.7721 0.7956;0.2005 0.1121 0.1207 0.1605 0.4556 0.5022 0.6553 0.6673 0.6798 0.7023 0.7521 0.7756;0.2123 0.1257 0.1343 0.2079 0.5579 0.5716 0.7059 0.7145 0.7205 0.7401 0.8019 0.8136,2.6.1 实例1 神经网络在负荷预测中的应用,7.主要的源码,%创建一个新的bp前向神经网络%newff-生成一个新的bp前向神经网络net=newff(minmax(P),10,12,tansig,logsig,trainlm);%设置训练参数=10;%每10代显示一次=0.05;%训练速率=3;=0.9;%动量因子=100000;%训练的代数=0.01;%目标误差,2.6.1 实例1 神经网络在负荷预测中的应用,7.主要的源码,%训练bp前向神经网络net,tr=train(net,P,T);%仿真A=sim(net,P)计算仿真误差E=T-ASSE=sse(E),2.6.2 实例2 基于神经网络的变压器故障诊断,1.问题提出及解决方案,电力变压器的安全运行对保证供电的可靠性具有重要的意义,现有的实验方法中,油中溶解气体(DGA)分析对设备的早期潜伏性故障较为敏感。但通常采用的几种分析方法均有缺陷,如特征气体分析法仅定性的说明气体含量与对应故障的关系,不利于诊断的实现;IEC三比值法和日本的改良电协研法均采用比值编码法,存在编码缺损等问题。因此,很有必要探索一种更方便、更可靠的诊断方法,以提高诊断的正确率由于神经网络(ANN)具有并行处理、学习和记忆、非线性映射、自适应能力和鲁棒性等固有性质,使其非常适合应用在电气故障诊断领域。为此,本实例针对变压器故障特点,研究采用合适结构和算法的神经网络,用以实现变压器故障的准确诊断。,2.6.2 实例2 基于神经网络的变压器故障诊断,2.变压器故障诊断的ANN设计,网络输入层节点数就是一个模式所包含的特征量数。在油色谱分析领域中,基于油中溶气体类型与内部故障性质的对应关系,以油中5种特征气体为依据的判断变压器故障的方法。其特征量为H2,CH,C2H4,C2H2,C2H6,这样点数N为5的网络输入层定,如图3所示。在对变压器的故障识别时,变压器的故障类型选择为:中低温过热、高温过热、低能放电和高能放电。当考虑正常情况也作为一种类型时。一个M 为5节点的网络输出层被确定。,2.6.2 实例2 基于神经网络的变压器故障诊断,2.变压器故障诊断的ANN设计,2.6.2 实例2 基于神经网络的变压器故障诊断,3.变压器故障诊断训练样本,2.6.2 实例2 基于神经网络的变压器故障诊断,4.ANN网络训练与分析,在实验测试中,收集了30组变压器样本,并随机取出20组样本用于神经网络训练,其余的样本作为仿真。,2.6.2 实例2 基于神经网络的变压器故障诊断,5.结论,神经网络的诊断要比三比值法准确。通过改进学习训练算法,可在同等的收敛要求下,获得较高的精度如果输入模式与训练样本偏离较大,则网络可能得出错误的结论。这反映了网络不具备此种症状的知识,因此,可将该样本作为新的样本加入训练样本集训练网络,使之获得更多的知识对溶解气体分析法存在的问题,将人工神经网络应用于变压器故障诊断;根据变压器故障的特点,采用了动量因子技术的神经网络BP算法,使诊断网络具有较强的学习能力、泛化能力和适应能力,第三章 遗传算法及其在电力系统中的应用,3.1 概述 遗传算法的基本思想是基于Darwin进化论和Mendel的遗传学说的。Darwin进化论最重要的是适者生存原理。它认为每一物种在发展中越来越适应环境。物种每个个体的基本特征由后代所继承,但后代又会产生一些异于父代的新变化。在环境变化时,只有那些能适应环境的个体特征方能保留下来。Mendel遗传学说最重要的是基因遗传原理。它认为遗传以密码方式存在细胞中,并以基因形式包含在染色体内。每个基因有特殊的位置并控制某种特殊性质。所以,由基因产生的个体对环境具有某种适应性。基因突变和基因交叉可产生更适应于环境的后代。经过存优去劣的自然淘汰,适应性高的基因结构得以保存下来。由于遗传算法不依赖于被优化对象数学模型,不需要导数信息,属于全局多点随机搜索算法,因此,目前被广泛应用于各种复杂优化中。,3.2 遗传算法的特点与优点,(1)自组织、自适应和学习性。(2)遗传算法按并行方式搜索一个种群数目的点,而不是单点。(3)遗传算法不需要求导或其他辅助知识,而只需要影响搜索方向的目标函数和适应度函数。(4)遗传算法强调概率转化规则,而不是确定的转换规则。(5)遗传算法对给定问题可以产生出许多潜在解,最终选择可以由使用者确定,3.3 生物进化理论和遗传学基本概念,染色体 生物细胞中含有很多微小的丝状化合物,它是遗传物质的主要再体,由多个遗传因子基因组成。个体指染色体带有特征的实体。如:人就是一个个体,人的各种不同的特征可以用含有不同遗传信息的染色体表现,不同的染色体能决定人的特征的不同特征。种群染色体是带有特征的个体的集合称为种群。该集合内个体数称为群体的大小。有时个体的集合也称为个体群。如:人类就是一个种群,种群中由各种各样不同性格,不同外观特征的人组成。,3.3 生物进化理论和遗传学基本概念,进化生物在其延续生存的过程中,逐渐适应其生存的环境,使得其品质不断得到改良,这种生命的现象称为进化。生物的进化以种群的形式进行的。如:如人从猿人进化到今天富有智慧的现代人,这一个过程就是进化过程。适应度在研究自然界中的生物的遗传和进化现象时,生物学家使用适应度这个术语来衡量某个物种对于生存环境的适应程度。对于生存环境的适应程度较高的物种将获得更高的繁殖机会。而对于生存环境适应度较低的物种,其繁殖机会就会较少,甚至灭绝。,3.3 生物进化理论和遗传学基本概念,选择指决定以一定的概率种群中选择若干个体的操作。而一般而言,选择的过程是一种基于适应度的优胜劣汰的过程。复制细胞在分裂时,遗传物质DNA通过复制而转移到新生的细胞中,新的细胞继承了旧的细胞的基因。交叉有性生殖生物在繁殖下一代时两个同源染色体之间通过交叉而重组,亦即在两个染色体的某一相同位置处DNA被切断,其前后两串分别交叉组合形成两个新的染色体。这个过程又称基因的重组。,3.3 生物进化理论和遗传学基本概念,变异在细胞进行复制的过程中可能以很小的概率产生某些复制的差错,从而使DNA发生某种变异,产生新的染色体,这些新的染色体表现出来新的性状。编码DNA中的遗传信息在一个长链上按一定的模式排列,也即进行了遗传编码。遗传编码可以看作表现型到遗传子型的映射。解码从遗传子型到边现型的映射。,3.4 遗传算法的基本操作,1 选择 选择是确定交叉或者交叉个体,以及被选个体将产生多少个子代个体。首先要计算适应度:(1)按比例计算适应度,(2)基于排序的适应度计算。,轮盘赌选择,3.4 遗传算法的基本操作,2 交叉 再生之后重要的遗传操作交叉,在生物学上称为杂交,可视为生物之所以得以进化之所在,随机产生一个交叉点位置,父体1和父体2在交叉点位置之右的部分基因码互换,形成子个体1和子个体2。类似地完成其他个体的交叉操作。,个体间的单点交叉,3.4 遗传算法的基本操作,3 变异 作用:如果只考虑交叉操作实现进化机制,在大多情况下是不行的,这与生物界近亲繁殖影响进化历程是类似的。因为种群个体数是有限的,经过若干代交叉操作,因为源于一个较好祖先的子个体逐渐充斥整个种群额现象,问题会导致过早收敛,当然,最后获得的个体不能代表问题的最优解。为了避免过早收敛,有必要在进化的过程中引入具有新遗传基因码发生了突变,这对于保持生物多样性是非常重要的。实现:模仿生物变异的遗传操作,对于二进制的基因码组成的个体种群,实现基因码的小概率翻转,即达到变异目的,变异操作,3.5 遗传算法的进化过程示意,一般而言,一个世代的简单进化包括了适应度的选择和再生、交叉和变异操作。将上面的所有种群的遗传算法综合起来,初始种群第一代进化过程如下图所示。初始种群经过选择操作,适应度较高的8号和6号个体分别复制出2个,使硬度较低的2号和3号遭到淘汰,接下来按一定的概率选择了4对父个体分别完成交叉操作,在随机确定的“/”位置实行单点交叉生成4对子个体。最后按小概率选中某个个体的基因码位置,产生变异。这样经过上述的过程形成了第一代的种群。以后一代一代地进化过程如此循环下去,每一代结束都产生新的种群。演化的代数主要取决于代表问题解得收敛状态,末代种群众最佳个体作为问题的最优近似解。,3.5 遗传算法的进化过程示意,3.6 一个典型遗传算法流程框图,3.7 MATLAB遗传算法工具箱使用,遗传算法工具箱MATLAB Genetic Algorithm Toolbox 旨在提供设计允许遗传算法的环境,和神经网络工具箱一样,遗传算法工具箱也提供了一套基于MATLAB的函数供开发者使用,利用该工具箱,可大大节省开发时间。,3.7 MATLAB遗传算法工具箱使用,遗传算法工具箱MATLAB Genetic Algorithm Toolbox 旨在提供设计允许遗传算法的环境,和神经网络工具箱一样,遗传算法工具箱也提供了一套基于MATLAB的函数供开发者使用,利用该工具箱,可大大节省开发时间。,3.7 MATLAB遗传算法工具箱使用,一个典型的遗传算法LIND=8;%染色体长度NVAR=2;%优化变量数目NIND=10;%种群数目GGAP=0.9;%代差,指得是上代最好的10%个体 不参与下一代的复制操作XOV=0.7;%设置交叉率MUTR=0.0175;%设置变异率MAXGEN=30;%优化代数%指定编码方式,变量范围,交叉方式FieldD=LIND LIND;1 1;1000 1000;1 1;0 0;0 0;0 0;Chrom=crtbp(Nind,Lind*NVAR);%创建初始化种群%计算适应度ObjV=objfun(bs2rv(Chrom,FieldD);,3.7 MATLAB遗传算法工具箱使用,对FieldD 的解释FieldD=LIND LIND;1 1;1000 1000;1 1;0 0;0 0;0 0;,解释:两列对应两个变量,上面设置的含义指染色体长度为8;1-1000是变量范围,1 0 0 0指的是二进制编码与单点交叉,3.7 MATLAB遗传算法工具箱使用,对Chrom=crtbp(NIND,LIND*NVAR)的解释,解释:crtbp函数的运行结果是产生由10个个体组成的初始种群;其中每行表示一条染色体,即种群中的一个个体,由于被优化的变量为2个,每个变量的编码长度是8,故每行由16位0、1构成的随机字符串;一共10行表示10条染色体。,3.7 MATLAB遗传算法工具箱使用,对ObjV=objfun(bs2rv(Chrom,FieldD)的解释;Bs2rv函数是对产生的初始种群进行解码,也就是根据FieldD变量的设置把初始种群由二进制表示的染色体转化成10进制;Objfun是开发人员根据实际应用编制的适应度函数,注意该函数并不是被优化对象的数学模型,而是用来评价个体性能好坏的函数,特别值得注意的是适应度函数必须满足两个条件:1是适应度函数必须是正的,2是其值越大表示性能越好。,3.7 MATLAB遗传算法工具箱使用,一个典型的遗传算法续当遗传算法初始参数设置完毕,就转入遗传进化:Gen=0;%计数器while Gen MAXGEN%优化循环SelCh=select(sus,Chrom,FitnV,GGAP);%复制操作SelCh=recombin(xovsp,SelCh,XOV);%交叉操作SelCh=mut(SelCh,MUTR);%变异操作ObjVSel=objfun(bs2rv(SelCh,FieldD);%计算适应度%把上一代最好的10%个体插入新种群里Chrom ObjV=reins(Chrom,SelCh,1,1,ObjV,ObjVSel);Gen=Gen+1;%计数器加一End%循环结束%优化完毕后把种群解码找出里面适应度最大的对应变量组合即为优化结果。Phen=bs2rv(Chrom,FieldD);,3.8 遗传算法在电力系统的应用,实例1 遗传算法实现PID控制参数优化实例2 遗传算法实现发电厂经济调度实例3 混合遗传算法与神经网络在小电流接地系统 故障选线中的应用,3.8.1 实例1 遗传算法实现PID控制参数优化,1 初始化参数 对于控制系统初始化参数有Ki、Kd、Kp以及模型的参考输入ref;对于遗传算法控制有种群规模NIND、染色体长度PRECI、繁殖代数MAXGEN、交叉率、变异率。NIND=40;%种群规模MAXGEN=30;%繁殖代数NVAR=3;%参数个数PRECI=10;%变量二进制编码的位数GGAP=0.9;%保留最好个体的代沟系数,如:设置GGAP=0.9就说适应度最好的10%个体直接进入下一代,其余90%的个体进行交叉和变异CO=0.85;%变异概率为0.85FieldD=rep(PRECI,1,NVAR);%设置编码位数,种群规模FieldD(2:3,1)=rep(0;10,1,1);%设置KP的取值范围FieldD(2:3,2)=rep(0;10,1,1);%设置KI的取值范围FieldD(2:3,3)=rep(0;10,1,1);%设置KD的取值范围FieldD(4:7,1:3)=rep(1;0;1;1,1,NVAR);%设置编码与交叉方式,3.8.1 实例1 遗传算法实现PID控制参数优化,2 初始化种群 待优化参数采用