1、控制时域长度M在优化性能指标中表示所要确定的未来控制量的改变数目,即优化变量的个数。在预测时域长度P已知的情况下,控制时域长度M越小,越难保证输出在各采样点紧密跟踪期望输出值,系统的响应速度比较慢,但容易得到稳定的控制和较好的鲁棒性;控制时域长度M越大,控制的机动性越强,能够改善系统的动态响应,增大了系统的灵活胜和快速性,提高控制的灵敏度,但是系统的稳定性和鲁棒性会变差。因此,控制时域长度的选择应兼顾快速性和稳定性。5、实验控制算法实例仿真 被控对象模型为 分别用MAC和DMC算法进行仿真。无论是MAC还是DMC算法,它们都适用于渐进稳定的线性对象,先对该对象进行MAC算法仿真,MAC预测模型
2、为, j=1, 2, 3,P.。写成矩阵形式为,即预测误差为,参考轨迹。流程图如下1.算法实现由于DMC算法是一种基于模型的控制,并且运用了在线优化的原理,与PID算法相比,显然需要更多的离线准备工作(1)测试对象的阶跃响应要经过处理及模型验证后得到的模型系数a1,aN。在这里,应该强调模型动态响应必须是光滑的,测量噪声和干扰必须滤除(2)利用仿真程序确定优化策略,计算出控制系数d1dp。(3)选择校正系数h1hN。这三组动态系数确定后,应置入固定内存单元,以便实时调用。2.参数选择当DMC算法在线实施时,只涉及模型参数ai,控制参数di和校正参数hi。但其中除了hi可以由设计者自由选择外,a
3、i取决于对象阶跃响应特性及采样周期的选择,di取决于ai及优化性能指标,他们都是设计的结果而非直接可调参数。在设计中,真正要确定的参数应该是(1)采样周期T(2)滚动优化参数的初值,包括预测时域长度P,控制时域长度M,误差权矩阵Q和控制权矩阵R(3)误差校正参数hi。3.用DMC算子进行仿真,得出结合matlab中simulink框图和程序对对象进行仿真,得出的结果如下图所示,结论:图中曲线为使用DMC控制后系统的阶跃响应曲线。从图中可看出:采用DMC控制后系统的调整时间小,响应的快速性好,而且系统的响应无超调。该结果是可以接受的。优化时域P表示我们对k时刻起未来多少步的输出逼近期望值感兴趣。
4、控制时域M表示所要确定的未来控制量的改变数目。模型算法控制(MAC)方案设计图模型算法控制(MAC)由称模型预测启发控制(MPHC),与MAC相同也适用于渐进稳定的线性对象,但其设计前提不是对象的阶跃响应而是其脉冲响应。它的原理结构图如下图所示:图 模型算法控制原理结构图附录clcclearNum1=0.2713;den=1 0.9;numm=0.2713;denm=1 1; %定义对象及模型的传递函数n=40;t1=0:0.1:n/10;g=1*impulse(Num1,den,t1);gm=1*impulse(numm,denm,t1)for i=1:n g(i)=g(i+1);end g
5、m(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 F(i,j)=g(i+k); k=k+1;end R=1.0*eye(m);Q=0.9*eye(p)
6、;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=1 zeros(1,m-1)*inv(G*Q*G+R)*G*Q;U(k,i)=dt*(Yr(k+1:
7、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 on;% DMC.m 动态矩阵控制(DMC)Num1=0.2713;den=1 -0.8351 0 0
8、0 0;G=tf(Num1,den,Ts.0.4); %连续系统Ts=0.4; %采样时间 TsG=c2d(G,Ts); %被控对象离散化Num1,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=1,zeros(1,M-1); %取首元素向量 C 1*ME=1,zeros(1,N-1); %取首元素向量 E 1*Nd=C*(
9、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附2 DMC程序代码%DMC控制算法num=0.2713;G=tf(num,den,Ts.0.4);num,den,=tfdata(G,
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1