LQG Benchmark for Performance Assessment Version 2.0

download LQG Benchmark for Performance Assessment Version 2.0

of 33

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.