《模型预测控制.docx》由会员分享,可在线阅读,更多相关《模型预测控制.docx(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、_云南大学信息学院学生实验报告课程名称:现代控制理论实验题目:预测控制 小组成员:李 博(12018000748) 金蒋彪(12018000747)专业:2018级检测技术与自动化专业 1、实验目的(1)、通过对预测控制原理的学习,掌握预测控制的知识点。(2)、通过对动态矩阵控制(DMC)的MATLAB仿真,发现其对直接处理具有纯滞后、大惯性的对象,有良好的跟踪性和较强的鲁棒性,输入已知的控制模型,通过对参数的选择,来获得较好的控制效果。(3)、了解matlab编程。2、实验原理模型预测控制(Model Predictive Control,MPC)是20世纪70年代提出的一种计算机控制算法,
2、最早应用于工业过程控制领域。预测控制的优点是对数学模型要求不高,能直接处理具有纯滞后的过程,具有良好的跟踪性能和较强的抗干扰能力,对模型误差具有较强的鲁棒性。因此,预测控制目前已在多个行业得以应用,如炼油、石化、造纸、冶金、汽车制造、航空和食品加工等,尤其是在复杂工业过程中得到了广泛的应用。在分类上,模型预测控制(MPC)属于先进过程控制,其基本出发点与传统PID控制不同。传统PID控制,是根据过程当前的和过去的输出测量值与设定值之间的偏差来确定当前的控制输入,以达到所要求的性能指标。而预测控制不但利用当前时刻的和过去时刻的偏差值,而且还利用预测模型来预估过程未来的偏差值,以滚动优化确定当前的
3、最优输入策略。因此,从基本思想看,预测控制优于PID控制。2.1、预测控制特点首先,对于复杂的工业对象。由于辨识其最小化模型要花费很大的代价,往往给基于传递函数或状态方程的控制算法带来困难,多变量高维度复杂系统难以建立精确的数学模型工业过程的结构、参数以及环境具有不确定性、时变性、非线性、强耦合,最优控制难以实现。而预测控制所需要的模型只强调其预测功能,不苛求其结构形式,从而为系统建模带来了方便。在许多场合下,只需测定对象的阶跃或脉冲响应,便可直接得到,而不必进一步导出其或状态方程,这对其工业应用无疑是有吸引力的。更重要的是,预测控制汲取了的思想,但利用滚动的有限时段优化取代一成不变的全局优化
4、。这虽然在理想情况下不能导致全局最优,但由于实际上不可避免地存在着模型误差和环境十扰,这种建立在实际反馈信息基础上的反复优化,能不断顾及不确定性的影响并及时加以校正,反而要比只依靠模型的一次优化更能适应实际过程,有更强的鲁棒性。所以,预测控制是针对传统最优控制在工业过程中的不适用性而进行修正的一种新型优化控制算法。 预测控制建模方便,对模型要求不高滚动优化的策略,具有较好的动态控制效果简单实用的反馈校正,有利于提高控制系统的鲁棒性不增加理论困难,可推广到有约束条件,大纯滞后,非 最小相位及非线性等过程是一种计算机优化控制算法。2.2、预测控制模型预测算法基本工作过程分为:模型预测、滚动优化、反
5、馈校正。预测模型旨在根据被控对象的历史信息和未来输入,预测系统未来响应。预测模型形式有参数模型:如微分方程、传递函数、差分方程等;非参数模型:如脉冲响应、阶跃响应模型等。它的功能是:根据被控对象的历史信息u(k-j),y(k-j) | j1和未来输入u(k+j-1)| j=1,.,m,预测系统未来响应y(k+j)| j=1,.,p。2.3、在线滚动优化模型预测控制是一种优化控制算法,通过某一性能指标的最优来确定未来的控制作用。控制目的是通过某一性能指标的最优,确定未来的控制作用。其优化过程的特点:随时间推移在线优化,反复进行;每一步实现的是静态优化;全局是动态优化。因此滚动优化是按照某个目标函
6、数确定当前和未来控制作用的大小,使这些控制作用将使未来输出预测序列沿某个参考轨迹“最优地”达到期望输出设定值。其优化过程不采用一成不变的全局最优化目标,而是采用滚动式的有限时域优化策略。优化过程不是一次离线进行,而是在线反复进行优化计算,滚动实施,从而使模型失配、时变、干扰等引起的不确定性能及时得到弥补,提高系统的控制效果。其作用如下图所示:2.4、反馈校正模型预测控制是一种闭环控制算法。为了防止模型失配或环境干扰引起控制对理想状态的偏离,预测控制通常不把这些控制作用逐一全部实施,而只是实现本时刻的控制作用。到下采样时刻则需首先检测对象的实际输出,再通过实际测到的输出信息对基于模型的预测输出进
7、行修正,然后再进行新的优化。不断根据系统的实际输出对预测输出值作出修正使滚动优化不但基于模型,而且利用了反馈信息,构成闭环优化。反馈修正的形式有:在保持预测模型不变的基础上,对未来的误差做出预测并加以补偿;根据在线辨识的原理直接修改预测模型。另外,反馈控制要注意模型失配问题,即实际被控过程存在非线性、时变性、不确定性等原因,使基于模型的预测不可能准确地与实际被控过程相符。其示意图如下:2.5、预测控制分类预测控制按照算法来分类,有基于非参数模型的预测控制算法和基于ARMA或CARIMA等输入输出参数化模型预测控制算法。非参数模型算法代表性的算法有模型算法控制MAC和动态矩阵控制DMC。这类算法
8、适合处理开环稳定多变量过程约束间题的拉制。参数模型算法代表性的算法为广义预测控制算法GPC。这类算法可用于开环不稳定、非最小相位和时变时滞等较难控制的对象,并对系绕的时滞和阶次不确定有良好的鲁棒性。但对于多变量系统,算法实施较困难。此外,还有一种不属于这两种之一的算法:滚动时域控制。这种算法由著名的LQ或LQG算法发展而来。对于状态空间模型,用有限时域二次性能指标再加终端约束的滚动时域控制方法来保证系统稳定性。它已拓展至跟踪控制和输出反馈控制。本次实验进行的仿真,是针对难度较大DMC,即动态矩阵控制,下一节将就DMC进行原理介绍。2.6、动态矩阵控制动态矩阵控制基于系统的阶跃响应,适用于稳定的
9、系统,系统的动态特性中具有纯滞后或非最小相位特性都不影响该算法的直接应用。该系统直接以对象的阶跃响应离散系数为模型。动态矩阵利用有限集合来描述系统的动态特性,其集合长度N称为建模时域。这就要求系统是渐近稳定的,保证了模型可用有限的阶跃响应描述。其示意图如下所示:从被控对象的阶跃响应出发,对象动态特性用一系列动态系数 a1,a2,an,即单位阶跃响应在采样时刻的值来描述,其中n 为模型时域长度,an为足够接近稳态值的系数模型时域n内,根据线性系统的比例和叠加性质,若某个k-i 时刻输入u(k-i),则u(k-i)对输出(k)的贡献为yk=aiuk-i 1in (1)若在所有k-i(1i n )时
10、刻同时有输入,则根据叠加原理有y(k)=i=1n-1aiuk-i+anu(k-n) (2)利用式()得到y(k+j)的步预测(),文中取n:为利用阶跃模型进行预测,把过去的输入对未来的输出贡献分离出来,上式可写为:后两项即过去输入对输出预测,记为:将上式写成矩阵公式:为了增加系统的动态稳定性和控制输入的可实现性,减少计算量,可将向量减少为维(),则系统输出为:Y=Au+y0 (3)其中Y为预测向量;A为动态矩阵;y0为预测初值向量。动态矩阵控制以优化确定控制策略,在优化过程中,同时考虑输出跟踪期望值和控制量变化来选择最优化准则。往往不希望控制增量变化过于剧烈,这一因素在优化性能指标中加入软约束
11、予以考虑。通过滚动优化,确定出未来M个控制增量,使未来P个输出预测值尽可能接近期望值,不同采样时刻,优化性能指标不同,但都具有同样的形式,且优化时域随着时间不断地向前推移。系统的预测模型是根据动态响应系数和控制增量来决定的,该算法的控制增量是通过使最优化准则最小化来确定的,以使系统未来每个输出尽可能接近期望值。所以,预测控制的控制策略是在实施了u(k)之后,采集k+1时刻的输出数据,进行新的预测、校正、优化,从而避免在等待m拍控制输入完毕期间,由于干扰等影响造成的失控。因此,优化过程不是一次离线进行的,而是反复在线进行的,其优化目标也是随时间推移的,即在每一时刻都提出一个立足于该时刻的局部优化
12、目标,而不是采用不变的全局优化目标。3、MATLAB仿真实现 接下来将对一个一阶时滞系统进行仿真,其传递函数如下:GpS=e-80s60s+1该部分的仿真共分为四个部分。第一部分对比动态矩阵控制(DMC)与PID控制的效果。第二部分对比动态矩阵控制中优化时域P的变化对控制效果的影响。第三部分对比控制时域M的变化对控制效果的影响。由于预测控制具有对失配模型也能进行控制的特性,第四部分对比系统失配与未失配时的控制效果。3.1、对比预测控制与PID控制效果图3.1 DMC在阶跃响应下的输出图3.2 PID在阶跃响应下的输出PID控制需要进行参数整定,为使该过程尽量简化步骤,这里采用试凑法进行PID参
13、数整定,试凑法整定PID参数其步骤如下:比例部分整定:首先将KI和KD取零,令KP由小到大,观察系统响应。直至速度快且有一定范围的超调为止,若响应已满足要求则使用纯比例控制即可。积分部分整定:在纯比例控制达不到要求时,加入积分作用。将KI由小逐渐增大,这时系统误差会逐步减小直至消除,选择合适的KI,若此时超调增大,可适量减小KP。微分部分整定:若使用PI控制器达不到要求时,加入微分控制。将KD由小逐渐增大,观察超调和稳定性同时相应调节KP 、KI进行试凑。当Kp过大时,系统不稳定,经过调节参数,取Kp=0.3,Ki=0.5,Kd=140时,输出入图3.2所示。由于系统震荡过大,再次减小比例系数
14、至Kp=0.1,输出效果如图3.3所示:图3.3 PID控制参数整定后输出效果对比两个仿真结果可知:动态矩阵控制下的输出更加稳定,快速,且无超调。动态矩阵控制(DMC)的控制效果比PID要好。实际上,动态矩阵控制是改进版的PID。3.2、P的变化对控制效果的影响优化时域P表示我们对k时刻起未来多少步的输出逼近期望值感兴趣。当采样周期T=20s,控制时域M=2,建模时域N=20,优化时域P分别为6,10和20时的阶跃响应曲线如图3.4所示.图3.4 优化时域P的变化对控制效果的影响图中曲线1为P=6时的阶跃响应曲线;曲线2为P=10时的阶跃响应曲线;曲线3为P=20时的阶跃响应曲线。从图中可以看
15、出:增大P,系统的快速性变差,系统的稳定性增强;减小P,系统的快速性变好,稳定性变差。所以P的选择应该兼顾快速性和稳定性。3.3、M的变化对控制效果的影响控制时域M表示所要确定的未来控制量的改变数目。当采样周期T=20s,优化时域P=20,建模时域N=20,控制时域M分别取4,2和1时系统的响应曲线如图3.5所示。图3.5 控制时域M的变化对控制效果的影响图中曲线1为M=4时的响应曲线;曲线2为M=2时的响应曲线;曲线3为M=1时的响应曲线。从图中可以看出:减小M,系统的快速性变差,系统的稳定性增强;增大M,系统的快速性变好,稳定性变差。增大P和减小M效果类似,所以在选择时,可以先确定M再调整
16、P,并且M小于等于P。3.4、模型失配与未失配时的控制效果对比当模型失配时,其他控制方法很难起到理想的作用,但是预测控制却可以应用于模型失配的情况。其仿真结果如下图3.6所示。图3.6 系统模型失配与未失配时的控制效果对比图中曲线1为未失配时的阶跃响应曲线;曲线2为模型失配时的阶跃响应曲线。从图中可以看出:当模型失配时,DMC控制有一定的超调,快速性下降,但能很快进入稳定状态,控制效果令人满意。所以DMC在形成闭环控制时,对模型失配具有很好的鲁棒性。4、总结现在对预测控制的特点进行总结。首先,对于复杂的工业对象,由于辨识其最小化模型要花费很大的代价,往往给基于传递函数或状态方程的控制算法带来困
17、难。而预测控制所需要的模型只强调其预测功能,不苛求其结构形式,从而为系统建模带来了方便。在许多场合下,只需测定对象的阶跃或脉冲响应,便可直接得到,而不必进一步导出其或状态方程,这对其工业应用无疑是有吸引力的。更重要的是,预测控制汲取了的思想,但利用滚动的有限时段优化取代一成不变的全局优化。这虽然在理想情况下不能导致全局最优,但由于实际上不可避免地存在着模型误差和环境十扰,这种建立在实际反馈信息基础上的反复优化,能不断顾及不确定性的影响并及时加以校正,反而要比只依靠模型的一次优化更能适应实际过程,有更强的鲁棒性。所以,预测控制是针对传统最优控制在工业过程中的不适用性而进行修正的一种新型优化控制算
18、法。5、附录5.1、预测控制与PID控制对比仿真代码5.1.1、预测控制代码g=poly2tfd(1,60 1,0,80);%通用传函转换为MPC模型delt=20;%采样周期nt=1;%输出稳定性向量tfinal=1000;%截断时间model=tfd2step(tfinal,delt,nt,g);%传函转换为阶跃响应模型plant=model;%进行模型预测控制器设计p=10;m=2;ywt=;uwt=1;%设置输入约束和参考轨迹等控制器参数kmpc=mpccon(plant,ywt,uwt,m,p);%模型预测控制器增益矩阵计算tend=1000;r=1;%仿真时间y,u,yrn=mpc
19、sim(plant,model,kmpc,tend,r);%模型预测控制仿真t=0:20:1000;%定义自变量t的取值数组plot(t,y);xlabel(DMC控制阶跃响应输出);ylabel(响应曲线);grid;5.1.2、PID控制代码%PIDControler不完全微分 close all;ts=20;sys=tf(1,60,1,inputdelay,80);dsys=c2d(sys,ts,zoh);num,den=tfdata(dsys,v);u_1=0;u_2=0;u_3=0;u_4=0;u_5=0;ud_1=0;y_1=0;y_2=0;y_3=0;error_1=0;ei=0
20、;for k=1:1:100; time(k)=k*ts;rin(k)=1.0;%Linear?model?yout(k)=-den(2)*y_1+num(2)*u_5;D(k)=0.01*rands(1);yout(k)=yout(k)+D(k);error(k)=rin(k)-yout(k);%PID?Controller?with?partly?differential?ei=ei+error(k)*ts;kc=0.1;ki=0.5;TD=140;kd=kc*TD/ts;Tf=180;Q=tf(1,Tf,1);%Low?Freq?Signal?Filter?M=2;%M=1不完全微分,?
21、%M=2普通Pid控制!if M=1;alfa=Tf/(ts+Tf);ud(k)=kd*(1-alfa)*(error(k)-error_1)+alfa*ud_1;u(k)=kc*error(k)+ud(k)+ki*ei;ud_1=ud(k);elseif M=2;%Using?Simple?PIDu(k)=kc*error(k)+kd*(error(k)-error_1)+ ki*ei;endif u(k)=10;u(k)=10;endif u(k)=10;u(k)=10;endu_5=u_4;u_4=u_3;u_3=u_2;u_2=u_1;u_1=u(k);y_3=y_2;y_2=y_1;
22、y_1=yout(k);error_1=error(k);end figure(1);plot(time,rin,b,time,yout,r);xlabel(time(s);ylabel(rin,yout) 5.2、不同P值对比控制效果代码g=poly2tfd(1,60 1,0,80);%通用传函转换为MPC模型delt=20;%采样周期nt=1;%输出稳定性向量tfinal=1000;%截断时间model=tfd2step(tfinal,delt,nt,g);%传函转换为阶跃响应模型plant=model;%进行模型预测控制器设计p1=6;p2=10;p3=20;%优化时域m=2;%控制时域
23、ywt=;uwt=1;%设置输入约束和参考轨迹等控制器参数kmpc1=mpccon(plant,ywt,uwt,m,p1);%模型预测控制器增益矩阵计算kmpc2=mpccon(plant,ywt,uwt,m,p2);kmpc3=mpccon(plant,ywt,uwt,m,p3);tend=1000;r=1;%仿真时间y1,u,yrn=mpcsim(plant,model,kmpc1,tend,r);%模型预测控制仿真y2,u,yrn=mpcsim(plant,model,kmpc2,tend,r);y3,u,yrn=mpcsim(plant,model,kmpc3,tend,r);t=0:
24、20:1000;%定义自变量t的取值数组plot(t,y1,t,y2,t,y3); legend(1:p=6,2:p=10,3:p=20);xlabel(图二P不同对系统性能的影响(time/s);ylabel(响应曲线);5.3、不同M值对比控制效果代码g=poly2tfd(1,60 1,0,80);%通用传函转换为MPC模型delt=20;%采样周期nt=1;%输出稳定性向量tfinal=1000;%截断时间model=tfd2step(tfinal,delt,nt,g);%传函转换为阶跃响应模型plant=model;%进行模型预测控制器设计p=10;m1=4;m2=2;m3=1;ywt
25、=;uwt=1;%设置输入约束和参考轨迹等控制器参数kmpc1=mpccon(plant,ywt,uwt,m1,p);%模型预测控制器增益矩阵计算kmpc2=mpccon(plant,ywt,uwt,m2,p);kmpc3=mpccon(plant,ywt,uwt,m3,p);tend=1000;r=1;%仿真时间y1,u,yrn=mpcsim(plant,model,kmpc1,tend,r);%模型预测控制仿真y2,u,yrn=mpcsim(plant,model,kmpc2,tend,r);%模型预测控制仿真y3,u,yrn=mpcsim(plant,model,kmpc3,tend,r
26、);%模型预测控制仿真t=0:20:1000;%定义自变量t的取值数组plot(t,y1,t,y2,t,y3);legend(1:m=4,2:m=2,3:m=1);xlabel(图一DMC控制动态响应曲线(time/s);ylabel(响应曲线);5.4、模型失配与未失配对比代码g1=poly2tfd(1,60 1,0,80);%通用传函转换为MPC模型g2=poly2tfd(2,40 1,0,50);%通用传函转换为MPC模型delt=20;%采样周期nt=1;%输出稳定性向量tfinal=1000;%截断时间model1=tfd2step(tfinal,delt,nt,g1);%传函转换为
27、阶跃响应模型model2=tfd2step(tfinal,delt,nt,g2);%传函转换为阶跃响应模型plant1=model1;%进行模型预测控制器设计plant2=model2;%进行模型预测控制器设计p=10;%优化时域m=2;%控制时域 ywt=;uwt=1;%设置输入约束和参考轨迹等控制器参数kmpc1=mpccon(plant1,ywt,uwt,m,p);%模型预测控制器增益矩阵计算kmpc2=mpccon(plant2,ywt,uwt,m,p); tend=1000;r=1;%仿真时间y1,u,yrn=mpcsim(plant1,model1,kmpc1,tend,r);%模型未失配仿真y2,u,yrn=mpcsim(plant2,model2,kmpc2,tend,r); t=0:20:1000;%定义自变量t的取值数组plot(t,y1,t,y2); legend(1-模型失配,2-模型未失配);xlabel(图四模型失配时的响应曲线(time/s);ylabel(响应曲线);25_
限制150内