Copyright Notice The copyright in this manual and its associated computer program are the property of Hyprotech Ltd. All rights reserved. Both this manual and the computer program have been provided pursuant to a License Agreement containing restrictions on use. Hyprotech reserves the right to make changes to this manual or its associated computer program without obligation to notify any person or organization. Companies, names and data used in examples herein are fictitious unless otherwise stated. No part of this manual may be reproduced, transmitted, transcribed, stored in a retrieval system, or translated into any other language, in any form or by any means, electronic, mechanical, magnetic, optical, chemical manual or otherwise, or disclosed to third parties without the prior written consent of Hyprotech Ltd., Suite 800, 707 - 8th Avenue SW, Calgary AB, T2P 1H5, Canada. © 2001 Hyprotech Ltd. All rights reserved. HYSYS.RTO, HYSYS, HYSYS.Plant, HYSYS.Process, HYSYS.Refinery, HYSYS.Concept, HYSYS.OTS, and HYSIM are registered trademarks of Hyprotech Ltd. Microsoft® Windows®, Windows® 95/98, Windows® NT and Windows® 2000 are registered trademarks of the Microsoft Corporation. This product uses WinWrap® Basic, Copyright 1993-1998, Polar Engineering and Consulting. Documentation Credits Authors of the current release, listed in order of historical start on project: Ian McKay, B.Sc.; Lisa Hugo, B.Sc., B.A.; Conrad Gierer, B.A.Sc.; Nana Nguyen, B.Sc. Since software is always a work in progress, any version, while representing a milestone, is nevertheless but a point in a continuum. Those individuals whose contributions created the foundation upon which this work is built have not been forgotten. The current authors would like to thank the previous contributors. A special thanks is also extended by the authors to everyone who contributed through countless hours of proof-reading and testing. Contacting Hyprotech Hyprotech can be conveniently accessed via the following: Website: Technical Support: Information and Sales: www.hyprotech.com support@hyprotech.com info@hyprotech.com Detailed information on accessing Hyprotech Technical Support can be found in the Technical Support section in the preface to this manual. Table of Contents 1 2 3 4 Introducing HYSYS.RTO................................... 1-1 1.1 What is HYSYS.RTO......................................................... 1-3 1.2 Use of the Manuals ........................................................... 1-5 1.3 Technical Support ............................................................. 1-8 Installing HYSYS.RTO ...................................... 2-1 2.1 Basic Requirements .......................................................... 2-3 2.2 Installing HYSYS.RTO ...................................................... 2-4 Using HYSYS.RTO ............................................ 3-1 3.1 Role of the SubFlowsheet ................................................. 3-3 3.2 Optimization Objects ......................................................... 3-4 3.3 Collection Utilities .............................................................. 3-5 3.4 Optimizer Interface ............................................................ 3-6 3.5 Data Reconciliation/Parameter Estimation Problem ......... 3-6 3.6 Optimization Problem ........................................................ 3-7 3.7 Creating a Collection Utility ............................................... 3-7 The Optimizer ................................................... 4-1 4.1 5 6 Optimizer Interface ............................................................ 4-3 The Derivative Utility ....................................... 5-1 5.1 HYSYS.RTO Variables - Properties .................................. 5-3 5.2 HYSYS.RTO Constraints - Properties............................... 5-9 ESTIM DRU Overview ....................................... 6-1 6.1 The Problem...................................................................... 6-3 6.2 The Solution ...................................................................... 6-3 6.3 The Benefits ...................................................................... 6-4 6.4 ESTIM DRU Facilities........................................................ 6-5 6.5 Using ESTIM DRU ............................................................ 6-5 6.6 Configuring A Fitting Problem ........................................... 6-9 6.7 Estim Data Set Analysis .................................................. 6-17 i 6.8 Optimization Objects ....................................................... 6-17 6.9 General Notes ................................................................. 6-22 6.10 ESTIM DRU DIAGNOSTIC FILE OUTPUT..................... 6-23 7 Data Reconciliation Utility............................... 7-1 7.1 8 Heat Exchanger Network Data Reconciliation .................. 7-3 Derivative Utility and Optimizer....................... 8-1 8.1 The Derivative Utility ......................................................... 8-3 8.2 Optimizer ......................................................................... 8-11 Index ..................................................................I-1 ii Introducing HYSYS.RTO 1-1 1 Introducing HYSYS.RTO 1.1 What is HYSYS.RTO ..................................................................................... 3 1.2 Use of the Manuals....................................................................................... 5 1.3 Technical Support ........................................................................................ 8 1-1 1-2 1-2 Introducing HYSYS.RTO 1.1 1-3 What is HYSYS.RTO HYSYS.RTO is a real-time on-line optimization software package that combines two proven technologies: rigorous first principal models and thermodynamic methods from HYSYS, and optimization and data reconciliation routines from RTO. Optimization within HYSYS is based on a simultaneous modular approach. A flowsheet model is developed as a collection of SubFlowsheets (SFS or the modular blocks) which are connected via streams. Within each SFS are a collection of unit operations and streams which are appropriate to be solved together. During the course of the optimization run, each SubFlowsheet is solved using one of the standard HYSYS solvers (non-sequential modular or one of the available column solvers). When the model is being posed to the optimizer, each product stream from one SFS that serves as a feed stream to another SFS is "torn". The act of tearing the stream creates a collection of connection equations which the optimizer will solve as part of its calculations. In the case of nested SubFlowsheets, the tearing occurs at the terminal locations (i.e., between the stream which is calculated as the product of one unit operation, and the stream which feeds the next unit operation). There are no intermediate tears constructed. Recycle locations in the flowsheet should be defined at the transition across a SubFlowsheet boundary. This additional transfer basis allows the flowsheet to be initialized correctly, and then have the recycle replaced by connection equations when the model is posed to the optimizer. Within each of the SubFlowsheets are a number of decision variables, true process constraints and objective function variables. These are individually selected and configured by you and are automatically associated with the corresponding block when the problem is posed to the optimizer. Upon configuration of the flowsheet, Derivative Utilities can be attached to the various SubFlowsheet operations. These utilities allow the tearing of the appropriate streams to be invoked, and the various optimization objects (decision variables, constraints, objective function variables) collected into lists which are provided to the optimizer. 1-3 1-4 What is HYSYS.RTO When the optimizer is invoked, it accesses these lists from each of the utilities in order to construct its solution matrix. During the course of its solution, the optimizer will necessary configuration information from each of the objects in order to determine aspects such as step size, derivative evaluations etc. In the simultaneous modular approach, the blocks are treated as a matrix of variables (decision and tear) and constraints (true process constraints and connection equations). The derivatives that the optimizer then sees from any block are of the entire constraints vector with respect to each individual variable within the block. If the block contains variables which are part of the objective function, the gradient is also determined for each of the variables. During the optimization, values are returned to the flowsheet via the utilities to be evaluated by the models, with the calculated results (tear equation residuals, process constraint values, objective function, etc.) returned to the optimizer. The interaction between the optimizer and the flowsheet continues until the defined solution criteria is met. 1-4 Introducing HYSYS.RTO 1.2 1-5 Use of the Manuals The following section lists a number of conventions used throughout the documentation. Keywords for Mouse Actions As you work through various procedures in the manuals, you will be given instructions on performing specific functions or commands. Instead of repeating certain phrases for mouse instructions, keywords are used to imply a longer instructional phrase: These are the normal (default) settings for the mouse, but you can change the positions of the left- and right-buttons. Keywords Action Point Move the mouse pointer to position it over an item. For example, point to an item to see its Tool Tip. Click Position the mouse pointer over the item, and rapidly press and release the left mouse button. For example, click Close button to close the current window. Right-Click As for click, but use the right mouse button. For example, right-click an object to display the Object Inspection menu. Double-Click Position the mouse pointer over the item, then rapidly press and release the left mouse button twice. For example, double-click the HYSYS icon to launch the program. Drag Position the mouse pointer over the item, press and hold the left mouse button, move the mouse while the mouse button is down, and then release the mouse button. For example, you drag items in the current window, to move them. Tool Tip Whenever you pass the mouse pointer over certain objects, such as tool bar icons and flowsheet objects, a Tool Tip will be displayed. It will contain a brief description of the action that will occur if you click on that button or details relating to the object. A number of text formatting conventions are also used throughout the manuals: Format Example When you are asked to invoke a HYSYS menu command, the command is identified by bold lettering. File-Save indicates opening the File menu and choosing the Save command. When you are asked to select a HYSYS button, the button is identified by bold, italicized lettering. Cancel identifies the Cancel button on a particular view. 1-5 1-6 Use of the Manuals Note that blank spaces are acceptable in the names of streams and unit operations. Format Example When you are asked to select a key or keys to perform a certain function, keyboard commands are identified by words in bold and small capitals (small caps). "Select the F1 key." The name of a HYSYS View (or window) is indicated by bold lettering. Session Preferences The name of a Group within a view is identified by bold lettering. Initial Build Home View. The name of Radio Buttons and Check Boxes are identified by bold lettering. Ignored Material and energy stream names are identified by bold lettering. Column Feed, CondenserDuty Unit operation names are identified by bold lettering. Inlet Separator, Atmospheric Tower HYSYS unit operation types are identified by bold, uppercase lettering. HEAT EXCHANGER, SEPARATOR, When you are asked to provide keyboard input, it will be indicated by bold lettering. "Type 100 for the stream temperature." Bullets and Numbering Bulleted and numbered lists will be used extensively throughout the manuals. Numbered lists are used to break down a procedure into steps, for example: 1. Select the Name cell. 2. Type a name for the operation. 3. Press ENTER to accept the name. Bulleted lists are used to identify alternative steps within a procedure, or for simply listing like objects. A sample procedure that utilizes bullets is: 1. Move to the Name cell by doing one of the following: • Select the Name cell • Press ALT N 2. Type a name for the operation. • Press ENTER to accept the name. Notice the two alternatives for completing Step 1 are indented to indicate their sequence in the overall procedure. 1-6 Introducing HYSYS.RTO 1-7 A bulleted list of like objects might describe the various groups on a particular view. For example, the Options page of the Simulation tab on the Session Preferences view has three groups, namely: • General Options • Errors • Column Options Callouts A callout is a label and arrow that describes or identifies an object. An example callout describing a graphic is shown below: Figure 1.1 HYSYS Icon Annotations Annotation text appears in the outside page margin. Text appearing in the outside margin of the page supplies you with additional or summary information about the adjacent graphic or paragraph. An example is shown to the left. Shaded Text Boxes A shaded text box provides you with important information regarding HYSYS' behaviour, or general messages applying to the manual. Examples include: The resultant temperature of the mixed streams may be quite different than those of the feed streams, due to mixing effects. Before proceeding, you should have read the introductory section which precedes the example problems in this manual. The use of many of these conventions will become more apparent as you progress through the manuals. 1-7 1-8 Technical Support 1.3 Technical Support There are several ways in which you can contact Technical Support. If you cannot find the answer to your question in the manuals, we encourage you to visit our Website at www.software.aeat.com, where a variety of information is available to you, including: • • • • • answers to frequently asked questions example cases and product information technical papers news bulletins hyperlink to support email. You can also access Support directly via email. A listing of Technical Support Centres including the Support email address is at the end of this chapter. When contacting us via email, please include in your message: • Your full name, company, phone and fax numbers. • The version of HYSYS you are using (shown in the Help, About HYSYS view). • The serial number of your HYSYS security key. • A detailed description of the problem (attach a simulation case if possible). We also have toll free lines that you may use. When you call, please have the same information available. 1-8 Introducing HYSYS.RTO 1-9 Technical Support Centres Calgary, Canada AEA Technology Engineering Software support@software.aeat.com (email) Hyprotech Ltd. (403) 520-6181 (local - technical support) Suite 800, 707 - 8th Avenue SW 1-888-757-7836 (toll free - technical support) Calgary, Alberta (403) 520-6601 (fax - technical support) T2P 1H5 1-800-661-8696 (information & sales) Barcelona, Spain (Rest of Europe) AEA Technology Engineering Software support@software.aeat.com (email) Hyprotech Europe S.L. +34 93 215 68 84 (technical support) Pg. de Gràcia 56, 4th floor 900 161 900 (toll free - technical support - Spain only) E-08007 Barcelona, Spain +34 93 215 42 56 (fax - technical support) +34 93 215 68 84 (information & sales) Oxford, UK (UK clients only) AEA Technology Engineering Software support@software.aeat.com (email) Hyprotech 0800 7317643 (freephone technical support) 404 Harwell, Didcot +44 1235 434351 (fax - technical support) Oxfordshire, OX11 0RA +44 1235 435555 (information & United Kingdom sales) Kuala Lumpur, Malaysia AEA Technology Engineering Software Hyprotech Ltd., Malaysia Lot E-3-3a, Dataran Palma support@software.aeat.com (email) Jalan Selaman ½, Jalan Ampang +60 3 470 3880 (technical support) 68000 Ampang, Selangor +60 3 471 3811 (fax - technical support) Malaysia +60 3 470 3880 (information & sales) Yokohama, Japan AEA Technology Engineering Software AEA Hyprotech KK Plus Taria Bldg. 6F. 3-1-4, Shin-Yokohama Kohoku-ku support@software.aeat.com (email) Yokohama, Japan 81 45 476 5051 (technical support) 222-0033 81 45 476 5051 (information & sales) 1-9 1-10 Technical Support Offices Calgary, Canada Yokohama, Japan Tel: (403) 520-6000 Tel: 81 45 476 5051 Fax: (403) 520-6040/60 Fax: 81 45 476 3055 Toll Free: 1-800-661-8696 1-10 Newark, DE, USA Houston, TX, USA Tel: (302) 369-0773 Tel: (713) 339-9600 Fax: (302) 369-0877 Fax: (713) 339-9601 Toll Free: 1-800-688-3430 Toll Free: 1-800-475-0011 Oxford, UK Barcelona, Spain Tel: +44 1235 435555 Tel: +34 93 215 68 84 Fax: +44 1235 434294 Fax: +34 93 215 42 56 Oudenaarde, Belgium Düsseldorf, Germany Tel: +32 55 310 299 Tel: +49 211 577933 0 Fax: +32 55 302 030 Fax: +49 211 577933 11 Hovik, Norway Cairo, Egypt Tel: +47 67 10 6464 Tel: +20 2 702 0824 Fax: +47 67 10 6465 Fax: +20 2 702 0289 Kuala Lumpur, Malaysia Seoul, Korea Tel: +60 3 470 3880 Tel: 82 2 3453 3144 5 Fax: +60 3 470 3811 Fax: 82 2 3453 9772 Installing HYSYS.RTO 2-1 2 Installing HYSYS.RTO 2.1 Basic Requirements..................................................................................... 3 2.2 Installing HYSYS.RTO .................................................................................. 4 2-1 2-2 2-2 Installing HYSYS.RTO 2.1 2-3 Basic Requirements The following system requirements will ensure satisfactory performance by HYSYS.RTO on reasonably sized simulation cases. System Component Microprocessor Operating System Physical Memory Total Memory Requirement Pentium or better Version available for DEC Alpha Microsoft Windows NT or Windows 95/98 Windows NT - 32 MB of RAM Windows 95/98 - 24 MB Windows NT -RAM+Virtual Memory Windows 95/98 > 64 MB > 48 MB Disk Space Approximately 70 MB of free disk space is required. Serial Port The green security key used with the "standalone" version of HYSYS.RTO can only be attached to a serial communications port of the computer running the application (do not plug in a serial mouse behind the security key). Parallel Port The grey security key used with the "network" version of HYSYS.RTO must be attached to the parallel communications port of a computer on the network. Monitor/Video Minimum usable: SVGA (800x600). Recommended: SVGA (1024x768). Keyboard Enhanced (101 key) keyboard. Mouse Required. Note that a mouse cannot be plugged into the back of the green serial port key used with the "standalone" version of HYSYS.RTO. 2-3 2-4 Installing HYSYS.RTO 2.2 Installing HYSYS.RTO The HYSYS.Process installation program will install all necessary files related to the RTO optimization and data reconciliation routines. Please follow the installation procedure outlined in the HYSYS.Process Get Started manual under Section 2.2 - Installing HYSYS. 2-4 Using HYSYS.RTO 3-1 3 Using HYSYS.RTO 3.1 Role of the SubFlowsheet ........................................................................... 3 3.1.1 Simultaneous Modular Optimization ........................................................ 3 3.1.3 Implementation in HYSYS.RTO ............................................................... 4 3.1.4 Overview .................................................................................................. 4 3.2 Optimization Objects ................................................................................... 4 3.3 Collection Utilities ........................................................................................ 5 3.4 Optimizer Interface....................................................................................... 6 3.5 Data Reconciliation/Parameter Estimation Problem................................. 6 3.5.1 General Procedure................................................................................... 6 3.6 Optimization Problem .................................................................................. 7 3.6.1 General Procedure................................................................................... 7 3.6.2 Flowsheet Tearing .................................................................................... 7 3.7 Creating a Collection Utility ........................................................................ 7 3.7.1 Derivative Utility ..................................................................................... 10 3.7.2 Optimization Objects .............................................................................. 14 3.7.3 Optimization Object Installation.............................................................. 14 3-1 3-2 3-2 Using HYSYS.RTO 3.1 3-3 Role of the SubFlowsheet In the standard HYSYS modeling environment, the SubFlowsheet provides a number of capabilities. It allows you to provide a logical grouping of operations to facilitate understanding of the process behaviour. In addition, it provides the mechanism to encapsulate a solver (i.e., the Column SubFlowsheet) or to use different fluid packages (thermodynamics, component slates, etc.) within a simulation. For optimization, the sub-flowsheet provides the same benefits plus a number of additional capabilities for the simultaneous modular approach. Foremost, it provides a location where the standard propagation of information can be broken. Once a model has been torn for optimization, information will not propagate from one SubFlowsheet to another. This limits calculations to only those which are needed at a point in time. Similarly, by choosing the structure of the SubFlowsheets appropriately, unnecessary equations are never posed to the optimizer. In addition, if derivatives are being generated numerically, the potential for noise in the generated derivatives is minimized by constructing suitably sized SubFlowsheets. For operations which can deliver analytical derivatives, these must be encapsulated within a single sub-flowsheet. For example, HYSYS columns which are being solved by the Newton solver will be able to deliver the Jacobian matrix to the optimizer directly. Extension unit operations, which deliver analytical derivatives will be handled in the same manner. 3.1.1 Simultaneous Modular Optimization Simultaneous Modular Optimization (SMO) is a hybrid between Sequential Modular and Open Equation forms of optimization. It utilizes modular solvers to solve the unit operations themselves, and the Optimizer solver to solve both the Optimization and connection equation problems. 3-3 3-4 Optimization Objects 3.1.2 Implementation in HYSYS.RTO In HYSYS.RTO, the SMO has been facilitated by the development of Optimization Objects (which provide a generic interface to flowsheet variables), configuration utilities (Data Reconciliation and Derivative) and flowsheet tearing. The act of tearing the flowsheet blocks the propagation of information across the torn location, creating a set of connections equations which are exposed to the Optimizer for solution as part of the optimization problem. 3.1.3 Overview For the HYSYS user, the key pieces to configuring an optimization or data reconciliation problem are: • Optimization Objects - a generic set of objects which are used to identify the underlying flowsheet variable, and provide the necessary configuration information for use by Optim or Estim • Collection Utilities - utilities which are used to identify the "pieces" of the flowsheet which are to be exposed to Optim or Estim • Optim and Estim parameters, tolerances and flags Note that the mechanics for creating either a Data Reconciliation or Optimization problem are essentially identical. The only differences are the optimization object types which will be utilized, the Optim or Estim properties, tolerances and flags to be configured, and some procedures which are specific to the type of problem being solved. 3.2 Optimization Objects Optimization objects are the mechanism of identifying the flowsheet variables which are to be considered as part of the problem. The optimization and data reconciliation routines have the ability to set and retrieve flowsheet values as well as the necessary configuration parameters via the optimization object. While there are a number of different optimization object types, they all serve the same basic function. 3-4 Using HYSYS.RTO 3-5 The primary differences between the optimization objects are the properties they contain, and how Optim or Estim treats them. For flowsheet optimization, there are: • Optimization Variable - these are the decision variables for the optimization. These must be specified (blue) variables. • Constraints - these are the true process constraints, bounded variables These are instantiated by you. These must be calculated (black) variables. • Objective Function Variables - a variable which is part of the overall objective function. Each variable has its own defining equation, the results of which are combined into a single flowsheet objective function. These must be calculated (black) variables. For Data Reconciliation and Parameter Estimation, there are: • DCS Tags - variables for which you have a set of measurements, which are to be used to calculate offsets in the measurements, and update fitting parameters. These can be either specified or calculated variables. • Fitting Parameters - variables whose value is to be directly adjusted to match the supplied data. These must be specified (blue) variables. There is a third type of Optimization Object used for Data Reconciliation called a DRU Stream (Data Reconciliation Utility Stream). This is essentially a data holder, i.e., it allows for multiple sets of stream data, each corresponding to a different data set, to be supplied by you. These values are taken as supplied, no offsetting is calculated for these streams. 3.3 Collection Utilities Derivative and Data Reconciliation Utility There are two utilities which are used by HYSYS.RTO to provide the primary interface between the flowsheet model and the solver. These are the Data Reconciliation Utility and the Derivative Utility. Their primary purpose is to collect appropriate optimization objects which are then exposed to the solvers. These utilities are first "attached" with unit operation(s) within the flowsheet model. Then, based on the types of optimization objects that utility type is interested in, it collects those objects of the correct types which are themselves attached to variables which are related to the targeted unit operations and their corresponding streams. 3-5 3-6 Optimizer Interface It is the corresponding lists of "variables" and "constraints" that are exposed to Optim. 3.4 Optimizer Interface The Optimizer interface in HYSYS provides the collection points for the utilities within the flowsheet. Depending on the mode, the Optimizer invokes either Estim (Data Reconciliation and Parameter Fitting) or Optim (Optimization) and provides the necessary interfaces back into the process model. 3.5 Data Reconciliation/ Parameter Estimation Problem 3.5.1 General Procedure 1. Build the flowsheet. 2. Install a Data Reconciliation utility. 3. Select the unit operations from the flowsheet which are associated with the variables to be fit, or for which you have measured data for. The streams that are attached to the unit operations are automatically obtained at the same time. 4. Install Fitting Parameters from the Utility and attach them to the appropriate flowsheet variables to be fit. 5. Supply appropriate values for the Fitting Parameters. 6. Install DCS Tags and attach them to flowsheet variables for which you have measured data. 7. Supply required values for the Tags. 8. Supply the measured data. 9. If necessary, turn on the multiple data set option for attached streams, and supply corresponding data. 10. Set the appropriate Estim properties, tolerances and flags. 11. Invoke the HYSYS Optimizer F5 and turn on Data Reconciliation mode. 12. Identify the utility which contains unit operations and streams to be reconciled. 13. Start the data reconciliation. 3-6 Using HYSYS.RTO 3.6 3-7 Optimization Problem 3.6.1 General Procedure 1. Build the flowsheet 2. Install a Derivative utility 3. Select Flowsheet Wide for the Unit Operation 4. Install Optimization Variables from the utility and attach them to the appropriate flowsheet variables. 5. Supply appropriate values for the Optimization Variables. 6. Install Constraints and attach them to appropriate flowsheet variables. 7. Supply required values for the Constraints. 8. Install the objective function object(s) and attach them to appropriate flowsheet variables. 9. Configure the appropriate prices for the objective function objects. 10. Invoke the Optimizer F5 and select Optimization. 11. Change appropriate Optim properties, tolerances and flags. 12. Start the Optimization. 3.6.2 Flowsheet Tearing There is an additional feature available for optimization which involves Flowsheet Tearing. With this approach, specific streams in the flowsheet are "torn" with appropriate connection equations written. These additional variables and constraints are passed to the Optimizer to be solved as part of the optimization problem. Typically this approach will require multiple derivative utilities to be constructed. 3.7 Creating a Collection Utility Utilities are created from the FlowSheet Tools Menu Bar, or by using the CTRL U hot key combination. This will produce a view containing the available and installed utilities in the flowsheet. Select Derivative Utility (as shown in Figure 3.1) or Data Recon Utility, and press the Add Utility button. This will bring up the appropriate Utility property view 3-7 3-8 Creating a Collection Utility Figure 3.1 Utility Property View Both the Data Reconciliation and Derivative Utility property views contain a number of tabs, which are essentially organized around the optimization object types (variables, constraints, fitting parameters, DCS Tags, etc.). Both utilities contain a similar section at the top of the view that provides access, on every tab, to the features for unit operation attachment and optimization object creation for the problem. While optimization objects can be created from the flowsheet prior to installing a utility, it is recommended that this be done from this location. Once unit operations have been selected, optimization objects, which are created, are tested as to whether they are associated with the attached operations and streams. Immediate feedback is provided when the objects have been created as they are added directly to the lists contained within the utility, and are displayed directly on the property view. Information can either be supplied as objects are added, or at any time prior to running the solver. 3-8 Using HYSYS.RTO 3-9 Figure 3.2 The tabs of the Derivative Utility are defined as follows: Tab Description Structural Non-Zeroes Allows you to assign variable/constraint associations such that a Jacobian element is always assigned to the pair regardless of the Jacobian Tolerance. Independent Variables Access to the collection of variables (optimization Variables, Connection Equation Variables, and Solution Variables) associated with the utility Constraints/Objective Function Access to the collection of dependent variables (Constraints, Technical Constraints, Solution Constraints and Objective Function variables) associated with the utility. Derivative Analysis Access to a the numerical perturbation mechanism to allow examination of the sparsity pattern and Jacobian values, gradient and model noise which will be generated by the gradient calculations of the solution. 3-9 3-10 Creating a Collection Utility 3.7.1 Derivative Utility Figure 3.3 Configuration Group Box At the top of the Derivative Utility property view is the Derivative Utility Configureation group box, which is displayed on every tab. This provides access to: 3-10 Field Description Unit Operation Selection Select the unit operation(s) for the given utility. Add Add variables, constraints and objective function objects. Master/Run Time Toggle Switch between Master and Run Time lists for display purposes. The Master List is all variables or constraints which are attached to utility. During the set up phase of an optimization problem, each variable and constraint is evaluated for its current parameter settings. Those which do not qualify for the current problem (i.e., the Optimize Flag is false) are not included in the list of variables and constraints exposed to the Optimizer, which is the Run Time list. This button allows you to switch between lists (including while the problem is running). Using HYSYS.RTO 3-11 Unit Operation Selection. Figure 3.4 There are three modes for the derivative utility: Mode Selection Flowsheet Wide This mode is appropriate when minimal flowsheet tearing is to be employed, and no special derivative and solution mechanisms (such as extension operations) are to be utilized. In this mode, a single derivative utility is utilized for the entire flowsheet. Specific Unit Operation Typically this will be a SubFlowsheet, which will be torn on both the feeds and products. The SubFlowsheet will typically contain several unit operations which will be solved either using the HYSYS standard solver, or one of the column solvers. Extension Operation Utilized when the SubFlowsheet contains an extension operation which will be solved using the available OLE functions to allow the solver to solve the model equations as part of the optimization problem It is best to select the desired unit operation prior to installing any of the remaining optimization objects. Part of the procedure of attaching the unit operation to the utility is obtain all existing optimization objects (of the appropriate type) from the simulation case. For example, if the Specific Unit Oper radio button is selected, the view shown in Figure 3.5 will be produced. 3-11 3-12 Creating a Collection Utility Figure 3.5 Select the target unit operations from the Object column of the view. Note that SubFlowsheets (i.e., Columns), are to be selected as an Object, not as a Flowsheet. When a Unit Operation is selected, the utility will display all optimization objects currently installed in the simulation case which are associated (attached to) the unit operation(s) and their associated streams. Object and Property Filters From the perspective of Optim, there are only variables and constraints. However, to assist in the interpretation of the optimization problem, these lists are divided according to the source of the attached variable. On the corresponding tabs of the utility are radio buttons which filter the objects into these types. 3-12 Using HYSYS.RTO 3-13 Figure 3.6 For the Variables tab, the Independent Properties can be selected by sugin the following radio buttons: Variable Description Optimization Variable True decision variables. Tear Variables Variables which have been created by the tearing of a flowsheet stream Solution Variables Variables which have been created to support an extension operation which is to be solved as part of the optimization problem. Further filtering is provided to indicate which of the given object properties are: Radio Button Description Input Required user input. Output Values which are output from Optim. Results Values which are the results of the optimization problem. All Access to all properties. There are a number of internal properties (i.e., Sparse Column), which are contained inside of the optimization object, but are used as internal values for the solution. 3-13 3-14 Creating a Collection Utility All of the appropriate optimization object types are displayed on the tab in a worksheet format. In addition to the properties, the view will display the flowsheet object and variable that each optimization object is associated with. Values which can be specified are indicated in blue, while those which are calculated are displayed in black. Unit conversion is provided for each of the appropriate object property combinations. 3.7.2 Optimization Objects The Optimization object types which are used for optimization problems are: Type Description Optimization Variable These are the decision variables for the optimization. These must be specified (blue) variables. Constraints These are the true process constraints, bounded variables These are instantiated by you. These must be calculated (black) variables. Objective Function Variables A variable which is part of the overall objective function. Each variable has its own defining equation, the results of which are combined into a single flowsheet objective function. These must be calculated (black) variables. 3.7.3 Optimization Object Installation Optimization objects appropriate for the utility (in the case of the Derivative utility - Optimization Variables, Constraints and Objective Function variables) can be added directly from the view. In the upper right corner of the Derivative Utility Configuration group box is a drop down list containing these three options. By choosing the appropriate option and pressing the Add button, the selection view is displayed: 3-14 Using HYSYS.RTO 3-15 Figure 3.7 By making the selection as shown (Flowsheet, Object, Variable and Variable Specifics), the Optimization Variable is created and is added into the utilities collection: By default, the new object is given the next available name. However, you can edit the name of the object directly from the utility view by highlighting the name in the Object Name column and typing in a new string, as shown below Figure 3.8 3-15 3-16 Creating a Collection Utility Constraints and Objective Function Objects are added in a similar manner. When an object of a given type has been added, the utility will automatically be switched to the appropriate tab and filter type. Specified Versus Calculated Values Note that when you install a variable or constraint, it is essential that you examine the status of the Current Value property. Variables must display a status of Blue (specifiable), while Constraints must display a status of Black (calculated). Units and Delta Properties All communication with Optim for property values is conducted in HYSYS internal units. However, you can input your values in any unit set desired, the conversion is handled internally. There are certain properties (typically span or range type properties) which are handled differently based on the variable type they are attached to (i.e., pressure and temperature). When you input a value for these types of property/ variable combinations, the input is converted automatically to Delta; i.e., a Range for a temperature variable of 1 C will display as 1.8 F if the unit set is changed. The only location where the chosen Units set influences the problem is with respect to the Objective Function object. The default formula for an Objective Function object is variable value X price. The calculations which are performed for determining the individual contribution of that object to the overall objective function are done in display units. For example, if the objective function object is attached to a LiquidVolumeFlow variable, and the current display units are in Barrels/Day, the actual display value (1000 bbl/day) are used in determining the contribution to the objective function. You can create a new unit set (Tools/Preferences) for this purpose. Note that if you store a case and then reload it from disk, you should ensure that the correct units set is being used prior to running the optimization problem. Derivative Analysis The Derivative Analysis tab of the utility property view provides access to the Jacobian and Gradient calculation mechanism which will be used during the solution. You can examine different perturbation sizes, and single and two sided gradient calculations and see their impact on 3-16 Using HYSYS.RTO 3-17 the calculated Jacobian and gradient for the variables. Filtering is provided to allow examination of subsets of the overall variable and constraint lists. In addition, you can examine the model noise to determine if tighter solution tolerances on the individual unit operations (i.e., Columns) is necessary. Typically, a tighter solution tolerance requires more individual calculations at any phase, but improves the quality of the Jacobian being returned to Optim and reduces the time of the overall problem solution. Figure 3.9 When the calculations are complete, you can examine both the individual Jacobian elements, or the Gradient, as well as the noise of the model. While the default solution tolerances for unit operations is valid for modelling purposes, experience has shown that a tighter tolerance is more appropriate for Jacobian evaluations (where small changes are being applied to determine the direction). This is the original absolute model noise (comparison of the original value of the constraint, to the calculated value when the variable is returned to its starting value), while the screen below shows the values when a tighter tolerance is used in the calculations. 3-17 3-18 Creating a Collection Utility Figure 3.10 In addition to examining the affects of the perturbation size, gradient types, etc., on the calculated Jacobian and Gradient, you can also use the Derivative Analysis tab to determine the size of the Ranges that are best suited for the optimization problem. The size of the perturbation which applied to the variable is determined by the Range x the perturbation. The Range is different from the span (which is used by the Optimizer in the Jacobian normalization, and is calculated as the Maximum - the Minimum). Figure 3.11 If you have not supplied a value for the Range, the Span will be used in determining the size of the perturbation. The reason for providing the span is that it allows you better control over the perturbation which is being applied to the given variable, i.e., large enough to generate a sensical response, without impacting the conditioning of the optimization problem (i.e., a desired very small range to work with on the variable itself). 3-18 The Optimizer 4-1 4 The Optimizer 4.1 Optimizer Interface....................................................................................... 3 4.1.1 Calculations ........................................................................................... 20 4.1.2 Results ................................................................................................... 20 4-1 4-2 4-2 The Optimizer 4.1 4-3 Optimizer Interface While the derivative utilities are utilized for collecting and configuring the individual optimization objects for the problem, the Optimizer in turn collects all of the utilities and exposes the combined list of variables and constraints to Optim. In addition, this is the location where you set the tolerances, flags and settings for the Optimization problem in its entirety. The Optimizer is accessed by pressing the F5 key. Figure 4.1 The radio button selection provided along the bottom of the view provides access to the available options: • • • • Default - the existing HYSYS Optimizer Optimization - access to Optimization (Optim) Data Recon - access to Data Reconciliation (Estim) Model - used specifically for Real Time applications. Depending on the selection of the radio button, additional tabs are displayed on the view. A number of tabs (Testing, Properties, Transfer and Object Transfer) relate solely to the Real Time interfaces and should not be utilized. All of the necessary configuration for the Optimization Problem can be accessed through the Optim 4-3 4-4 Optimizer Interface Configuration tab. There are three pieces of the Configuration: • SetUp - identifying the optimization algorithm to be used, type of perturbations, level of diagnostics, etc. • Tolerances - access to the various solution tolerances and Optim parameters. • Flags - access to the various Optim configuration options which are Booleans. Optim Configuration Set Up Inputs (Set Up Radio Button) These inputs consist of the following Optimizer properties: Algorithm The algorithm to be used by the Optimizer, which is one of: • SS_LP - A single-shot linear programming algorithm • MDC_SLP - A sequential linear programming algorithm • MDC_SQP - A two-phase sequential quadratic programming algorithm with large-scale sparse matrix handling features • NAG_SQP - A single-phase sequential quadratic programming algorithm Suggested Default: MDC_SQP LP Options Used to select the options to be used with the SS_LP algorithm. This selection is one of: • None • Initialise - A single run of the linear programming algorithm is conducted, and the Objective Value property of the Optimizer is reset to 0.0. • Intercepts - This option causes the Optimizer Fix Variable Spans flag to be switched on prior to carrying out the SS_LP optimization. • Gradients - This option causes the Optimizer constraint and objective function gradients to be re-evaluated prior to carrying out the SS_LP optimization. Otherwise, the gradients used during the SS_LP optimization will be those found at the previous point. 4-4 The Optimizer 4-5 Note that the SS_LP algorithm is not included in the current version. Gradient Calculations An option which specifies whether one-sided or two-sided gradient calculations are used: • 1-sided - This option causes forward differences to be used when constructing gradient approximations. • 2-sided - This option causes central differences to be used. This option requires twice as many function evaluations at a given solution, but may provide a more accurate estimate of the constraint and objective gradients, particularly for highly non-linear problems, or problems featuring large amounts of noise. In both cases, the perturbation size used for the Optimizer internal variables is given by the Optimizer Perturbation property. Suggested Default: 1-sided Diagnostic Print Level None - No Optimizer diagnostic file is produced. Partial_1, Partial_2, or Partial_3 - Increasing levels of Optimizer output in the diagnostic file. Full - The maximum amount of useful information in the Optimizer diagnostic file. Excessive - This should be used only for debugging the Optimizer. Suggested Default: Partial_2 Max. Iterations A parameter which fulfils two roles: • When Algorithm is set to MDC_SQP / MDC_SLP, this parameter gives the maximum number of Optimizer iterations allowed to improve an already feasible solution. • When Algorithm is set to NAG_SQP, this parameter gives the maximum number of major iterations. A major iteration in this case consists of a sequence of minor iterations which minimise a linearly constrained subproblem. Suggested Default: 50 4-5 4-6 Optimizer Interface Max. Feasible Point This parameter also fulfils two roles: • When Algorithm is set to MDC_SQP / MDC_SLP, this parameter gives the maximum number of Optimizer iterations allowed to find the first feasible solution. • When Algorithm is set to NAG_SQP, this parameter gives the maximum number of minor iterations. A minor iteration in this case represents a sequence of local improvements to the linearized problem within a major iteration. Suggested Default: 20 Max. Constraint Relaxations This parameter is related to the Relax Violated Constraints flag. This flag is used to drive the Optimizer constraint bounds to their extreme values allowed by the Optimizer tolerances. This is occasionally done in order to help the feasible point search part of the MDC_SQP algorithm find the first feasible solution. The Max. Constraint Relaxations parameter gives a limit on the number of times this is allowed to occur. Suggested Default: 0 Max. Hessian Resets The MDC_SQP algorithm operates using an approximation to the matrix of second derivatives of the objective function. On some problems, it is necessary to reset this approximation to the diagonal matrix arising from the FPS Hessian Diagonal parameter (during the FPS search) or to the diagonal matrix arising from the OPT Hessian Diagonal parameter (during the OPT search). The Max. Hessian Resets parameter gives a limit on the number of times this can be done. This is useful if the algorithm is suffering from step convergence; it is not used when the algorithm converges according to any other criteria. Suggested Default: 0 4-6 The Optimizer 4-7 Verify In the NAG_SQP algorithm, it is possible to carry out numerical checking on gradient elements. Setting Verify to -1 switches off this checking. The extent of the numerical checking conducted by the NAG_SQP algorithm depends on the setting for Verify. A value of 0 results in a check on the gradients at the first feasible point. A value of 1 results in a check of the Optimizer objective gradients. A value of 2 results in a check on the Optimizer constraint gradients. A value of 3 checks both types of gradient. The checking takes place at the start of the optimization. Suggested Default: -1 DV_Level Used to specify which gradients should be estimated by the NAG_SQP algorithm. When DV_Level is set to 3, no action is taken. When set to 2, missing objective gradients are estimated. When set to 1, missing constraint gradients are estimated. When set to 0, both are estimated. This parameter is only to be used for debugging the Optimizer. Suggested Default: 3 Objective Value This displays the current plant model objective function value as calculated by the Optimizer. Termination Reason An output from the optimization run, which is one of: • OK - used by the FPS to indicate a feasible termination of this phase. • Impossible - This output signifies either a non-implemented Optimizer algorithm has been selected, or the algorithms could not find a solution to the linearized problem. In this case the problem constraint/variable bounds and feasibility tolerance parameters should be checked. • No variables - The number of variables in the problem is zero. 4-7 4-8 Optimizer Interface • Step convergence - During the Optimizer OPT phase of MDC_SQP, the stepping back procedure has resulted in a step collapse to below the Step solution tolerance. • Cost convergence - During the Optimizer OPT phase of MDC_SQP, two successive objective function values have returned a difference in cost less than the Cost solution tolerance. Note that only feasible points are considered for this test. • Flat - A special case of cost convergence in which the objective function gradient is zero. Usually indicates an incorrectly defined (or scaled) objective function. • Gradient convergence - Occurs when the gradient of the Lagrangian function for the given optimization problem is less than the Gradient solution tolerance. • Globally infeasible - This occurs when the feasible region cannot be seen from the FPS starting point (i.e., even the linearization of the problem does not yield a feasible solution). • The MDC_SQP Optimizer expands the variable local bounds (the Minimum and Maximum properties of the variables) out to the global bounds (the Global Minimum and Global Maximum properties of the variables) in order to attempt to solve the linearized problem with these bounds. If this still yields no solution, the FPS phase conducts a sequence of steps aimed at minimising the constraint violations. • An objective function is constructed which contains the sum of the constraint violations, and this function is minimised, producing a feasible solution to the problem (if one exists). • Infeasible - In the FPS phase of the optimization, if a step collapse takes place whilst looking for a feasible point, then the problem is considered to be infeasible due to this. This is not the same as Globally infeasible. • Unbounded - This occurs when the objective function is unbounded below (or is badly scaled), i.e., can be reduced without limit. This usually indicates incorrectly set constraint and/or variable bounds. • Time out (feasible) - This report is generated by the OPT phase of the MDC_SQP Optimizer, when the number of Optimizer iterations during the OPT phase exceeds the Optimizer Max. Iterations parameter. • Time out (infeasible) - This report is similar to the Time out (feasible) report, except occurs during the FPS phase, when the number of iterations exceeds the Max. Feasible Point parameter. • Not converged - A report solely from the NAG_SQP algorithm. • Not run - Set during the Optimizer initialisation phase. This is reported in the Optimizer screen while the Optimizer is initialising. • Stopped - Occurs when the you stop the Optimizer using the control box on the Optimizer screen (beside the spreadsheet button). 4-8 The Optimizer 4-9 Actual Optimizer This is output from the Optimizer. It gives the number of iterations the Optimizer has conducted after finding the first feasible solution, when the MDC_SQP/SLP algorithms are used. When the NAG_SQP algorithm is used, this returns the number of major iterations used. Feasible Point Iterations This is output from the Optimizer. It gives the number of iterations the Optimizer has conducted in order to find the first feasible solution, again when the MDC_SQP/SLP algorithms are used. When NAG_SQP is used, this returns the number of minor iterations from the last major iteration (in this case the usefulness of this parameter is limited). Solution Phase This is output from the Optimizer. It describes the current phase of the Optimizer search, which is one of: • Initialise - A report that the Optimizer is initialising the diagnostics file, and preparing to carry out the FPS search. • Results - Reported when the Optimizer is writing the final solution to the diagnostics file and completing any postoptimization calculations. • Setup - The Optimizer variables and constraints are being inspected and set-up internally by the Optimizer using the usersupplied data. • FPS - The beginning of the FPS phase of the Optimizer. • FPS Deriv - The Optimizer is calculating the gradients of the constraints and objective function during the FPS phase. This occurs every time the Optimizer adjusts the current solution to improve the feasibility of the current point. • FPS Visible - The Optimizer has successfully solved the linearized problem during the FPS phase. • FPS Invisible - The linearized problem at the current solution in the FPS phase cannot be solved. • FPS Shrink - The Optimizer is stepping back during the FPS phase. This occurs when the projected point in the FPS is less feasible than the current point, and so the projected point is adjusted. • Optim - The Optimizer is preparing to enter the FPS phase. • OPT Deriv - The Optimizer is calculating the constraint and objective function gradients during the OPT phase. 4-9 4-10 Optimizer Interface • OPT Search - The Optimizer has successfully found a new, improved solution which remains feasible, and has moved the current solution to this point. • OPT Shrink - The Optimizer is stepping back in the OPT phase. This occurs if either the projected solution is infeasible, or the objective function has increased. Gradient Evaluations This reports the number of gradient (constraint and objective function) evaluations during the course of the optimization. At present, this gives the correct number only when the Numerical Gradients flag is checked. Model Evaluations This reports the number of plant model evaluations during the course of the optimization. At present, this gives the correct number only when the Numerical Gradients flag is checked. Code Version The current version of the Optimizer. Total CPU Time This reports the total time taken during both phases of the Optimization, in minutes and seconds. Start Objective This gives the plant model cost function value at the starting point, before carrying out any optimization. The value is scaled using the Optimizer Objective Scale Factor property. Optim Configuration Tolerance Inputs (Tolerance Radio Button) This section contains the tolerances to be used for generating approximations to the objective and constraint functions, controlling the path taken to Optimizer feasible/optimal solutions, and for determining whether an optimum point has been reached: 4-10 The Optimizer 4-11 Sigma This tolerance is not currently used. Linesearch Tolerance This is used by the NAG_SQP algorithm to control the accuracy of the linesearch phase. Suggested Default: 0.8 Function Precision Gives the precision to which functions are to be evaluated by the NAG_SQP algorithm. Used when constructing default Optimizer control parameters. Suggested Default: 10-8 Optimality Tolerance Gives the accuracy with which the linearized problem is solved by the MDC_SQP algorithm. This parameter is a tolerance below which any changes to the cost function of the linearized problem are considered to have caused cost convergence when solving the linearized problem. Suggested Default: 10-8 Row Tolerance A tolerance used with the NAG_SQP algorithm which gives the feasibility tolerance within which linear constraints are to be satisfied. If a linear constraint violates a bound by a value not greater than the Row Tolerance (in absolute terms) the constraint is considered to be feasible by NAG_SQP. In the current version of the Optimizer all constraints are considered to be non-linear, and so this property is not used. Nonlinear Row Tolerance. As for Row Tolerance, except this applies to constraints defined as nonlinear. Suggested Default: 10-8 4-11 4-12 Optimizer Interface Step The step convergence limit used in the MDC_SQP algorithm. If the algorithm at any point makes a step which is less than the Step tolerance, the algorithm is considered to have converged on step. Suggested Default: 10-2 Gradient The tolerance which is the maximum value of the Lagrangian function gradient for which the MDC_SQP algorithm is considered to have converged on Lagrangian gradient. A value of 0.0 forces convergence of either the Step or Cost kind. Suggested Default: 0.0 Cost This is the maximum magnitude of change in scaled objective function between Optimizer steps for which the Optimizer is considered to have converged on cost. Suggested Default: 10-4 Zeta The tolerance which is used in conjunction with the constraint Scale properties to define the feasibility tolerance for constraints in the MDC_SQP algorithm. The feasibility tolerance for an individual constraint is Zeta * Scale, for the given constraint. A value of 1.0 means that the feasibility of the individual constraints is controlled uniquely through the individual constraint Scale property. Suggested Default: 1.0 Bind A tolerance used with the NAG_SQP algorithm and in the solution of the linearized problem in the MDC_SQP algorithm. This tolerance gives a value which is the maximum absolute difference between a constraint and one of its bounds below which the constraint is considered to be binding (active) in the linearized problem. 4-12 The Optimizer 4-13 In general, the solution of the linearized problem satisfies the constraint Minimum and Maximum property bounds, whereas the solution of the true non-linear problem satisfies the bounds ( Minimum - Zeta * Scale, Maximum + Zeta * Scale ) for the given constraint. In this way, by enforcing tighter bounds in the linearization, there is a greater likelihood of the problem remaining feasible when the non-linearities are re-introduced. Suggested Default: 10-8 Perturbation The change in the scaled variables during gradient evaluation. An individual variable in the Optimizer is scaled according to the variable Minimum property, and the variable Span property (or the Range property if the Optimizer Fix Variable Spans property is checked). In general, the Optimizer scales the problem variables v to produce a set of internal scaled variables x, according to the formula. v j – min x j = ------------------S Where min is the variable Minimum property, and S is the variable Range property if the Optimizer Fix Variable Spans flag property is checked (the variable Span property otherwise). This allows equal magnitude gradients to be produced for all internal variables x, regardless of the magnitude of the external (model) variables v, by suitable choice of the variable Range properties. The perturbation which is applied to the external variables v is therefore S @ , where@ is the Optimizer Perturbation property. Suggested Default: 10-3 Max. Iteration Step Calculated by the Optimizer, this gives the current maximum step under consideration for projecting the current point to the new point. The size of this parameter is based on the current history of the optimization run. 4-13 4-14 Optimizer Interface Base Search Step The upper limit for Max. Iteration Step. When the Optimizer finds a sequence of good linear approximations to the constraints and simultaneously improves the objective function, the Max. Iteration Step can be reset to the Base Search Step. Suggested Default: 2.0 Max. Allowed Move This parameter gives the maximum allowable change in a scaled (internal Optimizer) variable over the entire course of an optimization run. A value of 1.0 indicates a 100% change in the variable. Suggested Default: 2.0 FPS Hessian Diagonal These give the starting values of the diagonal elements of the approximated Hessian matrices before the FPS phase of the Optimizer, of the MDC SQP algorithm. Suggested Default: 1.0 OPT Hessian Diagonal These give the starting values of the diagonal elements of the approximated Hessian matrices before the FPS and OPT phases of the Optimizer respectively, of the MDC SQP algorithm. Suggested Default: 0.1 Jacobian Elimination The value below which entries in the Jacobian matrix are deemed to be pure model noise, and are set to zero (or when the Optimizer Sparse Jacobian flag is checked, are excluded from the Jacobian sparsity pattern and hence never re-evaluated in future). Suggested Default: 10-12 4-14 The Optimizer 4-15 Max. CPU Usage This parameter is not currently used. Objective Scale Factor This is used for scaling the objective function (and its gradient). The given function is divided by the Objective Scale Factor. Suggested Default: 1.0 Major Damping Parameter Used in the NAG_SQP algorithm to restrict the effects of major iteration variable moves of the scaled variables and the Lagrange multipliers. A value of 2.0 restricts the variable move to 200%. Suggested Default: 2.0 Minor Damping Parameter Used in NAG_SQP to restrict the effects of minor iteration variable moves. As Major Damping Parameter. Suggested Default: 2.0 Penalty Parameter This is used solely in the NAG_SQP algorithm. It is used for forcing convergence of the linearized constraints solved in each NAG_SQP minor iteration to their non-linear versions which are actually evaluated in the major iterations. The larger the Penalty Parameter the slower the algorithm converges upon a feasible solution, however, this may be necessary for highly non-linear constraints. Suggested Default: 1.0 Scaling Type The scaling algorithm to be used by the NAG_SQP algorithm. When set to 0, no scaling is done. Otherwise the NAG_SQP algorithm attempts to scale the Jacobian matrix in order to make the matrix coefficients as close to 1 as possible. To scale the rows only, the parameter should be set to 1. To scale the rows and columns, the parameter should be set to 2. Suggested Default: 0.0 4-15 4-16 Optimizer Interface Flow Field / Gradient Evaluation Not used. Optim Configuration Flag Inputs (Flag Radio Button) This section contains the Optimizer properties used for controlling the nature of the Optimizer search, for specify methods for handling the constraints, for initialising and terminating the Optimizer, and for specifying the nature of the gradient calculations, amongst other things. Omit Tech. Constraints Indicates whether the technical constraints (specifications) are to be omitted entirely from the constraint residuals when searching for a feasible point. Technical constraints are those which are used in order to obtain a valid model solution, e.g. pressure drop or mass balance residuals. Process constraints are those which relate to the actual process being modelled, e.g. vessel pressure or unit throughput limits. Suggested Default: unchecked Relax Violated Constraints If the MDC_SQP algorithm cannot find a feasible point, one method of proceeding is to relax the constraints. This property is therefore a flag indicating whether all of the constraints (unchecked) or only those which are currently violated (checked) are to be relaxed, during constraint relaxation. The maximum number of relaxation steps is given by the Max. Constraint Relaxations parameter. Relaxing the violated constraints within the context of the MDC_SQP algorithm means that the constraint bounds in the linearized problem (usually set to the constraint Minimum and Maximum properties) are expanded out to the bounds ( Minimum - Zeta * Scale, Maximum + Zeta * Scale ) for the given constraint. Thus, under normal circumstances the linearized problem is solved to a much higher tolerance level than the true non-linear problem (which thus improves the chances of the current solution remaining feasible upon introducing the non-linearities back into the problem). However, when the Optimizer relaxes the violated constraints both problems are 4-16 The Optimizer 4-17 solved to the same tolerance (the capacity of the solution of the linearized problem to satisfy the non-linearities is therefore much reduced). Suggested Default: unchecked Recentre This is checked for testing purposes, in which case the Optimizer reflects the effects created by an on-line Optimizer. The Optimizer variable soft limits (the Minimum and Maximum properties) are recalculated so that at the start of optimization, the current value of the variable lies mid-way between the soft limits, while ensuring that the soft limits do not fall out of range of the global limits. Suggested Default: unchecked Restricted Step Used to indicate to MDC_SQP that the Max. Allowed Move parameter is to be used to limit the overall change in the Optimizer variables brought about during optimization. When this flag is checked, the optimization algorithm reduces the upper bound of each optimization variable by the Max. Allowed Move parameter, and increases the lower bound by the same amount. Suggested Default: unchecked Include Fixed Constraints If this is checked then Optimizer variables which have their Optimize Flag property checked are nevertheless included in the optimization. This acts on every variable, and its Optimize flag property is checked. Otherwise, such variables remain with fixed values during the optimization. Suggested Default: unchecked NAG Calculated Gradients If this flag is checked when the NAG_SQP algorithm is being used, then the NAG_SQP algorithm itself will carry out numerical calculation of any gradient elements needed. Suggested Default: unchecked 4-17 4-18 Optimizer Interface Fix Variable Spans This flag indicates whether the Span (i.e. Maximum - Minimum) of the Optimizer variables is to be calculated and stored, or taken directly from the stream Range property (which is user-specified for each variable). Suggested Default: unchecked Sparse Jacobian Checked when the user wishes the Optimizer to calculate the Jacobian matrix of constraint gradients in sparse form (by storing only the nonzero elements, which usually indicate constraint-variable functional dependence). This is done once, at the start of the optimization, and establishes which Jacobian elements will be stored for the rest of the optimization (the sparsity pattern). Suggested Default: unchecked Numerical Gradients Used to indicate to the Optimizer the origin of the gradient elements for the constraints and objective function. • If the flag is checked, the Optimizer carries out numerical calculation of the gradients by direct perturbation of variables using the method specified in the Gradient Calculation flag. • If it is unchecked, the Optimizer obtains the gradient elements from HYSYS.RTO using the same method. The main difference is that in the latter case certain gradient elements may be computed analytically, and are therefore potentially more accurate. Suggested Default: unchecked Include Scales Whether the constraint Scale properties are to be included when normalising the Jacobian matrix of constraint gradients and calculating the bounds for the linearized subproblems in the MDC_SQP algorithm. Suggested Default: unchecked 4-18 The Optimizer 4-19 Adjust Scaling Not used. Pert_Reset Used at the start of the optimization to indicate that the gradient calculation process removes noise elements (checked) or not (unchecked). When calculating the gradient functions by perturbing Optimizer variables, model noise is introduced into the gradient elements, which can mislead the Optimizer. When perturbing variable vj, , if it does not affect constraint ci, the corresponding noise can be removed from the gradients by recalculating the constraint functions after removing the perturbation from the variable. This recalculation is done only once for each variable, (i.e., for the first gradient calculation) which is used for establishing the sparsity pattern of the Jacobian matrix. The sparsity pattern is stored for use during the rest of the optimization, if the Sparse Jacobian property flag of the Optimizer is checked. The advantages of this method are: it removes noise terms which can mislead the Optimizer; it does not need the Jacobian Elimination tolerance parameter, which may be difficult to set; it is required once only; the efficient sparse storage of the Jacobian eliminates this kind of noise from all future Optimizer steps. The disadvantages are that for certain models it may take much more CPU time to carry out the extra plant model evaluations, compared with the use of the Jacobian Elimination tolerance method; and the presence of structural zeros in the Jacobian matrix are ignored. A structural zero is a forced presence of a Jacobian element, which, during first pass evaluation of the Jacobian, is zero and therefore could be excluded from the sparsity pattern. Ideally, this flag should be checked along with the Sparse Jacobian flag, since this then takes full advantage of the removal of model noise in terms of future computation of gradients, and their storage. However, it is still possible to use this method with a dense Jacobian matrix (where all zero elements are retained during optimization). Suggested Default: unchecked If empty or invalid values are entered, the Optimizer uses a set of inbuilt default values. 4-19 4-20 Optimizer Interface 4.1.1 Calculations The Optimizer controls the running of the continuous optimization algorithms. A description of the techniques used is given in the Continuous Optimizer Overview. 4.1.2 Results The results produced at the end of the optimization run are: • • • • • A price for the current model data Values of the Optimizer constraints and variables Shadow prices for the constraints and variables, if they exist A termination reason A feasibility flag for the model data at termination of the Optimizer • Iterations taken. • CPU time taken 4-20 The Derivative Utility 5-1 5 The Derivative Utility 5.1 HYSYS.RTO Variables - Properties ............................................................. 3 5.1.1 5.1.2 5.1.3 5.1.4 Inputs: Object Object Name - Range ....................................................... 4 Inputs: Global Minimum - Price ................................................................ 6 Inputs: Sparse Column - Jac Num ........................................................... 7 Calculations ............................................................................................. 8 5.2 HYSYS.RTO Constraints - Properties......................................................... 9 5.2.1 5.2.2 5.2.3 5.2.4 Inputs: Object Name - Maximum............................................................ 10 Inputs: Scale - Sparse Row.................................................................... 11 Inputs: Current - Bias1 ........................................................................... 13 Calculations ........................................................................................... 14 5-1 5-2 5-2 The Derivative Utility 5.1 5-3 HYSYS.RTO Variables - Properties Figure 5.1 The Variables in a HYSYS.RTO optimization problem are held in a Derivative Utility. This is used for holding all of the data used for defining the HYSYS.RTO Optimizer constraints and variables. For detailed information on the Optimizer properties, see the Optimizer Properties document[3]. • The Optimizer contains a number of properties used for specifying and controlling an optimization problem for a given HYSYS.RTO case. • The Optimizer is associated with a Derivative Utility which contains, amongst other things, a list of Independent Properties and Dependent Properties. The Independent Properties are the variables in the plant model which are changed in order to satisfy the Dependent Properties (the constraints on the plant model) simultaneously minimising the plant model cost function. 5-3 5-4 HYSYS.RTO Variables - Properties This document has the following styles: • All properties of the Optimizer/Variables/Constraints are shown in italic. • Important notes are shown in bold. 5.1.1 Inputs: Object Object Name Range Figure 5.2 The Independent Properties have a number of inputs: • Object Name - The name of the HYSYS.RTO object which is used as optimiser variable. • Attached Object - The object (e.g. Stream or Unit Op, etc.) that is attached or associated with the listed variable. • Attached Property - The property relating to the Attached Object and variable. • Start Value - The starting value for the property of the Object Name in the plant model. 5-4 The Derivative Utility 5-5 • Status - The current status of the variable, which is calculated by the Optimiser. Unlike constraints, variables are not allowed to move out of their bounds. The Status property is set to one of: • Not Evaluated - The status of the variable has not been evaluated by the Optimiser. • Inactive - The variable Output property lies between the Minimum and Maximum properties, but not on one of the bounds. • Equality - The maximum and minimum properties of the variable, Minimum and Maximum, are equal, and the Output property has the same value as well. • Active Low - The variable Output property value is equal to that of the Minimum. • Active High - The variable Output property value is equal to that of the Maximum • Current Value - The current value for the property ov the Object Name in the plant model. • Optimise Flag - Determines if the variable is to be used in the optimization process. If this flag is not set, no attempt is made by the Optimiser to include this variable into optimization process. • Minimum - The lower bound property for the variable during the optimization process. This value might be different from its global minimum, if the change in the variable is restricted to its allowed amount, set by the maximum rate of change, during the period in the optimization process. • Maximum - The upper bound property for the variable during the optimization process. This value might be different from its global maximum, if the change in the variable is restricted to its allowed amount, set by the maximum rate of change, during the period in the optimization process. • Range - A user-specified alternative for the span. The purpose of the range is to scale the gradients of the cost function and constraints, in order to give similar gradient magnitudes for each variable. The gradients of the objective function (and constraints) vary inversely with the variable ranges. 5-5 5-6 HYSYS.RTO Variables - Properties 5.1.2 Inputs: Global Minimum - Price Figure 5.3 • Global Minimum - represents the absolute minimum value for which the variable is operated in. This value is user-specified • Global Maximum - represents the absolute maximum value for which the variable is operated in. This value is also userspecified • Span - the difference between the Global Minimum and Global Maximum values for the variable, and is calculated by the variable set-up. The role of the span is to convert every variable into the range (0, 1), in order to use uniform numerical perturbations and convergence tests. • Output - is the current value of the variable in the plant model. The output value is determined by the optimiser during the optimization process. • Price - The shadow price (Lagrange multiplier) for the given variable, calculated by the Optimiser. The shadow price is used to estimate the effect which small changes to variable bounds have on the plant cost function. 5-6 The Derivative Utility 5.1.3 5-7 Inputs: Sparse Column - Jac Num Figure 5.4 • Sparse Column - The column occupied by the given variable in the Jacobian matrix. Unused variables will be given a sparse column of 0. • Old Var Value - This is the cached value of variable prior to perturbation, during gradient calculation. • Delta Var - The change in variable after perturbation, during gradient evaluation. • Gradient • Tear Variable • Jac Offset - The Jacobian Offset. • Jac Num - The Jacobian Number. 5-7 5-8 HYSYS.RTO Variables - Properties 5.1.4 Calculations The following properties are set by you before an optimization run: • • • • • Global Minimum Global Maximum Range Start value Sparse Column The following properties are initialised by the HYSYS.RTO model before an optimization run: • Minimum • Maximum • Span The following properties are updated by the HYSYS.RTO model during an optimization run: • Old Var Val • Delta Var The following properties are updated by the Optimizer during and after an optimization run: • Status • Price • Output 5-8 The Derivative Utility 5.2 5-9 HYSYS.RTO Constraints Properties Figure 5.5 The constraints in a HYSYS.RTO optimization problem are held in a Derivative Utility. This is used for holding all of the data used for defining the HYSYS.RTO Optimizer constraints and variables. For detailed information on the Optimizer properties, see the Optimizer Properties document[3]. • The Optimizer contains a number of properties used for specifying and controlling an optimization problem for a given HYSYS.RTO case. • The Optimizer is associated with a Derivative Utility which contains, amongst other things, a list of Independent Properties and Dependent Properties. The Independent Properties are the variables in the plant model which are changed in order to satisfy the Dependent Properties (the constraints on the plant model) simultaneously minimising the plant model cost function. 5-9 5-10 HYSYS.RTO Constraints - This document has the following styles: • All properties of the Optimizer/Variables/Constraints are shown in italic. • Important notes are shown in bold. 5.2.1 Inputs: Object Name Maximum Figure 5.6 The Dependent Properties have a number of inputs: • Object Name - The name of the HYSYS.RTO object to be constrained. • Attached Object - The object (e.g. Stream or Unit Op, etc.) that is attached or associated with the listed variable. • Property - The property related to the Attached Object and variable. • Current Value - The current value for the property of the object Name. • Use Flag -Determines whether the constraint is to be used in the optimization. If this flag is not set, no attempt is made by the Optimizer to satisfy this constraint. 5-10 The Derivative Utility 5-11 • Minimum - The lower bound for the constraint, which is userspecified. • Maximum - The upper bound for the constraint, which is also user-specified. 5.2.2 Inputs: Scale - Sparse Row Figure 5.7 • Scale - A user-supplied number which gives the scale on which the feasibility of the constraint is to be measured. This property is used in conjunction with the Optimizer Zeta property, which is a relative feasibility tolerance. In general, a constraint is said to be feasible if: Minimum – Scale ´ Zeta Current Maximum + Scale ´ Zeta Where Minimum and Maximum are the lower and upper bound properties respectively, of the constraint, and Current is its current value (equivalent to Hooked Property for constraints which have the Use Flag checked). • Minimum Chi Square - Determines whether or not a chisquare test is done for the constraint. • Status - The current status of the constraint, which is calculated by the Optimizer. The Status property is set to one of: 5-11 5-12 HYSYS.RTO Constraints - • Not Evaluated - The status of the constraint has not been evaluated by the Optimizer. • Inactive - The constraint Current property lies between the Minimum and Maximum properties, but is neither Active High nor Active Low. • Violated Low - The constraint Current property is less than Minimum - Scale x Zeta, where Scale is the constraint Scale property and Zeta is the Optimizer Zeta tolerance property. • Violated High - The Current property is greater than Maximum + Scale x Zeta. • Active Low - The constraint Current property is less than Minimum + Scale x Zeta, but greater than Minimum - Scale x Zeta. • Active High - The constraint Current property is greater than Maximum - Scale x Zeta, but less than Maximum + Scale x Zeta. • Normalization - When the Jacobian matrix is first calculated (first pass evaluation) the Normalization property for the constraint is set to be the largest Jacobian entry in the row ( Sparse Row ) of the Jacobian matrix corresponding to this constraint. This number is used to normalise the rest of the given Jacobian row, for all remaining Optimizer search steps (i.e., is not recalculated). • Base Value - When calculating the gradient of a given constraint with respect to each variable, the internal scaled variable is perturbed away from the current point by adding the number specified in the Optimizer Perturbation property. The new value of the constraint is found corresponding to the new variable value, and the change in constraint, divided by the change in the variable, is the corresponding Jacobian element. The constraint Base property stores the pre-perturbation value of the constraint. Under certain circumstances, however, the Base property itself can change during the Jacobian calculation. This is due to the fact that removing a perturbation from a perturbed variable, and re-running the plant model, will not reproduce the previous Base property within the constraint Current property; this is due to noise in the model arising from non-zero convergence tolerances (i.e., the de-perturbed constraint Current differs slightly from the pre-perturbed Current). Therefore, under certain circumstances (when the Pert_Reset flag property of the Optimizer is checked) the Optimizer will remove the perturbation from the variable, re-run the plant model, and then re-set the Base property of the constraint to match the re-calculated Current property. This eliminates associated noise from the Jacobian matrix. This method is discussed in more detail in the Optimizer Properties document[3], in the Pert_Reset section. • Price - The shadow price (Lagrange multiplier) for the given constraint, calculated by the Optimizer. If a feasible solution has been found by the Optimizer, then a simple interpretation 5-12 The Derivative Utility 5-13 of the Lagrange multiplier is that it gives the gradient of the cost function along the corresponding constraint normal. Thus, the shadow price indicates the approximate change to the objective function when increasing (i.e., relaxing) the given active bound by a unit amount. • Hard Constraint - A user-specified flag which indicates whether the constraint is a technical one, i.e., is a process specification such as a mass balance or a temperature, as opposed to purely an economic constraint. • Off Flag - A user-specified flag which indicates whether the constraint is in the 'off' state, or not. This is often used when related items of equipment are being constrained, which themselves have an on-off behaviour. • Sparse Row - The number of the row in the Jacobian matrix which is occupied by the given constraint. 5.2.3 Inputs: Current - Bias1 Figure 5.8 • Current - the current value the constraint possesses in the plant model. • Old Cons Value - the value of the constraint prior to perturbation of a variable, during gradient calculation. • Bias1 - 5-13 5-14 HYSYS.RTO Constraints - • Delta Cons - The change in constraint after perturbing a variable, during gradient evaluation. 5.2.4 Calculations The following properties are updated by the HYSYS.RTO model during an optimization run: • Base Value • Old Cons Val The following properties are updated by the Optimizer during and after an optimization run: • • • • • 5-14 Status Normalization Price Sparse Row Current ESTIM DRU Overview 6-1 6 ESTIM DRU Overview 6.1 The Problem.................................................................................................. 3 6.2 The Solution.................................................................................................. 3 6.3 The Benefits.................................................................................................. 4 6.4 ESTIM DRU Facilities ................................................................................... 5 6.4.1 Error Detection/Correction ....................................................................... 5 6.4.2 Model Updating ........................................................................................ 5 6.4.3 Utilities ..................................................................................................... 5 6.5 Using ESTIM DRU......................................................................................... 5 6.5.1 The Measurement Problem...................................................................... 6 6.5.2 Basic Methods ......................................................................................... 6 6.6 Configuring A Fitting Problem .................................................................... 9 6.6.1 6.6.2 6.6.3 6.6.4 6.6.5 Configuration Tab ................................................................................... 10 Results Tab ............................................................................................ 12 Stream Initialization Tab ......................................................................... 14 Parameter Fit Tab................................................................................... 15 DCS Tags Tab ........................................................................................ 16 6.7 Estim Data Set Analysis ............................................................................ 17 6.8 Optimization Objects ................................................................................. 17 6.8.1 Connection Tab ...................................................................................... 18 6.8.2 Properties Tab........................................................................................ 19 6.8.3 Transfer Tab............................................................................................ 21 6.9 General Notes ............................................................................................. 22 6-1 6-2 6.10 ESTIM DRU DIAGNOSTIC FILE OUTPUT................................................ 23 6.10.1 Initial Problem Parameters ................................................................... 23 6.10.2 Iteration Output .................................................................................... 25 6.10.3 Final Output ......................................................................................... 27 6-2 ESTIM DRU Overview 6.1 6-3 The Problem Modern instrumentation, distributed control and management information systems produce a wealth of plant data. The plant operator/manager has a problem trying to make sense of all this data where: • It may be inconsistent or inaccurate. • It may not give a complete or understandable indication of plant performance. In addition, plant models can only be configured to a specific operational instance, whereas the performance of actual equipment will vary as conditions change and equipment degrades. Thus, the model behaviour may start to diverge from actual plant behaviour. 6.2 The Solution The ESTIM DRU addresses these issues and produces concise information to aid decision making and aid model tuning and off-line investigation. Firstly, it can perform data reconciliation. Measurements are subject to error and, therefore, provide inconsistent information. ESTIM DRU can detect and correct measurement errors, thereby providing a consistent and accurate data set. Secondly, a model representing a specific item of plant can be updated whereby ESTIM DRU will be able to reconcile model and actual plant values, to ensure that the model continues to represent actual plant performance. 6-3 6-4 The Benefits 6.3 The Benefits The ESTIM DRU brings real benefits by ensuring good representation of plant equipment, and providing indications of poor plant data as an aid to decision making in the following areas: • Identification of process unit performance, in particular condition monitoring. • Identification and quantification of instrument errors. This leads to improvements due to: • Better process operation in general • More effective and efficient equipment maintenance and/or replacement • More effective and efficient instrument maintenance • Improved plant model representation Applications Current applications of the ESTIM DRU include: • • • • • • • • • Compressor model updating/condition monitoring Catalyst performance monitoring/updating Thermal cracker model updating Steam system data reconciliation Gas turbine model parameter updating Heat exchanger fouling effect updating Reactor model parameter updating Boiler model updating and condition monitoring General network reconciliation (e.g. oil & gas fields, steam systems, etc.) In fact, anywhere where plant measurements are available around process equipment, the ESTIM DRU can sensibly be applied. 6-4 ESTIM DRU Overview 6.4 6-5 ESTIM DRU Facilities 6.4.1 Error Detection/Correction No measurement is perfect; by using a number of sets of data and statistical routines, the ESTIM DRU sorts the good from the bad and only uses good data. This is a pre-requisite for model updating and the essence of data reconciliation. 6.4.2 Model Updating The ESTIM DRU can update the parameters of even the most complex model. 6.4.3 Utilities The ESTIM DRU invokes a number of statistical and optimization routines to perform the following tasks: • Parameter Estimation - Calculation of model parameters which may change with time, such as reaction rate coefficients, heat transfer coefficients, etc. • Data Reconciliation - Model based reconciliation of overdetermined systems, such as steam system mass balancing, where there are many flow-meters, or estimation of power output of a turbine with both steam flow and driven load being measured. • Bad Data Elimination - Results of data reconciliation calculations can be examined statistically to determine whether bad data is present, and if so eliminate the bad data. 6.5 Using ESTIM DRU The ESTIM DRU comes in the form of a tool kit, comprised of the following: • A set of related screens in HYSYS for attaching an ESTIM DRU to a HYSYS plant model simulation case. • Demonstration examples describing how to use the DRU[1]. This enables you to configure plant model updating and data reconciliation routines within the HYSYS environment without recourse to programming or expert assistance. 6-5 6-6 Using ESTIM DRU 6.5.1 The Measurement Problem Measurement devices are often assumed to have zero bias and random errors, i.e. the instrument is assumed to be in working order, correctly calibrated so that any deviations from true are due to "noise". Expressed mathematically we have: y = x+e Where y is the reading on the instrument, x is the true measurement and e the error. The mean of e is assumed to be zero and the distribution symmetric, i.e. the error is assumed equally likely to be positive or negative and, given enough readings, its affect will disappear. This model of instrument errors is used as a basis of many traditional methods of data reconciliation, e.g. least squares. However, equation (1) is not generally the case and, in practice, the most serious problem is due to gross errors and real bias, represented by broken or badly calibrated instruments. Thus, it is no surprise that the application of traditional methods is unsatisfactory and has the effect of sharing out the errors so that in a case where just one instrument is in error, all instruments are affected. Therefore, methods such as least squares cannot be relied on exclusively. Within ESTIM DRU these methods are pre-fixed by others which are based on the assumption that measurements may be either grossly wrong or out of calibration. 6.5.2 Basic Methods There are a number of techniques within ESTIM DRU that can be used. The current available techniques are: Elimination Of Measurement Bias As identified in the last section, where there are systematic errors and failures the real world problem is transformed into one where there is no bias and the errors are random. This is done in two ways. • Allowance for Systematic Errors - To cope with systematic errors offset variables are introduced into the problem to represent these errors. 6-6 ESTIM DRU Overview 6-7 • Integer Programming - This technique allows the identification of grossly wrong instruments, i.e. stuck or failed. Instruments from the historical data-set can be systematically disregarded. Solution of the Unbiased Problem • Normal Least Squares - This estimator requires no statistical (a priori) weighting may be applied to an accurate measuring device, such as a thermocouple, and a lower weighting to an analyser. Fundamental weighting exists between offsets and parameters to bias the calculation method between these two types of fitting. • Minimum knowledge of the measurement and calculates the values of the model parameters (and measurement offsets) which minimise the sum of the squares of the differences between the actual and predicted data. • Weighted Least Squares - The least squares estimator may be modified by adding weighting factors on certain errors to either preferentially reduce errors or allow for differences in measurement quality. For example, a higher Variance - If we have information on the variance (likely error bound) of the measuring elements we can use a minimum variance estimator. This minimises the variance of the estimator, rather than the error squared. It can be compared to weighted least squares with weights of 1/ . Practical Considerations When using parameter updating for a model it is important to have a large enough history of results, which, over a short time period is unlikely. There are two reasons for this requirement. • Firstly, it is impossible to update a performance curve, such as the efficiency/flow curve on a compressor, from a small knot of data. Depending on the technique, the best that can happen is that the curve will move up or down, the worst that can happen is that the curve becomes totally wrong towards the extremes. • Secondly, it is impossible to calculate a goodness-of-fit parameter. This makes determination of faulty measurements difficult. When these problems are anticipated, it is better to adopt a strategy where an updated correction factor is applied to the model curve instead of updating the performance curve. This does not preclude updating performance curves in the longer term by manual inspection and re-fitting. HYSYS models are written in such a way that it is a simple task for ESTIM DRU to update either a curve or a performance parameter. 6-7 6-8 Using ESTIM DRU Estim. Offline - For Model Updating Using the ESTIM DRU for model updating is purely a matter of configuration. No programming or expert knowledge is required. The basic task is to identify the following elements: • A list of measured values from the plant which are to be used to update model parameters. These values should represent data that could be used as inputs to the model and data that corresponds to calculated results of an associated model run. At a minimum, at least one data-point corresponding to a model result must be configured. • A list of parameters which are to be updated. The parameters should have an effect on the chosen model calculated results. • A list (subset) of the measurement data to which offsets are to be applied. • Scaling to be applied to the measurement data and general problem. This should initially be chosen so that the scaled values are of the same order of magnitude, before further scaling is implemented to bias certain measurements. • The model to be run which produces the modelled values. This may be a model of the whole plant, or just of a single unit. The following is an example of model updating. If we take a model with parameters, for example a compressor, the flowchart within ESTIM DRU would consist of the following steps: 1. Read actual performance data from measurements. 2. Calculate model performance based on measured model input data. 3. Optimise model parameters to minimise the difference between actual performance (measured) and predicted performance (calculated). 4. Calculate goodness of fit and statistical properties based on selected model parameters. If the goodness of fit is acceptable, update the model parameters. The following is an example of the steps involved in measurement offset fitting, including data elimination: 6-8 1. Read actual performance data from measurements. 2. Calculate model performance based on zero-offset measured model input data. ESTIM DRU Overview 3. Optimise measured data offsets to minimise the difference between actual performance (measured) and predicted performance (calculated). 4. Calculate goodness of fit and statistical properties based on selected measurement offsets. If the goodness of fit is acceptable, update the measured data offsets. 5. Calculate the data elimination goodness of fit. If the fit is good, the task is completed. If the fit is bad, eliminate the offset fitting for the data set with the largest relative offset, and allow the offset to "float" (i.e. remove from the offset portion of the fitting function and allow the routine to select an unrestricted fit value). Recalculate the fitting problem with the eliminated data set. 6.6 6-9 Configuring A Fitting Problem The ESTIM DRU fitting configuration is carried out in HYSYS using the Data Reconciliation Utility model detailed below. Figure 6.1 shows the Data Reconciliation Utility property view. Figure 6.1 6-9 6-10 Configuring A Fitting Problem 6.6.1 Configuration Tab The Configuration tab of the Data Reconciliation Utility property view is comprised of three groups: Problem Formulation, Solver Parameters and Tolerances and Data Set Configuration. Problem Formulation Group This group defines the main user-controls to be supplied with data in order to fit the parameter and/or measured data offsets. In the Fitting column, the parameter fitting can be switched off or on using the Mode box. The Confidence can be set to determine the level of fit required for a good result. The higher the confidence, the closer the fit needs to be to a normalised curve for the fit to be deemed good. The Run After N counter allows the ESTIM DRU model to be exercised to only perform the fit calculations every N-th time. This allows the associated measurement data blocks to gather the historical data without full recalculation being performed for each new data set. If required, the counter can be set to 1. The Current field indicates the current number of runs related to this. The Maximum box allows you to enter a maximum number of iterations (error function gradient evaluations, i.e., optimizer moves) for calculating the optimal parameters. In addition, the utility produces a diagnostic file: diagnostic print can be set to levels of None, through to Downpour (no diagnostics through to full diagnostics). Solver Parameters and Tolerances Group The ESTIM DRU tolerances can be user defined using the Data Reconciliation Utility property view. If tolerances are not defined, default values (generated/set by the optimization algorithm) are used. The Central and Forward Difference Intervals are used to determine the perturbation in the parameters / offset used for the calculation of the (error function) objective gradients with respect to the variables. If these values are not set, the optimization routine will use additional model evaluations to determine the values to be used. 6-10 ESTIM DRU Overview 6-11 The Optimality Tolerance is the smallest relative change in the total error function during the error minimisation below which the optimization is deemed to have converged by the algorithm. The Linesearch tolerance is used by the optimization routine to determine the accuracy of the optimal step with respect to the gradient evaluations. The larger the Linesearch tolerance, the further along the optimal path the next optimal step will be. This number must be between zero and one. The Maximum Step determines how far each of the variables (parameters, offsets) can be moved in an optimal step. This prevents the optimizer from overstepping on each iteration, thus speeding solution. The Objective Scaling allows the emphasis between offset and parameter fitting to be varied when both offsets and parameters are fitted simultaneously. The emphasis is squared based on the given number; a function scale factor of 10 places 100 times more emphasis on the elimination of measured / model error than on fitting the offsets. The Convergence Tolerance is the smallest change to occur to every parameter/offset below which the minimization is deemed to have converged. Data Set Configuration Group The minimum number of good data sets required for an Estim DRU calculation is given in Minimum Data sets. A good data set is one which is not excluded at the start of the ESTIM DRU calculation. The maximum number of historical data sets to be stored locally during the estimation (but not necessarily all used) is given in Maximum Data Sets. You can set this in order to store as many time-slices of information as he/she wishes (although the upper limit is 32). The number of data sets in the parameter estimation problem is given in Current Data Sets. Eventually, after a sufficient number of ESTIM DRU runs this number is equal to the Maximum Data Sets parameter. The measurement horizon for the data is given in Horizon. This gives the number of most-recent data sets to be used in the ESTIM DRU, out of the Maximum Data Sets stored. 6-11 6-12 Configuring A Fitting Problem 6.6.2 Results Tab Figure 6.2 The updating routine produces a set of results, which can be seen on the Results tab of the Data Reconciliation Utility property view. The Fit Error (Total) gives the total sum of the errors, for all the datablocks of reach good historical data-set, between the measured values and the model calculated values, the error being calculated using the final value of the predicted parameters and measurement offsets. The value of x2 gives the x2 calculation bases on the sum of the data block errors scaled by the sigma, s, for each of the output data blocks. This value is then checked against the maximum x2 value (Maximum Chi2), which is calculated from the stated confidence and the calculated number of degrees of freedom (Degrees of Freedom) for the problem. If the calculated x2 values is less than the maximum value, the Fit flag is deemed good, and the parameters and offsets are updated. A bad fit will leave the parameters and offsets with their original values. The Goodness of Fit returns whether a good or bad fit was returned by the x2-test. Major Iterations indicates the number of parameter variation steps undertaken by the optimization algorithm with minimizing the total error. 6-12 ESTIM DRU Overview 6-13 The value for Function Calls indicates how many times the plant model was executed by the updating algorithm in arriving at the fit answer. The change in objective function can be seen by comparing the Starting Objective to Final Objective. The objective quoted is the actual objective seen by the optimization routine, and is based on the scaled offsets and error functions. A summary of the user-supplied parameters is also supplied in the Number Of group. Parameter/Offsets These are the most important results obtained from the updating. They define the parameters which most accurately describe the actual plant for the data given in the model input and output blocks. The parameter results can be viewed on the Parameter Fit tab. The calculated offsets can be seen by examining the individual data blocks on the DCS Tags tab as shown in the next section. In most cases, successive updating over time should result in a progressively more accurate solution. 6-13 6-14 Configuring A Fitting Problem 6.6.3 Stream Initialization Tab Figure 6.3 Figure 6.3 shows the Stream Initialization tab. This indicates the connections from the estimated entries in the plant model to the measurement data list that contains the input and the output measurement data blocks. The screen identifies whether a measurement data block is a model input or calculated result. This form displays information concerning flowsheet model inlet / outlet streams, energy streams, and internal streams. An inlet stream is a stream in the model which is an inlet to a reconciled unit operation (targeted using the Target Objects button), but not an outlet. An outlet stream is one which is an outlet to a reconciled unit operation, but not an inlet. Energy stream refers to the standard HYSYS energy streams. Internal streams are those which are both inlet and outlet streams (i.e., are both feeds and products to unit operations), or are either feeds or products to a unit operation which is not reconciled. The initialisation prior to carrying out a run of the estimation is done using DRU streams, streams created by you specially for the purpose of storing simulated plant data in flowsheet streams; the DRU streams are effectively storage 6-14 ESTIM DRU Overview 6-15 mechanisms. The Multiple flag column indicates whether historical data is available for the flowsheet stream, data which is stored in the ESTIM DRU object; if unchecked, any specified values of the corresponding flowsheet stream are held constant for the duration of the parameter estimation. The Data Sets column indicates the number of data sets available for each stream kind (Inlet, in this case). The Comp Basis column represents the basis for the component calculation in each stream. 6.6.4 Parameter Fit Tab Figure 6.4 The model parameters can be accessed from the Parameter Fit tab of the Data Reconciliation Utility property view. These are the parameters which will be adjusted to give the best fit of the model to the data given in the output blocks, e.g. the efficiency of a heat exchanger or the reaction coefficients of a reactor model. The Minimum and Maximum values define the range over which the parameters will be allowed to vary. These values should be considered carefully so as not to constrain the model to a region in which the model solution is greatly different from the actual plant. 6-15 6-16 Configuring A Fitting Problem The Start and Current values show the values of the parameters before and after an update was carried out. After an update, and only if the fit is good, the new values are placed directly into the model. The Result Value stores the value of the parameter after the last run of the ESTIM DRU. The Hooked Object/Variable refer to the object and property in the flowsheet model which is estimated. 6.6.5 DCS Tags Tab Figure 6.5 The DCS Tags tab is used for defining the transfer of measured data to the flowsheet model during the ESTIM DRU calculations. The Tag Filter group has options to display model Input data, Output data, or All data (input and output), depending on the radio button checked. Input data consists of property values of streams which are read used in the model, but are not reconciled. Output data consists of property values are then reconciled to these (read) values by the parameter estimation algorithms in the ESTIM DRU. 6-16 ESTIM DRU Overview 6.7 6-17 Estim Data Set Analysis Figure 6.6 When running ESTIM DRU offline, the Data Set Analysis view can be used to see how well each variable behaves over up to 15 data sets, or how up to 15 variables perform against observed plant data for any particular data set. The absolute and percentage difference between the observed and predicted data, and the arithmetic average and standard deviation of these differences are displayed to show the statistical accuracy of the model. The Data Set Analysis view is accessed by clicking on the Data Set Analysis button on the Data Reconciliation Utility property view after running the ESTIM DRU offline. The view includes both ‘Good’ and ‘Bad’ data. You can select the data sets to include the analysis, and either input tags or output tags. The analysis is run by clicking the Run button on the above screen. 6.8 Optimization Objects An ESTIM DRU stream (discussed in Section 6.6.3 - Stream Initialization Tab) and DCS Tags (discussed in Section 6.6.5 - DCS Tags Tab) are considered to be Optimization Objects. These optimization objects are input tags or output tags, corresponding to input or output data from the model. These objects can be accessed by selecting Optimization Objects from the Flowsheet menu on the desktop. A given optimization object can be edited by highlighting it and clicking the Edit button on the Select Optimization Object dialog. 6-17 6-18 Optimization Objects Figure 6.7 The Optimization Object property view for the selected object appears. There are three tabs in this property view: Connection, Properties and Transfer. These tabs are described in the following sections. 6.8.1 Connection Tab Figure 6.8 The Connection tab gives the connections of an optimization object to the flowsheet Object name. The connection in this case is to an extra data value of the T-100 column. 6-18 ESTIM DRU Overview 6-19 6.8.2 Properties Tab Figure 6.9 The second tab lists the Properties of an optimization object. The myvarval property (“my variable value”) stores the value of the connected object property. The scale value is used to scale the measured values, and hence the (measured - model) error, to ensure the optimizer objective function sees the errors with required weightings. Generally, the scaling should be chosen so that the relative values for each of the errors on the model outputs is approximately equal. This ensures the optimizer chooses a fair set of parameters and/ or offsets to fit equally on the measured outputs. If an output is to be favoured, its scaling should be smaller so that the relative error is larger, thus forcing the optimizer to correct that error in preference to the other errors. For offset fitting the scaling is important for both input and output blocks since the offset is scaled by this amount for the objective function. For output blocks the scaling is also used to calculate the relative error between the measured and model values, so offset will be scaled the same as the error. To counter this, the ESTIM DRU tolerances allow the overall offset portion of the objective function to be scaled differently to the error portion, thus enabling preference of fitting for either offsets or parameters. When parameter fitting only, the scaling is only relevant to the output blocks where it is used to scale the absolute error to a relative error. 6-19 6-20 Optimization Objects The offset value indicates the absolute offset to be applied to the measure values; this can be a fixed, known amount, or an offset calculated by the fitting algorithm. The exact use is determined by the set-up flags in the data block. For offset fitting, there are no minimum and maximum limits since the optimizer will be attempting to minimize the value of the offsets, and thus be driving them to zero. The error property stores the calculated error between the fitted model data and the actual measured data, for a given data set. The sigma property is an estimate of the true asymptotic standard deviation, s, of the measured value from the plant. The estimate is updated at each run of the ESTIM DRU in such a way as to cause it to asymptotically approach the correct value for the instrument. The update takes account of the current value of sigma, and weighting which takes into account the previous estimate. The initial value of sigma chosen is typically large (~1000), in order to provide a good initial fit. Sigma is only calculated for output data blocks (Output Tags). The value of sigma is used to calculate the goodness of fit; the scaled error between model calculated value and the measured value is divided by the sigma value to determine the effect of the data block in the overall x2 fit calculations. The smaller the value, the smaller the error allowed to maintain a good fit. Where the sigma is not reset on each run, the closer the measured value is to the model value, the smaller the calculated sigma will be for use in the cumulative sigma update. As this is calculated cumulatively, it will tend to its natural sigma value. It should be noted that the sigma value is only used for the goodness of fit calculations, and plays no part in the actual fitting optimization. The next_value property is the value most recently assigned to the given tag (i.e., as if it were read in from a DCS system). The remaining properties have no units dependency on the connection: • Count - is the number of measured value updates to the DCS Tag since the last estimation run. • Totcount - is the total number of measured value updates. • Calc_bias - used to tell the algorithm that the data block is to be included in the offset fitting set, and thus the offset will be adjusted to attempt to minimize the measured/model error. If the data-block is set to calculate offsets, then it will also be included in the bad data elimination algorithm. • Over_data - is not currently used in the ESTIM DRU. 6-20 ESTIM DRU Overview 6-21 • Next_good - stores whether the next value (obtained from the use in the offline case, or from a DCS system in the on-line case) is considered good or bad data. • Input - indicates if the variable is an input to the model or not. • Use_bias - is set by you if you want merely to use the current biases during model runs, not the updated ones, if they are calculated. The flag is used to tell the algorithm that a fixed, known offset is to be applied to each set of measured data for use in the generation of measure/model error. In this case, the offset value will not be calculated, and the data block will not be included for elimination in the bad data elimination algorithm. • Fill - is reserved for future use. • Eliminated - is returned as a result from the bad data elimination algorithm to indicate that the data set has been deemed bad. in this case, the offset is removed from the objective function and allowed to “float”. The resultant model calculated value is then available from the myvarval field. The flag can also be used during normal offset fitting to determine a model calculated value without restricting the offset in the normal optimization objective function. • Curval, and curerror - indicates the current value and error of the object in the calculation, respectively. 6.8.3 Transfer Tab Figure 6.10 The Transfer tab lists the Transfer flags of an optimization object. These flag properties are not used in the offline situation. 6-21 6-22 General Notes 6.9 General Notes If the ESTIM DRU model has a Run After N value set, it will only run every N-th time, thus allowing the data blocks to build up the historical data for the actual fitting calculations. This allows the historical data to be stored before the fitting calculations are performed. Setting up the Bad Data Elimination Problem (GROSS ERROR DETECTION) The bad data elimination problem is set up and calculated using the Data Reconciliation Utility screen. Bad data elimination is specified by selecting the Gross Error Detection:Perform Calculations flag. This selection assumes that the ESTIM DRU has been configured with the offset data blocks that correspond to the measurements that are available for elimination. The Mode indicates whether Full fitting will be performed, or if a Shortcut (single) data set is used. The single data set mode will use the first good set, and will not fit parameters defined in the ESTIM DRU Parameter Fit tab. The purpose of this mode is to provide a quick method of determining bad data within a single set based on the associated model. After the ESTIM DRU is run with these settings, the results can be seen as usual in the Estim Results tab of the Data Reconciliation Utility screen. No. of Eliminations and Max Eliminations show how many data blocks have been eliminated in the given problem, and show how many accepted eliminations are allowed before the fitting cannot be exercised further. The confidence is similar to that for the standard fitting, in that it is used to calculate the Maximum x2 to determine whether a good fit has been achieved. The Fit Error (Total) is compared to the maximum tolerance to give the Goodness of Fit flag. The tolerance figure is based on a x2 distribution for the offsets only, expecting a good fit to have small offsets close to zero value. The fitting calculation is always performed when the elimination model is run. 6-22 ESTIM DRU Overview 6.10 6-23 ESTIM DRU DIAGNOSTIC FILE OUTPUT The following section details the diagnostics available from ESTIM DRU and the associated optimization routine. There are three sections produced in the diagnostic output from an ESTIM DRU run. These sections are covered separately. In addition, several levels of output are available, based on the level chosen within the ESTIM DRU. The descriptions below will deal with diagnostics produced when the Downpour diagnostic option is chosen. All output produced is generated by the optimization routines; MDC Technology Ltd. do not currently supply additional output from the ESTIM DRU routine. The name of the diagnostic file produced by the ESTIM DRU is of the form <ESTIM DRU name> .txt, where <ESTIM DRU name> is the name of your ESTIM DRU object in HYSYS. 6.10.1 Initial Problem Parameters The first section of output produced by the optimization routine details the input parameters for the particular problem to be solved. These are either supplied as a result of the problem, or are defaults used by the algorithm. Since the application of the optimizer to the ESTIM DRU task is an unconstrained problem, several of the parameters and variables produced as part of the output are not relevant to the task, and should be ignored. • Linear constraints - the number of linear constraints in the problem. This is not applicable for ESTIM DRU. • Linear feasibility - the maximum acceptable violation of linear constraints at a feasible point. This is not applicable for ESTIM DRU. • Variables - the number of variables (parameters or offsets) to be optimized (fitted) in the current problem. • Crash tolerance - this is used when COLD start is selected. Variables within this tolerance of their bounds are selected for the initial working set of the problem. • Infinite bound size - any bound greater/less than this number is considered +/- ¥ . 6-23 6-24 ESTIM DRU DIAGNOSTIC FILE • COLD start - specifies the initial working set for the problem. This is chosen from the initial value of the variables, including variables at, near, or just violating their bounds. • Infinite step size - the magnitude of a change in the variables that would indicate an unbounded problem (the objective is said to be unbounded in the feasible region). Since ESTIM DRU variables are all bounded between -1 and +1, this parameter is not relevant to an ESTIM DRU task. • EPS (machine precision) - the machine precision, used to determine the default values for several other parameters. • Step limit - the maximum change in a variable on the first step of the linesearch. This prevents overflow situations from occurring. • Nonlinear constraints - the number of non-linear constraints. This is not applicable for ESTIM DRU problems. • Nonlinear feasibility - the maximum acceptable violation of non-linear constraints at a feasible point. This is not applicable for ESTIM DRU problems. • Nonlinear objective vars - number of (non-linear) variables used to minimise the objective function. • Optimality tolerance - the accuracy of the final iterate to approximate a solution to the problem, i.e. a solution is deemed valid if the relative change in the objective function is less than this tolerance. In effect this value indicates the number of correct figures required in the objective function at solution (i.e. if the tolerance is 10-6 and the optimization terminated successfully, approximately the first six figures of the objective function will be correct. This is an indication of the "tightness" of the problem solution. • Nonlinear Jacobian vars - the number of variables used to evaluate the Jacobian matrix of the problem. • Linesearch tolerance - the accuracy of the step taken during each iteration to approximate a minimum of the merit function along the search direction. This determines how far along the search path the next point is to be taken. • Derivative level - this indicates how many of the objective (and constraint) gradients are supplied to the algorithm. ESTIM DRU uses the algorithm with a level of 0, which indicates that all gradients are not supplied, and have to be calculated using difference approximations. • Function precision - the accuracy with which functions are assumed to be evaluated. • Verify level - a value of zero indicates that the optimization routine performs a 'cheap' finite-difference test on the objective gradient components of the problem. This is not applicable for ESTIM DRU (where no gradients are supplied). • Major iterations limit - the maximum number of major iterations performed before the problem is terminated (unsuccessfully). 6-24 ESTIM DRU Overview 6-25 • Major print level - determines the output level on each major iteration. • Minor iterations limit - the maximum number of iterations used to calculate the optimality of the QP subproblem. • Minor print level - determines the output level on each minor iteration. • Difference interval - the interval used in the forward difference approximation for the objective gradients in the Jacobian matrix. • Central difference interval - the interval used in the central difference approximation for the objective gradients in the Jacobian matrix. Central difference approximations are used if the forward difference approximations are found to be not accurate enough. • JTJ initial Hessian - controls the initial value of the upper triangular matrix R (the estimate of the transformed and reordered Hessian of the Lagrangian). J is the objective Jacobian matrix. • Reset frequency - the number of major iterations after which the Hessian is reset to JTJ. In addition to the above parameters, the work arrays are checked for suitable sizing, and a summary of the Jacobian element estimations is given. 6.10.2 Iteration Output On each major iteration output is generated to detail the progress of the optimization algorithm in minimising the ESTIM DRU function. The output for each iteration is given under the iteration header, Major iteration n. The following list details the tabulated output produced; the heading is only produced for the first iteration. • Itn - the major iteration count. • ItQP - the sum of the iterations required by the feasibility and optimality phases of the QP problem (which generates the optimal step direction and length). Large values indicate difficulty in finding a new optimal point. • Step - the step, , taken along the computed search path. On a reasonably behaved problem this will tend to unity. • Nfun - the cumulative number of subfunctions needed for the linesearch (excluding finite difference calculations). This provides a guide on the amount of work performed in the linesearch. 6-25 6-26 ESTIM DRU DIAGNOSTIC FILE • Objective - this is the value of the objective function, which should decrease monotonically as the optimization progresses. This should not be confused with the objective function calculated upon termination of the ESTIM DRU task. This value is also repeated after the table (with more significant figures). • Bnd - the number of simple bound constraints in the predicted active set. This is not applicable for the ESTIM DRU task, and will always be zero (after the first iteration). • Lin - the number of linear constraints in the predicted active set. This is not applicable for the ESTIM DRU task, and will always be zero. • Nz - the number of variables less the number of constraints in the predicted active set. For an ESTIM DRU task this will always be the number of parameters or offsets which are being fitted. • Norm Gf - the Euclidean norm of the gradients of the objective function with respect to the free (unbounded) variables. • Norm Gz - the Euclidean norm of the projected gradient. This will be approximately zero near the solution. • Cond H - the lower bound on the condition number of the Hessian approximation, H. • Cond Hz - the lower bound on the condition number of the projected Hessian approximation, Hz. The larger this number is, the more difficult the problem is to minimise. • Cond T - the lower bound on the condition number of the matrix of predicted active constraints. This is not relevant to the ESTIM DRU application. • Conv - this is a three letter indication of the convergence test status. The letters indicate True or False. The letters detail the following points, in order: • the sequence of iterates has converged • the projected gradient (Norm Gz) is sufficiently small • the constraint residual norm in the active set (Norm C) is sufficiently small. (This is always true in the ESTIM DRU application.) The following letters may appear at the end of an output line: • C - indicates the use of central difference approximations in the gradient evaluations. • L - indicates that the linesearch produced a change in a variable greater than specified by STEP LIMIT. • R - indicates that refactorisation of the approximated Hessian has been performed. For each major iteration a section is produced detailing the "Values of the constraints and their predicted status". The variables are listed in order, giving the value of the scaled variable (which is scaled internal to 6-26 ESTIM DRU Overview 6-27 the optimization routine between -1 and +1), and its predicted status. For instance, if a parameter is allowed to vary in the model between 0 and 100, and lies at the model value of 25, the scaled value internal to the optimization routine would be -0.5. The predicted status is a binary number, zero indicating the variable is free, and one indicating the variable is at one of its bounds. Also produced are the diagonals of R, which are the triangulation factors of the transformed and re-ordered Hessian. 6.10.3 Final Output Upon termination of the optimization algorithm, whether successful or not, the final output is produced. The number of subfunction calls made by the optimization routine will differ from that made by the ESTIM DRU task, since ESTIM DRU evaluates the subfunction outside of the optimization routine as part of its solution. The following details are written as final output from the optimization algorithm. • INFORM - this details the status of the algorithm solution. Zero indicates successful solution. • MAJITS - the number of major iterations performed. • NFUN - the total number of function evaluations performed during the optimization (excluding those needed for gradient estimations). • NGRAD - the number of function evaluations performed for gradient estimations. • Varbl - The name (V) and the index of the variable. • Value - The scaled value of variable V. • State - the status of the variable. FR indicates the variable is unbounded, LL indicates the variable is bounded at its lower limit, and UL indicates the variable is bounded at its upper limit. • Lower Bound - this is the value of the lower bound for the variable within the optimization routine. For ESTIM DRU tasks this will always be -1. • Upper Bound - this is the value of the upper bound for the variable within the optimization routine. For ESTIM DRU tasks this will always be +1. • Lagr Mult - this gives the Lagrangian multiplier of the variable, if the variable is bounded. The value will be zero for a free variable, positive for a variable at its lower limit, and negative for a variable at its upper limit. • Residual - this is the difference between the variable and its NEAREST bound. The optimization routine termination code is printed and the final value of the (internal) objective function is displayed as the last output (this is not the same as displayed by ESTIM DRU, since the optimization value is internally scaled). 6-27 6-28 6-28 ESTIM DRU DIAGNOSTIC FILE Data Reconciliation Utility 7-1 7 Data Reconciliation Utility 7.1 Heat Exchanger Network Data Reconciliation........................................... 3 7.1.1 Installing/Viewing the DRU....................................................................... 5 7-1 7-2 7-2 Data Reconciliation Utility 7.1 7-3 Heat Exchanger Network Data Reconciliation For Data Reconciliation and Parameter Estimation, there are: • DCS Tags - variables for which you have a set of measurements, which are to be used to calculate offsets in the measurements, and update fitting parameters. These can be either specified or calculated variables. • Fitting Parameters - variables whose value is to be directly adjusted to match the supplied data. These must be specified (blue) variables. There is a third type of Optimization Object used for Data Reconciliation called a DRU Stream (Data Reconciliation Utility Stream). This is essentially a data holder, i.e., it allows for multiple sets of stream data, each corresponding to a different data set, to be supplied by you. These values are taken as supplied, no offsetting is calculated for these streams. The following section lists the properties which are found with each optimization object type. • Name - the display name of the property • Type - can be either input (required user input), output (calculated value by the solver), internal (a value which is being used by the solver in its solution), or RTO (appropriate only for real time applications) • Data Type - either a double, an integer, a Boolean, or text. 7-3 7-4 Heat Exchanger Network Data Fitting Parameter Name Type Data Type Description Minimum Input Double The bound on the parameter Input Double The upper bound on the parameter Input Boolean Determines whether to include the parameter in the current run Input Double The desired starting value for the parameter Output Double What is currently being sent from Estim for evaluation Output Double The final answer Type Data Type Description Input Double The lower bound on the constraint Input Double The offset to be applied to the measured value Output Double The calculated total error for the tag Input Boolean Whether Estim is to calculate a bias for the tag Input Double Whether Estim is to use the current bias in calculations Output Double Percentage of the offset value with respect to the scaled value. Input Double A flag which indicates whether the tag is an “input” (specified flowsheet variable) Output Boolean Whether Estim has eliminated the tag from the problem Evaluated Value Internal Double The measured value which is currently being utilized in the Current Error Internal Double The error for the current measured value RTO Boolean The value which has been transferred from the Plant RTO Double The current count (number of data points) RTO Double The total number of data points Maximum Fit Start Value Evaluate Result Value DCS Tag Name Scale Offset Total Error Calculate Bias Use Bias Percent Input Eliminated Next Value Count Total Count 7-4 Data Reconciliation Utility Name Type Data Type Description RTO Double Logical, when TRUE, will turn off an instrument, ignoring the data linked to that particular instrument in the dataset. RTO Double A flag which indicates whether the Next Value is good RTO Double Biasing limit, a positive number. When bias is used as the optimiser variable, it is restricted to a range [current_bias-limit, current_bias+limit], usually with current_bias=0. If limit is set to zero, the range is assumed to be unbounded. Over Data Next Good Limit 7-5 7.1.1 Installing/Viewing the DRU A simple heat exchanger network will be used to illustrate the installation and configuration of a Data Reconcilation problem: Figure 7.1 Data Reconciliation Utility Open the hen.hsc sample case which can be found in the HYSYS.RTO Cases folder. You can view the PFD by clicking on the PFD button in the Tool Bar. PFD Button To install a DRU, open the Tools menu and select Utilities. Click on Data Recon Utility in the list box on the right and click on Add Utility button. In the case that you’ve opened, hen.hsc, a DRU has already been installed, so you will view that DRU. In the list box on the left, click on Data Recon Utility-1 and then click on the View Utility button. 7-5 7-6 Heat Exchanger Network Data The Data Reconciliation Utility property view appears as shown in Figure 7.2. Figure 7.2 There are five tabs in this property view: • Configuration - define the problem type (parameter fit, data offsetting or both) and set the remaining solution options • Results -updated results of the progress and final solution of the data reconcilation, as well as additional configuration information (number of input tags, output tags, etc.) • Stream Initialisation - create the DRU Streams and configure them (if necessary) • Parameter Fit - provides access to, and installation of, Fitting Parameter optimization objects associated with the operation(s) and streams being considered. • DCS Tags - provides access to and installation of DCS tag objects associated with the operation(s) and streams being considered. 7-6 Data Reconciliation Utility 7-7 Selection of Unit Operation(s) The first step in the implementation of the Data Reconciliation Utility is the selection of the unit operations to be considered (press the Target Object button). This will produce the Target Objects view shown in Figure 7.3: Figure 7.3 This view will display all of the unit operations currently attached to the Utility. You can either Add or Remove unit operations from the utilities collection. The Object Filter group found at the bottom left of the view provides options for filtering the display of available objects. In addition, the Flowsheet Wide option is provided to allow the application of the Data Reconciliation Utility to the entire flowsheet. For this example, this is the correct choice. When you have moved the desired items into the right column (highlight them in the Available Objects list and then press the right arrow button), press the Accept List button . The appropriate optimization objects (DCSTags, DRUStreams and Fitting Parameters which are attached to these operations and their associated streams will be collected from the simulation case. 7-7 7-8 Heat Exchanger Network Data Figure 7.4 The Stream Initialization tab allows you to acccess (and create if desired) the DRU Streams (Data Reconciliation Utility Streams) which are used to hold multiple sets of Feed, Product or Internal Stream data for a Data Reconciliation Utility. There are a number of features associated with the DRU's (such as converting data for a new Component Basis in an associated stream, inserting and removing data sets , etc). For this problem however, the composition of the Feeds and Products will remain fixed, and Tags will be used to modify any of the stream data for the problem. If a "Specific Stream" is selected, it will allow an Internal stream (one that is connected to two unit operations in the collection) to be created. This can be used to store internal stream data from the results of the data reconciliation (a copy of the stream data is saved for each data set). By default all of the DRU's will have their Multiple flag set to True. This needs to be turned "off" for Inlet DRU's. 7-8 Data Reconciliation Utility 7-9 Figure 7.5 illustrates the option of selecting a new stream basis for the flowsheet stream, which will result in any of the supplied data (if desired) being converted to the new basis. Figure 7.5 There are three options when a new basis is chosen for the streams compositional basis. You can choose to set all supplied values to unknown, convert the previously supplied value to the new basis, or retain the values as supplied and have them interpreted in the new basis. 7-9 7-10 Heat Exchanger Network Data The next step is the installation of the fitting parameters. Go to the Parameter Fit tab. Figure 7.6 The Fit Parameters that are seen in the table on this tab are selected via the Add button beside the Fit Parameter drop down menu. When you click on the Add button, the Select Optimization Variable view is displayed. The first Fit Parameter that was selected for the DRU was the E-100 object, Spec Value variable and the UA variable specifics as shown in Figure 7.7. Figure 7.7 7-10 Data Reconciliation Utility 7-11 Selection of Tags Move to the DCS Tags tab in the Data Reconciliation Utiltiy property view. Figure 7.8 The Input DCS Tags that are seen in the Tag Filter group on this tab are selected via the Add button beside the DCS Tags drop down menu. When you click on the Add button, the Select Optimization Variable view is displayed. The first Input DCS Tag that was selected for the DRU was selected as shown in below. Figure 7.9 7-11 7-12 Heat Exchanger Network Data The tag is automatically placed in the Tag Filter list as the variable (Stream 2 Flow) is specified in the flowsheet. The Output DCS Tags were added as shown below. Figure 7.10 If you return to the Configuration tab of the Utility, and specify the minimum number of data sets to be 4 the appropriate number of data sets will be created for each tag and DRU Stream. Return to the DCS Tags tab and in the Tag Filter group, click on the All radio button and the Parameters radio button. The configuration data was supplied for each of the Input and Output tabs as described in the following table: 7-12 Tag Offset Limit Scale Sigma Calc Bias Use Bias 2 Flow 0 0 1 1000 False False 3 Flow 0 0 1 1000 False False 59 Flow 0 0 1 1000 False False 30 Flow 0 0 1 1000 False False 14 Flow 0 0 1 1000 False False 1 Flow 0 0 1 1000 False False Data Reconciliation Utility Tag Offset Limit Scale Sigma Calc Bias Use Bias 61 T 0 0 1 1000 False False 4T 0 0 1 1000 False False 5T 0 0 1 1000 False False 7T 0 0 1 1000 False False 8T 0 0 1 1000 False False 7-13 The DCS Tags tab appears as follows: Figure 7.11 Select the Measured Data radio button and view the data: Tag Data Set 1 Data Set 2 Data Set 3 Data Set 4 2 Flow (lbmole/hr) 900 1000 1100 1200 3 Flow (lbmol/hr) 1450 1550 1650 1750 59 Flow (lbmol/hr) 600 550 500 450 30 Flow (lbmol/hr) 1500 1600 1700 1800 14 Flow (lbmol/hr) 1350 1450 1550 1650 1 Flow (lbmol/hr) 2350 2550 2750 2950 61 T (F) -33.25 -33.16 -33.06 -32.96 4 T (F) -24.48 -23.01 -21.59 -20.24 7-13 7-14 Heat Exchanger Network Data Tag Data Set 1 Data Set 2 Data Set 3 Data Set 4 5 T (F) -59.96 -56.64 -53.63 -50.88 7 T (F) -37.89 -37.12 -36.34 -35.57 8 T (F) -44.85 -43.85 -42.80 -41.76 Figure 7.12 7-14 Derivative Utility and Optimizer 8-1 8 Derivative Utility and Optimizer 8.1 The Derivative Utility.................................................................................... 3 8.1.1 Required Input for Variables..................................................................... 8 8.1.2 Required Input for Constraints ................................................................. 9 8.1.3 Objective Function Variables.................................................................. 10 8.2 Optimizer..................................................................................................... 11 8.2.1 Running the Optimization....................................................................... 12 8-1 8-2 8-2 Derivative Utility and Optimizer 8.1 8-3 The Derivative Utility In order to further illustrate how to use HYSYS.RTO to solve optimization problems, the following process is used. This example models the distillation of a crude tower. The Optimizer will be use to determine the optimum steam feed rates. Figure 8.1 Step 1. Installing/Viewing the Derivative Utility Open the R-13opt.dox.hsc case which can be found in the HYSYS.RTO Cases folder. You can view the PFD by clicking on the PFD button in the Tool Bar. PFD Button To install a Derivative Utility, open the Tools menu and select Utilities. Click on Derivative Utility in the list box on the right and click on the Add Utility button. In the case that you’ve opened, R-13opt.dox.hsc, a Derivative Utility has already been installed, so you will view that utility. In the list box on the left, click on Utility-1 and then click on the View Utility button. The Derivative Utility property view appears as shown in Figure 8.2. 8-3 8-4 The Derivative Utility Figure 8.2 Selection of Unit Operation(s) The first step in the implementation of the Derivative Utility is the selection of the unit operations to be considered (press the Operations button). This will produce the following dialog: Figure 8.3 There are three modes for the derivative utility: 8-4 Derivative Utility and Optimizer 8-5 • Flowsheet Wide - this mode is appropriate when minimal flowsheet tearing is to be employed, and no special derivative and solution mechanisms (such as extension operations) are to be utilized. In this mode, a single derivative utility is utilized for the entire flowsheet. • Specific Unit Operation - typically this will be a SubFlowsheet, which will be torn on both the feeds and products. The SubFlowsheet will typically contain several unit operations which will be solved either using the HYSYS standard solver, or one of the column solvers. • Extension Operation - utilized when the SubFlowsheet contains an extension operation which will be solved using the available OLE functions to allow the solver to solve the model equations as part of the optimization problem. It is best to select the desired unit operation prior to installing any of the remaining optimization objects. You should attach all existing optimization objects to the Derivative Utility, and this is how the correct mode is chosen. For this example, a Specific Unit Operation (T-100) is selected for the derivative utility. We will use this mode because we want to optimize variables in pertaining to the T-100 unit operation. Figure 8.4 Installing Optimization Variables from the Utility Optimization objects appropriate for the utility (in the case of the Derivative Utility - Optimization Variables, Constraints and Objective function variables) can be added directly from the view. In the Derivative Utility Configuration group, there is a drop down menu on the right hand side of the group. The drop down list contains three options, Propcons, OptVars and ObjFunc. 8-5 8-6 The Derivative Utility Figure 8.5 By choosing the appropriate option (OptVar in this case) and pressing the Add button to the left of the drop down menu, the selection view is displayed. Figure 8.6 By making the selection as shown, the Optimization Variable is created and is added into the utility. By default, the new object is given the next available name. However, you can edit the name of the object directly from the utility view by highlighting the name in the Object Name column and typing in a new string. 8-6 Derivative Utility and Optimizer 8-7 When optimization objects have been created for the model, they are displayed in a WorkSheet format as shown below. Figure 8.7 The Object Name column allows you to modify the name of the created variables. In addition, the Attached Object and Attached Property are also displayed in the view, as well as the variable's current value. The start value is updated at the start of an optimization run. There are several other properties displayed on this view. If desired, you may look at them now. The Independent Properties radio buttons filter the overall list of variables to those of the specific types described previously. In addition, the Master and Runtime lists will toggle the display between all objects, and those which are being considered for the current evaluation. The properties themselves can be filtered into: • • • • All - all properties Input - properties requiring user input Output - calculated and outputted values Results - solution results. 8-7 8-8 The Derivative Utility 8.1.1 Required Input for Variables The only required input for optimization variables are: Optimize Flag, Minimum, Maximum, Range (optional), Global Minimum and Global Maximum. The latter are appropriate only for real time applications, and can be set at the same values as the minimum and maximum. The Optimize flag works in conjunction with Run Time and Master lists. When the optimization problem is being set up, this flag is evaluated for each variable. If the flag is false, then the variable will not be exposed to the Optimizer and the value will remain at its starting value for the length of the solution. With this, you can switch problems easily by turning variables and constraints on and off. The value for the variable Range is used for the calculation of a perturbation, range x perturbation factor. If none is provided, then the span (maximum - minimum) is used for the calculations. All required input for the variables can be done through the Utility view, which provides access to unit conversion capabilities. The following tab shows all inputs of optimization variables: Figure 8.8 8-8 Derivative Utility and Optimizer 8-9 Constraints (ProcCons) and Objective Function (ObjFunc) objects can similarly be added from the view by choosing the appropriate option in the drop down menu next to the Add Button. 8.1.2 Required Input for Constraints The required inputs for Constraints are: Use Flag, Minimum, Maximum and Scale. All constraints are treated by the Optimizer as ranged constraints, i.e., the value of the constraint should lie between the minimum and maximum at solution, within the prescribed Scale tolerance. The scale can be considered as an approach, the boundary around the minimum and maximum values that define whether the constraint is active, or violated. This information is reported during and after the solution as the status of the constraint. The following tab shows input of constraints. To view this tab, click on the Constraints/Objective Function tab and select the Proc. Constraints radio button in the Dependant Properties group box, as shown in Figure 8.9: Figure 8.9 8-9 8-10 The Derivative Utility 8.1.3 Objective Function Variables Objective function variables are installed individually, which facilitates the calculation of the gradient during the course of Jacobian evaluations. Alternatively, an Objective Function can be built in a spreadsheet operation, with a single cell representing the results, and having a single objective function object attached to this result cell. For this problem, individual objective function objects are installed as shown below. Note that the Prices of the objective function objects are based on Field Units. To view this screen, change the Dependant Properties radio button to Obj. Functions. Figure 8.10 At this point, all required input (for the various objects) has been provided, and the Optimizer can be invoked. 8-10 Derivative Utility and Optimizer 8.2 8-11 Optimizer The Optimizer interface is used to collect all of the derivative utilities within the current simulation case and provide them to the Optimizer. The Optimizer is invoked by pressing F5 or, open the Simulation menu and then select Optimizer. In order to access the configuration options for the Optimizer, you must first select the Optimization radio button at the bottom of the view. This will provide access to the Optim Configuration tab, as shown below. Figure 8.11 In addition, the Optimizer Control drop down at the bottom of the view provides the mechanism to Start, Stop, Restart, and control the solving mode of the Optimizer. 8-11 8-12 Optimizer The Configuration group box in the upper left corner of the view contains a collection of radio buttons which control the information and input options that are displayed: • SetUp - Selection of the optimization scheme, print levels, as well displaying the running results • Tolerances - Specification of Optimizer settings and solution tolerances. • Flags - Access to a number of flag settings which control the solution mechanism 8.2.1 Running the Optimization Once all of the information has been configured, the model can be run. To run the model, select Start on the Optimizer Control view, using the drop down menu. You may have to scroll though the list in order to find this option. Figure 8.12 While the model is running, you can move through HYSYS, but don't change any of the values. 8-12 Derivative Utility and Optimizer 8-13 You can examine the results on the variables and constraints via the Derivative Utility. This screen is accessed through the Derivative Utility group box in the Optimizer view. Figure 8.13 8-13 8-14 Optimizer Figure 8.14 Examining the Process Constraints/Results combination, the constraints have been sorted to show those which are violated, followed by those which are active, followed by those which are inactive. For more information, you can also look at the information displayed when the Obj. Functions radio button is selected. Here we can see the cost/profit of each item. 8-14 Index B Central difference interval See also ESTIM DRU initial problem parameters COLD start See also ESTIM DRU initial problem parameters Collection Utilities 3-5 constraints/objective function 3-9 creating 3-7 data reconciliation 3-5 derivative 3-5 derivative analysis 3-9 independent variables 3-9 structural non-zeroes 3-9 Cond H See also ESTIM DRU iteration output Cond Hz See also ESTIM DRU iteration output Cond T See also ESTIM DRU iteration output Conv See also ESTIM DRU iteration output Crash tolerance See also ESTIM DRU initial problem parameters heat exchanger 7-3 Data Recon Utility 7-1 DCS tag selection 7-11 DCS Tag terminology 7-4 DCS Tags 7-3 fitting parameter terminology 7-4 fitting parameters 7-3 installing and viewing 7-5 property view 6-9 Configuration tab 6-10 DCS Tags tab 6-16, 7-11 Parameter Fit tab 6-15, 7-10 Results tab 6-12 Stream Initialization tab 6-14, 7-8 selecting unit ops 7-7 stream 7-3 Data Reconciliation parameter estimation problem 3-6 Data Set Configuration See also Data Recon Utility Configuration tab Derivative Analysis 3-16 Derivative level See also ESTIM DRU initial problem parameters Derivative Utility 3-10, 5-1 (dependent) constraints calculations 5-14 (dependent) constraints properties 5-9 independent variable calculations 5-8 independent variable properties 5-3 Difference interval See also ESTIM DRU initial problem parameters DRU Stream See also Data Recon Utility stream D E Data Recon EPS (machine precision) Bnd See also ESTIM DRU iteration output C I-1 I-2 See also ESTIM DRU initial problem parameters Estim Data Set Analysis 6-17 ESTIM DRU applications 6-4 basic methods 6-6 benefits 6-4 diagnostic file output 6-23 final output 6-27 initial problem parameters 6-23 iteration output 6-25 error detection/correction 6-5 facilities 6-5 fitting configuration 6-9 general notes 6-22 gross error detection 6-22 measurement problem 6-6 model updating 6-5 overview 6-1 practical considerations 6-7 solution 6-7 utilities 6-5 utilizing 6-5 Estim Offline 6-8 See also ESTIM DRU iteration output ItQP See also ESTIM DRU iteration output J JJ initial Hessian See also ESTIM DRU initial problem parameters L Flowsheet Tearing 3-7 Flowsheet Wide 7-7 Function precision See also ESTIM DRU initial problem parameters Lagr Mult See also ESTIM DRU final output Lin See also ESTIM DRU iteration output Linear constraints See also ESTIM DRU initial problem parameters Linear feasibility See also ESTIM DRU initial problem parameters Linesearch tolerance See also ESTIM DRU initial problem parameters Lower Bound See also ESTIM DRU final output H M HYSYS.RTO+ definition 1-3 installation 2-1 requirements 2-3 using the program 3-1 Majits See also ESTIM DRU final output Major iterations limit See also ESTIM DRU initial problem parameters Major print level See also ESTIM DRU initial problem parameters Minor iterations limit See also ESTIM DRU initial problem parameters Minor print level See also ESTIM DRU initial problem parameters Model updating 6-8 F I Infinite bound size See also ESTIM DRU initial problem parameters Infinite step size See also ESTIM DRU initial problem parameters Inform See also ESTIM DRU final output I-2 Itn Index N Ngrad See also ESTIM DRU final output Nonlinear constraints See also ESTIM DRU initial problem parameters Nonlinear feasibility See also ESTIM DRU initial problem parameters Nonlinear Jacobian vars See also ESTIM DRU initial problem parameters Nonlinear objective vars See also ESTIM DRU initial problem parameters Norm Gz See also ESTIM DRU iteration output NormGf See also ESTIM DRU iteration output Nz See also ESTIM DRU iteration output O Objective See also ESTIM DRU iteration output Optim Configuration actual optimizer 4-9 algorithm 4-4 base search step 4-14 bind 4-12 code version 4-10 cost 4-12 diagnostic print level 4-5 DV_level 4-7 feasible point iterations 4-9 fix variable spans 4-18 flag inputs 4-16 FPS Hessian diagonal 4-14 function precision 4-11 gradient 4-12 gradient calculations 4-5 gradient evaluations 4-10 include fixed constraints 4-17 I-3 include scales 4-18 Jacobian elimination 4-14 linesearch tolerance 4-11 LP options 4-4 major damping parameter 4-15 max. allowed move 4-14 max. constraint relaxations 4-6 max. CPU usage 4-15 max. feasible point 4-6 max. Hessian resets 4-6 max. iteration step 4-13 max. iterations 4-5 minor damping parameter 4-15 model evaluations 4-10 NAG calculated gradients 4-17 nonlinear row tolerance 4-11 numerical gradients 4-18 objective scale factor 4-15 objective value 4-7 omit tech. constraints 4-16 OPT Hessian diagonal 4-14 optimality tolerance 4-11 penalty parameter 4-15 pert_reset 4-19 perturbation 4-13 recentre 4-17 relaxed violated constraints 4-16 restricted step 4-17 row tolerance 4-11 scaling type 4-15 set up inputs 4-4 sigma 4-11 solution phase 4-9 sparse Jacobian 4-18 start objective 4-10 step 4-12 termination reason 4-7 tolerance inputs 4-10 total CPU time 4-10 verify 4-7 zeta 4-12 Optimality tolerance See also ESTIM DRU initial problem parameters Optimization problem 3-7 Optimization Objects 3-4, 6-17 constraints 3-5 DCS Tags 3-5 I-3 I-4 fitting parameters 3-5 installation 3-14 objective function variables 3-5 optimization variable 3-5 property view Connection tab 6-18 Properties tab 6-19 Transfer tab 6-21 types 3-14 Optimizer 4-1 calculations 4-20 interface 3-6, 4-3 optim configuration 4-4 results 4-20 P Parameter Estimation DCS Tags 7-3 fitting parameters 7-3 Parameter/Offsets See also Data Recon Utility Results tab Problem Formulation See also Data Recon Utility Configuration tab R Reset frequency See also ESTIM DRU initial problem parameters Residual See also ESTIM DRU final output S Simultaneous Modular Optimization 3-3 Solver Parameters and Tolerances See also Data Recon Utility Configuration tab State See also ESTIM DRU final output Step See also ESTIM DRU iteration output Step limit See also ESTIM DRU initial problem parameters SubFlowsheet 3-3 I-4 implementation in HYSYS.RTO+ 3-4 overview 3-4 T Technical Support 1-8 agents 1-11 centres 1-9 offices 1-10 U Upper bound See also ESTIM DRU final output Use of Manuals conventions 1-5 mouse actions 1-5 Utilities Bad Data Elimination 6-5 Data Reconciliation 6-5 Parameter Estimation 6-5 V Value See also ESTIM DRU final output Varbl See also ESTIM DRU final output Verify level See also ESTIM DRU initial problem parameters