当前位置:文档之家› 负荷建模和参数辨识的遗传进化算法

负荷建模和参数辨识的遗传进化算法

负荷建模和参数辨识的遗传进化算法
负荷建模和参数辨识的遗传进化算法

ISSN 1000-0054CN 11-2223/N

清华大学学报(自然科学版)J T singh ua Un iv (Sci &Tech ),1999年第39卷第3期

1999,V o l.39,N o.311/34

37~40

 

负荷建模和参数辨识的遗传进化算法*

朱守真, 沈善德, 郑宇辉, 李 力, 艾 芊, 曲祖义

清华大学电机工程与应用电子技术系,北京100084; 东北电力集团公司,沈阳110006

收稿日期:1998-06-23

第一作者:女,1950年生,副教授 *基金项目:国家攀登计划B(85-35)

文 摘 提出了一种用于电力系统负荷建模和参数辨识的遗传进化算法,该方法与传统的最小二乘法相比具有全局搜索优化特点,适用于非线性、不连续或微分不连续的各种负荷模型。该方法已成功用于工业负荷实测数据辨识及动态和静态负荷建模。在静态负荷建模上,辨识结果略优于传统的最小二乘法,且通用性更好,只需做极小的修改就可以用于各种形式的静态负荷模型。在动态负荷建模上算法不仅给出了更优秀的结果,而且表现出很好的稳健性。结果表明此方法在负荷建模中的优势。

关键词 遗传进化算法;负荷建模;参数辨识分类号 T M 761

电力负荷模型是电力系统分析、规划、运行和计算的基础,尤其在计算中对电力系统动态行为的模拟结果影响很大。不同的计算需要采用不同的负荷模型,常规采用以不同比例的恒定阻抗、恒定电流、恒定功率或考虑不同动静比例负荷模型的方式使计算结果相差很大,甚至会导致完全错误的结论[1,2]。研究表明建立符合实际的负荷模型是十分必要的。负荷特性具有时变、非线形、不确定等多种特点,且实际负荷的用电设备构成差别很大,尤其是当电压或电流变化时,负荷产生突变,这也增加了建模的难度和复杂性。参数辨识是负荷建模的核心,目前常用的有最小二乘法、辅助变量法、分段线性多项式等方法,其中传统的方法不能有效地克服负荷建模中的非线性和不连续性等问题,会产生多值性等误差。近年来ANN 方法在建模方面已取得成功,但该方法更侧重于模拟模型的动态过程,且形成的结果是非参数模型。

遗传进化算法是模拟自然界进化中优胜劣汰的

优化过程,原则上能以较大的概率找到全局的最优解,具有并行、通用、鲁棒性强,全局收敛性好等优

点。研究人员已在发电规划[3],发电调度[4],无功优化[5]中用算例证明了EP 方法比传统的梯度寻优技术更优越。

本文采用遗传进化算法对静态、动态负荷进行了实测建模。

1 电力负荷的数学模型

本文主要描述以负荷特性来分类的静态和动态模型的建模方法。1.1 静态负荷模型

静态负荷模型表示某一时刻负荷所吸收的有功功率和无功功率与同一时刻负荷母线电压和频率之间的函数关系。静态负荷模型一般以幂函数和多项式模型表示。

本文以幂函数模型为例进行计算,幂函数表示的静态负荷特性如下:

P =P 0U a 1f a 2,

Q =Q 0

U b 1

f b

2

.

(1)

定义误差函数

E w =

N

i =1

[W m (i )-W c (i )]

2

N

(2)式中:N 为测量点数,W m (i )分别表示第i 次有功或无功功率测量值,W c (i )表示利用第i 次采样U i ,f i 的值由式(1)得到的有功或无功计算值,X p 、X q 是待辨识参数的向量:

X p =[P 0,a 1,a 2],

X q =[Q 0,b 1,b 2].

(3)

辨识问题表述为极小值寻优问题,即搜索一组参数使误差E w 达到最小值。1.2 动态负荷的模型

动态负荷模型表示某一时刻负荷所吸收的有功

功率和无功功率与前几时刻负荷母线电压和频率之间的函数关系。机理式模型有严格的数学推导,但因参数较多,较难获得精确解,因此常采用实用的非机理动态模型。非机理动态模型,亦即输入/输出模型,是将待研究的负荷群看作一个“系统”。输入变量为负荷母线电压U和频率f,输出变量是负荷吸收的总有功功率P和无功功率Q。

以PQ解耦的k阶的差分方程表示动态负荷特性。为了改善模型精度,有时以电压平方项表示负荷对电压的非线性性质。若取消电压平方项,则为线性差分方程表达式。

动态负荷的k阶非线性差分方程为:

W(n)= k i=1a i W(n-i)+ k i=0b i U(n-i)+ k

i=0

c i f(n-i)+ k i=0

d i( U(n-i))2(4)式中 W为 P或 Q,处理动态负荷数据时,各输入/输出变量均取用前稳态量作为基准的增量形式。

待辨识参数以向量形式表示为:

X=[a1,…,a k,b0,b1,…,b k,

c0,c1,…,c k,D0,d1,…,d k](5)定义误差函数如式(2)。

2 遗传进化算法

2.1 遗传进化算法的计算过程

遗传进化法的基本计算包括了三种过程:变异,竞争,选择。

1)变异:繁殖是由当前解群选出的个体产生下一代的过程。繁殖的具体方法通过各种类型的基因操作实现,最基本的是交叉操作和变异。在基因算法(GA)中,变异是针对染色体(亦即以二进制串表示的个体)上的基因(即串中的各个二进位)进行的,变异主要用于保证解群中所有的数串中的某位数字不总是取相同的值。而在进化规划法(E P)和进化策略法(E S)中主要采用变异操作来维持代与代之间的行为联系。

2)竞争:竞争则是将每个个体与其它个体相比较,根据其在竞争中是否占优势来决定它的入选情况。

3)选择:选择过程是按照当前解群中每个个体的适应函数值,用随机的方式选出一定数目的个体用于繁殖下一代。较强的个体在选择中获得有较

多的机会进行繁殖,反之,较弱的个体则机会较少。

2.2 遗传进化算法的特点

1)EP中的数字串的表示方式可根据要求解决问题的解的形式来确定,不必编码和译码。EP不采用交叉算子,变异是其主要算子。

2)从一组初始点开始搜索,而不是从某个单一的初始点开始搜索;最后产生的也是一组优选出的解。这使得遗传进化算法有较高的概率以一定的精度获得全局最优解,避免了诸如爬山法之类的算法受起始点的限制易于收敛到局部最优解的缺点。

3)遗传进化算法搜索中用到的是适应度函数值的信息,不要求目标函数具有线性、可微性等假定。也可以不必考虑其它与具体问题有关的特殊知识。这使得遗传进化算法具有应用的广泛性。并且易于写出一个通用的算法,来求解许多不同的优化问题。

4)遗传进化算法具有很好的易修改性。原问题进行了改动,遗传算法不必像其它优化算法一样进行大改动就可以适应新的问题。

3 用于负荷参数辨识的遗传进化算法设计

3.1 基本算法

在进化规划法(E P)中,问题的解常以实向量表示,繁殖的手段是在父代上加上一个高斯分布的随机向量来实现变异。本论文所采用的基本算法如下:

1)问题表示。将优化问题的解X表示成d维向量的形式,X=[x1,x2,…,x d],a j

2)解群的初始化。随机产生一个初始解群式, x(i)j=Rand()*(b j-a j)+a j, i=1,2,…,n,

j=1,2,…,d(6)其中函数Rand()产生均匀分布于(0,1)的随机变量。

3)计算适应值。对每一个解X(i),计算其适应度f i=F(X(i)),这里沿用优化目标函数E(X(i))——即误差函数E w,不再另外设计适应度函数。记误差值e i=E(X(i)),误差值越小,表示适应得越好。静态和动态负荷辨识的误差函数见公式(2)。

4)变异。将当前解群中的每一个解向量X(i), i=1,2,…,n加上一个正态分布的d维随机变量,得到其子代

x(i)′

j=x

(i)

j, j=1,2,…,d

(7)

38清华大学学报(自然科学版)1999,39(3)

式中N0, j

e i

e max

+Z j为解向量,为j维向量的变异

量,它是均值为0,方差为 j

e i

e max

+Z j的正态分布

随机变量。

5)竞争。通过每一个个体X(i)与随机选出的m 个体进行竞争,计算每个个体的失败点数W(i)来反映其竞争能力。本算法采纳了精华保留法,即保留了E个最好的解。则

W(i)= m j=1w j,其中w j=1, i,j>

e r

j

e r

j

+e i

,

0.

(8)

式中 i,j是(0,1)上的均匀分布的随机变量,e r

j /(e r

j

+e i)反映X(i)对X(r j)的竞争优势,e i越小,则其值越大,这样w j为1(竞争失利一次)的概率越小。

6)选择。将所有的个体(如果每个父代产生一个子代,这时共2n个)按W值大小升序排列,取排在前面的n个体作为下一代种群。

7)返回步骤4,直到迭代步骤已到给定值或者人为要求中止退出。

3.2 静态负荷算例

令种群规模n=50,每个个体面对竞争个数为m=30,每代保留10%的精华,即E=n 10%=5个。变异量参数Z=0.001,比例因子 =e-0.08 n S,其中n S为迭代步数。解向量变化范围如表1:

表1 参数变化范围

界P0a1a2Q0b1b2

上11071161

下0-1-30-1-30

该变化范围仅在随机产生初始解群时使用,种群进化演变过程中并未对各个体进行范围检验,因为实际上那些不合理的解相应的误差值很大,很快就会被淘汰掉。

算例:某工业负荷实测数据(负荷味精线)辨识分别对P,Q进行辨识,100代后结果如下(见表2)。

味精线静态负荷模型为:

P=0.454084U1.405, Q=0.179435U3.206.

P0,a1,Q0,b1每次辨识结果都非常接近,辨识重复多次均很快能收敛到某一个结果附近,由于现场试验未虑及频率变化,实际测得的数据中所包含关于频率的信息过于的少,远远在噪声和测量误差之下,因此与频率f有关的参数a2,b2每次结果都相去甚远,所以辨识时不考虑频率特性,即令a2,b2均为0。

有功和无功拟合曲线与实测曲线的比较见图1。

图1 静态负荷模型有功、无功拟合与实测曲线比较

3.3 动态负荷算例

令种群规模n=200,每个个体面对竞争个数为m=80,每代保留10%的精华,即E=n 10%=20个。变异量参数Z=0.001, =e-0.002 n S,其中n S为迭代步数。解向量变化范围为(-20,20)。

算法中与模型相关的参数为:M为模型阶数,常用的为1阶和2阶。I为布尔量,线性模型取0,非线性模型取1。

对味精线的动态负荷数据进行辨识,固定迭代步数3000代,用一阶线性模型和二阶非线性建模。辨识一阶线性最后结果见表3,有功、无功拟合曲线见图2、3。

图2 动态负荷有功、无功一阶线性

图3 动态负荷有功二阶非线性

3.4 结果分析

1)辨识结果是令人满意的。比较图形可以看出EP法的结果比最小二乘法给出的结果更优。改变模型阶次,或者由线性模型变为非线性模型,算法表

39

朱守真,等: 负荷建模和参数辨识的遗传进化算法

表2 有功、无功功率的电压特性

有功

E w P0a1

无功

E w Q0b1

0.001640187390.454084 1.4056870.001279161910.179435 3.206189 0.001650695740.453899 1.3920680.001293138090.179156 3.334360 0.001653239680.454093 1.3711640.001296446280.178940 3.282196 0.001653973170.453688 1.4250570.001307012980.179701 3.140772 0.001689126050.454194 1.3447730.001308194530.179461 3.281395

表3 P, Q的一阶线性辨识结果

P

E w a0b0 b1 c0 c1

Q

E w a1b0b1c0c1

0.024*******.689 4.052-13.950-7.8469.1660.0068562140.954 5.354-5.220-6.0208.200 0.024*******.686 4.279-14.169-8.2299.4720.0068737610.956 5.409-5.284-5.7367.888 0.024*******.687 4.254-14.145-8.0549.2140.0068765850.954 5.465-5.332-5.7597.795 0.024*******.689 4.370-14.268-8.2069.3050.0068776330.955 5.399-5.271-5.9788.031 0.024*******.690 4.305-14.204-8.2929.4220.0068809900.955 5.522-5.397-5.9888.080

现出很好的稳健性。而最小二乘法等传统方法因模型阶次提高或引入非线性因素使结果变得恶化。

2)初始解群可以通过随机的办法产生,亦可结合对于待解问题的某些已知信息来获得。EP方法原则上可允许初始解范围没有限制而搜寻到最优解。本算例是利用负荷的已有的知识和经验使与最优解比较接近,并给出了大于最优解20倍的范围,仍获得了理想的解。

遗传进化算法的缺点在于计算量较大,但其内在的并行能力在一定程度上弥补了这一点。更重要的是它能够在许多别的现行算法一筹莫展的问题上发挥作用[6]。

参 考 文 献

1CIGR E study Commit tee38,L o ad M odeling and Dy nam ics.EL ECT RA,1990.124~141

2IEEE T ask Fo rce o n L oad Repr esentat ion fo r Dy nam ics P erfo rm ance,Lo ad R epr esent atio n fo r

Dy nam ic Per for mance A naly sis.IEEE T rans,1993,

PA S-8,(2):472~482

3岑文辉,赵庆,戴文祥.遗传算法及其在电网规划中的应用.第十届全国高校电力系统及其自动化专业年会论文集,上海,1994.931~936

4Y ang H Y,Y ang P C,Huang C L.Ev olutio nar y Pr og r amming Based Eco no mic Dispatch fo r U nits w it h

N on-Smo ot h Fuel Co st F unctio ns.IEEE PES W inter

Po w er M eet ing,U SA,1995

5M a J T,W u Q H.A pplicatio n of Ev olutio nar y Pr og r amming to Optimal Rea ct ive P ow er Dispatch.

Pr oceedings of the Fir st IEEE Co nfer ence o n

Evo lutionar y Computation,U SA,1994

6文福拴,韩祯祥.模拟进化优化方法在电力系统中的应用综述(上、中、下).电力系统自动化,1996,20(1

~3):59~63,60~64,72~75

Evolutionary programming algorithm

for load modeling and parameter

identif ication

ZHU Shouzhen,SHEN Shande,ZHENG Yuhui,

LI Li,AI Qian,QU Zuyi

Depar tment of Electrical Eng ineering,

T sing hua U niver sity,Beijing100084,China;

N o rtheast China Elect ric P ow er Gr oup,

Sheny ang110006,China

Abstract T his paper pr opo ses an evo lutionar y pr og ramm ing(EP)alg or ithm applying to load modeling and par ameter identificatio https://www.doczj.com/doc/4e5699222.html,par ed w ith co nv entio nal m et hods,EP algo rithm is a sear ch met ho d t ha t can be used fo r nonlinear and discontinuo us pro blems.Cases o f bo th stat ic and dynamic lo ad dat a fro m field ex per iments ar e studied.F or st atic load modeling the identificatio n r esult of EP method is better than that o f the least squar e met ho d.It can be used fo r differ ent kinds o f static loa d mo dels w ith m inor modificat ion;w hich show s its univer sality.T he ex act and r obust r esults sho w the advantag e o f t his metho d in dynamic lo ad mo deling and paramet er identifica tio n.

Key words evo lut ionar y pr og ram ming;load mo deling;

param eter identificatio n

40清华大学学报(自然科学版)1999,39(3)

遗传算法参数调整实验报告(精)

遗传算法参数调整实验报告 算法设计: 编码方案:遍历序列 适应度函数:遍历路程 遗传算子设计: 选择算子:精英保留+轮盘赌 交叉算子:Pxover ,顺序交叉、双亲双子, 变异算子:Pmutation ,随机选择序列中一个染色体(城市)与其相邻染色体交换 首先,我们改编了我们的程序,将主函数嵌套在多层迭代之内,从外到内依此为: 过程中,我们的程序将记录每一次运行时种群逐代进化(收敛)的情况,并另外记录总体测试结果。 测试环境: AMD Athlon64 3000+ (Overclock to 2.4GHz)

目标:寻求最优Px 、Pm 组合 方式:popsize = 50 maxgen = 500 \ 10000 \ 15000 Px = 0.1~0.9(0.05) Pm = 0.01~0.1(0.01) count = 50 测试情况:运行近2万次,时间约30小时,产生数据文件总共5.8GB 测试结果:Px, Pm 对收敛结果的影响,用灰度表示结果适应度,黑色为适应度最低 结论:Px = 0.1 ,Pm = 0.01为最优,并刷新最优结果19912(之前以为是20310),但20000次测试中最优解只出现4次,程序需要改进。 Maxgen = 5000 Pm=0.01 Px = 0.1 Maxgen = 10000 0.1 0.9 Px = 0.1 0.9 0.1

目标:改进程序,再寻求最优参数 方式:1、改进变异函数,只保留积极变异; 2、扩大测试范围,增大参数步进 popsize = 100 \ 200 \ 400 \ 800 maxgen = 10000 Px = 0.1 \ 0.5 \ 0.9 Pm = 0.01 \ 0.04 \ 0.07 \ 0.1 count = 30 测试情况:运行1200次,时间8小时,产生数据文件600MB 测试结果: 结论:Px = 0.1,Pm = 0.01仍为最优,收敛情况大有改善,10000代基本收敛到22000附近,并多次达到最优解19912。变异函数的修改加快了整体收敛速度。 但是收敛情况对Pm并不敏感。另外,单个种群在遗传过程中收敛速度的统计,将是下一步的目标。

用遗传算法实现PID参数整定

用遗传算法实现PID参数整定 作者:万佑红, 李新华 作者单位:万佑红(南京邮电学院,电子工程系,江苏,南京,210003), 李新华(安徽大学,电子工程系,安徽,合肥,230001) 刊名: 自动化技术与应用 英文刊名:TECHNIQUES OF AUTOMATION AND APPLICATIONS 年,卷(期):2004,23(7) 被引用次数:17次 参考文献(5条) 1.Bennet S Development of the PID controllers 1993(02) 2.张晓缋;方浩;戴冠遗传算法的编码机制研究 1997(02) 3.薛定宇控制系统计算机辅助设计 1996 4.赵洁基于神经网络-遗传算法的双轴运动PID控制[期刊论文]-自动化技术与应用 2003(07) 5.陶永华;尹怡欣;葛芦生新型PID控制及其应用 1998 本文读者也读过(6条) 1.席育凡.曾光.张静刚.XI Yu-fan.ZENG Guang.ZHANG Jing-gang基于改进遗传算法的数字PID参数整定[期刊论文]-西安理工大学学报2006,22(4) 2.陈永红.朱从乔.王基基于自适应在线遗传算法的PID参数整定与优化[会议论文]- 3.李俊丽.张光辉.LI Jun-li.ZHANG Guang-hui鲁棒PID控制器参数整定与仿真[期刊论文]-自动化与仪表 2005,20(3) 4.谢勤岚.陈红基于遗传算法的PID控制器优化设计[期刊论文]-光学与光电技术2003,1(3) 5.宋洪法.靳其兵.赵梅.SONG Hong-fa.JIN Qi-bing.ZHAO Mei基于改进遗传算法的PID参数整定策略[期刊论文]-北京化工大学学报(自然科学版)2005,32(2) 6.陈敏.谭思云.黄玉清.CHEN Min.TAN Si-yun.HUANG Yu-qing遗传算法在PID参数整定中的应用[期刊论文]-仪表技术2010(5) 引证文献(17条) 1.张付祥.付宜利.王树国基于遗传算法的多PID控制器参数整定[期刊论文]-制造业自动化 2005(5) 2.唐锐.文忠波.文广一种基于遗传PID控制的力反馈双向伺服系统研究[期刊论文]-机床与液压 2009(4) 3.刘国联.谭冠政.何燕基于改进人工免疫算法的PID参数优化研究[期刊论文]-计算机工程与应用 2008(19) 4.赵语涛.张健成二次速度调节中的遗传PID控制方法[期刊论文]-液压与气动 2005(10) 5.邓长春.朱儒明.李咏霞.许波一种求解TSP问题的多种群并行遗传算法[期刊论文]-计算机仿真 2008(9) 6.唐锐.文忠波.文广一种基于BP神经网络的模糊PID控制算法研究[期刊论文]-机电产品开发与创新 2008(2) 7.张建平.刘庆滨生物制氢过程实现温度控制的解决方案[期刊论文]-自动化技术与应用 2005(5) 8.董红生基于多点频率特性辨识的自整定 PID控制器的研究[期刊论文]-自动化技术与应用 2005(5) 9.张索峰.李平基于改进粒子群算法的PID参数整定[期刊论文]-工业仪表与自动化装置 2010(2) 10.张俐基于小生境遗传算法的MTSP问题求解[期刊论文]-系统工程 2009(7) 11.吴春富基于遗传算法优化的模糊PID控制研究[期刊论文]-自动化技术与应用 2005(7) 12.乔志杰.程翠翠基于遗传算法优化的模糊PID控制研究及其仿真[期刊论文]-皖西学院学报 2009(5) 13.乔志杰.程翠翠基于遗传算法优化的模糊PID控制研究及其仿真[期刊论文]-安徽电气工程职业技术学院学报

遗 传 算 法 详 解 ( 含 M A T L A B 代 码 )

遗传算法入门(上)代码中的进化学说与遗传学说 写在之前 算法所属领域 遗传算法的思想解析 为什么要用遗传算法? 科研现状 应用现状 遗传算法入门系列文章: (中篇)遗传算法入门(中)实例,求解一元函数最值(MATLAB版)(下篇)遗传算法入门(下)实例,求解TSP问题(C++版) 写在之前 说明:本想着用大量篇幅写一篇“关于遗传算法的基本原理”作为本系列入门的第一篇,但是在找寻资料的过程中,看到网络上有大量的关于遗传算法的介绍,觉得写的都挺好,所以本文我就简单写点自己的理解。 推荐几篇关于遗传算法的介绍性文章: 遗传算法详解(GA)(个人觉得很形象,很适合初学者) 算法所属领域 ? 相信每个人学习一门知识之前,都会想知道这门知识属于哪一门学科范畴,属于哪一类技术领域? ? 首先对于这种问题,GA是没有绝对的归属的。算法的定义是解决问题的一种思想和指导理论。而遗传算法也是解决某一问题的一种思想,用

某一编程语言实现这种思想的程序具有很多特点,其中一个便是智能性和进化性,即,不需要大量的人为干涉,程序本身能够根据一定的条件自我筛选,最终得出令人满意的结果。所以按照这种特性,把它列为人工智能领域下的学习门类毫无疑问是可以的。遗传算法的思想是借鉴了达尔文的进化学说和孟德尔的遗传学说,把遗传算法说成是一门十足的仿生学一点都不过分。然而从应用的角度出发,遗传算法是求最优解问题的好方法,如信号处理中的优化、数学求解问题、工业控制参数最优解、神经网络中的激活函数、图像处理等等,所以把遗传算法说成优化范畴貌似也说的过去。为了方便理解,我们可以暂时将其定位为人工智能–智能优化,这也是很多书中描述遗传算法的惯用词汇。 遗传算法的思想解析 遗传算法(gentic algorithms简称GA)是模拟生物遗传和进化的全局优化搜索算法 ? 我们知道,在人类的演化中,达尔文的进化学说与孟德尔的遗传学说起着至关重要的理论指导。每个人作为一个个体组成一个人类种群,正是经历着物竞天择,才会让整个群体慢慢变的更好,即更加适应周围的环境。而每一代正是靠着基因交叉与变异才能繁衍出更加适应大自然规律的下一代个体。总之,在漫长的迭代进化中,一个不适应环境的群体,在物竞天择和交叉变异中慢慢变的适应了环境。 ? GA的思想完全模拟了生物的进化和遗传方式。我们在求解一个问题的最优解时,先人为的产生很多任意的解,组成一个解集(一个解是一个个体,一个解集是一个种群),这些解有好有坏。我们的最终目的是让这

遗传算法的流程图

一需求分析 1.本程序演示的是用简单遗传算法随机一个种群,然后根据所给的交叉率,变异率,世代数计算最大适应度所在的代数 2.演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“提示信息”之后,由用户在键盘上输入演示程序中规定的命令;相应的输入数据和运算结果显示在其后。3.测试数据 输入初始变量后用y=100*(x1*x1-x2)*(x1*x2-x2)+(1-x1)*(1-x1)其中-2.048<=x1,x2<=2.048作适应度函数求最大适应度即为函数的最大值 二概要设计 1.程序流程图 2.类型定义 int popsize; //种群大小 int maxgeneration; //最大世代数 double pc; //交叉率 double pm; //变异率 struct individual

{ char chrom[chromlength+1]; double value; double fitness; //适应度 }; int generation; //世代数 int best_index; int worst_index; struct individual bestindividual; //最佳个体 struct individual worstindividual; //最差个体 struct individual currentbest; struct individual population[POPSIZE]; 3.函数声明 void generateinitialpopulation(); void generatenextpopulation(); void evaluatepopulation(); long decodechromosome(char *,int,int); void calculateobjectvalue(); void calculatefitnessvalue(); void findbestandworstindividual(); void performevolution(); void selectoperator(); void crossoveroperator(); void mutationoperator(); void input(); void outputtextreport(); 4.程序的各函数的简单算法说明如下: (1).void generateinitialpopulation ()和void input ()初始化种群和遗传算法参数。 input() 函数输入种群大小,染色体长度,最大世代数,交叉率,变异率等参数。 (2)void calculateobjectvalue();计算适应度函数值。 根据给定的变量用适应度函数计算然后返回适度值。 (3)选择函数selectoperator() 在函数selectoperator()中首先用rand ()函数产生0~1间的选择算子,当适度累计值不为零时,比较各个体所占总的适应度百分比的累计和与选择算子,直到达到选择算子的值那个个体就被选出,即适应度为fi的个体以fi/∑fk的概率继续存在; 显然,个体适应度愈高,被选中的概率愈大。但是,适应度小的个体也有可能被选中,以便增加下一代群体的多样性。 (4)染色体交叉函数crossoveroperator() 这是遗传算法中的最重要的函数之一,它是对个体两个变量所合成的染色体进行交叉,而不是变量染色体的交叉,这要搞清楚。首先用rand ()函数产生随机概率,若小于交叉概率,则进行染色体交叉,同时交叉次数加1。这时又要用rand()函数随机产生一位交叉位,把染色

遗传算法的参数整定报告

基于遗传算法的PID控制器参数整定报告 一、遗传算法。 遗传算法(GAs)是基于自然界生物进化机制的搜索寻优技术。用遗传算法来整定PID参数,可以提高优化性能,对控制系统有良好的控制精度、动态性能和鲁棒性。 一般的,Gas包括三个基本要素:复制、交叉和突变。 二、PID Optimal-Tuning PID控制:对偏差信号e(t)进行比例、积分和微分运算变换后形成的一种控制规律。 (1) 可调参数:比例度δ(P)、积分时间Ti(I)、微分时间Td(D)。 通常,PID控制准则可以写成下面传递函数的形式: ) 1( ) (s T T s K s G d i p + + =(2) Kp、Ti和Td分别是比例放大率、积分时间常量和微分时间常量。 1)比例控制(P):是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误 差(Steady state error),比例度减小,稳态误差减小; 2)积分(I)控制:在积分控制中,控制器的输出与输入误差信号的积分成正比关系。 3)微分(D)控制:在微分控制中,控制器的输出与输入误差信号()()()()? ? ? ? ? ? + + =?t e dt d T d e T t e K t u d t i p0 1 τ τ

的微分(即误差的变化率)成正比关系。 文中,性能指标是误差平方的时间加权积分,表示为: ),,1,0(,0 2n k dt e t J i t k ==? (3) 其中n 是非负整数,i t 是积分周期。此外,其他标准项如超调量、上升时间和稳定时间也被一个合成性能指标选择: ))(1(s s r r c t c t c os J ++= (4) s r os t t 、、分别代表超调量、上升时间和稳定时间。s r c 、c 两个系数有用户定义或决定。预期的性能指标的最下化可以认为是小的超调量、短的上升时间和稳定时间。 三个PID 参数的编码方式如下: 10101011:S 1010100011100111 p K i K d K p K 、i K 和d K 都是八位二进制字符格式。 自适应函数的选择关系到性能指标,如: 101)(J J F F == (5) 实际上,)(J F 可以是任何一个能切实表达F 和J 关系的非线性函数。 遗传操作是模拟生物基因遗传的操作,从优化搜索的角度而言,遗传操作可使问题的解一代一代地优化,并逼近最优解,主要包括三个遗传算子:选择、交叉和变异。关于他们的具体方法这里不在赘述。 三、 计算机实现 作者编程使用的事TURBO C 。程序包括两个部分:一个是仿真PID 控制系统的闭环阶跃响应;另一个是实施对一代所有成员的遗传算法的仿真,这里遗传算法将一代作为一个整体。在第一代生物的二进制代码随机产生之后,这个过程重复直至迭代次数达到预选的次数。 步长、PID 参数X 围、性能指标、自适应函数和方法得时间延迟都是从一个文件中读取。而遗传算法的的参数,诸如世代数、交叉概率、变异概率、选择概率等通过菜单选择。 整个闭环系统仿真的完成可以用四阶龙格库塔法或直接时域计算。在程序中,复制的实现是通过轮盘赌博法的线性搜索,面积加权于上一代成员的适应值。交叉发生在每一对复制产生的成员。 交叉操作是将一个随机产生的一个在0到1之间数与交叉概率比较决定是否需要交叉。如果需要交叉,则在1到47之间随机产生一个交叉位置代码。变异,对新一代所有成员都随机产生一个0到1之间的数与变异概率比较,然后再决定是否改变代码的一位。同理,反转也是这样判定和操作的。另一需要说明的事,两个反转位置代码是在1~48之间随机选择的。同样,

基于博弈论的协同进化算法

基于博弈论的协同进化算法:一种新的计算方法 摘要:博弈论是数学分析的方法,用于开发研究决策过程的。1928年,冯·诺依曼在数学上证明,每两个人,在zero sum那个游戏里,许多每个玩家纯的有限的策略是确定性。在50年代早期,纳什提出了另一个概念,作为推广冯·诺依曼理论的基础。博弈论另外一个主要成就就是引入演化博弈论,即媒介可以在缺乏合理性的情况下,采用最优战略。根据达尔文选择过程,媒介的人口数可以进化到由梅纳德·史密斯在1982年提出的进化稳定策略。为了跟上游戏理论研究的步伐,希利斯试用了第一台计算机的模拟进化。此外,考夫曼提出了NK模型,分析不同物种之间的协同进化动力学。他展示了协同进化的现象如何达到静止状态,这些状态是在博弈论中不是纳什的论均衡亦是ESS。 由于涉及共同进化现象的研究已发起,因此,已经很有很多其他研究人员在进行协同进化算法的研究。在这篇文章中,我们提出了一个新的协同进化算法,它是基于协同进化算法(GCEA)的,那就是博弈论。我们认为,通过搜索EES, 这种算法可以解决进化问题。我们解决了几个测试多目标优化问题(MOPS)用以评估此新的方法。从这些评估的结果,我们可以证实,进化博弈可由共同进化算法来实施。而且,通过比较我们的算法与其他进化算法的性能,分析出我们的性能较优化。 第一部分简介 博弈论被分成两大类,合作与不合作。非合作博弈论的目的,是充分说明合作以及不合作。因此在本文中,我们将非合作博弈理论作为关注的焦点,在1928年,冯·诺依曼已经奠定了非合作博弈论。同时,在1951年,纳什提出了另一个概念,作为概括冯·诺依曼理论的基础。在他的文章中,双人游戏的解决方案对于战略的最低要求就是候选人,作为一个对战略的最低要求是对两个人的游戏解决方案的候选人,他建议每个策略都要给对方最好的答复。这样一对策略,这是纳什均衡,成为现代化的基础非合作博弈论。 由于纳什均衡提出的非合作博弈的解决方案,因此寻求博弈均衡的研究已经开始了。在这些研究中,演化博弈论被看作是当特殊表型取决于人口频率变化是,研究表型水平变化的一种方式。列万廷第一次明确地应用博弈论在进化生物学。他的做法是寻求尽量减少物种灭绝可能性的策略,但是,是一个图片物种游戏,违反了自然规律。Slobodkin和拉波波特也进行了类似的研究。同时,汉密尔顿寻求一个无与伦比的战略,这个战略与梅纳德·史密斯和普赖斯定义的进化稳定策略(ESS)基本相同。 紧跟这些研究中,我们将协同进化算法试用于研究不同物种之间的进化。希尔利斯演示了如何将模拟进化应用于实际优化问题中,而且特别是寄生虫进化如何能提高协同进化的过程。模拟进化是对生物系统某些方面的理想化。还有,汉密尔顿同时使用计算机模拟和数学论证提出怎么进化能够产生遗传多样性。这改善了进化过程增加在优化效率。 几个研究共同进化的研究人员研究了演化博弈论这种现象。考夫曼基于NK类统计模型介绍了协同进化。他表示,协同进化的生态系统如何实现纳什均衡,以及如何稳定扰动这种均衡。在他的论文中,他描述了一种新型的调查协同进化问题的模型。这个模型与梅纳德·史密斯和普赖斯提出的ESS息息相关。与此同时,罗辛和贝尔柳提出,进化是假设通过博弈理论模型的基础上的,例如梅纳德·史密斯的ESS和囚徒困境逻辑。他们声称,它也出现在的人工智能游戏战略的演变上,其中潜在对手的范围使得难以建立一个单一,固定的,外源的适应度函数为通常用在遗传算法。 第二部分

遗传算法的数据挖掘综述

基于遗传算法的数据挖掘综述 朱玲 (江西理工大学信息工程学院,赣州市中国 341000) 摘要:本文定义了遗传算法概念和理论的来源,介绍遗传算法的研究方向和应用领域,解释了遗传算法的相关概念、编码规则、三个主要算子和适应度函数,描述遗传算法计算过程和参数的选择的准则,并且在给出的遗传算法的基础上结合实际应用加以说明。 关键词:数据挖掘;遗传算法 Data Mining Based on Genetic Algorithm Zhu Ling (College of Information Engineering, Jiangxi University of Science and Technology, Ganzhou, China 341000) Abstract:This paper defines the concept of genetic algorithm and the source of the theory, introduces the research direction and application field of genetic algorithm, explains the related concepts, coding rules, three main operators and fitness functions of genetic algorithm, describes the genetic algorithm calculation process and Parameter selection criteria, and in the given genetic algorithm based on the combination of practical applications to be explained. Key words: data mining; genetic algorithm 前言 遗传算法(genetic algorithm,GAs)试图计算模仿自然选择的过程,并将它们运用于解决商业和研究问题。遗传算法于20世界六七十年代由John Holland[1] 发展而成。它提供了一个用于研究一些生物因素相互作用的框架,如配偶的选择、繁殖、物种突变和遗传信息的交叉。在自然界中,特定环境限制和压力迫使不同物种竞争以产生最适应于生存的后代。在遗传算法的世界里,会比较各种候选解的适合度,最适合的解被进一步改进以产生更加优化的解。 遗传算法借助了大量的基因术语。遗传算法的基本思想基于达尔文的进化论和孟德尔的遗传学说,是一类借鉴生物界自然选择和自然遗传机制的随机搜索算法。生物在自然界的生存繁殖,显示对其自然环境的优异自适应能力。受其启发,人们致力于对生物各种生存特性的机制研究和行为模拟。通过仿效生物的进化与遗传,根据“生存竞争”和“优胜劣汰”的原则,借助选择、交叉、变异等操作,使所要解决的问题从随机初始解一步步逼近最优解。现在已经广泛的应用于计算机科学、人工智能、信息技术及工程实践。[2]在工业、经济管理、交通运输、工业设计等不同领域,成功解决了许多问题。例如,可靠性优化、流水车间调度、作业车间调度、机器调度、设备布局设计、图像处理以及数据挖掘等。遗传算法作为一类自组织于自适应的人工智能技术,尤其适用于处理传统搜索方法难以解决的复杂的和非线性的问题。 1.遗传算法的应用领域和研究方向 1.1遗传算法的特点 遗传算法作为一种新型、模拟生物进化过程的随机化搜索方法,在各类结构对象的优化过程中显示出比传统优化方法更为独特的优势和良好的性能。它利用其生物进化和遗传的思想,所以它有许多传统算法不具有的特点[3]: ※搜索过程不直接作用在变量上,而是作用于由参数集进行了编码的个体上。此编码操作使遗传算法可以直接对结构对象进行操作。 ※搜索过程是从一组解迭代到另一组解,采

最新最全的遗传算法工具箱及说明

最新最全的遗传算法工具箱Gaot_v5及说明 Gaot_v5下载地址:https://www.doczj.com/doc/4e5699222.html,/mirage/GAToolBox/gaot/gaotv5.zip 添加遗传算法路径: 1、 matlab的file下面的set path把它加上,把路径加进去后在 2、 file→Preferences→General的Toolbox Path Caching里点击update Toolbox Path Cache更新一下,就OK了

遗传算法工具箱Gaot_v5包括许多实用的函数,各种算子函数,各种类型的选择方式,交叉、变异方式。这些函数按照功能可以分成以下几类:

主程序 ga.m提供了 GAOT 与外部的接口。它的函数格式如下: [x endPop bPop traceInfo]=ga(bounds,evalFN,evalOps,startPop,opts,termFN,termOps, selectFn,selectOps,xOverFNs,xOverOps,mutFNs,mutOps) 输出参数及其定义如表 1 所示。输入参数及其定义如表 2 所示。 表1 ga.m的输出参数 输出参数 定义 x 求得的最好的解,包括染色体和适应度 endPop 最后一代染色体(可选择的) bPop 最好染色体的轨迹(可选择的) traceInfo 每一代染色体中最好的个体和平均适应度(可选择的) 表2 ga.m的输入参数 表3 GAOT核心函数及其它函数

核心函数: (1)function [pop]=initializega(num,bounds,eevalFN,eevalOps,options)--初始种群的生成函数 【输出参数】 pop--生成的初始种群 【输入参数】 num--种群中的个体数目 bounds--代表变量的上下界的矩阵 eevalFN--适应度函数 eevalOps--传递给适应度函数的参数 options--选择编码形式(浮点编码或是二进制编码)[precision F_or_B],如 precision--变量进行二进制编码时指定的精度 F_or_B--为1时选择浮点编码,否则为二进制编码,由precision指定精度) (2)function [x,endPop,bPop,traceInfo] = ga(bounds,evalFN,evalOps,startPop,opts,... termFN,termOps,selectFN,selectOps,xOverFNs,xOverOps,mutFNs,mutOps)--遗传算法函数 【输出参数】 x--求得的最优解 endPop--最终得到的种群 bPop--最优种群的一个搜索轨迹 【输入参数】

遗传算法工具箱识别(GA)Bouc-Wen模型参数辨识-识别

Bouc-Wen模型因数字处理方便简单而得到较为广泛的应用,力可以表示为: 利用遗传算法工具箱(GA)对Bouc-Wen模型进行参数识别。 实验数据来源于对磁流变阻尼器(MR damper)进行性能测试,试验获得的数据包括力F,位移x,采用频率已知,速度和加速度可以由位移求导得出。 参数识别出现程序如下:(文件名:Copy_0_of_BoucWen) function j=myfung(x) y0=[0]; yy=y0; tspan=[]'; s=[]'; v=[]'; Ft=[]'; rr=max(size(s));%计算数据个数 i=1; while (i1e5))%%判断是否出现奇异点,具体忘了。。 [t y]=ode45(@uubird,[tspan(i),tspan(i+1)],y0,[],v(i),x);%参考论坛的 y0=y(end,:); yy=[yy;y0]; i=i+1;

kk=max(size(y)); if kk>150 %微分方程计算,停止是有条件的(具体没去研究),这边设置150次,不管有没有收敛,都停止,不然整个程序运行的实际太久,你也可以改成其他的,慢慢研究 break; end end if (i==rr)&(~isnan(yy(1,1)))==1%判断是否出现奇异点(就是NAN),如果没有出现,就是正常的 F=x(:,4)*yy(:,1)+x(:,5)*(s-ones(size(s))*x(:,6))+x(:,7)*v;%x(:,4)代表alpha 5代表k0,6代表s0 7代表c0 位移s就是公式中的x j=sum((F-Ft).*(F-Ft)); i=i+1; else i<(rr-1)%出现奇异点(NAN) j=1e10;%因为出现奇异值,所以随便给一个目标函数值(这个要足够大),目的是排除这组优化值(也就是这个种群不要) i=rr; end function dy=uubird(t,y,v,x)

负荷建模和参数辨识的遗传进化算法

ISSN 1000-0054CN 11-2223/N 清华大学学报(自然科学版)J T singh ua Un iv (Sci &Tech ),1999年第39卷第3期 1999,V o l.39,N o.311/34 37~40   负荷建模和参数辨识的遗传进化算法* 朱守真, 沈善德, 郑宇辉, 李 力, 艾 芊, 曲祖义 清华大学电机工程与应用电子技术系,北京100084; 东北电力集团公司,沈阳110006 收稿日期:1998-06-23 第一作者:女,1950年生,副教授 *基金项目:国家攀登计划B(85-35) 文 摘 提出了一种用于电力系统负荷建模和参数辨识的遗传进化算法,该方法与传统的最小二乘法相比具有全局搜索优化特点,适用于非线性、不连续或微分不连续的各种负荷模型。该方法已成功用于工业负荷实测数据辨识及动态和静态负荷建模。在静态负荷建模上,辨识结果略优于传统的最小二乘法,且通用性更好,只需做极小的修改就可以用于各种形式的静态负荷模型。在动态负荷建模上算法不仅给出了更优秀的结果,而且表现出很好的稳健性。结果表明此方法在负荷建模中的优势。 关键词 遗传进化算法;负荷建模;参数辨识分类号 T M 761 电力负荷模型是电力系统分析、规划、运行和计算的基础,尤其在计算中对电力系统动态行为的模拟结果影响很大。不同的计算需要采用不同的负荷模型,常规采用以不同比例的恒定阻抗、恒定电流、恒定功率或考虑不同动静比例负荷模型的方式使计算结果相差很大,甚至会导致完全错误的结论[1,2]。研究表明建立符合实际的负荷模型是十分必要的。负荷特性具有时变、非线形、不确定等多种特点,且实际负荷的用电设备构成差别很大,尤其是当电压或电流变化时,负荷产生突变,这也增加了建模的难度和复杂性。参数辨识是负荷建模的核心,目前常用的有最小二乘法、辅助变量法、分段线性多项式等方法,其中传统的方法不能有效地克服负荷建模中的非线性和不连续性等问题,会产生多值性等误差。近年来ANN 方法在建模方面已取得成功,但该方法更侧重于模拟模型的动态过程,且形成的结果是非参数模型。 遗传进化算法是模拟自然界进化中优胜劣汰的 优化过程,原则上能以较大的概率找到全局的最优解,具有并行、通用、鲁棒性强,全局收敛性好等优 点。研究人员已在发电规划[3],发电调度[4],无功优化[5]中用算例证明了EP 方法比传统的梯度寻优技术更优越。 本文采用遗传进化算法对静态、动态负荷进行了实测建模。 1 电力负荷的数学模型 本文主要描述以负荷特性来分类的静态和动态模型的建模方法。1.1 静态负荷模型 静态负荷模型表示某一时刻负荷所吸收的有功功率和无功功率与同一时刻负荷母线电压和频率之间的函数关系。静态负荷模型一般以幂函数和多项式模型表示。 本文以幂函数模型为例进行计算,幂函数表示的静态负荷特性如下: P =P 0U a 1f a 2, Q =Q 0 U b 1 f b 2 . (1) 定义误差函数 E w = N i =1 [W m (i )-W c (i )] 2 N (2)式中:N 为测量点数,W m (i )分别表示第i 次有功或无功功率测量值,W c (i )表示利用第i 次采样U i ,f i 的值由式(1)得到的有功或无功计算值,X p 、X q 是待辨识参数的向量: X p =[P 0,a 1,a 2], X q =[Q 0,b 1,b 2]. (3) 辨识问题表述为极小值寻优问题,即搜索一组参数使误差E w 达到最小值。1.2 动态负荷的模型 动态负荷模型表示某一时刻负荷所吸收的有功

遗 传 算 法 详 解 ( 含 M A T L A B 代 码 )

matlab遗传算法工具箱函数及实例讲解(转引) 核心函数:? (1)function [pop]=initializega(num,bounds,eevalFN,eevalOps,options)--初始种群的生成函数?【输出参数】? ?pop--生成的初始种群?【输入参数】? ?num--种群中的个体数目? ?bounds--代表变量的上下界的矩阵? ?eevalFN--适应度函数? ?eevalOps--传递给适应度函数的参数? ?options--选择编码形式(浮点编码或是二进制编码)[precision F_or_B],如? precision--变量进行二进制编码时指定的精度? F_or_B--为1时选择浮点编码,否则为二进制编码,由precision指定精度)? (2)function [x,endPop,bPop,traceInfo] = ga(bounds,evalFN,evalOps,startPop,opts.? ?termFN,termOps,selectFN,selectOps,xOverFNs,xOverOps,mutFNs ,mutOps)--遗传算法函数?【输出参数】? x--求得的最优解? endPop--最终得到的种群?

bPop--最优种群的一个搜索轨迹?【输入参数】? bounds--代表变量上下界的矩阵? evalFN--适应度函数? evalOps--传递给适应度函数的参数? startPop-初始种群? opts[epsilon prob_ops display]--opts(1:2)等同于initializega 的options参数,第三个参数控制是否输出,一般为0。如[1e-6 termFN--终止函数的名称,如['maxGenTerm']? termOps--传递个终止函数的参数,如[100]? selectFN--选择函数的名称,如['normGeomSelect']? selectOps--传递个选择函数的参数,如[0.08]? xOverFNs--交叉函数名称表,以空格分开,如['arithXover heuristicXover simpleXover']? xOverOps--传递给交叉函数的参数表,如[2 0;2 3;2 0]? mutFNs--变异函数表,如['boundaryMutation multiNonUnifMutation nonUnifMutation unifMutation']? mutOps--传递给交叉函数的参数表,如[4 0 0;6 100 3;4 100 3;4 0 0]?注意】matlab工具箱函数必须放在工作目录下?【问题】求f(x)=x+10*sin(5x)+7*cos(4x)的最大值,其中0=x=9?【分析】选择二进制编码,种群中的个体数目为10,二进制编码长度为20,交叉概率为0.95,变异概率为0.08?【程序清单】?

遗传算法的参数整定报告

基于遗传算法的PID 控制器参数整定报告 一、 遗传算法。 遗传算法(GAs )是基于自然界生物进化机制的搜索寻优技术。用遗传算法来整定PID 参数,可以提高优化性能,对控制系统有良好的控制精度、动态性能和鲁棒性。 一般的,Gas 包括三个基本要素:复制、交叉和突变。 二、 PID Optimal-Tuning PID 控制:对偏差信号e(t)进行比例、积分和微分运算变换后形成的一种控制规律。 (1) 可调参数:比例度δ(P )、 积分时间Ti (I )、微分时间Td (D )。 通常,PID 控制准则可以写成下面传递函数的形式: )1()(s T T s K s G d i p ++= (2) Kp 、Ti 和Td 分别是比例放大率、积分时间常量和微分时间常量。 1) 比例控制(P ):是一种最简单的控制方式。其控制器的输出与输 入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误 差(Steady state error ),比例度减小,稳态误差减小; 2) 积分(I )控制:在积分控制中,控制器的输出与输入误差信号 的积分成正比关系。 3) 微分(D )控制:在微分控制中,控制器的输出与输入误差信号 的微分(即误差的变化率)成正比关系。 文中,性能指标是误差平方的时间加权积分,表示为: ),,1,0(,0 2n k dt e t J i t k Λ==? (3) 其中n 是非负整数,i t 是积分周期。此外,其他标准项如超调量、上升时间和稳定时间 ()()()()??????++=? t e dt d T d e T t e K t u d t i p 01ττ

基于遗传算法的参数优化估算模型

基于遗传算法的参数优化估算模型 【摘要】支持向量机中参数的设置是模型是否精确和稳定的关键。固定的参数设置往往不能满足优化模型的要求,同时使得学习算法过于死板,不能体现出来算法的智能化优点,因此利用遗传算法(Genetic Algorithm,简称GA)对估算模型的参数进行优化,使得估算模型灵活、智能,更加符合实际工程建模的需求。 【关键词】遗传算法;参数优化;估算模型 1.引言 随着支持向量机估算模型在工程应用的不断深入。研究发现,支持向量机算法(包括LS-SVM算法)存在着一些本身不可避免的缺陷,最为突出的是参数的选取和优化问题,以往在参数选取方面,一般依靠专家系统或者设定初始值盲目搜寻等等,在实际应用必然会影响模型的精准度,造成一定影响。如何选取合理的参数成为支持向量机算法应用过程中应用中关注的问题,同时也是目前应用研究的重点。而常用的交叉验证试算的方法,不仅耗时,且搜索目的不清,使得资源浪费,耗时耗力。不能有效的对参数进行优化。 针对参选取的问题,本文使用GA算法对模型中的参数设置进行优化。 2.遗传算法 2.1 遗传算法的实施过程 遗传算法的实施过程中包括了编码、产生群体、计算适应度、复制、交换、变异等操作。图1详细的描述了遗传算法的流程。 其中,变量GEN是当前进化代数;N是群体规模;M是算法执行的最大次数。 遗传算法在参数寻优过程中,基于生物遗传学的基本原理,模拟自然界生物种群的“物竞天则,适者生存”的自然规律。把自变量看作生物体,把它转化成由基因构成的染色体(个体),把寻优的目标函数定义为适应度,未知函数视为生存环境,通过基因操作(如复制、交换和变异等),最终求出全局最优解。 2.2 GA算法的基本步骤 遗传算法操作的实施过程就是对群体的个体按照自然进化原则(适应度评估)施加一定的操作,从而实现模型中数据的优胜劣汰,使得进化过程趋于完美。从优化搜索角度出发,遗传算法可使问题的解,一代一代地进行优化,并逼近最优解。 通常采用的遗传算法的工作流程和结果形式有Goldberg提出的,常用的GA 算法基本步骤如下: ①选择编码策略,把参数集合X和域转换为位串结构空间S。常用的编码方法有二进制编码和浮点数编码。 ②定义合适的适应度函数,保证适应度函数非负。 ③确定遗传策略,包括选择群体大小,选择、交叉、变异方法,以及确定交叉概率、变异概率等其它参数。 ④随机初始化生成群体N,常用的群体规模:N=20~200。 ⑤计算群体中个体位串解码后的适应值。 ⑥按照遗传策略,运用选择、交叉和变异算子作用于群体,形成下一代群体。 ⑦判断群体性能是否满足某一个指标,或者以完成预订迭代次数,若满足则

基于遗传算法的PID参数整定

摘要:研究自动控制器参数整定问题,PID参数整定是自动控制领域研究的重要内容,系统参数选择决定控制的稳定性和快速性,也可保证系统的可靠性。传统的PID参数多采用试验加试凑的方式由人工进行优化,往往费时而且难以满足控制的实时要求。为了解决控制参数优化,改善系统性能,提出一种遗传算法的PID 参数整定策略。 在本文里,通过介绍了遗传算法的基本原理,并针对简单遗传算法在PID控制中存在的问题进行了分析,提出在不同情况下采用不同的变异概率的方法,并对其进行了实验仿真。结果表明,用遗传算法来整定PID参数,可以提高优化性能,对控制系统具有良好的控制精度、动态性能和鲁棒性。 关键词:PID控制器;遗传算法;整定PID 1 引言 传统的比例、积分、微分控制,即PID控制具有算法简单、鲁棒性好和可靠性高等优点,已经被广泛用于工业生产过程。但工程实际中,PID控制器的比例、积分和微分调节参数往往采用实验加试凑的方法由人工整定。这不仅需要熟练的技巧,往往还相当费时。更为重要的是,当被控对象特性发生变化,需要控制器参数作相应调整时,PID控制器没有自适应能力,只能依靠人工重新整定参数,由于经验缺乏,整定结果往往达不到最优值,难以满足实际控制的要求。考虑生产过程的连续性以及参数整定费事费力,这种整定实际很难进行。所以,人们从工业生产实际需要出发,基于常规PID控制器的基本原理,对其进行了各种各样的改进。近年来许多学者提出了基于各种智能算法的PID整定策略,如模糊PID,神经元网络PID等…,但这些先进算法都要求对被控对象有很多的先验知识,在实际应用中往往难于做到。随着计算技术的发展,遗传算法有了很大的发展。将遗传算法用于控制器参数整定,已成为遗传算法的重要应用之一。 本文介绍基于遗传算法的PID参数整定设计方法。这是一种寻求全局最优的控制器优化方法,且无需对目标函数微分,可提高参数优化效果,简化计算过程。仿真实例表明该方法与其他传统寻优方法相比,在优化效果上具有一定的优势。 2 遗传算法简介 2.1 遗传算法的基本原理 遗传算法是John H.Holland根据生物进化的模型提出的一种优化算法。自然选择学说是进化论的中心内容。根据进化论,生物的发展进化主要有三个原因:即遗传、变异和选择。遗传算法基于自然选择和基因遗传学原理的搜索方法,将“优胜劣汰,适者生存”的生物进化原理引入待优化参数形成的编码串群体中,按照一定的适应度函数及一系列遗传操作对各个体进行筛选,从而使适应度高的个体被保留下来,组成新的群体;新群体包含上一代的大量信息,并且引入了新的优于上一代的个体。这样周而复始,群体中各个体适应度不断提高,直至满足一定的极限条件。此时,群体中适应度最高的个体即为待优化问题的最优解。 遗传算法通过对参数空间编码并用随机选择作为工具来引导搜索过程朝着更高效的方向发展。正是由于遗传算法独特的工作原理,使它能够在复杂空间进行全局优化搜索,具有较强的鲁棒性。另外,遗传算法对于搜索空问,基本上不需要什么限制性的假设(如连续、可微及单峰等)。而其它优化算法,如解析法,往往只能得到局部最优解而非全局最优解,且需要目标函数连续光滑及可微;枚举

协同进化数值优化算法及其应用分析

Vol.32No.9 Sep.2016 赤峰学院学报(自然科学版)JournalofChifengUniversity(NaturalScienceEdition)第32卷第9期(上) 2016年9月协同进化数值优化算法及其应用分析 梁树杰 (广东石油化工学院高州师范学院,广东 高州525200) 摘 要:探讨协同进化数值优化算法在无约束优化、约束优化、多目标优化问题及其在不同领域的应用情况,旨在充分发 挥协同进化数值优化算法的作用,进而为各领域的发展奠定基础. 关键词:协同进化算法;数值优化;应用中图分类号:O224;TP273.1 文献标识码:A 文章编号:1673-260X(2016)09-0006-02 协同进化作为一种自然现象,具有普遍性,超过两个种群间经相互影响,便会出现此现象,可用于解释种群间的适应性,将其用于生物学研究,促进了生物进化.在进化计算研究方面,协同进化算法作为一种快速发展的最优化算法,他是传统进化算法的一种扩展.这种算法的模型包含了两个和多个种群.不同的种群在生态系统中协同进化,并且相互作用,最终使得生态系统不断进化[1].协同进化算法在许多领域得到了广泛的应用[2].在许多非常困难的问题上,协同进化算法都证明了其作为优化算法的有效性.文章综述了国内外学者的研究内容,介绍了进化算法、协同进化算法等,重点阐述了其在各类问题中的应用,旨在为协同进化数值优化算法的推广提供可靠的理论保障.1协同进化数值优化算法的概况1.1进化算法 在人类生存与发展过程中涉及众多的优化问题,与分析问题相比,优化问题属于逆问题,在求解方面具有较大的难度,造成此情况的原因主要为优化问题的可行解为无穷多个,但要在可行解集合中获取最优化解,通常情况下,利用数学规划法可实现对相关问题的处理,但实际计算过于繁琐,进而难以保证计算的准确性与有效性.为了满足实际需求,进化算法随之出现,它作为算法工具具有创新性与高效性,适应了数值优化问题的求解奠定了坚实的基础. 进化计算技术属于人工智能技术,它主要是通过对自然界生物进化过程及机制的模拟,以此实现了对相关问题的求解,其具有自组织、自适应与自学习的特点.进化算法是由生物学知识逐渐发展而来的,即:生物种群的优胜劣汰、遗传变异等,在此过程中生命个体对环境的适应力不断在 增强.通过国内外学者的不断探索与研究,进化算法及其相关的计算智能方法日渐丰富,其中进化数值优化算法吸引了众多学者的目光[3]. 与传统优化算法相比, 进化算法具有一定的特殊性,其优势显著,主要表现在以下几方面:处理对象为编码,通过编码操作,使参数集成为个体,进而利于实现对结构对象的直接操作;便于获得全局最优解,借助进化算法,可对群体中的多个个体进行同时处理,从而提高了计算准确性,降低了计算风险性;不需要连续可微要求,同时可利用随机操作与启发式搜索,从而保证了搜索的明确性与高效性,在此基础上,它在各个领域的应用均取得了显著的成效,如:函数优化、自动控制、图像处理等.但进化算法也存在不足,主要表现为其选择机制仍为人工选择,在实际问题处理过程中,难以发挥指导作用;同时,局部搜索能力相对较差,难以保证解的质量[4]. 为了弥补进化算法的不足,相关学者通过研究提出了新型计算智能方法,具体包括免疫进化算法,它主要是利用自然免疫系统功能获得的,此方法在数据处理、故障诊断等方面均扮演着重要的角色;Memetic算法属于混合启发式搜索算法,其利用了不同的搜索策略,从而保证了其应用效果;群智能算法主要分为两种,一种为蚁群算法,另一种为粒子群算法,前者可用于多离散优化问题方面;后者主要利用迭代从而获取了最优解,由于其具有简便性与实用性,因此其应用较为广泛;协同进化算法作为新型进化算法,其分析了种群与环境二者间的关系,并对二者进化过程中的协调给予了高度关注[5].1.2协同进化算法 收稿日期:2016-05-23 基金项目:广东省教育研究院课题项目(GDJY-2015_F-b057);茂名市青年名师培养项目成果 传统优化算法 协同进化算法 简化问题无法简化复杂的问题.简化问题,利用分解分解问题等方式,对复杂问题的简化,从而实现求解.兼容性相对简单,算法相对独立.兼具了不同优点,发挥了不同搜索算法的作用,保证了种群间的有效协同进化. 应用领域 应用领域相对独立. 适应了各领域的需求,在各个领域均涉及协同思想. 表一 协同进化算法与传统优化算法的对比 在数值优化领域中应用协同进化算法,相关的研究成果主要体现在无约束优化、约束优化与多目标优化等方面. 在第一类问题方面.对于进化算法而言,其经典的应用领域 便是无约束数值优化,经过不断实际,此技术的应用日渐成 6-- DOI:10.13398/https://www.doczj.com/doc/4e5699222.html,ki.issn1673-260x.2016.17.003

相关主题
文本预览
相关文档 最新文档