www.gusucode.com > mpc_featured 案例源码 matlab代码程序 > mpc_featured/mpcutarget.m
%% Setting Targets for Manipulated Variables % This example shows how to design a model predictive controller for a % plant with two inputs and one output with target setpoint for a % manipulated variable. % Copyright 1990-2014 The MathWorks, Inc. %% Define Plant Model % The linear plant model has two inputs and two outputs. N1 = [3 1]; D1 = [1 2*.3 1]; N2 = [2 1]; D2 = [1 2*.5 1]; plant = ss(tf({N1,N2},{D1,D2})); A = plant.A; B = plant.B; C = plant.C; D = plant.D; x0 = [0 0 0 0]'; %% Design MPC Controller % Create MPC controller. Ts = 0.4; % Sample time mpcobj = mpc(plant,Ts,20,5); %% % Specify weights. mpcobj.weights.manipulated = [0.3 0]; % weight difference MV#1 - Target#1 mpcobj.weights.manipulatedrate = [0 0]; mpcobj.weights.output = 1; %% % Define input specifications. mpcobj.MV = struct('RateMin',{-0.5;-0.5},'RateMax',{0.5;0.5}); %% % Specify target setpoint |u = 2| for the first manipulated variable. mpcobj.MV(1).Target=2; %% Simulation Using Simulink(R) % To run this example, Simulink(R) is required. if ~mpcchecktoolboxinstalled('simulink') disp('Simulink(R) is required to run this example.') return end %% % Simulate. mdl = 'mpc_utarget'; open_system(mdl) % Open Simulink(R) Model sim(mdl); % Start Simulation %% bdclose(mdl)