www.gusucode.com > mpc 案例源码 matlab代码程序 > mpc/GenerateExplicitMPCControllerExample.m
%% Generate Explicit MPC Controller % Generate an explicit MPC controller based upon a traditional MPC % controller for a double-integrator plant. %% % Define the double-integrator plant. % Copyright 2015 The MathWorks, Inc. plant = tf(1,[1 0 0]); %% % Create a traditional (implicit) MPC controller for this plant, with % sample time 0.1, a prediction horizon of 10, and a control horizon of 3. Ts = 0.1; p = 10; m = 3; MPCobj = mpc(plant,Ts,p,m); %% % To generate an explicit MPC controller, you must specify the ranges of % parameters such as state values and manipulated variables. To do so, % generate a range structure. Then, modify values within the structure to % the desired parameter ranges. range = generateExplicitRange(MPCobj); %% range.State.Min(:) = [-10;-10]; range.State.Max(:) = [10;10]; range.Reference.Min = -2; range.Reference.Max = 2; range.ManipulatedVariable.Min = -1.1; range.ManipulatedVariable.Max = 1.1; %% % Use the more robust reduction method for the computation. Use % |generateExplicitOptions| to create a default options set, and then % modify the |polyreduction| option. opt = generateExplicitOptions(MPCobj); opt.polyreduction = 1; %% % Generate the explicit MPC controller. EMPCobj = generateExplicitMPC(MPCobj,range,opt)