[go: up one dir, main page]

GB2393528A - A method of using a multiple input/output advanced control block to control a process - Google Patents

A method of using a multiple input/output advanced control block to control a process Download PDF

Info

Publication number
GB2393528A
GB2393528A GB0330235A GB0330235A GB2393528A GB 2393528 A GB2393528 A GB 2393528A GB 0330235 A GB0330235 A GB 0330235A GB 0330235 A GB0330235 A GB 0330235A GB 2393528 A GB2393528 A GB 2393528A
Authority
GB
United Kingdom
Prior art keywords
control
block
mpc
model
inputs
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
GB0330235A
Other versions
GB2393528B (en
GB0330235D0 (en
Inventor
Terrence L Blevins
Wilhelm K Wojsznis
Vasiliki Tzovla
Dirk Thiele
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fisher Rosemount Systems Inc
Original Assignee
Fisher Rosemount Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US09/412,078 external-priority patent/US6445963B1/en
Application filed by Fisher Rosemount Systems Inc filed Critical Fisher Rosemount Systems Inc
Publication of GB0330235D0 publication Critical patent/GB0330235D0/en
Publication of GB2393528A publication Critical patent/GB2393528A/en
Application granted granted Critical
Publication of GB2393528B publication Critical patent/GB2393528B/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/04Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators
    • G05B13/048Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators using a predictor
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/0265Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion
    • G05B13/0285Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion using neural networks and fuzzy logic
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B17/00Systems involving the use of models or simulators of said systems
    • G05B17/02Systems involving the use of models or simulators of said systems electric

Landscapes

  • Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Automation & Control Theory (AREA)
  • Evolutionary Computation (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Feedback Control In General (AREA)

Abstract

A method of using a multiple input/output advanced control element, such as a function block, to control a process 174 includes the steps of generating a process simulation element 176 from a process model 178, connecting the process simulation element 176 to the advanced control element and using the advanced control element to control the process simulation element 176. The method may also include the step of testing the advanced control element before using it to control the process 174, and the step of generating a process control simulation element 176 may involve altering the process model 178 and using the altered process model to generate the simulation element 176 (see figure 8). A further step of the method may be to compare outputs Y1 Y2 Y3 of the process 174 with outputs Y1SIM Y2SIM, Y3SIM of the process simulation element 176 to measure process/process-model mismatch.

Description

GB 2393528 A continuation (74) Agent and/or Address for Service: Forrester
Ketley & Co Chamberlain House, Paradise Place, BIRMINGHAM, B3 3HP, United Kingdom
PATENTS ACT 1977
Title: Integrated Advanced Control Blocks in Process Control Systems Description of Invention
The present invention relates generally to process control systems and, more particularly, to flee use of advanced control blocks, such as model predictive and neural networl; control llocl;s, in process control systems.
Process control systems, scl, as distributed or scalable process control systems lil;e those used in clemical, petroleum or other processes, typically include one or Norm process controllers comTnu,icatively coupled to each other; to at least one lust or operator \vorl;station and to one or more field
devices via analog, digital or combined analog/diaital louses. The field devices,
Rich may be, for e.xa,ule bivalves, valve positioners, switcles and transmitters (e.g., temperature, pressure and flow rate sensors), perform functions within the process such as opening or closing valves and measuring process parameters.
Else process controller receives signals indicative of process measurements nade lay the field de\'ices ad/or otler of infonnatio' pertaining to the field
devices, uses this iifonnatiori to implement a control routine and then generates control signals whicl, are sent over tle louses to the field devices to control the
operation of tle process. Information fiom tle field devices and the controller
is typically made available to one OT more applications executed by the operator orlistation to eagle all operator to peTfotn any desired Fiction with respect to the process, surly as vie;i', flee current state of the process. modifying tle operation of the process, etc In tle past, co'ventioal field devices were ttsed to send and receive
analog, (em., 4 to 20 T,illi;mp) signals to and front the process controller via an analog BUS OT analog lines. These to 90 no signals were limited in nature in that tley' were indicative of ',easurer,etts Tirade by the Deice or of control
/ signals generated by the controller required to control the operation of the device. FIowever, in the past decade or so, smash field devices including a
microprocessor and a nenoy leave become prevalent in the process control industry. In addition to perfonning a primary function within the process, small field devices store data pertaining to the
( device, communicate with the controller and/or other devices in a digital or combined digital and analog format, and perform secondary tasks such as self-
calibration, identification, diagnostics, etc. A number of standard and open smart device communication protocols such as the HART., PROFIBUS2, WORLDFIP, 5 Device-Net'9, and CAN protocols, have been developed to enable smart field
devices made by different manufacturers to be used together within the same process control network.
Moreover, there has been a move within the process control industry to decentralize process control functions. For example, the all-diital, twowire bus 10 protocol promulgated by the Fieldbus Foundation, known as the FOUNDArIONT\,
Fieldbus (hereinafter "Fieldbusn) protocol uses function blocks located in different
field devices to perform control operations previously performed within a
centralized controller. In particular, each Fieldbus field device is capable of
including and executing one or more function blocks, each of which receives inputs 15 from andlor provides outputs to other function blocks (either within the same device or within different devices), and performs some process control operation, such as measuring or detecting a process parameter, controlling a device or performing a control operation, like implementing a proportonal-derivative-integral (PID) control routine. The different function blocks within a process control system are 20 configured to communicate with each other (e.g., over a bus) to form one or more process control loops, the individual operations of which are spread throughout the process and are, thus, decentralized.
Process controllers are typically prograrTuned to execute a different algorithm, sub-routine or control loop (which are all control routines) for each of a 2' number of different loops defined for, or contained within a process, such as flow control loops, temperature control loops, pressure control loops, etc. Generally speaking, each such control loop includes one or more input blocks, such as an analog input (AI) function block, a single-output control blocI;, such as a proportional-integralderivative (PID) or a fuzzy logic control function block, and a 0 single output blocl;, such as an analog output (AO) function block. These control
( loops typically perform single-inputlsingle-output control because the control block creates a single output used to control a single process input, such as a valve position, etc. However, in certain cases, the use of a number of independently operating, single-inputisingle-output control loops is not very effective because the 5 process variables being controlled are effected by more than a single process input and, in fact, each process input may effect the state of many process outputs. An example of this might occur in, for example, a process having a tank being filled by two input lines, and being emptied by a single output line, each line being controlled by a different valve, and in which the temperature, pressure and.
10 throughput of the tarp are being controlled to be at or near desired values. As indicated above, the control of the throughput, the temperature and the pressure of the tams may be performed using a separate throughput control loop, a separate temperature control loop and a separate pressure control loop. However, in this situation, the operation of the temperature control loop in changing the setting of 15 one of the input valves to control the temperature within the tam: may cause the pressure within the tank to increase, which, for example, causes the pressure loop to open the outlet valve to decrease the pressure. This action may then cause the throughput control loop to close one of the input valves, thereby, effecting the temperature and causing the temperature control loop to talce some other action. As 20 will be understood in this example, the sino]e-inputJsinole-output control loops cause the process outputs (in this case, throughput, temperature and pressure) to oscillate without ever reaching a steady state condition, which is undesirable.
Model predictive control or other tripes of advanced control have been used in the past to perform control in these types of situations. Generally speaking, 2: model predictive control is a multipleinputlmultiple output control strategy in which the effects of changing each of a number of process inputs on each of a number of process outputs is measured and these measured responses are then used to create a model of the process. The model of the process is inverted mathematically and is then used as a multiple-input/multiple-output controller to 30 control the process outputs based on changes made to the process inputs. In some
(\ cases, the process model includes a process output response curve for each of the process inputs and these curves may be created based on a series of, for example, pseudo-random step changes delivered to each of the process inputs. These response curves can be used to model the process in known mariners. Model 5 predictive control is}known in the art and, as a result, the specifics Hereof will not be described herein However, model predictive control is described generally in Qin, S. Joe and Thomas A. Badgwell, UAn Overview of Industrial Model Predictive Control Technology,n AlCkE Conference, 1996.
In the past, creating a model predictive controller and placing that co, ntroller 10 in a process control network required a significant amount of time and effort and could be extremely expensive. Usually, to create a model predictive controller for a particular process, a process expert (typically an out-side consultant) was employed to come tO the plant and observe the plant or process operation. After choosing the appropriate process inputs and outputs for the model predictive 15 controller, the expert sat in the control room and instructed the operator to deliver a series of stepped input waveforms to each of the chosen process inputs and to measure the effect of each of these inputs on each of the chosen process outputs.
After collecting all of the process data, the expert generally delivered the collected data to an off-line system. There, the expert ran a first routine to screen the 20 collected data for the purpose of elirninatin bad data, such as data collected when the process was not operating normally, washout down or in which some other error was present which prevented the collected data from representing normal operation of the process. The off-line system then ran a second routine using the screened data to create a model of the process. Thereafter, the model of the process 2: was inverted or used in other known manners to create a model predictive controller for the process. Once the model predictive controller was created, it then had to be inserted into the process control system which generally meant that a process engineer had to program the control routines already within the control system to deliver each of the specified controller inputs (i e., process outputs) to the model 30 predictive controller and to have the model predictive controller deliver each of the
l controller outputs (i.e., process inputs) to the appropriate place in the control system to perform control. Although some venders used the same names for the model predictive controller inputs and outputs as used in the process control routine or system, in some cases, it was necessary to match up the inputs and outputs of the 5 model predictive controller to the process outputs and inputs, as defined within the process control system. In any event, the step of incorporating a model predictive controller into a process control system could require a great deal of programming effort. Consequently, although generally I;nown in the art, flee creation of the 10 process model from the collected data, the creation of the model predictive controller and the incorporation of this controller into a process is time corlsurnin, :,eneraIly requires the input of an expert and can be very expensive. In fact, it can take several months and cost hundreds of thousands of dollars to create a sole model predictive controller for a process. Unfortunately for the process operator, 15 changes in the process, such as those caused by aging of the process equipment, can force the created model predictive controller to be obsolete or mismatched to the process, which means that the whole process has to be performed again to create another model predictive controller.
Stil] further, because the model predictive controller seas typically created by 20 an off-line system, this controller was generally not integrated into the process - control system in the same manner as single looper other control routines executed by the control system and, therefore, required special graphics to be created for the user or operator to view the state and operation of the model predictive controller.
For this reason, it was hard to incorporate model predictive controllers into process 25 control systems, such as the DeltaV_ control system sold by Fisher Rosemount Systems, Inc., which have a process control display mechanism integrated with the operation of control blocks or control loops within the controller. In fact, the DeltaV system provides different views, such as an engineer's view, an operator's view and the like which display operation of the process to a user. Once set up, 30 these views are automatically updated by the operation of function blocks executed
i within, for example, the process controller. However, to add a view or other information screen for a model predictive controller designed offline by a different system, special graphics displays had to be created, typically in a different fonnat than that used by the DeltaV system.
While these problems exist for model predictive cone oilers, the same or similar problems exist in tle development and use of other advanced multiple-
input/mulEple output control blocks or systems, such as neural network modeling or control systems, multi-vatiable fuzzy logic controllers, real time . optimizers, etc.
I According to the i,avention, we provide a method of using a multipleiput/m:ltiple output advanced control element capable of controlling a process, wlerei., the advanced control element was generated using a process model developed for tle process, the method comprising the steps of: generating a process si',nrlation element fi ore the process model; com',nunicatively connecting tle pr ocess simulation element to the advanced control ele,nent; and Using the advanced control element to control the process simulation element. An advanced control llocl; i, mplemets multiple-input/multiple-output control, such as model predictive control, neural netwo,tl; modeling or control, etc., within a process control system in a planner blat is integrated with the control blocks implemented using a control paradigm, such as the Fieldbus
paradigm. The advanced control 'olocl; Inlay be initiated by creating a control block havin;, desired inputs and outposts to be connected to process outputs and inputs, respectively, for. controlling, a process. The control block may be intended to ultimately include, for. exa,taple, a complete model predictive controller, but initially leas a data collection routine and a vavefonn generator associated therewith,.. If desired, tle control 'olock may have control logic that is untuned o' otle,vise undeveloped because this logic is missing tuning parameters, matrix coefficients or other control parameters necessary, to be
i implemented. The control blocl; is placed within the process control system with the defined inputs and outputs communicatively coupled within the conho1 system in the manner these inputs and outputs would be connected if the advanced control block was being used to control the process. During a test procedure, the control blocl; systematically upsets each of the process inputs via the control block outputs using waveforms generated by the waveform generator specifically designed for rise in developing a process model. Then, via the control block inputs, the control block coordinates the collection of data pertaining to the response of each of the process outputs to each of the generated wavefonns delivered to each of the process inputs. This data may, for example, be sent to a data historian tO be stored.
After sufficient data has been collected, a process modeling procedure is run in which a process model is generated from tle collected data using, for example, a model predictive controller process model generation routine.
Thereafter, an advanced control block logic parameter determination routine is used to create or develop the parameters needed by the control logic to lie used to control the process. Tle contiol logic parameters and, if needed, the process model, are then downloaded to tle control block tO complete formation of the advanced control block so blat tile advanced control block, with the advanced control logic parameters and process model therein, can be used to control the process. The advanced control blocl; can be designed in the same format or according to the saline prograrnning paradigm as other control llocl;s within the process control system and, tlerefore, can support the sate graphical views supported by the Oliver blocks (or elements) within tle process control routine Thus, the advanced control blocl; may hare one or more graphical views to be displayed to one or snore users and may send data to these views during operation of the advanced control blocl;.
Furtleore, tle process model generated by the process modeling
O procedure may be used to simulate operation of the process and/or to simulate interaction of the process and tle advanced control block. In one case, a process simulation blocl: Nay be created from the determined process model and Allis process simulation blocl; nosy be communicatively connected to the created ad aced control block to test the operation of else advanced control block before using the advanced control blocl; to control the actual process. In another case, a process simulation Foci may be created using an altered version of the determined process model to reflect ageing or other changes within the process. This simulation block may be communicatively connected to the advanced control blocl; to simulate operation of the advanced control block in tle presence of cleanses to the process to thereby determine the peforrnance of tle advanced control llocl; in the presence of process model rusmatch. In a still further case, a simulation llock developed from the process model may be run in conjunctio', svitl, the piocess and may be used to create virtual process outputs to be used as inputs for tle advanced control blocl; when, for example, a sensor measuring one of the actual process outputs fails.
The simulated process outputs may also lie compared to the actual process outputs to determine the amount of mismatch between the process and the process model used to create flee advanced control blocs;, i.e. the process/process-model mismatch.
The invention will now lie described l,> \vay of example with reference to the accompanying drawings ill which: Fig. I is a block/sclenatic diary of a process control system in which an advanced control blocl; can lie created and vised; Fig. 2 is a flow diagram illustrating' the operation and creation of an advanced control bloc within the process control system of Fig 1; Fig. 3 is a block diagram of a model predictive control 11ocl; connected within a process control routine to control a process; Figs. 4A and 4B are a block dia;,ram of a model predictive control
\ t function block connected to function blocks within a process control routine to coordinate an existing control strategy; Fig. 5 is a block diagram of a model predictive control function block corrected to firuction blocks within a process control routine to coordinate singleloop control routines; Fig. 6 is an example screen display generated by a process modeling tool used to develop an advanced control blocl; Fig. 7 is a block/sclematic diagram of portions of the process control system of Fig. 1 illush-ati', the use of graphical views associated win an advanced control block; Fig. 8 is a block dia,ran of a model predictive control block connected to a process simulation blocl;; Fig. 9 is an example screen display; enerated by a process modeling tool used to develop an advanced control block or to develop a process simulation block; Fig. lo is an example screen display generated by a process modeling tool used to develop an advanced control block or to develop a process simulation block; and Fig. I I is a blocl; diagran of a model predictive control Flock connected to both a process and a process simulation blocl; which simulates the operation of the process to produce victual process outputs.
Referring now to Fig. 1 a process control system to includes a process controller 11 connected to a data 1,istoria 12 and to ogle or more host workstations or computers 13 (wlicl, may be any type of personal computers workstations etc.) eagle having a display screen 14. The controller l l is also connected to field devices l- via input/output (I/O) cards 96 and 28. The
data historian 12 may be any desired type of data collection unit having any desired type of memory and any desired or l;nown software hardware or firmware for storing data and Nay lie separate fiom (as illustrated in Fig. l) or a
\l part of one ofthe workstations 13. Tle controller 11, which may be, by way of example, the DeltaV_ controller sold by Fisher-Rosemount Systems, Inc., is communicatively connected to the host computers 13 and the data historian 12 via, for example, an etlenet connection or any other desired conrunication network. The controller 11 is also connunicatively connected to the field
devices 15-22 using any desired hardware and software associated with, for example, standard 4-90 ma devices and/or any smart communication protocol such as the Fieldbus protocol, the HART protocol, etc.
The field devices 15-92 nosy be any types of devices, such as sensors,
valves, transmitters, positioners, etc. Elaine tle 1/0 cards 26 and 28 may be any types of I/O devices conforming to any desired communication or controller protocol. In the enlodinent illustrated in Fig. 1, the field devices 15-18 are
standard 4-90 ma devices that cotnnunicate offer analog lines to the I/O card 26 while the field devices 19-22 are sneak devices, stcl as Fieldbus field devices,
that communicate over a digital bus to the I/O card 28 using Fieldbus protocol
communications. Generally speaking, the Fieldbus protocol is an all-di, ital, serial,
twv-way corarnunication protocol that provides a standardized physical interface to a two-wire loop or bus which interconnects field devices. The Fieldbus protocol
provides, in effect, a local area network for field devices within a process, which
errables these field devices to perform process control functions (using function
blocks defined according to the Fieldbus protocol) at locations distributed
throughout a process facility and to communicate with one another before arid after the performance of these process control functions to implement an overall control strategy. It will be understood that, while the Fieldbus protocol is a relatively new
10 all-digital conrnunication protocol developed for use in process control networks, this protocol is known in the art and is described in detail in numerous articles, brochures and specifications published, distributed, and available from, among
others, the Fieldbus Foundation, a not-for-proft organization headquartered in
Austin, Texas. As a result, the details of the Fieldbus communication protocol will
15 not be described in detail herein. Of course, the field devices 15-22 could conform
to any other desired standard(s) or protocols, including any standards or protocols developed in the future.
The controller 11 implements or oversees one or more process control routines, which may include control loops, stored therein or othenvise associated 20 therewith and communicates with the devices 1-2', the host computers 13 and the data historian 12 to control a process in any desired manner. It should be noted that any control routines or elements described herein may have parts thereof implemented or executed by different controllers or other devices if so desired.
Likewise, the control routines or elements described herein to be implemented 2: within the process control system 10 may take any form, including software? firmware, hardware, etc. For the purpose of this invention, a process control element can be any part or portion of a process control system including, for example, a routine, a block or a module stored on any computer readable medium.
Control routines, which may be modules or any part of a control procedure such as 30 a subroutine, parts of a subroutine (such as lines of code), etc. may be implemented
( 'A in any desired software format, such as using ladder logic, sequential fimction charts, Unction block diagrams, or any other software programming language or design paradigm. Likewise, the control routines may be hard-coded into, for example, one or more EPROMs, EEPROMs, application specific integrated circuits 5 (ASICs), or any other hardware or firmware elements. Still further, the control routines may be designed using any design tools, including graphical design tools or | any other type of software/hardware/trmware programming or design tools. Thus, the controller 1 l may be configured to implement a control strategy or control routine in any desired manner., 10 In one embodiment, the controller 1 I implements a control strategy using what are commonly referred to as function blocks, wherein each function block is a part (e. g. a subroutine) of an overall control routine and operates in conjunction with other function blocks (via communications called links) to implement process control loops within the process control system 10. Function blocks typically 15 perform one of an input function, such as that associated with a transmitter, a sensor or other process parameter measurement device, a control function, such as that associated with a control routine that performs PID, filmy logic, etc. control, or an output function which controls the operation of some device, such as a valve, to perform some physical function within the process control system 10. Of course 20 hybrid and other types of function blocks exist. Function blocks may be stored in and executed by the controller I l, which is typically the case when these Unction blocl;s are used for, or are associated faith standard 4-20 ma devices and some types of smart field devices such as HART devices, or may be stored in and implemented
by the field devices themselves, which can be the case with Fieldbus devices.
25 While the description of the control system is provided herein using a function
block control strategy, the control strategy or control loops or modules could also be implemented or designed using other conventions, such as ladder logic, sequential function charts, etc. or usin= any other desired programming language or paradigm.
l \S As illustrated by the exploded block 30 of Fig. 1, the controller 11 may include a number of single-loop control routines, illustrated as routines 32 and 34, and, if desired, may implement one or more advanced control loops, illustrated as control loop 36. Each such loop is typically referred to as a control module. The 5 single-loop control routines 32 and 34 are illustrated as performing signal loop control using a sinle-input/single-output fuzzy logic control block and a single input/single-output PID control block, respectively, connected to appropriate analog input (AI) and analog output (AO) function blocks, which may be associated with process control devices such as valves, with measurement devices such as 10 temperature and pressure transmitters, or with any other device within the process control system 10. The advanced control loop 36 is illustrated as including an advanced control block 38 having inputs communicatively cormected to numerous AI function blocks and outputs communicatively connected to numerous AO function blocks, although the inputs and outputs of the advanced control block 38 15 may be connected to any other desired function blocks or control elements to receive other types of inputs and to provide other types of control outputs. The advanced control block 38 may be any type of multipleinput/multiple-output control block used to control two or more process outputs by providing control signals to two or more process inputs. While the advanced control block 38 will be 20 described herein as being a model predictive control (MPC) block, the advanced control block could be any other multiple-input/multiple-output block, such as a neural network modeling or control blocI:, a muki-variable fuzzy logic control block, a real-time-optimizer block, etc. It will be understood that the function blocks illustrated in Fig. 1, including the advanced control block 3S, can be 25 executed by the controller 11 or, alternatively, can be located in and executed by any other processing device, such as one of the workstations 13 or even one of the field devices 19-.
As illustrated in Fig. 1, one of the workstations 13 includes an advanced control block generation routine 40 that is used to create, download and implement 30 the advanced control blocl; 38 in a mariner described in more detail herein. While the advanced control block generation routine 40 may be stored in a memory
within the workstation 13 and executed by a processor therein, this routine (or any part thereof may additionally or alternatively be stored in and executed by any other device within the process control system 10, if so desired. Generally speaking, the advanced control block generation routine 40 includes a control block creation routine 42 that creates an advanced control block and that connects this advanced control block into the process control system, a process modeling routine 44 that creates a process model for the process or a portion thereof based on data collected by the advanced control block, and a control logic parameter creation routines 46 10 that creates control logic parameters for the advanced control block from the process model and that stores or downloads these control logic parameters in the advanced control block for use in controlling the process. It will be understood the routines 49, 44 and 46 can be made up of a series of different routines, such as a first routine that creates an advanced control element having control inputs adapted IS to receive process outputs and having control outputs adapted to provide control signals to process inputs, a second routine that enables a user to corrununicatively connect the advanced control element within the process control routine (which may be any desired configuration routine), a third routine that uses the advanced control element to provide excitation waveforms to each of the process inputs, a fourth 90 routine that uses the advanced control element to collect dare reflectin, the response of each of the process outputs to the excitation waveforms, a fifth routine that creates a process model from the collected data, a sixth routine that develops advanced control logic parameters from the process model and a seventh routine that places the advanced control logic and, if needed, the process model within Me 25 advanced control element to enable the advanced control element to control the process. Referring now to Fig. 2, a flow chart SO illustrates the steps of creating and using an advanced control block and, in particular, an MPC control block, within a process control system such as the process control system 10 of Fig. 1. While the 30 flowchart 50 of Fig 2 illustrates the creation of an MPC block or module, the same
or similar steps could be performed to create and use any other advanced control block such as any multiple-input/multiple-output cont ol block like a neural network modeling or control block, a multi-variable fuzzy logic control block, etc. First, at some tune 52, a decision is made to improve or provide control 5 within the process control system 10 by implementing an MPC procedure. This decision may be made at the time the process control system 10 is first set up or at some later time after, for example, other control routines, such as single-loop control routines, have been found to provide inadequate control. At the tune 52, an operator or other user executes the MPC block generation routine 40 to begin the 10 steps of creating an MPC module or control loop within the process control system. I As part of dais process, the operator chooses the process inputs to which the outputs of the MPC block being designed are to be connected and chooses the process outputs to which the inputs of the MPC block being designed are to be connected.
While the MPC block may have any number of inputs and outputs, each MPC block 15 generally has three kinds of inputs including controlled parameter inputs which are the process variables or parameters that are to be maintained at a set point (or within a set range), constrained inputs which are the process variables that are constrained to a particular limit or range based on, for example, physical limitations associated with the process and which the MPC block must not force to be outside 20 of the constrained range or limit, and process disturbance parameter inputs, which are other process Variables, such as process inputs that, \hen altered, are known to cause changes to the controlled parameters. The MPC blocl; uses the process disturbance parameter inputs to foresee chances to the controlled parameters (i.e., the controlled process outputs) and to limit the effects of these changes before they 25 occur. Other inputs may also be provided to the MPC bloc);, such as feedback from a device or other process element being controlled which enables the MPC control block to provide more effective control of these elements. Similarly, the outputs of the MPC block may be connected to control any desired process variable or other process input including control loop inputs, device control inputs, etc. The 30 routine developed by connecting the MPC bloc}; to other control elements is
( (? referred to herein as an MPC module. While the user may create an MPC function block, the user may also obtain an initial function block from a memory, such as a library of function blocks, and use this function block or create an instance of this function block for use in the process control system. Likewise, a user or other provider may provide a function block or other control element in any other desired manner. At a step 54, the operator creates an MPC module having an MPC block (which does not yet have all of the information needed to provide model predictive control) with the specified inputs and outputs corrununicatively connected within the 10 process control system and dowrdoads the block or module to the appropriate I controller or other device that will implement the MPC module. As part of this process, the operator configures the process control system 10 to implement the MPC block by communicatively coupling the outputs of the MPC block to the appropriate process inputs and by communicatively coupling the inputs of the MPC 15 block to the appropriate process outputs.
Referring to Fig. 3, an MPC block 36 is illustrated as being connected to a process 58. The MPC block 56 is a 3x3 control block having three inputs IN - IN and three outputs OUT, - OUT3 while the process 58 includes inputs X - X5 and OUtpUtS Ye - Y6. Of course, the MPC blocl; 6 and the process 53 could include 20 any other numbers of inputs and outputs. While the MPC block 56 may generally be a square block, i.e., having the same number of inputs as outputs, this configuration is not necessary and the IIPC block 56 may have different numbers of inputs and outputs. As illustrated in Fir.;, the operator communicatively connects the process outputs Y' - Y3 to the MPC bloc}; inputs IN - IN3, respectively, and 95 communicatively connects the MPC block outputs OUT, - OUT3 to the process inputs X - X3, respectively. Of course, any of the inputs and outputs of the process 58 may be connected to other control loops or to other elements within other control routines associated svith the process control system 10 (as indicated by dotted lines connected to the process inputs and Outputs in Fig. 3). Generally speal;ing, the 30 hIPC block 56 and the other blocks which may be providing control inputs to the
q process 58 (as illustrated by dotted lines connected to the process inputs X - X3) will be connected through a switch of some sort, these switches being illustrated by the boxes S9 in Fig. 3. The switches 59 may be hardware or software switches and, if desired may be provided by having the different control input signals delivered to different inputs of a function block, such as a Fieldbus function block,
which can then select between the control signal from the MPC block 56 and a control signal from a different function block, such as from a PID function block, based on the mode of the function block receiving the two signals.
Of course, the operator can connect the MPC block 56 to the process 58 in 10 any desired manner and, generally speaking, will use the same control configuration or design program that the operator uses to create other control loops lUce single loop control routines within the process control system 10. For example, the operator may use any desired graphical programming routine to specify the connections between the MPC block 56 and the process inputs and outputs. In this 15 manner, the MPC block 56 is supported in the same way as other control blocks, elements or routines, which makes configuration and connection of the MPC block 56 and support of that block within the control system 10 no different than the configuration, connection and support of the other blocks within the system. In one embodiment, the MPC blocl; 56, as well as the other blocks within the control 20 system 10, are Unction blocks designed to be the same as or similar to Fieldbus
function blocks. In this embodiment, the MPC block 56 may have the same or similar types of inputs, outputs, etc. as specified or provided in the Fieldbus
protocol and is capable of being implemented by, for example, the controller 11 using communication links which are the same as or similar to those specified by 2: the Fieldbus protocol. A method of graphically creating process control routines
and elements thereof is described in Dove et al., U.S. Patent No. S,838, 563 entitled "System for Configuring a Process Control Environment" which is hereby expressly incorporated by reference herein. Of course, other control loop or control module design strategies could be used as well, including those which use other types of
function blocks or which use other routines, sub-routines or control elements within a process control configuration paradigm.
When using a control system based on the interconnection of function blocks, such as those provided by the Fieldbus function block paradigm, the MPC
block 56 can be cormected directly to other function blocks within the process control routine. For example, the MPC block 56 may be connected to control devices, such as valves, etc. directly by connecting a control output of the MPC block 56 to an output block (such as an AO block) associated with the device being controlled. Likewise, the MPC block 56 may provide control signals to function 10 blocks within other control loops, such as to the input of other control function blocks, to oversee or override the operation of these control loops.
Figs. 4A and 4B, for example, illustrates a Fieldbus-type MPC function
block 60 connected to other Fieldbus-type function blocks within a process control
system tO coordinate existing multi-variable strategies implemented by single-loop 15 control routines. In particular, the MPC function block 60 has a first output OUTI connected to the RCAS_IN (remote cascade) input of an AO block 69 associated with a valve being manipulated and a second output OUT2 connected to the RCAS IN (remote cascade) input of a PID function blocl; 64. In addition, the MPC block 60 has a first input 11 (which is a controlled parameter input) delivered from 20 an AI function blocI; 66, a second input I' (which is also a controlled parameter input) delivered from an AI function block 68 (Fig 4B) and a third input (which Is a disturbance parameter input) delivered from an AI function block 70. The AI function blocks 66, 68 and 70 may be associated with and provide signals measured by field devices, such as sensors, and transmitted to the control routine by a
25 transmitter or other device. The MPC bloc}; 60 also receives feedback at inputs BKCAL_IN1 and BKCAL IN2 (back calibration inputs) from the remote cascade outputs (RCAS_OUT) of AO function block 62 and the PID function block 64 for use in determining the effect of the control signals delivered by the MPC block 60 to the function blocks 62 and 64. The output of the AI function block 66 is also 30 provided to an input of a PID function block 72 which provides a control signal to
at\ the cascade input (CAS IN) of the AO function block 62 and receives a feedback signal from the output OUT of the AO function block 62 at the BKCAL IN input of the PID function block 72 to thereby control the manipulated valve during regular operation of the process, i.e., without MPC operation. Likewise, the AO function block 68 delivers its output (which is a process output) to the auto input of a PID function block 74 which provides a control signal to the cascade input of the PID fimction block 64. The PID function block 74 also receives a feedback signal from the PID function block 64 at the 13KCAL IN input of the function block 74. The inputs and outputs of the function blocks in Figs. 4A and 4B (as well as Fig. 5) are 10 defined the same as in the Fieldbus protocol and operate in accordance with the
definitions and constructs provided by the Fieldbus protocol.
As will be understood, the function blocks 66, 72 and 62 form a first single-
loop control routine while the function blocks 68, 74 and 64 form a second sin,,le-
loop control routine, both of which may be operated during regular or automatic 15 operation of the process to provide single-loop control. However, the MPC block 60 may take over control of the AO function block 62 (and the associated device) as well as the control of the loop associated with the PID function block 64 by providing control inputs to the remote cascade inputs of the AO function block 67 and the PID [unction blocl; 64, which will cause these function blocks to operate in 20 the remote mode (instead of the automatic mode) and thus, operate using the control inputs at the remote inputs instead of at the auto inputs. When operating in the remote mode, the function blocks 69 and 64 ignore the inputs of the PID function blocks 72 and 74, respectively. In this manner, the MPC blocI; 60 may be connected to and provide control of the blocks 69 and 64 but may be switched on 2 and off. When not being controlled by the MPC function blocl; 60, the blocks 62 and 64 are still controlled by the blocks 72 and 74 respectively, i.e., in accordance with a single-loop control strategy.
Similarly, Fig. 5 illustrates an MPC function block 80 connected within a process control routine lo coordinate sinle-loop routines. In particular, the MPC 30 function block 80 receives controlled parameter inputs from AI function blocks 8',
and 84 and a disturbance parameter input from an AI function blocs: 86. The MPC function block 80 provides a control output to an AO function block 90 associated with a manipulated valve and provides a set point output to the cascade input (CAS_IN) of a PID function block 92 within a control loop 94. The AO function 5 block 90 and the PID function block 92 provide back calibration outputs to the back calibration inputs of the MPC function block 80. The control loop 94 also includes an AI function block 96 which provides a control parameter input (i.e., a process output) to the auto input of the PID function block 92, which then provides a control output to an AO function block 98 associated with, for example, a different 10 valve or device. The AO function block 98 provides a feedback to the back calibration input of the PID fimction blocI; 92. In the configuration of Fig. 5, the MPC function block 80 controls the valve associated with the AO function block 90 directly and controls the operation of the loop 94 by manipulating the set point of that loop. However, the loop 94 continues lo operate when the MPC function block 15 80 is operating. As such, the MPC function bloc}: 80 controls the device associated with the AO function block 98 indirectly but controls the control loop 94 directly.
Of course, MPC blocks may be connected within a process control routine in any other desired manner to control des ices or other control elements directly or indirectly. Still further, the control routines or modules may be developed using 20 any technique, including graphical or non- graphical proramrning techniques.
Thus, as will be understood, the process inputs X - X3 to which the outputs of the MPC control block 56 are connected in Fig. 3 may be any desired process inputs including inputs to control loops defined within an existing control strategy or inputs to valves or other devices connected to the process. Likewise, the process 25 outputs Ye - Y3 connected to the inputs of the MPC block 56 may be any desired process outputs including outputs of valves or other sensors, outputs of AO or AI function blocks or outputs of other control elements or routines.
Referring again to the step 54 of Fig. a, once the operator has created a control module including an initial MPC blocl; having the inputs and outputs 30 connected to desired process outputs and inputs, respectively, the control module
having the initial MPC block therein is dowrdoaded into the appropriate device, such as the controller 11 or one of the workstations 13, for execution. Next, at a step 99, the operator instructs the initial MPC block to begin to excite the process in known manners and to collect process input and output data while the process is 5 being excited.
As illustrated in Fig. 3, the initial hIPC block 56 includes a data collection routine 100, a waveform generator 101, generic control logic 102 and storage for storing control parameters 103 and a process model 104. The generic logic 102 may be, for example, a generic MPC routine that needs coefficients or other control 10 parameters to be able to operate to perform control in a particular instance. In some cases, the generic logic 102 may also need a process model for the process being controlled to control that process. After being downloaded iMo, for example, the controller 11, the initial MPC block 56 is instructed, via the MPC creation routine 42, to begin the next phase of development of the MPC block 56 in which data is 15 collected for each of the process outputs for use in creating a process model. In particular, when instructed to do so by the operator (or at any other desired urne), the waveform generator 101 of the MPC blocs; 56 begins to produce a series waveforms at the outputs OUTS - OUTS thereof so as lo provide excitation \vaveforrns to each of the process inputs X! - X;. If desired, these waveforms may 20 be provided to the generator 101 by software u ithin the user workstation 13 but, are preferably created by the gerrator 101. The waveforms generated by the waveform generator 101 are preferably designed to cause the process to operate over the different ranges of inputs expected during normal operation of the process.
To develop a process model for an MPC control routine, the waveform generator 25 101 may deliver to each of the process inputs X -X3, a series of different sets of pulses, wherein the pulses within each of the sets of pulses have the same amplitude but have pseudo-random lengths and wherein the pulses within the different sets of pulses have different amplitudes. Such a series of set of pulses may be created for and then delivered to each of the different process inputs X, -X3 sequentially, one at 30 a time. During this time, the data collection unit 100 within the MPC block 56
collects or otherwise coordinates the collection data indicating the response of the process outputs Ye - Y3 to each of the waveforms generated by the waveform generator 101 and may collect or coordinate the collection of data pertaining to the excitation waveform being generated. This data may be stored in the MPC block 5 56 but, preferably, is automatically sent to the data historian 12 for storage andIor to the workstation 13 where this data may be displayed on the display screen 14.
Thus, instead of trying to control the process 58 using some advanced control logic (which has not yet been completely developed), the MPC block 56 first provides a set of excitation waveforms to the process 58 and measures the 10 response of the process 58 to these excitation waveforms. Of course, the excitation waveforms generated by the waveform generator 101 may be any desired waveforms developed to create a process model useful for the creation control logic parameters for any advanced control routine. In this example, the waveform generator 101 generates any set of waveforms that is known tO be useful in 1: developing a process model for a model predictive controller, and these waveforms may take any form now known or developed in the future for this purpose. Because waveforms used to excite a process for the purpose of collecting data to develop a process model for model predictive control are well l; nown, these waveforms will not be described further herein. Likewise, any other or any desired types of 20 waveforms may be generated by the,, vaveforTn generator 101 for use in developing process models for other advanced control (which includes modeling) routines, such as neural networks, multi-variable fuzzy logic, etc. control routines.
It should be noted that the waveform generator lOl may take any desired form and may, for example, be implemented in hardware, software or a 2: combination of both. If implemented in software, the uaveforrn generator 101 may store an algorithm that can be used to generate the desired waveforms, may store digital representations of the waveforms to be generated, or may use any other routine or stored data to create such waveforms. If implemented in hardware, the waveform generator 101 may take the form of, for example, an oscillator or a 30 square wave generator. If desired, the operator may be asked to input certain
parameters needed to design the waveforms, such as the approximate response time of the process, the step size of the amplitude of the waveforms to be delivered to the process inputs, etc. The operator may be prompted for this information when the MPC block 56 is first created or when the operator instructs the MPC block 56 to begin to upset or excite the process and collect process data. In a preferred embodiment, the data collection unit 100 collects (or otherwise assures the collection of) data in response to each of the excitation waveforms for three or five times the response time input by the operator to assure that a complete and accurate process model may be developed. However, data may be collected for any other 10 amount of time.
In any event, the MPC control block 56 preferably operates until the waveform generator 101 has completed delivering all of the necessary excitation waveforms to each of the process inputs X - X3 and the data collection unit 100 has collected data for the process outputs Ye - Y3. Of course, the operation of the MPC 15 block 56 may be interrupted if so desired or if necessary during this data collection process. Referring to Fig. 6, a screen display 118 which can be presented to the operator on one of the displays 14 by the control logic generation routine 40 enables an operator to implement the different steps of generating an advanced control 20 blocl;. In particular, the screen display 118 includes a data display area 120, and three buttons 122, 123 and 124 whiclTnay be used to initiate different parts of the advanced control block generation routine 40. The Initiate Test button 122 enables the operator to cause the initial MPC block 56 to send excitation signals to the process 58 and to collect input and output data for delivery to the data historian 12.
2' The button 122 may illustrate, for example, the time remaining for performing the excitation routine, i.e. the time it will talce the MPC control blocl; 56 to generate all of the excitation waveforms and to collect the process data generated in response to these waveforms. Before pressing the button 127, the operator may input a response time indicating a typical time that}t takes the process to respond to an 30 input and may indicate or specify the step size which is used to used by the MPC
bloclc 56 to generate the excitation waveforms, which data may be provided to the waveform generator lG1 of the MPC block 56. After pressing the button 122, the data collected by the MPC block 56 may also be displayed on the data display area 120 and, if desired, the user may flag data that should not be used to create a 5 process model. It should be understood that the data collection unit 100 may collect data by assuring that this data is sent to the dare historian 12 or other storage device for storage.
Next, as indicated in Fig 2 at the step 125, the operator may, at some point decide to implement the next phase of developing the MPC block by executing the 10 process modeling routine 44 which accesses the collected data from the data historian 12 and runs any known process model generation routine tO create a process model from the collected data. Generally speaking, the operator may initiate this phase by selecting the Generate Control button 123 on the screen display of Fig. 6.
15 If desired, the process modeling routine 44 may run a data screening procedure on the collected data. This data screening procedure may check the collected data for outliers and other obviously erroneous data and may check other values associated with the collected data. such as status and limit values associated with the collected data, to determine if the data alas generated by a function block 20 having a bad or improper status, if the data was at a limit, if the data was generated when a function blocs; or other element as in an improper mode, or if the data was, in some other way, generated under abnormal or undesirable process conditions. For example, in the Fieldbus communication protocol, data generated
by Unction blocks also includes a status. a limit and a mode indication which can 2' be stored with the data in the data historian 12 and used to screen the data. If desired, the data screening routine may illustrate the collected data to the operator on the data display area 120 of Fig. 6 and enable the operator to rnarlc the data to be screened or eliminated, by for example, highlighting or otherwise identifying this data, based on the operator's knowledge of the process conditions. In this maMer, 30 data that svas collected by the MPC blocl; 56 hen the process 58 was off- line,
1 iA when the process 58 was not being controlled properly, when the process 58 was under repair, when a sensor or other device within the process 58 was faulty or being replaced, etc. may be selected and eliminated from the data to be used to create a process model.
As illustrated in Fig. 6, a trend in the display area 120 may be displayed containing the MPC inputs and outputs as a trend plot. The plot can be auto-scaled based on the values of the inputs and outputs. Also, the time Borne of the portion of the plot that is displayed will, preferably, be two times the specified response time.
By using a slider bar 126, the time window may be chanced to show values that go 10 back to some previous time, such as the last trio days. To enable good data to be collected on plant operation, an automated test feature may be used. By selecting the Initiate Test button 12', the process inputs that \ill be manipulated by the MPC block are bumped by the specified step size in a pseudo-random sequence over the specified response time. Also, when the Initiate Test button 197 is selected. start and end 15 divider bars on the data display are automatically set to marl; the start and end of the automated testing and the MPC block 56 overtakes control of the manipulated outputs by providing the pseudo- random sequence of output signals as excitation waveforms to the process 58.
The time bars or data tvindovv in the area 1>0 may also be used to select the 20 data that is to be used to develop the process model. An operator may select one of the divider bars and drag it to the desired start or end time to change the time frame considered for process model identification. If port of the time between the start and end bar is not representative of normal plant operation, then the user or operator can lasso this section of time to select data values to be ignored during the process model 2: identification process. In response, the selected area ma' be shown in a darker background color and -ill automatically be excluded when creating the process
model. After screening the data, the process modeling routine 44 creates a process model from the selected data. As noted above, the process modelingroutine 44 30 may perform any desired or known type of process modeling analysis to develop a
process model from the collected and screened data and the developed process model may take on any form, such as a mathematical alorithrn, a series of response curves, etc. If the process modeling routine 44 has a problem determining the process 5 model, then an indication of the problem may be reflected in a status area of a user display, such as that of Fig. 6. One problem that may be indicated is that there are not enough samples to identify or create a process model. A message such as "For the defined configuration, a minimum number of X samples is required. Data file contains only XXX samples" may be generated to notify the operator of this problem.
10 Another problem that may be detected is that not enough excitation occurred on the process inputs. A message to this effect and identif ring the signal tag names, such as TagX, TagY, etc. and the minimum changes to the excitation amount can be provided to the operator is such a problem occurs.
If desired, and based on the conditions that prevented a successful model being 15 identified, the user may change the time frame over which the process modeling is performed, or change process inputs so that the data used in process modeling routine 44 is valid. The process model that is identified may be automatically saved in any desired database to be accessible for later use. More experienced users may avant to examine or edit the process model that was identified. By selecting the Advanced 20 button 124 on the screen of Fig. 6, the user can be given a choice of generating an MPC controller from a selected model and the current MPC function blocl; configuration or editing a specific model and sating the resulting model as a new model to be used to create MPC control logic. hen the generate controller option is selected, the user may be presented with a dialog from which he or she may select a 2: model that has been previously saved for the MPC block in the MPC module that is being edited. By selecting the edit option, the user can be presented with a list ofthe models that have been developed for the MPC module in question. After selecting a model, the user may be taken to a screen that displays an overview of the process step response and to other screens, as described hereinafter, to edit process step responses 30 to create a new or altered module.
I).q At some point in the process, the logic parameter creation routine 46 may be executed to create the parameters (to be stored in Me variables within the MPC block 56) needed by the generic logic 102 of the Initial MPC block 56 to perform model predictive control. These control parameters, which may be, for example, 5 matrix or other MPC coeffcierits for MPC logic, burning parameters, neural network parameters (for a neural network), scaling factors (for multi-variable fuzzy logic) or any other desired parameters, are usually determined based on the generated process model. The logic parameter creation routine 46 may perform any desired or known procedure for creating the parameters from a process model. Generally 10 speaking, this process entails inverting the process model in a matrix fo'.nat.
However, any other desired logic parameter creation routine could be used.
Because the specifics of creating a process model from collected data for a process and generating MPC or other control logic parameters from that process model is known in the art, these procedures will not described further herein. It should be 15 noted, however, that the operator may have some input on the creation of the control logic parameters for the MPC block S6. In fact, the operator may be requested or otherwise be given the ability to specify Me values of certain var ables typically used to create an MPC controller. For example, the operator may specify the set points and limits of each of the constrained inputs tO the MPC block, the 20 time frame over which control changes are tO be made, i.e., the set point trajectory - filter and the time constants associated with thislter, the maximum or minimum movement (rate limit) of an MPC output or a process output, whether any of the controlled parameters respond in an integrated manner, MPC optimization factors, variables or tuning parameters, the horizon of the MPC control block, i.e., how 2: many steps forward calculations are to be performed to control to a desired state, the engineering unit ranges for each of the inputs and outputs of the MPC block 56, which of the manipulated variable targets will be allowed to be relaxed or not realized when one of the constraints is violated, a description and/or name of each
of the MPC block inputs and outputs, the value of any optimization variables that 30 can be set, the value of variables related to the aggressiveness or robustness of the
3Ci MPC block, etc. If desired, the control logic generation routine 46 may store default values for some or all of these variables or settings and use these default values to create the MPC logic. However, the operator or other user may be able to change these settings via the user display 14.
5 In any event, the 2vIPC logic parameter creation routine 46 executes using this information and any other information that may be needed to create MPC (or other) control logic parameters, such as MPC coefficients. The Generate Control button 123 on Me screen display 118 may indicate whether or not the creation of a process model and control logic parameters was successful.
10 After the MPC control logic parameters are created, at a step 128 of Fig. 2, the MPC control logic parameters or coefficients may be tested using a process snulation block. This simulation block may generally be developed from the process model created for the process and can be connected to an MPC block in a testing environment as will be described herein to test whether the created MPC 15 control logic operates satisfactory over the range of normal operation of the process. If the MPC logic is not satisfactory, any or all of the steps,4, 99 and 125 may be repeated to develop different MPC control logic. However, if the MPC control logic is satisfactory, the MPC control logic parameters and the process model may be downloaded at a step 130 to the MPC block 56 to be stored in the 20 parameter storage 103 and the process rnodl store,e 104 to be used to control the - process 58. In this manner, the parameters needed by the MPC control logic are provided to and contained within the hIPC block 56 and the MPC block 56 can be commissioned to operate or to actually perform control within the process according to the MPC control logic 102. Of course, if desired, the actual MPC logic 102 25 along with the parameters needed therefor can be created in the workstation 13 and downloaded to the MPC block 16.
Once downloaded and executed by the controller 11, the MPC module or loop having the MPC block 56 therein may perform reporting Unctions in the same manner as other blocks or elements vv ithin the control routine because, as noted 30 above, the MPC block 56 and the control module including this block are designed
using the same programming paradigm as the other control blocks within the process control system 10. In one embodiment, the MPC block or module may have graphical views associated therewith that can be displayed to a user or operator via, for example, one of the display screens 14 of one or more of the S worl;stations 13, these views subscribing to data associated with the blocks within the MPC control module and displaying this data in a Redefined or specified manner. Referring to Fig. 7, for example, portions of the process control system 10 of Fig. 1 are illustrated, including The controller 11 coupled via a communication lO link (not specifically shown) to the user displays 14A and 14B and to the devices 15-22. Within the controller 11, an MPC module 132 is illustrated as having an I MPC function block receiving inputs from a set of AI function blocks and providing outputs to a set of AO function blocks, respectively while a single-loop control routine 134 is illustrated as including a PID blocl; receiving an input from an AI 15 function block to control an AD function blocI;, Different views of the operation of these two control modules, such as an operator's view and an enineer's view are Graphically depicted on the display screens 14A and 14B. In particular, an enineer's view on the display 14A includes a graphical depiction of the operation of the loop 137 as well as a graphical 20 depiction of the loop 134 created to enable an engineer to access information -pertaining to these loops and to manipulate these loops. Similarly, an operator's slew having a graphical depiction of the operation of the loop 132 as well as a graphical depiction of the loop 134 is provided on the display 14B to enable an operator to access information pertaining to these loops and to manipulate these 2: loops. However, the information provided in the operator's view may be different than the information in the engineer's view,, and the capabilities provided by these views to interact with the loops 132 and 134 may be different. For example, Me operator's views may only enable the operator to change set points and perform United functions, while the engineer's vies; may enable the user to make changes to 30 the set up of a loop, make changes to the proararnrning within function blocks, etc.
3) These different views may be created in conjunction with function blocks in a manner similar to that disclosed with respect to the templates discussed In U.S. Patent No. 5,594,858 to Blevins, entitled Uniform Control Template Generating System and Method for Process Control Programming," which is hereby expressly incorporated by reference herein. It will be understood, however, that the MPC blocks and modules created using these blocks can provide the same kinds of graphical or reporting support as other blocks, routines or elements within the process control system 10 because the MPC block has been created on-line using the same prograrnning strategy as the other control blocks. This feature eliminates 10 the necessity to provide special programming simply to enable an operator, technician, engineer, etc. to view what is happerung within the MPC control module or block.
If desired, the MPC module 132 may report any desired information to a user via a predefined view or display and enable the user or operator to take any 1 desired action. For example, the user may be provided a screen that illustrates alarms generated by or associated with the MPC module 132, that provides a plot of the controlled, constrained and disturbance parameters (which may also show future projected values of the controlled and constrained parameters), that allows a user or operator to control execution of the MPC module 139 using, for example, the mode 20 parameter (when the MPC module 132 is a developed using, for example, a - Fieldbus protocol), that illustrates numerically or by a bar graph the values of set
points, constraints and controlled or constrained inputs and outputs, that enables the MPC set points or targets to be chanced, that indicates the status of MPC inputs to, for example, show whether the inputs are bad, uncertain or limited, or that 2: illustrates any other desired data or that performs any other desired function.
In addition to downloading the MPC control logic to the MPC block within an MPC control module, at a step 135 of Fig. 9, the MPC logic or an MPC block having the developed logic therein may be sent to a workstation to use in one or more simulation environments to, for example, train users how to use an MPC 30 control block, to test the MPC block, etc. Such a simulation envirorune,nt may be
provided using the system described in detail in U.S. Provisional Patent Application No. 601132,780 entitled "Integrating Distributed Process Control System Functionality on a Single Computer," filed May 6, 1999, which is assigned to the assignee of the present invention and the disclosure of which is hereby expressly
5 incorporated by reference herein.
Referring to Fig. 8, a simulation configuration 149 includes an MPC block 150 which has been created and connected to a process simulation block 152 in a simulation envirormnent. The simulation configuration 149 may be used in the step 128 of Fig. 2 to, for example, test a completed MPC bloc} : to determine if it a.
10 adequately controls the process for which it has been developed or may be used at the step 135 of Fig. 2 to, for example, prwide a training or other testing environment using MPC blocks. flue MPC block 150 of Fig. 8, which is illustrated as having three inputs IN' - IN3 and three outputs OUT - OUT3, is connected to the simulation block 13' having three inputs X - X; and three outputs Y' - Y;. herein the outputs YE - Y3 15 are connected to the inputs IN - EN3, respectively, of the MPC block 50. The simulation blocI; 152 may simulate the process for which the MPC fimction block 150 was created using the process model created at the step 12: of Fig. A, as illustrated by the block 154 of Fig. 8. In this case, the process model created at the step 12: of Fig. 2 may be stored in the simulation blocl; 150 and used to simulate the response of the 20 process based on that process model and on the inputs received from the MPC bJocl; I 50. Alternatively, the simulation bloc}; 19 may be created from a process model that is altered with respect to the process model generated in the step 12>, as illustrated by the bloc}; 156 of Fig. 8. In this case, the process model created at the step 12: may altered in order to simulate. for e:;arnple, changes to the process caused 25 by, for example, physical alterations made to the process, aging of the equipment -within the process, etc. If desired, the process model created at the blocl; 125 of Fig. 2 may be altered in different ways to test the operation of the MPC blocl; 150 when this block is used to control a process that is mismatched from the process used to create the MPC block 150 in the first place. Thus, if desired, the altered process 30 model provided by the blocl; 16 may be used within the simulation block 152 to
3\ determine the range of control that an MPC block provides when the process changes or is mismatched to the MPC control logic, which enables a user to design MPC blocks which operate over longer periods of time or which are better for controlling processes in the presence of process changes.
5 To produce an altered process, the user or operator execute a routine to view the process model created at the step l 23 or the set of process input/output response curves associated therewith, such as those illustrated in the screen of Fig. 9 for a 5x5 MPC block, and select one or more of these response curves to be changed. The selected response curve (illustrated as Overhead %C3H6 vs Reboiler Oil Flown may 10 then be displayed and manipulated ia a further screen, such as the one illustrated in Fig.] 0. As illustrated in Fig. 10, the user or operator may import or delete a response curve, add an FIR response, change response parameters, such as deadtirne and gain, select new beginning or ending points, chance the value of any of the points in the curve, provide different slopes to the curves, scale the curves, etc. in order to create 15 altered response curves and, therefore, an altered process model. Of course, the user or operator may alter or change the process model in any other manner. The user may create or edit a process model l 50, may create a process simulation block or element l:: from such a model, cornmunicati ely connect the process simulation block l,' to the MPC block 10 and run the connected loop using a routine such as the routine 15, 20 illustrated in Fig. l in left hand processor l or in any other desired simulation environment or in the process environment.
Referring nose to Fig. l l, a further control loop 170 is illustrated as having an MPC block l 72 connected to an actual process l 74. In this case, the three outputs OUT - OUT3 of the MPC block 172 are convected to the three process inputs X - X3 2: of the process 174 as ell as to three inputs X:s' - X3st of a simulated process block l 76 that is based on a process model 178 created for the process l 74. In this configuration, the MPC block 172 controls both the process 174 during runtime and also controls the simulated process blocl; 176 which may be executed in, for example, one of the workstations 13 of Fig. l or in any other controller or device, and which 30 produces simulated outputs Y's - Y;s In such a system, the outputs Ys'' - Y3s'
! 3 of the simulated process block 176 and the outputs YE - Y3 of the actual process 174 may be compared to determine if the process outputs YE - Y3 are significantly different than the simulated outputs YIS[M - Y35,, X, and therefore, if there is a mismatch between Me actual process 174 and the process model 178 from which the MPC block 172 was created. If so, it may be necessary to create another MPC block 172 or regenerate the logic parameters or model used by the MPC blocI; 172 in controlling the process 174.
Also, if for some reason one of the outputs Y. -Y3 of the process 174 is erroneous due to, for example, a malfunction of the sensor measuring this output, the 10 corresponding simulated output from the simulated process block 176 may be provided to the appropriate input of the MPC blocI; 17', as illustrated by the dotted line in Fig. I 1, to ermble the MPC block 172 to provide better control of the actual process 174 until the faulty sensor or device is replaced or repaired. In this manner, a irtual process output rmay be developed for each of the actua] process outputs by the 15 simulated process block 176 and one or more of these virtual outputs may be used as an input to the MPC block 172 when the corresponding actual process output is faulty or cannot otherwise be used. For example, if a sensor measuring one of the process outputs YE - Y3 malfunctions in the middle of the night, the user or operator may, simply connect the corresponding virtual output to the appropriate input of the MPC 90 block 172 so that the MPC blocI; 179 can provide adequate control of the process 174 until the next day when a repair person can change or fix the faulty sensor. It will be understood that the simulated process blocl: 176 can be Nan at all times that the actual process 174 is running and be provided \Nith all the same inputs so that the simulated process blocl: 176 can produce realistic virtual outputs. Of course, other simulation 2 j scenarios can be implements and can use a process model created in conjunction with the creation of the MPC block 150 or 172 or can use a process models produced as a variation of the process model created in conjunction with the creation of the MPC blocl; 150 or 172.
Creating an MPC control blocl; without the necessary control logic 30 parameters and process model therefor and connecting this block within the process
control system In a manner that is sinular to the way in which other control blocks or elements are connected within the system, running the MPC control block to collect process data, producing a process model from the process data, creating lo,ic parameters for the MPC block from the process model and loading the logic 5 parameters and, if necessary, the process model into the MPC control,bIock enables a user to create an MPC control block or module within a process control routine without having to go off-line, without having to have a lot of knowledge about how the MPC control routine must be created, without having to perform a lot of engineering to create waveforms to generate a process model and without having to 10 reprogram a control routine to implement model predictive or other advanced control. As a result, this method saves time, costs and provides use of the created process model for other purposes, such as for simulation and the production of virtual process outputs within the process control envirornent.
As will be understood, the MPC or advanced control logic generation routines 15 and methods described herein enable a user to create advanced control blocl;s such as MPC control blocks, neural network modeling or control blocks, etc. without having a great deal of expert knowledge about how those blocks are created and enables an operator to create and use an advanced control block without performing a lot of reprogrararnin; of the process to implement advanced control. Also, because the 20 advanced control blocl; is created using the same programrnin paradigm as the other controPelements within the system, the user can be provided consistent views of the process or graphical displays of the process having the advanced control block therein. Still further, because the process model is needed to be created for, for example, an MPC function block, this process model can be used to produce 25 simulation function blocks which can be used to simulate the process for other purposes such as testin,, training, detecting process/process-model mismatch or producing virtual outputs of the process for use in controlling a process.
While the advanced control blocks, the process Emulation blocks and the associated generation and testing routines have been described herein as being used 30 in conjunction with Fieldbus and standard 4-20 ma devices, they can, of course, be
3; implemented using any other process control communication protocol or programming environment and may be used with any other types of devices, function bloclcs or controllers. Moreover, it is noted that the use of the expression Function blocks herein is not limited to what the Fieldbus protocol or the DeltaV
5 controller protocol identifies as a Unction block but, instead, includes any other type of block, program, hardware, firmware, etc., associated with any type of control system and/or communication protocol that can be used to implement some process control function Also, while function blocks typically talce the form of objects within an object oriented programming environment, this need not be case.
10 Although the advanced control blocks, the process simulation blocks and the associated generation and testing routines described herein are preferably implemented in software, they may be irnpIememed in hardware, firmware, etc., and may be executed by any other processor associated with a process control system. Thus, the routine 40 described herein may be implemented in a standard 15 mulri-purpose CPU or on specifically designed hardware or firmware such as, for example, ASICs, if so desired. When implemented in software, the software may be stored in any computer readable memory such as on a magnetic disk, a laser disI;, an optical disk, or other storage medium. in a RAM or ROW of a computer or processor, etc. Likewise, this software ma- be delivered to a user or to a process 90 control system via any I;nown or desired delivery method including, for example, on a compute-r readable disk or other transportable computer storage rnechanisn or modulated over a communication channel such as a telephone line, the internet, etc. Which is viewed as being the same as or interchangeable with providing such software via a transportable storage medium).
2: Thus, while the present invention has been described with reference to specific examples, which are intended to be illustrative only and not to be limiting of the invention, it will be apparent to those of ordinary skill in the art that changes, additions or deletions may be made to the disclosed embodiments without departing from the spirit and scope of the invention.
In the present specification "comprise" means "includes or consists of"
and "comprising" means "including or consisting of''.
The features disclosed in the foregoing description, or the following
claims, or flee accompanying drawings, expressed in their specific forms or in terms of a means for performing the disclosed function, or a method or process for attaining the disclosed result, as appropriate, may, separately, or in any combination of such features, be utilised for realising die invention in diverse forms thereof.

Claims (9)

39 1 CLAIMS
1. A method of using a multiple-input/multiple output advanced control element capable of controlling a process, wherein the advanced control element was generated using a process model developed for the process, the method comprising the steps of: generating a process simulation element from the process model; communicatively connecting the process simulation element to the advanced control element; and using the advanced control element to control the process simulation element.
2. The method of using the multiple-input/multiple output advanced control element of Claim 1, further including the step of testing the advanced control
element as connected to the process simulation element before using the advanced control element to control the process.
3. The method of using the multiple-input/multiple output advanced control element of Claim 1 or Claim 2, Further including the step of using the advanced control element and the process simulation element in a training environment.
4. The method of using the multiple-input/multiple output advanced control element of any one of Claims 1 to 3, wherein the step of generating a process simulation element includes the steps of altering the process model and using the altered process model to generate the process simulation element.
5. The method of using the multiple-input/multiple output advanced control element of any one of Claims 1 to 4, further including the step of testing the advanced control element as connected to the process simulation element to
( determine the operation of the advanced control element in the presence of process/process-model mismatch.
6. The method of using the multiple-input/multiple output advanced control element of any one of Claims 1 to 5, including the steps of connecting the advanced control element to the process and using the advanced control element to control the process while the advanced control element controls the process simulation element.
7. The method of using the multiple-input/multiple output advanced control element of Claim 6, further including the step of comparing process outputs of the process to outputs of the process simulation element to measure process/process-model mismatch.
8. The method of using the multiple-input/multiple output advanced control element of Claim 6 or Claim 7, further including the step of providing an output of the process simulation element to an input of the advanced control element for use in controlling the process.
9. A method of using a multiple-input/multiple output advanced control element capable of controlling a process substantially as hereinbefore described with reference to the accompanying drawings.
GB0330235A 1999-10-04 2000-10-03 Integrated advanced control blocks in process control systems Expired - Lifetime GB2393528B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/412,078 US6445963B1 (en) 1999-10-04 1999-10-04 Integrated advanced control blocks in process control systems
GB0024094A GB2355545B (en) 1999-10-04 2000-10-03 Integrated advanced control blocks in process control systems

Publications (3)

Publication Number Publication Date
GB0330235D0 GB0330235D0 (en) 2004-02-04
GB2393528A true GB2393528A (en) 2004-03-31
GB2393528B GB2393528B (en) 2004-05-12

Family

ID=31979977

Family Applications (1)

Application Number Title Priority Date Filing Date
GB0330235A Expired - Lifetime GB2393528B (en) 1999-10-04 2000-10-03 Integrated advanced control blocks in process control systems

Country Status (1)

Country Link
GB (1) GB2393528B (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2490267A (en) * 2008-01-31 2012-10-24 Fisher Rosemount Systems Inc Model Predictive Controller with Tuning to Compensate for Model Mismatch
EP2550623A4 (en) * 2010-03-22 2018-01-03 Xio, Inc. Improved control system simulator and simplified interconnection control system
EP3540530A1 (en) * 2018-03-15 2019-09-18 Siemens Aktiengesellschaft Method and assembly for controlling a technical system

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105388782B (en) * 2015-12-10 2018-06-08 天津电气科学研究院有限公司 A kind of algorithm for the sigmoid curve generator for being used to give link

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0524317A1 (en) * 1991-02-08 1993-01-27 Kabushiki Kaisha Toshiba Model forecasting controller

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0524317A1 (en) * 1991-02-08 1993-01-27 Kabushiki Kaisha Toshiba Model forecasting controller

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2490267A (en) * 2008-01-31 2012-10-24 Fisher Rosemount Systems Inc Model Predictive Controller with Tuning to Compensate for Model Mismatch
GB2490267B (en) * 2008-01-31 2013-01-16 Fisher Rosemount Systems Inc Robust adaptive model predictive controller with tuning to compensate for model mismatch
US9904257B2 (en) 2008-01-31 2018-02-27 Fisher-Rosemount Systems, Inc. Using autocorrelation to detect model mismatch in a process controller
EP2550623A4 (en) * 2010-03-22 2018-01-03 Xio, Inc. Improved control system simulator and simplified interconnection control system
EP3540530A1 (en) * 2018-03-15 2019-09-18 Siemens Aktiengesellschaft Method and assembly for controlling a technical system
US10921758B2 (en) 2018-03-15 2021-02-16 Siemens Aktiengesellschaft Method and arrangement for controlling a technical system having multiple functionally linked system components

Also Published As

Publication number Publication date
GB2393528B (en) 2004-05-12
GB0330235D0 (en) 2004-02-04

Similar Documents

Publication Publication Date Title
US6445963B1 (en) Integrated advanced control blocks in process control systems
US7257523B1 (en) Integrated distributed process control system functionality on a single computer
US7840287B2 (en) Robust process model identification in model based control techniques
US6901300B2 (en) Adaptation of advanced process control blocks in response to variable process delay
US10365641B2 (en) Synchronization of configuration changes in a process plant
US7275062B2 (en) Automatic linkage of process event data to a data historian
US7392165B2 (en) Simulation system for multi-node process control systems
EP1364259B1 (en) A method and apparatus for generating an application for an automation control system
US7010362B2 (en) Tool for configuring and managing a process control network including the use of spatial information
CN109597374A (en) I/O for debugging is virtualized
US11687062B2 (en) Configuration of a modular plant
CN103168277B (en) For debugging the process including multiple subsystem or the method for maker solution
CN102566415A (en) Arrangement of integrated module predicting control and optimizing block and observation display
GB2443061A (en) Method and module class objects to configure equipment absences in process plants
JP7686434B2 (en) Remote deployment and commissioning of workstations within distributed control systems
GB2393528A (en) A method of using a multiple input/output advanced control block to control a process
CN109597373A (en) For assessing and presenting the technology of field device Debugging message associated with process plant
GB2417574A (en) Smart process modules and objects in a process plant

Legal Events

Date Code Title Description
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1061578

Country of ref document: HK

REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1061578

Country of ref document: HK

PE20 Patent expired after termination of 20 years

Expiry date: 20201002