!""#$%&&'''(!)*+,-$./(0*,12
!""#$%&&'''(!)*+,-$./(0*,1&3,456./"$&)5",6)"7,/&6#4&2 2
2
2
2
2
2
2
8,3.*29-.374"7+.2:,/"-,*27/2;)0<=>?2
@)/$A9."".-2@)*+,-$./2
2
2
8,3.*29-.374"7+.2:,/"-,*27/2;)0<=>?2
2
@)/$A9."".-2@)*+,-$./2
:,#B-71!"2C2DEFG2
2
>A8)7*%2!)/$(#(!)*+,-$./H5$/(/,2 2
?.0%2!""#$%&&'''(!)*+,-$./(0*,12 2
2
!""#$%&&'''(!)*+,-$./(0*,12
2
72
2
9-.I)4.2
8,3.*29-.374"7+.2:,/"-,*J2,-289:J27$2)/2)3+)/4.326."!,32,I2#-,4.$$24,/"-,*2
"!)"2!)$20../27/25$.27/2"!. 2#-, 4.$$ 27/3 5$ "-7.$2$5 4! 2)$24!.674)*2#*)/"$2)/32,7*2
-.I7/.-7.$2$7/4.2"!.2FKLE $(28 , 3 .*2# -.3 74"7+ .24, / "-, **.-$ 2-.*B2, / 23 B/ )6 74 26 , 3. *$2
,I2"!.2#-,4.$$J26,$"2,I"./2*7/.)-2.6#7-74)*26,3.*$2,0")7/.320B2$B$".62
73./"7I74)"7,/(2
8,3.*2#-.374"7+.24,/"-,*2M89:N2-.I.-$2",2)24*)$$2,I24,6#5".-24,/"-,*2)*1,-7"!6$2
"!)"25"7*7O.2)/2.P#*747"2#-,4.$$26 ,3 .*2", 2# -.3 74 "2"!. 2I5"5 -. 2-.$# , / $.2, I2) 2#*) / "(2
Q"2.)4!24,/"-,*27/".-+)*2)/289:2)*1,-7"!62)"".6#"$2",2,#"767O.2I5"5-.2#*)/"2
0.!)+7,-20B24,6#5"7/12)2$.R5./4.2,I2I5"5-.26)/7#5*)".32+)-7)0*.2)3S5$"6./"$(2
T!.2U-$"27/#5"27/2"!.2,#"76)*2$.R5./4.27$2"!./2$./"27/",2"!.2#*)/"J2)/32"!.2
./"7-.24)*45*)"7,/27$2-.#.)".32)"2$50$.R5./"24,/"-,*27/".-+)*$(2V-717/)**B2
3.+.*,#.32",26.."2"!.2$#.47)*7O.324,/"-,*2/..3$2,I2#,'.-2#*)/"$2)/32
#."-,*.562-.U/.-7.$J289:2".4!/,*,1B24)/2/,'20.2I,5/327/2)2'73.2+)-7."B2,I2
)##*74)"7,/2)-.)$27/4*537/124!.674)*$J2I,,32#-,4.$$7/1J2)5",6,"7+.J2)/32
).-,$#)4.2)##*74)"7,/$(2
9-,1-)667/12",,*$2*7W.J2.(1(J28QT;QX2M8,3.*29-.374"7+.2:,/"-,*2T,,*0,PN2)/32
;)0<=>?2M:,/"-,*2Y.$71/2)/32Z765*)"7,/28 ,3 5*.N2!)$289:2I5/4"7,/)*7"B(2
Y.*")<J2'!74!27$2)2Y:Z2MY7$"-705".32:,/"-,*2ZB$".6N2$B$".62!)$289:2
I5/4"7,/)*7"B2MY.*")<29-.374"&2Y.*")<29-.374"29-,N(2
T!.$.2)-.2S5$"2)2I.'2.P)6#*.$J205"26./"7,/.32!.-.20.4)5$.2"!.$.2",,*$2)/32
$B$".6$2)-.2)+)7*0*.2)"2"!.25/7+.-$7"B(2
=/2"!7$2T5",-7)*2'. 2' 7**25 $.2" ! .29 -.3 74" 7+.2: , / "-, *2I5/ 4"7, /) *7"B2'! 74!27$2# )-"2,I2
"!.2;)0<=>?2:,/"-,*2Y .$71 /2)/ 3 2Z76 5*) "7,/ 28 ,3 5 *.(2
T!.2$4,#.2'7"!2"!7$2T5",-7)*27$2/,"2",21,27/23.#"!2,I2"!.2"!.,-B20.!7/3289:J205"2
",25$.2)/3217+.2)/2,+.-+7.'2,I2"!.289:276#*.6./")"7,/27/2;)0<=>?(2
772 2 9-.I)4.2 2
T5",-7)*%28,3.*29-.374"7+.2:,/"-,*27/2;)0<=>?2
[\715-.2,/2"7"*.2#)1. %2])"7,/)*2=/$"-56./"$J2;)0<=>?2:,/"-,*2Y.$71/2^$.-2
8)/5)*J2DEEL_2 2
2
2
2
7772
2
T)0*.2,I2:,/"./"$2
9-.I)4.2((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((272
T)0*.2,I2:,/"./"$2((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((27772
F2 =/"-,354"7,/2", 28 , 3 .*29 -.3 74" 7+. 2:, / " -,*2(((((((((((((((((((((((((((((((((((((((((((((((((((((2`2
F(F2 =/"-,354"7,/2((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((2`2
F(D2 9-.374"7,/2)/32:,/"-,*2@,-7O,/$2(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((2a2
F(b2 8,3.*2(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((2G2
F(`2 :,$"2\5/4"7,/2((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((2L2
F(a2 :,/$"-)7/"$2((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((2K2
F(c2 89:2+$(2T-)37"7,/)*2:,/"-,*2M9=YN2(((((((((((((((((((((((((((((((((((((((((((((((((((((((((2FE2
D2 ;)0<=>?2:,/"-,*2)/32Z765*)"7,/28,35*.2(((((((((((((((((((((((((((((((((((((((((((((((((((2FD2
b2 89:27/2;)0<=>?2((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((2F`2
b(F2 >P)6#*.2F%2Z76#*.2F(2,-3.-28,3.*2(((((((((((((((((((((((((((((((((((((((((((((((((((((((2F`2
b(D2 >P)6#*.2D%28,3.*2'7"!2T76.2Y.*)B2((((((((((((((((((((((((((((((((((((((((((((((((((((((2FG2
b(b2 >P)6#*.%285*"7#*.2=/#5"$2((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((2DE2
2
2
`2
2
F =/"-,354"7,/2",28,3.*2
9-.374"7+.2:,/"-,*2
F(F =/"-,354"7,/2
T-)37"7,/)*2I..30)4W24,/"-,**.-$2,#.-)".20B2)3S5$"7/124,/"-,*2)4"7,/27/2-.$#,/$.2
",2)24!)/1.27/2"!.2,5"#5"2$."#,7/"2,I2)2$B$".6(28,3.*2#-.374"7+.24,/"-,*2M89:N2
7$2)2".4!/7R5.2"!)"2I,45 $. $2, /24, / $"-5 4"7/ 124,/"-,**.-$2"!)"24)/2)3S5$"2"!.2
4,/"-,*2)4"7,/20.I,-.2)24!)/1.27/2"!.2,5"#5"2$."#,7/"2)4"5)**B2,445-$(2T!7$2
#-.374"7+.2)07*7"BJ2'!./24,607/.32'7"!2"-)37"7,/)*2I..30)4W2,#.-)"7,/J2./)0*.$2
)24,/"-,**.-2",26)W.2)3S5$"6./"$2"!)"2)-.2$6,,"!.-2)/324*,$.-2",2"!.2,#"76)*2
4,/"-,*2)4"7,/2+)*5.$(2
X.*,'2'.2$..2"!.20)$742$"-54"5-.2,I289:%2
2
[?7W7#.37)_2
a2 2 =/"-,354"7,/2",28,3.*29-.374"7+.2:,/"-,*2
T5",-7)*%28,3.*29-.374"7+.2:,/"-,*27/2;)0<=>?2
8,3.*29-.374"7+.2:,/"-,*2M89:N27$2)24,/"-,*2$"-)".1B2'!74!27$2)2$#.47)*24)$.2,I2
"!.2,#"76)*24,/"-,*2"!., -B23. +.*, #. 327/ 2"!.2FK cE2)/ 3 2*)"!. -(289 :24, /$ 7$"$2, I2
)/2,#"767O)"7,/2#-,0*.62)"2.)4!2"76.27/$")/"$J2W(2 2
T!.26)7/2#,7/"2,I2"!7$2,#"767O)"7,/2#-,0*.627$2",24,6#5".2)2/.'24,/"-,*27/#5"2
+.4",-J2 !
"
J2",20.2I..32" , 2" ! . 2$ B $ ". 6J2)/32)"2"!.2$)6.2"76.2")W.2#-,4.$$2
4,/$"-)7/"$27/",24,/$73.-)"7,/2M.(1(J24,/$"-)7/"$2,/2#-,4.$$2+)-7)0*.$N(2
Q/289:2)*1,-7"!624,/$7$"$2,I%2
Q2:,$"2I5/4"7,/2
:,/$"-)7/"$2
Q28,3.*2,I2"!.2#-,4.$$2
T!.$.2"!7/1$2'7**20.2.P#*)7/.327/23.")7*20.*,'(2
F(D 9-.374"7,/2)/32:,/"-,*2@,-7O,/$2
Prediction*horizon*(#
$
)2A2T!.2/560.-2,I2$)6#*.$27/2"!.2I5"5-.2"!.289:2
4,/"-,**.-2#-.374"$2"!.2#*)/"2,5"#5"(2
Control*horizon*(#
%
)2d2T!.2/560.-2,I2$)6#*.$2'7"!7/2"!.2#-.374"7,/2!,-7O,/2
'!.-.2"!.289:24,/"-,**.-24)/2)II.4"2"!.24,/"-,*2)4"7,/(2
],".e2
&
'
( &
)
2
2
X.*,'2'.2$..2"!.29-.374"7,/2)/32:,/"-,*2@,-7O,/$%2
c2 2 =/"-,354"7,/2",28,3.*29-.374"7+.2:,/"-,*2
T5",-7)*%28,3.*29-.374"7+.2:,/"-,*27/2;)0<=>?2
2
[\715-.%2])"7,/)*2=/$ "-56 ./"$J2;)0<=>?2:,/"-,*2Y.$71/2^$.-28)/5)*J2DEEL_2 2
\,-2"76.2 *2 "! .28 9: 24,/ "-,**. -2#-. 374"$ 2"!.2# *)/ "2,5 "#5 "2I,-2"76 .2 * + &
)
(2?.2
$..2I-,62"!.2I715-.2"!)"2"!.24,/"-,*2)4"7,/23,.$2/,"24!)/1.2)I".-2"!.24,/"-,*2
!,-7O,/2./3$(2
2
T!.2U-$"27/#5"27/2"!.2,#"76)*2$.R5./4.27$2"!./2$./"27/",2"!.2#*)/"J2)/32"!.2
./"7-.24)*45*)"7,/27$2-.#.)".32)"2$50$.R5./"24,/"-,*27/".-+)*$(2\,-2.)4!2
7".-)"7,/2"!.2#-.374"7,/ 2! ,-7O,/27$26,+7/12I,-')-327/2"76.2)/32"!.289:2
4,/"-,**.-2)1)7/2#-.374"$2"!.2#*)/"2,5"#5"(2
G2 2 =/"-,354"7,/2",28,3.*29-.374"7+.2:,/"-,*2
T5",-7)*%28,3.*29-.374"7+.2:,/"-,*27/2;)0<=>?2
2
[\715-.%2])"7,/)*2=/$ "-56 ./"$J2;)0<=>?2:,/"-,*2Y.$71/2^$.-28)/5)*J2DEEL_2 2
9-.374"7,/2!,-7O,/%2
Q2$!,-"2#-.374"7,/2!,-7O,/2-.354.$2"!.2*./1"!2,I2"76.235-7/12'!74!2"!.289:2
4,/"-,**.-2#-.374"$2"!.2#*)/"2,5"#5"$(2?!./2"!.2#-.374"7,/2!,-7O,/27$2$!,-"2"!.2
89:24,/"-,**.-2',-W$26,-.2*7W.2)2"-)37"7,/)*2I..30)4W24,/"-,**.-(2
Q2*,/12#-.374"7,/2!,-7O,/27/4-.)$.$2"!.2#-.374"7+.2)07*7"B2,I2"!.289:24,/"-,**.-J2
05"2"!.2#.-I,-6)/4.2#,,-.-235.2",2.P"-)24)*45*)"7,/$(2
:,/"-,*2!,-7O,/%2
Q2$!,-"24,/"-,*2!,-7O,/26.)/$26,-.24)-.I5**B24!)/1.$27/2"!.24,/"-,*2)4"7,/(2
Q2*,/124,/"-,*2!,-7O,/26.)/$26,-.2)11-.$$7+.24!)/1.$27/2"!.24,/"-,*2)4"7,/(2
F(b 8,3.*2
T!.26)7/23-)'0)4W2'7"!289:27$2"!)"2)26,3.*2I,-2"!.2#-,4.$$J27(.(J2)26 , 3 .*2
'!74!23.$4-70.$2"!.27/#5"2",2,5"#5"20.!)+7,-2,I2"!.2#-,4.$$J27$2/..3.3(2
8.4!)/7$"7426,3.*$23.-7+.32I-,624,/$.-+)"7,/2*)'$24)/20.25$.3(2^$5)**BJ2
!,'.+.-27/2#-)4"74.2$76#*B23)")A3-7+./2*7/.)-26,3.*$2)-.25$.3(2
=/289:27"27$2)$$56.32"!)"2"!.26,3.*27$2)237$4-.".2$")".A$#)4.26,3.*2,I2"!.2
I,-6%2
L2 2 =/"-,354"7,/2",28,3.*29-.374"7+.2:,/"-,*2
T5",-7)*%28,3.*29-.374"7+.2:,/"-,*27/2;)0<=>?2
,
"-.
/ 0,
"
+ 1!
"
2
2
"
/ 3,
"
+ 4!
"
2
F(` :,$"2\5/4"7,/2
T!.26)7/273.)2'7"!289:27$2"!)"2"!.289:24,/"-,**.-24)*45*)".$2)2$.R5./4.2,I2
I5"5-.24,/"-,*2)4"7,/$2$54! 2"!)"2)24,$"2I5/4"7,/27$267/767O.3(2
T!.24,$"2I5/4"7,/2,I"./25$.327/289:27$2*7W.2"!7$2M)2*7/.)-2R5)3-)"742I5/4"7,/N2
[])"7,/)*2=/$"-56./"$J2;)0<=>?2:,/"-,*2Y.$71/2^$.-28)/5)*J2DEEL_2%2
5 / 2 6 7
8
9
:
;
"<=
2 6 7 + >!
8
?
:
;
"<=
>!2
?!.-.%2
&
)
2 d2 9-.374"7,/2!,-7O,/2
72 d2Z."#,7/"2
22 d29-.374".32#-,4 .$$ 2,5 "# 5 "2
>!2 d29-.374".324!)/1.27/24,/"-,*2+)*5.J2 >!
"
/ !
"
6 !
"@.
2
92 d2V5"#5"2.--,-2'.71!"26)"-7P2
?2 d2:,/"-,*2'.71!"26)"-7P2
T!7$2',-W$2I,-28=8V2$B$".6$2M85*"7#*.2=/#5"2)/3285*"7#*.2V5"#5"$N2$,2'.2)-.2
3.)*7/12'7"!2+.4",-$2)/326)"-74.$(2
\,-2)2$4)*)-2$B$".62'.2!)+.%2
5 / A 2 6 7
B
:
;
"<=
+ 7>!
B
:
;
"<=
2
2
Z,2"!.20)$742#-,0*.627$2",2$,*+.%2
K2 2 =/"-,354"7,/2",28,3.*29-.374"7+.2:,/"-,*2
T5",-7)*%28,3.*29-.374"7+.2:,/"-,*27/2;)0<=>?2
C5
C!
/ D2
XB2$,*+7/12"!7$2'.21."2"!.2I5"5-.2,#"76)*24,/"-,*(2
Z,*+7/12
EF
EG
/ D2 7$2R 5 7".24, 6 # *.P2) /3 2' 7**2/, "20 .2# )-"2, I2"! 7$2"5 ", -7)*J205 "27/ 2"!. 2
I715-.20.*,'2'.2$..2)/27**5$ "-)"7, /2, I2"!.2# -,0 *.6 (2
2 2
2
F(a :,/$"-)7/"$2
Q**2#!B$74)*2$B$".6$2!)+.24,/$"-)7/"$(2?.2!)+.2#!B$74)*24,/$"-)7/"$2*7W.2
)4"5)",-2*767"$J2."4(2)/32'.2!)+.2$)I."B24,/$"-)7/"$2*7W.2".6#.-)"5-.2)/32
#-.$$5-.2*767"$(2\7/)**B2'.2!)+.2#.-I,-6)/4.24,/$"-)7/"$2*7W.2,+.-$!,,"J2."4(2
=/289:2B,52/, -6 )**B 23. I7/ . 2"! .$ .24, / $ "-)7/ " $%2
:,/$"-)7/"$27/2"!.2,5"#5"$%2
2
HIJ
( 2 ( 2
HKL
2
FE2 2 =/"-,354"7,/2",28,3.*29-.374"7+.2:,/"-,*2
T5",-7)*%28,3.*29-.374"7+.2:,/"-,*27/2;)0<=>?2
:,/$"-)7/"$27/2"!.27/#5"$%2
>!
HIJ
( >! ( >!
HKL
2
!
HIJ
( ! ( !
HKL
2
],".e2 >!
"
/ !
"
6 !
"@.
2
T!.289:24,/"-,**.-2")W.$2)**2"!.$.24,/$"-)7/"$27/",24,/$73.-)"7,/2'!./2
4)*45*)"7/12"!.2I5"5-.24,/"-,*$(2
F(c 89:2+$(2T-)37"7,/)*2:,/"-,*2M9=YN2
89:27$2,I"./25$.327/2)337"7,/2",2"-)37"7,/)*24,/"-,*2*7W.29=Y(2=/2*)-1.2# *) / "$289:2
7$2/,"2)2-.#*)4.6./"2I, -2"-)3 7"7, /) *29=Y J205 "25 $.3 27/ 2)3 3 7"7,/ 2", 29=Y 24,/ "-, **.-$ (2
9=Y24,/"-,**.-$2)-.25$.32)$2$7/1*.A*,,#24,/"-,**.-$J2'!7*.289: 27$ 25$.32)$2)/2
,+.-)**2$B$".6(29=Y2!)/3*.$2,/*B2)2$7/1*.27/#5"2)/32)2$7/1*.2,5"#5"2MZ=ZV2
$B$".6$NJ2'!7*.289:27$2)26,-.2)3+)/4.3 26 ."! ,3 2, I2# -,4. $$24, / "-, *25$.32I,-2
8=8V2$B$".6$2M85*"7#*.2=/#5"$J265*"7#*.2V5"#5"$N(2
Traditional*Control*(PID)*
MPC*
2
2
],2W/,'*.31.2)0,5"2
4,/$"-)7/"$2
Z."#,7/"2I)-2I-,624,/$"-)7/"$2
],"2,#"76)*2#-,4.$$2
,#.-)"7,/2
Z=ZV2$B$".6$2
:,/$"-)7/"$27/4*53.327/2"!.2
3.$71/2
Z."#,7/"24)/20.24*,$.-2",2
4,/$"-)7/"$2
=6#-,+.32#-,4.$ $2, # .-)" 7, / 2
8=8V2$B$".6$2
Q26)"!.6)"74)*26,3.*27$2/..3.32
FF2 2 =/"-,354"7,/2",28,3.*29-.374"7+.2:,/"-,*2
T5",-7)*%28,3.*29-.374"7+.2:,/"-,*27/2;)0<=>?2
Q26)"!.6)"74)*26,3.*27$2/,"2
/..3.32
2
2
T!.26,3.*$25$.327/289:2)-.21./.-)**B27/"./3.32",2-.#-.$./"2"!.20.!)+7,-2,I2
4,6#*.P23B/)674)*2$B$".6$(2T!.2)337"7,/)*24,6 #*.P7"B2,I2"!.289: 24,/"-,*2
)*1,-7"!627$2/,"21./.-)**B2/..3.32",2#-,+73.2)3.R5)".24,/"-,*2,I2$76#*.2
$B$".6$J2'!74!2)-.2,I"./24,/"-,**.32'.**20B29=Y24,/"-,**.-$(2:,66,/23B/)6742
4!)-)4".-7$"74$2"!)"2)-.237II745*"2I, -29=Y 24 ,/ "-, **.-$ 27/4 *5 3. 2*)-1 .2"76 .23 . *)B$ 2)/ 3 2
!71!A,-3.-23B/)674$(2
Q/,"!.-2)3+)/")1.2,I289:27$2"!)"24-,$$24,5#*7/127/265*"7#*.27/#5"2)/3265*"7#*.2
,5"#5"2M8=8VN2$B$".6$2)-.2")W./27/",24,/$73.-)"7,/27/2)/2,#"76)*2')B(289:27$2
)2$76#*.26."!,32I,-24,/"-,**7/128=8V2$B$".6$(2
2
2
FD2
2
D ;)0<=>?2:,/"-,*2)/32
Z765*)"7,/28,35*.2
T!.289:2I5/4"7,/)*7"B27/2;)0<=>?27$2#)-"2,I2"!.2f:,/"-,*2Y.$71/2)/32Z765*)"7,/2
8,35*.g(2
T!.2f:,/"-,*2Y.$71/2)/32Z765*)"7,/g2#)*."".27/2;)0<=>?%2
2
T!.2f:,/"-,*2Y.$71/g2#)*."".27/2;)0<=>?%2
2
T!.2f9-.374"7+.2:,/"-,*g2#)*."".27/2;)0<=>?%2
Fb2 2 ;)0<=>?2:,/"-,*2)/32Z765*)"7,/28,35*.2 2
T5",-7)*%28,3.*29-.374"7+.2:,/"-,*27/2;)0<=>?2
2
@.-.27$2)2$!,-"23.$4-7#"7,/2,I2"!.237II.-./"2<=$%2
2
2
h,525$.2"!.2fCD*Create*MPC*Controllerg2<=2",24-.)".2)/289:24,/"-,**.-(2T!7$2<=2
0)$.$2"!.289:24,/"-,**.-2,/2)2$")".A$#)4.26,3.*2,I2"!.2#*)/"2"!)"2B,52#-,+73.(2
T!.2fCD*Implement*MPC*Controllerg27$25$.32",24)*45*)".2"!.24,/"-,*2+)*5.$2I,-2
.)4!2$)6#*7/12"76.2)/327$2/,-6)**B276#*.6./".327/2)2*,,#J2.(1(J2)2?!7*.2;,,#(2
2
F`2
2
b 2 89:27/2;)0<=>?2
=/2"!7$24!)#".-2'. 2' 7**25 $.2" ! .2< 7$27/ 2" !. 2f 9-. 374 "7+ .2: , / "-,*g 2# )*."". 27/ 27/2$ ,6.2
.P)6#*.(2
b(F >P)6#*.2F%2Z76#*.2F(2,-3.-28,3.*2
i7+./2"!.2I,**,'7/12$B$".6%2
, / 6
M
N
, + O!2
?!.-.2
N2 7$2"!.2"76.24,/$") / "2I,-2"! .2$ B$".62
O2 7$J2.(1(J2"!.2# 5 6 # 21)7/2
?.2$."2 N / P Q2 )/32 O / R2
\-,/"29)/.*%2
2
Fa2 2 89:27/2;)0<=>?2 2
T5",-7)*%28,3.*29-.374"7+.2:,/"-,*27/2;)0<=>?2
j.$5*"$%2
2
Z."#,7/"29-,I7*.%2
2
2
:,/$"-)7/"$2)/32?.71!"7/1%2
Fc2 2 89:27/2;)0<=>?2 2
T5",-7)*%28,3.*29-.374"7+.2:,/"-,*27/2;)0<=>?2
2
X*,4W2Y7)1-)6%2
2
?.24)/237+73.2"!.2$,*5"7,/27/",2D237II.-./"2#)-"$%2
Initialization*the*MPC*Controller:*
T!7$27$2$,6."!7/12'.23,2,/*B2,/4.2'!./2'.2$")-"2"!.2#-,1-)6(2?.25$.2"!.2f:Y2
:-.)".289:2:,/"-,**.-(+7g(2
FG2 2 89:27/2;)0<=>?2 2
T5",-7)*%28,3.*29-.374"7+.2:,/"-,*27/2;)0<=>?2
2
Run*the*Controller:*
T!7$2,#.-)"7,/27$2#.-I,-6.32.)4!2$)6#*.J2)/32"!7$27$2/,-6)**B2.P.45".327/$73.2)2
*,,#J2.(1(2)2?!7*.2;,, # (2? .25 $.2"! . 2f:Y 2=6 # *.6 . /"28 9 :2:, / "-, **.-(+7g(2
2
[>/32,I2>P)6# *._2
b(D >P)6#*.2D%28,3.*2'7"!2T76.2Y.*)B2
i7+./2"!.2I,**,'7/12$B$".6%2
, / 6
M
N
, + O!ST 6 UV2
?!.-.2
N2 7$2"!.2"76.24,/$") / "2I,-2"! .2$ B$".62
O2 7$J2.(1(J2"!.2# 5 6 # 21)7/2
FL2 2 89:27/2;)0<=>?2 2
T5",-7)*%28,3.*29-.374"7+.2:,/"-,*27/2;)0<=>?2
U2 7$2"!.2"76.23.*)B2
?.2$."2 N / P QJ2 O / R2 )/32 U / WQ2
T!.289:2)*1,-7"!62-.R57-.$2"!)"2"!.26,3.*27$2)2*7/.)-2$")".A$#)4.26,3.*J205"2
"!.2"76.23.*)B24)5$.$2#-,0 *.6$(2
Q2$,*5"7,/24,5*320.2",2"-)/$I,-62"!.237II.-./"7)*2.R5)"7,/2'.2!)+.2",2)2"-)/$I.-2
I5/4"7,/(2T!./2'.24)/25 $.20 57*"A7/2I5 / 4"7,/ $27/ 2; )0 <=> ? 2",24, / +.-"27"2", 2)2*7/ .) -2
$")".A$#)4.26,3.*(2
?.25$.2;)#*)4.2,/2"!.237II.-./"7)*2.R5)"7,/2)0,+.%2
Q,SQV / 6
M
N
,SQV + O!SQVX
@YZ
2
],".e2?.25$.2"!.2I,**,'7/12;)#*)4.2"-)/$I,-6)"7,/%2
[ Q X
@YZ
\ ]ST 6 UV2
Q[SQV ^ \ ]STV2
T!7$217+.$%2
Q, Q +
M
N
, Q / O!SQVX
@YZ
2
].P"%2
, Q Q +
M
N
/ O!SQVX
@YZ
2
].P"%2
, Q
!SQV
/
O
Q +
M
N
X
@YZ
2
\7/)**B%2
_ Q /
, Q
!SQV
/
ON
NQ + M
X
@YZ
/
O
`a`
NQ + M
X
@YZ
2
?7"!2+)*5.$2MN / PJ2 O / RJ2 U / W N%2
FK2 2 89:27/2;)0<=>?2 2
T5",-7)*%28,3.*29-.374"7+.2:,/"-,*27/2;)0<=>?2
_ Q /
, Q
!SQV
/
MD
PQ + M
X
@bZ
2
LabVIEW*application:*
?.24)/25$.2"!.2f:Y2:,/$"-54"2Z#.47)*2T\28,3.*(+7g27/2,-3.-2",24-.)".2"!.2
"-)/$I.-2I5/4"7,/(2T!./2' .25$ .267$4.**)/.,5$2I5/4"7,/$27/2,-3.-2",2./325#2' 7"! 2
)237$4-.".2$")".A$#)4.26,3.*2"!)"2!)/3*.$2"!.2"76.23.*)B2M)337"7,/)*2$")".$2)-.2
)33.3N(2
2
2
?!.-.2
2
j.$"2,I2"!.24,3.27$2$767*)-2",2#-.+7,5$2.P)6#*.J2.P4.#"2"!)"2'.2!)+.20../25$7/12
)2$")".26)4!7/.27/2,-3.-2",276#*.6./"2"!.24,3.(2 2
X.*,'2'.2$..2"!.2I-,/"2#)/.*%2
DE2 2 89:27/2;)0<=>?2 2
T5",-7)*%28,3.*29-.374"7+.2:,/"-,*27/2;)0<=>?2
2
[>/32,I2>P)6# *._2
b(b >P)6#*.%285*"7#*.2=/#5"$2
=/2"!7$2.P)6#*.2' .2' 7**25 $. 289:2,/2)28=ZV2$B$".62'7"!2D27/ # 5 "$ 2)/ 3 2F2, 5 "# 5 "(2
2
DF2 2 89:27/2;)0<=>?2 2
T5",-7)*%28,3.*29-.374"7+.2:,/"-,*27/2;)0<=>?2
?.23.I7/.2"!.2$."#,7/"2#-,I7*.2"!.2$B$".62$!,5*32I,**,'27/2)3+)/4.2M"!.2I5"5-.2
$."#,7/"27$2W/,'/N2)/32$..2!,'2"!.289:24,/"-,**.-2',-W$27/2,-3.-2",2I,**,'2"!.2
$."#,7/"(2
2
2
?.2$..2"!)"2"!.24,/"-,**.-2$")-"$2",2-.)4"20.I,-.2"!.2-.I.-./4.2)4"5)**B2
4!)/1.$J2'!74!27$2)2"B#74)**B2I.)"5-.2I,-2"!.289:24,/"-,**.-(2
2
@.-.2'.2$..2"!.26)7/237II.-./4.20."'../2)289:24,/"-,**.-2)/32)26,-.2
"-)37"7,/)*29=Y24,/"-,**.-(2Q/,"!.-26)7/237II.-./4.20."'../289:2)/329=Y27$2
"!)"289:24)/2!)/3*.28=8V2M85*"7#*.2=/#5"$ J285*"7#*.2V5"#5"$N2$B$".6$J2'!7*.2
9=Y27$25$.32I,-2Z=ZV2$B$".6$2MZ7/1*.2=/#5"J2Z7/1*.2V5"#5"N(2
Block*Diagram:*
X.*,'2'.2$..2"!.20*,4W237)1-)62I,-2"!.2#-,1-)6%2
DD2 2 89:27/2;)0<=>?2 2
T5",-7)*%28,3.*29-.374"7+.2:,/"-,*27/2;)0<=>?2
2
?.24)/237+73.2"!.2$,*5"7,/27/",2D237II.-./"2#)-"$%2
Initialization*the*MPC*Controller:*
T!7$27$2$,6."!7/12'.23,2,/*B2,/4.2'!./2'.2$")-"2"!.2#-,1-)6(2?.25$.2"!.2f:Y2
:-.)".289:2:,/"-,**.-(+7g(2
2
Run*the*Controller:*
T!7$2,#.-)"7,/27$2#.-I,-6.32.)4!2$)6#*.J2)/32"!7$27$2/,-6)**B2.P.45".327/$ 73.2)2
*,,#J2.(1(2)2?!7*.2;,,#(2?.25$.2"!.2f:Y2=6#*.6./"289:2:,/"-,**.-(+7g(2
Db2 2 89:27/2;)0<=>?2 2
T5",-7)*%28,3.*29-.374"7+.2:,/"-,*27/2;)0<=>?2
2
[>/32,I2>P)6# *._2
2
2
2
8,3.*29-.374"7+.2:,/"-,*27/2;)0<=>?2
2
@)/$A9."".-2@)*+,-$./2
:,#B-71!"2C2DEFG2
2
>A8)7*%2!)/$(#(!)*+,-$./H5$/(/,2 2
?.0%2!""#$%&&'''(!)*+,-$./(0*,12 2
2
!""#$%&&'''(!)*+,-$./(0*,1*