LQG Benchmark for Performance Assessment Version 2.0
Transcript of LQG Benchmark for Performance Assessment Version 2.0
-
8/12/2019 LQG Benchmark for Performance Assessment Version 2.0
1/33
University of Alberta Computer Process Control Group
LQG Benchmark for
Performance Assessment:
Subspace Approach
Limited Trial Version
Written by CPC Control Group, University of Alberta
Version 2.0
-
8/12/2019 LQG Benchmark for Performance Assessment Version 2.0
2/33
Table of Contents
Introduction 1System Requirements 1Quick Start 1Detailed Instructions 9
Theory 9Data Storage 12
Model Storage Format 12Data Storage Format 13Data and Model Generation 14
Using the Toolbox 17
Installation 17Starting the Toolbox 17In-depth Discussion of the Toolbox 20
Example 1 25Example 2 26
References 30
ii
-
8/12/2019 LQG Benchmark for Performance Assessment Version 2.0
3/33
iii
List of Figures
Figure 1: The first GUI that appears 1Figure 2: The main GUI for this toolbox 2Figure 3: Loading data 3Figure 4: Data information and plots 4Figure 5: LQG curve calculated using the provided complete model 5Figure 6: LQG curve estimated form closed-loop experiment data 6Figure 7: Performance indices obtained for a MIMO process 8Figure 8: An example LQG trade-off curve 10Figure 9: The first GUI that appears 18Figure 10: The main GUI for this toolbox 19Figure 11: The LQGcurve menu from the Main menu 20Figure 12: The Evaluation menu from the Main menu 21Figure 13: The Model and Data Info. panel 21Figure 14: The Data panel 22Figure 15: The panel being used for plotting data 23Figure 16: LGQ Trade-off Curve panel 23Figure 17: Minimum Variance Performance Index panel 24Figure 18: Other Performance Indices panel 25Figure 19: Simulink model for collecting closed-loop data 25Figure 20: Results of performance assessment for Example 1 28Figure 21: Results of performance assessment for Example 2 29
-
8/12/2019 LQG Benchmark for Performance Assessment Version 2.0
4/33
1
Introduction
The LQG benchmark for Performance Assessment: Subspace Approach toolbox was
developed by the Computer Process Control Group at the University of Alberta to allow
performance assessment to be performed in MATLAB using a subspace approach.
A Quick Start approach to using this algorithm is presented, along with a detailed
section containing full explanations and examples for using this algorithm.
System Requirements
In order to run this program properly, the following programmes are required:
1) MATLAB 2006a (MATLAB 7.1) or better. It should be noted that the newest version ofMATLAB (MATLAB 2008a) makes the toolbox run slower.
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) Start MATLAB, and point the current directory to the location of the unzipped files.3) At the command prompt, type >>main_LQGPA to start the toolbox. The GUI shown
in Figure 1should appear.
Figure 1: The first GUI that appears
-
8/12/2019 LQG Benchmark for Performance Assessment Version 2.0
5/33
2
Figure 2: The main GUI for this toolbox
4) Press the LQGPA menu. The new GUI that is shown in Figure 2will appear.5) This GUI tool provides different modes of operations to load a model. The GUI accepts
any of the following options:
-
8/12/2019 LQG Benchmark for Performance Assessment Version 2.0
6/33
3
a. Loading an open-loop model of the process (both process and disturbancemodels), in transfer function or state space form, the LQG trade-off curve can be
calculated.
b. Loading a set of open-loop experiment (identification) data,the LQG trade-offcurve can be calculated.
c. Loading a set of closed-loop experiment (identification) data,the LQG trade-offcurve can be calculated.
d. Loading only process model (with no disturbance model) and a set of closed-looproutine operating data, the LQG trade-off curve can be calculated.
6) After loading the model or data, as a measure of current performance, a set of closed-looproutine operating data should be loaded.
7) For the purpose of this quick start, we will use the sample data provided in the SISOexample in the zip file which contains process models in both transfer function (tf) and
state space (ss) formats, a set of open-loop experiment data, a set of closed-loop
experiment data, and a set of closed-loop operating data.
8) Use the LQG curvemenu to load the model or data. When the model or data is loaded,the corresponding information will be shown in the Model and Data Info.panel
(see Figure 3and Figure 4).
Figure 3: Loading data
-
8/12/2019 LQG Benchmark for Performance Assessment Version 2.0
7/33
4
Figure 4: Data information and plots
9) If an open-loop model is loaded, you may press the Use Model buttonto generate thetrade-off curve (in blue) as in Figure 5. Depending on the type of process dynamics and
number of inputs and outputs, it takes a few seconds to a few minutes to perform the
calculation.
-
8/12/2019 LQG Benchmark for Performance Assessment Version 2.0
8/33
5
Figure 5: LQG curve calculated using the provided complete model
10)If a set of closed-loop or open-loop experiment is loaded, you can press Use Exp. Datatoestimate and plot the curve (in green) as in Figure 6. Depending on the type of process
-
8/12/2019 LQG Benchmark for Performance Assessment Version 2.0
9/33
-
8/12/2019 LQG Benchmark for Performance Assessment Version 2.0
10/33
7
12)To perform a comparison between the real and estimated curves (when both model anddata are available), you can load a model and a set of identification data and generate
both true curve (computed form the model) and estimated curve (estimated from data) by
pressing both buttons sequentially.
13)Once the LQG curves have been obtained, you can load a set of closed-loop routineoperating data from the Evaluationmenu to assess its performance. Then, press the
Assess Perfbutton to have all the performance indices calculated. The overall
performance index and an index for each controlled variable will be shown in the
Minimum Variance Performance Indexpanel. Three more indices are available in the
Other Performance Indicespanel, see Figure 7. For the definition of the different
indices, please see the Theorysection on p. 9.
14)To clear the GUI, go the File menu and select New.15)To save the data currently in the GUI, go the Filemenu and select Save.
-
8/12/2019 LQG Benchmark for Performance Assessment Version 2.0
11/33
8
Figure 7: Performance indices obtained for a MIMO process
-
8/12/2019 LQG Benchmark for Performance Assessment Version 2.0
12/33
9
Detailed Instructions
Theory
The optimal linear-quadratic Guassian (LQG) controller can be used as a benchmark for
performance assessment. The question in performance assessment using LQG-benchmark is how
far away the current controllers performance is from the best achievable performance with the
same control effort. In other words, the following problem needs to be solved.
Assume that 2tE u
-
8/12/2019 LQG Benchmark for Performance Assessment Version 2.0
13/33
10
Figure 8: An example LQG trade-off curve
In contrast to the minimum variance control (MVC) benchmark, this approach focuses on
both variances of input and output and provides a trade-off curve which represents a feasible
range of performance for linear controllers (Huang & Kadali, 2008; Huang & Shah, 1999). Other
indices can be obtained from this method. A detailed discussion of the different indices is
presented in (Huang, 2003). Similar to the MVC benchmark, this method is based on a process
model, which can be obtained using process identification.
In (Huang & Kadali, 2008), a method for calculating the LQG trade-off curve using the
subspace framework based on the LQG design given in (Favoreel W. , De Moor, Gevers, & Van
Overschee, 1999; Favoreel W. , De Moor, Gevers, & Van Overschee, 1998) was presented. A
closed-loop identification method for the estimation of the required open-loop subspace matrices
from closed-loop data is also provided in (Kadali & Huang, 2002). An improved version of this
identification method was recently proposed in (Danesh Pour, Huang, & Shah, 2009), which
improves the consistency of noise variance estimation. This work also presents the method of
disturbance model estimation using an available process model and a set of closed-loop routine
operating data (no identification experiments required). This GUI is based on the work proposed
in (Danesh Pour, Huang, & Shah, 2009).
-
8/12/2019 LQG Benchmark for Performance Assessment Version 2.0
14/33
11
t
In order to understand how LQG curve is calculated, assume that the following system is
known:
1t t t
t t t t
Ax Bu Ke
Cx Du e
+ = + +
= + +
(3)
In matrix form, Equation (3)can be written as
(4)
0 0
1 1
0
2 21 1
0| 1 0| 1 ,1 0
0 0 0
0 0
N NN N
N u N e
D Iy u
CB D CK y ue
y uCA D D CA K
y L u L e
= +
= +
)u
Consider a regulatory LQG control objective function defined as
(5)( )(1
0
NT T
i i i i
i
J y y u I
=
= +
MinimizingJwill yield following solutions
( )
( )( )
1
0| 1 ,1 0
1
0| 1 ,1 0
opt T T
N u u u e
opt T T
N u u u u
u L L I L L e
ey I L L L I L L e
= +
= + (6)
Now, define the following two matrices
(7)( )
0
11
,1
1
T
u u u e
N
L L I L L
= +
T
( )( )0
11
,1
1
T T
u u u u e
N
I L L L I L L
= +
(8)
It can be shown that all the points for LQG curve can be obtained using following formula
1
0
1
0
[ ] ov[ ]
[ ] ov[ ]
NT
t i t
i
NT
t i t
i
Cov u c e
Cov y c e
i
i
=
=
=
=
(9)
-
8/12/2019 LQG Benchmark for Performance Assessment Version 2.0
15/33
12
To calculate LQG curve using the data,LeandLumust be calculated first and then the remaining
parameters can be estimated.
Data Storage
The file gen_cmpct_data_LQG.p can be used to generate data or model objects and save
them for use with the GUI. Model and data formats generated by this code are as follows.
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) or state space
object (ss). The transfer function matrix, for each of the process or disturbance models, can be
created using the following steps:
1) Assume that a process with n inputs and m outputs is being analyzed. The transferfunction between thej
thinput and the it
houtput is a rational function of eithers orz,
given asAij /Bij, whereA is the numerator andB is the denominator , and both are vector
containing in descending order of powers ofs orz the corresponding co-efficients of A
and B, respectively.
2) It is now necessary to create 2 cell arrays that contain all the information about theprocess. The first cell array, A , is created as follows:
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 A{i,j}. A similar
cell array containing the values of the denominator, denoted as B , is also created.
3) The time delay for the model can be created by forming the matrix D , 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 MATLABcommand: >>Atf=tf(A,B,ioDelay,D) , where A is the cell array A , B is the
cell array B , and D is the time-delay matrix, D . To create a discrete time transfer
function, the MATLAB command would be >>Atf=tf(A,B,Ts,ioDelay,D) ,
-
8/12/2019 LQG Benchmark for Performance Assessment Version 2.0
16/33
13
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) Creating a MIMO state space model can be easily done by providing A,B,C,D,K matricesto the MATLAB function >>sys=ss(A,B,C,D,Ts) . For continuous-time model,
Tsshould be left blank.
Data Storage Format
The data format is called Compactformat. Assume that there arepsamples of output,
input and setpoint data with a total oftcontrolled variables andsmanipulated variables with a
total of qtags. In the compact data storage method, the data is stored as an object containing the
following entries:1) controller_Status: This is ap-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-by-1 cell matrix that contains the name of each of the tagsthat are presented in the process.
3) cell_char_TimeStamp: This is ap-by-1 cell matrix that contains the time stamp for eachof the samples.
4) dbl_Compact_Data: This is a (2p+t)-by-q double matrix (for CL experiment data) or a(p+t)-by-q double matrix (for OL experiment data and CL operating data) that contains
the values for each of the tags and sample periods.
5) dbl_SamplingTime: This is a scalar double that contains the sampling time for theprocess.
6) int_CVNumber: This is a scalar integer that contains the number of controlled variablesin the process, that is, t.
7) int_MVNumber: This is a scalar integer that contains the number of manipulatedvariables in the process, that is,s.
8) status: This is ap-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 remainings
-
8/12/2019 LQG Benchmark for Performance Assessment Version 2.0
17/33
14
columns contain the status of the manipulated variables. A value of 1 signifies that the
data is good.
Data and Model Generation
The data and model storage files can be generated using gen_cmpct_data_LQG.p.
Based on the step-by-step comments after running the code, you would be able to create your
model or data file in a Compactformat. To generate a complete model (process + disturbance),
you have two choices:
1) A t f-object as the process model and a t f-object as the disturbance model must beready in the workspace.
2) State-space matrices A, B, C, D, and Kmust be ready in the workspace.Note that you can only use one of these two types of model to generate a Compactmodel.
For process model (only process model, no disturbance model),
1) It can be provided by the state-space matrices A, B, C, and D.2) It can be provided as one t f-object.
Note that a set of closed-loop routine operating data is required with this choice of model.
A set of closed-loopor open-loopexperiment data (identification data) must be available in the
workspace, if you want to estimate the LQG curve from experiment data.
To create the closed-loop operatingdata in Compactformat (for evaluationpurposes),
you have to get your data ready in the workspace and run the code. By running the code once, a
single model can be generated and saved, a single set of experiment data, or a single set of
operating data. Depending on the choices selected, some of the steps below can be skipped.
Run the code:
If the data and/or model information are ready in the workspace, run the code. The
followings will appear on the command window:
*********************************************************Consi der a pr ocess wi t h m i nput s , p out put s and ddi st ur bances:
The f ol l owi ng var i abl es shoul d be avai l abl e i n WORKSPACE:
1. LQG CURVE REQUI REMENTS:- pr ocess and di st ur bance model i n t he f or m of
p x m and p x d t r ansf er f unct i on mat r i ces ( t f - obj ect )And Whi t e noi se covar i ance mat r i x
-
8/12/2019 LQG Benchmark for Performance Assessment Version 2.0
18/33
15
OR- pr ocess and di st ur bance model i n t he f or m of
a St ate- Space model : A, B, C, D, K mat r i cesAnd Whi t e noi se covar i ance mat r i x
OR- onl y pr ocess model
i n SS f or mat ( A, B, C, D) of TF f or mat ( p x m t f - obj ect )AndCL Oper at i ng data; out put and I nput dat a ( y, u) : N
x( p+m) mat r i x
AND / OR
- CL Exci t at i on dat a; Out put , I nput and Set poi nt dat a( y, u, r ) : N x ( p+m+p) matr i x
AND / OR- OL Exci t at i on dat a; Out put and I nput dat a ( y, u) : N
x( p+m) mat r i x
2. PERFOMANCE EVALUATI ON REQUI RMENT- CL Oper at i ng dat a; out put and I nput dat a ( y, u) : N
x( p+m) mat r i x
3. Sampl i ng t i me
*********************************************************Press ENTER t o cont i nue or t ype X t o exi t :
Press ENTER to go further. Step 1is to provide a complete model (process + disturbance), if
applicable. You will see the first step in the command window:
1. Provi de pr ocess and di st ur bance model s. . . .
press ENTER t o pr ovi de TF model or t ype X t o go t o t he nextpar t :
Press ENTER, and the following will appear:
pr ocess model t r ansf er f unct i on mat r i x ( t f - obj ect ) :
Give the name that you have defined for your processmodel tf-object, for example, Gp, andpress enter. The following will appear:
di st ur bance model t r ansf er f unct i on mat r i x ( t f - obj ect ) :
Provide the name that you have defined for your disturbancemodel tf-object, for example, Gd,
and press enter. The following will appear:
-
8/12/2019 LQG Benchmark for Performance Assessment Version 2.0
19/33
16
noi se covar i ance mat r i x:
Enter the input noise covariance matrix. If this step was skipped by typing X, a state-space model
will be required
press ENTER t o pr ovi de SS model or t ype X t o go t o t he nextpar t :
Press ENTER and give the following state-space matrices:
st at e space A mat r i x:st at e space B mat r i x:st ate space C mat r i x:st ate space D mat r i x:st at e space K mat r i x:noi se covar i ance mat r i x:
If this step was skipped, then the process model without a no noise model is entered as follows
(Step 2):
2. Provi de pr ocess model and CL oper at i ng dat a. . . .press ENTER t o pr ovi de TF model or t ype X t o go t o t he nextpar t :
Press ENTER and the following will appear:
pr ocess model t r ansf er f unct i on mat r i x ( t f - obj ect ) :
By typing X, the following will appear:
press ENTER t o pr ovi de SS model or t ype X t o go t o t he nextpar t :
If you choose to provide a state-space model, the code will ask for the matrices:
st at e space A mat r i x:st at e space B mat r i x:st ate space C mat r i x:st ate space D mat r i x:
Closed-loop operating data should then be provided:
Provi de Cl osed- l oop oper at i ng dat a mat r i x [ y u] :
Irrespective of whether Steps 1 and 2 are skipped, Step 3 asks for the closed-loop excitation data:
3. Pr ovi de Cl osed- l oop exci t at i on dat a mat r i x [ y u r ] ,Or pr ess ENTER, i f you want t o ski p t hi s par t ,
-
8/12/2019 LQG Benchmark for Performance Assessment Version 2.0
20/33
17
Give the data arranged in the given order: output, input and setpoint. Keep the []. If ENTER is
pressed without providing the closed-loop experiment data, open-loop experiment data can be
provided in Step 4:
4. Pr ovi de Open- l oop exci t at i on dat a mat r i x [ y u] ,Or pr ess ENTER, i f you want t o ski p t hi s par t ,
If you want to generate and save the closed-loop operating data, the next command (Step 5)
allows you to do that:
5. Pr ovi de Cl osed- l oop oper at i ng dat a mat r i x [ y u] :
Note that you cannot generate both experiment and operating data in Compactformat by running
the code once. You will be asked about the number of process outputs for any of these set of data
that you provided (if you have not provided any model).
Sampling time will be asked at this stage:
Sampl i ng t i me:
Names of the files for saving the Compactmodel or Compactdata are requested at the last step:
The f i l e name t o save compact data ( e. g. t est _cmpct _data) :The f i l e name t o save t r ansf er f unct i on model ( e. g. t f _model ) :The f i l e name t o save st at e space model ( e. g. ss_model ) :The f i l e name t o save mpc model ( e. g. mpc_model ) :
The gen_cmpct_data_LQG code, will save some .mat files in the current active path of
MATLAB which you can be loaded and used in the GUI for analysis.
NOTE:Any files with the same name will be overridden.
Using the Toolbox
Installation
The toolbox can be installed by unzipping the files to the desired location. In order for the
toolbox to function properly, the System Identification Toolbox should be installed.
Starting the Toolbox
The toolbox can be accessed from MATLAB using the following sequence of commands.
First MATLAB itself should be started from the directory pointing to the folder containing the
files for this toolbox. Next, at the command prompt, type >> main_LQGPA.
-
8/12/2019 LQG Benchmark for Performance Assessment Version 2.0
21/33
18
Figure 9: The first GUI that appears
The GUI shown in Figure 9should appear. This GUI is the main access to the toolbox. To start a
session of the toolbox, click the LQGPA menu. This will bring up a new GUI, which is shown
in Figure 10. In Figure 10, each of the main parts of the GUI is separated by panels and will be
discussed separately.
-
8/12/2019 LQG Benchmark for Performance Assessment Version 2.0
22/33
19
Figure 10: The main GUI for this toolbox
-
8/12/2019 LQG Benchmark for Performance Assessment Version 2.0
23/33
20
In-depth Discussion of the Toolbox
Section 1: Main Menu
The Main Menuconsists of the following 3 parts:
1) File: Clicking this menu will allow user to choose between 3 options:a. New:Clear all the data from the current GUI and restart the analysis from a clean
layout.
b. Open: This option allows the user to open a previously-saved case. Everythingwill be shown as it was before.
c. Save: This option allows the user to save the current case. All the models, data,and results will be saved in a MATLAB file.
2) LQGcurve: Clicking this menu will allow the user to select different options for closed-loop or open-loop data or models (generated by gen_cmpct_data_LQG.p) that will be
used in the analysis. Four choices are available:
Figure 11: The LQGcurve menu from the Main menu
a. From Model (Process + Disturbance): This option allows the user to load acomplete model of the process which contains both process and disturbance
models to be used for the calculation of the LQG curve.
b. From OL experiment data: This assumes that the data to be used for estimationof the curve is a set of open-loop experiment (identification) data stored in the
Compactformat.
c. From CL experiment data: This assumes that the data to be used for estimationof the curve is a set of closed-loop experiment (identification) data stored in the
Compactformat.
-
8/12/2019 LQG Benchmark for Performance Assessment Version 2.0
24/33
21
d. From Model (Proc. only)+CL oper. data: This loads a process model and a setof closed-loop operating data (in one file). Note that when you load this file, the
process model and operating data will be used to calculate the curve, so for the
evaluation purpose you may want to load another set of operating data (which can
be the same set) from the Evaluation menu.
3) Evaluation: Clicking this menu will allow the user to select and load a set of closed-looproutine operating data (generated by gen_cmpct_data_LQG.p) for evaluating the
performance of current controller. Only one choice is available:
a. Load CL operating data:This allows the user to load a set of closed-loop routineoperating data.
Figure 12: The Evaluation menu from the Main menu
Section 2: Model and Data Info panel
This panel gives the information about the type of model you have loaded as well as
experiment data and operating data, including the number of controller variables (CV), the
number of manipulated variables (MV), sampling time, starting time, and ending time.
Figure 13: The Model and Data Info. panel
Section 3: Data panel
There are some tools in this panel which can be used for data selection and display as
follows:
-
8/12/2019 LQG Benchmark for Performance Assessment Version 2.0
25/33
22
Figure 14: The Data panel
1) Time section: In this field, the user can specify what part of the total data is to be used inthe 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. Clicking Select section will display the selected samples in the plot
data section.
2) Data selection:This subpanel enables you to choose the controlled variable (CV) andmanipulated variable (MV) that you want to show in the plot data section.
3) Zoom:This allows the user to zoom into a certain section of the graph. However, there is nozoom-out button, so you have to double click the left mousebuttonto get back to the original
zoom.
4) Data Cursor:This can be used to monitor the exact value of any data points.5) Experiment/Operating data: By choosing one of these two radio buttons, you can
choose to show either experiment data or operating data in the plot data section.
Section 4: Plot data
Two axes have been provided in this section which allows the user to view the MV and
CV data. Each one can only show one set of data, so you should use the Data selection subpanel
in the Datapanel to choose the number of CV or MV you want to see.
-
8/12/2019 LQG Benchmark for Performance Assessment Version 2.0
26/33
23
Figure 15: The panel being used for plotting dataSection 5: LQG Trade-off Curve panel
In this panel, the LQG trade-off curve calculated using the model, estimated from data, or
both is plotted on the provided graph. Four push buttons are available in this panel:
1) Use Model:This button is enabled after you loaded a complete model (Process +Disturbance) in the GUI. Press it to calculate and plot the trade-off curve (in blue).
Figure 16: LGQ Trade-off Curve panel
2) Use Exp. Data:This button is enabled, if you have provided a set of closed-loop or open-loop experiment data to estimate and plot the trade-off curve (in green).
-
8/12/2019 LQG Benchmark for Performance Assessment Version 2.0
27/33
24
3) Use Oper.Data: This button is enabled, if you have provided process model and a set ofclosed-loop operating data to estimate and plot the trade-off curve (in red).
4) Clear:You may use this button to clear the graph.Section 6: Minimum Variance Performance Index panel
In this panel, the Minimum Variance Control (MVC) benchmark (obtained from the
trade-off curve) is used to calculate the MVC performance index. The MVC benchmark
calculated automatically takes all the nonminimum phase zeros into account. Further information
about the MVC benchmark for nonminimum phase systems can be found in (Huang & Shah,
1999). There are two axes in this panel: one for the overall MVC performance index and the
other one for individual performance indices for each CV.
Figure 17: Minimum Variance Performance Index panel
As seen, one corresponding push button is provided. Press this button after a trade-off
curve has been calculated/estimated and a set of closed-loop operating data is also loaded in to
see all the performance indices for the process. All the calculation can be determined using the 3
different curves. Hence, 3 different answers with 3 colors are demonstrated in this panel.
Section 7: Other Performance Indices panel
Three other performance indices can also be found from the LQG trade-off curve which
are achievable in this panel. Note that based on the position of actual variance point in relation to
the trade-off curve, some of these indices might not be calculable.
-
8/12/2019 LQG Benchmark for Performance Assessment Version 2.0
28/33
25
t
t t
Figure 18: Other Performance Indices panel
Example 1
A set of models and data generated by gen_cmpct_data_LQG are provided with this
toolbox which comes from the following system:
( )
1
0.6 0.6 0 1.6161 1.1472
0.6 0.6 0 0.3481 1.5204
0 0 0.7 2.6319 3.1993
0.4373 0.5046 0.0936 0.7759
t t t
t t
x u
y x
+
= + +
= +
e
u e
(10)
A PI controller,
0.050.1
cG
s= + (11)
is used for this process. A simple Simulink model has been prepared to collect closed-loop
experimental data (see Figure 19). The identification test signal, , is designed by idinput
command:
)(tr
r =i di nput ( 1000, ' r bs' , [ 0, 0. 06] , [ - 1, 1] ) ;
Figure 19: Simulink model for collecting closed-loop data
The idmodelblock needs a variable named sys to be defined and be ready in the
workspace. This can be done as follows:
A=[ 0. 6 0. 6 0; - 0. 6 0. 6 0; 0 0 0. 7] ; B=[ 1. 6161; - 0. 3481; 2. 6319] ;
-
8/12/2019 LQG Benchmark for Performance Assessment Version 2.0
29/33
26
C=[ - 0. 4373 - 0. 5046 0. 0936] ; Du=- 0. 7759; K=[ - 1. 1472; - 1. 5204; - 3. 1993] ; sys=i dss( A, B, C, D, K, [ 0; 0; 0] , 1) ; sys. Noi seVar i ance=0. 01;
In the block parameters of idmodel, there is an option Add noise which must be
checked. To get a set of routine operating data r(t) must be replaced by a zero column vector of
length 6001. A similar model has been used to generate open-loop experiment data.
When model and data variables are present in the workspace, run gen_cmpct_data_LQG
to create and save model and data files in the Compactformat. All the files related to this
example have names starting with SISO_. After loading model and data files in the GUI, the
LQG trade-off curve can be estimated and various performance indices can be calculated. The
final results are shown in Figure 20, which shows relatively poor performance of the controller in
all aspects.
Example 2
A MIMO example is also provided with the toolbox. The process to be controlled is a 2-
input, 2-output process described by the following transfer function matrices:
1 2
1 1
1 2
1 1
1
1 1
1
1 1
0.5
1 0.4 1 0.1
0.3
1 0.4 1 0.8
1 0.6
1 0.5 1 0.5
0.5 1
1 0.5 1 0.5
p
l
z z
z zG
z z
z
z
z zG
z
z z
=
=
z (12)
The following controller is implemented:
1
1
1
1 1
0.5 0.20
1 0.50.25 0.2
0(1 0.5 )(1 0.5 )
c
z
zGz
z z
= +
(13)
The following procedure can be followed to generate a set of closed-loop experiment data from
this process:
-
8/12/2019 LQG Benchmark for Performance Assessment Version 2.0
30/33
27
Gp=t f ( {[ 1] , [ 4] ; [ 0. 3] , [ 1] }, {[ 0 1 - . 4] , [ 1 - 0. 1 0] ; [ 0 1 -0. 1] , [ 1 - 0. 8 0] }, 1) ;Gl =t f ( {[ 1 0] , [ - . 6] ; [ 0. 5] , [ 1 0] }, {[ 1 - . 5] , [ 1 - . 5] ; [ 1 -. 5] , [1 - . 5]}, 1) ;Gc=t f ( {[ . 5 - . 2] , [ 0] ; [ 0] , [ . 25 - . 2 0] }, {[ 1 - . 5] , [ 1] ; [ 1] , [ 1
0 - . 25] }, 1) ;r 1=i di nput ( 1000, ' r bs' , [ 0, 0. 03] , [ - 5, 5] ) ;r 2=i di nput ( 1000, ' r bs' , [ 0, 0. 03] , [ - 5, 5] ) ;r = [ r 1 r 2] ;t =[ 1: 1000] ' ;[ A, B, C, D, K] = t f 2ssGpGl ( Gp, Gl ) ;% cont rol l ercont =i dss( Gc) ;Ac = cont . a; Bc = cont . b; Cc = cont . c; Dc = cont . d;seeds = [ 1 2] ;
f unct i on [ A, B, C, D, K] = t f 2ssGpGl ( Gp, Gl )ny = si ze(Gp. Out put Del ay, 1) ;nu = si ze( Gp. I nput Del ay, 1) ;NUMGt ={Gp. num Gl . num};DENGt ={Gp. den Gl . den};Gt = t f ( [ NUMGt {1, 1} NUMGt {1, 2}] , [ DENGt {1, 1}
DENGt {1, 2}] , 1) ;set ( Gt , ' I nput Gr oup' , st r uct ( ' Noi se' , [ nu+1: nu+ny] ) )model = i dss( Gt ) ;A = model . a; B = model . b; C = model . c;D = model . d; K = model . k;
end
Use a Simulink model similar to Example 1 to generate the data. The same procedure as
the previous example is followed to create and save a Compactmodel and data files, load it into
the GUI, and obtain the trade-off curve as well as performance indices. All the files related to
this example have names started with MIMO_. Results are shown in Figure 21which indicates
that the overall control system is working similar to the minimum variance controller, while the
very small value of the Global Cost index indicates that the control action could be reduced
significantly for the same output variance.
-
8/12/2019 LQG Benchmark for Performance Assessment Version 2.0
31/33
28
Figure 20: Results of performance assessment for Example 1
-
8/12/2019 LQG Benchmark for Performance Assessment Version 2.0
32/33
29
Figure 21: Results of performance assessment for Example 2
-
8/12/2019 LQG Benchmark for Performance Assessment Version 2.0
33/33
30
References
Danesh Pour, N., Huang, B., & Shah, S. L. (2008). Closed-loop subspace identification for
performance assessment.Journal of Process Control.
Danesh Pour, N., Huang, B., & Shah, S. L. (2009). Consistency of noise covariance estimation in
joint inputoutput closed-loop subspace identification with application in LQG
benchmarking.Journal of Process Control, 19(10), 1649-1657.
Favoreel, W., De Moor, B., Gevers, M., & Van Overschee, P. (1999). Closed-loop model-free
subspace-based LQG-design.Proceedings of the 7th Mediterranean Conference on
Control and Automation.Haifa, Israel.
Favoreel, W., De Moor, B., Gevers, M., & Van Overschee, P. (1998). Model-free subspace-
based LQG-design. 1999 American Control Conference, (pp. 3372-3376). San Diego,
California, United States of America.
Huang, B. (2003). A pragmatic approach towards assessment of control loop performance.
International Journal of Adaptive Control and Signal Processing, 17(7-9), 589-608.
Huang, B., & Kadali, R. (2008).Dynamic Modeling, Predictive Control, and Performance
Monitoring.London, England, United Kingdom: Springer-Verlag.
Huang, B., & Shah, S. L. (1999).Performance Assessment of Control Loops: Theory and
Applications.Berlin: Springer.
Kadali, R., & Huang, B. (2002). Estimation of the Dynamic Matrix and Noise Model for Model
Predictive Control Using Closed-Loop Data.Industrial & Engineering Chemistry
Research, 41(4), 842-852.