TECHNICAL FIELD

This disclosure relates generally to control systems and more specifically to an apparatus and method for automated closedloop identification of an industrial process in a process control system.
BACKGROUND

Processing facilities are often managed using process control systems. Example processing facilities include manufacturing plants, chemical plants, crude oil refineries, ore processing plants, and paper or pulp manufacturing and processing plants. Among other operations, process control systems typically manage the use of motors, valves, and other industrial equipment in the processing facilities.

In conventional process control systems, controllers are often used to control the operation of the industrial equipment in the processing facilities. The controllers could, for example, monitor the operation of the industrial equipment, provide control signals to the industrial equipment, and generate alarms when malfunctions are detected.

Conventional controllers typically operate using models of the industrial processes being controlled. The models allow the controllers to determine, based on input signals from sensors or other data, how to control the industrial equipment. For longterm and successful control of an industrial process, it is often necessary to perform process identification and generate an accurate model of the process. The quality of the model can dramatically impact the performance of the controller that uses the model.

Process identification is often one of the most important aspects of any control project and can easily consume large amounts of project resources. However, identification may require direct interaction with the actual industrial process, and personnel are often less than enthusiastic about this aspect of a project. As such, it is common for controller performance to degrade over time since model enhancement is usually not performed after the initial model is generated. Various techniques have been developed for performing process identification, although each technique typically has various drawbacks or weaknesses.
SUMMARY

This disclosure provides an apparatus and method for automated closedloop identification of an industrial process in a process control system.

In a first embodiment, a method includes identifying multiple model structuremodel order combinations. The model structuremodel order combinations are associated with a process to be controlled. The method also includes determining one or more metrics for each of the model structuremodel order combinations. The method further includes selecting at least one of the model structuremodel order combinations based on the one or more metrics. In addition, the method includes providing a model for controlling the process, where the model is based on at least one selected model structuremodel order combination.

In particular embodiments, identifying the model structuremodel order combinations includes generating multiple model sets. Each model set includes multiple models associated with a single model structure and having different model orders.

In other particular embodiments, the method further includes (i) estimating a time delay associated with the model prior to identifying the model structuremodel order combinations, (ii) reducing an order of the model prior to providing the model for controlling the process, and/or (iii) reducing an order of one or more of the model structuremodel order combinations prior to selecting the at least one model structuremodel order combination.

In yet other particular embodiments, the method further includes designing a band pass filter using some of the model structuremodel order combinations. Also, identifying the model structuremodel order combinations includes identifying at least one of the model structuremodel order combinations using the band pass filter. The model structuremodel order combinations used to design the band pass filter could be validated.

In still other particular embodiments, the method further includes designing a band pass filter using at least some of the model structuremodel order combinations. At least one of the one or more metrics, such as a prediction metric, is determined using the band pass filter.

In a second embodiment, an apparatus includes at least one memory operable to store multiple models associated with a process to be controlled. The apparatus also includes at least one processor operable to determine one or more metrics for each of the models, select at least one of the models based on the one or more metrics, and provide a final model for controlling the process. The final model is based on the at least one selected model.

In a third embodiment, a computer program is embodied on a computer readable medium and is operable to be executed by a processor. The computer program includes computer readable program code for identifying multiple models associated with a process to be controlled. The computer program also includes computer readable program code for determining one or more metrics for each of the models. The computer program further includes computer readable program code for selecting at least one of the models based on the one or more metrics. In addition, the computer program includes computer readable program code for providing a final model for controlling the process, the final model based on the at least one selected model.

Other technical features may be readily apparent to one skilled in the art from the following figures, descriptions, and claims.
BRIEF DESCRIPTION OF THE DRAWINGS

For a more complete understanding of this disclosure, reference is now made to the following description, taken in conjunction with the accompanying drawings, in which:

FIG. 1 illustrates an example process control system;

FIG. 2 illustrates an example representation of a process system;

FIGS. 3 through 4B illustrate example methods for automated identification of an industrial process in a process control system; and

FIGS. 5 through 24 illustrate example operations during automated identification of an industrial process in a process control system.
DETAILED DESCRIPTION

FIG. 1 illustrates an example process control system 100. The embodiment of the process control system 100 shown in FIG. 1 is for illustration only. Other embodiments of the process control system 100 may be used without departing from the scope of this disclosure.

In this example embodiment, the process control system 100 includes various process elements that facilitate the manufacture or processing of at least one material. The process control system 100 could represent any suitable system for producing or processing one or more materials, such as an oil and gas refinery or a pulp/paper system. These or other industries are often characterized by vastly different processes having different response characteristics that can range from subseconds (such as pressure driven hydraulic loops) to days (such as high purity distillation). Also, these or other industries typically have processes that are, in general, nonstationary because of drift and disturbances with broad power spectrum. In addition, these or other industries typically involve processes that suffer from unmeasurable disturbances and/or sensor/feedback noise.

In this example, the process elements include one or more sensors 102 a and one or more actuators 102 b. The sensors 102 a and actuators 102 b represent components in a process or production system that may perform any of a wide variety of functions. For example, the sensors 102 a could measure a wide variety of characteristics in the process control system 100, such as temperature, pressure, or flow rate. As another example, the actuators 102 b can perform a wide variety of operations that alter the characteristics being monitored by the sensors 102 a. As particular examples, the actuators 102 b could represent heaters, motors, catalytic crackers, or valves. The sensors 102 a and actuators 102 b could represent any other or additional components in any suitable process or production system. Each of the sensors 102 a includes any suitable structure for measuring one or more characteristics in a process or production system. Each of the actuators 102 b includes any suitable structure for operating on or affecting material in a process or production system.

Two controllers 104 a104 b are coupled to the sensors 102 a and actuators 102 b. The controllers 104 a104 b may, among other things, use the measurements from the sensors 102 a to control the operation of the actuators 102 b. For example, the controllers 104 a104 b could be capable of receiving measurement data from the sensors 102 a and using the measurement data to generate control signals for the actuators 102 b. Each of the controllers 104 a104 b includes any hardware, software, firmware, or combination thereof for interacting with the sensors 102 a and controlling the actuators 102 b. The controllers 104 a104 b could, for example, represent multivariable predictive control (MPC) controllers or other types of controllers that implement control logic (such as logic associating sensor measurement data to actuator control signals) to operate. In this example, each of the controllers 104 a104 b includes one or more processors 106 and one or more memories 108 storing data and instructions used or generated by the processor(s) 106. As a particular example, each of the controllers 104 a104 b could represent a computing device running a MICROSOFT WINDOWS operating system.

Two servers 110 a110 b are coupled to the controllers 104 a104 b. The servers 110 a100 b perform various functions to support the operation and control of the controllers 104 a104 b, sensors 102 a, and actuators 102 b. For example, the servers 110 a110 b could log information collected or generated by the sensors 102 a or controllers 104 a104 b, such as measurement data from the sensors 102 a. The servers 110 a110 b could also execute applications that control the operation of the controllers 104 a104 b, thereby controlling the operation of the actuators 102 b. In addition, the servers 110 a110 b could provide secure access to the controllers 104 a104 b. Each of the servers 110 a110 b includes any hardware, software, firmware, or combination thereof for providing access to or control of the controllers 104 a104 b. In this example, each of the servers 110 a110 b includes one or more processors 112 and one or more memories 114 storing data and instructions used or generated by the processor(s) 112. As a particular example, each of the servers 110 a110 b could represent a computing device running a MICROSOFT WINDOWS operating system.

One or more operator stations 116 a116 b are coupled to the servers 110 a110 b, and one or more operator stations 116 c are coupled to the controllers 104 a104 b. The operator stations 116 a116 b represent computing or communication devices providing user access to the servers 110 a110 b, which could then provide user access to the controllers 104 a104 b (and possibly the sensors 102 a and actuators 102 b). The operator stations 116 c represent computing or communication devices providing direct user access to the controllers 104 a104 b. As particular examples, the operator stations 116 a116 c could allow users to review the operational history of the sensors 102 a and actuators 102 b using information collected by the controllers 104 a104 b and/or the servers 110 a110 b. The operator stations 116 a116 c could also allow the users to adjust the operation of the sensors 102 a, actuators 102 b, controllers 104 a104 b, or servers 110 a110 b. Each of the operator stations 116 a116 c includes any hardware, software, firmware, or combination thereof for supporting user access and control of the system 100. In this example, each of the operator stations 116 a116 c includes one or more processors 118 and one or more memories 120 storing data and instructions used or generated by the processor(s) 118. In particular embodiments, each of the operator stations 116 a116 c could represent a computing device running a MICROSOFT WINDOWS operating system.

In this example, at least one of the operator stations 116 b is remote from the servers 110 a110 b. The remote station is coupled to the servers 110 a110 b through a network 122. The network 122 facilitates communication between various components in the system 100. For example, the network 122 may communicate Internet Protocol (IP) packets, frame relay frames, Asynchronous Transfer Mode (ATM) cells, or other suitable information between network addresses. The network 122 may include one or more local area networks (LANs), metropolitan area networks (MANs), wide area networks (WANs), all or a portion of a global network such as the Internet, or any other communication system or systems at one or more locations.

In this example, the system 100 includes two additional servers 124 a124 b. The servers 124 a124 b execute various applications to control the overall operation of the system 100. For example, the system 100 could be used in a processing or production plant or other facility, and the servers 124 a124 b could execute applications used to control the plant or other facility. As particular examples, the servers 124 a124 b could execute applications such as enterprise resource planning (ERP), manufacturing execution system (MES), or any other or additional plant or process control applications. Each of the servers 124 a124 b includes any hardware, software, firmware, or combination thereof for controlling the overall operation of the system 100.

As shown in FIG. 1, the system 100 includes various redundant networks 126 a126 b and single networks 128 a128 b that support communication between components in the system 100. Each of these networks 126 a126 b, 128 a128 b represents any suitable network or combination of networks facilitating communication between components in the system 100. The networks 128 a128 b could, for example, represent redundant Ethernet networks, and the network 128 a could represent a single Ethernet network. Also, the network 128 b could represent a single Ethernet network, an electrical signal network (such as a HART or FOUNDATION FIELDBUS network), or a pneumatic control signal network.

In one aspect of operation, at least one of the controllers 104 a104 b represents a multivariable predictive control (MPC), controller or other type of controller that operates using a model 130. The model 130 generally represents at least part of an industrial process being controlled, such as by defining how the controller controls one or more of the actuators 102 b based on input data from the sensors 102 a. The identification of the model 130 (which involves an identification of how the process being controlled behaves) is often critical to the proper operation of the controller. As a result, it is often desirable to generate a model 130 that accurately reflects the behaviors of the process being controlled when the controller is commissioned. Not only that, the process being controlled often varies or changes over time, meaning the model 130 generated during commissioning of the controller may not be as accurate as possible later. Because of this, it is often desirable to update the model 130 so that it continues to accurately reflect the behaviors of the process being controlled.

To facilitate the initial identification or updating of a model 130, a model identification tool 132 can be provided in the system 100. The model identification tool 132 analyzes data (such as historical data received from the sensors 102 a and sent to the actuators 102 b) to identify multiple models of the process to be controlled. The model identification tool 132 then analyzes the generated models and selects the model that best represents the process to be controlled. The model identification tool 132 can then make this model available to the controllers 104 a104 b as the model 130. The model identification tool 132 includes any hardware, software, firmware, or combination thereof for identifying multiple models and selecting one or more of the models for use. The model identification tool 132 could, for example, represent one or more computer programs executed by the processor(s) in the servers 110 a110 b or the operator stations 116 a116 c.

In general, the model identification tool 132 may identify multiple types of model structures (such as a family of Prediction Error Model or “PEM” derived structures) and a family of model orders for each structure. These model structures and orders can be searched or analyzed to identify the most effective model (structure and order) for a particular application. As part of the identification of the most effective model, various metrics can be defined and calculated, and the best (such as the most effective or most accurate) model can be selected.

Depending on the environment and the implementation, the following functionality can be supported by the model identification tool 132. However, not all of the following functionality need be present in all implementations of the model identification tool 132. A subset of this functionality could be implemented in the model identification tool 132 depending on particular needs.

In some embodiments, the model identification tool 132 may use low frequency (gain) model information and unbiased models to select the best model. The focus on gain may be done for model optimization. If there is no need for optimization, bandwidth goals of the controller could be used to define the frequency band over which useful model information is required. The desire for unbiased models may result, in large part, from the operating behavior of a constraintbased controller. The desire for unbiased models may be less significant in a controller without constraints.

No single process identification method may be equally effective for all applications. While certain model structures may have a higher likelihood of being successful than others, these structures can fail in particular situations where others succeed. This can occur even when the model is not orderlimited. The model identification tool 132 therefore may perform a search of a set or family of candidate model structures. The model structures contained in the set or family can be determined based on past performance and recent advances deemed to be of practical value. As such, individual model structures can be added or removed as more promising techniques become available.

Also, asymptotic theory may not in itself be sufficient for practical representation of model quality and/or existence. Consistency and bias considerations resulting from asymptotic theory can be useful or even essential for choosing candidate models. However, it may be less effective at providing model quality metrics in practical step testing that does not meet the assumptions imposed by asymptotic theory. The model identification tool 132 may therefore support a hybrid approach for representing model quality. This hybrid approach can combine asymptotic results in terms of confidence limits, along with observations based on model perturbations available from physical (possibly short length) data sets and statistical predictive performance metrics.

Further, the representation of models in the frequency domain, while promising, could have relatively little impact on conventional multivariable predictive control as practiced in certain industries. To be truly impactive, uncertainty descriptions can be mapped between model and controller, as is done in “controlrelevant identification” techniques. Here, models may need to be accurate only over the frequency ranges that are relevant to the associated controller, and the frequency range of interest may be dictated by the bandwidth of the controller. Because of this, the model identification tool 132 may be capable of determining model quality primarily in a model's very low frequency (steady state) behavior. This may be useful, for example, in industries having a preference for constrained optimization rather than bandwidth performance.

Even when used with bandwidthbased controllers, controlrelevant identification could be useful, and the model identification tool 132 may support various functions to support this. For example, the model identification tool 132 could support a loopshaping approach for proportionalintegralderivative (PID) control that uses an uncertainty description in the frequency domain to define the acceptable bandwidth (loop shape) of the controller. Asymptoticbased uncertainty computations (in combination with heuristics) can also be done in a componentwise fashion, as in the context of additive or multiplicative uncertainty estimation. In addition, “unfalsification” concepts can be useful in statespace based loopshaping designs.

Moreover, industrial processes are often nonstationary. Accurate representations of unmeasurable disturbances by colored noise models have been used in academic settings, but direct use of these models in practical controller design has been problematic. The model identification tool 132 can use noise models to deal with nonstationary data and band pass filtering to precondition the data.

Beyond that, standard evaluation methods, such as residual analysis and predictive performance through simulation, are used throughout the industrial control industry. Unfortunately, these tests can give very misleading results. Visual inspection methods, while popular in univariate openloop step testing, can become problematic in multivariate and/or closedloop testing. The model identification tool 132 therefore can use a statisticallybased prediction metric that is relatively invariant to data filtering and scaling. This may allow, for example, the prediction metric to be used to compare models of different structures under varying conditions.

Furthermore, the effective use of filters to allow extra freedom in shaping the properties of prediction errors is well understood in academic settings. Proper use of filters can support frequency weighting, which can be done to emphasize frequency ranges that are more important than other ranges. With the possible exception of differencing operators, the use of filters has not been widely accepted in the industrial community. The model identification tool 132 may use band pass filters as an integral part of the search and evaluation of the models and the selection of the best model for a given process to be controlled.

In addition, it has been reasonable in the past to expect that personnel (such as practitioners of MPC applications) would be fully versed in basic model identification techniques. However, due to increasing demands in terms of control performance, user training, time, and resources, it may no longer be reasonable to assume that personnel can be skilled in the latest techniques. The model identification tool 132 may therefore support fully automated identification and selection of a model for a controller. At the same time, all sublevels of identification may be available for skilled personnel if desired.

Although FIG. 1 illustrates one example of a process control system 100, various changes may be made to FIG. 1. For example, a control system could include any number of sensors, actuators, controllers, servers, operator stations, networks, and model identification tools. Also, the makeup and arrangement of the process control system 100 is for illustration only. Components could be added, omitted, combined, or placed in any other suitable configuration according to particular needs. In addition, FIG. 1 illustrates one operational environment in which model identification can be used. The model identification mechanism could be used in any other suitable device or system.

FIG. 2 illustrates an example representation 200 of a process system. The embodiment of the process system representation 200 shown in FIG. 2 is for illustration only. Other process system representations could be used without departing from the scope of this disclosure. Also, for ease of explanation, the process system representation 200 is described as representing or being controlled by the process control system 100 of FIG. 1. The process system representation 200 could be associated with any other suitable system.

In the example shown in FIG. 2, all inputs and outputs are assumed to be multidimensional vectors. In this example, the logic implemented by a controller (such as controller 104 a or 104 b) is represented by a discrete controller representation 202. The discrete controller representation 202 could, for example, represent a nonlinear or timeinvariant controller. The process being controlled by the controller is represented by a process model 204. Noise is represented in the representation 200 by a discrete noise model 206, which could be linear and timeinvariant.

A dither signal 208 (denoted r(t)) can be superimposed on one or more outputs of the controller at time t. The resulting signal 210 (denoted u(t)) represents the input to the process. Unmeasurable disturbances 212 (denoted v(t)) are based on white noise disturbances 214 (denoted e(t)) provided to the discrete noise model 206. An output signal 216 (denoted y(t)) represents the output of the process being controlled. Sensor noise disturbances 218 (denoted η(t)) are combined with actual sensor measurements of the output signal 216. The sensor measurements (as affected by sensor noise disturbances 218) are fed back to the controller, such as by subtracting the sensor measurements from a desired setpoint.

In general, closedloop operation of the controller can impose additional complications relative to the openloop case. Generally, in closedloop operation, inputs are correlated to disturbances through feedback. Because of this correlation, methods that work well in the openloop case may fail in the closedloop case. The following description provides a practical technique for process identification that is valid for both openloop and closedloop systems.

Although FIG. 2 illustrates one example representation 200 of a process system, various changes could be made to FIG. 2. For example, a process system could be modeled in any other suitable manner.

FIGS. 3 through 4B illustrate example methods for automated identification of an industrial process in a process control system. More specifically, FIG. 3 illustrates a more general method 300 for automated identification of an industrial process, while FIGS. 4A and 4B illustrate a more specific implementation of a method 400 for automated identification of an industrial process. The embodiments of the methods 300 and 400 shown in FIGS. 3 through 4B are for illustration only. Other embodiments of the methods could be used without departing from the scope of this disclosure. Also, for ease of explanation, the methods 300 and 400 may be described as being used by the model identification tool 132 in the system 100 of FIG. 1 to identify a process modeled using the representation 200 of FIG. 2. The methods 300 and 400 could be used by any suitable device or system to identify any suitable type of process to be controlled.

As shown in FIG. 3, input/output data to be used to identify a model for controlling a process is preconditioned at step 302. This could include, for example, the model identification tool 132 scaling the input/output data to an appropriate scale. This could also include the model identification tool 132 subtracting averages from discontinuous data segments.

Tentative time delays are determined for the range of expected model orders at step 304. In general, when there is a change to the input of a process, there is a corresponding change in the output of the process. The model to be used to control the process describes how the process output evolves over time corresponding to changes in the process input. Thus, the model can be used to predict process output changes based on process input changes. If a process output change occurs immediately when a process input change occurs, there is no delay. However, in many processes, an output change occurs some time after the input change occurs. This is described by the time delay in the model used to control the process. An accurate estimate of the time delay may be useful because it may help to reduce the order of the final model chosen to control the process or increase the accuracy or effectiveness of the model. An example technique for determining the tentative time delays is described below.

Multiple candidate sets of models are identified using the input/output data at step 306. Each model set could, for example, be associated with a different type of model. Also, each model set could include models of various orders, such as when each model set includes firstorder, secondorder, thirdorder, and fourthorder models. As an example, the model sets could include various models derived from the PEM paradigm, where both direct and joint inputoutput techniques are used. Multiple model structures (and subsequently multiple orders for each structure) establish a population of candidate models to analyze. Example types of models and techniques for generating the models are described below.

In particular embodiments, the identification of the candidate model sets may involve the following. The model identification tool 132 may calculate highorder model initial conditions (IC) for models requiring an iterative search. The model identification tool 132 may also estimate model parameters (both with and without the tentative time delays) and select parameters that result in a minimum loss function. At least some of the models being analyzed may be overparameterized to satisfy the asymptotic theory and to provide sufficient structure, so model quality may be compromised due to the increased variance of higherorder models. To reduce or eliminate this problem, the model identification tool 132 may reduce the orders of the generated models prior to final analysis and selection. In addition, a band pass filter can be designed based on the generated model sets, and an additional model set can be generated using band passfiltered data.

The candidate models are analyzed at step 308. This could include, for example, the model identification tool 132 determining various metrics for the previously generated candidate models in the various sets. The metrics may or may not be exclusively dependent on asymptotic theory. The metrics may allow an empirical based technique to give some indication as to the quality of the models, and the quality could identify the “goodness” (or lack thereof) of the models as well as the validity of the models. The metrics can be independent of predictive performance, and each inputoutput model pair can be ranked based on the quality metrics.

The best overall model is selected at step 310. The best overall model could be the model that most effectively or most accurately represents the process to be controlled. For example, the selection of the best overall model could involve a search designed to identify which model structuremodel order combination yields the best overall performance. The best overall model could be selected based on the metrics determined during step 308. The best overall model could also be selected using a prediction metric, which may be based on an output error for each model generated via simulation. For instance, inputs and outputs for the simulation can be transformed by a band pass filter (whose breakpoints are defined by the candidate models). The filtered data can be used during the simulation to determine the prediction metric for each candidate model. The various metrics could then be combined and used to select the best overall model.

If possible, the order of the selected model is reduced at step 312. The selected model is then output at step 314. The model could be output in any suitable manner, such as in the form of a transfer function.

FIGS. 4A and 4B illustrate a more specific method 400 for automated identification of an industrial process. In FIG. 4A, input/output data is preconditioned at step 402, and tentative time delays are determined at step 404. This could occur in the same or similar manner as described above with respect to FIG. 3.

A highorder autoregressive with integrated exogeneous inputs (hIX) candidate model set is identified at step 406. This could include, for example, the model identification tool 132 generating a set of hIX models having different model orders using the preconditioned input/output data. A determination is made as to whether a time delay is needed for the hIX models at step 408. The model orders can be reduced (if possible), and metrics associated with the hIX models are determined and stored along with the models at step 410. The metrics may, for example, provide an indication as to the quality of the different hIX models in this set of candidate models.

An intermediate BoxJenkins (iBJ) candidate model set is identified at step 412. This could include, for example, the model identification tool 132 generating a set of iBJ models having different model orders using the preconditioned input/output data. A determination is made as to whether a time delay is needed for the iBJ models at step 414. Initial parameter estimation is performed for the iBJ models at step 416. This may involve the model identification tool 132 identifying initial conditions for the iBJ models. Metrics associated with the initialized models are determined and stored along with the models at step 418.

A loworder output error (lPE) candidate model set is identified at step 420. This could include, for example, the model identification tool 132 generating a set of lPE models having different model orders using the preconditioned input/output data. A determination is made as to whether a time delay is needed for the lPE models at step 422, and initial parameter estimation is performed at step 424. Metrics associated with the initialized lPE models are determined and stored along with the models at step 426.

A highorder prefiltered autoregressive with exogeneous inputs (hPX) candidate model set is identified at step 428. This could include, for example, the model identification tool 132 generating a set of hPX models having different model orders using the preconditioned input/output data. A determination is made as to whether a time delay is needed for the hPX models at step 430, and metrics associated with the hPX models are determined and stored along with the models at step 432. At this point, the various models that have been generated can be given an initial ranking, such as a ranking based on the model quality metrics determined up to this point.

Using the current model sets, one or more band pass filters are designed at step 434. This may include, for example, the model identification tool 132 generating a band pass filter used in subsequent steps to identify an additional candidate model set and to determine a predictive metric for the models. The band pass filter is used to filter the input/output data at step 436.

A highorder, band pass filtered, autoregressive with exogeneous inputs (hBP) candidate model set is identified at step 438. This could include, for example, the model identification tool 132 generating a set of hBP models having different model orders using the input/output data as filtered by the band pass filter. A determination is made as to whether a time delay is needed for the hBP models at step 440, and metrics associated with the hBP models are determined and stored along with the models at step 442.

At this point, the model identification tool 132 continues analyzing the candidate model sets in an attempt to identify the model that best represents the process to be controlled. For example, a loss function for each model structuremodel order combination is determined at step 444. Also, an average feedback effect correlation factor can be identified for each model structuremodel order combination at step 446. As explained in more detail below, the average feedback effect correlation factor may represent a prediction error associated with each model structuremodel order combination. The model metrics and rankings can then be updated using the loss function and average feedback effect correlation factor information at step 448.

The best overall model is then selected using the metrics and rankings at step 450. This may include, for example, the model identification tool 132 identifying the model structure and order having the highest ranking with the lowest prediction error. The order of the selected model is reduced (if possible) at step 452, and the model metrics are updated if the model order is reduced. The model is then output at step 454, such as by converting the model to the continuous time domain and outputting the model in transfer function form. The transfer function models may then be converted to statespace models using, for example, balanced realization techniques. Transforming the models at this stage allows for direct control of the biasvariance distribution. This feature is not possible in direct statespace identification.

Additional details regarding various ones of these steps (such as the identification of the models or the determination of the metrics) are provided below in conjunction with FIGS. 5 through 24.

Although FIGS. 3 through 4B illustrate examples of methods for automated identification of an industrial process in a process control system, various changes may be made to FIGS. 3 through 4B. For example, while each figure illustrates a series of steps, various steps in these figures could overlap, occur in parallel, or occur in a different order. As a particular example, certain calculations may not be strictly sequential, and the results of prior calculations could be used to precondition future calculations.

FIGS. 5 through 24 illustrate example operations during automated identification of an industrial process in a process control system. In particular, FIGS. 5 through 24 and the accompanying description illustrate and describe various operations that may occur during the methods 300 and 400 of FIGS. 3, 4A, and 4B. The example operations shown in FIGS. 5 through 24 are for illustration and explanation only. Other or additional operations could occur during automated identification of an industrial process without departing from the scope of this disclosure.

Model Structures

Introduction:

As noted above, the model identification tool 132 may generate multiple candidate sets of models. The types of candidate model sets generated in a particular implementation may vary depending on a variety of factors, such as practical constraints imposed during step testing in normal operation of the process system. For example, safety and operating constraints often impose limitations on how a process system can be tested. In a typical plant, it may not be possible to build a single monolithic multiple input, multiple output (MIMO) model. This may be the case irrespective of the identification procedure to be used for model building. Often times, only a portion of the process corresponding to a given controller can be stepped or tested during a given period of time. Models for a final controller can be typically generated by combining multiple groups or blocks of smaller MIMO submodels. In some cases, disjoint data may require a data transformationbased deconvolution of known models from alternate data sets. It is also often important to realize that there may be no causal relationship between input/output data channels. In fact, model matrices often have a large number of empty or null values (such as 50% to 80%). If the null relationships are known beforehand, this information can be used to greatly enhance the performance of the model identification tool 132.

In general, a generic PEM model structure can be defined as:

y(t)=G(z,θ)u(t)+H(z,θ)e(t). (1)

Here, θ is a vector of unknown parameters, e is a zeromean white noise sequence with variance λ, y is a pdimensional vector of outputs, and u is a qdimensional vector of inputs. Consequently, G is dimensioned pxq, and H is dimensioned pxp. For the purposes of analysis, it is assumed that data is generated from a true system as defined by:

:
y(
t)=
G _{0}(
z)
u(
t)+
H _{0}(
z)
e(
t). (2)

The true system is denoted by
. Here, let the available data be denoted by:

D ^{N} =[y(1),u(1), . . . , . . . , y(N),u(N)] (3)

where N is the number of data records. Also, let the allowable model structure be denoted as:


where Θ is the allowable range of permissible parameter values. Thus, in some embodiments, the model identification tool 132 determines whether the true system defined by Equation (2) belongs to the set given in Equation (4).

To do this, define the set
(
,
) as those θ values in Θ for which
=
(θ). This set is empty when
∉
. If it is assumed that
εM so that
=
(θ
_{0}) for some value θ
_{0 }and that
is globally identifiable at θ
_{0}, then:


A good model choice is to select
such that Equation (5) holds. Since
is an abstraction and may never be known, this may require tests of several different structures. This search of model structures (as well as model order) may represent the basic search described above that is performed by the model identification tool
132.

In the PEM identification approach, the estimate of the unknown parameter on the data set can be defined by:

$\begin{array}{cc}{\hat{\theta}}_{N}={\hat{\theta}}_{N}\ue8a0\left({D}^{N}\right)=\underset{\theta \in \Theta}{\mathrm{arg}\ue89e\phantom{\rule{0.3em}{0.3ex}}\ue89e\mathrm{min}}\ue89e{V}_{N}\ue8a0\left(\theta ,{D}^{N}\right).& \left(6\right)\end{array}$

Here, “arg min” means “the minimizing argument of the function.” The function can be defined by the following norm:

$\begin{array}{cc}{V}_{N}\ue8a0\left(\theta ,{D}^{N}\right)=\frac{1}{N}\ue89e\sum _{t=1}^{N}\ue89e\ue529\ue8a0\left({\varepsilon}_{f}\ue8a0\left(t,\theta \right)\right)& \left(7\right)\end{array}$

where
(∘) is a scalarvalued function. Both quadratic and robust norms can be supported here. The filtered prediction error ε
_{f}(t,θ) in Equation (7) can be given by the following expression:

ε_{f}(t,θ)=L(z)ε(t,θ) (8)

where:

ε(t,θ)=y(t)−ŷ(tt−1,θ)=Ĥ ^{−1} [y(t)−Ĝu(t)]. (9)

The gradient of the prediction error can be defined as:

$\begin{array}{cc}\psi \ue8a0\left(t,\theta \right)=\frac{\uf74c}{\uf74c\theta}\ue89e\varepsilon \ue8a0\left(t,\theta \right)=\frac{\uf74c}{\uf74c\theta}\ue89e\hat{y}(t\ue89e\uf603t1,\theta ).& \left(10\right)\end{array}$

In Equations (8) and (9), L(z) represents a stable linear filter, and the symbols Ĝ and Ĥ are used to denote G(z,{circumflex over (θ)}_{N}) and H(z,{circumflex over (θ)}_{N}), respectively. Similarly, the symbols G_{θ} and H_{θ} can be used to denote G(z,θ) and H(z,θ), respectively. While the filter L(z) is shown explicitly in Equation (8) to denote its effect on shaping the prediction error, it may also be used as a data prefilter and as an additional term in the noise model for a specific candidate model set (the hBP model set).

Asymptotic Results:

In the following description, these variables are used for notational convenience:

$\begin{array}{cc}T\ue8a0\left(z,\theta \right)=\left[G\ue8a0\left(z,\theta \right)\ue89e\phantom{\rule{0.6em}{0.6ex}}\ue89eH\ue8a0\left(z,\theta \right)\right]\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{and}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\chi \ue8a0\left(t\right)=\left[\begin{array}{c}u\ue8a0\left(t\right)\\ e\ue8a0\left(t\right)\end{array}\right]& \left(11\right)\end{array}$

where T is dimensioned px(q+p), and χ is dimensioned (q+p)x1. With this definition, Equation (1) can be rewritten as:

y(t)=T(z,θ)χ(t). (12)

From Equation (11), the power spectrum of χ(t) can be denoted:

$\begin{array}{cc}{\Phi}_{\chi}\ue8a0\left(\omega \right)=\left[\begin{array}{cc}{\Phi}_{u}\ue8a0\left(\omega \right)& {\Phi}_{\mathrm{ue}}\ue8a0\left(\omega \right)\\ {\Phi}_{\mathrm{eu}}\ue8a0\left(\omega \right)& \lambda \end{array}\right]& \left(13\right)\end{array}$

where Φ
_{u}(ω) and Φ
_{ue}(ω) represent the power spectrum of u and the crosspower spectrum of u and e, respectively. Also, Φ
_{χ} is dimensioned (q+p)x(q+p). The following assumptions can be made here: Equation (6) converges to a unique global optimum for all n and N, all signals in D
^{N }are quasistationary, the scalar norm in Equation (7) is quadratic (
(∘)=∥∘∥
_{2} ^{2}), and Φ
_{χ}(ω)>0 ∀ω.

From here, it follows that:

$\begin{array}{cc}{V}_{N}\ue8a0\left(\theta ,{D}^{N}\right)>\stackrel{\_}{V}\ue8a0\left(\theta \right),\mathrm{and}& \left(14\right)\\ {\hat{\theta}}_{N}>\stackrel{\_}{\theta}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89ew.p.\phantom{\rule{0.8em}{0.8ex}}\ue89e1\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{as}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89eN>\infty \ue89e\text{}\ue89e\text{where:}& \left(15\right)\\ \stackrel{\_}{V}\ue8a0\left(\theta \right)=\frac{1}{2}\ue89e\stackrel{\_}{E}\ue89e\left\{{\varepsilon}^{2}\ue8a0\left(t,\theta \right)\right\},\mathrm{and}& \left(16\right)\\ \stackrel{\_}{\theta}=\underset{\theta \in \Theta}{\text{arg}\ue89e\mathrm{min}}\ue89e\stackrel{\_}{V}\ue8a0\left(\theta \right).& \left(17\right)\end{array}$

Equation (17) can be rewritten as:

$\begin{array}{cc}\stackrel{\_}{\theta}=\underset{\theta \in \Theta}{\text{arg}\ue89e\mathrm{min}}\ue89e\frac{1}{2\ue89e\pi}\ue89e{\int}_{\pi}^{\pi}\ue89e\mathrm{tr}\ue8a0\left({\Phi}_{\varepsilon}\right)\ue89e\uf74c\omega & \left(18\right)\end{array}$

where Φ_{ε}(ω) is the power spectrum of ω. By combining Equations (2), (9), (11), and (12), the prediction error can be rewritten as:

ε(t)=H _{θ} ^{−1} {tilde over (T)}χ(t)+e(t) (19)

where:

{tilde over (T)}≡[G_{0}−G_{θ}H_{0}−H_{θ}] (20)

and where e(t) is independent of [G_{0}−G_{θ}]u(t) and of [H_{0}−H_{θ}]e(t) (since all terms are proper). As a result, the power spectrum of ε can be written as:

$\begin{array}{cc}{\Phi}_{\varepsilon}={H}_{\theta}^{1}\ue89e\stackrel{~}{T}\ue89e\phantom{\rule{0.3em}{0.3ex}}\ue89e{\Phi}_{\chi}\ue89e{\stackrel{~}{T}}^{*}\ue89e{H}_{\theta}^{1*}+\lambda \ue89e\text{}\ue89e\text{where:}& \left(21\right)\\ \stackrel{~}{T}\ue89e\phantom{\rule{0.3em}{0.3ex}}\ue89e{\Phi}_{\chi}\ue89e{\stackrel{~}{T}}^{*}=\left[\begin{array}{cc}{G}_{0}{G}_{\theta}& {H}_{0}{H}_{\theta}\end{array}\right]\ue8a0\left[\begin{array}{cc}{\Phi}_{u}\ue8a0\left(\omega \right)& {\Phi}_{\mathrm{ue}}\ue8a0\left(\omega \right)\\ {\Phi}_{\mathrm{eu}}\ue8a0\left(\omega \right)& \lambda \end{array}\right]\ue8a0\left[\begin{array}{c}{G}_{0}^{*}{G}_{\theta}^{*}\\ {H}_{0}^{*}{H}_{\theta}^{*}\end{array}\right]& \left(22\right)\end{array}$

and, for example, G*_{θ}=G^{T}(θ,e^{−iω}). Therefore:

$\begin{array}{cc}\stackrel{\_}{\theta}=\underset{\theta \in \Theta}{\text{arg}\ue89e\mathrm{min}}\ue89e\frac{1}{2\ue89e\pi}\ue89e{\int}_{\pi}^{\pi}\ue89e\mathrm{tr}\ue89e\left\{\stackrel{~}{T}\ue89e\phantom{\rule{0.3em}{0.3ex}}\ue89e{\Phi}_{\chi}\ue89e{\stackrel{~}{T}}_{*}^{T}\ue89e{H}_{\theta}^{1*}\ue89e{H}_{\theta}^{1}\right\}\ue89e\uf74c\omega .& \left(23\right)\end{array}$

With the use of Equation (22), the expression in Equation (23) illustrates the significant properties of the PEM approach under closedloop conditions.

When
ε
, G
_{0 }ε
and H
_{0 }ε
. As a result, the true plant and noise processes both lie inside the parameterized model sets. For this case, it is clear from Equation (22) that the minimum of Equation (23) occurs when G
_{ θ=G} _{0 }and H
_{ θ=H} _{0}. Hence, Equation (5) is satisfied. This leads to the following results, where estimation is consistent and unbiased:

{circumflex over (θ)}_{N}→θ_{0 }w.p. 1as N→∞ (24)

Ĝ→G_{0}; Ĥ→H_{0 }w.p. 1 as N→∞ (25)

G(e^{iω},{circumflex over (θ)}_{N})→G_{0}(e^{iω});

H(e^{iω},{circumflex over (θ)}_{N})→H_{0}(e^{iω}) w.p. 1 as N→∞ (26)

When
∉M, the plant and noise processes do not both lie inside the parameterized model sets. In these cases, it may be more desirable to have a good estimate of the plant process than the noise filter. For this case, consider G and H to be independently parameterized, and G
_{0}ε
and H
_{0}∉
. Here, the true plant process lies inside the parameterized model sets, but the noise process does not. This may be the case if there is no noise representation (such as in the lPE model set) or even if the noise is undermodeled. For this case, it is clear from Equations (22) and (23) that, in general, G
_{ θ }=G
_{0 }does not result in a minimum of the objective function, so Ĝ does not converge to G
_{0}. However, if openloop testing is done, the minimum of Equation (23) may occur when Φ
_{ue}≡0. This may lead to the following results when G
_{0}ε
. Under closedloop conditions, the estimation is biased, and Ĝ does not converge to G
_{0}. Under openloop conditions, Φ
_{ue}≡0, and the estimate is consistent and unbiased:

{circumflex over (θ)}→Θ_{0 }w.p. 1 as N→∞ (27)

Ĝ→G_{0 }w.p. 1 as N→∞ (28)

G(e^{iω}, {circumflex over (θ)}_{N})→G_{0}(e^{iω}) w.p. 1 as N→∞. (29)

When G
_{0}∉
, the estimation may always be biased irrespective of the noise model. This may be true under both openloop and closedloop operation, which may lead to the following results when G
_{0}∉
: estimation is always biased, and Ĝ does not converge to G
_{0}.

In addition to {circumflex over (θ)}_{N}and Ĝ, it may be useful to evaluate the model sets' properties in terms of {circumflex over (T)}_{N}(e^{iω})=T(e^{iω},{circumflex over (θ)}_{N}), which may have the following form:

$\begin{array}{cc}{\hat{T}}_{N}\ue8a0\left(\omega \right)=\left[\begin{array}{cccccc}{\hat{G}}_{1,1}\ue8a0\left(\omega \right)& \cdots & {\hat{G}}_{1,q}\ue8a0\left(\omega \right)& {\hat{H}}_{1,1}\ue8a0\left(\omega \right)& \cdots & {\hat{H}}_{1,p}\ue8a0\left(\omega \right)\\ \vdots & \u22f0& \vdots & \vdots & \u22f0& \vdots \\ {\hat{G}}_{p,1}\ue8a0\left(\omega \right)& \cdots & {\hat{G}}_{p,q}\ue8a0\left(\omega \right)& {\hat{H}}_{p,1}\ue8a0\left(\omega \right)& \cdots & {\hat{H}}_{p,p}\ue8a0\left(\omega \right)\end{array}\right].& \left(30\right)\end{array}$

The column vector T
(e
^{iω}) can be written as:

$\begin{array}{cc}{T}^{}\ue8a0\left({\uf74d}^{\mathrm{\uf74e\omega}}\right)=\ue89e{\hat{T}}_{N}\ue8a0\left({\uf74d}^{\mathrm{\uf74e\omega}}\right)\ue89e\text{}\ue89e{T}^{}\ue8a0\left({\uf74d}^{\mathrm{\uf74e\omega}}\right)=\left[\begin{array}{c}{G}_{1,1}\ue8a0\left({\uf74d}^{\mathrm{\uf74e\omega}},{\hat{\theta}}_{N}\right)\\ {G}_{2,1}\ue8a0\left({\uf74d}^{\mathrm{\uf74e\omega}},{\hat{\theta}}_{N}\right)\\ \vdots \\ {G}_{1,2}\ue8a0\left({\uf74d}^{\mathrm{\uf74e\omega}},{\hat{\theta}}_{N}\right)\\ \vdots \\ {G}_{p,q}\ue8a0\left({\uf74d}^{\mathrm{\uf74e\omega}},{\hat{\theta}}_{N}\right)\\ \vdots \\ {H}_{p,p}\ue8a0\left({\uf74d}^{\mathrm{\uf74e\omega}},{\hat{\theta}}_{N}\right)\end{array}\right]& \left(31\right)\end{array}$

where
is the column vector operator that creates a vector by stacking columns of a matrix one on top of the other. Based on Equations (11) and (12), the covariance of {circumflex over (T)}
_{N}(e
^{iω}) can be written as:

$\begin{array}{cc}\mathrm{cov}\ue89e\phantom{\rule{0.3em}{0.3ex}}\ue89e{T}^{}\ue8a0\left({\uf74d}^{\mathrm{\uf74e\omega}}\right)=\frac{n}{N}\ue89e{\Phi}_{\chi}^{T}\ue8a0\left(\omega \right)\otimes {\Phi}_{v}\ue8a0\left(\omega \right)& \left(32\right)\end{array}$

where
, {circle around (x)} are the column vector operator and Kronecker product, respectively, and the spectrum Φ
_{χ}(ω) is given in Equation (13). Furthermore, covT
has the dimensions p(q+p)xp(q+p) and is defined as Φ
_{ν}=H
_{0}λH*
_{0}. The covariance can therefore be written as:

$\begin{array}{cc}\underset{n>\infty}{\mathrm{lim}}\ue89e\frac{1}{n}\ue89e{P}_{n}\ue8a0\left(\omega \right)\approx {\left[\begin{array}{cc}{\Phi}_{u}\ue8a0\left(\omega \right)& {\Phi}_{\mathrm{ue}}\ue8a0\left(\omega \right)\\ {\Phi}_{\mathrm{eu}}\ue8a0\left(\omega \right)& \lambda \end{array}\right]}^{T}\otimes {\Phi}_{v}\ue8a0\left(\omega \right).& \left(33\right)\end{array}$

This leads to the following results on the asymptotic distribution of the estimates. When
ε
, variances of the (i,j)
^{th }model and filter, respectively, can be defined by:

var [Ĝ
_{i,j}(e
^{iω})]≈covT
(k,k)

where: k=i+p(j−1);i=1→p;j=1→q (34)

and

var [Ĥ
_{i,j}(e
^{iω})]≈covT
(k,k)

where: k=pq+i+p(j−1);i=1→p;j=1→p (35)

Also, distributions of the estimates can be defined by:

√{square root over (N)}Ĝ
_{i,j}(e
^{iω})→
(0, P
_{n}(ω)
_{k,k}) (36)

where: k =i+p(j−1);i=1→p;j=1→q

and

√{square root over (N)}Ĥ
_{i,j}(e
^{iω})→
(0,P
_{n}(ω)
_{k,k})

where: k=pq+i+p(j−1);i=1→p; j=1→p (37)

where the covariance matrix is defined in Equation (33). In addition, the distribution of the estimates in the time domain can be given by:

$\begin{array}{cc}\sqrt{N}\ue89e\left({\hat{\theta}}_{N}^{i}{\theta}_{0}^{i}\right)\in \ue89e\left(0,{\hat{P}}_{\hat{\theta}}\ue8a0\left(i,i\right)\right)\ue89e\text{}\ue89e\text{where:}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89ei=1>\mathrm{dim}\ue8a0\left({\hat{\theta}}_{N}\right)\ue89e\text{}\ue89e{\hat{P}}_{\hat{\theta}}={{\hat{\lambda}}_{N}\ue8a0\left[\frac{1}{N}\ue89e\sum _{t=1}^{N}\ue89e\psi \ue8a0\left(t,{\hat{\theta}}_{N}\right)\ue89e{\psi}^{T}\ue8a0\left(t,{\hat{\theta}}_{N}\right)\right]}^{1}\ue89e\text{}\ue89e{\hat{\lambda}}_{N}=\frac{1}{N}\ue89e\sum _{t=1}^{N}\ue89e{\varepsilon}^{2}\ue8a0\left(t,{\hat{\theta}}_{N}\right)& \left(38\right)\end{array}$

and the gradient ψ is defined in Equation (10).

Candidate Model Sets:

With this in mind, the various candidate model sets described below can be identified and analyzed by the model identification tool
132. In general, consistency and lack of bias may be important requirements for candidate models. Even though these are theoretical properties, they can provide a sound starting point for practical models. As shown above, G
_{0}ε
(where G and H are independently parameterized) may be a requirement for openloop operation, and
ε
may be a requirement for closedloop operation. As such, it may be useful if
includes the most probable candidates. The candidate model set
can therefore be described as follows:

={
(
O)
_{2}(
O), . . . ,
(
O)} (39)

where each set
_{i }contains a subset or family of model orders O:

O={n_{1},n_{2},n_{3}{. (40)

In particular embodiments, six sets of independent model structures
are considered by the model identification tool
132, and each model structure contains a set O of three independent orders. The orders in each set may vary for each model structure (meaning
(O
_{1})=n
_{1}≠
(O
_{1})).

Basic model structures for G(z,θ) and H(z,θ) can be defined using the following general parameterizations:

$\begin{array}{cc}G\ue8a0\left(z,\theta \right)=\frac{B\ue8a0\left(z,\theta \right)}{A\ue8a0\left(z,\theta \right)\ue89eF\ue8a0\left(z,\theta \right)};\ue89e\text{}\ue89eH\ue8a0\left(z,\theta \right)=\frac{1}{L\ue8a0\left(z\right)}\ue89e\frac{C\ue8a0\left(z,\theta \right)}{A\ue8a0\left(z,\theta \right)\ue89eD\ue8a0\left(z,\theta \right)}.& \left(41\right)\end{array}$

In this expression, the shaping filter L(z) has been included explicitly as it is fundamental in the definition of one specific model structure (the hBP model set). This parameterization is extremely flexible and may cover virtually all of the polynomial blackbox models. The following nomenclature is used to describe the six model sets:




Before describing the six selected model structures in more detail, note that closedloop operation imposes challenges that may not be present in openloop operation due to crosscorrelation between output error and inputs due to feedback. Because of this, closedloop model identification methods can be classified into three broad categories. In the “direct” approach, issues with feedback are ignored, and model estimation is done using unaltered input/output signals. With this approach, unbiased estimates may require LεM. In the “indirect” approach, the closedloop transfer function between an external dither signal and the process output is first determined, and an openloop model is determined from it using prior knowledge of the controller. In the “joint input/output” approach, measurements of both the inputs and outputs are used to identify a joint system, which has the process inputs and outputs as its outputs and the external dither signal as its input. The joint system can then be identified with only openloop restrictions, so unbiased estimates may only require G
_{0}ε
.

In some embodiments, indirect methods are not used to generate the candidate model sets considered by the model identification tool 132 due to the requirement that the controller representation be known and linear. In these embodiments, both direct and joint input/output methods can be used by the model identification tool 132 to define candidate model sets.

Parameterizations for the direct candidate models are described by Equation (41), and all of the models could be derived from these basic structures (whether direct or joint input/output). To describe the joint input/output models, it may be convenient to write the closedloop transfer function for the block diagram shown in FIG. 2 as follows:

$\begin{array}{cc}\left[\begin{array}{c}y\ue8a0\left(t\right)\\ u\ue8a0\left(t\right)\end{array}\right]=\hspace{1em}\left[\begin{array}{ccc}{\left(I+{G}_{0}\ue89eC\right)}^{1}\ue89e{G}_{0}& {\left(I+{G}_{0}\ue89eC\right)}^{1}\ue89e{H}_{0}& {G}_{0}\ue89e{C\ue8a0\left(I+{G}_{0}\ue89eC\right)}^{1}\\ {\left(I+{\mathrm{CG}}_{0}\right)}^{1}& {C\ue8a0\left(I+{G}_{0}\ue89eC\right)}^{1}\ue89e{H}_{0}& {C\ue8a0\left(I+{G}_{0}\ue89eC\right)}^{1}\end{array}\right]\ue89e\hspace{1em}\left[\begin{array}{c}r\ue8a0\left(t\right)\\ e\ue8a0\left(t\right)\\ \eta \ue8a0\left(t\right)\end{array}\right].& \left(43\right)\end{array}$

Here, it has been assumed that the controller is linear, although the model identification tool 132 need not have this restriction. If the output and input sensitivity functions and the output complementary sensitivity function are defined as S_{o}≡[I+G_{0}C]^{−1}, S_{i}≡[I+CG_{0}]^{−1}and T_{o}≡G_{0}C[I+G_{0}C]^{−1}, respectively, then Equation (43) can be rewritten as:

$\begin{array}{cc}\left[\begin{array}{c}y\ue8a0\left(t\right)\\ u\ue8a0\left(t\right)\end{array}\right]=\left[\begin{array}{ccc}{S}_{o}\ue89e{G}_{0}& {S}_{o}\ue89e{H}_{0}& {T}_{o}\\ {S}_{i}& {\mathrm{CS}}_{o}\ue89e{H}_{0}& {\mathrm{CS}}_{o}\end{array}\right]\ue8a0\left[\begin{array}{c}r\ue8a0\left(t\right)\\ e\ue8a0\left(t\right)\\ \eta \ue8a0\left(t\right)\end{array}\right].& \left(44\right)\end{array}$

From this closedloop expression, it can be seen that the input is composed of three terms (one due to r, one due to e, and one due to η). Therefore, u can be expressed as:

u(t)=u ^{r}(t)+u ^{e}(t)+u ^{η}(t) (45)

where:

u^{r}(t)≡S_{i}r(t)

u^{e}(t)≡−CS_{o}H_{0}e(t).

u^{η(t)≡−CS} _{0}η(t) (46)

In this form, u^{r }represents the portion of the input u generated by the dither signal r, u^{e }represents the portion due to process noise feedback, and u^{η} represents the portion due to sensor noise feedback. With this representation, the process output can be written as:

y(t)=G _{0} u ^{r}(t)+G _{0} u ^{e}(t)+G _{0} u ^{η}(t)+H _{0} e(t) (47)

Since u^{r }is uncorrelated with the remaining terms on the right hand side of Equation (47), a consistent estimate of G_{0 }can be obtained with data for y and u^{r}. In other words, the joint input/output methods may seek to first determine u^{r }and, with this information, use standard direct methods for model estimation.

Also, before describing the six selected model structures, note that Φ_{u }can be written as:

Φ_{u} =S _{i}Φ_{r} S* _{i} +CS _{o} H _{0} λH* _{0} S* _{o} C*

+S _{o} H _{0}Φ_{η} H* _{0} S* _{o } (48)

where Φ_{ue}, Φ_{eu}, Φ_{uη}, and Φ_{ηu }can be defined as:

Φ_{ue} =−CS _{o} H _{0}λ

Φ_{eu} =−λH* _{0} S* _{o} C*

Φ_{uη} =−CS _{o}Φ_{η}

Φ_{ηu}=−Φ_{η} S* _{o} C* (49)

With the following definitions;

Φ_{u} ^{r}≡S_{i}Φ_{r}S*_{i }

Φ_{u} ^{e}≡CS_{o}H_{0}λH*_{0}S*_{o}C*

Φ_{u} ^{η}≡CS_{o}Φ_{η}S*_{o}C* (50)

Equation (48) can be written as:

Φ_{u}=Φ_{u} ^{r}+Φ_{u} ^{e}+Φ_{u} ^{η}. (51)

Therefore, Φ_{u }can be expressed as a sum of three components: Φ_{u} ^{r }representing the portion from external dithering, Φ_{u} ^{e }representing the portion from noise feedback, and Φ_{u} ^{η} representing the portion due to sensor noise feedback. In addition, Φ_{χ} can be written as:

$\begin{array}{cc}{\Phi}_{\chi}=\left[\begin{array}{ccc}I& {\Phi}_{\mathrm{ue}}\ue89e{\lambda}^{1}& {\Phi}_{u\ue89e\phantom{\rule{0.6em}{0.6ex}}\ue89e\eta}\ue89e{\Phi}_{\eta}^{1}\\ 0& I& 0\end{array}\right]\ue8a0\left[\begin{array}{ccc}{\Phi}_{u}^{r}& 0& 0\\ 0& \lambda & 0\\ 0& 0& {\Phi}_{u}^{\eta}\end{array}\right]\xb7\left[\begin{array}{cc}I& 0\\ {\lambda}^{1}\ue89e{\Phi}_{\mathrm{eu}}& I\\ {\Phi}_{\eta}^{1}\ue89e{\Phi}_{\eta \ue89e\phantom{\rule{0.6em}{0.6ex}}\ue89eu}& 0\end{array}\right]& \left(52\right)\end{array}$

The preceding expression leads to the following result: in a linear controller C, Φ_{u} ^{r}>0∀ω for the results noted above to hold. Therefore, an external dither signal may be required for closedloop operation under these conditions. If the controller is nonlinear or time varying, Φ_{χ} may be positive definite even without a dither signal. Even if Φ_{χ} is positive definite, the model may be rendered useless due to variance errors as there is no mechanism in Φ_{χ} to attenuate Φ_{ν}. A final observation can be made with respect to closedloop operation for low bandwidth controllers. Under these conditions, the sensitivity function and the controller may have the following characteristics:

$\begin{array}{cc}\underset{\omega >\infty}{\mathrm{lim}}\ue89e\uf603{S}_{o}\uf604=1,\text{}\ue89e\underset{\omega >\infty}{\mathrm{lim}}\ue89e\uf603{S}_{i}\uf604=1\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{and}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\underset{\omega >\infty}{\mathrm{lim}}\ue89e\uf603C\uf604=0.& \left(53\right)\end{array}$

For a low bandwidth controller, ω_{c}>>ω*(where S(ω*)≈1 and where ω_{c}, is the cutoff frequency of the controller), so S_{o}≈S_{i}≈1>>C. With this information, Φ_{χ} can be rewritten as:

$\begin{array}{cc}{\Phi}_{\chi}=\left[\begin{array}{cc}{\Phi}_{r}& 0\\ 0& \lambda \end{array}\right].& \left(54\right)\end{array}$

As a result, tests run in the closed loop may exhibit openloop behavior for low bandwidth controllers. In this case, the model variance can be expressed as:

$\begin{array}{cc}\mathrm{var}\ue8a0\left[{\hat{G}}_{i,j}\ue8a0\left({\uf74d}^{\uf74e\ue89e\phantom{\rule{0.3em}{0.3ex}}\ue89e\omega}\right)\right]\approx \frac{n}{N}\ue89e\frac{{\Phi}_{v}\ue8a0\left(i\right)}{{\Phi}_{r}\ue8a0\left(j,j\right)}.& \left(55\right)\end{array}$

The same statement can be made if Φ
_{ν}<<Φ
_{r}. Because of this, at least one model set that is consistent only under openloop conditions is included in
.

Base Level Parameterization:

In the following description, no assumption is made as to the nature of the controller, and the controller can be either linear or nonlinear. A general MIMO structure may be assumed in some of the discussions in this patent document, and the polynomials of Equation (41) may be required to be polynomial matrices of the proper order. In addition, the polynomial structure may need to be specified for identifiability conditions. Since this could lead to cumbersome canonical forms and any advantage of a full MIMO structure may be obviated by the requirements of practical step testing, the methods considered here involve solving a sequence of p multiple input, single output (MISO) models, which are represented as:

$\begin{array}{cc}{y}_{j}\ue8a0\left(t\right)=\sum _{i=1}^{q}\ue89e\phantom{\rule{0.3em}{0.3ex}}\ue89e\left[{G}_{i}^{j}\ue8a0\left(z,\theta \ue8a0\left(n\right)\right)\ue89e{u}_{i}\ue8a0\left(t\right)\right]+{H}^{j}\ue8a0\left(z,\theta \ue8a0\left(n\right)\right)\ue89e{e}_{j}\ue8a0\left(t\right).& \left(56\right)\end{array}$

Of the possible structures covered by Equation (41), one approach could be based on a subset of the models that have delivered the best overall performance based on historical performance. For example, one structure (ARX) can be used as a primitive element in several of these models. As such, the ARX structure may not be used alone but in conjunction with other structures. The ARX structure can be defined for the j^{th }output as follows:

$\begin{array}{cc}{G}_{i}^{j}\ue8a0\left(z,\theta \ue8a0\left(n\right)\right)={z}^{{n}_{k}\ue8a0\left(i,j\right)}\ue89e\frac{{B}_{i}^{j}\ue8a0\left(z,\theta \ue8a0\left(n\right)\right)}{{A}^{j}\ue8a0\left(z,\theta \ue8a0\left(n\right)\right)}\ue89e\text{}\ue89e{H}^{j}\ue8a0\left(z,\theta \ue8a0\left(n\right)\right)=\frac{1}{{L}^{j}\ue8a0\left(z\right)\ue89e{A}^{j}\ue8a0\left(z,\theta \ue8a0\left(n\right)\right)}& \left(57\right)\end{array}$

where n_{k}(i,j) is the tentative transport delay in sample intervals for the i^{th }input and the j^{th }output, n is the polynomial order, and L is a filter that depends on the specific structure with which the ARX structure is being used. The polynomials for a given structure and for a given candidate set could have the same order n. Unless otherwise noted, if there is no transport delay, the B polynomials allow for semiproper structure.

Since the process being identified may be represented as a “black box” model in this ARX formulation, it is natural to let the model order n depend on the number of data samples n=n(N). Typically, to have a model set such that G
_{0 }ε
and H
_{0 }ε
for an industrial process, the order n needs to increase as the number of data samples N increases, but n could be small compared to N. Hence, an order requirement can be stated as:

n(N)→∞ as N→∞;n^{2}(N)/N→0as N→∞ (58)

With this representation, the ARX order set O^{ARX }can be specified as:

O ^{ARX} ={ñ,ñ+δ _{n} ,ñ+2δ_{n}}

{tilde over (n)}=max(√{square root over (N/10)},30)

δ_{n} =ñ/6 (59)

A mechanism can be provided for cases where there are one or more input/output channels with integrating behavior. In these instances, the output data can be differenced, as are all inputs corresponding to nonintegrating input channels. When the solutions are complete, an exact zero in the z domain (1−z^{−1}) can be convolved with the appropriate submodels. Several models sets are derived from this baselevel parameterization.


In the various candidate model sets, the models may all involve numerically robust rank revealing factorizations. Iterative solutions may be supported by the MATLAB ID Toolbox, with the exception of initialization. While the “instrumentalvariable method” can be used in the MATLAB ID toolbox it may be problematic under various practical applications. To correct this, the hIX method described below can be used, and a model reduction step can be implemented to form the initial estimates. When used for initial condition estimation, the orders for the hIX models can be determined using Akaike's Information theoretic Criterion (AIC) instead of Equation (59).

As described previously, in some embodiments, the model identification tool
132 operates to obtain unbiased models that require
ε
under various restrictions (such as model convergence to a global minimum and quasistationary signals). The model sets chosen and described here may represent the models best suited to meet this goal under both openloop and closedloop operation. However, other or additional types of models could be used. A detailed description of each of the candidate model sets is presented below. In presenting any results based on predictive performance, the predicted value ŷ can be based on openloop Xstep ahead prediction (meaning ŷ=ŷ(tt−∞)=Ĝu(t)), rather than on the onestep ahead prediction ŷ(tt−1) used to define the prediction error as shown in Equation (9).

hIX Model Set:

A highorder autoregressive with integrated exogeneous inputs (hIX) candidate model set can be determined using the direct method. This candidate model set may represent a highorder model set derived from Equation (59). Filter L can be used to remove nonstationary effects when required, and a global minimum for the loss function can be guaranteed as no iteration is required for the solution of Equation (6). This model structure could use the order set defined in Equation (59). For each order, two models can be created, one with L=1 and another with L=1−Z^{−1}. The latter is sometimes referred to as “differencing the data” or a velocity form. For the differencing filter to be effective, it may be used in conjunction with a highorder model. Use with loworder or underparameterized models might be problematic and render the results useless. In addition, the use of a differencing filter in conjunction with noise models might not be considered if this would render useless models even for highorder applications.

In the hIX set, models with and without filtered data can be compared by measuring the variance of the individual submodel step responses. An example comparison is shown in FIG. 5, which illustrates different classes of data (data with a slow pole and with drift) and with and without a filter (L=1 and L=1−z^{−1}). The shaded areas in FIG. 5 represent the variability of each model with different orders. This variability may be independent of the absolute gain or response time as the variability is calculated in normalized coordinates. The model identification tool 132 may operate so as to identify the filter that results in the lowest overall variability.

In FIG. 5, it can be seen that the variability of the displayed input channel with no filter (L=1) is best for the slow pole application, while the use of a filter (L=1−z^{−1}) is required for the case of nonstationary data. This is an example only and may not be uniformly true. This method can be extremely effective in automatically determining if a filter is required, and it may be independent of prediction error and insensitive to large variations in responses for various input channels. The model set with the lowest overall variability may be returned as the hIX solution.

iBJ Model Set:

An intermediateorder multiinput model with a BoxJenkins structure (iBJ) can be determined using the direct method. This structure may require a nonconvex iterative solution, meaning a global minimum might not be guaranteed. When the global minimum is obtained and the noise distribution is Gaussian, the estimates are unbiased and have minimum variance, so this may be an optimal estimator. Nonstationary effects can be accommodated directly by the noise model. With this (and other iterative solutions), the initial conditions can be calculated based on the initial hIX solution. An example standard parameterization used for this model is:

$\begin{array}{cc}{G}_{i}^{j}\ue8a0\left(z,\theta \ue8a0\left(n\right)\right)={z}^{{n}_{k}\ue8a0\left(i,j\right)}\ue89e\frac{{B}_{i}^{j}\ue8a0\left(z,\theta \ue8a0\left(n\right)\right)}{{F}_{i}^{j}\ue8a0\left(z,\theta \ue8a0\left(n\right)\right)}.\text{}\ue89e{H}^{j}\ue8a0\left(z,\theta \ue8a0\left(n\right)\right)=\frac{{C}^{j}\ue8a0\left(z,\theta \ue8a0\left(n\right)\right)}{{D}^{j}\ue8a0\left(z,\theta \ue8a0\left(n\right)\right)}& \left(60\right)\end{array}$

This model structure may use an intermediate order set defined as O^{iBJ}={3,4,5}. When this structure is run against a nonstationary test data set, the nonstationary data can be taken care of directly by the disturbance model. Here, the real root of D may take the place of the differencing filter described previously, so no prefiltering may be required here.

lPE Model Set:

A loworder multiinput model with output error structure (lPE) can be determined using the direct method. This structure may require a nonconvex iterative solution, so a global minimum might not be guaranteed. However, due to its relatively simple structure, convergence might be more likely than with the iBJ structure. This is one model type that may be biased in closedloop operation. There might be no inherent mechanism to deal with nonstationary data. Rather, this model type could be included solely due to its robust performance in openloop operation and for closedloop cases with low bandwidth control. The standard parameterization used for this model can be given by:

$\begin{array}{cc}{G}_{i}^{j}\ue8a0\left(z,\theta \ue8a0\left(n\right)\right)={z}^{{n}_{k}\ue8a0\left(i,j\right)}\ue89e\frac{{B}_{i}^{j}\ue8a0\left(z,\theta \ue8a0\left(n\right)\right)}{{F}_{i}^{j}\ue8a0\left(z,\theta \ue8a0\left(n\right)\right)}.\text{}\ue89e{H}^{j}\ue8a0\left(z,\theta \ue8a0\left(n\right)\right)=1& \left(61\right)\end{array}$

This model structure may use the low order set defined as O^{lPE}={1,2,3}. This model structure may be useful, for example, when equipment being controlled has a very long response time and no dither signal is used. In this situation, the design of the band pass filter may fail due to the long response time, so other types of models (such as hBP and tSP model structures) may be inappropriate. In this case, the iBJ method may also fail, and the simpler IPE model may be significantly better than all other structures. In fact, it is possible that the equipment has response times (settling times) that are extremely long (such as one or more days) and are therefore never truly in equilibrium. Since there is no known model in this case, the predictive performance of the model (an example of which is shown in FIG. 6) could be used to ascertain the model quality visually.

hPX Model Set:

A highorder prefiltered autoregressive with exogeneous inputs (hPX) model structure can be determined using the joint input/output method. This model structure could represent a high order multiinput three stage model. Each stage may be sequential with the estimates being refined in a boot strap fashion. The first stage of the hPX model structure may operate to solve Equation (57) with no filter L using standard ARX order sets from Equation (59). Therefore, a conventional ARX solution for the j^{th }output can be obtained that results in the highorder estimates Ĝ_{i} ^{j }and Ĥ^{j}. Only proper models may be obtained with this structure.

The second stage of the hPX model structure may remove cross correlations between inputs and disturbances, thereby estimating u^{r}. This allows for a direct solution of Equation (47). Here, it is assumed that u^{η} is small, so u^{r }can be determined from Equation (45) once u^{e }is known. The first step in this stage could involve computing the following openloop or output prediction error:

$\begin{array}{cc}{\stackrel{~}{\varepsilon}}_{j}={y}_{j}{\hat{y}}_{j}={y}_{j}\sum _{i=1}^{q}\ue89e\phantom{\rule{0.3em}{0.3ex}}\ue89e\left[{\hat{G}}_{i}^{j}\ue89e{u}_{i}\right].& \left(62\right)\end{array}$

A 40^{th}order autoregressive (AR) filter W can be designed and used to whiten the output prediction error so that {tilde over (ε)}_{j} ^{w}=W {tilde over (ε)}_{j}. With the filtered prediction error available, the following estimation problem can be posed:

u _{i}(t)=T _{i} ^{ue}{tilde over (ε)}_{j} ^{w}(t)+T _{i} ^{ue} e(t). (63)

Equation (63) can be solved for {circumflex over (T)}^{ue }and {circumflex over (T)}^{ue }using the ARX form given by Equation (57). This solution could use a fixed 40 ^{th−}order single input, single output (SISO) parameterization. With this information, u^{e }can be estimated by:

û _{i} ^{e}(t)={circumflex over (T)} _{i} ^{ue}{tilde over (ε)}_{j} ^{w}(t),t=1→N;i=1→q. (64)

From Equation (45), with u^{η}<<û^{e}, u^{r }can be given by:

u _{i} ^{r} =u _{i} −û _{i} ^{e}. (65)

A high bandwidth PID control test data set can be used to show the effectiveness of this technique for removing feedback. FIG. 7 shows an original input u with u^{e }and u^{r }as calculated using Equations (62) through (65). The controller in this example transfers the variation in y due to a time varying disturbance to the controller output u. While the variation in u is due to both the disturbance and the dither signal, the swing shown by u^{e }is due to the disturbance. The residual signal u^{r }is due solely to the dither signal and can be used with the original y as data sets for direct identification.

The third stage of the hPX model structure may use the results of the first and second stages in conjunction with the lPE model structure to calculate q SISO models. The data for these q SISO models can be obtained by using the results from Equation (65) and the first stage results as a filter to obtain:

$\begin{array}{cc}{u}_{i}^{f}={\hat{A}}^{j}\ue89e{u}_{i}^{r};\ue89e\text{}\ue89e{y}_{i}^{f}=\frac{{\hat{B}}_{i}^{j}}{{\hat{A}}^{j}}\ue89e{u}_{i}^{f}.& \left(66\right)\end{array}$

There are q data sets D_{i} ^{N}=[y_{i} ^{f}, u_{i} ^{f}], and the lPE model structure (Equation (61)) can be used to calculate q SISO models. The hPX order set can be O^{hPX}={2,3,4}.

While the second stage may be useful for removing feedback effects, it may incur little or no penalty in openloop or low bandwidth applications. Not as apparent is the importance of the filter step in stage three. FIG. 8 shows these results, where filtered values for the original u and y data are illustrated along with an insert showing a small section of superimposed data. Using Â^{j }to obtain u_{i} ^{f }may effectively weight the important frequency bands for a subsequent lPE pass. Here, it can be seen that the slower frequencies have been removed, and so no external filtering is required to deal with nonstationary data. As this filtered data is disturbancefree, the lPE pass for the SISO model could be relatively convergent. Nonetheless, local minima may be obtained in some cases. To reduce or minimize this possibility, two addition models of order O_{i} ^{hPX}+1 and order O_{i} ^{hPX}−1 can be built, and the model with the response closest to the average may be selected.

hBP Model Set:

A highorder, band pass filtered, autoregressive with exogeneous inputs (hBP) model structure can be determined using the joint input/output method. This model structure may be identified using a preconditioning band pass filter. In the hIX technique described previously, a simple filter L is used since there was no prior process information available. In this technique, the filter L can be designed as a band pass filter based on results available from the modeling techniques described above (the hIX, iBJ, lPE, and hPX model structures). This technique can also use three stages. The first stage may use a band pass filter whose break points are defined based on current model information to precondition the input/output data. The efficacy of an example filter is illustrated in FIG. 9 for use with a nonstationary data test set. Band pass filtered values of y and u are shown as {tilde over (y)} and ũ, respectively. This figure shows that both high noise and low drift frequencies can be effectively attenuated before any model identification is performed with an appropriate prefilter.

The second stage of the hBP model structure may use the band pass filtered values {tilde over (y)} and ũ to solve Equation (57) with no filter L using standard ARX order sets from Equation (59). As a result, a conventional ARX solution for the j^{th }output can be obtained that results in the high order estimates Ĝ_{i} ^{j }and Ĥ^{j}. Only proper models may be obtained with this structure.

The third stage of the hBP model structure may be similar or identical to the third stage of the hPX model structure described above, except here the order set may be O^{hBP}={3,4,5}. An alternative embodiment of the third stage could be used, such as one where feedback effects are removed via the second stage in the hPX model structure followed by an autoregressive moving average with exogenous variable (ARMAX) solution.

tSP Model Set:

A highorder, three stage projection (tSP) model structure can be determined using the joint input/output method. This model structure can represent a highorder multiinput three stage model. Like the hPX model, the tSP model may utilize an explicit step to remove feedback effects from the data. Unlike in the hPX technique, a MIMO noncausal impulse filter can be used in conjunction with explicit use of the dither signals to remove cross correlations between inputs and disturbances. In the first stage, a projection filter can be used to remove feedback from the data and hence estimate û^{r }prior to any modeling steps. Equations (63) and (64) can be used in the hPX technique to estimate u^{e }in a sequential SISO fashion, while here a MIMO counterpart to Equation (63) can be used that includes the dither signal directly. This representation can be given by the following expression:

u(t)=T ^{ur} r(t)+T ^{ue} e(t). (67)

In this way, there may be a dither signal for all q input channels. Also, T^{ur }may be constrained to be a noncausal operator by parameterizing it as a twosided impulse filter of the following form:

$\begin{array}{cc}{T}^{\mathrm{ur}}\ue8a0\left(z,\theta \right)=\sum _{i={n}_{1}}^{{n}_{2}}\ue89e\phantom{\rule{0.3em}{0.3ex}}\ue89e{\theta}_{i}\ue89e{z}^{i}.& \left(68\right)\end{array}$

The structure in Equation (68) can be used to ensure that the resulting estimate û^{r }is uncorrelated asymptotically with u−û^{r}, which becomes a residual in the subsequent identification step. In particular embodiments, the filter orders can be n_{1}=n_{2}=20. The response of this filter to a high bandwidth PID control test data set is shown in FIG. 10. With {circumflex over (T)}^{ur }known from Equation (68), u^{r }can be directly estimated from:

û _{i} ^{r}(t)={circumflex over (T)} ^{ur} r _{i}(t),t=1→N;i=1→q. (69)

FIG. 11 shows the original input u and u^{r }as calculated using Equation (69). As shown in FIG. 11, the start of u^{r }is shifted by n_{1}, while the end is shortened by n_{2 }due to the noncausal filter. The signal u^{r }is due solely to the dither signal and can be used with the original y as data sets for direct identification.

The second stage of the tSP model structure may be similar or identical to the first stage of the hPX model structure. This stage solves Equation (57) with no filter L using standard ARX order sets from Equation (59). As a result, a conventional ARX solution for the j^{th }output may be obtained that results in the highorder estimates Ĝ_{i} ^{j}and Ĥ^{j}. Only proper models may be obtained with this structure.

The third stage of the tSP model structure may be similar or identical to the third stage of the hPX method and solve Equation (66). The tSP order set may be O^{tSP}={2,3,4}.

Time Delay Estimation

As noted above, the methods 300 and 400 may involve estimation of the time delays for the models. Time delay can lead to seriously degraded model identification results if not explicitly addressed. For example, if delay is not explicitly accounted for, the likelihood of G_{0}∉M increases significantly and can result in highly biased models.

Conventional techniques for estimating time delay often suffer from various drawbacks. For example, in many practical applications, there is no well defined minimum in the AIC, so there is no discernable “knee” in the singular values of the process. Real process disturbances and nonlinear effects can render methods based solely on AIC or confidence bounds problematic. Also, the solution for delay is often a function of the applied model structure, meaning the delay that is best for one model structure may not be the best for a model with an alternate structure/order. Model order reduction with fixed delay can result in bias for the reduced model that was not present in the original model. In addition, the direct use of delays estimated external to the identification step can result in degraded performance. Since it is usually computationally prohibitive to estimate the model and the delay simultaneously in the multivariable case, prior estimated delays can be considered only as tentative values in the identification step. In SISO model order reductions, the delay/order combination can be determined jointly.

In some embodiments, the model identification tool 132 determines the delay estimates at two levels. Prior to model identification, tentative values for MISO multivariable time delays can be estimated (which may occur during steps 304 and 404 shown in FIGS. 3 and 4A). During model order reduction, SISO time delays can be determined in conjunction with the model reduction (which may occur during steps 312 and 452 shown in FIGS. 3 and 4B). The following describes the procedure used for multivariable delay estimation, while SISO delay estimation is described below in conjunction with order reduction.

For multivariable delay estimation, MISO impulse and ARX structures can be used. Direct estimation of delay based on statistical information of individual coefficients can be problematic in many applications. To circumvent this type of problem, a trend analysis can be performed by the model identification tool 132. In the trendbased approach, rather than looking at individual coefficients, the models can be used to construct response segments. These segments may then be used to detect what portions of the response are distinguishable from perceived noise. The design goal may be, for example, to detect delays up to three hours. Eight sets of model orders can be considered for each input channel, and sample rates less than one minute may require subsampling. The compression rate, which is used in the delay estimation routine, may be a function of the sample rate.

An example method 1200 for estimating the delay is shown in FIG. 12. In FIG. 12, steps 12021218 are used to estimate the delay for a single model order. A set of MISO models are generated at step 1202. Response segments are then generated using the MISO models at step 1204. The generated response segments are smoothed using a filter at step 1206, such as by using a forwardbackward noncausal filter to smooth the response segments with no phase distortion. Mean, minimum, and maximum values for each smoothed and unsmoothed segment are determined at step 1208, and these values can be used later for noise tolerance evaluation. The maximum slope value of each smoothed segment is determined at step 1210, such as by using a moving average representation. The expected noise tolerance is determined at step 1212. The potential delay and nonminimum phase intervals for the smoothed and unsmoothed segments are determined at step 1214, such as by using forwardbackward calculations and the noise tolerance. If necessary, the potential nonminimum phase intervals are updated based on subsampling compression at step 1216. Finally, the potential delay intervals are stored in individual interval bins at step 1218.

Steps 12021218 can be repeated if a determination is made at step 1220 that not all model structures and orders have been analyzed. When completed, a binned cumulative distribution is used to find consistent delay intervals at step 1222. If any consistent intervals exist, a linear functional relationship between model structure/order and delay intervals is defined at step 1224.

While heuristic approaches might generally be avoided here, they could be developed using historical plant test data and may render this trend analysis quite effective. Nevertheless, due to the “brute force” approach, it can be very time consuming. If model identification is performed during step testing, this is usually not a problem. However, in a desktop analysis mode, users may wish to be able to configure the delay estimation due to this computational burden. Because of this, user options may be provided for this aspect of the model identification (making the process less than fully automated). The approach described above could be the default approach used by the model identification tool 132. However, the user may be given the option of turning the delay estimation off if no delay is expected, or the user could set the maximum expected delay if prior information is available.

Band Pass Filter

As described above, the band pass filter(s) generated at step 434 in FIG. 4B may be used to perform one or multiple functions. First, the filter can be used to weight the input/output data in the frequency band of interest. It can therefore be used a prefilter prior to modeling (such as is done when generating the hBP models). Second, the band pass filter can be used to aid in the generation of a meaningful prediction metric to help evaluate each of the potential models. Irrespective of the function, the form of the filter can be as follows:

$\begin{array}{cc}L\ue8a0\left(s\right)=\frac{{\mathrm{ks}}^{2}}{{\left({\tau}_{l}\ue89es+1\right)}^{2}\ue89e{\left({\tau}_{h}\ue89es+1\right)}^{4}}& \left(70\right)\end{array}$

where τ_{l}and τ_{h}are the low and high frequency breakpoints, respectively, and k is a normalizing gain element. The τ values may depend on the intended function and can be determined based on the available models.

FIG. 13 illustrates an example method 1300 for designing a band pass filter. The method 1300 could be performed, for example, during step 434 in FIG. 4B. At the point where the band pass filter is designed in FIG. 4B, all but the hBP and tSP models may be available. Any valid model in the available candidate model sets is identified at step 1302. Additional details regarding model validation are provided below. Note that this step is optional and can be omitted if desired. If there are any valid models at step 1304, the valid candidate models are searched for one or more dominant poles at step 1306. If there are no valid models at step 1304 or if all dominant poles are outside of a predefined range (not valid) at step 1308, the method 1300 may end, and no band pass filter may be created. Otherwise, a band pass filter can be created using the valid dominant pole(s) at step 1310.

A bode plot of an example band pass filter designed in this way is shown in FIG. 14. In this particular example, high and low pass rolloff characteristics may be designed to pass all pertinent model information between approximately one and ten minutes. Noise can be rolled off at 40 db/decade, while drift can be rolled off at 20 db/decade.

The band pass filter can also be used to aid in defining a meaningful prediction metric. Once all models are identified, a prediction calculation can be performed to aid in model quality evaluation. This may involve evaluating Ĝ_{i} ^{j}rather than Ĥ^{j}. As such, nonstationary data can render prediction calculations useless. Direct use of Ĥ^{j }for prediction evaluation may be problematic for some applications. However, the filter defined by Equation (70) may be well suited for this task. The frequency bands in this case can be increased relative to the prefilter case, as only predictions are involved and the attenuation of mid to low frequency disturbances is highly desirable.

Model Validation

As noted above, models may need to be validated before they are used in searching for the dominant poles of the band pass filter. From the user's perspective, the validation of a model may be the most important aspect of the entire identification procedure. Model validation may first be concerned with establishing if a causal relationship between input/output channels exists. If a relationship exists, the validation of a model may then focus on identifying the “quality” of the relationship. Defining “quality” can be an ambiguous heuristic task. In some embodiments, model validation by the model identification tool 132 may encompass only model metrics and may not impose automatic bounds on controller design. Both frequency and time domain based approaches could be used.

In particular embodiments, the model identification tool 132 supports a multistaged, timebased approach to model validation. In this approach, models metrics are developed based not only on asymptotic theory but also on the fact that multiple models of varying structure and order exist. One example of this kind of approach is shown in FIG. 15.

FIG. 15 illustrates an example method
1500 for model validation. In this approach, confidence bounds can be calculated for each model structure and for each model order at step
1502. This could include, for example, using the expressions given in Equations (34) through (38) for the distribution of the estimates in the time domain. These calculations can be performed for all model coefficients in Ĝ
_{i} ^{j }and Ĥ
^{j }immediately after the estimates are available. Bounds are determined for any userspecified confidence level (the default value could be 95%) at step
1504, and the confidence bounds are normalized at step
1506. If the noise bound is defined as
_{b} ^{k}≡t*S(θ
_{k}) (where t* is the probability limit and S({circumflex over (θ)}
_{k}) is the standard deviation of the k
^{th }estimate), the confidence bound of the k
^{th }estimate can be normalized as ({circumflex over (θ)}
_{k}−N
_{b} ^{k})/{circumflex over (θ)}
_{k}. For each candidate model set, the confidence bounds for all orders in the set can be combined or aggregated at step
1508, and a confidence bound summary for an individual model structure can be presented to the user at step
1510.

An example confidence bound summary is shown in
FIG. 16. Confidence bounds are only presented for Ĝ
_{i} ^{j}. The histograms in section A of
FIG. 16 represent the raw values of the normalized confidence bounds for each of the B and F polynomial coefficients for the corresponding BoxJenkins model. The order set for this case was O
^{iBJ}={2,3,4}. Any coefficient that passes the null hypothesis test is indistinguishable from noise and {circumflex over (θ)}
_{k}−
_{b} ^{k}≦0. As a result, these bounds are shown as the crosshatched bars in section A of
FIG. 16. In this example, the first three B coefficients in the
4 ^{th }order model are indistinguishable from noise. Vertical bar heights indicate the magnitude of the coefficients with respect to their noise bound on a scale from zero to one. As bounds information on individual coefficients may have little meaning, data for all confidence bounds can be combined, based on the average normalized values, into a single confidence bound metric as shown in the lower left corner of the plots in section A of
FIG. 16. In this example, the metric is a value ranging from 1 (highest degree of confidence for the entire model set) to 5 (lowest degree of confidence).

Since individual coefficient information may have little practical value and many structures and orders are utilized, it may be convenient to present generic smoothed bound information such as that shown in section B of FIG. 16. This data is created by fitting a smoothing polynomial to all nonzero bars shown in the raw data plot in section A of FIG. 16. The “fill area” in this plot can be used to give a quick visual interpretation of confidence metrics for an entire model matrix.

Returning to FIG. 15, the model validation may also include perturbations of the models at step 1512. Since models of various structures and orders are available, it makes sense to use this information if possible. The basic premise of model perturbation is that, when a causal relationship between input/output channels exists, perturbations to a model may have little effect on the results if that model is accurate. Differences between the outputs of the models are identified and analyzed at step 1514. If all models are the same, there should be a relatively high confidence in the results. As the differences in the results increase, the confidence decreases. The same idea can be used here by automatically comparing results for multiple models for each input/output channel.

Example results for this type of comparison are shown in FIG. 17. In section A of FIG. 17, the response curves for all order sets for the iBJ model structure are superimposed one on top of the other, and the shaded area represents the envelope of responses for this structure. The shaded area represents an upper bound on the quality of the model in that the expected variation can be no less than that defined by the envelope, and the minimum variation is known for the data available. No lower bound is available, so the variation could be arbitrarily worse, and multiple metrics can be used.

The area ratio between this envelope and the normalized area of the plot box shown in section A of FIG. 17 is defined as the separation factor and can be assigned a numerical value between 1 (small separation) and 5 (large separation). The size of the separation envelope may be directly related to deleterious conditions such as undermodeling and any situations that lead to poor information content in the data.

To preclude overpenalizing cases where a single model is underspecified (which typically results in a large separation factor), an additional dispersion or sensitivity factor can be calculated for each model. Section B of FIG. 17 shows the dispersion envelope for these models. In this calculation, response curves for all order sets can be searched to find the two most selfsimilar responses. The dispersion metric for these curves may then be computed as described for the separation metric. The confidence information can be used to calculate an average gain amplification factor, which may be used to inflate the separation envelope. This results in a composite summary response envelope such as that shown in FIG. 18.

Prediction Metric

Once the models have been identified, prediction metrics can be determined for the models. Other quality metrics can be calculated immediately following the completion of each model set and may be based solely on the characteristics of the models. After all model sets are complete, the prediction metrics can be computed for the models. An example method for determining the prediction metrics is shown in FIG. 19.

FIG. 19 illustrates an example method 1900 for determining prediction metrics for candidate models. In this example, the input/output data is transformed at step 1902. If the feedback effect due to disturbances is not too severe, the transformation can be performed using the band pass filter described above. To establish the severity of the feedback effect, the following correlation factor can be determined:

C _{f} ^{j}=max(u _{i} ^{c})

where:

u _{i} ^{c} =∥û _{i} ^{e} ∥/∥u _{i∥} (71)

The term û_{i} ^{e }in Equation (71) may be given by Equation (64) when hPX is used and may be computed from Equation (65) based on the results of Equation (69) when tSP is used. When C_{f} ^{j}>K, the band pass filter defined above may be replaced by the discrete filter T(z)=Â^{j}(*), where Â^{j}(*) is the highest order A polynomial corresponding to the hIX or hPX solution with the best model metrics.

Once the input/output data is filtered, each model is used to generate a prediction (such as an ∞—step ahead prediction ŷ_{f}) at step 1904. The prediction metric may then be determined at step 1906. The prediction metric could, for example, be defined by the following loss function:

$\begin{array}{cc}{L}_{p}\equiv \frac{\sigma \ue8a0\left({y}_{f}^{*}{\hat{y}}_{f}\right)}{\sigma \ue8a0\left({y}_{f}^{*}\right)}.& \left(72\right)\end{array}$

If the band pass filter is used, two different values of y*_{f }can be used to evaluate Equation (72). One uses the filtered y data directly (y*_{f}=y_{f}), and the other uses a noncausal forwardbackward filter such that y*_{f}=y_{f} ^{f}. A onesample interval time constant may be implemented in the noncausal filter step to reduce high frequency noise (in case there is no band pass filter). When C_{f} ^{j}>k, no additional filtering may need to be performed due to the high frequency weighting of Â^{j}(*). An example of the prediction results for a high bandwidth test data set generated using trend removal and higher frequency weighting are illustrated in FIG. 20.

The filter Â^{j}(*) may overemphasize high frequency behavior, which could tend to overinflate L_{p}. To attenuate this problem, only prediction data satisfying ŷ^{f}(i)>ασ(ŷ_{f}) may be included in the evaluation of Equation (72). While the band pass filter may perform well for mid to low bandwidth operation, it may yield unacceptable values for L_{p }(reasonable models may have 0≦L_{p}<0.90). Values greater than one may imply very poor performance. Hence, the metric based on the band pass filter could give the wrong result. Results with the Â^{j}(*) filter, while more consistent than the band pass filter, may still tend to overpenalize the prediction metric for high bandwidth control. Less heuristic methods (for high bandwidth cases) can therefore be used in these cases. When Â^{j}(*) is used, the separation model metric is not inflated and hence the model metrics are completely independent of any predictive quantity.

Returning to FIG. 19, when the prediction metrics for each model are complete, the sensitivity envelope for each input/output channel (such as that shown in FIG. 18) can be inflated (such as by a function of L_{p}) at step 1908. Consequently, the sensitivity metric can be updated, and individual metrics for each input/output channel may be combined into a summary metric defined as a model rank at step 1910. This rank could represent a weighted average of the individual metrics as shown below:

$\begin{array}{cc}& \left(73\right)\end{array}$

where R_{c }is the rank metric corresponding to the model confidence bounds, R_{s }is the rank metric corresponding to the separation envelope that includes inflation due to prediction errors, and R_{d }is the rank metric corresponding to response dispersion. All ranks could have numerical values between one and five.

In this example, models with R≧4 could be considered invalid and not used for any control applications. For models where R≦3, prediction quality can be expected to be good when the data is relatively stationary and disturbances are not too large. However, reliance on visual inspections (such as the visual inspection of the predictive performance corresponding to a valid model as shown in FIG. 21) can be problematic as even accurate models may exhibit poor visual performance under nonstationary conditions. By establishing a consistent model metric (the rank R) that is invariant to user interpretation, the model identification tool 132 may help to avoid this situation.

Search for Best Model

Once all model identification and metric calculations are complete, the model identification tool 132 may select from among the models available. In some embodiments, the model identification tool 132 may implement the technique shown in FIG. 22, which is intuitive, simple, and serves the needs for practical results.

FIG. 22 illustrates an example method
2200 for searching for the best model within multiple candidate model sets. Prior to the formal search, the model space can be reduced by identifying the best model orders at step
2202. This could include, for example, finding the order set that results in the lowest loss function defined by Equation (72) for each model structure (
_{k}k=1→6). This could be done for each output by finding the loss value for each order element (O
_{s}s=1→3). In particular embodiments, this can be performed in multiple passes. In a first pass, all input channels can be assigned the same model orders. The model order resulting in the lowest loss function is then used as the starting value for a second pass. In the second pass, model orders can be varied independently for each input channel in a sequential fashion starting at the first input and ending at the last. The result is a set of “best” orders for each model structure (the “best” set is not necessarily optimal as an exhaustive search has not been performed).

With the best model order determined, all that remains is the determination of the best model structure. The search for the best model structure may be similar to that described above for the model order, except here both the prediction loss defined by Equation (72) and the model rank defined by Equation (73) can be used in the overall search procedure. Initialization of the final search occurs at step 2204, which could include selecting an initial model that is viewed currently as the best model. This initialization can be based, at least in part, on prior knowledge of historical model performance in previous applications. For example, the hIX and hPX structures may have previously proven to be the most reliable model forms on past step test data. As such, the initialization of the final search (the initial selection of the best model structure) may start preferentially with one of these model structures, such as the hIX model.

All other structures can then be searched at step 2206, and the best initial model structure is identified at step 2208. For example, each model structure can be selected in turn and compared to the current best model structure. The selected model structure could take the place of the current best model structure if certain criteria are met. For example, the selected model structure could replace the current best model structure if any of the following three criteria are met:

(1) The loss function for the selected model structure is less than the loss function of the current best model structure by a specified tolerance, and the average model rank for the selected model structure is not less than the average model rank of the current best model structure;

(2) All individual model ranks for the selected model structure are better than the model ranks of the current best model structure, and the loss function for the selected model structure is not worse than the loss function of the current best model structure by a specified tolerance; or

(3) All nonnull model ranks for the selected model structure are R≦2, and the current best model structure has at least one R≧3.

Once all model structures are searched, the current best model is selected as the initial model.

Once the initialization is complete, the search proceeds by evaluating all model structures in a sequential fashion for each input channel at step 2210. This could include, for example, starting at the first input and going to the last. The “best” submodel (the model for an input/output channel) is updated if either of the following criteria are met:

(1) A selected model's rank is less than or equal to the current model's rank, and the selected model's loss function is less than the current model's loss function by a specified tolerance; or

(2) The selected model's rank is less than the current model's rank, and the selected model's loss function is not worse than the current model's loss function by a specified tolerance.

Upon completion of the search, there may exist a single selected model for each input/output channel. The structure of each model can be different and can be of arbitrarily high order.

Order Reduction

An order reduction technique can be used to determine the order of the final model. In some techniques (such as subspace/statespace methods), order reduction is not an explicit operation since the state order is determined as an integral part of the identification procedure. Many different order estimation techniques are available, many of which are based on some form of singular value thresholding, AIC methods, or some combination thereof. Accurate order estimation is generally not as easy as it may first seem. This may be primarily due to the distribution of singular values found in actual practice. If the order is estimated accurately, these techniques can result in a truly minimal order system. If not, however, deleterious bias effects can be introduced at the fundamental data regression level.

Model identification approaches, such as the one discussed above, may not be immune to the need for order reduction. Here, however, the reduction can be performed in a controlled secondary explicit step after the formal model identification procedure.

FIG. 23 illustrates an example method 2300 for model order reduction. The method 2300 could represent a process that involves two passes through a model. In the initial pass, the goal of the model identification tool 132 is to have a model set flexible enough such that G_{0}εM (it captures the actual process), which may be a requirement for unbiased models. This can often lead to overparameterized models and increased variance. To the extent possible, this variance can be reduced by order reduction.

In spite of the order reduction, the resultant model matrix may not necessarily have a minimal order. For some controller applications (such as MPC), this may be of no concern. For statespace based controller designs, a statespace realization may be required once the final model matrix has been determined. Glover's balanced realization approach can be modified for this purpose. Accuracy of the minimal order system designed in this fashion can be checked at all relevant frequencies as the original model is available. This is decidedly different than trying to identify a minimal order model directly from data.

Since discrete time multivariable models exist at this stage, model order reduction can be performed in a controlled fashion using SISO models. For example, model order reduction could be accomplished in two steps, with one pass based on an AIC search (step 2302) and a subsequent pass based on a direct step response fit (step 2308).

In the first pass of the model order reduction process at step 2302, order reduction can be accomplished via SISO simulation. For example, an lPE model can be fit to simulation data generated by the original discrete time model and an internally formulated pseudorandom binary signal (PRBS). Three possible delays may be available during the first phase of the reduction step: the estimated delay for the highorder model, the estimated delay for the reduced order model, and the estimated nonminimum phase time from the existing step response model. Each of these delays can be used in the AIC search for model order. The order/delay with the minimum loss function can be selected as the solution in the first phase.

As part of this first phase, the reduced order model can be analyzed to ensure it is acceptable at step 2304. For example, checks can be made to ensure faithful representation so that the reduced order model is within a prescribed tolerance of the original model in terms of gain and response time. Any reduced discrete time model may then be converted into continuous LaPlace domain form or other suitable form at step 2306. For instance, factorization can be performed to ensure that integrating models have one pole exactly at the origin. If there is a failure at any point, the individual model is not reduced.

During the second pass of the model order reduction process at step 2308, the original step response of the model is fit, such as by using a fixed structure LaPlace and a free structure prefiltered ARX model in conjunction with the tentative delay targets. An example of this is shown in FIG. 24. In this example, the target delays are as follows:

(1) d_{0}—this may always correspond to the zero delay solution;

(2) d_{1}—this may be determined by starting at the beginning of the step response curve and finding the time when the step response first exceeds the noise threshold (the dashed line in FIG. 24);

(3) d_{2 }—this may correspond to the delay that would be obtained if a first order plus dead time model were to be fit to the step response curve; and

(4) d_{3 }—this may be determined by starting at the end of the step response curve and working backward in time. The delay can be given by the first time the step response breaks the noise threshold. This value can be considered to be the minimumphase time (delay plus any inverse response time) of the process.

These delay targets can be used for both the LaPlace and ARX models, which may have the following respective forms. The LaPlace model may have the form:

$\begin{array}{cc}T\ue8a0\left(s\right)=\frac{k\ue8a0\left({\tau}_{3}\ue89es+1\right)}{s\ue8a0\left({\tau}_{1}\ue89es+1\right)\ue89e\left({\tau}_{2}\ue89es+1\right)}\ue89e{\uf74d}^{\mathrm{ds}}& \left(74\right)\end{array}$

where k is the process gain, τ_{1 }is the time constant associated with the dominant process pole, τ_{2 }is the time constant associated with the secondary process pole, and τ_{3 }is the time constant associated with the process zero.
The ARX model may have the form:

$\begin{array}{cc}T\ue8a0\left(z\right)=L\ue8a0\left({z}^{f}\right)\ue89e\frac{{b}_{1}\ue89e{z}^{1}+{b}_{2}\ue89e{z}^{2}\ue89e\dots +{b}_{n}\ue89e{z}^{n}}{1+{a}_{1}\ue89e{z}^{1}+{a}_{2}\ue89e{z}^{2}\ue89e\dots +{a}_{n}\ue89e{z}^{n}}\ue89e{z}^{d}.& \left(75\right)\end{array}$

In the solution of Equation (74), the leading s term in the denominator can be included for integrating subprocesses, and the search may determine if there is a need for τ_{2 }and/or τ_{3}. In the solution of Equation (75), both the order n of the model and the order f of the filter can be determined simultaneously. The filter order can be determined as the maximum value for f that renders a model within a prescribed tolerance of the original model (in terms of gain and response time) and is stable. If no filter is found, the method may fail.

The first and second passes of the model order reduction process may produce results that can be used to establish the final reduced order model at step 2310. For example, the model with the lowest order that satisfies the accuracy tolerance can be chosen. If no model is found that satisfies the accuracy tolerance, the order of the selected model could not be effectively reduced. If a model has been successfully reduced, the confidence bounds for the new model can be generated and the model metrics can be updated.

The identification technique described above for identifying and selecting a model of a process to be controlled may be integrated with an effective signal design procedure. Aspects of this integration can include avoiding problems with potential constraint violations and issues induced by control optimizers forcing a reduced operational space. Information exchange between identification and signal design may allow for online updating of a signal based on the current state of a model. This integration could be run completely online or performed on an offline device (during desktop analysis, such as by using standard OPC connections). A tighter coupling between identification and controller tuning based on model metrics or uncertainty could also be supported.

In particular embodiments, the model identification tool 132 could be used in conjunction with a closedloop step tester. The step tester could communicate with a controller directly and excite any measured variable or combination of measured variables. The controller could take the excitation signal, check for any limit violations, and send the excitation signal out (assuming there are no violations). The controller may then continue optimizing and controlling a process during step testing.

Although FIGS. 5 through 24 illustrate examples of the operations during automated identification of an industrial process in a process control system, various changes could be made to FIGS. 5 through 24. For example, while some of these figures illustrate example ways in which certain operations can be implemented, these operations could be implemented in any other suitable manner. Also, while some of these figures illustrate example results obtained using particular data and operations, these are examples for illustration and explanation only and are not limiting to the described devices and methods.

In some embodiments, various functions described above are implemented or supported by a computer program that is formed from computer readable program code and that is embodied in a computer readable medium. The phrase “computer readable program code” includes any type of computer code, including source code, object code, and executable code. The phrase “computer readable medium” includes any type of medium capable of being accessed by a computer, such as read only memory (ROM), random access memory (RAM), a hard disk drive, a compact disc (CD), a digital video disc (DVD), or any other type of memory.

It may be advantageous to set forth definitions of certain words and phrases used throughout this patent document. The term “couple” and its derivatives refer to any direct or indirect communication between two or more elements, whether or not those elements are in physical contact with one another. The terms “application” and “program” refer to one or more computer programs, software components, sets of instructions, procedures, functions, objects, classes, instances, related data, or a portion thereof adapted for implementation in a suitable computer code (including source code, object code, or executable code). The terms “transmit,” “receive,” and “communicate,” as well as derivatives thereof, encompass both direct and indirect communication. The terms “include” and “comprise,” as well as derivatives thereof, mean inclusion without limitation. The term “or” is inclusive, meaning and/or. The phrases “associated with” and “associated therewith,” as well as derivatives thereof, may mean to include, be included within, interconnect with, contain, be contained within, connect to or with, couple to or with, be communicable with, cooperate with, interleave, juxtapose, be proximate to, be bound to or with, have, have a property of, or the like. The term “controller” means any device, system, or part thereof that controls at least one operation. A controller may be implemented in hardware, firmware, software, or some combination of at least two of the same. The functionality associated with any particular controller may be centralized or distributed, whether locally or remotely.

While this disclosure has described certain embodiments and generally associated methods, alterations and permutations of these embodiments and methods will be apparent to those skilled in the art. Accordingly, the above description of example embodiments does not define or constrain this disclosure. Other changes, substitutions, and alterations are also possible without departing from the spirit and scope of this disclosure, as defined by the following claims.