




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
pid参数整定(计算机控制理论作业)摘要本文使用的是遗传算法对pid控制器参数的整定,pid控制器是过程控制中应用最为广泛的控制方法,pid控制理论成熟、算法简单、鲁棒性好、可靠性高。控制器参数的选择决定了控制的稳定性和快速性,关乎系统的可靠性。因此,pid控制器参数整定问题是自动控制领域研究的一个重要内容。实际工业生产过程往往具有非线性、时变性,人工试凑的参数整定方法往往整定不良、性能不佳,对运行工况的适应性很差。本文基于遗传算法对数字pid控制器进行参数整定,可以提高优化性能,缩短整定时间。关键词:数字pid控制器;参数整定;遗传算法;二次性能指标1 引言pid控制作为比较成熟的控制技术广泛应用于工业生产过程,目前绝大多数底层控制都采用pid控制器。实际应用中控制器的参数往往采用实验试凑的方法人工整定,该方法往往整定不良、性能不佳,而且对运行工况的适应性很差。近年来随着计算机技术的广泛应用,人工智能算法pid整定策略发展迅速,如模糊pid、专家pid、神经元网络pid以及遗传算法等。这些算法能够实现提高优化性能,缩短整定时间,实际应用方便的控制目标。2 pid控制器pid控制器是将偏差的比例(p)、积分(i)、微分(d)通过线性组合构成控制量,对被控对象进行控制的。模拟pid控制的系统原理图如图1所示。图1. 模拟pid控制的系统原理图模拟pid控制规律为位置式: (1)当系统采样周期为时,对上式离散化处理,可得到离散位置式pid控制表达式: (2)式中,。增量式pid控制表达式可以表示为: (3) (4)3 遗传算法遗传算法(genetic algorithm)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,将达尔文生物进化理论引入参数寻优之中,适应度高的个体越容易被保留,经过若干代数遗传操作,种群各个体的适应度不断提高,直至满足一定的极限条件,获得优化问题最优解。此外,遗传算法对初始值没有特殊要求,不需要充足的先验知识即可求解,应用性极强。遗传算法的主要操作步骤有:染色体编码(含解码)、种群选择、交叉、变异。3.1 二进制编码染色体编码方式主要有二进制编码和实数编码两种。相比较而言,二进制编码的执行效率较高,遗传算法应用较简便,故在此主要介绍二进制编码和解码。顾名思义,二进制编码是仅由0、1组成的编码,初始个体的基因值可以用均匀分布的随机数产生。假如要估计的参数个数为,染色体长度为,那么每个个体的编码数为。针对该个体(参数组)第个元素进行解码有: (5)其中,与分别代表该元素取值上下限,表示该元素二进制编码的十进制转换值。3.2 选择算子依据“优胜劣汰,适者生存”的进化思想,适应度越高的个体能够产生后代的概率越大,其被保留的概率也越大。一般的遗传算法大多采用基于轮盘赌的选择策略:假设一个种群含有个个体,每个个体的适应度为,将其归一化: (6)然后前项相加作为选择依据,即当大于等于随机数时,选择该个体保留。这样适应度较高的个体占的比例大,其被随机选中的概率也大。此外遗传选择方法还有期望值法、排位次法、以及最优保存策略等。3.3 交叉算子选择操作能够从旧种群中选择优秀者,但是不能创造新的染色体。而交叉操作模拟了生物进化过程中的繁殖现象,通过两个染色体的交叉组合来产生新的优良品种。依据交叉点个数不同可以把交叉操作分为一点交叉、两点交叉、多点交叉等。例如有两个染色体、。对于一点交叉,若在第5位开始执行交叉操作,能够得到新的染色体、;若执行两点交叉,在第4位和第9位执行操作,能够得到新的染色体、。多点交叉的操作原理与以上相同。其中一点交叉是最基本的方法,应用广泛,在此使用该方法。3.4 变异操作变异运算模拟生物在自然界的遗传环境下由于各种偶然因素引起的基因突变,它以很小的概率随机改变遗传基因的某个值。变异概率的设置尤为重要。为防止遗传算法陷入局部最优状态,保持算法种群的多样性,我们使最适应度高和适应度低的个体都具有较高的变异概率:将各个个体按其适应度排序,第个个体的变异概率定义为 (7)这样,所有个体中最大的变异概率为。当时,该个体某一编码发生突变(0与1互换)。变异操作保证了遗传算法在尽可能大的空间中获得高质量的有化解。避免了进化过程早期就陷入局部最优,改进后的变异操作能够保证种群多样性,防止“早熟”现象。4 遗传算法pid参数整定参数整定即参数组寻优问题,涉及到模型描述、目标函数表述、遗传算法与模型结合等问题。不同的设计目标(目标函数)对应不同的最优解。4.1 模型描述对于连续二阶模型 (8)将其化作状态空间结构框图如图2所示。图2 系统状态空间结构框图那么该系统可以转换为状态空间表达式 (9)将其写为微分方程组的形式,解该方程组就可以得到连续系统的输出量。另一种处理方法是将该连续系统离散化,对于二阶系统而言,其z传递函数的分子分母最多为z的2次。后向差分变换后,可以得到 (10)本文将以,的连续系统为例进行数字pid参数整定4.2 目标函数表述目标函数选取不同,将会导致参数整定结果不同。因此目标函数的选取直接关系到控制效果的优劣。本文以二次型性能指标函数 (11)其中,为常数。由于遗传算法选择目标函数值最大的个体,而实际上二次性能指标越小越好,故可令目标函数 (12)其中为一极小的正数,用于防止造成计算失误,可令。该目标函数充分考虑了控制量和输出量的稳定性和动态性能,往往能够获得满意的控制效果。4.3 遗传算法本文采用的遗传算法流程如图3所示。该遗传算法除了按照上述细节描述外,还加入了最优个体保存策略,即将每一代目标函数值最大的个体保留到下一代。其遗传算子及控制参数如表1所示。表1 遗传算法策略及控制参数项目参数最大遗传代数50每代个体数量100每元素二进制编码位数12选择操作:比例选择加最优个体保留策略-交叉操作:一点交叉0.6变异操作:改进变异概率最大变异概率0.5目标函数:控制量比重0.05图3 遗传算法流程图5 仿真结果令采样周期,目标函数控制量优化比重为。由初步先验知识可以大致确定出pid控制器的各参数取值范围如表2所示。经过50代遗传寻优得到,最优参数组合及其最优二次性能指标如表3所示。表2 pid控制器参数取值范围参数下限上限010105表3 pid控制器整定结果参数参数值 0.2659 02.52503.7071图4描绘了50代遗传算法的收敛过程;图5给出了仿真150拍和30拍时的控制量变化过程;图6给出了仿真150拍和30拍时,控制作用下的系统输出跟踪效果。图4 50代遗传算法的收敛过程图5(a) 仿真150拍时的 pid控制器输出的控制量图5(b) 仿真30拍时的 pid控制器输出的控制量图6(a) 仿真150拍时pid控制作用下系统的跟踪效果图6(b) 仿真30拍时pid控制作用下系统的跟踪效果由图6可以看出,系统的调节时间仅有0.015s,而且超调量不超过10%,跟踪效果非常显著。同时由图5可得,控制器调节15拍即可获得稳定的控制效果,执行机构的磨损较少,控制作用良好。6 总结与展望遗传算法进行的整定有比较突出的优点,遗传算法进行pid参数整定,收敛速度快,而且能够根据被控对象的不同改写模型,实际应用性较强,可移植性好。随着计算技术的发展,对于复杂模型的参数辨识及控制器参数整定问题,可以采用神经网络学习与智能优化算法结合的方法实现。相对的,为进一步提高算法性能,还可以将遗传算法与模拟退火等算法相结合组成混合遗传算法。参考文献:1赵广元.matlab与控制系统仿真实践.北京:北京航空航天大学出版社.2009.82刘金琨.先进pid控制matlab仿真.北京:电子工业出版社.2011.33王小平.遗传算法.遗传算法:理论、应用及软件实现. 西安交通大学出版社20024 崔珊珊. 遗传算法的一些改进及其应用. 中国科技大学硕士论文20105 王银年.遗传算法的研究与应用.江南大学硕士论文2009附录:(依程序调用先后顺序排列)1 主程序:ga_parameter.m%ga算法求pid控制优化问题clear all;close all;clc; g=50; %进化代数size=100; %每一代样本容量codel=12;%编码长度pc=0.6; %初始交叉概率 lb=0 0 0;ub=1 1 5;%pid参数取值上下限n=500;%每一组参数的仿真次数 e=round(rand(size,3*codel);%生成初始种群(二进制编码)fitness=zeros(size,1);k=zeros(size,3);fit_best=zeros(g,1);k_best=zeros(g,3);j_best=zeros(g,1);time=zeros(g,1);j=zeros(size,1);%分配存储空间 无实际作用 for kg=1:g time(kg)=kg; for s=1:size k(s,:)=b2fdecoding(lb,ub,codel,e(s,:); %调用解码程序,求出个体真值 fitness(s),j(s)=object(k(s,:),n); %调用目标函数,求取目标函数值 end fit_best(kg),index=max(fitness); %求出最有个体及其对应函数值 k_best(kg,:)=k(index,:); j_best(kg)=j(index); s_best=e(index,:);%最好的个体编码,用于最优保存策略 nse=selecting(fitness,e,k,size);%调用选择操作子程序 nce=crossing(nse,size,pc,s_best,codel);%调用一点交叉操作子程序 nme=mutating(nce,size,s_best,codel);%调用变异操作子程序 e=nme;end figure(1) %作图:遗传收敛plot(time,j_best,r);xlabel(generation);ylabel(best j); jbest,jindex=min(j_best) %在所有遗传代数中找出最优解kbest=k_best(jindex,:) fangzhen(kbest,n); %将最优解带入仿真程序验证结果2 二进制解码子程序b2fdecoding.mfunction k=b2fdecoding(lb,ub,codel,e)d=0 0 0;for i=1:3 for j=1:codel d(i)=d(i)+e(codel*(i-1)+j)*2(j-1); %计算每个元素二进制编码的十进制转换 endendk=1/(2codel-1)*(ub-lb)*diag(d)+lb; %将式(5)扩充为3维矩阵,进行解码3 目标函数值函数object.mfunction fitness,j=object(k,n) ts=0.001;%采样时间0.001se=zeros(n,1);y=zeros(n,1);r=zeros(n,1);t=zeros(n,1);u=zeros(n,1); %分配存储空间,无用sys_s1=tf(0,0,1,10,1,0); %被控对象sys_z1=c2d(sys_s1,1,z); num,den=tfdata(sys_z1,v);u_0=0.0;u_1=0.0;u_2=0.0; %pid控制器当前和历史输出值y_1=0.0;y_2=0.0; %系统当前和历史输出e_0=0;e_1=0;e_2=0; %当前和历史误差 for k=1:1000 t(k)=k*ts; r(k)=1; %输入参考值(单位阶跃信号) %计算本次输出 y(k) =-den(2)*y_1-den(3)*y_2+. num(1)*u_0+num(2)*u_1+num(3)*u_2; e_0=r(k)-y(k); %计算本次误差 du(k)=k(1)*(e_0-e_1)+k(2)*e_0+k(3)*(e_0-2*e_1+e_2); u(k)=u_0+du(k); %计算pid输出控制 %数据值传递 u_2=u_1;u_1=u_0;u_0=u(k); e_2=e_1;e_1=e_0; e(k)=e_0; %记录误差序列 y_2=y_1; y_1=y(k);end p=0.05; %控制量优化比重j=0;for k=1:n j=j+e(k)2+p*u(k)2; %二次性能指标end %取j的倒数j0=j+1e-10; %防止j=0出现fitness=1/j0;4. 选择程序selecting.mfunction nse=selecting(fitness,e,k,size)fit_sum=sum(fitness);oderfit,indexfit=sort(fitness);%目标函数从小到大排序fit_size=(oderfit/fit_sum)*size; fit_s=floor(fit_size); %向下取整r=size-sum(fit_s);rest=fit_size-fit_s;restvalue,restindex=sort(rest);for i=size:-1:size-r+1 fit_s(restindex(i)=fit_s(restindex(i)+1;end kk=1;for i=1:size for j=1:fit_s(i) te(kk,:)=e(indexfit(i),:); kk=kk+1; endend nse=te; %形成新的参数组个体5. 交叉操作crossing.mfunction nce=crossing(nse,size,pc,s_best,codel)e=nse;te=zeros(size,3*codel);n=ceil(20*rand); %n为0-20的随机数,交叉的两个体以n为交叉点进行一点交叉for i=1:2:(size-1) temp=rand; if pctemp for j=n:20 te(i,j)=e(i+1,j); te(i+1,j)=e(i,j); %相邻两个个体随机交叉 end endendte(size,:)=s_best; %保留上一代最优个体nce=te; %交叉后的种群6. 变异操作mutating.mfunction nme=mutating(nce,size,s_best,codel)e=nce;pm=zeros(size,1);for i=1:(size/2) pm(i)=(1-2*i/size)*0.5;endfor i=(size/2+1):size pm(i)=0.5*(2*i/size-1);end %计算变异概率,先前fitness已排过序,最大变异概率为0.5for i=1:size for j=1:3*codel temp=rand; if pm(i)temp if e(i,j)=0 e(i,j)=1; else e(i,j)=0; end end endend %执行变异操作 e(size,:)=s_best; %保留最优个体nme=e;7. 仿真程序fangzhen.mfunction fangzhen(k,n)ts=0.001; %采样周期0.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 有色液固分离工协作考核试卷及答案
- 液压支架工比武试题含答案
- 模具设计与制造(中级)理论测试题与答案
- 制球工突发故障应对考核试卷及答案
- 再生物资回收挑选工5S管理考核试卷及答案
- 闪速炉熔炼工工艺考核试卷及答案
- 法律知识在线竞赛平台创新创业项目商业计划书
- 能源管理系统EMS创新创业项目商业计划书
- 智能泊车空间识别与系统创新创业项目商业计划书
- 绩效考核反馈软件创新创业项目商业计划书
- 《室内空间设计》第三章课件
- 沥青及沥青混合料试验作业指导书
- 学习《北方民族大学学生违纪处分规定(修订)》课件
- 装配式建筑设计专篇(word6)
- Matlab-Simulink模型检查验证与测试
- 单位减少存档人员表
- 潮流玩具行业研究报告
- 高一新生入学家长会课件(PPT 23页)
- 导尿管球囊扩张术在吞咽障碍治疗中应用
- 四川省初中毕业生登记表
- (精心整理)学而思小学语文课程体系介绍
评论
0/150
提交评论