基于遗传算法的神经网络自适应控制器的研究

作者:李建辉;武俊丽;曲秀敏;李晶 刊名:现代电子技术 上传者:钟敏莹

【摘要】提出了一种基于遗传算法的神经网络自适应控制器的设计方法。该控制器主要由2部分组成,第一部分利用遗传算法搜索出一组神经网络控制器的初始权值,第二部分用历史输入输出数据训练神经网络自适应控制器,经过训练后其达到稳定的控制效果。通过Matlab仿真表明,该控制策略克服了BP算法对初始值敏感的问题,有效提高神经网络的控制效果,和常规PID控制器相比较,超调量小、抗干扰性强和鲁棒性好。

全文阅读

目前,神经网络控制已成为自动控制领域的前沿学科之一。由于工业实际生产过程往往具有非线性、时变性、滞后性以及各种不确定性,难以确定精确的数学模型,传统控制方法常常达不到理想的控制效果。而基于神经网络的控制方法不依赖于被控对象的数学模型,并且具有学习能力和自适应性,为解决上述系统的控制问题提供了一条有效途径,使被控系统稳定性、鲁棒性好,达到所要求的动态和静态性能。但神经网络在控制中的应用面临2大问题,即神经网络拓扑结构的优化设计和高效的学习算法。遗传算法(GeneticAlgorithms,GA)是模拟自然界遗传机制和生物进化论而成的一种并行随机搜索最优化方法。由于遗传算法具有群体寻优和天然的增强式学习能力,使其具有全局性、并行性、快速性和自适应性,成为解决上述两大问题的有力工具,用于优化神经网络控制器与辨识器的结构权系和学习规则。但是遗传算法也有弱点,那就是计算时间长、收敛速度缓慢。同时,研究表明BP算法对初始权值极为敏感,在只有初始权值不同的情况下进行训练,将得到不同泛化能力的神经网络。若初值选取不当,则在控制过程中系统可能出现一定的振荡,动态特性不理想。因此,提出一种先利用遗传算法来进行初始参数设定,然后用BP算法进行训练和工作的控制策略。1神经网络自适应控制的原理神经网络自适应控制的原理如图1所示,NNI为被控对象的神经网络辨识器,采用串并联辨识结构。NNC为神经网络自适应控制器。NNI和NNC的学习算法都采用BP算法,结构都为3层。NNC有3个输出,分别是期望输出yd,系统输出y和NNC自身输出u。图1神经网络STC控制结构框图2遗传算法学习神经网络初始权系数2.1编码方式浮点数编码直接对参数进行操作,提高了运算效率,并且适用于较大空间的搜索,所以本文采用浮点数编码。浮点数编码是指个体的每个基因值用某一范围内的一个浮点数来表示,个体的编码长度等于其决策变量的个数[1]。2.2适应度函数适应度函数是度量个体适应度的函数,是遗传算法进行搜索的惟一信息,他直接影响遗传算法性能。由于遗传算法通常是求最大值问题,故需将目标函数映射成最大值问题。本文将适应度函数取为MSE的倒数,如式(1)所示。MSE为目标函数如式(2)所示:f=1/MSE(1)MSE=12nk=1[yd(k)-yt(k)]2(2)2.3遗传操作遗传操作主要包括选择、交叉和变异。选择操作就是用来确定如何从父代群体中按某种方法选取哪些个体遗传到下一代群体中的一种遗传运算。本文采用比例法和最优保存策略作为选择操作,如式(3)所示。Pi=Fini=1Fii=1,2,…,n(3)式中,Fi为个体i的适应度;n为种群数量。交叉运算是指对2个相互配对的染色体按某种方式相互交换其部分基因,从而形成2个新的个体。本文针对浮点数编码,交叉算法采用算术交叉方式。假设在2个个体XtA,XtB之间进行算术交叉,则交叉运算后所产生的2个新个体如式(4)所示:Xt+1A=aXtB+(1-a)XtAXt+1B=aXtA+(1-a)XtB(4)式中,a为一参数,如果是一个常数,此时的交叉运算成为均匀算术交叉;如果是一个由进化代数所决定的变量,则称为非均匀算术交叉。变异运算是指将个体染色体编码串中的某些基因座上的基因值用该基因座的其他等位基因来替换。本文变异算子针对实数编码采用多元非均匀变异,即分别对自变量在其解空间进行非均匀变异,然后再随机取出一组作为变异结果。原理见式(5)和式(6):Xt+1i=Xti+(bi-Xti)f(g),ifrandom(0,1)=0(5)Xt+1i=Xti-(xti-ai)f(g),if

参考文献

引证文献

问答

我要提问