1、3.2 MAC算法仿真3.2.1 预测模型该被控对象是一个渐近稳定的对象,预测模型表示为:, j=1, 2, 3,P. (2)这一模型可用来预测对象在未来时刻的输出值,其中y的下标m表示模型,也称为内部模型。(2)式也可写成矩阵形式为: 预测误差为。3.2.2 参考轨迹在k时刻的参考轨迹可由其在未来采样时刻的值来描述,取一阶指数变化的形式,可写作: j=1,2,3 (3)3.2.3 MATLAB编程实现MATLAB代码见3.2.3 程序流程图及仿真结果 其程序的流程框图如图3-1所示: 图3-1 程序流程图仿真结果如图3-2所示: 图3-2 仿真结果3.3 DMC算法仿真3.3.1 预测模型在
2、k时刻,假定控制作用保持不变时对未来个时刻输出的初始预测值为 (3-1)M个连续控制增量u(k), u(k+1), u(k+M-1)作用时,未来时刻输出值: (3-2) 3.3.2 滚动优化在每一时刻k,要确定从该时刻起的M个控制作用增量使被控对象在起作用下未来P个时刻的输出预测值尽可能接近给定的期望值w(k+i)(i=1,2,。,P).k时刻优化性能指标可取为 (3-3)式中,qi,rj是加权系数,它们分别表示对跟踪误差及控制量变化的抑制。3.3.3 反馈校正当k时刻把控制量u(k)施加给对象时,相当于在对象输入端加上了一个幅值为u(k)的阶跃,利用预测模型式可算出在去作用下未来时刻的输出预
3、测值 (3-4)下一时刻检测对象的实际输出和模型预测算出的输出相比较,构成输出误差: (3-5)整个控制就是以结合反馈校正的滚动优化反复地在线进行,其算法结构如图3-3所示:图3-3 DMC算法结构示意图3.3.4 MATLAB编程实现附23.3.5 仿真结果结合matlab中simulink仿真框图如图3-4和程序对对象进行仿真,得出的结果图3-5所示: 图3-4 simulink仿真框图 图3-4 仿真结果4、总结本文主要工作是利用DMC算法和MAC算法对被控对象进行控制并采用MATLAB编程仿真。本次任务涉及的内容包括了先进控制理论、预测控制理论、预测控制算法的仿真、控制算法在MATLA
4、B中的实现等。给定的被控对象在利用DMC算法和MAC算法的预测控制方式下都取得了良好的控制效果、鲁棒性,有效地克服了系统的非线性。参考文献【1】方康玲.过程控制技术及其MATLAB实现(第2版) M.北京:电子工业出版社,2013【2】俞金寿.工业过程先进控制技术M.上海:华东理工大学出版社,2008【3】齐蒙,石红瑞.预测控制及其应用研究D.2013(1).附1:MAC程序代码clcclearnum=0.2713;den=1 0.9;numm=0.2713;denm=1 1; %定义对象及模型的传递函数n=40;t1=0:0.1:n/10;g=1*impulse(num,den,t1);gm
5、=1*impulse(numm,denm,t1)for i=1:n g(i)=g(i+1);end gm(i)=gm(i+1);a=g;am=gm;N=40;p=15;M=1;m=M;G=zeros(p,m);p for j=1:m if i=j G(i,j)=g(1); else if ij G(i,j)=g(1+i-j); else G(i,j)=0; end if i s=0; for k=1:(i-m+1) s=s+g(k); G(i,m)=s; end F=zeros(p,n-1); k=1; for j=(n-1):-1:1 F(i,j)=g(n);j F(i,j)=0; else
6、 F(i,j)=g(i+k); k=k+1;end R=1.0*eye(m);Q=0.9*eye(p);H=0.3*ones(p,1); %定义各系数矩阵e=zeros(4*N,4);y=e;ym=y;U=zeros(4*N,4);w=1; Yr=zeros(4*N,4); b=0.1;0.4;0.6;0.9; for i=1:4 for k=N+1:4*Ny(k,i)=a(1:N)*U(k-1:k-N,i); %求解对象输出ym(k,i)=am(1: %求解模型输出e(k)=y(k)-ym(k);for j=1:p Yr(k+j,i)=b(i)(j)*y(k)+(1-b(i)(j)*w;dt
7、=1 zeros(1,m-1)*inv(G*Q*G+R)*G*Q;U(k,i)=dt*(Yr(k+1:k+p,i)-F*U(k-N+1:k-1,i)-H*e(k);t=0:11.9;subplot(2,1,1);plot(t,y(N:N+119,1)hold on;N+119,2)hold onN+119,3)N+119,4)%t,y(N:N+119,3),t,y(N:N+119,4),t,Yr(N:N+119,1),t,w*ones(1,120);%grid on%legend(输出1,输出2输出3输出4柔化曲线期望曲线);%title(Plot of MAC%plot(U);%grid o
8、n;附2 DMC程序代码%DMC控制算法% DMC.m 动态矩阵控制(DMC)num=0.2713;den=1 -0.8351 0 0 0 0;G=tf(num,den,Ts.0.4); %连续系统Ts=0.4; %采样时间 TsG=c2d(G,Ts); %被控对象离散化num,den,=tfdata(G,vN=60; %建模时域 Na=step(G,1*Ts:Ts:N*Ts); %计算模型向量 aM=2; %控制时域P=15; %优化时域MP-j+1 A(i+j-1,j)=a(i,1);end %动态矩阵 A Q=1*eye(P); %误差权矩阵 QR=1*eye(M); %控制权矩阵 RC
9、=1,zeros(1,M-1); %取首元素向量 C 1*ME=1,zeros(1,N-1); %取首元素向量 E 1*Nd=C*(A*Q*A+R)(-1)*A %控制向量 d=d1 d2 .dph=1*ones(1,N); %校正向量 h(N维列向量)I=eye(P,P),zeros(P,N-P); %Yp0=I*YNoS=zeros(N-1,1) eye(N-1);zeros(1,N-1),1; %N*N移位阵 Ssim(DMCsimulink) %运行siumlink文件 %图形显示plot(y,LineWidth,2);plot(w,:rxlabel(fontsize15kylabel(fontsize15y,wlegend(输出值设定值)grid on;subplot(2,1,2);plot(u,gfontsize15u
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1