动态矩阵控制算法实验报告院系:电子信息学院 姓名:黄山 学号:132030051 专业:控制理论与控制工程 MATLAB 环境下动态矩阵控制实验1、实验目的:通过对动态矩阵控制的 MATLAB 仿真,发现其对直接处理带有纯滞后、大惯性的对象,有良好的跟踪性和有较强的鲁棒性,输入已知的控制模型,通过对参数的选择,来取得良好的控制效果2、实验原理:动态矩阵控制算法是一种基于被控对象非参数数学模型的控制算法,它是一种基于对象阶跃响应的预测控制算法,它以对象的阶跃响应离散系数为模型,避免了通常的传递函数或状态空间方程模型参数的辨识,又因为采用多步预估技术,能有效解决时延过程问题,并按预估输出与给定值偏差最小的二次性能指标实施控制,它适用于渐进稳定的线性对象,系统的动态特性中具有纯滞后或非最小相位特性都不影响改算法的直接应用,因此是一种最优控制技术3、实验环境:计算机,matlab2010a4、实验步骤:动态矩阵控制算法充分利用了反映被控对象动态行为的有用信息,对被控对象时滞和阶次变化的鲁棒性都有所提高,从而得到好的控制性能但是由于动态矩阵预测控制采用模型预测的方式,其参数的选择对性能有重要的影响。
合理的选择控制参数非常重要,它直接影响着系统整体的控制效果对 DMC来说,影响其性能的主要参数有以下几个1)采样周期 T 与模型长度 N在 DMC 中采样周期 T 和模型长度 N 的选择需要满足香农定理和被控对象的类型及其动态特性的要求为使模型参数尽可能完整的包含被控对象的动态特征,通常要求 NT 后的阶跃响应输出值已经接近稳定值因此,T 减小就会导致 N 增大,若 T 取得过小,N 增大,会增加计算量而适当的选取采样周期,使模型长度控制在一定的范围内,避免因为采样周期减少而使模型长度增加使计算量增加,降低系统控制的实时性所以,从计算机内存和实时计算的需要出发,应选取合适的采样周期和模型长度2)预测时域长度 P预测时域长度 P 对系统的稳定性和快速性具有重要的影响为使滚动优化真正有意义,应使预测时域长度包括对象的主要动态部分若预测时域长度 P很小,虽然控制系统的快速性好,但是稳定性和鲁棒性变差;若预测时域长度 P很大,虽明显改善系统的动态性能,即控制系统的稳定性和鲁棒性变好,但系统响应过于缓慢,增加计算时间,降低系统的实时性3)控制时域长度 M控制时域长度 M 在优化性能指标中表示所要确定的未来控制量的改变数目,即优化变量的个数。
在预测时域长度 P 已知的情况下,控制时域长度 M 越小,越难保证输出在各采样点紧密跟踪期望输出值,系统的响应速度比较慢,但容易得到稳定的控制和较好的鲁棒性;控制时域长度 M 越大,控制的机动性越强,能够改善系统的动态响应,增大了系统的灵活胜和快速性,提高控制的灵敏度,但是系统的稳定性和鲁棒性变差因此,控制时域长度的选择应兼顾快速性和稳定性5、实验控制算法实例仿真:(一)算法实现设某工业对象的传递函数为:GP(s)=e-80s/(60s+1),采用 DMC 后的动态特性如图 1 所示在仿真时采样周期 T=20s,优化时域 P=10,控制时域 M=2,建模时域 N=20MATLAB 程序 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]=mpcsim(plant,model,kmpc,tend,r);%模型预测控制仿真t=0:20:1000; %定义自变量 t 的取值数组plot(t,y) %平面线图xlabel('图 1 DMC 控制系统的动态阶跃响应曲线(time/s)');%横坐标ylabel('响应曲线 '); %纵坐标结果如下所示:Percent error in the last step response coefficient of output yi for input uj is :2.2e-005% Time remaining 1000/1000Time remaining 800/1000Time remaining 600/1000Time remaining 400/1000Time remaining 200/1000Time remaining 0/1000Simulation time is 0.005 seconds.结论:图中曲线为用 DMC 控制后系统的阶跃响应曲线。
从图中可以看出:采用 DMC 控制后系统的调整时间小,响应的快速性好,而且系统的响应无超调该结果是令人满意的二)P 和 M 对系统动态性能的影响1.P 对系统性能的影响 优化时域 P 表示我们对 k 时刻起未来多少步的输出逼近期望值感兴趣当采样周期 T=20s,控制时域 M=2,建模时域 N=20,优化时域 P 分别为 6,10和 20 时的阶跃响应曲线如图 2 所示MATLAB 程序 2: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; %控制时域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:20:1000; %定义自变量 t 的取值数组plot(t,y1,t,y2,t,y3) %平面线图legend('1-p=6','2-p=10','3-p=20');%图例注释xlabel('图 2 P 不同对系统性能的影响(time/s)');ylabel('响应曲线 ');结果如下所示:Percent error in the last step response coefficientof output yi for input uj is :2.2e-005% Time remaining 1000/1000Time remaining 800/1000Time remaining 600/1000Time remaining 400/1000Time remaining 200/1000Time remaining 0/1000Simulation time is 0.005 seconds.Time remaining 1000/1000Time remaining 800/1000Time remaining 600/1000Time remaining 400/1000Time remaining 200/1000Time remaining 0/1000Simulation time is 0.004 seconds.Time remaining 1000/1000Time remaining 800/1000Time remaining 600/1000Time remaining 400/1000Time remaining 200/1000Time remaining 0/1000Simulation time is 0.005 seconds.图中曲线 1 为 P=6 时的阶跃响应曲线;曲线 2 为 P=10 时的阶跃响应曲线;曲线 3 为 P=20 时的阶跃响应曲线。
结论:从图中可以看出,增大 P,系统的快速性变差,系统的稳定性增强;减小 P,系统的快速性变好,稳定性变差所以 P 的选择应该兼顾快速性和稳定性2.M 对系统性能的影响 控制时域 M 表示所要确定的未来控制量的改变数目当采样周期 T=20s,优化时域 P=20,建模时域 N=20,控制时域 M 分别取 4,2 和 1 时系统的响应曲线如图 3 所示MATLAB 程序 3:g=poly2tfd(1,[60 1],0,80);%通用传递函数模型转换为 MPC 传递函数模型delt=20; %采样周期nt=1; %输出稳定性向量tfinal=1000; %截断时间model=tfd2step(tfinal,delt,nt,g);%传递函数模型转换为阶跃响应模型plant=model; %进行模型预测控制器设计p=20; %优化时域m1=4;m2=2;m3=1; %控制时域ywt=[];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);t=0:20:1000; %仿真时间plot(t,y1,t,y2,t,y3) %平面线图legend('1-m=4','2-m=2','3-m=1'); %图例注释xlabel('图 2 M 不同对系统性能的影响(time/s)');ylabel('响应曲线 ');结果如下所示:Percent error in the last step response coefficientof output yi for input uj is :2.2e-0。