《模型预测控制MIMOExample学习教案.pptx》由会员分享,可在线阅读,更多相关《模型预测控制MIMOExample学习教案.pptx(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、会计学1模型预测控制模型预测控制MIMOExample第一页,编辑于星期二:点 四十九分。内容提要内容提要n n概述n n动态矩阵控制-状态方程模型n n动态矩阵控制的进一步讨论n n模型算法控制n n应用第1页/共37页第二页,编辑于星期二:点 四十九分。动态矩阵控制动态矩阵控制-状态方状态方程模型程模型n nMatlab6.5-参考MPC.pdfn nMatlab7.1-在线第2页/共37页第三页,编辑于星期二:点 四十九分。动态矩阵控制动态矩阵控制-参数设置对性能作参数设置对性能作用用n nMPC Control of a DC Servomotor第3页/共37页第四页,编辑于星期二:
2、点 四十九分。动态矩阵控制动态矩阵控制-未建模动态对性能未建模动态对性能作用作用n nA position servomechanism consists of a DC motor,gearbox,elastic shaft,and a load,参数含义第4页/共37页第五页,编辑于星期二:点 四十九分。动态矩阵控制动态矩阵控制-参数设置对性能作参数设置对性能作用用n n参数含义第5页/共37页第六页,编辑于星期二:点 四十九分。动态矩阵控制动态矩阵控制-参数设置对性能作参数设置对性能作用用n n参数含义参数含义n nThe controller must set the loads an
3、gular position The controller must set the loads angular position q qL L at a at a desired value by adjusting the applied voltage,V.desired value by adjusting the applied voltage,V.n nmeasurement available for feedback is measurement available for feedback is q qL L.n nFrom an input/output viewpoint
4、,the plant has a single From an input/output viewpoint,the plant has a single input,input,V V,which is manipulated by the controller.It has,which is manipulated by the controller.It has two outputs,one measured and fead back to the two outputs,one measured and fead back to the controller,controller,
5、q qL L,and one unmeasured,and one unmeasured,T T.第6页/共37页第七页,编辑于星期二:点 四十九分。动态矩阵控制动态矩阵控制-参数设置对性能作参数设置对性能作用用n nA single input,V,one measured and fead back to the controller,qL,and one unmeasured,T.第7页/共37页第八页,编辑于星期二:点 四十九分。动态矩阵控制动态矩阵控制-参数设置对性能作参数设置对性能作用用第8页/共37页第九页,编辑于星期二:点 四十九分。MPC Control of a DC Se
6、rvomotor-Simulink Design 第9页/共37页第十页,编辑于星期二:点 四十九分。MPC Control of a DC Servomotor-SIMO模型描述模型描述n n参数与模型设计n nMpcMotorModel.m第10页/共37页第十一页,编辑于星期二:点 四十九分。MPC Control of a DC Servomotor-模型描述模型描述n nSYS=SS(A,B,C,D)creates a SS object SYS representing the continuous-time state-space modeln n dx/dt=Ax(t)+Bu(
7、t)n n y(t)=Cx(t)+Du(t)第11页/共37页第十二页,编辑于星期二:点 四十九分。MPC Control of a DC Servomotor-模模型描述型描述nnsyssysnn nna=a=nn x1 x2 x3 x4 x1 x2 x3 x4nn x1 0 1 0 0 x1 0 1 0 0nn x2 -51.21 -1 2.56 0 x2 -51.21 -1 2.56 0nn x3 0 0 0 1 x3 0 0 0 1nn x4 128 0 -6.401 -10.2 x4 128 0 -6.401 -10.2nn nn nnb=b=nn u1 u1nn x1 0 x1 0
8、nn x2 0 x2 0nn x3 0 x3 0nn x4 1 x4 1nn nn nnc=c=nn x1 x2 x3 x4 x1 x2 x3 x4nn y1 1 0 0 0 y1 1 0 0 0nn y2 1280 0 -64.01 0 y2 1280 0 -64.01 0nn nn nnd=d=nn u1 u1nn y1 0 y1 0nn y2 0 y2 0nn 第12页/共37页第十三页,编辑于星期二:点 四十九分。MPC Control of a DC Servomotor-模模型描述型描述n numin=-220;umax=220;umin=-220;umax=220;%控制约束控制
9、约束n ndumin=-Inf;dumax=Inf;%dumin=-Inf;dumax=Inf;%控制增量约束控制增量约束n nymin=-ymax;ymax=Inf Vmax;%ymin=-ymax;ymax=Inf Vmax;%输出约束输出约束n n%Vmax=tauam*pi*dshaft3/16=78.5;%Maximum%Vmax=tauam*pi*dshaft3/16=78.5;%Maximum admissible torqueadmissible torquen nTs=0.1;Tstop=200*Ts;Ts=0.1;Tstop=200*Ts;n nuweight=0;duwe
10、ight=.05;uweight=0;duweight=.05;n nyweight=10*1 0;%y2yweight=10*1 0;%y2转矩没有权系数转矩没有权系数第13页/共37页第十四页,编辑于星期二:点 四十九分。MPC Control of a DC Servomotor-模型描述模型描述n n备注:下面文件单独键入运行界面备注:下面文件单独键入运行界面n nManipulatedVariables=struct(Min,umin,Max,umax,Units,V);ManipulatedVariables=struct(Min,umin,Max,umax,Units,V);n
11、nOutputVariables(1)=struct(Min,-Inf,Max,Inf,Units,rad);OutputVariables(1)=struct(Min,-Inf,Max,Inf,Units,rad);n nOutputVariables(2)=struct(Min,Vmin,Max,Vmax,Units,Nm);OutputVariables(2)=struct(Min,Vmin,Max,Vmax,Units,Nm);n nWeights=struct(Input,uweight,InputRate,duweight,Output,yweight);Weights=struc
12、t(Input,uweight,InputRate,duweight,Output,yweight);n nclear Modelclear Modeln nModel.Plant=sys;Model.Plant=sys;n nModel.Plant.OutputGroup=1 Measured;2 Unmeasured;Model.Plant.OutputGroup=1 Measured;2 Unmeasured;n nPredictionHorizon=10;PredictionHorizon=10;n nControlHorizon=2;ControlHorizon=2;第14页/共37
13、页第十五页,编辑于星期二:点 四十九分。MPC Control of a DC Servomotor-模模型描述型描述n nCreate MPC object in workspaceCreate MPC object in workspacen nServoMPC=mpc(Model,Ts,PredictionHorizon,ControlServoMPC=mpc(Model,Ts,PredictionHorizon,ControlHorizon);Horizon);n nServoMPC.Weights=Weights;ServoMPC.Weights=Weights;n nServoMP
14、C.ManipulatedVariables=ManipulatedVariabServoMPC.ManipulatedVariables=ManipulatedVariables;les;n nServoMPC.OutputVariables=OutputVariables;ServoMPC.OutputVariables=OutputVariables;第15页/共37页第十六页,编辑于星期二:点 四十九分。MPC Control of a DC Servomotor-参数设置对性能作用参数设置对性能作用n n仿真运行n nSimulink仿真n nmpc_motor.m第16页/共37页
15、第十七页,编辑于星期二:点 四十九分。MPC Control of a DC Servomotor-Simulink仿真仿真第17页/共37页第十八页,编辑于星期二:点 四十九分。MPC Control of a DC Servomotor-Analysisn n仿真运行n nSimulink仿真n nmpc_motor.m第18页/共37页第十九页,编辑于星期二:点 四十九分。动态矩阵控制动态矩阵控制-扰动情扰动情形形n n扰动情形分析n nMPC Control of a Multi-Input Single-Output systemn nmpc_misonoise第19页/共37页第二
16、十页,编辑于星期二:点 四十九分。动态矩阵控制动态矩阵控制-例子例子2n n状态方程模型n nsys=ss(tf(1,1,1,1.5 1,1 1,.7.5 1),min);n ntf(1,1,1,1.5 1,1 1,.7.5 1)?第20页/共37页第二十一页,编辑于星期二:点 四十九分。动态矩阵控制动态矩阵控制-例子例子n n(离散)状态方程模型n nTs=.2;%sampling timen nmodel=c2d(sys,Ts);%prediction model第21页/共37页第二十二页,编辑于星期二:点 四十九分。动态矩阵控制动态矩阵控制-例子例子n n与阶跃响应模型关系n nste
17、p(model)第22页/共37页第二十三页,编辑于星期二:点 四十九分。动态矩阵控制动态矩阵控制-例子例子n n阶跃响应模型n nS=step(model)?n nS=S(:,:,1),S(:,:,2),S(:,:,3)?n nS(k,j,i),时间k,输出j,输入i第23页/共37页第二十四页,编辑于星期二:点 四十九分。动态矩阵控制动态矩阵控制-可测可测/不可测系统输不可测系统输入入n nDefine type of input signals:n nthe first signal is a manipulated variable,n nthe second signal is a
18、measured disturbance,n nthe third one is an unmeasured disturbance n nmodel=setmpcsignals(model,MV,1,MD,2,UD,3);第24页/共37页第二十五页,编辑于星期二:点 四十九分。动态矩阵控制动态矩阵控制-可测可测/不可测系统不可测系统输入输入n nDefine the structure of models used by the MPC controllern nModel=;%reset structure Modeln nModel.Plant=model;第25页/共37页第二十六页
19、,编辑于星期二:点 四十九分。动态矩阵控制动态矩阵控制-例子例子n n%Disturbance model:Integrator driven by white%Disturbance model:Integrator driven by white noise with variance=1000noise with variance=1000n nModel.Disturbance=tf(sqrt(1000),1 0);Model.Disturbance=tf(sqrt(1000),1 0);n np=40;p=40;n nm=3;m=3;n nMPCobj=mpc(Model,Ts,p,
20、m);MPCobj=mpc(Model,Ts,p,m);n nMPCobj.MV=struct(Min,0,Max,1,RateMin,-MPCobj.MV=struct(Min,0,Max,1,RateMin,-10,RateMax,10);10,RateMax,10);第26页/共37页第二十七页,编辑于星期二:点 四十九分。动态矩阵控制动态矩阵控制-例子例子n nThe continuous-time plant to be controlled has the following state-space realization:n nA,B,C,D=ssdata(sys);第27页/共
21、37页第二十八页,编辑于星期二:点 四十九分。动态矩阵控制动态矩阵控制-例子例子n nNow simulate closed-loop MPC in Simulinkn nTstop=30;%Simulation timen n mpc_mison n解释:t=10,20时加入可测/不可测系统输入的动态特性第28页/共37页第二十九页,编辑于星期二:点 四十九分。动态矩阵控制动态矩阵控制-例子例子mpc_miso第29页/共37页第三十页,编辑于星期二:点 四十九分。动态矩阵控制动态矩阵控制-可测测可测测量干扰量干扰n n%Lets say we know that%Lets say we k
22、now that outputoutput measurements are affected by a sinusoidal measurements are affected by a sinusoidaln n%measurement noise of frequency 0.1 Hz.We want to inform the MPC object%measurement noise of frequency 0.1 Hz.We want to inform the MPC objectn n%about this so that state estimates can be impr
23、oved%about this so that state estimates can be improvedn n omega=2*pi/10;omega=2*pi/10;n n MPCobj.Model.Noise=0.5*tf(omega2,1 0 omega2);MPCobj.Model.Noise=0.5*tf(omega2,1 0 omega2);n n%n n%We also revised the MPC design%We also revised the MPC designn n MPCobj.Model.Disturbance=.1;%Model for unmeasu
24、red disturbance=white Gaussian MPCobj.Model.Disturbance=.1;%Model for unmeasured disturbance=white Gaussian noise with zero mean and variance 0.01noise with zero mean and variance 0.01n n MPCobj.weights=struct(MV,0,MVRate,0.1,OV,.005);MPCobj.weights=struct(MV,0,MVRate,0.1,OV,.005);n n MPCobj.predict
25、ionhorizon=40;MPCobj.predictionhorizon=40;n n MPCobj.controlhorizon=3;MPCobj.controlhorizon=3;n n 第30页/共37页第三十一页,编辑于星期二:点 四十九分。动态矩阵控制动态矩阵控制-可测测可测测量干扰量干扰n n 备注备注-前前1 1:n nsys=ss(tf(1,1,1,1.5 1,1 1,.7.5 1),min);sys=ss(tf(1,1,1,1.5 1,1 1,.7.5 1),min);n nTs=.2;%sampling timeTs=.2;%sampling timen nmodel=
26、c2d(sys,Ts);%prediction modelmodel=c2d(sys,Ts);%prediction modeln nmodel=setmpcsignals(model,MV,1,MD,2,UD,3);model=setmpcsignals(model,MV,1,MD,2,UD,3);n nModel=;%reset structure ModelModel=;%reset structure Modeln nModel.Plant=model;Model.Plant=model;n n%Disturbance model:Integrator driven by white
27、noise with%Disturbance model:Integrator driven by white noise with variance=1000variance=1000n nModel.Disturbance=tf(sqrt(1000),1 0);Model.Disturbance=tf(sqrt(1000),1 0);第31页/共37页第三十二页,编辑于星期二:点 四十九分。动态矩阵控制动态矩阵控制-可测测可测测量干扰量干扰n n 备注备注-前前2 2:n nModel.Disturbance=tf(sqrt(1000),1 0);n np=;n nm=3;m=3;n nM
28、PCobj=mpc(Model,Ts,p,m);n nMPCobj.MV=struct(Min,0,Max,1,RateMPCobj.MV=struct(Min,0,Max,1,RateMin,-10,RateMax,10);Min,-10,RateMax,10);n nA,B,C,D=ssdata(sys);A,B,C,D=ssdata(sys);第32页/共37页第三十三页,编辑于星期二:点 四十九分。动态矩阵控制动态矩阵控制-例子例子n n%Open the simulink diagram MPC_MISONOISE.MDLn nmpc_misonoisen n Tstop=150;%
29、Simulation time第33页/共37页第三十四页,编辑于星期二:点 四十九分。动态矩阵控制动态矩阵控制-例子例子mmpc_misonoisepc_misonoisen n 第34页/共37页第三十五页,编辑于星期二:点 四十九分。动态矩阵控制动态矩阵控制-备注备注n n可测扰动参数的设置影响n n可测参数在不可测参数前、中、后情形第35页/共37页第三十六页,编辑于星期二:点 四十九分。动态矩阵控制动态矩阵控制-备注备注n n MPCOBJ=MPC(PLANT,TS)specifies a sampling time for the MPC controller.n nA continuous-time model PLANT is discretized with sampling timeTS.n nA discrete-time model PLANT is resampled to sampling time TS.第36页/共37页第三十七页,编辑于星期二:点 四十九分。