Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
6 views32 pages

LMIPA Version 4.0

Uploaded by

Nazmul Hasan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views32 pages

LMIPA Version 4.0

Uploaded by

Nazmul Hasan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 32

University of Alberta Computer Process Control Group

LMIPA
Limited Trial Version

Written by CPC Control Group, University of Alberta


Version 4.0
Table of Contents

Introduction 1
System Requirements 1
Quick Start 1
Detailed Instructions 5
Theory 5
Data Storage 8
Model Storage Format 8

Output Data Storage Formats 9

Data Generation 11

Using the Toolbox 15


Section 1: Main Menu 16

Section 2: Status Bar 18

Section 3: Control Panel 18

Section 4: Output 20

LMIPA Assistant 20

Examples 23
Part I: Using the Programme to Obtain the Results 23

Part II: Time Section in LMIPA 28

References 29

ii
List of Figures
Figure 1: The First GUI that appears 1
Figure 2: The main GUI for this toolbox, with the main regions highlighted 2
Figure 3: Screen shot after running ideal and current cases 3
Figure 4: Results obtained after desiring a J 60% of the ideal 4
Figure 5: The First GUI that appears 16
Figure 6: The main GUI for this toolbox, with the main regions highlighted 17
Figure 7: Close-up of the Main Menu 17
Figure 8: Plant Data & Constraint Analysis for LMIPA 22
Figure 9: Explanation of the abbreviations used in the Plant Data & Constraint Analysis for
LMIPA window 22
Figure 10: Screen shot 1 for the example 23
Figure 11: Screen shot 2 for the example 24
Figure 12: Screen shot 3 for the example 25
Figure 13: Screen shot 4 for the example 26
Figure 14: Screen shot 5 for the example 27
Figure 15: Excel screen shot for the example 28
Figure 16: Showing the selected time sections for CV1 29

List of Tables
Table 1: Summary of the Parameters Generated using the "gen_cmprhnsv_Data" command 14

iii
Introduction
The LMIPA toolbox was developed by the Computer Process Control Group at the
University of Alberta to allow linear-matrix-inequality-based economic assessment of controller
performance using MATLAB.
A “Quick Start” approach to using this toolbox will be presented, along with a detailed
section containing a full explanations and examples for using this section.

System Requirements
1) MATLAB. The programme has been tested on Matlab 7.11.0 (R2010b) and lower
versions.
2) The SYSTEM IDENTIFICATION TOOLBOX from MATLAB is required.

Quick Start
For quickly using the toolbox, the following steps should be followed:
1) Unzip the files to the desired location.
2) In order to use the software, point the current directory to the location of the unzipped
files.
3) At the command prompt, type “>> main_lmipa” to start the toolbox. The GUI shown
in Figure 1 should appear.
4) Press the “LMIPA” menu. A new GUI will appear as shown in Figure 2.

Figure 1: The First GUI that appears

1
1. Main Menu

2. Status bar

3. Control panel
Case Box Setting Box

Scenarios

4. Output

Figure 2: The main GUI for this toolbox, with the main regions highlighted

5) For the purpose of this quick start, we will use the sample data provided in the zip file.
Go to the “Import” Menu located in Area 1 in Figure 2 and select “Model”. Select the
“Case_Model.mat” file. Be patient as the file is loaded. This file contains the open-loop,
process transfer function, or the gain matrix. Then go to the “Import” Menu and select
“Data.” Select the “Case_Cmprhnsv_Data.mat” file. Wait patiently as the file is being
loaded.
6) At this moment, sufficient information has been loaded. In the left panel of Area 3, there
is a list box, called Case box, which allows us to manage different case studies. Pressing
the “New” button will create a new case study. For each case study, 4 different scenarios
can exist. The first scenario (Ideal Case) is the ideal yield potential, while the second

2
one (Current Case) is the current potential. As each scenario is selected, an explanation
in green will appear below the list.
7) Select the Ideal Case and press the “RUN” button.
8) Create a new case by clicking the “New” button. Once done, press the “RUN” button.
Figure 3 shows the result.

Figure 3: Screen shot after running ideal and current cases

9) As shown in Figure 3, the actual benefit as a fraction of the ideal benefit is displayed in
red as a percentage above the corresponding bar in Area 4.
10) Now let us assume we want to find out what variability percentage we should apply to the
variables in order to have some desired potential, which corresponds to Customize 2.

3
Therefore, create a new case study and select Customize 2. In the right panel of Area 3 in
the Setting box select “Desired potential.” As well, enter 60% in the textbox “Desired J
(%).”
11) Click on “RUN” to run the case. The results are shown in Figure 4. The results show that
in order to increase the benefit potential to 60% of the ideal case, the variability in
Controller Variable 1, must be decreased by about 34.5%.

Figure 4: Results obtained after desiring a J 60% of the ideal

8) The results can be saved as either a Matlab or Excel file using the “Export” menu. All the
cases that have been run will be saved. The entire project can also be saved a single
Matlab file using File->Save (Ctrl + S). This file can be reloaded to continue the analysis

4
at a later time. After loading, everything will be restored to what it was at the time of
saving.
9) The programme can be quit by clicking on File->Exit and then Exit to close the 2
windows that previously appeared.

Detailed Instructions

Theory
Linear Matrix Inequality Performance Analysis (LMIPA) is based on minimising the
economic objective function, J, that is (Lee, Huang, & Tamayo, 2008),
min J (1)
where J is defined as
NL
1
J=
NL
∑ J (k )
k =1
(2)

NL is the total number of data points collected, and J(k) is defined as

( ) ( )
p
(k ) y + a (k ) y − y (k )  + ∑ bui (k )ui + au2i (k ) u j − us j (k ) 
m

∑ b
2 2
J (k=
) 2
(3)
yi i
i 1 =i 1
yi i si   

ay is the quadratic co-efficient for the ith control variable (CV), by is the linear co-efficient for the
ith control variable, au is the quadratic co-efficient for the jth manipulated variable (MV), bu is the
linear co-efficient for the jth manipulated variable, ys is the set point (target) value for the control
variable, us is the set point (target) value for the manipulated variable, y and u are the optimal
mean operating points of the control and manipulated variables, p is the number of control
variables, and m is the number of manipulated variables. The optimisation is performed subject
to the following constraints:
m

∑ K ∆u
j =1
ij j =∆yi ∀i =1, 2,..., p

Lyi (k ) − λ yi α yi (k ) + 2σ yi (1 +ν i ) ≤ yi ≤ H yi (k ) + µ yi α yi (k ) − 2σ yi (1 +ν i ) ∀i =1, 2,..., p (4)


Lu j (k ) − λu j α u j (k ) + 2σ u j ≤ u j ≤ H u j (k ) + µu j α u j (k ) − 2σ u j ∀j =1, 2,..., m

where

5
NL
1
y=
i y0i + ∆yi , y0=
i
NL
∑y
k =1
0i (k ) ∀=
i 1, 2,..., p
NL
(5)
1
u=
j u0 j + ∆u j , u0=
j
NL
∑u
k =1
0j (k ) ∀=
j 1, 2,..., m

y0 and u0 are the current mean operating points of the control and manipulated variables and y

and u are the routine operating process data, ∆y0 and ∆u0 are the proposed shift in the mean
operating conditions, L(k) is the lower limit (LL) for the given variable, H(k) is the upper limit
for the given variable, α is half the constraint region for the given variable, σ is the standard
deviation for the variable, ν is the percent change in variability, μ is the percent change in the
upper limit, and λ is the percent change in the lower limit. The last 3 variables are set by the user.
Based on the above equations, 3 special cases are distinguished:
1) Base Case Operation, J0: This is calculated by replacing yi with y0i and u j with u0 j .

This gives the base case potential.


2) Ideal Benefit Potential, ∆J I : It is assumed that νi = -1, λ=
yi µ=
yi λ=
uj µ=
yj 0,

∀i =1, 2,..., p and ∀j =1, 2,..., m . This gives the benefit, JI, for the case where there is no

process variability. The ideal benefit potential is then found as ∆J I = J I − J 0 .

3) Current (existing) Benefit Potential, ∆J E : It is assumed that νi = 0,

λ=
yi
µ=
y λ=
u µ=
yi
0, ∀i =1, 2,..., p and ∀j =1, 2,..., m . It should be noted that if
j j

constraints (2.4b) and (2.4c) become unfeasible, then they are replaced as follows. For
constraint (2.4b), replace it by yi = y0i or ∆yi =,
0 while for constraint (2.4c), replace it

by u j = u0 j or ∆u j =
0 . This gives the benefit, JE, for the case where there are no changes

in either process variability or the constraints. The real benefit potential is then found as
∆J E = J E − J 0 .
In practice, it is desired to see which variables should be tuned to achieve the given goals.
Thus, there is a need to perform sensitivity analysis. The brute force method would be consider
each of the variables separately, perturb it, and observe the results. However, this naive method
fails for 2 reasons. Firstly, it is assumed that the interaction between the variables is nonexistent.
Thus, there is no need to consider groups of variables (cross-terms). In practice, the individual
variables can strongly influence each other. Secondly, for a large number of variables, this search

6
would take too long to perform. Therefore, 2 separate algorithms have been developed that seek
to determine the sensitivities.
The first algorithm is used to determine sensitivity analysis for constraint tuning. In this
case, the following set of equations is solved (Lee, Huang, & Tamayo, 2008):
 p m 
min  ∑ λ y + µ y + ∑ λu j + µu j  (6)
{ yi ,u j ,λ=
yi , λu j , µ yi , µu j }  
i i
i 1 =j 1

subject to
λ yi ≥ λ yi ≥ 0 flag λy = 1

i
(7)
= λ yi 0= flag λy 0
i

 µ yi ≥ µ yi ≥ 0 flag µ yi =
1
 (8)
= µ yi 0= flag µ y 0
i

λu j ≥ λu j ≥ 0 flag λu = 1


j
(9)
 λu j 0=
= flag λu 0
j

 µu j ≥ µu j ≥ 0 flag µu j =
1
 (10)
= µu j 0= flag µu 0
j

J0 − J
= RC (11)
∆J I

Lyi (k ) − λ yi α yi (k ) + 2σ yi ≤ yi ≤ H yi (k ) + µ yi α yi (k ) − 2σ yi
(12)
Lu j (k ) − λu j α u j (k ) + 2σ u j ≤ u j ≤ H u j (k ) + µu j α u j (k ) − 2σ u j

∀i =1, 2,..., p
∀j =1, 2,..., m

where λ represents the given constant upper bound for the variable λ , u represents the given
constant upper bound for the variable u, flag is a binary variable that represents whether or not
the given variables bounds can be changed, and RC is the given target benefit potential ratio
which has a value between 0 and 1.
The second algorithm is used to perform sensitivity analysis for variability tuning. In this
case, the following set of equations is solved (Lee, Huang, & Tamayo, 2008):

7
 p 
min  ∑ νi  (13)
{ yi ,u j ,ν i }  i =1 

subject to
vi ≤ vi ≤ 0 flag vi =
1
 (14)
=
 vi 0= flag vi 0

J0 − J
= RC (15)
∆J I

Lyi (k ) − λ yi α yi (k ) + 2σ yi (1 + vi ) ≤ yi ≤ H yi (k ) + µ yi α yi (k ) − 2σ yi (1 + vi )
(16)
Lu j (k ) − λu j α u j (k ) + 2σ u j ≤ u j ≤ H u j (k ) + µu j α u j (k ) − 2σ u j

∀i =1, 2,..., p
∀j =1, 2,..., m

where ν represents the given constant lower bound for the variable ν .

Data Storage
For LMIPA, the comprehensive data storage format must be used. For quick generation
of the comprehensive data storage objects, the file “gen_cmprhnsv_Data.p” can be used.

Model Storage Format


The model storage file contains information about the multivariate model that is being
used to describe the system. It must be entered as a transfer function object (tf). This matrix can
be created using the following steps:
1) Assume that a process with n inputs and m outputs is being analysed. The transfer
function between the jth input and the ith output is a rational function of either s or z, given
as Aij / Bij, where A is the numerator and B is the denominator. Let A’ be a row vector
containing in descending order of powers of s or z the corresponding co-efficients of the
numerator A. Similarly, let B’ be the corresponding row vector of co-efficients of s or z
for the denominator.
2) It is now necessary to create 2 cell arrays that contain all the information about the
process. The first cell array,  , is created as follows:

8
 = { A11' , A12' , , A1' n ;
'
A21 '
, A22 , , A2' n ;
  ;
A , A , , Amn
'
m1
'
m2
'
}

The first row contains the transfer function between the first output and each of the
inputs, while the second row contains the transfer function between the second output
and each of the inputs. It should be noted that the curly brackets, {}, are used to create a
cell array. In order to access, the (i, j) entry of the array, the command would be {i, j} .
A similar cell array containing the values of the denominator, denoted as  , is also
created.
3) The time delay for the model can be created by forming the matrix  , such that the (i, j)
entry contains the time delay associated with the transfer function for the ith output and jth
input. The array simply contains the numeric values.
4) The continuous transfer object can then be created using the following MATLAB
command: “>>Atf=tf(A,B,’ioDelay’,D)”, where A is the cell array  , B is the
cell array  , and D is the time-delay matrix,  . To create a discrete time transfer
function, the MATLAB command would be “>>Atf=tf(A,B,Ts,’ioDelay’,D)”,
where Ts is the sampling time. If it is desired to create a discrete model that contains
powers of “z-1”, then the command would be
“>>Atf=tf(A,B,Ts,’ioDelay’,D,’Variable’,’z^-1’)”
5) If a gain matrix is being used, then the transfer function would simply consist of constant
co-efficients. This can be created in MATLAB by assigning a value of “1” to each of the
entries in B and the gain values would be the entries in A.

Output Data Storage Formats


The comprehensive data storage method must be used.

Comprehensive
Assume that there are p samples of output data with a total of t controlled variables and s
manipulated variables with a total of q = 8 tags. In the comprehensive data storage method, the
data is stored as an object containing the following entries:

9
1) controller_Status: This is a p-by-1 double matrix that contains the status of each of the
controllers, where 1 represents a controller that is “on” and 0 represents a controller that
is “off.”
2) cell_char_TagList: This is a q(t + s)-by-1 cell matrix that contains the name of each of
the tags that are presented in the process. The first q tags represent the first variable,
while the next q represent the second variable and so on. For this toolbox, the tags are
given as:
a. cell_char_TagList(1): This is the tag for the PV values.
b. cell_char_TagList(2): This is the tag for the low limits.
c. cell_char_TagList(3): This is the tag for the high limits.
d. cell_char_TagList(4): This is the tag for the soft low limits.
e. cell_char_TagList(5): This is the tag for the soft high limits.
f. cell_char_TagList(6): This is the tag for the linear optimisation co-efficients.
g. cell_char_TagList(7): This is the tag for the quadratic optimisation co-efficients.
h. cell_char_TagList(8): This is the tag for the target values.
3) cell_char_TimeStamp: This is a p-by-1 cell matrix that contains the time stamp for each
of the samples.
4) dbl_Comprehensive_Data: This is a p-by-q(t + s) double matrix that contains the values
for each of the tags and sample periods. Each of the columns contains the data in the
same order as the cell_char_TagList cell array does.
5) dbl_SamplingTime: This is a scalar double that contains the sampling time for the
process.
6) int_CVNumber: This is a scalar integer that contains the number of controlled variables
in the process, that is, t.
7) int_MVNumber: This is a scalar integer that contains the number of manipulated
variables in the process, that is, s.
8) status: This is a p-by-(s + t) double matrix that stores the data in the following manner:
The first t columns contain the status of the controller variables, while the remaining s
columns contain the status of the manipulated variables. A value of 1 signifies that the
data is good.

10
Data Generation
The data storage files for multivariate analysis can be generated using the p-file
“gen_cmprhnsv_data.p”. The following steps should be followed to create a compact data set.
1) Start MATLAB and point the directory to the location of the above binary file.
2) At the command prompt create the following matrix, which contains the 3 samples of the
2 controlled variables: ““>> W=[1 2;3 4;5 6]”.
3) It will be assumed for the sake of this example that the process to be entered can be
described as
 2.3 −5 s 2 s + 1 −1s 
 s2 + 1 e s + 3s + 1
2
e 
y= 
 5 e −1s 4s
e −3 s 
 s + 1 s 2 + 3s + 1 

Thus, the required arrays and matrices for the transfer function will be created as
follows:
a) Form the 4 A-matrices as “>>A11=[2.3];
A12=[2 1]; A21=[5]; A22=[4 0];”.
b) Form the 4 B-matrices as “>>B11=[2 0 1];
B12=[1 3 1]; B21=[1 1]; B22=[1 3 1];”.
c) Create the A-cell array as
“>>A={A11,A12;A21,A22};”.
d) Create the B-cell array as
“>>B={B11,B12;B21,B22};”.
e) The time delay matrix can be created as
“>>D=[5 1;1 3];”. It should be noted that the negative signs in the time delay
have been ignored.
f) The transfer function object is then created using
the following command: “Atf=tf(A,B, 'ioDelay',D)”. The resulting
transfer function should match the one given above.
4) Type at the command prompt: ““>> gen_cmprhnsv_Data”. The following should
appear
Consider a process with m inputs and p outputs

11
1. p x m plant gain/continuous transfer
matrix/discrete transfer matrix
2. Output data (y): N x p matrix
3. Input data (u): N x m matrix
4. Sampling time
5. Low limit data: (p + m) x 1 vector
6. High limit data: (p + m) x 1 vector
7. Linear coefficients: (p + m) x 1 vector
8. Quadratic coefficients: (p + m) x 1 vector
9. Target coefficients: (p + m) x 1 vector

Gain/continuous transfer matrix/discrete transfer


matrix:
5) Type “Atf” or the name of the transfer function object that was created above and press
enter. This is the transfer function object that contains the open-loop plant model or gain
matrix. For the gain matrix, it would be simply a transfer function with constant co-
efficients.
6) Next, type “W” and press enter. This is the sampled data matrix for the given process.
7) Then, type “[0 1;0 1;0 1]” and press enter. This is the sampled input data matrix for the
given process.
8) Following this, type “0.1” and press enter. It will be assumed that the sampling time is
0.1 seconds.
9) Next, type “[0;0;0;0]” and press enter. It will be assumed that the lower limit is 0 for all
the process variables.
10) Then, type “[10;10;10;10]” and press enter. It will be assumed that the upper limit is 10
for all the process variables.
11) Following this, type “[1;1;1;1]” and press enter. It will be assumed that the linear co-
efficients are uniformly 1.
12) Next, type “[0.5;0.5;0.5;0.5]” and press enter. It will be assumed that the quadratic co-
efficients are uniformly 0.5.

12
13) Then, type “[0.75; 0.75; 0.75; 0.75]” and press enter. It will be assumed that the target co-
efficients are uniformly 0.75.
14) Enter a name for the output data storage file, say, for example, “test_data.mat” and press
enter. It should be noted that files that have the same name as those currently
present in the directory will be overwritten without any warning.
15) Enter a name for the model storage file, say, for example, “test_model.mat” and press
enter. It should be noted that files that have the same name as those currently
present in the directory will be overwritten without any warning.
16) In order to view the results, type “>>load test_model.mat” followed by
““>>sys_MPC_Model”. The results should be identical to that displayed below:
Transfer function from input 1 to output...
2.3
#1: exp(-5*s) * ------------
2 s^2 + 1
5
#2: exp(-1*s) * -----------
s+1

Transfer function from input 2 to output...


2s+1
#1: exp(-1*s) * ------------------
s^2 + 3 s + 1

4s
#2: exp(-3*s) * ----------------
s^2 + 3 s + 1
17) In order to view the other file type “>>load test_data.mat”. This will load each
of the entries into the workspace of MATLAB. Entering the name of each of the entries
given below should give the same results as are presented in Table 1.

13
Table 1: Summary of the Parameters Generated using the "gen_cmprhnsv_Data" command

Entry Value
[1
Controller_status 1
1]
['CV1'
'CV1.N(1)'
'CV1.N(2)'
'CV1.X(17)'
'CV1.X(18)'
'CV1.X(8)'
'CV1.X(7)'
'CV1.X(9)'
'CV2'
'CV2.N(1)'
'CV2.N(2)'
'CV2.X(17)'
'CV2.X(18)'
cell_char_TagList
'CV2.X(8)'
'CV2.X(7)'
'CV2.X(9)'
'MV1'
'MV1.N(1)'
'MV1.N(2)'
'MV1.X(17)'
'MV1.X(18)'
'MV1.X(8)'
'MV1.X(7)'
'MV1.X(9)'
'MV2'
'MV2.N(1)'

14
'MV2.N(2)'
'MV2.X(17)'
'MV2.X(18)'
'MV2.X(8)'
'MV2.X(7)'
'MV2.X(9)']
It should give the current time incremented by
cell_char_TimeStamp
0.1, 0.2, and 0.3
dbl_Compact_Data This matrix is too large to display here.
dbl_SamplingTime 0.1000
int_CVNumber 2
int_MVNumber 2
[1 1 2 2
status 1 1 2 2
1 1 2 2]

Using the Toolbox


The toolbox can be accessed from MATLAB using the following sequence of commands.
First MATLAB itself should be started and the directory pointed to the folder containing the files
for this toolbox. Next, at the command prompt type “>> main_lmipa”. The GUI shown in
Figure 5 should appear. This GUI is the main access to the toolbox. To start a session of the
toolbox, click on the “LMIPA” menu. This will bring up a new GUI, which is shown in Figure 6.
In Figure 6, each of the main parts of the GUI is highlighted and will be discussed separately.

15
Figure 5: The First GUI that appears

As shown in Figure 6, there are 4 different sections in the main GUI.

Section 1: Main Menu


A close-up of the Main Menu section is given in Figure 7. The Main Menu consists of the
following 4 major parts:
1) File: Clicking this menu will give 4 options:
a. New (Ctrl + N): This will clear all the data from the current GUI and allow
the user to restart the analysis from a clean layout.
b. Open (Ctrl + O): This will load a previously saved project file.
c. Save (Ctrl + S): This will save the current project so that the analysis can be
continued later.
d. Exit (Ctrl + Q): This will close the programme without saving anything.

16
1. Main Menu

2. Status Bar

3. Control Panel
Case Box Setting Box

Scenarios

4. Output

Figure 6: The main GUI for this toolbox, with the main regions highlighted

Figure 7: Close-up of the Main Menu

17
2) Import: Clicking this menu will give 2 options:
a. Model (Ctrl + M): This will allow the user to load the appropriate model for the
process.
b. Data (Ctrl + D): This will allow the user to load the data for analysis.
3) Export: This menu is disabled until there is some information to export. In other words,
at least one case study must be solved. When active, clicking this menu will bring up 2
options:
a. Send to .xls: This will allow the user to send the results to an Excel (2003) file.
b. Send to .mat: This will allow the user to send the results to a Matlab file.
4) Help: This menu contains information about the current version of the programme.

Section 2: Status Bar


This section shows whether or not the required information has been loaded, as well as
some basic information about the loaded information, including model size and sampling time. A
message will be displayed giving the current status. Only if a “Sufficient Information!” is
displayed the rest of the panels will be enabled.

Section 3: Control Panel


This section consists of 2 panels. The left-hand panel manages all the case studies and
scenarios, while the right-hand panel contains the system optimisation parameters that can be
changed as necessary. In the left-hand panel, the following components are found:
1) Case box, which lists all the currently defined case studies. Selecting a given case study
will display the associated parameters and information.
2) “New” button, which will create a new case study and place it in the list box with a
default name. For the sake of simplicity, no more than 10 case studies can be created.
3) “Rename” button, which will allow the user to rename an existing case study. The new
name can consist of any Latin characters (with or without accents); other scripts will not
be displayed. This change will be applied to all sections showing this case’s name such as
the plots.
4) “Delete” button, which will allow the user to delete an existing case study. In order for
this button to work, at least one case study must be present; otherwise this button is
disabled.

18
5) “RUN” button, which will run the selected case study and display the results.
6) “Analyze” button, which will open the LMIPA assistant that allows for more detailed
analysis of the data. More details about this can be found in the section LMIPA Assistant.
7) Scenario radio buttons: These 4 radio buttons allow the user to select which type of
problem is to be analysed in the given case study. Each case study can only consider a
single scenario. The 4 scenarios are:
a. Scenario 1 (Ideal Case), which considers the calculation of the ideal potential,
which is equivalent to the Ideal Benefit Potential case in the Theory section.
b. Scenario 2 (Current Case), which considers the calculation of the current
potential, which is equivalent to the Current (existing) Benefit Potential case in
the Theory section.
c. Scenario 3 (Customize 1), which considers the calculation of the potential under
the assumption that both the variability and process limits can be changed. The
user can enter some selected values for variability and limit of each variable in the
setting box and then have the corresponding potential calculated easily.
d. Scenario 4 (Customize 2), which considers the calculation of the required
reductions in the variabilities and process limits given a desired potential. It
should be noted that in this case, the objective function requires that a linear
weighting be provided to set the importance of the given variables. This can be
accomplished by selecting the “Lambda” box from the right-hand list box and
entering values for “Var. weight” and “Lim. weight”. These weighting must be
numbers between 0 and 100.
8) “Sensitivity Analysis” checkbox, which considers performing all the tasks given in
Customize 2 through a different objective function which is discussed in sensitivity
analysis literature.

In the right-hand panel, the following components are found:


1) Settings list box, which contains all the different options for the scenarios, which require
user input.
a. Desired potential which allows the user to specify the desired potential.

19
b. Lambda which allows the user to specify the variability weighting and process
limit weighting in the format of a number between 0 and 100.
c. Controlled Variable #, which allows the user to specify the linear and quadratic
coefficients in the objective function associated with the given controlled variable.
As well, the variability and limits in percents of unity can be set. There will be as
many entries as there are controlled variables. Not all values can be set for all
scenarios.
d. Manipulated Variable #, which allows the user to specify the linear and
quadratic coefficients in the objective function associated with the given
manipulated variable. As well, the variability and limits in percents of unity can
be set. There will be as many entries as there are manipulated variables. Each time
we want to change a parameter, we may select one item in this list box and
change the appropriate value in edit boxes placed around it. Not all values can be
set for all scenarios.
e. Notes: Since the variability is specified as a reduction from the current values, its
value must be negative. The original period for variability and limit are [-1, 0] and
[0, 1] respectively. Here for the sake of simplicity, numbers are selected from [-
100, 0] and [0, 100]. Hence, -100 and 100 correspond to -1 and 1.
2) Default, which sets the parameter values to the initial default values.
3) MVPA (%), which allows for the manipulated variables, the specification of the
multivariate performance assessment index as a percent.

Section 4: Output
This section has three plots that show the results obtained from the solved cases. The upper
plot shows the calculated potential for each case and its value as percentage of the ideal case’s
value. The other two plots show variables variability and limit that are calculated for the last
scenario.

LMIPA Assistant
Clicking the “Analyze” button will open the LMIPA assistant, which allows the user to
select the data that will be used in the analysis. Figure 8 shows the window that appears. It
consists of 7 different areas:

20
a. Figure Tools (Section 1): This is the generic MATLAB toolbar for figures.
b. Model Data (Section 2): This section contains information about the model, such as the
number of controlled and manipulated variables, sampling time, and feasibility.
c. Time Section (Section 3): This allows the user to select the time section of the data that
will be used. In this field, the user can specify what part of the total data is to be used in
the analysis. The format for this entry is “[start sample value, end sample value]”. A
comma must separate the 2 values and the end value must be greater than the start value.
As well, there must a sufficient number of data samples in order for the computer to
estimate a model. It is possible to try more than 1 section simultaneously. Each sample
section is separated by a semicolon (;). For example “[1,100; 40, 500]” will consider 2
sections; the first ranging from sample 1 to sample 100 and the second from sample 40 to
sample 500. Clicking “Display” will display the selected samples in the data plot area
(Section 6). “Apply” button must be pressed in order for the data to be saved.
d. Select Variables (Section 4): This drop-down menu allows the user to select which
variables will be displayed.
e. Data Selected (Section 5): This allows the user to select what aspect of the selected
variable is to be displayed. It can be noted that “std” represents the standard deviation of
the individual data. The data is displayed in the following manners:
i. Histogram: The On/Off status and Std graphs.
ii. Line Graphs: The Data/Limit Range and all the individual CV values.
f. Data Display (Section 6): This displays the selected data. The abbreviations are
explained in Figure 9, which can be obtained by clicking the “Legend” button located in
Section 7.
g. Useful Buttons (Section 7): This contains 2 buttons that display the legend (Legend) or
close the given window (Close).

21
1. Figure Tools

2. Model Data

3. Time Section

4. Variables

5. Data Selected

6. Data Display

7. Useful Buttons

Figure 8: Plant Data & Constraint Analysis for LMIPA

Figure 9: Explanation of the abbreviations used in the Plant Data & Constraint Analysis for LMIPA window

22
Examples
The following example will present how the analysis can be performed using MATLAB.
The example is based on the data provided in the unzipped folder, which consists of 2
manipulated variables and 2 control variables.

Part I: Using the Programme to Obtain the Results


The first step is to load the programme, “>>main_lmipa”, and click on “LMIPA” in
the window that appears.
Next, load the model into the programme. This can be accomplished by clicking on the
“Model” from “Import Menu” and selecting the “Case_model.mat” file. After a few seconds,
load the data by clicking on “Data” from “Import Menu”. Then select the file entitled
“Case_Cmprhnsv_Data.mat”. By now the first case has already been created automatically.
Next, click on the “Run” push button to obtain the screen shown in Figure 10.

Figure 10: Screen shot 1 for the example

23
Figure 10 shows the ideal benefit potential is 0.32. In order to know the potential yield in
the current system, a case with scenario 2 (Current Case) is needed. Hence, we must click on the
“New” push button and select “Current Case”. We can also change its name of the case to
“Realistic” and finally run it. Results are shown in Figure 11.

Figure 11: Screen shot 2 for the example

Now let us assume the objective is to find the potential of the system if the variability and
process limits change. In this case, a new case is selected and the third scenario “Customize 1”is
chosen. On the right side of the control panel, select Controlled Variable 1 and set its variability
and limit to be -30% and 5% respectively. Note that since we are interested in a reduction in

24
variability, the variability of the variables must be negative. The other parameters remain
unchanged. Running this case will produce Figure 12.

Figure 12: Screen shot 3 for the example

It can be seen that changing the process variability by -30% and the process limits by 5%
increases to 0.23, which is 72.6% of the ideal case.
Next, assume that we would like to achieve 80% of the ideal potential by changing only
the variability of the variables. This is what Scenario 4 (Customize 2) is concerned with.
Therefore, create a new case and select Scenario 4. Select “Desired Potential” from the right-
hand list box and enter 80 into the textbox labelled “Desired J (%)”. Note that since we are only

25
interested in the change of variability, Lambda weighting coefficients must be 100 and 0 for
variability and limit respectively. The results are shown in Figure 13.

Figure 13: Screen shot 4 for the example

It can be seen that the variability of controller variable 1 must decrease by 67.3% in order
to achieve a potential 80% of the ideal one, that is, setting ν1 = -0.6725 and ν2 = 0 will bring
about this change.
For the last example, Scenario 4 is tried again to achieve a potential that is 50% of the
ideal potential. This time both variable variability and limit values (%) are used to do the
optimization over. For the objective function, two linear weight parameters are required.

26
Therefore, set 20 for variability and 80 for limit for “Lambda”. After running this case, Figure 14
will appear. This shows that by changing the limits a small amount, the potential that is 50% of
the ideal can be achieved.

Figure 14: Screen shot 5 for the example

This procedure could be repeated for more cases. The project as a single file using the
Save option from the “File” menu. As well, the results can be exported to Excel to MATLAB
files using the “Export” menu. In the Excel file, each worksheet will contain the solved values
for a given case. 2 sheets will also contain the information regarding model and data that were
used. Figure 15 shows the Excel file produced from the results obtained in this example.

27
Figure 15: Excel screen shot for the example

Part II: Time Section in LMIPA


In order to enter time section in LMIPA, click on the “Analyze” push button. After
appearing LMIPA assistant, go to section 3 (Time Section) of Figure 8 and enter into the box:
“[100, 500]”. Press the “Display”, which is located below the box. Select “CV1” in section 4.
The figure shown in Figure 16 should come up. Other controlled variables and manipulated
variables can be selected. Once you have confirmed that the desired section has been selected.
Click the “Apply” button, which is located in section 3 below the textbox. Finally, you may run
the case again and this time only data from selection time period will be used for analysis.

28
Figure 16: Showing the selected time sections for CV1

References

Lee, K. H., Huang, B., & Tamayo, E. C. (2008). Sensitivity analysis for selective constraint and
variabliltiy tuning in performance assessment of industrial MPC. Control Engineering
Practice (16), 1195-1215.

29

You might also like