How can I get the 'y_hat' and 'u' prediction values from my Model Predictive Controller in Simulink in Model Predictive Control Toolbox 3.1.1 (R2009b)?
I have designed my MPC object using the MPC toolbox. I can simulate this with the command SIM but I would like the y_hat and u prediction values at each step along the way.
It is not possible to get the 'y_hat' and 'u' prediction values from the MPC controller block in Simulink. This functionality is not available in Model Predictive Control Toolbox 3.1.1 (R2009b). You can, however, get this information via simulation in MATLAB using the MPCMOVE function in a step by step method as outlined below:
% Open-loop system parameters % True plant and true initial state sys = ss(tf({1,1,1},{[1 .5 1],[1 1],[.7 .5 1]})); x0 = [0 0 0 0 0]'; % MPC object setup Ts = 0.2; % sampling time % Define type of input signals sys.InputGroup=struct('Manipulated',1,'Measured',2,'Unmeasured',3); % Define constraints on manipulated variable MV = struct('Min', 0, 'Max', 1); Model = []; % Reset structure Model Model.Plant = sys; % Integrator driven by white noise with variance=1000 Model.Disturbance = tf(sqrt(1000), [1 0]); p = []; % Prediction horizon (take default one) m = 3; % Control horizon weights = []; % Default value for weights MPCobj = mpc(Model, Ts, p, m, weights, MV); % Simulate closed loop system using MPCMOVE Tstop = 30; %Simulation time xmpc = mpcstate(MPCobj); % Initial state of MPC controller x = x0; % Initial state of Plant r = 1; % Output reference trajectory % State-space matrices of Plant model [A, B, C, D] = ssdata(c2d(sys, Ts)); YY = []; XX = []; RR = []; for t = 0:round(Tstop/Ts)-1 XX=[XX, x]; % Define measured disturbance signal v = 0; if t*Ts>=10 v=1; end % Define unmeasured disturbance signal d=0; if t*Ts>=20 d=-0.5; end % Plant equations: output update % (note: no feedrthrough from MV to Y, D(:,1)=0) y = C*x+D(:,2)*v+D(:,3)*d; YY = [YY, y]; % Compute MPC law [u, info] = mpcmove(MPCobj, xmpc, y, r, v); info %here is where you can collect all of the states in update. % Plant equations: state update x = A*x+B(:, 1)*u+B(:, 2)*v+B(:, 3)*d; end % Plot results plot(0:Ts:Tstop-Ts, YY); grid
Matlabsolutions.com provides guaranteed satisfaction with a
commitment to complete the work within time. Combined with our meticulous work ethics and extensive domain
experience, We are the ideal partner for all your homework/assignment needs. We pledge to provide 24*7 support
to dissolve all your academic doubts. We are composed of 300+ esteemed Matlab and other experts who have been
empanelled after extensive research and quality check.
Matlabsolutions.com provides undivided attention to each Matlab
assignment order with a methodical approach to solution. Our network span is not restricted to US, UK and Australia rather extends to countries like Singapore, Canada and UAE. Our Matlab assignment help services
include Image Processing Assignments, Electrical Engineering Assignments, Matlab homework help, Matlab Research Paper help, Matlab Simulink help. Get your work
done at the best price in industry.