PID全参数优化和前馈控制

上传人:M****1 文档编号:504969942 上传时间:2023-04-26 格式:DOCX 页数:31 大小:604.98KB
返回 下载 相关 举报
PID全参数优化和前馈控制_第1页
第1页 / 共31页
PID全参数优化和前馈控制_第2页
第2页 / 共31页
PID全参数优化和前馈控制_第3页
第3页 / 共31页
PID全参数优化和前馈控制_第4页
第4页 / 共31页
PID全参数优化和前馈控制_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《PID全参数优化和前馈控制》由会员分享,可在线阅读,更多相关《PID全参数优化和前馈控制(31页珍藏版)》请在金锄头文库上搜索。

1、1958现代工程控制理论实验报告学生姓名: 任课老师:实验十一 PID参数优化和前馈控制31、PID 参数优化 31.1 实验目的 31.2 PID 优化方法 32 前馈控制 172.1 实验原理 172.2 实验步骤及内容 192.3 实验结论 253、实验中遇到的问题253.1 PSO 优化结果问题 253.2 如何寻找一个函数分析系统仿真过程中的扰动对系统输出的影响程度?29实验十一 PID 参数优化和前馈控制本次实验分为 PID 控制器的参数优化和前馈控制器分析两个部分。1、PID 参数优化1.1 实验目的PID控制器是控制领域中最为经典、应用最为广泛的一种控制器, 但是现如今 PID

2、 参数的选择方法仍然没有一个广泛认同的标准。本次 实验通过实例讲解一种较为基本的PID参数选择方法,以供大家参考。1.2 PID 优化方法PID参数选择主要分为两个部分,经验寻找和精准筛选。1.2.1 经验寻找在已知对象传递函数的条件下,寻找控制器参数的第一步的是经 验寻找,即利用经验公式大致确定PID三个参数的大致范围。设PID控制器的形式为k (1 +丄+ TS),确定kp、Ti、Td参数的p TS di经验公式如下:(1)对于传递函数为 K 的系统选择PI控制器,k = ,(1+ Ts)np 0.3nkT 二 0.5nT。ie -Ts(2)对于传函为(1+Ts)n的系统可以选择Zn法选择

3、PID控制系数。Zn法的表格如下。Zn法KpTTdPTkg0PI0.9 kx3.3t0PID1.2 kx2t0.5t至于纯迟延系统 PID 控制器的参数选择方法在实验十二继续阐述,在此不再累赘。例:针对传递函数为2 的对象设计PI控制器,使系统最终(l+80s)能够稳定下来,且超调量小于 5%,稳定时间小于 500s。解: 根据经验公式可以大致确定一组 PI 系数使系统能够稳定下来。 对应的程序如下。k=2;T=80:门=2;R=l;kp=l/O. 3/n/k;T1=O.0 8333 + 00104得到kp=0.8333,Ti=80。对应的控制器的传递函数为s在相应的控制器的作用下系统的输出曲

4、线如下。从图像中可以观察到 ,经验公式得到的控制器虽然能使系统稳定 下来,但输出品质却无法令人满意。因此需要优化控制器的参数,进 行精确寻找。1.2.2 精确寻找 经验法得到的控制器参数仅仅能够使系统稳定下来,但系统的品 质往往并不是特别令人满意,因此需要进一步寻找更精确的控制器参 数。尽管精确寻找的算法很多,但这些算法的方向都一样的,即是在 粗略 PID 参数附近利用各种方法搜寻使目标函数取最小值的 kp、Ti 和 Td 。因此这一步的关键在于目标函数的确定和搜寻方法的选择。1.2.2.1目标函数目标函数用来衡量搜寻当中控制器参数的满意程度,它对于系统辨识或PID参数优化问题极为重要,直接影

5、响最终的辨识或优化效果。但目前并没有成型的理论可以系统地阐述什么样的条件下选用什么 样的目标函数,只能通过经验来确定。对于 PID 参数优化问题,常用的目标函数有以下这么4 个。f = J e2dt、f = J I e I tdt、f = J e2tdt、f = J e2t2dt1 2 3 4 为了便于写程序,将其写成累加的形式分别为。f =工e2dt, f =工i I e I dt2, f =工iedt2, f =工i2e2dt31234其中 t=i*dt, e=r-y(i)。 e 表示整个系统输入值和输出值得差。目标函数即是建立一个衡量系统品质的标准。目标函数的值越小, 相应的系统输出的控

6、制品质越好。这四种目标函数的侧重点又各有所 不同。f 更注重于系统的准确性,对系统的快速性没有直接的要求。一 1般来说,由 f 筛选出来的控制器超调量最小,但稳定时间往往并不是1特别理想。f 是在 f 的基础上加上了对快速性的考虑,由 f 筛选出来的控制2 1 2器往往比 f 得到的控制器在快速性上更胜一筹。1而类似的 f 、 f 也是在系统品质上有所侧重。经过不同的目标函34数得到的控制器的各项品质多多少少是有所不同。但不管怎样,通过 选择合适的目标函数总能让我们找到符合要求的最优的 PID 控制器。4 种目标函数对应的程序如下。Q=0;if eType=1% f = J e 2 dt1fo

7、r i=1:lpe=r-y(i);Q=Q+e*e*dt;endendif eType=2% f = J| e |tdt2for i=1:lpe=r-y(i);Q=Q+i*dt*dt*abs(e);endendif eType=3% f = J e 2tdt3for i=1:lpe=r-y(i);Q=Q+i*dt*dt*e*e;endendif eType=4% f = J e2t2dt4for i=1:lpe=r-y(i);Q=Q+i*dt*i*dt*dt*e*e;endend此外,为了保证控制品质满足响应的要求(如超调量小于5%)还 要对各项品质加入上限和惩罚因子。一但某项品质超过上限,则惩

8、罚 因子就开始起作用。惩罚因子是一个很大的数,当这一项起作用后目标函数的值会显 著增大。惩罚因子的加入形式也是有讲究的。直接在目标函数上加入一个 很大的数是无法表示不同系统品质的“越限程度”。因此需要在惩罚 因子上乘上一个比例系数。形似如ioiqEMP MP|,其中emp是超调EMP量的上限, MP 是实际输出的超调量。 对超调量、稳定时间加入上限的程序如下。if EMp HpQ=Q + 1. OeLO+abs (EMp-Mp) /EMp) ; %将超调量限定在EMP 以,下endif ETstsQ=Q + 1. OelO*ab(ETs-ts)/(ETs) 将稳定时间*艮定在EMP以下end1

9、.2.2.2搜寻方法搜寻方法有很多种,在此以穷举法、随机搜索、以及 pSO 算法为 例详细介绍。1.2.2.2.1 穷举法利用经验公式得到 PID 控制器的粗略参数后,在其附近能够确定各项参数的一个范围。之后选择合适的步长,在这个范围内寻优。 每次得到一组控制器的参数后,可以得到一个目标函数的返回值。要记录下使目标函数值最小的控制器参数作为最优解。继续上例,利用穷举法寻找控制器的最优参数,程序如下。%穷举法 PID 参数优化clc;clear all;close all;kp,Ti=first;kpmin=0.6*kp;kpmax=3*kp;Timin=Ti;Timax=3*Ti;step_k

10、p=0.1*kp;step_Ti=0.1*Ti;e=100;kp_b=kpmin;Ti_b=Timin;to=clock;for kp_find=kpmin:step_kp:kpmaxfor Ti_find=Timin:step_Ti:Timax ec,ym,tm=fangzhen(kp_find,Ti_find); if ecee=ec;kp_b=kp_find;Ti_b=Ti_find;y_f=ym;endendendtime1=etime(clock,to)kp_bTi_b得到的kp=1.25,Ti=224,对应的控制器的传递函数为1.25+.558 s对应的系统输出曲线为。1.2.2.

11、2.2 随机搜索随机搜索也是一种搜寻 PID 参数的简单方法。相比较穷举法那种 不遗漏的筛选方法,随机搜索的方式会快很多。随机法主要利用了概率论的思想。假设每个点都可能是最优点, 那么没必要搜索所有的点。只要随机的搜取最够多的点即有很大可能 找到想要的最优解,这样可大大缩短仿真时间。随机搜索对应的程序如下。%随机搜索clear all;close all;kp,Ti=first;kpmin=0.6*kp;kpmax=3*kp;Timin=Ti;Timax=3*Ti;Ti_b=Timin;kp_b=kpmin;e=100;kp_b=kpmin;Ti_b=Timin;to=clock;for i=

12、1:1000kp_find=kpmin+(kpmax-kpmin)*rand();Ti_find=Timin+(Timax-Timin)*rand();ec,ym,tm=fangzhen(kp_find,Ti_find);if ecee=ec;kp_b=kp_find;Ti_b=Ti_find;endendtime1=etime(clock,to)kp_bTi_b利用随机搜索对 PID 参数进行优化得到的系统输出曲线如下。1.2.2.2.3 PSO算法粒子群优化(PSO)属于群体智能算法,可以大大缩短优化时间。PSO 算法利用了生物学中的群体行为。个体为了寻优,它的前进 速度就应该由三个外力决

13、定:自己过去最好的、整个群体当前最好的 以及自己现在的运动趋势。由这些合力可以确定它的前进方向,使它 不再盲目,因此不必要像穷举法那样将任何位置都走过,或者像随机 法那样没有目的仅凭随机的寻找最优值。PSO 算法的流程如下。继续上例,通过 PSO 算法寻找最优的 PID 控制器,程序如下。%设定初始值N=10;%粒子个数to=clock;for ii=1:NPSO(ii,1)=kpmin+(kpmax-kpmin)*rand();%PSO(,1) 表示 kpPSO(ii,2)=Timin+(Timax-Timin)*rand();%PSO(,2) 表示 TiE(ii)=100;%E表示各个点的

14、误差v(ii,1)=vmin+(vmax-vmin)*rand();%v(ii,1) 表示各个点当前的速度v(ii,2)=vmin+(vmax-vmin)*rand();%v(ii,2) 表示各个点当前的速度 end%最优lishi_b=zeros(N,2);%N*2 的数组,记录了每个粒子各自的历史最优位置, lishi_b(n,1)表示第n个粒子的历史最优k,lishi_b(n,2)表示第n个粒子的历 史最优 T;E_ago二zeros(1,N)+10=0;%记录了 N个粒子各自的历史最小误差now_b二zeros(1,2);%当前群体最优位置,now_b (1)表示 k,now_b(2)表示 T%PSO 的内循环M=50;%设定的代数for jj=1:50for ii=1:NE(ii),ym,tm=fangzhen(PSO(ii,1),PSO(ii,2);if E(ii)E_ago(ii)E_ago(ii)=E(ii);lishi_b(ii,1)=PSO(ii,1);lishi_b(ii,2)=PSO(ii,2);endendE_ no w,lli=mi n(E);%寻找当前群体最优now_b(1)=PSO(lli,1);now_b(2)=PSO(lli,2)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号