《最优化原理大作业.pdf》由会员分享,可在线阅读,更多相关《最优化原理大作业.pdf(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、基于粒子群算法的神经网络在电液伺服系统中的应用摘要:由于人工神经网络在解决具有非线性、不确定性等系统的控制问题上具有极大的潜力,因而在控制领域正引起人们的极大关注,并且已在一些响应较慢的过程控制中获得成功应用。由于电液伺服系统属于非线性系统,因此本文利用神经网络控制电液伺服系统,并利用粒子群优化算法训练该神经网络的权值。通过对神经网络的优化实现对电液伺服系统的控制。关键词:神经网络电液伺服系统粒子群算法优化近年来,由于神经网络具有大规模并行性、冗余性、容错性、本质的非线性及自组织自学习自适应能力,所以已成功地应用于众多领域。但在具有复杂非线性特性的机电设备的实时控制方面,虽然也有一些神经网络技
2、术的应用研究,但距实用仍有一段距离。1电液伺服系统就属于这类设备。神经网路在用于实时控制时,主要是利用了网络所具有的其输人输出间的非线性映射能力。它实际上是通过学习来逼近控制对象的动、静态特性。也就是构造实际系统的神经网络模型2。本文利用神经网络控制一电液伺服系统,并利用粒子群优化算法训练该神经网络的权值,将结果与 BP 神经网络控制该系统的结果进行比较。从而得在电液伺服系统中引入神经网络是可行的。1、粒子群算法粒子群优化算法(ParticleSwarm optimization,PSO)是一种进化计算技术,由Eberhart 博士和 kennedy 博士发明,源于对鸟群捕食的行为研究,粒子群
3、优化算法的基本思想是通过群体中个体之间的协作和信息共享来寻找最优解3。算法最初受到飞鸟和鱼类集群活动的规律性启发,利用群体智能建立了一个简化模型,用组织社会行为代替了进化算法的自然选择机制,通过种群间个体协作来实现对问题最优解的搜索4。在找到这两个最优值时,粒子根据如下的公式来更新自己的速度和新的位置v=v+c1*rand()*(pbest-present)+c2*rand()*(gbest-present)present=persent+v式中 为惯性权重,取大值可使算法具有较强的全局搜索能力,取小值则算法倾向于局部搜索。一般的做法是将 初始取 0.9 并使其随迭代次数的增加而线性递减至 0
4、.4,这样就可以先侧重于全局搜索,使搜索空间快速收敛于某一区域,然后采用局部精细搜索以获得高精度的解;c1、c2 为两个学习因子,一般取为 2;randl 和 rand2 为两个均匀分布在(0,l)之间的随机数;i=1,2,m;k=1,2,d。另外,粒子在每一维的速度 Vi都被一个最大速度 Vmax 所限制。如果当前粒子的加速度导致它在某一维的速度超过该维上的最大速度 Vmax,则该维的速度被限制为最大速度5。粒子群算法流程如下:(一)初始化粒子群。设群体规模为 m,在允许的范围内随机设置粒子的初始位置和速度。(二)评价每个粒子的适应值。(三)调整每一个粒子的位置和速度。(四)如果达到最大迭代
5、次数 genmax 或误差达到最初设定数值终止迭代,否则返回(2)。2 2、神经网络、神经网络神经网络一般由输入层、隐含层、输出层组成。对于输入信号,先向前传播到隐节点,经过节点作用函数后,再把隐节点的输出信息传播到输出节点,最后输出结果。节点的作用函数通常选取 S 型函数 f(x)=1/(1+e-x)。神经网络算法的学习过程分为正向传播和反向传播过程。如果正向传播输出的误差达不到预期精度,则沿误差的负梯度方向反复修改各层神经元的权值和阈值,直至网络全局误差信号最小6。3 3、粒子群算法优化神经网络、粒子群算法优化神经网络神经网络的建立需要确定神经网络的层结构、各个层的神经元个数、每一层的传递
6、函数、神经元权重和阈值调整的训练算法等。采用神经网络三层前馈型网络,包括输入层、隐含层、输出层。输入层和输出层由实际的数据规模来确定其节点数,隐含层的节点数一般只能大致确定,再用构造法确定7。采用 Sigmoid 函数作为隐含层的作用函数,采用线性函数作为输出层的作用函数。神经元权重的调整采用改进的粒子群算法优化。对全局搜索,通常的方法,在前期有较强的全局搜索能力,在后期侧重于算法的局部搜索,为此可将 w 设为随时间线性减小:w=wmax T(wmax wmin)/Tmax式中:wmax为最大惯性权值系数,wmin为最小惯性权值系数,T为迭代次数,Tmax为迭代总数。学习因子c1、c2用于调整
7、粒子的自身经验与群体经验在其运动中所起的作用,通常c1、c2的范围在 04 之间。采用粒子群算法训练 BP 神经网络时,首先应将特定结构中所有需要优化的神经元间的连接权值和阀值编码成实数码串表示的个体。神经网络中包含 D 个优化参数,则每个个体将由一个 D 维向量来表示。粒子群优化神经网络的实现步骤为:确定神经网络的结构;设定粒子群的群体规模为 m、学习因子、惯性权重,在允许的范同内随机给定每个粒子的初始位置和速度,根据优化的目标定义适应函数。采用粒子群算法对神经网络的参数进行优化。评价粒子的优劣,对每个粒子计算适应值,如果其适应值好于其经过的最好位置 P,则用当前的位置取代 P。将所有粒子中
8、最好的 P 作为当前的全局最好位置 P 根据公式(1)更新粒子状态,包括速度和位置。判断是否达到优化要求,若达到,结束;否则转步骤。8判断是否达到最大迭代数,若达到终止条件,结束;否则转步骤。4 4、电液伺服系统的开环传递函数的阶跃响应、电液伺服系统的开环传递函数的阶跃响应已知电液伺服系统的开环传递函数为:()=73.339s(156.82+s20.305s156.8+1)由于本系统是连续系统,应该先进行离散化处理,取采样周期为1ms,经过 z 变换后的离散化对象为:y k=den 2 y k 1 den 3 y k 2 den 4 y k 3+num 2 u k 1+num 3 u k 2+
9、num 4 u(k 3)采用 Matlab 编程实现:ts=0.001num=73.339;den=1/(156.8)2)0.305/156.8 1 0;sys=tf(num,den)dsys=c2d(sys,ts,z)num,den=tfdata(dsys,v)代入数据,得到如下函数式:y k=2.9293 y k 1 2.8826 y k 2+0.9533 y k 3+0.0003 u k 1+0.0012 u k 2+0.0003 u(k 3)用 Simulink 的子模块,连接而成控制仿真程序,如图1 所示。得到系统的阶跃响应图,如图 2 所示。图 1 连续系统的 Simulink 仿
10、真程序图 2 系统的阶跃响应曲线5、BP 神经网络控训练电液伺服系统选取 BP 网络为 2-3-1 结构,权值wij,wji的初始值取-1,+1之间的随机值,学习参数取=0.50,=0.05.取网络训练的最终指标为 E=10-20,用matlab 编程得到网络训练指标的变化图,如图 3 所示。图 4、图 5 为输入层、隐层、输出层之间的权值。图 3 样本训练的收敛过程图 4 输入层和隐层之间的连接权值图 5 隐层和输出层之间的连接权值结果说明:迭代进行到大约 40 次时达到了稳定。6、粒子群算法优化神经网络采用粒子群算法训练神经网络时,首先应将特定结构中所有的神经元间的连接权值编码成实数码串表
11、示个体。假设网络中包含M 个优化权值,则每个个体将由M 个权值参数组成一个 M 维向量来表示9。本文用的是 2-3-1 神经网络,有9 个权值,即组成一个9 维向量。然后根据微粒群规模按照上述个体结构随即产生一定数目的个体组成种群,其中不同个体代表神经网络的一组不同权值,同时初始化gbest、lbest。将微粒群中每一个体的分量映射为网络中的权值,从而构成一个神经网络。对每一个体对应的神经网络,输入训练样本进行训练。网络权值的优化过程是一个反复迭代的过程。通常为了保证所训练的神经网络具有较强的泛化能力,在网络的训练过程中,往往将给定的样本空间分为两部分:一部分作为训练样本,成为训练集;另一部分
12、作为测试样本成为测试集而在权值优化过程中:每进行一次训练,都要对给定的样本集进行分类,以保证每次训练时采用的训练集均不相同。计算每一个网络在训练集上产生的均方误差,以此作为目标函数,并构造如下的适应度函数,用来计算个体的适应度。1E Xp=2ni=0ncYK,PXP tk,pk=0其中,tk,p指训练样本 p 在 k 输入端的给定输出适应度函数定义为:11+E(X)评价微粒群中的所有个体,从中找到最佳个体用来判断是否需要更新微粒的 gbest、lbest。之后,按照粒子群模型更新每一个体不同分量上的飞行速度,并以此产生新的个体微粒。f x=当目标函数值小于给定的0 时,算法终止。:开始随即产生
13、初始微粒群把每一向量映射为网络的一组权值,并组成网络从样本空间随即抽取样本构成训练样本进行训练对每一个体进行评价计算其适应性是f1 否输出一组权值作为优化结果确定gbest,lbest按照微粒群计算模型生成新的个体微粒停止图 6 用粒子群训练神经网络算法的具体流程按照图 6 所示的流程图利用粒子群优化算法训练该神经网络的权值,用 MATLAB编程实现。得到如图 7 所示:用离子群训练神经网络算法的具体流程10109876系统输出543210020406080100120迭 代 次 数140160180200图 7 粒子群算法优化的迭代次数和系统输出结果说明:在迭代进行到大约 35 次时达到了稳定。7、总结基于粒子群的优化的神经网络对比与 BP 神经网络具有更好的逼近精度,更强的自适应能力。