文档库 最新最全的文档下载
当前位置:文档库 › 基于合作粒子群算法的PID神经网络非线性控制系统_朴海国

基于合作粒子群算法的PID神经网络非线性控制系统_朴海国

基于合作粒子群算法的PID神经网络非线性控制系统_朴海国
基于合作粒子群算法的PID神经网络非线性控制系统_朴海国

神经网络pid控制matlab程序

%Single Neural Adaptive PID Controller clear all; close all; x=[0,0,0]'; xiteP=0.40; xiteI=0.35; xiteD=0.40; %Initilizing kp,ki and kd wkp_1=0.10; wki_1=0.10; wkd_1=0.10; %wkp_1=rand; %wki_1=rand; %wkd_1=rand; error_1=0; error_2=0; y_1=0;y_2=0;y_3=0; u_1=0;u_2=0;u_3=0; ts=0.001; for k=1:1:1000 time(k)=k*ts; yd(k)=0.5*sign(sin(2*2*pi*k*ts)); y(k)=0.368*y_1+0.26*y_2+0.1*u_1+0.632*u_2; error(k)=yd(k)-y(k); %Adjusting Weight Value by hebb learning algorithm M=4; if M==1 %No Supervised Heb learning algorithm wkp(k)=wkp_1+xiteP*u_1*x(1); %P wki(k)=wki_1+xiteI*u_1*x(2); %I wkd(k)=wkd_1+xiteD*u_1*x(3); %D K=0.06; elseif M==2 %Supervised Delta learning algorithm wkp(k)=wkp_1+xiteP*error(k)*u_1; %P wki(k)=wki_1+xiteI*error(k)*u_1; %I wkd(k)=wkd_1+xiteD*error(k)*u_1; %D K=0.12; elseif M==3 %Supervised Heb learning algorithm wkp(k)=wkp_1+xiteP*error(k)*u_1*x(1); %P wki(k)=wki_1+xiteI*error(k)*u_1*x(2); %I wkd(k)=wkd_1+xiteD*error(k)*u_1*x(3); %D K=0.12; elseif M==4 %Improved Heb learning algorithm wkp(k)=wkp_1+xiteP*error(k)*u_1*(2*error(k)-error_1); wki(k)=wki_1+xiteI*error(k)*u_1*(2*error(k)-error_1); wkd(k)=wkd_1+xiteD*error(k)*u_1*(2*error(k)-error_1); K=0.12; end x(1)=error(k)-error_1; %P

基于BP神经网络的PID控制器的设计

基于BP神经网络的PID控制器的研究与 实现 课程名称:人工神经网络

目录 前言 (3) 一、BP神经网络 (4) 二、模拟PID控制系统 (5) 三、基于BP神经网络的PID控制器 (6) 四、仿真程序 (10) 五、运行结果 (17) 六、总结 (18) 参考文献 (19)

前言 人工神经网络是以一种简单神经元为节点,采用某种网络拓扑结构构成的活性网络,可以用来描述几乎任意的非线性系统。不仅如此,人工神经网络还具有学习能力、记忆能力、计算能力以及各种智能处理能力,在不同程度和层次上模仿人脑神经系统的信息处理、存储和检索的功能。不同领域的科学家,对人工神经网络有着不同的理解、不同的研究内容,并且采用不同的研究方法。对于控制领域的研究工作者来说,人工神经网络的魅力在于:①能够充分逼近任意复杂的非线性关系,从而形成非线性动力学系统,以表示某种被控对象的模型或控制器模型;②能够学习和适应不确定性系统的动态特性;③所有定量或定性的信息都分布储存于网络内的各神经单元,从而具有很强的容错性和鲁棒性;④采用信息的分布式并行处理,可以进行快速大量运算。对于长期困扰控制界的非线性系统和不确定性系统来说,人工神经网络无疑是一种解决问题的有效途径。正因为如此,把人工神经网络引入传统的PID 控制,将这两者结合,则可以在一定程度上解决传统PID 调节器不易在线实时整定参数、难于对一些复杂过程和参数慢时变系统进行有效控制的不足。

一、BP神经网络 BP神经网络是一种有隐含层的多层前馈网络,其结构如图1-1所示。如果把具有M个输入节点和L个输出节点的BP神经网络看成是从M维欧氏空间到L维欧氏空间的非线性映射,则对于具有一定非线性因数的工业过程被控对象,采用BP网络来描述,不失为一种好的选择。在BP神经网络中的神经元多采用S型函数作为活化函数,利用其连续可导性,便于引入最小二乘学习算法,即在网络学习过程中,使网络的输出与期望输出的误差边向后传播边修正加权系数,以期使误差均方值最小。BP神经网络的学习过程可分为前向网络计算和反向误差传播——连接加权系数修正两个部分,这两个部分是相继连续反复进行的,直至误差满足要求。不论学习过程是否已经结束,只要在网络的输入节点加入输入信号,则这些信号将一层一层向前传播;通过每一层时要根据当时的连接加权系数和节点的活化函数与阈值进行相应计算,所得的输出再继续向下一层传输。这个前向网络计算过程,既是网络学习过程的一部分,也是将来网络的工作模式。在学习过程结束之前,如果前向网络计算的输出和期望输出之间存在误差,则转入反向传播,将误差沿着原来的连接通路回送,作为修改加权系数的依据,目标是使误差减小。

pid神经网络控制器的设计

第三章 PID 神经网络结构及控制器的设计 在控制系统中,PID 控制是历史最悠久,生命力最强的控制方式,具有直观、实现简单和鲁棒性能好等一系列优点。但近年来随着计算机的广泛应用,智能控制被越来越广泛的应用到各种控制系统中。智能控制方法以神经元网络为代表,由于神经网络可实现以任意精度逼近任意函数,并具有自学习功能,因此适用于时变、非线性等特性未知的对象,容易弥补常规PID 控制的不足。将常规PID 控制同神经网络相结合是现代控制理论的一个发展趋势。 3.1 常规PID 控制算法和理论基础 3.1.1 模拟PID 控制系统 PID(Proportional 、Integral and Differential)控制是最早发展起来的控制策略之一,它以算法简单、鲁捧性好、可靠性高等优点而梭广泛应用于工业过程控制中。 PID 控制系统结构如图3.1所示: 图3.1 模拟PID 控制系统结构图 它主要由PID 控制器和被控对象所组成。而PID 控制器则由比例、积分、微分三个环节组成。它的数学描述为: 1() ()[()()]t p D i de t u t K e t e d T T dt ττ=+ +? (3.1) 式中,p K 为比例系数; i K 为积分时间常数: d K 为微分时间常数。 简单说来,PID 控制器各校正环节的主要控制作用如下: 1.比例环节即时成比例地反映控制系统的偏差信号()e t ,偏差一旦产生,控制器立即产生控制作用,以减少偏差。

2.积分环节主要用于消除静差,提高系统的无差度。积分作用的强弱取决于积分时间常数i T ,i T 越大,积分作用越弱,反之则越强。 3.微分环节能反映偏差信号的变化趋势(变化速率),并能在偏差信号值变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减少调节时间。 具体说来,PID 控制器有如下特点: (1)原理简单,实现方便,是一种能够满足大多数实际需要的基本控制器; (2)控制器能适用于多种截然不同的对象,算法在结构上具有较强的鲁棒性,在很多情况下,其控制品质对被控对象的结构和参数摄动不敏感。 3.1.2 数字PID 控制算法 在计算机控制系统中,使用的是数字PID 控制器,数字PID 控制算法通常又分为位置式PID 控制算法和增量式PID 控制算法。 1.位置式PID 控制算法 由于计算机控制是一种采样控制,它只能根据采样时刻的偏差值计算控制量,故对式(3.1)中的积分和微分项不能直接使用,需要进行离散化处理。按模拟PID 控制算法的算式(3.1),现以一系列的采样时刻点kT 代表连续时间t ,以和式代替积分,以增量代替微分,则可以作如下的近似变换: t kT = (0,1,2,3...)k = ()()()k k t j j e t dt T e jT T e j ==≈=∑∑? ()()[(1)]()(1) de t e kT e k T e k e k dt T T ----≈= (3.2) 式中,T 表示采样周期。 显然,上述离散化过程中,采样周期T 必须足够短,才能保证有足够的精度。为了书写方便,将()e kT 简化表示()e k 成等,即省去T 。将式(3.2)代入到(3.1)中可以得到离散的PID 表达式为: 0(){()()[()(1)]}k D p j I T T u k K e k e j e k e k T T ==+ + --∑ (3.3) 或 0 ()()()[()(1)]}k p I D j u k K e k K e j K e k e k ==++--∑ (3.4) 式中,k ——采样序号,0,1,2...k =; ()u k ——第k 次采样时刻的计算机输出值;

粒子群优化算法综述

粒子群优化算法综述 摘要:本文围绕粒子群优化算法的原理、特点、改进与应用等方面进行全面综述。侧重于粒子群的改进算法,简短介绍了粒子群算法在典型理论问题和实际工业对象中的应用,并给出了粒子群算三个重要的网址,最后对粒子群算做了进一步展望。 关键词;粒子群算法;应用;电子资源;综述 0.引言 粒子群优化算法]1[(Particle Swarm Optimization ,PSO)是由美国的Kenned 和Eberhar 于1995年提出的一种优化算法,该算法通过模拟鸟群觅食行为的规律和过程,建立了一种基于群智能方法的演化计算技术。由于此算法在多维空间函数寻优、动态目标寻优时有实现容易,鲁棒性好,收敛快等优点在科学和工程领域已取得很好的研究成果。 1. 基本粒子群算法]41[- 假设在一个D 维目标搜索空间中,有m 个粒子组成一个群落,其中地i 个粒子组成一个D 维向量,),,,(21iD i i i x x x x =,m i ,2,1=,即第i 个粒子在D 维目标搜索空间中的位置是i x 。换言之,每个粒子 的位置就是一个潜在的解。将i x 带入一个目标函数就可以计算出其适 应值,根据适应值得大小衡量i x 的优劣。第i 个粒子的飞翔速度也是一个D 维向量,记为),,,(21iD i i i v v v v =。记第i 个粒子迄今为止搜索到的最优位置为),,,(21iD i i i p p p p =,整个粒子群迄今为止搜索到的最优位置为),,,(21gD gi g g p p p p =。 粒子群优化算法一般采用下面的公式对粒子进行操作

)()(22111t id t gd t id t id t id t id x p r c x p r c v v -+-+=+ω (1) 11+++=t id t id t id v x x (2) 式中,m i ,,2,1 =;D d ,,2,1 =;ω是惯性权重, 1c 和2c 是非负常数, 称为学习因子, 1r 和2r 是介于]1,0[间的随机数;],[max max v v v id -∈,max v 是常数,由用户设定。 2. 粒子群算法的改进 与其它优化算法一样PSO 也存在早熟收敛问题。随着人们对算 法搜索速度和精度的不断追求,大量的学者对该算法进行了改进,大致可分为以下两类:一类是提高算法的收敛速度;一类是增加种群多样性以防止算法陷入局部最优。以下是对最新的这两类改进的总结。 2.1.1 改进收敛速度 量子粒子群优化算法]5[:在量子系统中,粒子能够以某一确定的 概率出现在可行解空间中的任意位置,因此,有更大的搜索范围,与传统PSO 法相比,更有可能避免粒子陷入局部最优。虽然量子有更大的搜索空间,但是在粒子进化过程中,缺乏很好的方向指导。针对这个缺陷,对进化过程中的粒子进行有效疫苗接种,使它们朝着更好的进化方向发展,从而提高量子粒子群的收敛速度和寻优能力。 文化粒子群算法]6[:自适应指导文化PSO 由种群空间和信念空间 两部分组成。前者是基于PSO 的进化,而后者是基于信念文化的进化。两个空间通过一组由接受函数和影响函数组成的通信协议联系在一起,接受函数用来收集群体空间中优秀个体的经验知识;影响函数利用解决问题的知识指导种群空间进化;更新函数用于更新信念空间;

(完整word版)基本粒子群算法的原理和matlab程序

基本粒子群算法的原理和matlab程序 作者——niewei120(nuaa) 一、粒子群算法的基本原理 粒子群优化算法源自对鸟群捕食行为的研究,最初由Kennedy和Eberhart提出,是一种通用的启发式搜索技术。一群鸟在区域中随机搜索食物,所有鸟知道自己当前位置离食物多远,那么搜索的最简单有效的策略就是搜寻目前离食物最近的鸟的周围区域。PSO 算法利用这种模型得到启示并应用于解决优化问题。PSO 算法中,每个优化问题的解都是粒子在搜索 空间中的位置,所有的粒子都有一个被优化的目标函数所决定的适应值,粒子还有一个速度值决定它们飞翔的方向和距离,然后粒子群就追随当前的最优粒子在解空间中搜索。 PSO 算法首先在给定的解空间中随机初始化粒子群,待优化问题的变量数决定了解空间的维数。每个粒子有了初始位置与初始速度。然后通过迭代寻优。在每一次迭代中,每个粒子通过跟踪两个“极值”来更新自己在解空间中的空间位置与飞翔速度。第一个极值就是单个粒子本身在迭代过程中找到的最优解粒子,这个粒子叫做个体极值。另一个极值是种群所有粒子在迭代过程中所找到的最优解粒子,这个粒子是全局极值。上述的方法叫全局粒子群算法。如果不用种群所有粒子而只用其中一部分作为该粒子的邻居粒子,那么在所有邻居粒子中的极值就是局部极值,该方法称为局部PSO 算法。 速度、位置的更新方程表示为: 每个粒子自身搜索到的历史最优值p i ,p i=(p i1,p i2,....,p iQ),i=1,2,3,....,n。所有粒子搜索到的最优值p g,p g=(p g1,p g2,....,p gQ),注意这里的p g只有一个。 是保持原来速度的系数,所以叫做惯性权重。 是粒子跟踪自己历史最优值的权重系数,它表示粒子自身的认识,所以叫“认知”。通常设置为2。 是粒子跟踪群体最优值的权重系数,它表示粒子对整个群体知识的认识,所以叫做“社会知识”,经常叫做“社会”。通常设置为2。 是[0,1]区间内均匀分布的随机数。 是对位置更新的时候,在速度前面加的一个系数,这个系数我们叫做约束因子。通常设 置为1 。

基于S函数的RBF神经网络PID控制器

基于径向基函数的神经网络的PID控制器 摘要 RBF神经网络在分类问题中得到了广泛的应用,尤其是模式识别的问题。许多模式识别实验证明,RBF具有更有效的非线性逼近能力,并且RBF神经网络的学习速度较其他网络快。本文在具有复杂控制规律的S函数构造方法的基础上,给出了基于MATLAB语言的RBF神经网络PID控制器,及该模型的一非线性对象的仿真结果。 关键词:S函数;RBF神经网络PID控制器;Simulink仿真模型径向基函数(RBF-Radial Basis Function)神经网络是由J.Moody和C.Darken 在20世纪80年代末提出的一种神经网络,它具有单隐层的三层前馈网络。由于它模拟了人脑中局部调整、相互覆盖接受域(或称野-Receptive Field)的神经网络结构,因此,RBF神经网络是一种局部逼近网络,已证明它能以任意精度逼近任意连续函数。 1.S函数的编写方法 S函数是Simulink中的高级功能模块,Simulink是运行在MATLAB环境下用于建模、仿真和分析动态系统的软件包。只要所研究的系统模型能够由MATLAB语言加以描述,就可构造出相应的S函数,从而借助Simulink中的S 函数功能模块实现MATLAB与Simulink之间的沟通与联系,这样处理可以充分发挥MATLAB编程灵活与Simulink简单直观的各自优势。当系统采用较复杂的控制规律时,Simulink中没有现成功能模块可用,通常都要采用MATLAB编程语言,编写大量复杂而繁琐的源程序代码进行仿真,一是编程复杂、工作量较大,二来也很不直观。如果能利用Simulink提供的S函数来实现这种控制规律,就可以避免原来直接采取编程的方法,不需要编写大量复杂而繁琐的源程序,编程快速、简捷,调试方便,则所要完成的系统仿真工作量会大大减少。 RBF神经网络PID控制器的核心部分的S函数为: function [sys,x0,str,ts]=nnrbf_pid(t,x,u,flag,T,nn,K_pid,eta_pid,xite,alfa,beta0,w0) switch flag,

神经网络PID控制

基于神经网络PID控制算法在多缸电液伺服系统同步控制中的仿真 研究 丁曙光,刘勇 合肥工业大学,合肥,230009 摘要:本文介绍了神经网络控制原理,提出了神经网络PID算法,通过选定三层神经网络作为调节函数,经过Simulink仿真确定了神经网络PID控制器的参数,设计了神经网络PID控制器。推导出多缸液压同步控制系统在各种工况下的传递函数,并把该控制器应用到多缸液压同步控制系统中。经过仿真研究表明该控制器控制效果良好,能满足多缸液压同步的控制要求。 关键词:多缸同步;PID算法;仿真;神经网络 Study on the simulation and appllication of hydraulic servo system of straihtening machine based on Immune Neural network PID control alorithm DING Shu-guang, GUI Gui-sheng,ZHAI Hua Hefei University of Technology, Hefei 23009 Abstract:The principle of immune feedback and immune-neural network PID algorithm was respectively.An immune-neural network PID controller was designed by which an adaline neural network was selected as antibody stay function and parameters of the immune-neural network PID controller were determined by simulation.The transfer function of the hydraulic servo system of crankshaft straightenin on were introduced in different working conditions.The immune-neural network PID controller was applied to hydraulic system of crankshaft straightenin.The simulation and equipment were done,and results show that its control effectiveness is better and can meet the needs of he hydraulic servo-system of crankshaft straightening hydraulic press. Key words:straightening machine; Immune control arithmetic; simulation;neural network 0引言 精密校直液压机(精校机)液压伺服系统是精校机的执行环节,高精度液压位置伺服控制是精校机的关键技术之一,它保证了液压伺服控制系统的控制精度、稳定性和快速性,是完成校直工艺的必要条件。因此,精校机液压伺服控制系统的研究,为精校机产品的设计和制造提供了理论依据,对校直技术和成套设备的开发具有重大的意义[1]。 精校机液压位置伺服系统是一个复杂的系统,具有如下特点:精确模型难建立,要求位置控制精度高、超调量小、响应快、参数易变且难以确定[1]。因此该系统的控制有较大的难度。传统的PID控制虽然简单易行,但参数调整困难,具有明显的滞后特性,PID 控制很难一直保证系统的控制精度,Smith预估补偿 国家重大科技专项资助(项目编号:2009ZX04004-021)安徽省自然科学基金资助(项目编号:090414155)和安徽省科技攻关项目资助(项目编号:06012019A)制方法从理论上为解决时滞系统的控制问题提供了一种有效的方法,但是Smith预估器控制的鲁棒性差,系统性能过分依赖补偿模型的准确性,限制了它在实际过程中的应用[1~5]。 近年来,人们开始将生物系统的许多有益特性应用于各种控制中[1~5],取得了一定成果。自然免疫系统使生物体的一个高度进化、复杂的功能系统,它能自适应地识别和排除侵入肌体的抗原性异物,并且具有学习、记忆和自适应调节功能,以维护肌体内环境的稳定。自然免疫系统非常复杂,但其抵御抗原(antigen)的自适应能力十分显著。生物信息的这种智能特性启发人们利用它来解决一些工程难题,这就引起多种免疫方法的出现。人工免疫系统就是借鉴自然免疫系统自适应、自组织的特性而发展起来的一种智能计算技术。该算法在大量的干扰和不确定环境中都具很强的鲁棒性和自适应性,在控制、优化、模式识别、分类

基于BP神经网络PID整定原理和算法步骤

摘要 神经网络作为一门新兴的信息处理科学,是对人脑若干基本特性的抽象和模拟。它是以人的大脑工作模式为基础,研究自适应及非程序的信息处理方法。这种工作机制的特点表现为通过网络中大量神经元的作用来体现自身的处理功能,从模拟人脑的结构和单个神经元功能出发,达到模拟人脑处理信息的目的。 目前,在国民经济和国防科技现代化建设中神经网络具有广阔的应用领域和发展前景,其应用领域主要表现在信息领域、自动化领域、工程领域和经济领域等。 本文以BP神经网络作为研究对象。研究的内容主要有:首先介绍了神经网络的概念、控制结构,学习方式等。其次,介绍了人工神经元模型,并对BP神经网络的基本原理及推导过程进行详细阐述。再次将BP神经网络的算法应用于PID 中,介绍了基于BP神经网络PID整定原理和算法步骤。最后利用 MATLAB/Simulink 对BP神经网络PID控制系统进行仿真,得出BP神经网络的控制效果明显好,它具有很强的自整定,自适应功能。 关键词:BP算法,PID控制,自整定

ABSTRACT As a kind of emerging information processing science,the neural network can simulate some basic characteristic of human brain. It is an information-processed method which takes person's cerebrum working pattern as a foundation and studies the model of adaptive and non- program. The characteristics of this kind of work mechanism are that it can show its processing function through the massive neurons function in the network. Then, it starts with simulating the human brain structure and the single neuron function to achieve the goal that simulates the human brain to process information. Nowadays, the neural network has wide application fields and prospects in the national economy and modernization of national defense science. It mainly applies in information, automation, economical and so on. This article takes the BP neural network as the research object. The content of the research mainly contain: firstly, it introduces the concept of neural network, control structure and mode of study and so on. Secondly, it introduces the artificial neuron model, the basic principles of BP neural network and the derivation process in detail. Then, it applies BP neural network in the PID, and introduces the tuning principles of PID based the BP neural network and steps of the algorithm. Finally, Matlab/Simulink is used to simulate the BP neural network PID control system. In the consequence, the performance of BP neutral network control significantly good. BP neural network control system has a strong self-tuning, adaptive function. KEY WORDS: BP algorithm, PID control, self-tuning

粒子群算法综述

粒子群算法综述 【摘要】:粒子群算法(pso)是一种新兴的基于群体智能的启发式全局搜索算法,具有易理解、易实现、全局搜索能力强等特点,倍受科学与工程领域的广泛关注,已得到广泛研究和应用。为了进一步推广应用粒子群算法并为深入研究该算法提供相关资料,本文对目前国内外研究现状进行了全面分析,在论述粒子群算法基本思想的基础上,围绕pso的运算过程、特点、改进方式与应用等方面进行了全面综述,并给出了未来的研究方向展望。 【关键词】:粒子群算法优化综述 优化理论的研究一直是一个非常活跃的研究领域。它所研究的问题是在多方案中寻求最优方案。人们关于优化问题的研究工作,随着历史的发展不断深入,对人类的发展起到了重要的推动作用。但是,任何科学的进步都受到历史条件的限制,直到二十世纪中期,由于高速数字计算机日益广泛应用,使优化技术不仅成为迫切需要,而且有了求解的有力工具。因此,优化理论和算法迅速发展起来,形成一门新的学科。至今已出现线性规划、整数规划、非线性规划、几何规划、动态规划、随机规划、网络流等许多分支。这些优化技术在诸多工程领域得到了迅速推广和应用,如系统控制、人工智能、生产调度等。随着人类生存空间的扩大,以及认识世界和改造世界范围的拓宽,常规优化法如牛顿法、车辆梯度法、模式搜索法、单纯形法等已经无法处理人们所面的复杂问题,因此高效的

优化算法成为科学工作者的研究目标之一。 1.粒子群算法的背景 粒子群算法(particle swarm optimization,pso)是一种新兴的演化算法。该算法是由j.kennedy和r.c.eberhart于1995年提出的一种基于群智能的随机优化算法。这类算法的仿生基点是:群集动物(如蚂蚁、鸟、鱼等)通过群聚而有效的觅食和逃避追捕。在这类群体的动物中,每个个体的行为是建立在群体行为的基础之上的,即在整个群体中信息是共享的,而且在个体之间存在着信息的交换与协作。如在蚁群中,当每个个体发现食物之后,它将通过接触或化学信号来招募同伴,使整个群落找到食源;在鸟群的飞行中,每只鸟在初始状态下处于随机位置,且朝各个方向随机飞行,但随着时间推移,这些初始处于随机状态的鸟通过相互学习(相互跟踪)组织的聚集成一个个小的群落,并以相同的速度朝着相同的方向飞行,最终整个群落聚集在同一位置──食源。这些群集动物所表现的智能常称为“群体智能”,它可表述为:一组相互之间可以进行直接通讯或间接通讯(通过改变局部环境)的主体,能够通过合作对问题进行分布求解。换言之,一组无智能的主体通过合作表现出智能行为特征。粒子群算法就是以模拟鸟的群集智能为特征,以求解连续变量优化问题为背景的一种优化算法。因其概念简单、参数较少、易于实现等特点,自提出以来已经受到国内外研究者的高度重视并被广泛应用于许多领域。

MATLAB基于BP神经网络PID控制程序

MATLAB基于BP神经网络PID控制程序>> %BP based PID Control clear all; close all; xite=0.20; %学习速率 alfa=0.01; %惯性因子 IN=4;H=5;Out=3; %NN Structure wi=[-0.6394 -0.2696 -0.3756 -0.7023; -0.8603 -0.2013 -0.5024 -0.2596; -1.0749 0.5543 -1.6820 -0.5437; -0.3625 -0.0724 -0.6463 -0.2859; 0.1425 0.0279 -0.5406 -0.7660]; %wi=0.50*rands(H,IN); %隐含层加权系数wi初始化 wi_1=wi;wi_2=wi;wi_3=wi; wo=[0.7576 0.2616 0.5820 -0.1416 -0.1325; -0.1146 0.2949 0.8352 0.2205 0.4508; 0.7201 0.4566 0.7672 0.4962 0.3632]; %wo=0.50*rands(Out,H); %输出层加权系数wo初始化 wo_1=wo;wo_2=wo;wo_3=wo; ts=20; %采样周期取值 x=[0,0,0]; %比例,积分,微分赋初值 u_1=0;u_2=0;u_3=0;u_4=0;u_5=0; y_1=0;y_2=0;y_3=0; Oh=zeros(H,1); %Output from NN middle layer 隐含层的输出I=Oh; %Input to NN middle layer 隐含层输入 error_2=0; error_1=0; for k=1:1:500 %仿真开始,共500步 time(k)=k*ts;

基于神经网络的PID控制

基于神经网络的PID控制 课程名称:智能控制 任课教师: 学生姓名: 学号: 年月日

摘要:本文基于BP神经网络的PID控制方法设计控制器,通过BP神经网络与PID的控制相结合的神经网络控制基本原理和设计来自适应的功能调节PID的的三个参数,并根据被控对象的近似数学模型来输出输入与输出并分析BP神经网络学习速率η,隐层节点数的选择原则及PID参数对控制效果的影响。计算机的仿真结果表示,基于BP神经网络的PID控制较常规的PID控制具有更好的自适应性,能取得良好的的控制结果。 关键字:BP算法神经网络 PID控制 Abstract:In this paper, based on BP neural network PID control method designed controller, through the BP neural network PID control with a combination of neural network control basic principles and design features adaptively adjusting the PID of the three parameters, and based on the controlled object approximate mathematical model to analyze the output and the input and output BP n eural network learning rate η, hidden layer nodes and PID parameter selection principle effect of the control . Computer simulation results indicated that based on BP neural network PID control compared with conventional PID control has better adaptability , can achieve good control results . Keyword:BP algorithms neural networks PID control 1引言 PID控制是最早发展起来的应用经典控制理论的控制策略之一,由于算法简单,鲁棒性好和可靠性高,被广泛应用于工业过程并取得了良好的控制效果。随着工业的发展,对象的复杂程度不断加深,尤其对于大滞后、时变的、非线性的复杂系统,常规PID控制显得无能为力。因此常规PID控制的应用受到很大的限制和挑战。 神经网络在控制系统中的应用提高了整个系统的信息系统处理能力和适应能力,提高了系统的智能水平。此外,神经网络具有逼近任意连续有界非线性函数的能力,对于非线性系统和不确定性系统,无疑是一种解决问题的有效途径。本文将常规PID控制与神经网络控制相结合,发挥各自的优势,形成所谓的智能PID控制。采用BP神经网络方法设计的控制系统具有更快的速度(实时性)、更强的适应性和更好的鲁棒性。 2 基于BP神经网络的PID控制 PID控制要取得较好的控制结果,必须通过调整好比例、积分和微分三种控制作用,形成控制量中既要相互配合又相互制约的关系。神经网络所具有的任意非线性表达能力,可以通过对系统性能的学习来实现最佳组合的PID控制。采用BP网络,可以建立参数Kp、Ki、Kd自学习的PID控制器。基于BP神经网络的PID控制系统结构由常规的PID控制器和神经网络两个部分构成。 2.1常规的PID控制器 PID控制器由比例(P)、积分(I)、微分(D)3个部分组成,直接对被控对象进行闭环控制,并且三个参数 Kp、Ki、Kd为在线调整方式。 2.2 神经网络 根据系统的运行状态,调节PID控制器的参数,以期达到某种性能指标的最

粒子群算法的研究现状及其应用

智能控制技术 课程论文 中文题目: 粒子群算法的研究现状及其应用姓名学号: 指导教师: 年级与专业: 所在学院: XXXX年XX月XX日

1 研究的背景 优化问题是一个古老的问题,可以将其定义为:在满足一定约束条件下,寻找一组参数值,使系统的某些性能指标达到最大值或最小值。在我们的日常生活中,我们常常需要解决优化问题,在一定的范围内使我们追求的目标得到最大化。为了解决我们遇到的最优化问题,科学家,们进行了不懈的努力,发展了诸如牛顿法、共轭梯度法等诸多优化算法,大大推动了优化问题的发展,但由于这些算法的低运行效率,使得在计算复杂度、收敛性等方面都无法满足实际的生产需要。 对此,受达尔文进化论的影响,一批新的智能优化算法相继被提出。粒子群算法(PSO )就是其中的一项优化技术。1995 年Eberhart 博士和Kennedy 博士[1]-[3]通过研究鸟群捕食的行为后,提出了粒子群算法。设想有一群鸟在随机搜索食物,而在这个区域里只有一块食物,所有的鸟都不知道食物在哪里。那么找到食物最简单有效的办法就是鸟群协同搜寻,鸟群中的每只鸟负责离其最近的周围区域。 粒子群算法是一种基于群体的优化工具,尤其适用于复杂和非线性问题。系统初始化为一组随机解,通过迭代搜寻最优值,通过采用种群的方式组织搜索,同时搜索空间内的多个区域,所以特别适合大规模并行计算,具有较高的效率和简单、易操作的特性。 目前使用的粒子群算法的数学描述[3]为:设粒子的寻优空间是m 维的,粒子的数目为ps ,算法的最大寻优次数为Iter 。第i 个粒子的飞行速度为T i i1i2im v [v v ]= ,,,v ,位置为T i i1i2im x [x x x ]= ,,,,粒子的个体极值T i i1i2im Pbest [,]P = ,P ,P ,全局极值为 T i i1i2im Gbest [,]g = ,g ,g 。 粒子群算法的寻优过程主要由粒子的速度更新和位置更新两部分组成,其更新方式如下: i+11122v ()()i i i i i v c r Pbest x c r Gbest x =+?+?; i+1i+1i x x v =+, 式中:12c c ,为学习因子,一般取2;12r r ,是均与分布着[0,1]上的随机数。

粒子群算法基本原理

4.1粒子群算法基本原理 粒子群优化算法[45]最原始的工作可以追溯到1987年Reynolds 对鸟群社会系统Boids (Reynolds 对其仿真鸟群系统的命名)的仿真研究 。通常,群体的行为可以由几条简单的规则进行建模,虽然每个个体具有简单的行为规则,但是却群体的行为却是非常的复杂,所以他们在鸟类仿真中,即Boids 系统中采取了下面的三条简单的规则: (1)飞离最近的个体(鸟),避免与其发生碰撞冲突; (2)尽量使自己与周围的鸟保持速度一致; (3)尽量试图向自己认为的群体中心靠近。 虽然只有三条规则,但Boids 系统已经表现出非常逼真的群体聚集行为。但Reynolds 仅仅实现了该仿真,并无实用价值。 1995年Kennedy [46-48]和Eberhart 在Reynolds 等人的研究基础上创造性地提出了粒子群优化算法,应用于连续空间的优化计算中 。Kennedy 和Eberhart 在boids 中加入了一个特定点,定义为食物,每只鸟根据周围鸟的觅食行为来搜寻食物。Kennedy 和Eberhart 的初衷是希望模拟研究鸟群觅食行为,但试验结果却显示这个仿真模型蕴含着很强的优化能力,尤其是在多维空间中的寻优。最初仿真的时候,每只鸟在计算机屏幕上显示为一个点,而“点”在数学领域具有多种意义,于是作者用“粒子(particle )”来称呼每个个体,这样就产生了基本的粒子群优化算法[49]。 假设在一个D 维搜索空间中,有m 个粒子组成一粒子群,其中第i 个粒子的空间位置为123(,,,...,)1,2,...,i i i i iD X x x x x i m ==,它是优化问题的一个潜在

(完整word版)基本粒子群算法的原理和matlab程序.doc

基本粒子群算法的原理和matlab 程序 作者—— niewei120 (nuaa) 一、粒子群算法的基本原理 粒子群优化算法源自对鸟群捕食行为的研究,最初由Kennedy 和 Eberhart 提出,是一种通 用的启发式搜索技术。一群鸟在区域中随机搜索食物,所有鸟知道自己当前位置离食物多远, 那么搜索的最简单有效的策略就是搜寻目前离食物最近的鸟的周围区域。PSO 算法利用这种模型得到启示并应用于解决优化问题。PSO 算法中,每个优化问题的解都是粒子在搜索 空间中的位置,所有的粒子都有一个被优化的目标函数所决定的适应值,粒子还有一个速度值决定它们飞翔的方向和距离,然后粒子群就追随当前的最优粒子在解空间中搜索。 PSO 算法首先在给定的解空间中随机初始化粒子群,待优化问题的变量数决定了解空间的维数。每个粒子有了初始位置与初始速度。然后通过迭代寻优。在每一次迭代中,每个粒子通过跟踪两个“极值”来更新自己在解空间中的空间位置与飞翔速度。第一个极值就是单个粒子本身在迭代过程中找到的最优解粒子,这个粒子叫做个体极值。另一个极值是种群所有粒子在迭代过程中所找到的最优解粒子,这个粒子是全局极值。上述的方法叫全局粒子群算法。如果不用种群所有粒子而只用其中一部分作为该粒子的邻居粒子,那么在所有邻居粒子中的极值就是局部极值,该方法称为局部PSO 算法。 速度、位置的更新方程表示为: 每个粒子自身搜索到的历史最优值p i,p i=(p i1 ,p i2 ,....,p iQ ), i=1,2,3,....,n 。所有粒子搜索到的最优值p g, p g=(p g1 ,p g2,....,p gQ ),注意这里的p g只有一个。 是保持原来速度的系数,所以叫做惯性权重。 是粒子跟踪自己历史最优值的权重系数,它表示粒子自身的认识,所以叫“认知”。通常设置为 2 。 是粒子跟踪群体最优值的权重系数,它表示粒子对整个群体知识的认识,所以叫做“社会知识”,经常叫做“社会”。通常设置为2。 是[0,1] 区间内均匀分布的随机数。 是对位置更新的时候,在速度前面加的一个系数,这个系数我们叫做约束因子。通常设 置为 1 。

基本粒子群算法的matlab源程序

主函数源程序(main.m) %------基本粒子群优化算法(Particle Swarm Optimization)----------- %------名称:基本粒子群优化算法(PSO) %------作用:求解优化问题 %------说明:全局性,并行性,高效的群体智能算法 %------初始格式化-------------------------------------------------- clear all; clc; format long; %------给定初始化条件---------------------------------------------- c1=1.4962; %学习因子1 c2=1.4962; %学习因子2 w=0.7298; %惯性权重 MaxDT=1000; %最大迭代次数 D=10; %搜索空间维数(未知数个数) N=40; %初始化群体个体数目 eps=10^(-6); %设置精度(在已知最小值时候用) %------初始化种群的个体(可以在这里限定位置和速度的范围)------------ for i=1:N for j=1:D x(i,j)=randn; %随机初始化位置 v(i,j)=randn; %随机初始化速度 end end %------先计算各个粒子的适应度,并初始化Pi和Pg---------------------- for i=1:N p(i)=fitness(x(i,:),D); y(i,:)=x(i,:); end pg=x(1,:); %Pg为全局最优 for i=2:N if fitness(x(i,:),D) pg=x(i,:); end end %------进入主要循环,按照公式依次迭代,直到满足精度要求------------ for t=1:MaxDT for i=1:N v(i,:)=w*v(i,:)+c1*rand*(y(i,:)-x(i,:))+c2*rand*(pg-x(i,:)); x(i,:)=x(i,:)+v(i,:); if fitness(x(i,:),D) p(i)=fitness(x(i,:),D); y(i,:)=x(i,:);

相关文档