PID参数优化和前馈控制Word格式文档下载.docx
《PID参数优化和前馈控制Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《PID参数优化和前馈控制Word格式文档下载.docx(23页珍藏版)》请在冰豆网上搜索。
得到kp=0.8333,Ti=80。
对应的控制器的传递函数为
,在相应的控制器的作用下系统的输出曲线如下。
从图像中可以观察到,经验公式得到的控制器虽然能使系统稳定下来,但输出品质却无法令人满意。
因此需要优化控制器的参数,进行精确寻找。
1.2.2精确寻找
经验法得到的控制器参数仅仅能够使系统稳定下来,但系统的品质往往并不是特别令人满意,因此需要进一步寻找更精确的控制器参数。
尽管精确寻找的算法很多,但这些算法的方向都一样的,即是在粗略PID参数附近利用各种方法搜寻使目标函数取最小值的kp、Ti和Td。
因此这一步的关键在于目标函数的确定和搜寻方法的选择。
1.2.2.1目标函数
目标函数用来衡量搜寻当中控制器参数的满意程度,它对于系统辨识或PID参数优化问题极为重要,直接影响最终的辨识或优化效果。
但目前并没有成型的理论可以系统地阐述什么样的条件下选用什么样的目标函数,只能通过经验来确定。
对于PID参数优化问题,常用的目标函数有以下这么4个。
、
为了便于写程序,将其写成累加的形式分别为。
其中t=i*dt,e=r-y(i)。
e表示整个系统输入值和输出值得差。
目标函数即是建立一个衡量系统品质的标准。
目标函数的值越小,相应的系统输出的控制品质越好。
这四种目标函数的侧重点又各有所不同。
更注重于系统的准确性,对系统的快速性没有直接的要求。
一般来说,由
筛选出来的控制器超调量最小,但稳定时间往往并不是特别理想。
是在
的基础上加上了对快速性的考虑,由
筛选出来的控制器往往比
得到的控制器在快速性上更胜一筹。
而类似的
也是在系统品质上有所侧重。
经过不同的目标函数得到的控制器的各项品质多多少少是有所不同。
但不管怎样,通过选择合适的目标函数总能让我们找到符合要求的最优的PID控制器。
4种目标函数对应的程序如下。
Q=0;
ifeType==1%
fori=1:
lp
e=r-y(i);
Q=Q+e*e*dt;
end
ifeType==2%
Q=Q+i*dt*dt*abs(e);
ifeType==3%
Q=Q+i*dt*dt*e*e;
ifeType==4%
Q=Q+i*dt*i*dt*dt*e*e;
此外,为了保证控制品质满足响应的要求(如超调量小于5%)还要对各项品质加入上限和惩罚因子。
一但某项品质超过上限,则惩罚因子就开始起作用。
惩罚因子是一个很大的数,当这一项起作用后目标函数的值会显著增大。
惩罚因子的加入形式也是有讲究的。
直接在目标函数上加入一个很大的数是无法表示不同系统品质的“越限程度”。
因此需要在惩罚因子上乘上一个比例系数。
形似如
,其中EMP是超调量的上限,MP是实际输出的超调量。
对超调量、稳定时间加入上限的程序如下。
1.2.2.2搜寻方法
搜寻方法有很多种,在此以穷举法、随机搜索、以及PSO算法为例详细介绍。
1.2.2.2.1穷举法
利用经验公式得到PID控制器的粗略参数后,在其附近能够确定各项参数的一个范围。
之后选择合适的步长,在这个范围内寻优。
每次得到一组控制器的参数后,可以得到一个目标函数的返回值。
要记录下使目标函数值最小的控制器参数作为最优解。
继续上例,利用穷举法寻找控制器的最优参数,程序如下。
%穷举法PID参数优化
clc;
clearall;
closeall;
[kp,Ti]=first;
kpmin=0.6*kp;
kpmax=3*kp;
Timin=Ti;
Timax=3*Ti;
step_kp=0.1*kp;
step_Ti=0.1*Ti;
e=10^10;
kp_b=kpmin;
Ti_b=Timin;
to=clock;
forkp_find=kpmin:
step_kp:
kpmax
forTi_find=Timin:
step_Ti:
Timax
[ec,ym,tm]=fangzhen(kp_find,Ti_find);
ifec<
e
e=ec;
kp_b=kp_find;
Ti_b=Ti_find;
y_f=ym;
time1=etime(clock,to)
kp_b
Ti_b
得到的kp=1.25,Ti=224,对应的控制器的传递函数为
对应的系统输出曲线为。
1.2.2.2.2随机搜索
随机搜索也是一种搜寻PID参数的简单方法。
相比较穷举法那种不遗漏的筛选方法,随机搜索的方式会快很多。
随机法主要利用了概率论的思想。
假设每个点都可能是最优点,那么没必要搜索所有的点。
只要随机的搜取最够多的点即有很大可能找到想要的最优解,这样可大大缩短仿真时间。
随机搜索对应的程序如下。
%随机搜索
1000
kp_find=kpmin+(kpmax-kpmin)*rand();
Ti_find=Timin+(Timax-Timin)*rand();
利用随机搜索对PID参数进行优化得到的系统输出曲线如下。
1.2.2.2.3PSO算法
粒子群优化(PSO)属于群体智能算法,可以大大缩短优化时间。
PSO算法利用了生物学中的群体行为。
个体为了寻优,它的前进速度就应该由三个外力决定:
自己过去最好的、整个群体当前最好的以及自己现在的运动趋势。
由这些合力可以确定它的前进方向,使它不再盲目,因此不必要像穷举法那样将任何位置都走过,或者像随机法那样没有目的仅凭随机的寻找最优值。
PSO算法的流程如下。
继续上例,通过PSO算法寻找最优的PID控制器,程序如下。
%----------设定初始值
N=10;
%粒子个数
forii=1:
N
PSO(ii,1)=kpmin+(kpmax-kpmin)*rand();
%PSO(,1)表示kp
PSO(ii,2)=Timin+(Timax-Timin)*rand();
%PSO(,2)表示Ti
E(ii)=10^10;
%E表示各个点的误差
v(ii,1)=vmin+(vmax-vmin)*rand();
%v(ii,1)表示各个点当前的速度
v(ii,2)=vmin+(vmax-vmin)*rand();
%v(ii,2)表示各个点当前的速度
%----------最优
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^10;
%记录了N个粒子各自的历史最小误差
now_b=zeros(1,2);
%当前群体最优位置,now_b
(1)表示k,now_b
(2)表示T
%----------PSO的内循环
M=50;
%设定的代数
forjj=1:
50
[E(ii),ym,tm]=fangzhen(PSO(ii,1),PSO(ii,2));
ifE(ii)<
E_ago(ii)
E_ago(ii)=E(ii);
lishi_b(ii,1)=PSO(ii,1);
lishi_b(ii,2)=PSO(ii,2);
[E_now,lli]=min(E);
%寻找当前群体最优
now_b
(1)=PSO(lli,1);
now_b
(2)=PSO(lli,2);
ifE_now<
180
break;
v(ii,:
)=v(ii,:
)+1.4*rand()*(now_bPSO(ii,:
))+...
1.4*rand()*(lishi_b(ii,:
)-PSO(ii,:
));
%更新速度
ifv(ii,1)>
9/20%对速度限幅
v(ii,1)=9/20;
elseifv(ii,1)<
-9/20
v(ii,1)=-9/20;
ifv(ii,2)>
9/20
v(ii,2)=9/20;
elseifv(ii,2)<
v(ii,2)=-9/20;
PSO(ii,:
)=PSO(ii,:
)+v(ii,:
);
%更新位置
得到的kp=0.76371,Ti=148.3664,对应的控制器的传递函数为
1.3对各种PID优化方法进行分析比较
优化方法
PI控制器参数(控制器传函为
)
稳定时间ts
超调量Mp
衰减率fai
最终稳定值ys
优化时间
经验公式
Kp=0.8333,Ti=80
448
26.1816
0.923
0.99702
——
穷举法
Kp=1.25,Ti=224
384
4.5825
1
0.99264
0.36
随机搜索
Kp=1.1848,Ti=204.34
376
4.8536
0.99478
0.343
PSO算法
Kp=1.1795,Ti=224.67
392
3.0848
0.99177
0.353
从图表中可以发现,经过优化,系统的品质明显提升。
此外分析不同优化方法得到的控制器可以发现,进过不同优化方法得到的PI控制参数仅仅是略有不同,得到的效果都能令人满意。
从表格当中的优化时间当中也很难看出仿真速度的快慢来。
但从原理上分析,对于那些十分复杂的系统,优化精度最高的是穷举法。
穷举法是一个点紧邻一个点的寻找,在精度的满足范围下没有遗漏。
但这同样造成了穷举法的仿真时间要远远落后于其他方法,因此对于复杂系统来说穷举法并不适用。
而至于仿真速度最快的方法,对于十分复杂的系统在保证精度的前提下,以PSO算法为代表的智能算法因其巧妙的群体行为学的应用使得优化速度最快,可以在最短的时间内达到人所期望的效果。
而相比较而言,智能算法的程序也较为复杂,因此更适合更为复杂的系统。
而随机搜索、混沌算法属于较为综合的方法。
思想简单,仿真精度、仿真时间都考虑在内,适合较为简单的系统。
这些算法带来的好处当中,自我认为最重要的一点在于精度可调。
因为对工程当中,因环境影响各项参数的精度都不是很高。
这样在写算法的时候即可牺牲优化精度,来换取优化速度,实现效率的最大化。
2前馈控制
2.1实验原理
2.1.1前馈控制
在自动控制技术当中,有一种按照干扰量的变化来补偿其对被控量的影响,从而达到减弱干扰量对系统输出的影响的控制方式。
我们称这种按干扰进行控制的开环控制方式称为前馈控制。
前馈控制的方框图如下,其中R为干扰量。
在系统当中加入前馈环节实现完全补偿,即要实现系统的输出y等于0,则前馈控制所在的直通通路的输出为-R。
由此可以得到前馈环节的传递函数
得到
,称这一环节为动态补偿环节。
G(s)往往具有积分环节,由此得到的
就会带有纯微分环节。
而在实际当中,传递函数为纯微分形式的系统是不存在的,如果不可避免用
替换。
总之传递函数为
的物理装置很难制作。
因此往往用静态补偿代替动态补偿。
称前馈环节传递函数为
的控制方式为静态前馈控制。
这样的前馈装置为简单的放大装置,易于制作,安全可靠。
前馈控制的实质为补偿控制。
如果给定值为经常发生变动的输入信号,则应用这种控制方法会提高系统的稳定性,也会加快响应速度,减弱扰动对系统输出产生的影响。
利用前馈控制进行系统设计也有相应的前提条件,如下。
(1)被控对象的传递函数需已知,且要准确。
如果被控对象的实际传递函数与我们得到的传递函数有所偏差,称这种情况为模型失配。
模型失配会降低系统的输出品质。
(2)干扰点是可知且能测量的,否则前馈环节的输入端无法确定。
2.1.2前馈——反馈控制
单纯的前馈控制往往不能很好地补偿干扰,存在着不少局限性。
主要是单纯的前馈控制不存在被控量的反馈,对补偿效果没有检验的手段。
因此一个固定的前馈控制难以获得良好的控制品质。
工业当中常常将前馈与反馈结合在一起,构成所谓的前馈—反馈控制系统。
前馈—反馈控制系统的方框图如下。
前馈—反馈控制将前馈和反馈的优点结合在了一起,既发挥了前馈控矫正及时、抗扰动的特点,又保持了前馈控制能克服多种干扰并对被控变量始终给予检验的优点。
因此前馈—反馈控制是过程控制当中有发展前途的控制方式。
2.2实验步骤及内容
本次试验主要以减温水系统为例来总结前馈控制的特点。
工业当中前馈—反馈控制的实例有很多,以减温水系统为例。
该系统的方框图如下。
其中
R是系统的输入信号,将R简化为1。
D是干扰信号。
为了研究前馈控制的抗干扰能力,取前一半仿真时间里D=0,后一半仿真时间里D=1。
要实现前馈控制,则应满足D*GD(s)+D*Gf(s)*G(s)=0。
得到
2.2.1静态前馈控制
静态前馈控制系统中前馈环节的传递函数为
,本例当中
将静态前馈控制下减温水系统的输出和不加前馈控制减温水系统的输出曲线列于一张图中,如下。
分析图中的两条曲线可以发现,在不加扰动之前(t<
650s),二者输出曲线重合。
当t>
650后加入干扰信号D,两条曲线最终都能够稳定下来,且最终的输出接近于输入信号R。
这说明减温水系统无论加不加前馈控制环节最终都能消除扰动,稳定在期望值上。
之后再仔细对比两条曲线,可以发现加入静态前馈控制环节后因干扰信号而给输出带来的扰动强度明显弱于不加前馈控制时的强度。
因此可以总结出静态前馈控制环节的功能—静态前馈控制环节可以提高系统的抗干扰能力,降低干扰对系统输出的影响。
2.2.2动态前馈控制
动态前馈控制系统中前馈环节的传递函数为
,在本系统当中
对该系统进行仿真,得到的仿真曲线为。
观察三条曲线可以发现,扰动对动态前馈控制下系统输出的影响程度虽然比不加前馈控制下系统输出的影响程度小,但却大于静态前馈控制下干扰对系统的影响程度。
这说明动态系统的抗干扰能力要强于静态系统的抗干扰能力。
此外动态前馈补偿环节的装置明显要比静态前馈补偿环节装置复杂。
因此在明确知道系统对象的传递函数时,静态前馈控制要优于动态前馈控制。
2.2.3模型失配时的前馈控制
前馈补偿的前提之一是知道控制对象的传递函数,否则就无法选择前馈环节的物理装置。
如果对象的实际传递函数为G(s),而我们通过辨识得到的传递函数G’(s),因为某种原因使得G’(s)不等于G(s)。
在这样的条件下我们称前馈控制系统处于模型失配状态。
继续上例,减温水系统的主被控对象传递函数
,而我们得到的减温水系统的主被控对象传递函数
设
为模型失配时前馈环节的传递函数,则
为了研究模型失配时前馈控制系统的响应特性,我们将失配与不失配两种情况下系统的输出曲线绘于下方。
2.2.3.1静态前馈控制模型失配问题
,可以得到
静态前馈控制系统模型失配与不失配的区别就在于前馈装置的传函是
还是
将两种情况下系统的输出列于下方。
分析两条曲线可以发现无论模型失配还是不失配,最终静态前馈控制系统的输出都能稳定下来。
其次观察因干扰给系统带来的扰动情况。
很明显,当模型失配时干扰对系统输出的影响要明显大于模型不失配时干扰对系统输出的影响。
而且模型失配时,干扰消除的时间要明显长于模型不失配时的消除时间。
可见对于静态前馈系统来说,模型失配会降低系统的抗扰能力。
2.2.3.1动态前馈控制模型失配问题
动态前馈控制系统模型失配与不失配的区别就在于前馈装置的传函是
分析两条曲线可以发现无论模型失配还是不失配,最终动态前馈控制系统的输出都能稳定下来。
很明显当模型失配时干扰对系统输出的影响要明显大于模型不失配时干扰对系统输出的影响。
可见对于动态前馈系统来说,模型失配会降低系统的抗扰能力。
此外再将动态前馈环节和静态前馈环节模型失配和不失配作对比,可以发现,当模型失配时动态前馈环节系统的输出与模型不失配时系统的输出相差幅度要远大于模型失配时静态前馈环节系统的输出与模型不失配时系统输出的相差幅度。
由此可以推断动态前馈控制系统抗模型失配的能力要大于静态前馈控制系统抗模型失配的能力。
2.3实验结论
将前馈控制系统的各项特点总结于下。
(1)前馈控制系统可以提高系统的抗干扰能力,适合于输入多变化、干扰较多的系统。
(2)当被控对象的传函已知且准确时静态前馈控制系统在成本、效果上要优于动态前馈控制系统。
(3)当模型失配时前馈控制系统的抗干扰能力会下降。
而静态前馈控制受模型失配的影响程度要大于动态前馈控制受模型失配的影响程度。
3、实验中遇到的问题
3.1PSO优化结果问题
在利用PSO算法进行仿真时进行PID优化时,进行多次仿真,每次得到的PID系数并不完全相同,有时差别较大。
这是因为PSO算法的误差导致,还是说是因为该系统的PID本身存在多组最优解?
应该是后者的可能性比较大,因为观察每次优化得到的输出曲线的品质可以发现。
当系统超调量大的时候稳定时间一般较短,稳定时间较短时超调量较大,应该是各个品质的侧重导致了最优解不唯一。
将几张优化得到的图像列于下方。
3.2如何寻找一个函数分析系统仿真过程中的扰动对系统输出的影响程度?
这种评测函数最好加入对扰动对系统输出大小的影响、以及扰动的消除时间等因素的考虑。
在分析模型失配时,由于是在系统仿真过程之中加入的干扰,因此valube函数不能再使用。
因此很那定量的分析模型失配时动态前馈控制的效果好些还是静态前馈控制的效果好些。
如何定量分析因模型失配而给系统输出带来的影响,成为报告当中难以解决的问题。