Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND APPARATUS FOR ROBUST TUNING OF MODEL-BASED PROCESS CONTROLLERS USED WITH UNCERTAIN MULTIPLE-INPUT, MULTIPLE-OUTPUT (MIMO) PROCESSES
Document Type and Number:
WIPO Patent Application WO/2016/191849
Kind Code:
A1
Abstract:
A method includes obtaining information identifying (i) uncertainties associated with multiple time-domain parameters of a model (202) and (ii) time- domain performance specifications for a model-based industrial process controller (104, 204). The model mathematically represents a MIMO industrial process (210). The method also includes generating multiple tuning parameters for the controller based on the uncertainties and the time-domain performance specifications. The tuning parameters include vectors of tuning parameters associated with the controller, and each vector includes values associated with different outputs of the industrial process. The time-domain parameters could include a process gain, a time constant, and a time delay for each input-output pair of the model. The time-domain performance specifications could include requirements related to worst-case overshoots, settling times, and total variations. The uncertainties could be specified as intervals in which the time-domain parameters lie.

Inventors:
HE NING (US)
SHI DAWEI (US)
FORBES MICHAEL (US)
BACKSTROM JOHAN U (US)
CHEN TONGWEN (US)
Application Number:
PCT/CA2016/000153
Publication Date:
December 08, 2016
Filing Date:
May 18, 2016
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HONEYWELL LIMITED/HONEYWELL LLMITEE
International Classes:
G05B17/02; G05B19/418
Domestic Patent References:
WO2010138452A12010-12-02
Other References:
BIAGIOLA, SILVINA I. ET AL.: "Identification of uncertain MIMO Wiener and Hammerstein models''.", COMPUTERS AND CHEMICAL ENGINEERING, vol. 35, no. 12, 16 June 2011 (2011-06-16), pages 2867 - 2875, XP028310955, [retrieved on 20160610]
THAO-HOANG HUYNH: "A modified shuffled frog leaping algorithm for optimal tuning of multivariable PID controllers", IEEE INTERNATIONAL CONFERENCE ON INDUSTRIAL TECHNOLOGY, 21 April 2008 (2008-04-21), pages 1 - 6, XP031313626, ISBN: 978-1-4244-1705-6
See also references of EP 3304223A4
Attorney, Agent or Firm:
MANOLAKIS, Emmanuel et al. (1 Place Ville-Marie 37th floo, Montreal Quebec H3B 3P4, CA)
Download PDF:
Claims:
WHAT IS CLAIMED IS:

1. A method comprising:

obtaining information identifying (i) uncertainties associated with multiple time-domain parameters of a model (202) and (ii) time-domain performance specifications for a model-based industrial process controller (104, 204), the model mathematically representing a multiple-input, multiple-output (MIMO) industrial process (210); and

generating multiple tuning parameters for the controller based on the uncertainties and the time-domain performance specifications, the tuning parameters including vectors of tuning parameters associated with the controller, each vector including values associated with different outputs of the industrial process.

2. The method of Claim 1 , further comprising:

generating a graphical display identifying (i) multiple expected step responses of the MIMO industrial process based on the tuning parameters of the controller and (ii) an envelope around the one or more expected step responses based on the uncertainties associated with the time-domain parameters of the model;

wherein the envelope is generated using different combinations of extreme values of the time-domain parameters, the extreme values based on the uncertainties of the time-domain parameters.

3. The method of Claim 2, wherein:

the time-domain parameters comprise a process gain, a time constant, and a time delay for each input-output pair of the model;

the time-domain performance specifications comprise requirements related to worst-case overshoots, settling times, and total variations; and

the uncertainties are specified as intervals in which the time-domain parameters lie. 4. The method of Claim 1 , wherein generating the multiple tuning parameters comprises:

constructing multiple multiple-input, single-output (MISO) tuning problems based on a MIMO tuning problem, each M1SO tuning problem associated with a different output of the MIMO industrial process; and

solving each MISO tuning problem to identify one of the values in each vector.

5. The method of Claim 4, wherein solving each MISO tuning problem comprises:

identifying the values in a first of the vectors assuming fixed values in a second of the vectors;

identifying the values in the second vector that minimize settling times for the outputs of the MIMO industrial process;

wherein the first vector comprises a vector of reference tracking performance ratios, each reference tracking performance ratio defining a ratio between a desired closed-loop reference tracking response time of the controller and an open-loop response time for one output of the MIMO industrial process; and

wherein the second vector comprises a vector of disturbance rejection performance ratios, each disturbance rejection performance ratio defining a ratio between a desired closed-loop disturbance rejecting response time of the controller and the open-loop response time of the one output of the MIMO industrial process.

6. The method of Claim 1 , further comprising:

predicting a tuning time of the controller prior to generating the tuning parameters for the controller.

7. The method of Claim 1 , wherein obtaining the information identifying the uncertainties and the performance specifications comprises receiving the information from a user.

8. An apparatus comprising:

at least one memory (136) configured to store information identifying (i) uncertainties associated with multiple time-domain parameters of a model (202) and (ii) time-domain performance specifications for a model-based industrial process controller (104, 204), the model mathematically representing a multiple-input, multiple-output (MIMO) industrial process (210); and

at least one processing device (134) configured to generate multiple tuning parameters for the controller based on the uncertainties and the time-domain performance specifications, the tuning parameters including vectors of tuning parameters associated with the controller, each vector including values associated with different outputs of the industrial process.

9. The apparatus of Claim 8, wherein the at least one processing device is further configured to:

generate a graphical display identifying (i) multiple expected step responses of the MIMO industrial process based on the tuning parameters of the controller and (ii) an envelope around the one or more expected step responses based on the uncertainties associated with the time-domain parameters of the model;

generate the envelope using different combinations of extreme values of the time-domain parameters, the extreme values based on the uncertainties of the time- domain parameters.

10. The apparatus of Claim 9, wherein:

the time-domain parameters comprise a process gain, a time constant, and a time delay for each input-output pair of the model;

the time-domain performance specifications comprise requirements related to worst-case overshoots, settling times, and total variations; and

the uncertainties are specified as intervals in which the time-domain parameters lie.

1 1. The apparatus of Claim 8, wherein the at least one processing device is configured to:

construct multiple multiple-input, single-output (MISO) tuning problems based on a MIMO tuning problem, each MISO tuning problem associated with a different output of the MIMO industrial process; and

solve each MISO tuning problem to identify one of the values in each vector.

12. The apparatus of Claim 1 1 , wherein the at least one processing device is configured to:

identify the values in a first of the vectors assuming fixed values in a second of the vectors; and

identify the values in the second vector that minimize settling times for the outputs of the MIMO industrial process;

wherein the first vector comprises a vector of reference tracking performance ratios, each reference tracking performance ratio defining a ratio between a desired closed-loop reference tracking response time of the controller and an open-loop response time for one output of the MIMO industrial process; and

wherein the second vector comprises a vector of disturbance rejection performance ratios, each disturbance rejection performance ratio defining a ratio between a desired closed-loop disturbance rejecting response time of the controller and the open-loop response time of the one output of the MIMO industrial process.

13. The apparatus of Claim 8, wherein the at least one processing device is further configured to:

predict a tuning time of the controller prior to generation of the tuning parameters for the controller.

14. A non-transitory computer readable medium containing instructions that when executed cause at least one processing device to:

obtain information identifying (i) uncertainties associated with multiple time- domain parameters of a model (202) and (ii) time-domain performance specifications for a model-based industrial process controller (104, 204), the model mathematically representing a multiple-input, multiple-output (MIMO) industrial process (210); and generate multiple tuning parameters for the controller based on the uncertainties and the time-domain performance specifications, the tuning parameters including vectors of tuning parameters associated with the controller, each vector including values associated with different outputs of the industrial process.

15. The non-transitory computer readable medium of Claim 14, wherein: the time-domain parameters comprise a process gain, a time constant, and a time delay for each input-output pair of the model;

the time-domain performance specifications comprise requirements related to worst-case overshoots, settling times, and total variations; and

the uncertainties are specified as intervals in which the time-domain parameters lie.

Description:
METHOD AND APPARATUS FOR ROBUST TUNING OF MODEL-BASED PROCESS CONTROLLERS USED WITH UNCERTAIN MULTIPLE-INPUT,

MULTIPLE-OUTPUT (MIMO) PROCESSES

CROSS-REFERENCE TO RELATED APPLICATION

[0001] This application is related to U.S. Patent Application Serial No. 14/314,221 filed on June 25, 2014 and entitled "METHOD AND APPARATUS FOR SPECIFYING AND VISUALIZING ROBUST TUNING OF MODEL-BASED CONTROLLERS," which is hereby incorporated by reference in its entirely.

TECHNICAL FIELD

[0002] This disclosure relates generally to industrial process control systems. More specifically, this disclosure relates to a method and apparatus for robust tuning of model-based process controllers used with uncertain multiple-input, multiple- output (MIMO) processes.

BACKGROUND

[0003] Model predictive control (MPC) techniques use one or more models to predict the future behavior of an industrial process. Control signals for adjusting the industrial process are then generated based on the predicted behavior. MPC techniques have become widely accepted in various industries, such as the oil and gas, pulp and paper, food processing, and chemical industries.

[0004] When tuning an MPC or other model-based process controller for industrial use, it is often necessary or desirable to find tuning parameters that ensure good controller performance in spite of both (i) process disturbances and (ii) mismatches between a model used by the controller and the actual process. This problem falls into the discipline of "control theory" and the practice known as "robust control." Standard robust control techniques use a concept known as "unstructured uncertainty," which generally involves analyzing and specifying performance in the frequency domain. These robust control techniques have been used to successfully tune process controllers in a variety of industries. SUMMARY

[0005] This disclosure provides a method and apparatus for robust tuning of model-based process controllers used with uncertain multiple-input, multiple-output (MIMO) processes.

[0006] In a first embodiment, a method includes obtaining information identifying (i) uncertainties associated with multiple time-domain parameters of a model and (ii) time-domain performance specifications for a model-based industrial process controller. The model mathematically represents a MIMO industrial process. The method also includes generating multiple tuning parameters for the controller based on the uncertainties and the time-domain performance specifications. The tuning parameters include vectors of tuning parameters associated with the controller, and each vector includes values associated with different outputs of the industrial process.

[0007] In a second embodiment, an apparatus includes at least one memory configured to store information identifying (i) uncertainties associated with multiple time-domain parameters of a model and (ii) time-domain performance specifications for a model-based industrial process controller. The model mathematically represents a MIMO industrial process. The apparatus also includes at least one processing device configured to generate multiple tuning parameters for the controller based on the uncertainties and the time-domain performance specifications. The tuning parameters include vectors of tuning parameters associated with the controller, and each vector includes values associated with different outputs of the industrial process.

[0008] In a third embodiment, a non-transitory computer readable medium contains instructions that when executed cause at least one processing device to obtain information identifying (i) uncertainties associated with multiple time-domain parameters of a model and (ii) time-domain performance specifications for a model- based industrial process controller. The model mathematically represents a MIMO industrial process. The instructions when executed also cause at least one processing device to generate multiple tuning parameters for the controller based on the uncertainties and the time-domain performance specifications. The tuning parameters include vectors of tuning parameters associated with the controller, and each vector includes values associated with different outputs of the industrial process. [0009] 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

[0010] 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:

[0011] FIGURE 1 illustrates an example web manufacturing or processing system according to this disclosure;

[0012] FIGURE 2 illustrates an example internal model control structure employed for model predictive control (MPC) of an uncertain multiple-input, multiple-output (MIMO) process according to this disclosure; and

[0013] FIGURES 3A through 5B illustrate details of an example technique for robust tuning of a model-based process controller used with an uncertain MIMO process according to this disclosure.

DETAILED DESCRIPTION

[0014] FIGURES 1 through 5B, discussed below, and the various embodiments used to describe the principles of the present invention in this patent document are by way of illustration only and should not be construed in any way to limit the scope of the invention. Those skilled in the art will understand that the principles of the invention may be implemented in any type of suitably arranged device or system.

[0015] As noted above, standard robust control techniques have been used to successfully tune model predictive control (MPC) and other model-based process controllers in a variety of industries. However, standard robust control techniques often rely upon highly-trained and highly-knowledgeable personnel. This often makes it more difficult and expensive to tune model-based process controllers.

[0016] This disclosure provides techniques that support robust tuning of MPC and other model-based controllers that are used with multiple-input, multiple-output (MIMO) multivariable processes having model uncertainty. A specific example described below involves robust tuning of machine-direction (MD) MPC controllers for paper or other web manufacturing or processing systems. Among other things, these techniques can be used to achieve satisfactory closed-loop responses that are quantified by characteristics such as overshoots, total variations, and settling times under parametric uncertainty within a limited tuning time. An efficient visualization technique for an uncertain MIMO process is described to characterize the set of possible step responses for outputs of the MIMO process due to the parametric uncertainty. The tuning problem can be formulated as an optimization problem with an implicit objective function and constraints. Based on the visualization technique and properties of performance indices, an automatic tuning algorithm is described to solve the optimization problem. In addition, a technique to predict the computation time of the tuning algorithm is described, which could be used to improve user- friendliness of the overall algorithm.

[0017] Depending on the implementation, the techniques disclosed in this patent document allow for the robust tuning of model-based process controllers. Example features of the techniques can include:

(1) the specification of model uncertainty in terms of simple model parameters;

(2) the specification of controller performance using simple time-domain concepts (such as settling time, overshoot, and total variation) for each process output;

(3) the visualization of robust performance through step and disturbance response plots with envelopes of possible responses given the uncertainty of a model;

(4) an algorithm (such as a MATLAB algorithm) that takes user-friendly specifications and returns appropriate tuning parameters for a MIMO model-based process controller; and

(5) an algorithm (such as a MATLAB algorithm) that provides robust performance envelope visualization for a multivariable process.

[0018] In some embodiments, a user interface can be provided that allows users to enter model uncertainly specifications and performance specifications. The user interface can also allow users to view resulting tuning parameters and visualize the resulting controller performance.

[0019] Note that in the following description, an example of this functionality is given with respect to use with a controller in a paper manufacturing system. However, this disclosure is not limited to use with controllers in paper manufacturing systems. The techniques disclosed in this patent document can be used with any suitable model-based controller that is used to control any aspect(s) of an uncertain MIMO process.

[0020] FIGURE 1 illustrates an example web manufacturing or processing system 100 according to this disclosure. As shown in FIGURE 1, the system 100 includes a paper machine 102, a controller 104, and a network 106. The paper machine 102 includes various components used to produce a paper product namely a paper web 108 that is collected at a reel 1 10. The controller 104 monitors and controls the operation of the paper machine 102, which may help to maintain or increase the quality of the paper web 108 produced by the paper machine 102. In the following description, the machine direction (MD) of the web 108 denotes the direction along the (longer) length of the web 108.

[0021] In this example, the paper machine 102 includes at least one headbox 1 12, which distributes a pulp suspension uniformly across the machine onto a continuous moving wire screen or mesh 1 13. The pulp suspension entering the headbox 1 12 may contain, for example, 0.2-3% wood fibers, fillers, and/or other materials, with the remainder of the suspension being water.

[0022] Arrays of drainage elements 1 14, such as vacuum boxes, remove as much water as possible to initiate the formation of the web 108. An array of steam actuators 1 16 produces hot steam that penetrates the paper web 108 and releases the latent heat of the steam into the paper web 108. An array of rewet shower actuators 1 18 adds small droplets of water (which may be air atomized) onto the surface of the paper web 108. The paper web 108 is then often passed through a calender having several nips of counter-rotating rolls. Arrays of induction heating actuators 120 heat the shell surfaces of various ones of these rolls.

[0023] Two additional actuators 122-124 are shown in FIGURE 1. A thick stock flow actuator 122 controls the consistency of incoming stock received at the headbox 1 12. A steam flow actuator 124 controls the amount of heat transferred to the paper web 108 from drying cylinders. The actuators 122-124 could, for example, represent valves controlling the flow of stock and steam, respectively. These actuators may be used for controlling the dry weight and moisture of the paper web 108. Additional flow actuators may be used to control the proportions of different types of pulp and filler material in the thick stock and to control the amounts of various additives (such as retention aid or dyes) that are mixed into the stock.

[0024] This represents a brief description of one type of paper machine 102 that may be used to produce a paper product. Additional details regarding this type of paper machine 102 are well-known in the art and are not needed for an understanding of this disclosure.

[0025] In order to control the paper-making process, one or more properties of the paper web 108 may be continuously or repeatedly measured. The web properties can be measured at one or various stages in the manufacturing process. This information may then be used to adjust the paper machine 102, such as by adjusting various actuators within the paper machine 102. This may help to compensate for any variations of the web properties from desired targets, which may help to ensure the quality of the web 108.

[0026] As shown in FIGURE 1, the paper machine 102 includes one or more scanners 126-128, each of which may include one or more sensors. Each scanner 126- 128 is capable of measuring one or more characteristics of the paper web 108. For example, each scanner 126-128 could include sensors for measuring the tension, caliper, moisture, anisotropy, basis weight, color, gloss, sheen, haze, surface features (such as roughness, topography, or orientation distributions of surface features), or any other or additional characteristics of the paper web 108.

[0027] Each scanner 126-128 includes any suitable structure or structures for measuring or detecting one or more characteristics of the paper web 108, such as one or more sets of sensors. The use of scanners represents one particular embodiment for measuring web properties. Other embodiments could be used, such as those including one or more stationary sets or arrays of sensors, deployed in one or a few locations across the web or deployed in a plurality of locations across the whole width of the web such that substantially the entire web width is measured.

[0028] The controller 104 receives measurement data from the scanners 126- 128 and uses the data to control the paper machine 102. For example, the controller 104 may use the measurement data to adjust any of the actuators or other components of the paper machine 102. The controller 104 includes any suitable structure for controlling the operation of at least part of the paper machine 102, such as a computing device. Note that while a single controller 104 is shown here, multiple controllers 104 could be used, such as different controllers that control different variables of the web.

[0029] The network 106 is coupled to the controller 104 and various components of the paper machine 102 (such as the actuators and scanners). The network 106 facilitates communication between components of the system 100. The network 106 represents any suitable network or combination of networks facilitating communication between components in the system 100. The network 106 could, for example, represent a wired or wireless Ethernet network, an electrical signal network (such as a HART or FOUNDATION FIELDBUS network), a pneumatic control signal network, or any other or additional network(s).

[0030] The controller(s) 104 can operate to control one or more aspects of the paper machine 102 using one or more models. For example, each model could associate one or more manipulated variables with one or more controlled variables. A controlled variable generally represents a variable that can be measured or inferred and that is ideally controlled to be at or near a desired setpoint or within a desired range of values. A manipulated variable generally represents a variable that can be adjusted in order to alter one or more controlled variables.

[0031] In order to tune a controller 104, at least one operator console 130 can communicate with the controller 104 over a network 132. The operator console 130 generally represents a computing device that supports one or more techniques for robust tuning of MPC and other model-based controllers that are used to control MIMO processes having model uncertainty. The techniques for robust tuning of model-based controllers are described in more detail below. The techniques for robust tuning generally involve identifying tuning parameters for a controller and outputting the tuning parameters to the controller for use during subsequent control operations. The network 132 represents any suitable network or combination of networks that can transport information, such as an Ethernet network.

[0032] In this example, the operator console 130 includes one or more processing devices 134, one or more memories 136, and one or more interfaces 138. Each processing device 134 includes any suitable processing or computing device, such as a microprocessor, microcontroller, digital signal processor, field programmable gate array, application specific integrated circuit, or discrete logic devices. Each memory 136 includes any suitable storage and retrieval device, such as a random access memory (RAM) or Flash or other read-only memory (ROM). Each interface 138 includes any suitable structure facilitating communication over a connection or network, such as a wired interface (like an Ethernet interface) or a wireless interface (like a radio frequency transceiver).

[0033] Note that while the operator console 130 is described as implementing the technique(s) for robust tuning of model-based controllers, other types of devices could also be used. For instance, the operator console 130 could interact with a server 140, and the server 140 could actually execute the algorithms used to implement one or more techniques for robust tuning of model-based controllers. In this case, the operator console 130 could present a graphical user interface and interact with a user. The server 140 could include one or more processing devices, one or more memories, and one or more interfaces (similar to the operator console 130).

[0034] Although FIGURE 1 illustrates one example of a web manufacturing or processing system 100, various changes may be made to FIGURE 1 . For example, other systems could be used to produce other paper or non-paper products. Also, while shown as including a single paper machine 102 with various components and a single controller 104, the system 100 could include any number of paper machines or other machinery having any suitable structure, and the system 100 could include any number of controllers. In addition, FIGURE 1 illustrates one example operational environment in which MPC or other model-based controller(s) can be tuned. This functionality could be used in any other suitable system, regardless of whether the system is used to manufacture or process webs of material.

[0035] In the following description, robust tuning techniques are described with respect to a tuning problem for an MD-MPC controller in a MIMO process under parametric uncertainty, where the techniques consider time-domain performance indices. "MD-MPC" here indicates that an MPC controller being tuned is used to control an MD property of a web 108.

[0036] The parameter tuning problem for an MPC or other model-based controller is often challenging, and it becomes even more challenging when MIMO processes are considered. One conventional approach for parameter tuning of an MPC controller is to fix all MPC tuning parameters except one in order to identify a tuning problem with one degree of freedom (1DOF). By adjusting this parameter, an analysis of the relationship between the closed-loop performance of the controller and the corresponding degree of freedom can occur, and some tuning guidelines can be developed based on this type of analysis. In another conventional approach, MPC parameters for a MIMO system can be tuned by solving two semi-definite programming problems sequentially in order to achieve a desired closed-loop performance. In yet another conventional approach, controller parameters are tuned by matching an unconstrained MIMO MPC with a preassigned multivariable controller so that the properties of the preassigned controller could be inherited. Still other conventional approaches have involved a tuning-friendly MPC framework in which a tuning parameter is used to adjust a controller's performance. However, despite these approaches, a user-friendly tuning approach for uncertain MIMO processes is still missing.

[0037] U.S. Patent Application Serial No. 13/907,495 (hereby incorporated by reference in its entirety) discloses a two degree of freedom (2DOF) MPC tuning framework. U.S. Patent Application Serial No. 14/314,221 (incorporated by reference above) uses this framework to, among other things, provide for robust tuning of a single-input, single-output (SISO) system. This disclosure uses the 2DOF MPC tuning framework to help simplify the tuning of MPC or other model-based controllers for MIMO systems with some model uncertainty associated with the MIMO systems.

[0038] SYSTEM DESCRIPTION AND PROBLEM FORMULATION

[0039] FIGURE 2 illustrates an example internal model control structure 200 employed for MPC of an uncertain MIMO process according to this disclosure. This closed-loop system includes three main parts: a process model (Go) 202, an MPC controller 204, and user-specified filters (F r and Fd) 206-208. The process model 202 is used to mathematically represent a multivariable MIMO process (G p ) 210. There is also typically some time delay 212 associated with feedback in the closed-loop system, which is shown here as a first-order delay but could include delay(s) of other or additional order(s).

[0040] In FIGURE 2, G p <≡ m X n and Go e m X n are transfer function matrices of the real industrial process and the nominal process model, respectively. In some embodiments, all subsystems in G p and Go have a first-order-plus-dead-time (FOPDT) structure. Therefore, the real process G 210 can be represented as:

. 1 < j < n, where k , iy, and T are the real process gain, time constant, and time delay for Gjj , respectively, and ij denotes the pair of i th input and j th output of the MIMO process. As model mismatches, disturbances, and noise exist in practice, G p (s) is typically not known with exact certainty. Thus, a nominal model Go(s) can be identified as an approximation of G p (s). For example, the nominal model Go(s) could be expressed as:

where k^ , and T? can be obtained from a process identification software tool based on input/output data of the real process or in any other suitable manner.

[0041] Because differences between the actual process 210 and the identified nominal model 202 are typically inevitable, this model mismatch can be taken into consideration when performing controller tuning. Two types of uncertainties are routinely used in robust control, namely parametric uncertainty and unstructured uncertainty. Unstructured uncertainty is often difficult to understand and specify by end users. Therefore, in some embodiments, only parametric uncertainty may be considered for parameter tuning during robust tuning of MPC and other model-based controllers used with MIMO processes having model uncertainty. Note, however, that other approaches could explicitly consider unstructured uncertainty.

[0042] Parametric uncertainty can be modeled in the following form:

! <■> , e fej ' ¾ Ti i E [¾ ' T 'J] > T ' i e [¾ ' v ' ' i - 1 < % < m , 1 < j < n, where ky and k y, ty and τ y, and Ty and T y are the lower and upper bounds defining ranges or intervals of mismatch for the three model parameters ky, T , and Ty. Based on this, a set of possible perturbed process models can be denoted as: 11 := {G p (s) :kij€ [A:,,. A',.,). Tij € [∑, . r ;j ].

[0043] With respect to the MPC controller 204, let H u denote the control horizon, and let H p denote the prediction horizon (where 1 < H u < H p ). In some embodiments, the MPC controller 204 in FIGURE 2 operates to solve the following finite-horizon optimal control problem:

mm ./ = (Y(k) - Y n:i ik)) T Q y (Y(k) - Y rRf (A-))

+ (¾ ll ('t)-i ¾ f(^))¾(¾ u !^-¾(i )

m i If i }

s.t. (k + i) = . V.r(k) + ∑ A l - j BAu(k + j - 1 ). /(A- + ) = < i). f ^ 1.2.

(5) where:

Here, U re f and Y re f are reference signal vectors of U Hu and Ϋ , respectively, and Qi,

Q 2 , and Q 3 are weighting matrices.

[0044] Given the MPC controller 204 and process model 202 described above, the two user-specified filters F r and Fa 206-208 in FIGURE 2 are used respectively for filtering an output target y tg t(k) and an estimated disturbance — !j(k) - ij(k)), which constitute the MIMO 2DOF MPC structure. Based on the filtered signals, the reference trajectory Y re f(k) can be calculated as follows:

(8) where F r (-) and F d ( ) are projection filters generated according to f r (z) and fd(z), and where d (z). Here, f r (z) and fd(z) denote a reference tracking filter and a disturbance rejecting filter, which in some embodiments can be defined as follows:

where n r ,i = e τ * λ < , 6 r .» = 1 - a r .i ' - f>-,i( z ) is the reference tracking filter for the i th output. Define λ = [λι, λ 2 , X m ] as the reference tracking performance ratio vector, and define fd(z) as having the following form:

where «</. = e Γ| Α, ·' - = 1 - ,· and f ( u{z) is the disturbance rejection filter for the i th output. Similarly, define Xd = [λ<3,ι, λd, 2 , . . ., as the disturbance rejection performance ratio vector. A reference tracking performance ratio defines a ratio between a desired closed-loop reference tracking response time of a controller and an open-loop response time of an industrial process. A disturbance rejection performance ratio defines a ratio between a desired closed-loop disturbance rejecting response time of a controller and the open-loop response time of the industrial process. In this way, the MPC controller's performance can be adjusted by tuning λ and λ4 with fixed penalty matrices (which in some embodiments could be defined as Qi = 1; Q 2 = 0.01 x I; and Q j = 0, although other values could be used). As a result, the MPC tuning problem can be simplified.

[0045] As can be seen here, one part of the 2DOF MPC tuning problem is the design of f r ,i(z) and fd,i(z) in Equations (9) and (10). In some embodiments, the design of fr,j(z) is based on, given the i th output, the open-loop transfer function from the input that dominates the output that is selected to construct this filter. One reason for this is to make the speed of the closed-loop response dependent on the speed of the dominant or primary open-loop response of the system according to the requirements for a specific product being produced. As for fd,i(z), the same design procedure can be applied, except that λ < ι,ι can be used instead of λι such that the output target and the estimated disturbance can be filtered separately.

[0046] Based on this, λ and λ < ι (which may be referred to as the λ-parameters) are vectors with appropriate dimensions and are utilized to tune the closed-loop performance of the control structure 200, instead of (or in addition to) tuning the weighting matrices in an MPC cost function. Performance indices are specified via values such as overshoot, total variation, and settling time for each output of the MIMO process. This maintains the user-friendliness of the proposed tuning approach. However, due to inevitable time delays in process operations and model mismatches in model identification, the expressions of the closed-loop responses typically cannot be obtained explicitly, and the tuning problem is therefore difficult to formulate. Moreover, the complexity of the tuning problem can increase based on the system's size, and the relationship between the λ-parameters and each output of the MIMO system can be unclear. In addition, to guarantee a satisfactory user experience, the computation time of the tuning procedure should not only be limited by a specified amount of time but also be predictable without running the algorithm.

[0047] In accordance with this disclosure, the operator console 130, server 140, or other component(s) support an efficient heuristic approach to find a solution to the tuning problem for an MPC or other model-based controller used with an uncertain MIMO process. This approach supports the following capabilities.

• An efficient time-domain performance visualization technique for MIMO processes is proposed, based on which the characterizations of possible step responses of a set of systems described by parametric uncertainties are obtained.

· The tuning problem is cast into a constrained optimization problem and then transformed into a number of individual multiple-input, single-output (MISO) tuning problems, based on which the tuning problem is simplified. Utilizing the visualization technique and the simplified tuning problem, a fast tuning algorithm is disclosed, and controller parameters can be tuned for satisfactory performance within acceptable computation times.

• An efficient technique to predict the overall computation time of the proposed tuning algorithm is disclosed, based on which end users can predict the tuning time without running the algorithm.

[0048] For a MIMO system, the overshoot, total variation, and settling time of each output can be considered as tuning measurements. Since the parametric uncertainty defined in Equation (3) results in a set of perturbed systems, the worst- case time-domain performance indices can be employed. Definitions for the worst- case overshoot, settling time, and total variation are as follows. The worst-case overshoot OS of a set of step responses with the same final value is the maximum value in all responses minus the final value divided by the final value. The worst-case settling time T s of a set of step responses with the same final value is the minimum time required for all responses to reach and stay within a range of a pre-specified percentage of the final value. The worst-case total variation TV, assuming the system converges to a target value within n steps, is:

These definitions are provided to characterize the worst-case performance for a set of step responses for SISO systems and thus are applicable for each of the outputs of a MIMO system. In some embodiments, end users can specify their requirements on each output directly via the worst-case time-domain performance indices, which improves the user-friendliness of the tuning algorithm.

[0049] Moreover, the tuning time (denoted t ) can be an important factor in a successful industrial process controller tuner design. For example, according to some guidelines of commercial paper machine tuner designs, the total time consumption of a tuning algorithm should not be more than half a minute, and in some embodiments this requirement can be considered as a hard constraint for the tuning algorithm disclosed in this patent document. Note that tuning time is normally not considered in existing MIMO tuning algorithms because (i) the limited computation time might affect the feasibility of these algorithms and (ii) the computation time is normally not predictable. A hard constraint on the tuning time can further increase the difficulty of solving the MIMO tuning problem.

[0050] Based on the factors mentioned above, some objectives of the tuning algorithm disclosed here include (i) determining λ and so that a closed-loop system (such as that shown in FIGURE 2) is robustly stable and all outputs track their targets with fast responses, small overshoots, and small total variations, (ii) doing so within an acceptable tuning time, and (iii) doing so under the parametric uncertainties defined in Equation (3). In some embodiments, to accomplish these objectives, the tuning problem can be formulated as:

min ||Τ,(λ, A d )|| .

TV,(A,A d ) < TV* J < i < in.

ί Λ <30 . ( 12 ) where λ = [λι, λ 2 , X m ] and [Xd,i, Xd, 2 , ···, , m ]. Here, OS(X, Xd) := [08ι(λ, Xd), OS 2 (, Xd), ..., OS m ( , Xd)], Τν(λ, Xd) := [Τν,(λ, Xd), Τν 2 (λ, Xd), TV m ( , Xd)], and Τβ(λ, Xd) := [Τ δ ,ι(λ, λα), T S , 2 (X, Xd), T Sjm ( , d)] denote the worst-case overshoots, total variations, and settling times given (λ, Xd) for all outputs of the MIMO system Gp(s) within the parametric uncertainty region, meaning G p (s)ell. Also, OS * := TV m * ] denote the specifications on the overshoots and total variations. Note that in Equation (12), λ and Xd are tuned by minimizing the worst-case settling times of all outputs with the corresponding worst-case OS and TV lying within certain tolerable regions. As noted above, in some embodiments, the tuning time may be no more than half a minute (ίλ < 30s).

[0051] ENVELOPE ALGORITHM: MIMO SYSTEMS

[0052] This section describes a performance visualization technique to obtain the worst-case overshoots, settling times, and total variations for the outputs of a MIMO system. One goal here is to graphically characterize the envelopes of the responses of a set of MIMO systems satisfying G p (s)ell given the values of λ and Xd.

As the system considered here has multiple outputs, an envelope is represented for each output. This allows end users to easily determine the effect of choosing a combination of λ and Xd.

[0053] In U.S. Patent Application Serial No. 14/314,221 (incorporated by reference above), a visualization technique was described that characterizes the envelopes of the responses of a set of SISO FOPDT systems G * (s) under parametric uncertainty G * (s) e II e := {G * (s) : k e [k,k],x e [x,x],T e [T,T]} via eight extreme case systems: Π Ε := {G * (s):ke{k,k},Te{x,-r},Te {1,T}}, where k, x, and T are the gain, time constant, and time delay, respectively. Although all subsystems in the MIMO process G p (s) have a FOPDT structure and the parametric uncertainty of G p (s) is constructed by considering all subsystems in a way like IT e , the approach mentioned above may not be used directly with a MIMO process due to the following factors. First, the number of extreme-case systems depends on the number of model parameters and becomes a large number even for a low-dimensional MIMO system (for instance, a 2-by-2 system includes four FOPDT subsystems and thus requires 84 extreme-case systems). Second, the computation time of the visualization method in the approach mentioned above increases rapidly as the number of extreme-case systems increases. Third, as the tuning procedure should be short (such as less than 30 seconds) and the performance visualization is only a small step in the overall tuning procedure, the computation time allowed for obtaining the envelopes may be very limited.

[0054] In some embodiments, to deal with this problem, the parameters of a MIMO system can be defined as follows:

Based on this, the MIMO system with the parametric uncertainty as defined in Equation (3) can be approximated as:

VE := {G p (s) :k€ {k. k}. r e {r. r}.

T€ {T. T}}. (14) where k, τ, and T denote all entries in k, τ, and T taking their minimum values in the uncertainty region and k , τ , and T denote all entries in k, τ, and T taking their maximum values in the uncertainty region. Note that VE only includes eight extreme- case systems. Therefore, the envelopes of the MIMO system with the parametric uncertainty as defined in Equation (3) can be obtained via VE with significantly reduced the computation time.

[0055] In some embodiments, based on VE, the envelopes of the step responses of a MIMO system with an MPC or other model-based controller can be obtained using the algorithm shown in Table I below. Although this approach may not be guaranteed to be optimal, it is intuitive in that the extreme behavior of the step responses mostly happens when all extreme process parameters are reached simultaneously. The effectiveness of this algorithm has been verified via extensive simulations.

Algorithm 1 MIMO envelope algorithm

l : Input Xd, λ and the uncertainty intervals [k. k], [r, r] and

[T, T

2: Calculate all the output responses Y; = [y \ , · · . y m ] based on the ?th extreme combinations of the uncertainty intervals (i = 1 , 2, · · · , 8) in V E -

3 : Obtain the upper envelope for all the outputs

{Th - · · · > V m ,} by calculating max, :e { i ; 2 . ··· , 8} Y;.(fc,:), k = 1 , 2, · · · , m.

4: Obtain the lower envelope for all the outputs [y " ; y_ rt ) by calculating m, e { 1 , 2 . ... . 8} Y,( /<'·· ' )< k = 1 , 2, · · · , m.

Table I

[0056] MIMO TUNING ALGORITHM

[0057] This section discusses the actual tuning algorithm for model-based controllers of uncertain MIMO processes. As explained below, the tuning algorithm represents an iterative tuning procedure that determines the values of λ and X < j based on the visualization technique described in the prior section. In order to solve Equation (12), the relationship between the λ-parameters and the performance indices of each output, such as 08ί(λ, d) and T s ,i(X, λ<ι) in Equation (12), is explored. As the analytical expressions of the performance indices may not exist, an empirical analysis can be carried out to aid the tuning procedure.

[0058] According to the 2DOF tuning structure, the closed-loop system's behavior is governed by the F r and F d filters 206-208. As both filters 206-208 have diagonal structures and λ and λ < ι only exist on the diagonal entries, it is intuitive to assume that the closed-loop response of the i th output is dominated by the i th elements in λ and λα (which are denoted λί and λά , ϊ). Also, given each output of the MIMO system, the corresponding F r and Fd filters 206-208 can be designed based on the dominant or primary open-loop system producing that output. This also helps to ensure that the specific pair of λ-parameters plays a dominant role only for the closed- loop response of the single corresponding output. In this way, OSi( , λ<ι) and T s, i(X, α) are functions of only λι and λά , and T s ,i( , ά) = Τ δ ,ί(λί, λ ι,ί).

[0059] Examples of these properties are illustrated in FIGURES 3A and 3B via a typical 2-by-3 MD process. In particular, FIGURE 3 A illustrates a numerical verification of OS,( , λ<ι), and FIGURE 3B illustrates a numerical verification of Τ δ λ, Xd). These illustrations have been verified through extensive simulations with other types of MIMO systems. Based on FIGURES 3A and 3B, two observations can be made. First, from the right graphs in FIGURES 3A and 3B, it can be seen that the adjustment of λι and λ<ι,ι does not affect the overshoot and settling time of the second output significantly if at all, which verifies the idea above. Second, the overshoot could be empirically treated as a monotonic function of λ, and the settling time could be considered as a unimodal function of λ<ι, which can basically be determined by the 2DOF MPC structure.

[0060] Thus, as the closed-loop response of the i th output is dominated by λ, and d,i, the tuning problem in Equation (12) can be simplified from a MIMO tuning problem to m individual MISO tuning problems in which λί and λ<ι,ί are tuned for the i th output separately. Mathematically, the new MISO tuning problem can be expressed as:

inin Τ,,.,; (λ ? ; ; \,u ).

s.t. OS, (A, . A,,.,) < OS * I < i < m,

Τν, ί Λ.. Λ. ; .; ϊ I ' i ' V; 1 < i < m,

tx < m*. ( 15) based on which the tuning algorithm described below is proposed.

[0061] It is worth noting that end users are often not familiar with "total variation." Various approaches could therefore be used to handle this issue, such as by specifying the total variation TV * based on the overshoot according to TV * =1+2 OS * or based on the decay ratio (DR * ) according to TV * =1+[30S * /(1-DR * )]. The overshoot-based TV * is slightly conservative, while the decay ratio-based TV * relies on additional knowledge of the decay ratio for the end users. Thus, users can choose either option in different situations depending on their preferences and process knowledge.

[0062] Based on the empirical properties of OSi( , λ < ι) and Τ δ ,ί(λ, ά), an efficient MIMO tuning algorithm is now described. As T s, \ , X d ) is tuned using only λί and λςΐ,ί in the MISO tuning problem of Equation (15), it is similar to the SISO tuning problem described in U.S. Patent Application Serial No. 14/314,221. One feasible method to the tuning problem is to solve each of the MISO tuning problems one-by-one via the proposed counter-line searching tuning algorithm in U.S. Patent Application Serial No. 14/3 14,221. However, this method may be too time-consuming in certain situations where there are constraints on tuning time. Based on Algorithm 1 above, instead of solving the MISO tuning problems one after the other, a MIMO tuning algorithm can solve all MISO tuning problems simultaneously by searching for the optimal λ-parameters for all of the MISO systems along m identical counter-lines at the same time. Because of this, the proposed tuning algorithm is almost as fast as solving only one MISO tuning problem. The fast algorithm is feasible because the counter-line searching is based on the worst-case performance indices calculated by Algorithm 1 and, when Algorithm 1 is executed, the performance indices are computed for all of the MISO systems. Moreover, as all the MISO tuning problems are almost independent (tuning of (λί, λ < ι, does not affect that of kj, Xdj) where j≠ i), the proposed tuning algorithm below can produce the same results as those of tuning the MISO systems one after another.

[0063] To implement this approach, the MIMO tuning algorithm described below includes two sub-algorithms. The first sub-algorithm (Algorithm 2 in Table II) finds the corresponding λί, i = 1 , m on a contour line for a fixed value of 1 , m (denoted λ, ' ) for all of the MISO systems. The second algorithm (Algorithm 3 in Table III) finds the optimal λά,ί, i = 1, m that leads to the smallest values of settling times for all of the outputs based on Algorithm 2. Algorithm 2 Find A c (TV * ,A d ) and T^(TV * ; A d ).

l: Input TV * , A d , and the uncertainty intervals [k, k], [τ,τ] and [ . T] and upper bound for A: A * ;

2: Input e;

3: NoFeasibleLambda = li Xm ;

4: A - 0.5ix /2i , A <- A * ;

5: while max (A— A) > e do

6: for i=l : m do

7: λ(ζ) <- (λ(?;) + A(¾)) x 0.5

8: end for

9: Numerically evaluate the total variation and overshoot vectors TV(A,A d ) and OS(A,A d )

10: for i=l : m do

11: if TV(z ' ) > TV* then

12: <- X(i);

13: else

14: if OS(i) <OS* then

15: A(z) *- A(7):

16: NoFeasibleLambda (?) = 0;

17: else

18: -

19: end if

20: end if

21: end for

22: end while

23: A c (TV * ; A d ) <- (A + A)/2 ;

24: T^(TV*,A d ) ^T s (A c ,A d );

25: end

Table II Algorithm 3 Tuning of λ and X d

1: Input uncertainty intervals [fc. k], [r. r] and [T. X] and upper bound for A^: X d ;

2: Input the overshoot specification OS*;

3: Calculate the total variation specification according to

TV * = 1 + 20S * or TV * = 1 + I ¾ r ;

4: do

for i=l : m do

+ ( i) - A d ( )) x 0.382;

+ (Ad( - A d (i)) x 0.618;

end for

Numerically evaluate the settling times T^(TV * . λ^ι andT 2 (TV * .A d2 );

12: for i=l : m do

13: if NoFeasibleLambda( ) = 0 then

14: if T^x («) > s2 (i) then

18: end if

1 : else

21: end if

22: end for

end while

A d ^(A d +A d )/2;

λ i A c (TV * .A d );

end

Table III

[0064] In Algorithm 2, since Τν λί, λ < ι,ί) is a monotonic function of λί for a fixed the search of λ' that leads to any given value of TV * for a fixed λ < ι,ί can be achieved by a bisection search. T (TV*, is used to represent the dependence of the worst-case settling time on TV* and λα to avoid notational confusion. Note that all of the λ, values can be tuned before evaluating the TV and OS for all of the outputs, based on which the search on all of the contour-lines are executed simultaneously rather than one after another. Also, note that lines 14-19 of Algorithm 2 are used if TV * is chosen based on the decay ratio technique.

[0065] In Algorithm 3, for each MISO system, the worst-case settling time can be approximately a unimodal function of λ<ι,ί. The underlying assumption is that X < i,i controls the robust stability, so a smaller Xd,i leads to an aggressive and oscillatory response while a larger leads to a sluggish response. Thus, a golden search could be utilized in Algorithm 3 to find the optimal λά,ί, i = 1 , m that offers the smallest worst-case settling times for all of the MISO systems. The corresponding value of λ,, i = 1 , m can be obtained through Algorithm 2.

[0066] The fast tuning algorithm described above not only solves the MIMO tuning problem efficiently, it also provides the ability to accurately predict the tuning time. The ability to accurately predict the tuning time is highly demanded or desired with algorithms designed for commercial tuner software because the user-friendliness can be improved. In this case, since the proposed tuning algorithm is a line search- based method, the computation time can be estimated based on the number of iterations needed for convergence and the time required for each iteration. The number of iterations may only depend on the predefined search region and stop criteria, and the iteration time can be decided by the time required for numerically evaluating the performance indices (the duration of which can be computed based on the time required to call Algorithm 1 , which can also be pre-calculated). Thus, the tuning time can be predicted with Algorithm 4 in Table IV. ]ς ^

Algorithm 4 Predict t\ (\ , A d ). l : Input A d , λ and the uncertainty intervals [k, fe], [τ, τ] and [T, T] ;

2: Input e;

3: Input NTV and N TS ;

4: Run the MIMO simulator 3 times to obtain the computation

10: ί λ = ((Ι λ χ Ντν + Ντ ) χ 2 + Ι Λ , Ί X (IA X TV + TJ) ^ ; 1 1 : end

Table IV

[0067] In Algorithm 4, NTV and N T (line 3) are the numbers of extreme-case systems considered to calculate the total variation and the settling time. According to Algorithm 1, both values can be eight by default, but the number of extreme-case systems considered in Algorithm 1 can be optimized to further save computation time. Also, tp (line 5) is the time cost for a single run of the simulation (based on which the running time of Algorithm 1 can be obtained). As a computer may need more time to run a program for the first time, the average of multiple runs (such as three) can be used as the simulation time. In addition, Ι (line 7) and Ι λ (line 9) are the iteration numbers for Algorithm 2 and 3, respectively. The formula in line 10 is constructed based on the structure of the tuning algorithm.

[0068] INDUSTRIAL EXAMPLE

[0069] In this section, the proposed tuning algorithm is illustrated with reference to an example extracted from a real application involving MD paper machine control. The example illustrates the efficiency of the proposed algorithms. In particular, this example involves a 2-by-3 process of a paper machine, where a controller uses a model to control the Conditioned Weight (CW) and Moisture (M) of paper products. Inputs to the process are Base Stock Flow (SF) to the headbox, Main Steam (MS) in the drying cylinders, and Machine Speed (S). The nominal model is shown in Table V below. o\i SF MS S

cw 0.35 -80s -0.025 - 5 1 s

80s+ l 30s+ J fc

M 0.4 -80s -0.08 -80i

90s+ l 150s+ l

Table V

This model was identified using an advanced industrial control software package. The MPC weighting matrices are set to Qj = I, Q 2 = 0.01 x I, and Q 3 = 0. The prediction horizon H p is 68, and the control horizon H u is 27. For the nominal model in Table V, the proposed tuning algorithm is applied at an uncertainty level [-50%, 30%] with OS* = 20%. The tuning procedure took 9.56 seconds on a desktop computer with an i5 processing core and 6GB of memory, and the predicted tuning time from Algorithm 4 was 10.00 seconds. The obtained closed-loop step response envelopes as well as the tuning results are shown in FIGURES 4A and 4B for all outputs.

[0070] To test the design results in a real-time MPC plus simulator environment, to account for model mismatch, the actual process is taken as shown in Table VI, which lies within the uncertainty level [-50%, 30%] of the nominal system in Table V. o\i SF MS S

cw 0.455 - - 1 04s - 0.0325 -00.3s

104s + l 30s

0.52 -

M - 1 04.s - 0. 1040 - 104*

195s- 1

Table VI

The initial operating points are y(0) = [432; 8] and u(0) = [3790; 79; 447]. The MPC optimization parameters H p , H u , Qi, Q 2 , and Q 3 are chosen to be the same as those used for the above tuning results, and the following constraints on control signals are incorporated in the MPC implementation:

0.9u(0) <U < l.lu(0),

-0.1u(0) <Δί7 < 0.1u(0) ( 1 6 )

[0071] To take into account possible changes of operating conditions, a setpoint change of 1 lb/1000 ft 2 is made at t = 100s for all outputs, an output disturbance of 2 lbs/1000 ft 2 is introduced for output 1 at t = 320s, an output disturbance of -2 lbs/1000 ft 2 is in effect at t = 150s for output 2, an input disturbance of 10 gpm is made at t = 220s for input 1, and measurement noise is taken to be zero- mean Gaussian with a standard deviation 0.1 lbs/1000 ft 2 . From FIGURES 5 A and 5B, it is shown that despite the large model mismatch and measurement noise, all system outputs robustly track the setpoint for changes in working conditions, which further indicates the efficiency of the proposed tuning algorithm.

[0072] CONCLUSION

[0073] In this patent document, systematic procedures have been described for automatic parameter tuning of model-based controllers used in MIMO processes under user-specified parametric uncertainties. An envelope algorithm for time-domain closed-loop performance visualization considering the parametric uncertainties for a MIMO process was provided. Also, a fast MIMO tuning algorithm that automatically determines controller tuning parameters λ and λ < ι that fulfill the specifications on the worst-case time-domain performance indices under the parametric uncertainty specifications for the MIMO process was provided. In addition, a technique to predict the tuning time was provided to further improve the user-friendliness of the overall tuning algorithm.

[0074] Note that while the techniques and algorithms were often described above with reference to tuning an MD-MPC controller associated with a web manufacturing or processing system, the same or similar techniques could be used to tune any other suitable model-based controller. The model-based controller may or may not be used in a web manufacturing or processing system since MPC and other model-based controllers can be used in a wide variety of industries. The same or similar techniques could be used to tune any suitable model-based controller in any suitable industry.

[0075] 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. A "non-transitory" computer readable medium excludes wired, wireless, optical, or other communication links that transport transitory electrical or other signals. A non-transitory computer readable medium includes media where data can be permanently stored and media where data can be stored and later overwritten, such as a rewritable optical disc or an erasable memory device.

[0076] It may be advantageous to set forth definitions of certain words and phrases used throughout this patent document. 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" and "receive," 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 phrase "associated with," 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, have a relationship to or with, or the like. The phrase "at least one of," when used with a list of items, means that different combinations of one or more of the listed items may be used, and only one item in the list may be needed. For example, "at least one of: A, B, and C" includes any of the following combinations: A, B, C, A and B, A and C, B and C, and A and B and C.

[0077] 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.