您好,欢迎访问三七文档
内模控制与预测控制姓名:张慧勇学号:S0821211内模控制已知对象的标称模型为21020()510smsPsess−+=++若采样周期,相应的离散模型为0.2sT=521.4680.9789()1.1230.3679mzPzzzz−−=−+对象的纯时滞为5,取,则离散模型为1zλ−=62(1.4680.9789)()11.1230.3679mPλλλλλ−=−+1.1零级点相消法设计控制器Q对象标称模型分为两部分,其中最小相位部分21.4680.978911.1230.3679mPλλλ+−=−+,非最小相位部分6mPλ−=取调节因子0.510.5fλ=−则控制器2111.1230.36790.51.4680.978910.5mQPfλλλλ−+−+==⋅−−反馈滤波1()1Fαλαλ−=−Matlab仿真中参考信号取幅值为1的阶跃信号,在t=10时刻加入干扰,干扰是幅值为-0.5的阶跃信号,Simulink仿真图如下:若无模型误差时仿真结果如下:若实际对象模型为0.921020()510smsPsess−+=++,兼顾输出的平稳性和调节时间,反馈滤波取0.7α=比较合适,仿真结果如下:1.2有限拍法设计控制器Q标称模型的极点为mP11.52620.6235iλ=+和21.52620.6235iλ=−取拍数时,控制器输出3k=4230134()1suuuuuuλλλλλλ=++++−稳态值1(1)0.5007smuP−==性能指标,其中加权矩阵W为单位阵;TJUWU=约束条件,其中AUB=231112322211Aλλλλλλ⎡⎤=⎢⎥⎣⎦,411422(1)(1)sBuλλλλ⎡⎤−=⎢⎥−⎣⎦最优解,求得11()TTUWAAWAB−−=1−00.5517u=,10.7308u=,30.7311u=,40.2453u=最优控制器234013423()(1)()()0.55170.17910.00030.48580.2554suQuuuuur4λλλλλλλλλλ==−++++=++−+λ反馈滤波1()1Fαλαλ−=−Matlab仿真中参考信号取幅值为1的阶跃信号,在t=10时刻加入干扰,干扰是幅值为-0.5的阶跃信号,Simulink仿真图如下:若无模型误差时仿真结果如下:若实际对象模型为0.921020()510smsPsess−+=++,,兼顾输出的平稳性和调节时间,反馈滤波取0.8α=比较合适,仿真结果如下:2广义预测控制对象模型21020()510ssPsess−+=++若采样周期,对象的纯时滞为5,相应的离散模型为0.2sT=62(1.4680.9789)()11.1230.3679Pλλλλλ−=−+2.1模型预测方程设21()11.1230.3679Aλλλ=−+,()1.4680.9789Bλλ=−,则61()()()BPAλλλλ=,相应的对象的差分方程为1()(6)()()AykBukλλ+=取21()(1)()12.1231.49090.3679AA3λλλλλλ=−=−+−,对象的差分方程变为:()(6)()()AykBukλλ+=Δ其中()()(1)ukukukΔ=−−取预测时域长度,控制时域长度7p=2M=通过求解Diophantine方程来获取模型预测方程1,6,7jjjARSjλ+==2.1.1当j=6设2345661626364651Rrrrrrλλλλλ=+++++26606162Ssss,λλ=++5求解Diophantine方程得:6661ARSλ+=234612.1233.01623.60623.94014.098Rλλλλ=+++++λ264.15254.66011.5076Sλλ=−+2345661.46802.13772.34962.34132.25392.15894.0115GRB6λλλλλ==+++++−λ)模型预测方程66(6)()(pykSykGuk+=+Δ令6661()()()()pkSykGguk=+−Δ模型预测方程61(6)()(pykpkguk+=+Δ)62.1.2当j=7求解Diophantine方程,得7771ARSλ+=2345712.1233.01623.60623.94014.0984.1525Rλλλλλ=++++++λ274.15564.68331.5277Sλλ=−+23456771.46802.13772.34962.34132.25392.15892.08434.0649GRB7λλλλλλ==++++++−λ)模型预测方程77(7)()(1pykSykGuk+=+Δ+令77712()()()(1)pkSykGggukλ=+−−Δ+模型预测方程712(6)()(1)(pykpkgukguk+=+Δ++Δ)设预测型号(6)(7)TpppYykyk⎡⎤=++⎣⎦,控制量为[()(1)]TUukukΔ=ΔΔ+令67()()()pkPkpk⎡⎤=⎢⎥⎣⎦,1210gGgg⎡⎤=⎢⎥⎣⎦模型预测方程为:pYPGU=+Δ2.2滚动优化参考信号[](6)(7)TrrrYykyk=++预测型号(6)(7)TpppYykyk⎡⎤=++⎣⎦跟踪误差rpEYY=−控制量为[()(1)]TUukukΔ=ΔΔ+性能指标12TTJEWEUWU=+ΔΔ其中,11001W⎡⎤=⎢⎥⎣⎦200Wρρ⎡⎤=⎢⎥⎣⎦求得最优解为1121()(TTrUGWGWGWYP−Δ=+−)实际控制中只实行一步:[]()10ukUΔ=Δ2.3Matlab仿真仿真中参考信号取幅值为1的阶跃信号,在t=5时刻加入干扰,干扰是幅值为-0.5的阶跃信号,Simulink仿真图如下:2.3.1控制量权重0ρ=时,仿真结果如下:2.3.2控制量权重1ρ=时,仿真结果如下:2.3.3控制量权重3ρ=时,仿真结果如下:由上面3个仿真结果可知增大控制量权重ρ,对象输入(控制器输出)减小,系统的快速性减慢,平稳性增加。2.4Matlab程序代码以下代码为Simulink控制器GPC的程序代码function[sys,x0,str,ts]=GPC(t,x,y,flag)switchflag,case0,[sys,x0,str,ts]=mdlInitializeSizes;case3,sys=mdlOutputs(t,x,y);case{1,2,4,9}sys=[];%donothingotherwiseerror(['Unhandledflag=',num2str(flag)]);end;function[sys,x0,str,ts]=mdlInitializeSizesglobalYrY0DuuS6S7G6G7dsizes=simsizes;sizes.NumContStates=0;sizes.NumDiscStates=0;sizes.NumOutputs=1;sizes.NumInputs=1;sizes.DirFeedthrough=1;sizes.NumSampleTimes=1;sys=simsizes(sizes);x0=[];str=[];ts=[0.20];%sampletimeS6=[4.1525-4.66011.5076];S7=[4.1556-4.68331.5277];G6=[2.13772.34962.34132.25392.1589-4.0115];G7=[2.34962.34132.25392.15892.0843-4.0649];W=diag([0,0]);%controlweight%initializeotherparameters:Yr=ones(2,1);%referenceinput(unitstep)Y0=zeros(3,1);%predictiveinitialvaluesDu=zeros(6,1);%controlincrementvaluesu=0;G=[1.4680,0;2.13771.4680];dd=inv(G'*G+W)*G';d=dd(1,:)functionsys=mdlOutputs(t,x,y)globalYrY0DuS6S7G6G7duforn=3:-1:2Y0(n)=Y0(n-1);endY0(1)=y;P6=S6*Y0+G6*Du;P7=S7*Y0+G7*Du;P=[P6;P7];du=d*(Yr-P);%computecontrolincrementu=u+du;%computecontroloutputu(k)sys=u;%outputu(k)forn=6:-1:2Du(n)=Du(n-1);endDu(1)=du;
本文标题:内模控制与预测控制
链接地址:https://www.777doc.com/doc-6002244 .html