5.0

5.0 | 3 ratings Rate this file 78 Downloads (last 30 days) File Size: 27.96 KB File ID: #19479
image thumbnail

MPC Tutorial I: Dynamic Matrix Control

by Yi Cao

 

07 Apr 2008 (Updated 08 Apr 2008)

A tutorial for beginners to learn dynamic matrix control

| Watch this File

File Information
Description

This is the first part of the planned series for Model Predictive Control (MPC) tutorials.

Dynamic Matrix Control is the first MPC algorithm developed in early 1980s. It is probably also the most widely used MPC algorithm in industry due to the fact that its internal model, the step response model is easy to obtain in an industrial process.

The package provides a dmc function to perform dynamic matrix control and to show the principal of DMC. An example file is included to show how the dmc function can be used to solve a control problem. It only uses basic MATLAB commands. No any other toolboxe is required.

Acknowledgements
This submission has inspired the following:
MPC: Multivariable Constrained State Space example, MPC Tutorial IV: DMC Simulink Block and Example, MPC Tutorial II: Multivariable and State Space MPC V2.0
MATLAB release MATLAB 7.5 (R2007b)
Tags for This File  
Everyone's Tags
Tags I've Applied
Add New Tags Please login to tag files.
Comments and Ratings (5)
28 Apr 2008 Haryanto Ade

This is a good tutorial and best. It make clear understanding of MPC.

Let continue the tutorial, please!! Thanks alot.

05 Apr 2009 V. Poor  
05 Oct 2011 matija

Hi,

I noticed that in Camacho's Model Predictive Control G is built like:
g1,zeros;
g2,g1,zeros;
...

however it seems like here in dmc.m it is built like:
g0,zeros;
g1,g0,zeros;
...

Is that a flaw or am I missing something?

The filter function produces y=[y0,y1, ...]', right?
And since input is X=[1,1,1, ...]' we could say that y=g=[g0,g1, ...]' and according to Camacho we would use g(2:P+1) for building G but in mpc.m it is used p.sp=(1:P) which would be g(1:P) in books notation.

06 Oct 2011 matija

I got it. The plant has 3 samples of delay, but you only used 2 for generating p.sr. So p.sr=[g1,g2...]'.

Thanks for this nice tutorial.

24 Jan 2012 Mr Smart  
Please login to add a comment or rating.
Updates
07 Apr 2008

Update the html file.

08 Apr 2008

Update the graph

Tag Activity for this File
Tag Applied By Date/Time
model predictive control Yi Cao 22 Oct 2008 09:56:37
dynamic matrix control Yi Cao 22 Oct 2008 09:56:37
receding horizon con Yi Cao 22 Oct 2008 09:56:37
mpc ben harper 24 Aug 2009 06:48:44
dynamic matrix control Thanh Le 29 Nov 2009 10:42:11
dynamic matrix control linyuan 28 Mar 2011 02:59:15
model predictive control linyuan 28 Mar 2011 02:59:29
dynamic matrix control Mai Duc Thong 12 Jul 2011 03:32:29
model predictive control Mai Duc Thong 19 Jul 2011 06:19:01

Contact us at files@mathworks.com