1、动态矩阵控制算法实验报告院系:电子信学院姓名:郝光杰学号:172030039专业:控制理论与控制工程导师:俞孟蕻MATLAB 环境下动态矩阵控制实验1、实验目的:对于带有纯滞后、大惯性的研究对象,通过动态控制矩阵的 MATLAB 的直接处理与仿真实验,具有较强的鲁棒性和良好的跟踪性。输入已知的控制模型,通过对参数的选择,来取的良好的控制效果。2、实验原理:动态矩阵控制算法是一种基于被控对象非参数数学模型的控制算法,它是一种基于被控对象阶跃响应的预测控制算法,以对象的阶跃响应离散系统为模型,避免了系统的辨识,采用多步预估技术,解决时延问题,并按照预估输出与给定值偏差最小的二次性能指标实施控制,它
2、适用于渐进稳定的线性对象,系统动态特性中存在非最小相位特性或纯滞后都不影响算法的直接使用。3、实验环境:计算机 MATLAB2016b4、实验步骤:影响控制效果的主要参数有:1)采样周期 T 与模型长度 N在 DMC 中采样周期 T 与模型长度 N 的选择需要满足香农定理和被控对象的类型及其动态特性的要求,通常需要 NT 后的阶跃响应输出值接近稳定值。2)预测时域长度 PP 对系统的快速性和稳定性具有重要影响。为使滚动优化有意义,应使 P 包含对象的主要动态部分,P 越小,快速性提高,稳定性变差;反之,P 越大,系统实时性降低,系统响应过于缓慢。3)控制时域长度 MM 控制未来控制量的改变数目
3、,及优化变量的个数,在 P 确定的情况下,M 越小,越难保证输出在各采样点紧密跟踪期望输出值,系统响应速度缓慢,可获得较好的鲁棒性,M 越大,控制机动性越强,改善系统的动态性能,但是稳定性会变差。五 、实例仿真(1)算法实现设 GP(s)=e-80s/(60s+1),采用 DMC 后的动态特性如图 1 所示,采样周期T=20s,优化时域 P=10,M=2 ,建模时域 N=20。MATLAB 程序 1:g=poly2tfd(1,60 1,0,80);%通用传函转换为 MPC 模型delt=20; %采样周期nt=1; %输出稳定性向量tfinal=1000; %截断时间model=tfd2ste
4、p(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(图一 DMC 控制动态响应曲线( time/s));ylabel(响应曲线);结果如下:Percent
5、 error in the last step response coefficientof output yi for input uj is :2.2e-05% Time remaining 1000/1000Time remaining 800/1000Time remaining 600/1000Time remaining 400/1000Time remaining 200/1000Time remaining 0/1000Simulation time is 0.003 seconds.0 100 200 300 400 500 600 700 800 900 1000图一 DM
6、C控制动态响应曲线( time/s)00.20.40.60.811.2响应曲线结论:采用 DMC 后系统调整时间减小,响应的快速性好,无超调。2、P 和 M 对系统性能的影响1、P 对系统性能的影响P 表示我们对 K 时刻起未来多少步的输出逼近期望值感兴趣,T=20, p=6,10,20 时的响应曲线。Matlab 程序 2:g=poly2tfd(1,60 1,0,80);%通用传函转换为 MPC 模型delt=20; %采样周期nt=1; %输出稳定性向量tfinal=1000; %截断时间model=tfd2step(tfinal,delt,nt,g);%传函转换为阶跃响应模型plant=
7、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,
8、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(图二 p 不同对系统性能的影响(time/s));ylabel(响应曲线);结果 l:Percent error in the last step response coefficientof output yi for input uj is :2.2e-05% Time remaining 1000/1000Time remaining 80
9、0/1000Time remaining 600/1000Time remaining 400/1000Time remaining 200/1000Time remaining 0/1000Simulation time is 0.003 seconds.Time remaining 1000/1000Time remaining 800/1000Time remaining 600/1000Time remaining 400/1000Time remaining 200/1000Time remaining 0/1000Simulation time is 0.003 seconds.T
10、ime remaining 1000/1000Time remaining 800/1000Time remaining 600/1000Time remaining 400/1000Time remaining 200/1000Time remaining 0/1000Simulation time is 0.002 seconds. 0 100 200 300 400 500 600 700 800 900 1000图二 p不同对系统性能的影响( time/s)00.20.40.60.811.2响应曲线1-p=6,2-p=10,3-p=20结论:p 越大,系统的快速性变差,系统稳定性增强,
11、减小 p,系统快速性变好,系统稳定性变差。2. M 对系统的影响T=20,P=20 N=20 m=4、2、1 时的控制规律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,u
12、wt,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-m=
13、4,2-m=2,3-m=1);xlabel(图二 p 不同对系统性能的影响(time/s));ylabel(响应曲线);结果;Percent error in the last step response coefficientof output yi for input uj is :2.2e-05% Time remaining 1000/1000Time remaining 800/1000Time remaining 600/1000Time remaining 400/1000Time remaining 200/1000Time remaining 0/1000Simulation
14、 time is 0.003 seconds.Time remaining 1000/1000Time remaining 800/1000Time remaining 600/1000Time remaining 400/1000Time remaining 200/1000Time remaining 0/1000Simulation time is 0.003 seconds.Time remaining 1000/1000Time remaining 800/1000Time remaining 600/1000Time remaining 400/1000Time remaining
15、 200/1000Time remaining 0/1000Simulation time is 0.002 seconds. 0 100 200 300 400 500 600 700 800 900 1000图二 p不同对系统性能的影响( time/s)00.20.40.60.811.2响应曲线1-m=4,2-m=2,3-m=1三模型失配时的响应曲线模型失配时 GM(s) GP(s),当 GM(s )=2e-50s/(40s+1)时的响应曲线,为图 4 所示Matlab 程序 4:g1=poly2tfd(1,60 1,0,80);%通用传函转换为 MPC 模型g2=poly2tfd(2,4
16、0 1,0,50);delt=20; %采样周期nt=1; %输出稳定性向量tfinal=1000; %截断时间model1=tfd2step(tfinal,delt,nt,g1);%传函转换为阶跃响应模型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
17、=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(响应曲线);结果分析:Percent error in the last step response coefficientof output yi for input uj
18、 is :2.2e-05% Percent error in the last step response coefficientof output yi for input uj is :4.8e-09% 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.002 seconds.