JP2004265381A - Feasibility handling of constraint and limit in process control system optimizer - Google Patents

Feasibility handling of constraint and limit in process control system optimizer Download PDF

Info

Publication number
JP2004265381A
JP2004265381A JP2003319683A JP2003319683A JP2004265381A JP 2004265381 A JP2004265381 A JP 2004265381A JP 2003319683 A JP2003319683 A JP 2003319683A JP 2003319683 A JP2003319683 A JP 2003319683A JP 2004265381 A JP2004265381 A JP 2004265381A
Authority
JP
Japan
Prior art keywords
variable
penalty
objective function
variables
control
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2003319683A
Other languages
Japanese (ja)
Other versions
JP4079369B2 (en
Inventor
Wilhelm K Wojsznis
ウィルヘルム ケイ. ウォズニス,
Terrence L Blevins
テレンス エル. ブレビンス,
Mark Nixon
マーク ニクソン,
Peter Wojsznis
ペーター ウォズニス,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fisher Rosemount Systems Inc
Original Assignee
Fisher Rosemount Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US10/241,350 external-priority patent/US7376472B2/en
Application filed by Fisher Rosemount Systems Inc filed Critical Fisher Rosemount Systems Inc
Publication of JP2004265381A publication Critical patent/JP2004265381A/en
Application granted granted Critical
Publication of JP4079369B2 publication Critical patent/JP4079369B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B11/00Automatic controllers
    • G05B11/01Automatic controllers electric
    • G05B11/32Automatic controllers electric with inputs from more than one sensing element; with outputs to more than one correcting element
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/04Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/04Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators
    • G05B13/042Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators in which a parameter or coefficient is automatically adjusted to optimise the performance
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/04Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators
    • G05B13/048Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators using a predictor

Abstract

<P>PROBLEM TO BE SOLVED: To allow an optimization technique used for driving a process plant controller, such as a model prediction controller, to create a solution that is used by the controller and achievable by using a method that is organized and systematized, and simple in terms of a computer for relaxing or redefining the constraint in operation variables/constant variables/auxiliary variables, when no feasible, optimum solution exists within a preset constraint. <P>SOLUTION: An optimization routine uses a slack variable given penalty, or redefines a constraint model along with the use of the penalty variable for creating a new object function, and determines a control solution for fully satisfying the initial constraint limit by using the new object function. <P>COPYRIGHT: (C)2004,JPO&NCIPI

Description

本出願は、2002年9月11日に出願された米国特許出願第10/241,350号、名称"Integrated Model Predictive Control and Optimization Within a Process Control System(プロセス制御システムにおける統合されたモデル予測制御および最適化)"の一部継続出願であり、該出願の開示は引用により本明細書に明示的に援用される。   No. 10 / 241,350, filed Sep. 11, 2002, entitled "Integrated Model Predictive Control and Optimization Within a Process Control System." )) ", The disclosure of which is expressly incorporated herein by reference.

本発明は、概してプロセス制御システムに関し、より特定的には、例えばプロセスプラントを制御するためのモデル予測コントローラ等で使用される場合のプロセス制御システム・オプティマイザにおける制約および限界の実現可能性への対応に関する。   The present invention relates generally to process control systems, and more particularly to addressing the feasibility of constraints and limitations in a process control system optimizer when used, for example, in a model predictive controller for controlling a process plant. About.

化学プロセス、石油プロセスまたはその他のプロセスに使用されるような、分散または大規模なプロセス制御システム等のプロセス制御システムは、通常、1つまたは複数のプロセスコントローラを備え、該コントローラは通信手段によって、相互に、および少なくとも1つのホストまたはオペレータ・ワークステーションと、およびアナログ、ディジタル、或いはアナログ/ディジタルを組み合わせたバスを介して1つまたは複数のフィールド装置と、連結されている。フィールド装置としては、例えば、バルブ、バルブポジショナー、スイッチおよびトランスミッタ(温度、圧力、流量のセンサ等)があり、バルブの開閉やプロセスパラメータの測定等、プロセス内の機能を実施する。プロセスコントローラは、フィールド装置によって生成されるプロセス測定値および/またはフィールド装置に関するその他の情報を示す信号を受信し、この情報を用いて制御ルーチンを実行し、制御信号を生成する。この制御信号が、バスを通してフィールド装置に送信され、プロセスの動作を制御する。フィールド装置およびコントローラからの情報は通常、オペレータ・ワークステーションによって実行される1つまたは複数のアプリケーションで利用でき、オペレータは、プロセスの現状の目視、プロセス動作の修正等、プロセスに関する所望の機能を行うことができる。   Process control systems, such as those used for chemical, petroleum or other processes, such as distributed or large-scale process control systems, typically include one or more process controllers, which are controlled by communication means. It is interconnected with each other and with at least one host or operator workstation and with one or more field devices via an analog, digital, or combined analog / digital bus. Field devices include, for example, valves, valve positioners, switches, and transmitters (temperature, pressure, flow rate sensors, etc.), and perform functions in the process, such as opening and closing valves and measuring process parameters. The process controller receives signals indicating process measurements generated by the field device and / or other information about the field device and uses this information to execute control routines and generate control signals. This control signal is transmitted to the field device through the bus and controls the operation of the process. Information from field devices and controllers is typically made available to one or more applications executed by an operator workstation, and the operator performs desired functions for the process, such as viewing the current state of the process, modifying process operation, and the like. be able to.

プロセスコントローラは通常、フロー制御ループ、温度制御ループ、圧力制御ループ等、1つのプロセスに関して定義されるまたは1つのプロセス内に含まれる複数の異なるループの各々に関して、異なるアルゴリズム、サブルーチンまたは制御ループ(これらはすべて制御ルーチンである)を実行するようプログラムされている。一般的に、これらの各制御ループは、アナログ入力(AI)機能ブロック等の1つまたは複数の入力ブロック、比例積分微分(PID)またはファジー論理制御機能ブロック等の単一出力制御ブロック、およびアナログ出力(AO)機能ブロック等の単一出力ブロックが含まれる。これらの制御ループは通常、単一入力/単一出力制御を行う。その理由は、制御ブロックは、例えばバルブの位置といった単一のプロセス入力を制御するために用いられる単一の制御出力を生じるからである。しかし、場合によっては、独立して作動する複数の単一入力/単一出力制御ループを使用することは、あまり効果的でないことがある。その理由は、制御されるプロセス変数が単一のプロセス入力以外のものの影響を受け、また実際のところ、各プロセス入力が多数のプロセス出力の状態に影響を与える可能性があるからである。一例として、例えば2つの入力ラインによって充填され単一の出力ラインで排出されるタンクを有するプロセスにおいて、各ラインが異なるバルブによって制御され、タンクの温度、圧力および流量が所望の値またはその付近で制御されている場合に、このような状況が発生することがある。上述したように、タンクの流量、温度および圧力の制御は、個別の流量制御ループ、個別の温度制御ループ、および個別の圧力制御ループを用いて行われると考えられる。しかし、このような状況において、温度制御ループが、タンク内の温度を制御するために入力バルブの1つの設定を変えるよう作動すると、タンク内の圧力が上昇し、これにより例えば圧力ループが圧力を下げるために排出バルブを開放することもある。そして、この動作により、流量制御ループが入力バルブの1つを閉鎖し、これが温度に影響を与え、そのため温度制御ループがまた別の動作をする可能性がある。この例から理解されるように、単一入力/単一出力制御ループは、プロセス出力(この場合は流量、温度および圧力)を、出力が決して安定した状態に達することなく振動するという許容できない方法で行動させる。   A process controller typically has different algorithms, subroutines, or control loops (such as flow control loops, temperature control loops, pressure control loops, etc.) for each of a plurality of different loops defined for or included within a process. Are all control routines). In general, each of these control loops can include one or more input blocks, such as an analog input (AI) function block, a single output control block, such as a proportional-integral-derivative (PID) or fuzzy logic control function block, and an analog Includes a single output block, such as an output (AO) function block. These control loops typically provide single input / single output control. The reason is that the control block produces a single control output that is used to control a single process input, such as the position of a valve. However, in some cases, using multiple single-input / single-output control loops that operate independently may not be very effective. This is because the controlled process variables are affected by more than just a single process input, and in fact, each process input can affect the state of multiple process outputs. As an example, for example, in a process having tanks filled by two input lines and discharged by a single output line, each line is controlled by a different valve and the temperature, pressure and flow rate of the tank at or near the desired values Such situations can occur when controlled. As mentioned above, the control of the flow, temperature and pressure of the tank is considered to be performed using a separate flow control loop, a separate temperature control loop, and a separate pressure control loop. However, in such a situation, when the temperature control loop is activated to change the setting of one of the input valves to control the temperature in the tank, the pressure in the tank will increase, thereby causing the pressure loop to increase the pressure, for example. The drain valve may be opened to lower it. This action then causes the flow control loop to close one of the input valves, which affects the temperature, so that the temperature control loop may perform another action. As can be seen from this example, a single-input / single-output control loop is an unacceptable way of oscillating the process output (in this case, flow, temperature and pressure) without the output reaching a steady state. To act on.

そこで、特定の制御プロセス変数に対する変化が複数のプロセス変数または出力に影響を与えるような状況でプロセス制御を行うために、モデル予測制御(MPC)または他のタイプのアドバンスド制御が用いられている。1970年代後半から、モデル予測制御の実施に関する多数の成功例が報告されており、MPCはプロセス業界におけるアドバンスド多変数制御の主たる形式となっている。さらに、MPCは、分散制御システム内において分散制御システム層ソフトウェアとして実施されている。   Thus, model predictive control (MPC) or other types of advanced control are used to perform process control in situations where changes to a particular control process variable affect multiple process variables or outputs. Since the late 1970s, numerous successful examples of implementing model predictive control have been reported, making MPC the dominant form of advanced multivariable control in the process industry. Further, MPC is implemented as distributed control system layer software in a distributed control system.

一般的に、MPCは、複数のプロセス入力各々の変化が複数のプロセス出力各々に与える影響を測定し、この測定された応答を用いて制御行列またはプロセスのモデルを作成する、多重入力/多重出力制御戦略である。プロセスモデルまたは制御行列(一般的にプロセスの定常状態の動作を定義する)は、数学的に反転され、多重入力/多重出力コントローラとして、またはその中で用いられ、プロセス入力に対してもたらされる変化に基づいてプロセス出力を制御する。場合によっては、プロセスモデルは各プロセス入力のプロセス出力応答曲線(通常はステップ応答曲線)として表され、これらの曲線は、例えば各プロセス入力に提供される一連の擬似ランダムステップ変化に基づいて作成されることもある。これらの応答曲線は、既知の方法でプロセスをモデル化するために用いることができる。MPCはこの技術分野では周知であるため、本明細書内では具体的な内容の説明は省略するが、Qin, S. JoeおよびThomas A. Badgwellによる"An Overview of Industrial Model Predictive Control Technology," AIChE Conference、1996年、に記載されている。また、米国特許第4,616,308号および第4,349,869号にも、プロセス制御システムに使用できるMPCコントローラが概説されている。   In general, MPCs measure the effect of each change in a plurality of process inputs on each of a plurality of process outputs, and use this measured response to create a control matrix or model of the process. Control strategy. The process model or control matrix (which generally defines the steady state behavior of the process) is mathematically inverted and used as or in a multiple-input / multiple-output controller and changes introduced to process inputs Control the process output based on In some cases, the process model is represented as a process output response curve (typically a step response curve) for each process input, and these curves are created, for example, based on a series of pseudo-random step changes provided to each process input. Sometimes. These response curves can be used to model the process in a known manner. Since MPC is well known in the art, a detailed description thereof will be omitted in this specification, but "An Overview of Industrial Model Predictive Control Technology," by AI, Conference, 1996. US Pat. Nos. 4,616,308 and 4,349,869 also outline MPC controllers that can be used in process control systems.

MPCは、非常に効果的で役立つ制御技術であることがわかっており、プロセス最適化と合わせて利用されている。MPCを用いたプロセスを最適化するために、オプティマイザは、MPCルーチンによって決定される1つまたは複数のプロセス入力変数を最小化または最大化することによって、当該プロセスを最適地点で走行させる。この技術はコンピュータ的には可能であるが、経済的な見地からプロセスを最適化するためには、例えばプロセスの経済的な動作(プロセス流量または品質等)の改善に著しい影響を与えるようなプロセス変数を選択する必要がある。財務または経済的な観点からプロセスを最適地点で動作させるには、通常、単一のプロセス変数だけでなく、多くのプロセス変数を相互に併用して制御する必要がある。   MPC has proven to be a very effective and useful control technology and is being used in conjunction with process optimization. To optimize a process using MPC, the optimizer runs the process at an optimal point by minimizing or maximizing one or more process input variables determined by the MPC routine. Although this technique is computationally feasible, optimizing the process from an economic point of view requires processes that have a significant effect on, for example, improving the economic operation of the process (such as process flow rate or quality). You need to select a variable. Operating a process at an optimal point from a financial or economic point of view typically requires controlling not only a single process variable but also many other process variables.

MPCによるダイナミックな最適化を行うための解決策として、二次計画法技術または内点方法等のより現代的な技術を用いた最適化が提案されている。これらの方法によって、最適解が決定され、オプティマイザは、プロセスダイナミックス、現行の制約および最適化目標を考慮して、コントローラ出力(つまりプロセスの操作変数)における動きをコントローラに提供する。しかし、このアプローチはコンピュータに莫大な負荷をかけるものであり、現行の技術水準では実際上、実現可能ではない。   As a solution for performing dynamic optimization by MPC, optimization using a more modern technique such as a quadratic programming technique or an interior point method has been proposed. With these methods, the optimal solution is determined, and the optimizer provides the controller with motion at the controller output (ie, the manipulated variables of the process), taking into account process dynamics, current constraints and optimization goals. However, this approach places an enormous load on the computer and is not practically feasible with the current state of the art.

MPCを用いる多くの場合において、プロセス内で利用できる操作変数の数(つまりMPCルーチンの制御出力)は該プロセスの制御変数の数(つまり特定の設定地点になるよう制御されるべきプロセス変数の数)を上回る。その結果、大抵は、最適化および制約の扱いに利用可能な自由度が多くある。理論上は、このような最適化を行うためには、プロセスの最適動作地点を定義する、プロセス変数、制約、限界および経済的要因で表される値を算出しなければならない。多くの場合、これらのプロセス変数は制約された変数である。なぜなら、これらに付随しこれらの変数がその中に保たれるべきプロセスの物理的特性に関して、限界があるからである。例えば、タンクのレベルを表すプロセス変数は、実際のタンク内で物理的に到達可能な最大レベルと最小レベルに制限される。最適化関数は、制約変数または補助変数の各々に関連して、利益が最大になりコストが最小になるようなレベルで作動するよう、コストおよび/または利益を計算することができる。そして、これらの補助変数の測定値は入力としてMPCルーチンへ提供され、MPCルーチンによって、最適化ルーチンにより定義される補助変数の作動地点と等しい設定地点を持つ制御変数として、扱われることができる。   In many cases using MPC, the number of manipulated variables available in the process (ie, the control output of the MPC routine) is determined by the number of control variables in the process (ie, the number of process variables to be controlled to a particular set point). ). As a result, there are often many degrees of freedom available for optimization and constraint handling. Theoretically, to perform such optimization, one must calculate values that represent process variables, constraints, limits, and economic factors that define the optimal operating point of the process. In many cases, these process variables are constrained variables. This is because there is a limit as to the physical properties of the process associated with them and in which these variables must be kept. For example, process variables representing tank levels are limited to the maximum and minimum levels physically reachable in the actual tank. The optimization function may calculate costs and / or benefits in relation to each of the constraint or auxiliary variables to operate at a level that maximizes benefits and minimizes costs. The measured values of these auxiliary variables are then provided as input to the MPC routine and can be treated by the MPC routine as control variables with set points equal to the operating points of the auxiliary variables defined by the optimization routine.

2002年9月11日に出願された"Integrated Model Predictive Control and Optimization Within a Process Control System(プロセス制御システムにおける統合されたモデル予測制御および最適化)"という名称の米国特許出願第10/241,350号であって、本願の譲受人に譲渡され、その開示内容がここに引用され明示的に援用される出願は、最適化が多変数モデル予測制御と一体を成す、MPCブロック等のアドバンスド制御ブロックを用いたオンライン最適化を提供する方法および装置を開示している。この技術は、かなりの部分において成功している。その理由は、MPCコントローラは、正常動作において、定常状態までのプロセス出力の未来予測を提供し、これによってオプティマイザが信頼できる動作をするために必要な条件を作成するからである。しかし、解を探索するためのこの最適化アプローチは常に機能するわけではない。その理由は、状況によっては、可能な最適解と関連するコントローラ出力または予測コントローラ出力(本明細書では操作変数という)またはプロセス出力(本明細書では制御変数という)の中には、これらの変数に関して事前に設定された予測された制約または限界の範囲外になる場合があり、したがって、その解は事前に定義された実現不可能な範囲内に入るからである。オプティマイザは、MPCまたは他のコントローラと統合された場合は常に、最大限可能な限り実現不可能な範囲内で作動するのを避けて解を探すことが望ましく、また多くの制御状態において、その必要がある。   No. 10 / 241,350, filed Sep. 11, 2002, entitled "Integrated Model Predictive Control and Optimization Within a Process Control System" Accordingly, applications that are assigned to the assignee of the present application and whose disclosures are cited and hereby expressly incorporated herein use advanced control blocks, such as MPC blocks, in which optimization is integral with multivariable model predictive control. A method and apparatus for providing improved online optimization is disclosed. This technique has been quite successful. The reason is that in normal operation, the MPC controller provides a future prediction of the process output up to a steady state, thereby creating the necessary conditions for the optimizer to operate reliably. However, this optimization approach to finding a solution does not always work. The reason is that, depending on the circumstances, these variables may appear in the controller output or predicted controller output (herein referred to as manipulated variable) or process output (herein referred to as control variable) associated with the possible optimal solution. Because it may fall outside of the predicted constraints or limits preset for, and therefore the solution falls within a predefined, unrealizable range. Whenever the optimizer is integrated with an MPC or other controller, it is desirable to find a solution that avoids operating as far as possible to the extent that is not feasible, and in many control situations that There is.

現時点では、オプティマイザが、実現可能ではないがあらゆるプロセス制御出力または入力が事前に設定された制約あるいは限界を維持する最適な解があると判断した場合、オプティマイザは一般的に、許容できる解を得るために1つまたは複数の制約または限界を緩和する。この回復技術は通常、操作変数および制御変数の各々に関連する優先順位を用いて、どの制約または限界を最初に緩めるかを判断する。ここで、簡単なアプローチとしては、オプティマイザがより優先順位の高い制約を満たすことができる解を得るために、優先順位の最も低い制約を外す方法がある。しかし、この技術は、実現不可能な解における制約を扱う上で必ずしも最も合理的な方法ではない。その理由は、1つまたは複数の優先順位の高い制約に最低限の調整を加えるだけのために優先順位の低い制約を外すことによって、これら優先順位の低い制約が範囲から大幅に逸れる可能性があるからだ。また、通常は、実現可能な解を得るために外さなければならない制約の数を推測する必要がある。当然、優先順位の高い制約を満たすために外す制約の数は、最小限に抑えることが望ましい。しかし、外す制約の適切な数を判断するためには、システム内の利用可能な自由度に基づいてオフライン算出を行うか、さもなければ、オプティマイザに制約を1つずつ外すことを繰り返させ、制約が減少した新たな組み合わせで実現可能な解が得られるかどうか判断することを、実現可能な解が得られるまで行う必要がある。残念ながら、リアルタイムまたはオンラインの最適化システムではオフラインの算出はうまく機能せず、反復のアプローチは一般的に境界がない。そのため、実現可能な解を得るまでに許容できない程の遅延が生じることがある。つまり、制約を順次外していくことによって最適な解を作成するプロセスは、解が得られるまで繰り返す必要があり、このようなオープンエンドの反復プロセスは、リアルタイムの最適化アプリケーションにおいてはほどんどの場合望ましいものではない。   At this time, if the optimizer determines that there is an optimal solution that is not feasible, but that any process control output or input will maintain preset constraints or limits, the optimizer will generally obtain an acceptable solution To relax one or more constraints or limitations. This recovery technique typically uses priorities associated with each of the manipulated and control variables to determine which constraints or limits to relax first. Here, as a simple approach, there is a method in which the optimizer removes the lowest priority constraint in order to obtain a solution that can satisfy the higher priority constraint. However, this technique is not always the most rational way to handle constraints on unrealizable solutions. The reason is that removing lower priority constraints to make minimal adjustments to one or more higher priority constraints can cause these lower priority constraints to deviate significantly from scope. Because there is. Also, it is usually necessary to guess the number of constraints that must be removed to obtain a feasible solution. Naturally, it is desirable to minimize the number of constraints that are removed to satisfy the higher priority constraints. However, to determine the appropriate number of constraints to drop, either make an offline calculation based on the available degrees of freedom in the system, or else have the optimizer repeatedly remove the constraints one by one, It is necessary to determine whether or not a feasible solution can be obtained with the new combination in which the feasibility is reduced until a feasible solution is obtained. Unfortunately, offline calculations do not work well with real-time or online optimization systems, and iterative approaches are generally borderless. This can result in an unacceptable delay before a feasible solution is obtained. In other words, the process of creating an optimal solution by sequentially removing constraints must be repeated until a solution is obtained, and such an open-ended iterative process is often used in real-time optimization applications. Not desirable.

これ以外にも、実現不可能な解が存在する場合に最適化を達成させるための周知のアプローチがいくつか提案されている。例えば、Tyler, M.L.およびMorari M.による"Propositional Logic in Control and Monitoring Problems," Proceedings of European Control Conference '97、pp.623-238、ベルギー、ブリュッセル、1997年6月、には、優先順位を付けるために整数変数を用いる方法が開示されており、混合整数最適化問題のシークエンスを解決することによって侵害の大きさを最小限にしている。一方、Vada, J.、 Slupphaug, O.、Foss, B.A.、による"Infeasibility Handling in Linear MPC subject to Prioritized Constraints," Preprints IFCA'99 14th World Congress、中国、北京、1999年7月、には、満たすことのできない制約の侵害を最少限に抑えるために線形計画法(LP)または二次計画法(QP)の問題のシークエンスを解決する上で利用できるアルゴリズムについて述べられている。しかし、これらのいずれのアプローチもコンピュータ的に厳しく、一般的に迅速かつリアルタイムのアプリケーションには適当でないか、あるいは許容できない。一方、Vada. J.、Slupphaug, O.およびJohansen, T.A.による"Efficient Infeasibility Handling in Linear MPC subject to Prioritized Constraints," ACC2002 Proceedings、アラスカ州アンカレッジ、2002年5月、には、計算される制約の侵害を最適化するLPウエイトを算出するオフライン・アルゴリズムが開示されている。この技術はオフライン環境に対する過剰な計算の負荷を減らすが、更なるオフラインでの最適化問題への対応が必要であり、オンラインまたはリアルタイムの最適化プロシージャにはそれほど有益ではない。
米国特許第4,616,308号 米国特許第4,349,869号 米国特許出願第10/241,350号 米国特許第6,445,963号 Qin, S. Joe、Thomas A. Badgwell著「An Overview of Industrial Model Predictive Control Technology」AIChE Conference、1996年 Tyler, M.L.、Morari M.著「Propositional Logic in Control and Monitoring Problems」Proceedings of European Control Conference '97、 pp.623-628、1997年6月 Vada, J.、Slupphaug, O.、Foss, B.A.著「Infeasibility Handling in Linear MPC subject to Prioritized Constraints」Preprints IFCA'99 14th World Congress、1999年7月 Vada. J.、Slupphaug, O、Johansen, T.A.著「Efficient Infeasibility Handling in Linear MPC subject to Prioritized Constraints」ACC2002 Proceedings、2002年5月
Several other well-known approaches have been proposed to achieve optimization when there are unfeasible solutions. For example, prioritize "Propositional Logic in Control and Monitoring Problems," by Tyler, ML and Morari M., Proceedings of European Control Conference '97, pp. 623-238, Brussels, Belgium, June 1997. The use of integer variables has been disclosed to minimize the magnitude of infringement by solving the sequence of mixed integer optimization problems. On the other hand, Vada, J., Slupphaug, O. , Foss, BA, due to "Infeasibility Handling in Linear MPC subject to Prioritized Constraints," Preprints IFCA'99 14 th World Congress, China, Beijing, July 1999, in the, Algorithms are described that can be used to solve a sequence of linear programming (LP) or quadratic programming (QP) problems to minimize violations of unsatisfiable constraints. However, neither of these approaches is computationally rigorous and generally not suitable or acceptable for fast and real-time applications. On the other hand, "Efficient Infeasibility Handling in Linear MPC subject to Prioritized Constraints," by Vada. J., Slupphaug, O., and Johansen, TA, ACC2002 Proceedings, Anchorage, Alaska, May 2002 An off-line algorithm for calculating LP weights to optimize infringement is disclosed. Although this technique reduces the excessive computational burden on the offline environment, it requires addressing additional offline optimization problems and is not as useful for online or real-time optimization procedures.
U.S. Pat.No. 4,616,308 U.S. Pat.No. 4,349,869 U.S. Patent Application No. 10 / 241,350 U.S. Patent No. 6,445,963 Qin, S. Joe, Thomas A. Badgwell, `` An Overview of Industrial Model Predictive Control Technology '' AIChE Conference, 1996 Tyler, ML, Morari M. Propositional Logic in Control and Monitoring Problems, Proceedings of European Control Conference '97, pp.623-628, June 1997. Vada, J., Slupphaug, O., Foss, BA, `` Infeasibility Handling in Linear MPC subject to Prioritized Constraints, '' Preprints IFCA'99 14th World Congress, July 1999. Vada. J., Slupphaug, O, Johansen, TA, "Efficient Infeasibility Handling in Linear MPC subject to Prioritized Constraints," ACC2002 Proceedings, May 2002.

モデル予測制御プロシージャ等のアドバンスド制御手順を最適化するために使用できる統合最適化技術は、事前に設定された制約または限界の範囲内に実現可能な最適解がない場合に、操作変数または制御変数の制約または限界を緩和あるいは再定義する、組織化・システム化されかつ計算が簡単な方法を用いることによって、制御プロシージャで使用する達成可能な最適解を探索する。特に、最適化ルーチンは、事前に設定された制約限界内では実現不可能なオプティマイザの解に直面した場合は、ペナルティを課されたスラック変数に基づいて、および/または制約モデルを再定義することによって、強力で信頼性のある技術を用いて最適な解をシステマチックに選択する。本明細書に開示される技術は計算がシンプルであるため、この技術はリアルタイム・オプティマイザのオンラインでの実施に適する。   Integrated optimization techniques that can be used to optimize advanced control procedures, such as model predictive control procedures, require that the operating or control variables be controlled when no feasible optimal solution exists within preset constraints or limits Search for achievable optimal solutions for use in control procedures by using an organized, systematic, and computationally simple method that relaxes or redefines the constraints or limits of In particular, the optimization routine may redefine the constraint model based on penalized slack variables and / or if it encounters an optimizer solution that is not feasible within preset constraint limits. Systematically selects the optimal solution using powerful and reliable techniques. Because the technique disclosed herein is computationally simple, it is suitable for online implementation of a real-time optimizer.

1つの実施形態では、オプティマイザは、ペナルティを課されたスラック変数を含む目的関数を使用して、事前設定限界から外れた1つまたは複数の操作変数または制御変数が存在する場合の最適解を探索してもよい。もう1つの実施形態では、オプティマイザは制約モデルを再定義することにより限界から外れた操作変数または制御変数の許容可能な限界を再定義し、新たな制約モデルで定義されたペナルティ変数で目的関数を使用して、優先順位の低い制約がそれ以上侵害されることなく、限界から外れている優先順位の高い制約を事前に設定された限界に向かって進ませてもよい。さらにもう1つの実施形態では、オプティマイザは、ペナルティを課されたスラック変数の使用と制約モデルの再定義とを統合し、フレキシブルで効果的な制約対応技術を提供してもよい。   In one embodiment, the optimizer uses an objective function that includes a penalized slack variable to find an optimal solution in the presence of one or more manipulated or controlled variables that are outside preset limits. May be. In another embodiment, the optimizer redefines the acceptable limits of out-of-bound manipulated or control variables by redefining the constraint model, and replaces the objective function with the penalty variables defined in the new constraint model. It may be used to push higher priority constraints out of bounds toward a preset limit without further violation of lower priority constraints. In yet another embodiment, the optimizer may integrate the use of penalized slack variables with the redefinition of constraint models to provide flexible and effective constraint handling techniques.

さて、図1において、プロセス制御システム10はプロセスコントローラ11を含み、該プロセスコントローラ11は、データヒストリアン12と、および各々がディスプレイスクリーン14を有する1つまたは複数のホストワークステーションまたはコンピュータ13(いかなる種類のパソコン、ワークステーション等でもよい)と、通信可能に接続される。コントローラ11は、入力/出力(I/O)カード26、28を介してフィールド装置15-22にも接続される。データヒストリアン12は、データを記憶するための所望の種類のメモリおよび所望または周知のソフトウェア、ハードウェア、またはファームウェアを有する、所望の種類のデータ収集ユニットであってよく、ワークステーション13のうちの1つとは分離されていても(図1に示すように)、その一部でもよい。コントローラ11は、例えば、エマーソン・プロセス・マネジメント(Emerson Process Management)により販売されるDeltaVTMコントローラで、例えば、イーサネット(R)接続または他の所望の通信ネットワーク29を通してホストコンピュータ13とデータヒストリアン12とに通信可能に接続されてよい。通信ネットワーク29には、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、電気通信ネットワーク等の形態があり、有線または無線技術を用いて実現される。コントローラ11は、例えば標準的な4-20ミリアンペア装置と関連する、および/またはFOUNDATIONTMフィールドバスプロトコル(フィールドバス)、HARTTMプロトコルのようなスマート通信プロトコルと関連する、所望のハードウェアおよびソフトウェアを用いてフィールド装置15-22と通信可能に接続される。 Referring now to FIG. 1, a process control system 10 includes a process controller 11, which includes a data historian 12, and one or more host workstations or computers 13, each having a display screen 14, Type of personal computer, workstation, etc.). The controller 11 is also connected to field devices 15-22 via input / output (I / O) cards 26,28. The data historian 12 may be a desired type of data collection unit having a desired type of memory for storing data and desired or well-known software, hardware, or firmware; It may be separate from one (as shown in FIG. 1) or a part thereof. The controller 11 is, for example, a DeltaV controller sold by Emerson Process Management, for example, with the host computer 13 and the data historian 12 through an Ethernet connection or other desired communication network 29. May be communicably connected to The communication network 29 has a form such as a local area network (LAN), a wide area network (WAN), and a telecommunications network, and is realized by using a wired or wireless technology. The controller 11 may include the desired hardware and software associated with, for example, a standard 4-20 mA device and / or associated with a smart communication protocol such as the FOUNDATION fieldbus protocol (Fieldbus), HART protocol. And is communicably connected to the field device 15-22.

フィールド装置15-22は、センサ、バルブ、トランスミッタ、ポジショナ等、いかなる種類の装置でもよく、I/Oカード26、28は、所望の通信プロトコルまたはコントローラプロトコルに従ういかなる種類のI/O装置でもよい。図1に示す実施形態において、フィールド装置15-18は、アナログ回線を通してI/Oカード26と通信する標準的な4-20ミリアンペア装置であり、フィールド装置19-22は、フィールドバスプロトコル通信を用いてディジタルバスを通してI/Oカード28と通信する、フィールドバスフィールド装置のようなスマート装置である。当然、フィールド装置15-22は、将来開発されるあらゆる標準またはプロトコルを含む、所望する他のいかなる標準またはプロトコルに従うものでもよい。   Field devices 15-22 may be any type of device, such as sensors, valves, transmitters, positioners, etc., and I / O cards 26, 28 may be any type of I / O device that follows a desired communication or controller protocol. In the embodiment shown in FIG. 1, the field devices 15-18 are standard 4-20 mA devices that communicate with the I / O card 26 through an analog line, and the field devices 19-22 use fieldbus protocol communication. A smart device, such as a fieldbus field device, that communicates with the I / O card 28 over a digital bus. Of course, field devices 15-22 may conform to any other standards or protocols desired, including any standards or protocols developed in the future.

プラント10内の多くの分散コントローラの1つであり内部に少なくとも1つのプロセッサを含むコントローラ11は、1つまたは複数のプロセス処理ルーチンを実行または監視し、該ルーチンは、その内部に記憶される、またはこれに関連する、制御ループを含んでもよい。コントローラ11はまた、装置15-22、ホストコンピュータ13、およびデータヒストリアン12と通信し、所望の方法でプロセスを制御する。本明細書に記載される制御ルーチンまたはエレメントはいかなるものも、所望する場合は、その一部を別のコントローラまたは他の装置に実現または実行させてもよいという点に留意すべきである。同様に、プロセス制御システム10内で実現される、本明細書に記載の制御ルーチンまたはエレメントは、ソフトウェア、ファームウェア、またはハードウェア等を含む、いかなる形態でもよい。この点に関して、プロセス制御エレメントは、例えばコンピュータで読取り可能な媒体に記憶されたルーチン、ブロック、またはモジュールを含むプロセス制御システムの、いかなる部分であってもよい。モジュール、またはサブルーチン、サブルーチンの複数部分(コードの列、等)等の制御プロシージャの一部分である、制御ルーチンは、はしご論理、順次機能チャート、機能ブロック図、目的に基づくプログラミング、または他のいかなるソフトウェアプログラミング言語または設計パラダイムを用いた、所望するいかなるソフトウェアのフォーマットで実現してもよい。同様に、制御ルーチンは、例えば、1つまたは複数のEPROM、EEPROM、専用集積回路(ASIC)、または他のハードウェアエレメントもしくはファームウェアエレメント内にハードコードされてもよい。さらに、制御ルーチンは、図形設計ツールまたは他の種類のソフトウェア/ハードウェア/ファームウェアプログラミングツールもしくは設計ツールを含め、何らかの設計ツールを用いて設計されてもよい。このように、コントローラ11は、所望の方法で、制御戦略または制御ルーチンを実行するように構成されてよい。   A controller 11 that is one of many distributed controllers in the plant 10 and includes at least one processor therein executes or monitors one or more process processing routines, which are stored therein. Or it may include a control loop associated therewith. Controller 11 also communicates with devices 15-22, host computer 13, and data historian 12, and controls the process in a desired manner. It should be noted that any of the control routines or elements described herein may be implemented or performed by another controller or other device, if desired. Similarly, the control routines or elements described herein, implemented within process control system 10, may be in any form, including software, firmware, or hardware. In this regard, a process control element may be any part of a process control system that includes, for example, a routine, block, or module stored on a computer-readable medium. A control routine, which is part of a control procedure such as a module or subroutine, parts of a subroutine (strings of code, etc.), ladder logic, sequential function charts, function block diagrams, purpose-based programming, or any other software It may be implemented in any desired software format using a programming language or design paradigm. Similarly, the control routines may be hard-coded, for example, in one or more EPROMs, EEPROMs, dedicated integrated circuits (ASICs), or other hardware or firmware elements. Further, the control routines may be designed using any design tool, including graphic design tools or other types of software / hardware / firmware programming tools or design tools. Thus, the controller 11 may be configured to execute a control strategy or control routine in a desired manner.

1つの実施形態において、コントローラ11は、一般的に機能ブロックと称されるものを用いて制御戦略を実行する。この戦略において、各機能ブロックは、全体の制御ルーチンの一部または対象であり、他の機能ブロックと(リンクと呼ばれる通信によって)関連して動作し、プロセス制御システム10内のプロセス制御ループを実行する。機能ブロックは通常、トランスミッタ、センサまたは他のプロセスパラメータ測定装置と関連するもの等の入力機能、PID制御、ファジー論理制御等を実行する制御ルーチンと関連するもの等の制御機能、または、バルブのような装置の動作を制御する出力機能、の1つを実行し、プロセス制御システム10内で何らかの物理的な機能を実行する。当然、ハイブリッド機能ブロックおよび他の種類の機能ブロックが存在する。機能ブロックはコントローラ11内に記憶されてこれにより実行されてもよいが、これは通常、これらの機能ブロックが標準的な4-20ミリアンペアの装置、およびHART装置のような何らかの種類のスマートフィールド装置に用いられるかもしくはこれらと関連する場合であり、またはフィールドバス装置の場合のようにフィールド装置自体の内部に記憶されこれにより実行されてもよい。ここでは、制御システムについて、目的に基づくプログラミングパラダイムを用いる機能ブロック制御戦略を用いて説明しているが、制御戦略または制御ループもしくは制御モジュールは、はしご論理、順次機能チャート等の他の規約を用いて、または他の所望のプログラミング言語またはプログラミングパラダイムを用いて実行または設計されてもよい。   In one embodiment, the controller 11 executes the control strategy using what is commonly referred to as a functional block. In this strategy, each functional block is part or subject of an overall control routine, operates in conjunction with other functional blocks (by communication called links), and executes a process control loop within the process control system 10. I do. Functional blocks are typically input functions such as those associated with transmitters, sensors or other process parameter measurement devices, control functions such as those associated with control routines that perform PID control, fuzzy logic control, etc., or valves such as valves. It performs one of the output functions that control the operation of the various devices, and performs some physical function within the process control system 10. Of course, there are hybrid functional blocks and other types of functional blocks. The function blocks may be stored in and executed by the controller 11, but this is typically the case when these function blocks are standard 4-20 mA devices, and some type of smart field device such as a HART device. Or associated therewith, or may be stored and executed within the field device itself, as in the case of a fieldbus device. Although the control system is described here using a functional block control strategy using a purpose-based programming paradigm, the control strategy or control loop or control module uses other conventions such as ladder logic, sequential function charts, etc. Or may be implemented or designed using any other desired programming language or programming paradigm.

図1の拡大ブロック30に示すように、コントローラ11は、ルーチン32、34として示される、複数の単一ループ制御ルーチンを含んでよく、また制御ループ36として示される1つまたは複数のアドバンスド制御ループを実行してもよい。このような各ループは通常、制御モジュールと称される。単一ループ制御ルーチン32、34は各々、適切なアナログ入力(AI)機能ブロックおよびアナログ出力(AO)機能ブロックに接続された単一入力/単一出力ファジー論理制御ブロックおよび単一入力/単一出力PID制御ブロックを用いて信号ループ制御を実行するものとして示され、機能ブロックは、バルブのようなプロセス制御装置と関連してもよく、温度トランスミッタおよび圧力トランスミッタのような測定装置と関連してもよく、またプロセス制御システム10内の他の装置と関連してもよい。アドバンスド制御ループ36は、多数のAI機能ブロックに通信可能に接続された入力と多数のAO機能ブロックに通信可能に接続された出力とを有するアドバンスド制御ブロック38を含むものとして示されるが、アドバンスド制御ブロック38の入力および出力は、他の所望の機能ブロックまたは制御エレメントと通信可能に接続され他の種類の入力を受信し他の種類の制御出力を提供してもよい。後述するが、アドバンスド制御ブロック38は、モデル予測制御ルーチンとオプティマイザとを統合して、プロセスまたはプロセスの一部の最適制御を実行する制御ブロックでもよい。本明細書内ではアドバンスド制御ブロックはモデル予測制御(MPC)ブロックを含むものとして述べられるが、ニューラルネットワークモデリングまたは制御ルーチン、多変数ファジー論理制御ルーチン等の、他の多入力/多出力制御ルーチンまたはプロシージャでもよい。アドバンスド制御ブロック38を含む図1に示される機能ブロックは、コントローラ11により実行されるか、またはワークステーション13のうちの1つもしくはフィールド装置19−22のうちの1つのような他の処理装置内に位置しこれにより実行されることは理解されるであろう。   As shown in expanded block 30 of FIG. 1, controller 11 may include a plurality of single loop control routines, shown as routines 32, 34, and one or more advanced control loops shown as control loop 36. May be executed. Each such loop is commonly referred to as a control module. The single-loop control routines 32, 34 are respectively a single-input / single-output fuzzy logic control block and a single-input / single-output block connected to the appropriate analog input (AI) and analog output (AO) function blocks. Shown as performing signal loop control using an output PID control block, the functional block may be associated with a process control device such as a valve, or associated with a measurement device such as a temperature transmitter and a pressure transmitter. And may be associated with other devices in the process control system 10. The advanced control loop 36 is shown as including an advanced control block 38 having an input communicatively connected to a number of AI function blocks and an output communicatively connected to a number of AO function blocks, but the advanced control The inputs and outputs of block 38 may be communicatively connected to other desired functional blocks or control elements to receive other types of inputs and provide other types of control outputs. As will be described later, the advanced control block 38 may be a control block that integrates a model predictive control routine and an optimizer to execute optimal control of a process or a part of the process. Although the advanced control blocks are described herein as including model predictive control (MPC) blocks, other multi-input / multi-output control routines, such as neural network modeling or control routines, multi-variable fuzzy logic control routines, or the like. It may be a procedure. The functional blocks shown in FIG. 1, including the advanced control block 38, are executed by the controller 11 or in other processing units, such as one of the workstations 13 or one of the field devices 19-22. It will be appreciated that this is implemented by

図1に示すように、ワークステーション13の1つはアドバンスド制御ブロック生成ルーチン40を含み、該ルーチンは、アドバンスド制御ブロック38を作成、ダウンロード、および実行するのに用いられる。アドバンスド制御ブロック生成ルーチン40は、ワークステーション13内のメモリに記憶されプロセッサにより実行されてよいが、該ルーチン(またはその一部)は、所望する場合は、さらにまたは代替的に、プロセス制御システム10内の他の装置内に記憶されこれによって実行されてもよい。一般的に、アドバンスド制御ブロック生成ルーチン40は、アドバンスド制御ブロックを作成し該アドバンスド制御ブロックをプロセス制御システム内に接続する制御ブロック作成ルーチン42と、アドバンスド制御ブロックにより収集されたデータに基づいてプロセスのためのプロセスモデルまたはその一部を作成するプロセスモデル化ルーチン44と、プロセスモデルからアドバンスド制御ブロックのための制御論理パラメータを作成し、これらの制御論理パラメータを、プロセス制御に用いるためにアドバンスド制御ブロック内に記憶またはダウンロードする制御論理パラメータ作成ルーチン46と、アドバンスド制御ブロックと併せて用いるオプティマイザを作成するオプティマイザルーチン48とを含む。これらのルーチン42、44、46、48は、一連の異なるルーチンから構成できる。この一連のルーチンには、プロセス出力の受信に適合した制御入力と制御信号のプロセス入力への提供に適合した制御出力とを有するアドバンスド制御エレメントを作成する第1のルーチンと、プロセス制御ルーチン(所望の構成ルーチンでよい)内のアドバンスド制御エレメントをユーザがダンウンロードし通信可能に接続できるようにする第2のルーチンと、アドバンスド制御エレメントを用いて各プロセス入力に対し励起波形を提供する第3のルーチンと、アドバンスド制御エレメントを用いて励起波形に対する各プロセス出力の応答を反映するデータを収集する第4のルーチンと、アドバンスド制御ブロックのための1組の入力を選択するまたはユーザが選択できるようにする第5のルーチンと、プロセスモデルを作成する第6のルーチンと、プロセスモデルからアドバンスド制御論理パラメータを作成する第7のルーチンと、アドバンスド制御論理および必要な場合はプロセスモデルを、アドバンスド制御エレメント内に配置してアドバンスド制御エレメントがプロセスを制御できるようにする第8のルーチンと、アドバンスド制御ブロック38内で用いるオプティマイザを選択するまたはユーザが選択できるようにする第9のルーチン等がある。   As shown in FIG. 1, one of the workstations 13 includes an advanced control block generation routine 40, which is used to create, download, and execute the advanced control block 38. The advanced control block generation routine 40 may be stored in memory within the workstation 13 and executed by a processor, but the routine (or a portion thereof) may additionally or alternatively include, if desired, the process control system 10. May be stored in and executed by other devices within. In general, the advanced control block generation routine 40 includes a control block generation routine 42 that generates an advanced control block and connects the advanced control block into the process control system, and a process control process based on the data collected by the advanced control block. A process modeling routine 44 for creating a process model or a part thereof, and control logic parameters for an advanced control block from the process model, and an advanced control block for using these control logic parameters for process control. It includes a control logic parameter creation routine 46 to be stored or downloaded within, and an optimizer routine 48 to create an optimizer for use with the advanced control block. These routines 42, 44, 46, 48 can be comprised of a series of different routines. The series of routines includes a first routine for creating an advanced control element having a control input adapted to receive process output and a control output adapted to provide control signals to the process input, and a process control routine (desired). A second routine that allows a user to download and communicatively connect the advanced control element within the control routine, and a third routine that uses the advanced control element to provide an excitation waveform for each process input. A routine and a fourth routine to collect data reflecting the response of each process output to the excitation waveform using the advanced control element, and to select or allow the user to select a set of inputs for the advanced control block. A fifth routine to create a process model, A seventh routine for creating advanced control logic parameters from the process model, and an eighth routine for placing the advanced control logic and, if necessary, the process model within the advanced control element so that the advanced control element can control the process. There are routines and a ninth routine that selects or allows the user to select an optimizer for use within the advanced control block 38.

図2は、プロセス50に通信可能に連結されたアドバンスド制御ブロック38の1つの実施形態を更に詳細に示したブロック図である。アドバンスド制御ブロック38は、他の機能ブロックに提供する1組の操作変数MVを生成し、一方これらの他の機能ブロックはプロセス50の制御入力に接続されることが、この図から理解される。図2に示すように、アドバンスド制御ブロック38は、MPCコントローラブロック52、オプティマイザ54、目標変換ブロック55、ステップ応答モデルまたは制御行列56、および入力処理/フィルタブロック58を含む。MPCコントローラ52は、標準的なM×M平方(Mは1以上の任意の数字でよい)のMPCルーチンまたはプロシージャで、出力と同数の入力を有する。MPCコントローラ52は、入力として、プロセス50内で測定される1組のN個の制御変数CVおよび補助変数AV(値のベクトル)と、未来のある時期にプロセス50に提供される周知のまたは予想される変化または外乱である1組の外乱変数DVと、目標変換ブロック55から提供される1組の定常状態目標制御変数CVTおよび補助変数AVTとを受け取る。MPCコントローラ52は、これらの入力を用いて1組のM個の操作変数MVを(制御信号の形で)作成し、操作変数MV信号を供給してプロセス50を制御する。 FIG. 2 is a block diagram illustrating one embodiment of the advanced control block 38 communicatively coupled to the process 50 in further detail. It can be seen from this figure that the advanced control block 38 generates a set of manipulated variables MV to provide to the other function blocks, while these other function blocks are connected to the control inputs of the process 50. As shown in FIG. 2, the advanced control block 38 includes an MPC controller block 52, an optimizer 54, a target transform block 55, a step response model or control matrix 56, and an input processing / filter block 58. The MPC controller 52 is a standard M × M square (M can be any number greater than 1) MPC routine or procedure, with as many inputs as outputs. The MPC controller 52 receives as input a set of N control variables CV and auxiliary variables AV (vectors of values) measured in the process 50 and a known or expected value provided to the process 50 at some time in the future. receiving a set of disturbance variables DV is changed or disturbances is, and a set of steady state target control variable CV T and the auxiliary variables AV T provided from the target conversion block 55. The MPC controller 52 uses these inputs to create a set of M manipulated variables MV (in the form of control signals) and supply manipulated variable MV signals to control the process 50.

さらに、MPCコントローラ52は、1組の予測定常状態制御変数CVSSおよび補助変数AVSSを、制御変数CV、補助変数AV(それぞれ予測水平線で)および操作変数MV(制御水平線で)の予測値を表す1組の予測定常状態操作変数MVSSと併せて算出し、入力処理/フィルタブロック58に提供する。入力処理/フィルタブロック58は、制御変数CVSS、補助変数AVSS、操作変数MVSSの決定された予測定常状態値を処理し、これらの変数に対するノイズおよび予測し得ない外乱の影響を減少させる。入力処理/フィルタブロック58は、ローパスフィルタ、またはこれらの値に対するノイズ、モデル化エラー、および外乱の影響を減少させる他のいかなる入力処理をも含んでもよく、またフィルタ処理された制御変数CVSSfil、補助変数AVSSfil、および操作変数MVSSfilをオプティマイザ54に提供することは理解されるであろう。 In addition, the MPC controller 52 calculates a set of predicted steady state control variables CV SS and auxiliary variables AV SS using the predicted values of the control variables CV, auxiliary variables AV (each at the predicted horizontal line) and manipulated variables MV (at the control horizontal line). represents a set of calculated along with the predicted steady state manipulated variables MV SS, provided to the input processing / filter block 58. Input processing / filter block 58 processes the determined predicted steady state values of control variable CV SS , auxiliary variable AV SS , and manipulated variable MV SS to reduce the effects of noise and unpredictable disturbances on these variables. . The input processing / filter block 58 may include a low-pass filter or any other input processing that reduces the effects of noise, modeling errors, and disturbances on these values, and may include a filtered control variable CV SSfil , It will be appreciated that the auxiliary variable AV SSfil and the manipulated variable MV SSfil are provided to the optimizer 54.

オプティマイザ54は、この例では線形計画法(LP)オプティマイザであり、選択ブロック62から提供されてもよい目的関数(OF)を用いてプロセス最適化を行う。あるいは、オプティマイザ54は二次計画法オプティマイザ、つまり線形モデルと二次目的関数を有するオプティマイザでもよい。一般的に、目的関数OFは、複数の制御変数、補助変数、操作変数(まとめてプロセス変数と称する)の各々に関連するコストまたは利益を特定し、オプティマイザ54は、この目的関数を最大化または最小化する1組のプロセス変数を探索してこれらの変数の目標値を決定する。選択ブロック62は、オプティマイザ54に提供される目的関数OFを、プロセス50の最適動作を定める様々な方法を数学的に表す1組の事前に記憶された目的関数64の1つとして選択してもよい。例えば、ある事前に記憶された目的関数64はプラントの利益を最大化するよう構成され、別の目的関数64は供給が不足している特定の原材料の使用を最低限に抑えるよう構成され、また別の目的関数64はプロセス50内で製造される製品の品質を最大化するよう構成されてもよい。一般的に、目的関数は、制御変数、補助変数及び操作変数それぞれの動きに関連するコストまたは利益を用いて、制御変数CVの設定点または範囲および補助変数AVと操作変数MVの限界によって定められる許容される1組の地点内で、最も最適なプロセス動作点を決定する。当然、原材料の使用や利益率等の複数の懸念事項それぞれをある程度最適化する目的関数を含む、ここに述べられているものに代わり、またはそれに加えて、所望の目的関数を用いることもできる。   The optimizer 54 is a linear programming (LP) optimizer in this example, and performs a process optimization using an objective function (OF) that may be provided from a selection block 62. Alternatively, the optimizer 54 may be a quadratic programming optimizer, that is, an optimizer having a linear model and a quadratic objective function. In general, the objective function OF specifies a cost or benefit associated with each of a plurality of control, auxiliary, and manipulated variables (collectively referred to as process variables), and the optimizer 54 maximizes or reduces this objective function. A set of process variables to be minimized is searched to determine target values for these variables. The selection block 62 also selects the objective function OF provided to the optimizer 54 as one of a set of pre-stored objective functions 64 that mathematically represent various ways of determining the optimal operation of the process 50. Good. For example, one pre-stored objective function 64 is configured to maximize plant benefits, another objective function 64 is configured to minimize the use of certain raw materials that are in short supply, and Another objective function 64 may be configured to maximize the quality of the product manufactured in the process 50. In general, the objective function is defined by the set point or range of the control variable CV and the limits of the auxiliary variable AV and the manipulated variable MV, using the cost or benefit associated with the movement of each of the control, auxiliary and manipulated variables. Determine the most optimal process operating point within an acceptable set of points. Of course, any desired objective function may be used instead of, or in addition to, those described herein, including an objective function that optimizes each of several concerns, such as raw material usage and profit margins.

ユーザまたはオペレータは、オペレータまたユーザの端末(図1のワークステーション13の1つなど)上で用いる目的関数64を提示することによって、ある目的関数64を選択してもよく、この選択は入力66を介して選択ブロック62に提供される。入力66に対して、選択ブロック62は選択された目的関数OFをオプティマイザ54に提供する。当然、ユーザまたはオペレータはプロセスの動作中に使用する目的関数を変更することができる。所望する場合は、ユーザが目的関数を提供または選択しない場合にデフォルト目的関数を用いてもよい。可能なデフォルト目的関数の1つを以下に詳しく説明する。図1のオペレータ端末13には、アドバンスド制御ブロック38の一部として示されてはいるが様々な目的関数が記憶されており、これらの目的関数の1つを、このアドバンスド制御ブロック38の作成中または生成中に該ブロックに提供してもよい。   The user or operator may select an objective function 64 by presenting an objective function 64 to be used on the operator or user's terminal (such as one of the workstations 13 of FIG. 1), the selection being made by input 66 Is provided to the selection block 62 via In response to input 66, selection block 62 provides the selected objective function OF to optimizer 54. Of course, the user or operator can change the objective function used during the operation of the process. If desired, a default objective function may be used if the user does not provide or select an objective function. One of the possible default objective functions is described in detail below. Although the operator terminal 13 in FIG. 1 stores various objective functions, which are shown as a part of the advanced control block 38, one of these objective functions is changed during the creation of the advanced control block 38. Alternatively, it may be provided to the block during generation.

目的関数OFに加えて、オプティマイザ54は入力として、1組の制御変数設定点(通常はプロセス50の制御変数CVのためにオペレータが特定した設定点で、オペレータまたは他のユーザによって変更可能)と、各制御変数CVに関連する範囲およびウエイトまたは優先順位とを受け取る。更にオプティマイザ54は、プロセス50の制御に用いられる、補助変数AVのための1組の範囲または制約限界および1組のウエイトまたは優先順位と操作変数MVのための1組の限界とを受け取る。オプティマイザ54はまた、1つまたは複数のプロセス変数と関連する、設定点、好ましい動作範囲、理想休止値、その他の限界を受け取ってもよい。一般的に、補助変数および操作変数の範囲は補助変数および操作変数の限界を定め(通常はプラントの物理的な特性に基づく)、制御変数の範囲は制御変数がプロセスをうまく制御するために動作できる範囲を提供する。制御変数、補助変数および操作変数のウエイトは、最適化プロセス中の制御変数、補助変数および操作変数の相互の相対的重要度を特定してもよく、状況によって、これらの変数と関連する制約または限界を侵害する必要がある場合は、オプティマイザ54が制御目標解を生成できるようにするために用いられてもよい。   In addition to the objective function OF, the optimizer 54 takes as inputs a set of control variable set points (usually an operator specified set point for the control variable CV of the process 50, which can be changed by the operator or another user). , And the range and weight or priority associated with each control variable CV. In addition, the optimizer 54 receives a set of range or constraint limits for the auxiliary variable AV and a set of weights or priorities and a set of limits for the manipulated variable MV used to control the process 50. Optimizer 54 may also receive set points, preferred operating ranges, ideal rest values, and other limits associated with one or more process variables. In general, the ranges of the auxiliary and manipulated variables define the limits of the auxiliary and manipulated variables (usually based on the physical characteristics of the plant), and the range of the control variables is used by the control variables to control the process well. Provide the range you can. The weights of the control, auxiliary and manipulated variables may specify the relative importance of the control, auxiliary and manipulated variables during the optimization process and, depending on the situation, the constraints or constraints associated with these variables. If a limit needs to be violated, it may be used to enable the optimizer 54 to generate a control target solution.

オプティマイザ54は、動作中、線形計画法(LP)技術を用いて最適化を行ってもよい。周知のように、線形計画法は目的関数と称される一定の追加関数を最大化または最小化する1組の線形等式および不等式を解くための数学的な技術である。上記のとおり、目的関数はコストや利益といった経済価値を表すこともあれば、経済目的の代わりに、またはこれに加えて他の目的を表すこともある。更に、以下に説明するが、目的関数は、CV、AV、MVの全てが事前に設定された限界内に入る解がない場合は、制約または限界の侵害に関連するコストまたはペナルティを含むよう調整し、許容される解を決定するためにこれを利用できるようにすることもある。   During operation, the optimizer 54 may perform optimization using linear programming (LP) techniques. As is well known, linear programming is a mathematical technique for solving a set of linear equations and inequalities that maximize or minimize certain additional functions, called objective functions. As described above, the objective function may represent an economic value such as cost or profit, or may represent other objectives instead of or in addition to the economic objective. In addition, as described below, the objective function is adjusted to include the cost or penalty associated with violating the constraint or limit if none of the CVs, AVs, and MVs fall within preset limits. And may make it available to determine acceptable solutions.

理解されるとおり、定常状態ゲイン行列は、操作変数および制御変数または補助変数の可能な各対のための定常状態ゲインを定める。言い換えると、定常状態ゲイン行列は、操作変数および外乱変数各々のユニット変化のための各制御変数および補助変数における定常状態ゲインを定める。この定常状態ゲイン行列は一般的にN×M行列であり、Nは制御変数および補助変数の数、Mはオプティマイザルーチンで用いられる操作変数の数である。一般的に、NはMより大きくても、等しくても、小さくてもよく、最も一般的なケースではNはMよりも大きい。   As will be appreciated, the steady state gain matrix defines the steady state gain for each possible pair of manipulated and control or auxiliary variables. In other words, the steady state gain matrix defines the steady state gain in each control variable and auxiliary variable for each unit change of the manipulated variable and disturbance variable. This steady state gain matrix is typically an N × M matrix, where N is the number of control and auxiliary variables, and M is the number of manipulated variables used in the optimizer routine. In general, N may be greater than, equal to, or less than M, and in the most general case N is greater than M.

周知のまたは標準的なLPアルゴリズムまたは技術を用いると、オプティマイザ54は一般に、選択された目的関数OFを最大化または最小化する1組の目標操作変数MVTを決定するよう(定常状態ゲイン行列から決定される)反復し、その結果可能な場合は、制御変数CV設定点範囲限界、補助変数AV制約限界、および操作変数MV限界内で、これを満たすまたは満たさないプロセス動作を行う。1つの実施形態では、オプティマイザ54は操作変数の変更を実際に決定し、予測定常状態の制御変数CVSSfil、補助変数AVSSfilおよび操作変数MVSSfilの表示を用いて、プロセス動作を現行の動作から変更させるよう決定する、つまり、目標または最適プロセス動作点に達するプロセス中にMPC制御ルーチンのダイナミック動作を決定する。このダイナミック動作は、現行の動作点から目標動作点への移行中にいかなる制約限界をも侵害しないことを確実にすることが望ましいため、重要である。 Using well-known or standard LP algorithm or technique, the optimizer 54 is generally from a set of to determine the target manipulated variables MV T (steady state gain matrix to maximize or minimize the objective function OF selected (Determined) iteratively, and if possible, perform process actions that meet or do not meet within the control variable CV setpoint range limits, auxiliary variable AV constraint limits, and manipulated variable MV limits. In one embodiment, the optimizer 54 actually determines the change of the manipulated variable and uses the display of the predicted steady state control variable CV SSfil , the auxiliary variable AV SSfil and the manipulated variable MV SSfil to change the process behavior from the current behavior. Determine to make a change, that is, determine the dynamic behavior of the MPC control routine during the process to reach the target or optimal process operating point. This dynamic operation is important because it is desirable to ensure that no constraint limits are violated during the transition from the current operating point to the target operating point.

ある実施形態において、LPオプティマイザ54は以下の形式の目的関数を最小化するよう設計されてもよい。   In some embodiments, LP optimizer 54 may be designed to minimize an objective function of the form

Figure 2004265381
Figure 2004265381

ここで、Q = 総コスト/利益、P = AVS、CVSと関連する利益ベクトル、C = MVSと関連するコストベクトル、A = ゲイン行列、ΔMV = MVSにおける変化を算出するためのベクトル、である。 Here, the vector for calculating Q = total cost / profit, P = AV S, benefits vectors associated with CV S, cost vector associated with the C = MV S, A = gain matrix, the change in .DELTA.MV = MV S ,.

利益値は一般に正数、コスト値は一般に負数で、目的に対する各々の影響を示す。この目的関数または他の目的関数を用いて、LPオプティマイザ54は、制御変数CVが目標設定点からの範囲内に収まり、補助変数AVが自身の上限および下限の制約内に収まり、操作変数MVが自身の上限および下限内に納まるようにしながら、目的関数を最小化する操作変数MVにおける変化を算出する。   The profit value is generally a positive number, and the cost value is generally a negative number, indicating each influence on the purpose. Using this or another objective function, the LP optimizer 54 determines that the control variable CV falls within the range from the target set point, the auxiliary variable AV falls within its own upper and lower bound constraints, and the manipulated variable MV The change in the manipulated variable MV that minimizes the objective function is calculated while keeping the value within the upper limit and the lower limit.

使用可能なある最適化プロシージャにおいて、操作変数の増分値は現時点(t)で用いられ、操作変数の増分の合計は、位置的な現在値ではなく予測水平線の端点で決定される制御変数および補助変数の増分値と併せて予測水平線に渡り用いられる。これはLPアプリケーションでは一般的である。当然、LPアルゴリズムはこのバリエーション用に適切な修正が加えられてもよい。いかなる場合でも、LPオプティマイザ54は定常状態モデルを用いてもよく、その結果、そのアプリケーデョンには一般的に定常状態が要求される。MPC設計で普段用いられる予測水平線により、自己規制プロセスのために未来定常状態が保証される。予測水平線をp、制御水平線をcとすると、増分形式で表されるm×nの入力・出力プロセスのための、可能な1つの予測プロセス定常状態の等式は次の通りである。   In one available optimization procedure, the manipulated variable increment is used at the current time (t), and the sum of the manipulated variable increments is determined by the control variable and an Used across the prediction horizon in conjunction with the variable increment. This is common in LP applications. Of course, the LP algorithm may be modified appropriately for this variation. In any case, the LP optimizer 54 may use a steady state model, so that the application generally requires a steady state. Predictive horizon commonly used in MPC design ensures future steady state for self-regulatory processes. Assuming that the prediction horizon is p and the control horizon is c, one possible prediction process steady state equation for an m × n input / output process expressed in incremental form is:

Figure 2004265381
Figure 2004265381

ベクトルΔMV(t+c)は、すべてのコントローラ出力mviによってもたらされる制御水平線に渡るの変化の合計を表すため、次のようになる。 The vector ΔMV (t + c) represents the total change over the control horizon caused by all controller outputs mv i , so that:

Figure 2004265381
Figure 2004265381

これらの変化は、操作変数MVおよび制御変数CVの双方に関する限界を満たすことが望ましく(ここで補助変数は制御変数として扱われる)、したがって次のようになる。   These changes desirably satisfy the limits for both the manipulated variable MV and the control variable CV (where the auxiliary variables are treated as control variables), and thus:

Figure 2004265381
Figure 2004265381

Figure 2004265381
Figure 2004265381

この場合、製品価値を最大化し原材料コストを最小化する目的関数は、次のように併せて定めることができる。   In this case, an objective function that maximizes product value and minimizes raw material costs can be determined together as follows.

Figure 2004265381
Figure 2004265381

ここで、UCVは制御変数CVプロセス値におけるユニット変更のためのコストベクトル、UMVは操作変数MVプロセス値におけるユニット変更のためのコストベクトルである。   Here, UCV is a cost vector for changing the unit in the control variable CV process value, and UMV is a cost vector for changing the unit in the operation variable MV process value.

上記の等式(1)を適用すると、目的関数は操作変数MVに関して次のように表すことができる。   Applying the above equation (1), the objective function can be expressed as follows with respect to the manipulated variable MV.

Figure 2004265381
Figure 2004265381

LPアルゴリズムは、最適な解を探索するために、等式(7)で定められる領域内の初期頂点のための目的関数を計算し、目的関数の最大値(最小値)を有する頂点が最適解であると該アルゴリズムが決定するまで、各ステップ毎に解を改善する。そして、決定された最適操作変数値は、制御水平線内で達成される目標操作変数MVTとしてコントローラに適用または提供される。 The LP algorithm calculates the objective function for the initial vertex in the area defined by equation (7) in order to search for the optimal solution, and the vertex having the maximum value (minimum value) of the objective function is determined as the optimal solution. Improve the solution at each step until the algorithm determines that The determined optimal manipulated variable values are applied or provided to the controller as the target manipulated variables MV T is achieved in the control horizon.

一般的に、作成された行列上でLPアルゴリズムを走行させた場合、3つの結果が想定できる。1つ目は、目標操作変数MVTのための独自の解が得られること。2つ目は、その解には境界がないこと。ただし、これは制御変数および補助変数各々に上限と下限がある場合には起こらない。3つ目は、プロセス変数の限界を満たす解がないこと。つまり、これはプロセス変数の境界または制約が厳しすぎることを意味する。3番目のケースに対処するためには、制約全体を緩和し、緩和した制約で再びオプティマイザを走行させて解を得てもよい。基本的に、操作変数の限界(上限/下限)をオプティマイザが変更することはできないことが前提となっているが、この前提が事実である必要はない。補助変数の制約または限界(上限/下限)にも同様の前提を用いることができる。しかし、オプティマイザは、制御変数CVの特定の設定点への走行(CV設定点制御)から、制御変数CVの設定点からの範囲またはこの周辺の範囲内のいかなる値への走行(CV範囲制御)へと変更することができる。この場合、制御変数の値は特定の設定点ではなくある範囲内に置かれる。自身の制約をを侵害する補助変数AVがいくつかあり、CV設定点制御からCV範囲制御へと移行しても解をもたらさない場合は、提供されたウエイトまたは優先順位の指定に基づいて補助変数の制約を緩和または無視することも可能である。ある実施形態において、解は、補助変数の平方エラーを最小化し、各々がその制約の侵害を許容すること、または優先順位が最も低い補助変数の制約を放棄すること、を順次行うことにより決定される。以下に更に詳述するが、限界を超えた解に対処する他の方法としては、事前に設定された限界または制約を侵害する各プロセス変数に関するコストまたはペナルティを評価するスラック変数またはペナルティ変数を含むよう目的関数を変更し、新たな目的関数でオプティマイザを再走行させる、および/または限界を超える1つまたは複数のプロセス変数に関する限界を再定義する方法、新たな限界内のプロセス変数に関するペナルティを含むよう目的関数を変更してこれらの変数を当初の限界に向かって走行させ、新たな目的関数でオプティマイザを再走行させてこれらの再定義された限界内で最適な解を探索する方法等がある。まずは、最初に目的関数を選択する方法について説明する。 In general, when the LP algorithm is run on the created matrix, three results can be assumed. First, the unique solution for the target manipulated variables MV T is obtained. Second, the solution has no boundaries. However, this does not occur when the control variable and the auxiliary variable each have an upper limit and a lower limit. Third, there is no solution that meets the limits of the process variables. In other words, this means that the boundaries or constraints of the process variables are too tight. To address the third case, the overall constraint may be relaxed and the optimizer run again with the relaxed constraint to obtain a solution. Basically, it is assumed that the limits (upper / lower) of the manipulated variables cannot be changed by the optimizer, but this assumption need not be true. Similar assumptions can be used for auxiliary variable constraints or limits (upper / lower). However, the optimizer may run from running to a specific setpoint of the control variable CV (CV setpoint control) to running to any value within or around the setpoint of the control variable CV (CV range control). Can be changed to In this case, the value of the control variable is not within a specific set point but within a certain range. If there are some auxiliary variables AV that violate your own constraints and the transition from CV set point control to CV range control does not result in a solution, the auxiliary variable based on the provided weight or priority specification Can be relaxed or ignored. In one embodiment, the solution is determined by sequentially minimizing the square error of the auxiliary variables, each allowing violation of that constraint, or abandoning the constraint of the lowest priority auxiliary variable. You. As will be described in more detail below, other methods of addressing out-of-bound solutions include slack or penalty variables that evaluate the cost or penalty for each process variable that violates preset limits or constraints. How to change the objective function and rerun the optimizer with the new objective function, and / or redefine the limits for one or more process variables that exceed the limits, including penalties for process variables within the new limits There is a way to change the objective function, run these variables towards the original limits, rerun the optimizer with the new objective function, and search for optimal solutions within these redefined limits . First, a method of selecting an objective function will be described.

上記のとおり、目的関数OFは制御ブロック生成プログラム40によるデフォルトによって選択または設定される。最適化する能力が提供されることが望ましいが、制御変数の設定点が、補助変数および操作変数の動作制約を監視するような方法で維持されることしか要求されない状況も多い。これらのアプリケーションについては、ブロック38は単なるMPC機能ブロックとして構成されてもよい。このような簡単な使用を可能にするために、デフォルト「動作」目的関数は、デフォルト補助変数AVウエイトと共に、様々な変数に割り当てられたデフォルトコストと共に自動的に作成されてもよい。これらのデフォルトは、補助変数AVまたは操作変数MVと等しい、または別の所定のコスト割当てをもたらす、補助変数AVおよび操作変数MVのあらゆるコストを設定してもよい。エキスパート・オプションが選択されたら、ユーザは追加の最適化選択を作成し、様々な目的関数64に関連するコストを定めてもよい。またエキスパート・ユーザは、デフォルト目的関数のデフォルト補助変数AVおよび制御変数CVウエイト、加えて制約限界または設定点範囲侵害コストを、修正することができる。これは、以下に詳述するが、オプティマイザが当初、実現可能な解を得られない場合に、オプティマイザによって使用されることができる。   As described above, the objective function OF is selected or set by default by the control block generation program 40. While it is desirable to provide the ability to optimize, there are many situations where the set point of the control variable only needs to be maintained in such a way as to monitor the operational constraints of the auxiliary and manipulated variables. For these applications, block 38 may be configured as a simple MPC function block. To enable such simple use, a default "action" objective function may be automatically created with default auxiliary variable AV weights, as well as default costs assigned to various variables. These defaults may set any costs for the auxiliary variable AV and the manipulated variable MV that are equal to the auxiliary variable AV or the manipulated variable MV, or that result in another predetermined cost assignment. Once the expert option is selected, the user may create additional optimization choices and define costs associated with various objective functions 64. Also, the expert user can modify the default auxiliary variable AV and control variable CV weights of the default objective function, as well as the constraint limits or setpoint range infringement costs. This can be used by the optimizer, as described in more detail below, if the optimizer does not initially obtain a feasible solution.

1つの実施形態において、例えばプロセス構成に関して経済的要素が定められていない場合、目的関数は、MPC構成から自動的に構成されてもよい。一般的に、目的関数は次の数式を用いて構成することができる。   In one embodiment, the objective function may be automatically configured from the MPC configuration, for example, if no economic factors are defined for the process configuration. In general, the objective function can be constructed using the following equation.

Figure 2004265381
Figure 2004265381

変数CjおよびPjは構成設定から定義できる。特に、制御変数CV設定点は下限(LL)または上限(HL)のみで定義されると仮定すると、Pj値は次のように定義できる。 Variables C j and P j can be defined from configuration settings. In particular, assuming that the control variable CV set point is defined only by the lower limit (LL) or the upper limit (HL), the P j value can be defined as follows.

設定点がLLで定義されるかまたは最小値が選択される場合、Pj=-1
設定点がHLで定義されるかまたは最大値が選択される場合、Pj=1
補助変数AVに関する構成情報が入力されないと仮定すると、補助変数AVについてはすべてPj=0である。同様に操作変数MVについても、Cj値は好ましい操作変数目標MVTが定義されるかどうかによって異なる。好ましい操作目標MVTが定義される場合は次のようになる。
P j = -1 if the set point is defined by LL or a minimum is chosen
P j = 1 if set point is defined by HL or maximum is chosen
Assuming that no configuration information about the auxiliary variable AV is input, P j = 0 for all auxiliary variables AV. Similarly, for the manipulated variable MV, the C j value differs depending on whether or not a desirable manipulated variable target MV T is defined. As it follows if the preferred operating target MV T is defined.

MVTがHLまたは最大値が選択される場合、Cj=1
MVTがLLまたは最小値が選択される場合、Cj=-1
MVTが定義されない場合、Cj=0
所望する場合は、オプティマイザ54をMPCコントローラ52と併せて使用する選択は調整可能であり、それによって最適化の度合いを提供することができる。この機能を実行するために、コントローラ52で用いられる操作変数MVの変更は、MPCコントローラ52とオプティマイザ54によって決定される操作変数MVの変更に様々なウエイトをかけることによって、行うことができる。このような操作変数MVのウエイトの組み合わせは、ここでは有効MV(MVeff)と称する。有効MVeffは次のように決定することができる。
If MV T is HL or maximum is chosen, C j = 1
If MV T is selected to be LL or minimum, C j = -1
If MV T is not defined, C j = 0
If desired, the choice of using optimizer 54 in conjunction with MPC controller 52 may be adjustable, thereby providing a degree of optimization. To execute this function, the operation variable MV used by the controller 52 can be changed by applying various weights to the change of the operation variable MV determined by the MPC controller 52 and the optimizer 54. Such a combination of the weights of the manipulated variable MV is referred to as an effective MV (MV eff ) here. The effective MV eff can be determined as follows.

Figure 2004265381
Figure 2004265381

Sは任意にまたは発見的に選択される。通常、Sは1より大きく10の範囲内の可能性が高い。ここで、α=1の場合、オプティマイザは発生点に設定された場合と同様に有効出力に寄与する。α=0の場合、コントローラはMPCダイナミック制御しか提供しない。当然、0から1までの間の範囲の場合は、オプティマイザおよびMPC制御に様々な寄与をもたらす。   S is arbitrarily or heuristically selected. Typically, S is likely to be greater than 1 and in the range of 10. Here, when α = 1, the optimizer contributes to the effective output as in the case where it is set to the generation point. If α = 0, the controller provides only MPC dynamic control. Of course, ranges between 0 and 1 make various contributions to the optimizer and MPC control.

上記のデフォルト目的関数は、オプティマイザの様々な可能な動作モードの最中に該オプティマイザの動作を確立するために用いてもよい。特に、制御変数CVの数が操作変数MVの数と一致する場合、デフォルトの設定に伴って予想される行動は、制御変数CV設定点は、補助変数AVおよび操作変数MVがその限界内に入るよう計画されている限りにおいて、維持できるということである。補助変数または操作変数は限界を超えることが予測される場合、制御変数作動設定点は、可能な場合はこれらの限界を侵害しないようその範囲内で変更することができる。この場合、オプティマイザ54が補助変数と操作変数の限界を満たす解を得られず、制御変数をその範囲内で維持したとすると、制御変数はその範囲内で維持され、補助変数および/または操作変数はその制約限界を逸脱することが許容される。最適な解を探索するために、限界を侵害するよう計画されたこれらの補助変数AVおよび操作変数MVは同等に扱われ、これらの平均限界逸脱は最小化される。この行動を達成するために、目的関数によって用いられるデフォルトコスト/利益は、逸脱が設定点を下回るよう範囲が定義されている場合は制御変数CVに1の利益が割り当てられるように、また逸脱が設定点を上回るよう範囲が定義されている場合は制御変数CVに-1の利益が割り当てられるように、自動的に設定されてもよい。限界内の補助変数AVには利益0が割り当てられ、操作変数MVにはコスト0が割り当てられてもよい。また、補助変数には利益1または-1が割り当てられ、操作変数にはコスト0.1が割り当てられてもよい。   The default objective function described above may be used to establish the optimizer's operation during various possible modes of operation of the optimizer. In particular, if the number of control variables CV matches the number of manipulated variables MV, the behavior expected with the default setting is that the control variable CV set point is such that the auxiliary variable AV and the manipulated variable MV fall within their limits. It can be maintained as long as it is planned. If the auxiliary or manipulated variable is expected to exceed the limits, the control variable actuation set point can be varied, if possible, within its limits so as not to violate these limits. In this case, if the optimizer 54 cannot obtain a solution that satisfies the limits of the auxiliary and manipulated variables and maintains the control variable within that range, the control variable is maintained within that range and the auxiliary and / or manipulated variable Is allowed to deviate from its constraint limits. To find the optimal solution, these auxiliary variables AV and manipulated variables MV that are designed to violate the bounds are treated equally, and their mean marginal deviation is minimized. To achieve this behavior, the default cost / benefit used by the objective function is such that the control variable CV is assigned a benefit of 1 if the range is defined such that the deviation is below the set point, and that the deviation is If the range is defined to exceed the set point, it may be automatically set so that a profit of -1 is assigned to the control variable CV. A profit 0 may be assigned to the auxiliary variable AV within the limit, and a cost 0 may be assigned to the manipulated variable MV. In addition, profit 1 or -1 may be assigned to the auxiliary variable, and cost 0.1 may be assigned to the manipulated variable.

制御変数CVの数が操作変数MVの数よりも少ない場合は、余分な自由度を用いて、構成された操作変数MVの最終休止地点と関連する要件を示すことができる。ここで、制御変数設定点(制御変数CV設定点が定義されている場合)は、補助変数および操作変数がその限界内に入るよう計画されている限りにおいて、維持できる。操作変数が、構成された最終休止位置から逸脱する平均値は最小化される。1つまたは複数の補助変数および操作変数がその限界を侵害すると予測される場合、制御変数作動設定点は、これらの限界が侵害されることがないよう、その範囲内で変更される。この条件において複数の解が存在する場合、制御に用いられる解は、構成された最終休止位置からの操作変数の逸脱の平均値が最小化される解となる。   If the number of control variables CV is less than the number of manipulated variables MV, the extra degrees of freedom can be used to indicate the requirements associated with the final pause of the configured manipulated variable MV. Here, the control variable set point (if the control variable CV set point is defined) can be maintained as long as the auxiliary and manipulated variables are planned to fall within their limits. The average value of the manipulated variables deviating from the configured final rest position is minimized. If one or more auxiliary and manipulated variables are predicted to violate its limits, the control variable actuation set point is changed within those limits so that these limits are not violated. If there are multiple solutions under this condition, the solution used for control will be the one that minimizes the average of the deviation of the manipulated variable from the configured final rest position.

正常な状態において、上記の方法でオプティマイザ54によって生成される目標設定点は許容可能な範囲内となり、操作変数、補助変数および制御変数は現在の限界または範囲内のまま維持される。しかし、制約限界内では補償できない程に外乱が深刻な場合は、侵害される制約もいくつか出てくる。その場合、オプティマイザ54は、上記の設定点緩和技術と併せてデフォルトまたは選択された目的関数を用いて実現可能な解(つまりいかなる制約または限界も侵害されない解)を得られない可能性がある。このような状況で最適化を提供するために可能な方法としては、いかなる最適化動作をも放棄し、優先順位の低い制約を外すこと等がある。   Under normal conditions, the target setpoints generated by the optimizer 54 in the above manner are within acceptable ranges, and the manipulated variables, auxiliary variables, and control variables are maintained within current limits or ranges. However, if the disturbance is so severe that it cannot be compensated within the constraints, some constraints will be violated. In that case, the optimizer 54 may not be able to obtain a feasible solution (ie a solution that does not violate any constraints or limits) using the default or selected objective function in conjunction with the setpoint mitigation techniques described above. Possible ways to provide optimization in such situations include abandoning any optimization operations and removing lower priority constraints.

最適化を放棄することは実現不可能な解に対処するための最も簡単かつ可能な方法ではあるが、これは制約を扱うための最適な方法ではない。その理由は、限界内に実現可能な解がない場合でも、多くの場合、最適化の目的を考慮に入れて制約の侵害を最小化することが可能だからである。さらに、優先順位の低い制約を外すことは究極の行動であり、これは優先順位の高い制約を満たすという点では役立つが、外された制約の限界からの制御されない乖離が過度に生じる可能性があるため、受け入れられないこともある。優先順位の低い制約を外すことに関するもう1つの問題として、解を得るために優先順位の低い制約をいくつ外さなければならないかを予測する必要がある。このような予測は、システム内で利用可能な自由度に基づくものであり、最適化プロシージャの前に算出するか、または該プロシージャ中に決定しなければならない。後者の場合、制約を順次外していき最適解を生成するプロセスを、解が得られるまで繰り返す必要が生じることもあり、このようなオープンエンドの反復プロセスは多くのリアルタイム最適化アプリケーションでは望ましいものではない。   Abandoning optimization is the easiest and possible way to deal with unfeasible solutions, but it is not the best way to handle constraints. The reason is that even if there are no feasible solutions within the bounds, it is often possible to minimize the violation of constraints, taking into account the goal of the optimization. In addition, removing lower-priority constraints is the ultimate action, which helps in meeting higher-priority constraints, but can unduly deviate from the limits of removed constraints. Because of this, it may not be acceptable. Another problem with removing lower-priority constraints is to predict how many lower-priority constraints must be removed to get a solution. Such predictions are based on the degrees of freedom available in the system and must be calculated before or determined during the optimization procedure. In the latter case, it may be necessary to repeat the process of sequentially removing constraints and generating an optimal solution until a solution is obtained, and such an open-ended iterative process is not desirable in many real-time optimization applications. Absent.

しかし、状況によっては、実現可能な解が存在しない目的関数が当初構成されている場合でも、変数の優先順位と制約侵害の大きさに応じて制約侵害の各々に関して目的関数内でペナルティを割り当て(一般的には目的関数内でスラック変数を用いると称される)、1つまたは複数のプロセス変数について制約限界を再定義し、再定義された限界を用いて該プロセス変数を前の限界に向かって進ませる一方、他のプロセス変数が当初の制約または限界から外れないよう目的関数を再定義することによって、またはこれら双方の技術を組み合わせることによって、許容できる解を得ることも可能であることが判明した。   However, in some situations, even if an objective function for which no feasible solution exists is initially configured, a penalty is assigned in the objective function for each constraint violation according to the priority of the variable and the magnitude of the constraint violation ( (Commonly referred to as using slack variables in the objective function), redefining the constraint limits for one or more process variables, and using the redefined limits to move the process variables to a previous limit. On the other hand, it may be possible to obtain an acceptable solution by redefining the objective function so that other process variables do not deviate from the original constraints or limits, or by combining both techniques. found.

より具体的には、実現不可能なオプティマイザの解はスラック変数という周知の概念を用いて対応することができる。この技術は、侵害される制約の優先順位および限界侵害の大きさのいずれか片方または両方に応じてペナルティを割り当てる。一般的に、従来技術では、コントローラ制約限界侵害が存在する場合の最適化においてスラック変数を用いるのが可能であると提示されているが、本発明者は、これを実施するための方法が具体的に開示されていないことを認識している。したがって、以下に述べる技術は、本発明者が、当初の目的関数を用いて生成された解に必然的に制約侵害が存在する場合に、スラック変数を用いてオプティマイザによって用いられる目的関数を再定義するために開発したものである。   More specifically, an unrealizable optimizer solution can be dealt with using a well-known concept of slack variables. This technique assigns a penalty according to one or both of the priority of the infringing constraint and the magnitude of the marginal infringement. In general, the prior art states that it is possible to use slack variables in optimization in the presence of controller constraint margin violations, but the present inventor has specified a method for implementing this. It is recognized that it is not publicly disclosed. Therefore, the technique described below allows the present inventor to redefine the objective function used by the optimizer using slack variables when there is necessarily a constraint violation in the solution generated using the original objective function. It was developed in order to

一般的に、スラック変数とは、予測プロセス変数が侵害される限界を(上方または下方に)超える値または程度と定義される。スラック変数を最小化するために(それによって限界侵害を最小化するために)、オプティマイザによって用いられる目的関数は、ゼロ以外のスラック変数値のペナルティを含めて再定義され、結果として、オプティマイザが、目的関数によって定められる経済的目的などの他の目的と併せて、スラック変数を最小化する解を探索する。この技術によれば、オプティマイザが実現不可能な解しか提供できないという状況になった場合でも、目的関数は、各プロセス変数(操作変数、補助変数または制御変数等)の限界侵害と関連する、または少なくとも事前に設定された限界を超えると計画された各プロセス変数と関連する、コストまたはペナルティを含めて再定義される。所望の場合は、目的関数が、関連する限界を侵害する各プロセス変数の各限界侵害から発生するコストまたはペナルティを定義するスラック変数を含むように、各プロセス変数に関して同一のまたは異なるペナルティを定義してもよい。再定義された目的関数内のスラック変数のコストまたはペナルティは、限界侵害の大きさおよび該限界侵害が発生するプロセス変数に応じて変化する。ユニットコストまたはペナルティは、例えば、優先順位の高いプロセス変数限界については高くなり、優先順位の低いプロセス変数限界については低くなる。いかなる場合でも、再定義された目的関数は、事前に定義された経済的要因(利益およびコスト)と1つまたは複数のプロセス変数のゼロでないスラック変数の存在と関連するコストまたはペナルティとの双方が存在する中で、再定義された目的関数を最小化(または最大化)することによって最適解を探索するために用いられる。   Generally, a slack variable is defined as a value or degree that exceeds (above or below) the limit at which a predicted process variable is violated. To minimize slack variables (and thereby minimize marginal violations), the objective function used by the optimizer is redefined to include a non-zero slack variable value penalty, so that the optimizer Search for a solution that minimizes slack variables, along with other objectives such as the economic objective defined by the objective function. According to this technique, even when the optimizer can provide only an unrealizable solution, the objective function is associated with a violation of the limit of each process variable (such as an operation variable, an auxiliary variable, or a control variable), or It is redefined, including the cost or penalty, associated with each process variable that is planned to exceed at least a preset limit. If desired, define the same or different penalties for each process variable so that the objective function includes a slack variable that defines the cost or penalty arising from each limit violation for each process variable that violates the associated limit. You may. The cost or penalty of the slack variable in the redefined objective function varies depending on the magnitude of the marginal violation and the process variable in which the marginal violation occurs. The unit cost or penalty is, for example, higher for higher priority process variable limits and lower for lower priority process variable limits. In any case, the redefined objective function will be based on both the predefined economic factors (benefits and costs) and the cost or penalty associated with the presence of a non-zero slack variable in one or more process variables. In existence, it is used to search for the optimal solution by minimizing (or maximizing) the redefined objective function.

より具体的には、線形計画法においてスラック変数ベクトルSmax・0およびSmin・0は次のように用いることができる。 More specifically, the slack variable vectors S max · 0 and S min · 0 can be used in the linear programming as follows.

Figure 2004265381
Figure 2004265381

Figure 2004265381
Figure 2004265381

ここで、AVはこれらの等式においてはCV項に含まれる(つまり、CV変数は制御変数が補助変数であるか否かにかかわらず全ての出力を含む)ことは理解されるであろう。線形計画法モデルにおいては等式(10)と(11)とに同等性が求められ、スラック変数SminおよびSmaxは、特定のアプリケーションの意味を持たない支持的な仮パラメータの役割しか果たさない。このアプリケーションにおいて、追加的なスラック変数S+およびS-は、スラックベクトル上の限界範囲を拡大するために用いられ、S+・0は上限増に用いられ、S-・0は下限減に用いられる。等式(10)および(11)は、次のように再定義されるか、または書き直されると効果的である。 Here, it will be appreciated that AV is included in the CV term in these equations (ie, the CV variable includes all outputs, regardless of whether the control variable is an auxiliary variable). Equations (10) and (11) require equality in linear programming models, and the slack variables S min and S max serve only as supporting formal parameters that have no meaning for a particular application . In this application, additional slack variables S + and S - are used to expand the limits on the slack vector, S + · 0 are used to increase the upper limit, S - · 0 are used to decrease the lower limit Can be Equations (10) and (11) are effective if redefined or rewritten as follows.

Figure 2004265381
Figure 2004265381

Figure 2004265381
Figure 2004265381

ここで、値S+およびS-は各々、予測されるプロセス変数が低制約の限界および高制約の限界を侵害する値である。この定義により、新たなスラック変数S+およびS-は、目的関数内でペナルティを課すファクタを定義し、範囲内でまたは範囲から最小限のオーバーランでLP解を得るために用いられる。一例として、目的関数は項PST -*S-およびPST +*S+を加えることによって拡張され、次のようになる。 Here, the values S + and S are the values at which the predicted process variables violate the low and high constraint limits, respectively. By this definition, a new slack variables S + and S - defines the factor penalize in the objective function, used to obtain the LP solution with minimal overrun from within or range range. As an example, the objective function term PS T - * S - is extended by adding and PS T + * S +, as follows.

Figure 2004265381
Figure 2004265381

ここで、PS-は下限を侵害するスラック変数ペナルティベクトル、PS+は上限を侵害するスラック変数ペナルティベクトルであり、またPS->>UCVおよびPS+>>UCV(符号>>は非常に大きいを意味する)である。 Where PS - is a slack variable penalty vector violating the lower bound, PS + is a slack variable penalty vector violating the upper bound, and PS - >> UCV and PS + >> UCV (sign >> is a very large Means).

次いで、新たに定義された目的関数は、新たに定義された目的関数を最小化することによって値S-およびS+に関連するコストによって定義されるようにこれらの値が最小になるようにして、目的関数の他の目的に関して限界のオーバーランを最適に減少させるという意味において最適な解を得るよう、標準的な方法で用いられてもよい。 Then, the objective function, which is newly defined, the value S by minimizing an objective function that is newly defined - as these values as defined by the costs associated with and S + is minimized , May be used in a standard way to obtain an optimal solution in the sense of optimally reducing the overrun of the limit with respect to other objectives of the objective function.

一般的に、スラック変数S-およびS+に関連するペナルティは、目的関数内でまたはこれに関連して最適化される経済的コストあるいは利益よりもはるかに高くなるべきである。したがって、ベクトルPS-およびPS+(これらは異なるスラック変数と関連するペナルティを定義する)は、目的関数内で用いられる経済的コスト/利益ベクトルよりもはるかに大きいあらゆる要素を有するべきである。一般的に、ベクトルPS-およびPS+の最小要素は、UCVベクトルの最大要素よりも数倍大きいと仮定することは合理的である。したがって、ここに述べるように、スラック変数は経済的コストや利益等と比較して、目的関数内で高いペナルティを課されるべきである。 In general, the penalty associated with the slack variables S - and S + should be much higher than the economic cost or benefit optimized within or in relation to the objective function. Thus, the vectors PS - and PS + (which define the penalties associated with the different slack variables) should have any elements much larger than the economic cost / benefit vector used in the objective function. In general, it is reasonable to assume that the smallest element of the vectors PS - and PS + is several times larger than the largest element of the UCV vector. Thus, as described herein, slack variables should be subject to high penalties in the objective function compared to economic costs, benefits, etc.

図5は、プロセス変数(関連する設定点なし)の制約侵害に対応するためのスラック変数の使用を図示する。特に、図5は、(1)点206で示すように、予測プロセス変数が事前に設定された制約限界(線202および204で定義)内にあるケース、(2)点208で示すように、予測プロセス変数が最大制約限界202を超えるケース、および(3)点210で示すように、予測プロセス変数が最低制約限界204を下回るケース、について、Smax(i)とSmin(i)の値を示す。第1のケース(点206に関連)では、高制約および低制約の限界は侵害されていないため、S+(i)とS-(i)の値はゼロである。この場合、目的関数内のプロセス変数にペナルティは与えられないか、または関連付けされない。しかし、第2のケース(点208で表示)では、点208が上限202を越えるため、S+(i)の値はゼロではない。太点線は、スラック変数S+(i)の値を示しており、この値には、目的関数内においてこのプロセス変数の上限侵害と関連するユニットコストが乗算される。同様に、第3のケース(点210で表示)では、点210が下限204を超えるためS-(i)の値はゼロではない。ここでの太点線は、スラック変数S-(i)の値を示しており、この値には、目的関数内においてこのプロセス変数の下限侵害と関連するユニットコストが乗算される。当然、図5は信号プロセス変数と関連する単一時間を示しており、再定義された目的関数は徐々に制御水平線まで制約侵害を最小化することは理解されるであろう。 FIG. 5 illustrates the use of slack variables to address constraint violations of process variables (without associated set points). In particular, FIG. 5 illustrates (1) the case where the predicted process variable is within preset constraint limits (defined by lines 202 and 204), as shown at point 206; The values of S max (i) and S min (i) for the case where the predicted process variable is below the maximum constraint limit 202 and the case where the predicted process variable is below the minimum constraint limit 204 as shown at (3) point 210. Is shown. In the first case (related to the point 206), since the limitations of high constraints and low constraints are not violated, S + (i) and S - the value of (i) is zero. In this case, no penalty is given or associated with the process variable in the objective function. However, in the second case (represented by point 208), the value of S + (i) is not zero because point 208 exceeds upper limit 202. The bold dashed line indicates the value of the slack variable S + (i), which is multiplied by the unit cost associated with violating the upper bound of this process variable in the objective function. Similarly, in the third case (indicated by point 210), S for the point 210 is greater than the lower limit 204 - the value of (i) is not zero. Thick dotted line here is slack variables S - indicates the values of (i), This value unit cost associated with the lower limit violation of the process variable is multiplied in the objective function. Of course, FIG. 5 shows a single time associated with a signal process variable, and it will be appreciated that the redefined objective function gradually minimizes constraint violations up to the control horizon.

オプティマイザは、上記のように拘束限界侵害を最小化するのに加えて(またはそれに代えて)、現実不可能な解を得た場合でも、または他の理由で設定点を最適化する場合でも、ペナルティを課されたスラック変数を用いて設定点最適化をもたらすこともできる。特に、ペナルティを課されたスラック変数は、実現不可能な解に応答して、または他の所望の理由により、事前に選択された設定点(例えばオペレータまたは他のソースによって提供された設定点)の周囲に定められた許容可能な範囲内で設定点を緩和させ、他のプロセス変数が自身と関連する限界を満たすよう、または満たす値に近づくようにするために、用られてもよい。設定点範囲には、高範囲(設定点が事前選択設定点より高い範囲内で逸脱できる)、低範囲(設定点が事前選択設定点より低い範囲内で逸脱できる)、または両方が含まれる。本技術で用いられる該設定点範囲は、片側でも両側でもよい。片側範囲は、事前選択設定点範囲外に逸脱するための目的関数内のペナルティを定めるが、設定点範囲内の設定点から逸脱するための目的関数内の経済的コストのみを提供する、最小化目的関数または最大化目的関数と関連してもよい。一方、両側範囲は通常、経済的目的は有しないが、範囲外で高いペナルティを課されたスラック変数を用いて拡大された好ましい範囲内で、事前選択設定点にできるだけ近い最適解を得るために用いられる。好ましい設定点範囲がゼロと等しい場合、この状況は、周囲にペナルティを課されたスラック変数を伴う設定点と実質的に等しい。   In addition to (or in lieu of) minimizing the bounds violation as described above, the optimizer may be able to obtain an unrealistic solution or optimize the setpoint for other reasons, Penalized slack variables can also be used to effect setpoint optimization. In particular, the penalized slack variable may be a pre-selected set point (eg, a set point provided by an operator or other source) in response to an unrealizable solution or for any other desired reason. May be used to relax the set point within an acceptable range defined around and to cause other process variables to meet or approach the limits that are associated with them. The set point range includes a high range (set points can deviate within a range above a preselected set point), a low range (set points can deviate within a range below a preselected set point), or both. The set point range used in the present technology may be one side or both sides. The one-sided range defines a penalty in the objective function to deviate outside the preselected setpoint range, but provides only the economic cost in the objective function to deviate from the setpoint within the setpoint range, minimization It may be associated with an objective function or a maximizing objective function. On the other hand, a two-sided range usually has no economic objective, but within the preferred range extended with slack variables that are penalized high outside the range, to obtain an optimal solution as close as possible to the preselected set point Used. If the preferred set point range is equal to zero, this situation is substantially equal to the set point with a slack variable penalized around.

図6および図7は各々、拡大範囲を伴うおよびこれを伴わない場合のスラック変数の使用を示す。図6において、点215は、線217および219によって画成される範囲内のプロセス変数の設定点を示す。線217および219で限られる範囲内の設定点からの逸脱に関連するスラック変数ペナルティはない。しかし、点221で示すようにプロセス変数が範囲の高範囲限界217を超える場合は、目的関数内におけるこの逸脱のペナルティを評価するために、上述した制約侵害の場合にスラック変数を用いるのと同様に、ペナルティを課されたスラック変数S+(i)が用いられる。同様に、点223で示すようにプロセス変数が低範囲限界219を超える場合は、目的関数内におけるこの逸脱のペナルティを評価するために、上述した制約侵害の場合にスラック変数を用いるのと同様に、ペナルティを課されたスラック変数S-(i)が用いられる。 6 and 7 respectively show the use of slack variables with and without the extension range. In FIG. 6, point 215 indicates the set point of the process variable within the range defined by lines 217 and 219. There is no slack variable penalty associated with departure from the set point within the limits defined by lines 217 and 219. However, if the process variable exceeds the high range limit 217 of the range, as shown by point 221, to evaluate the penalty for this deviation in the objective function, similar to using the slack variable in the case of the constraint violation described above The penalty slack variable S + (i) is used. Similarly, if the process variable exceeds the low range limit 219 as shown at point 223, the penalty for this deviation in the objective function can be evaluated in the same way as using the slack variable in the case of constraint violations described above. , slack variables S were penalized - (i) is used.

図7は、拡大範囲の状況におけるスラック変数の使用を示す。ここで、第1のスラック変数ペナルティは、第1の範囲内の設定点からの逸脱に関して評価され、高いペナルティを課されたスラック変数(高ペナルティを課されたコストを伴う)は第1の範囲外の設定点の可能な範囲を拡大するために用いられる。特に、点230は、予測プロセス変数が、事前選択設定点231より上だが線232および234によって画成される事前設定許容範囲内に位置する状況を示す。ここで、変数S(i)aboveは点230の事前設定設定点231からの逸脱に関連するペナルティを定めるために用いられる。点線で示すように、S(i)above変数の非ゼロ値は目的関数内でペナルティが課される。一方、点236は、設定点と関連する操作変数が事前設定高範囲の限界232をS+(i)値だけ越える場合の、高ペナルティを課されたスラック変数の使用を示す。ここで、大きい太点線は、S+(i)値が、目的関数内でS(i)above変数と比べてより高いペナルティを課され、それによって範囲限界232外の逸脱は、範囲限界232内での設定点231からの逸脱よりも、はるかに大きなペナルティが課されるようにすることを示している。 FIG. 7 illustrates the use of slack variables in the context of an extended range. Here, the first slack variable penalty is evaluated for deviations from the set point in the first range, and the high penalty slack variable (with the high penalty cost) is in the first range Used to extend the possible range of outside set points. In particular, point 230 illustrates the situation where the predicted process variable is above the pre-selected set point 231 but within the preset tolerance defined by lines 232 and 234. Here, the variable S (i) above is used to determine the penalty associated with the departure of point 230 from preset set point 231. As shown by the dotted line, non-zero values of the S (i) above variable are penalized in the objective function. Point 236, on the other hand, illustrates the use of a high penalized slack variable when the manipulated variable associated with the set point exceeds the preset high range limit 232 by an S + (i) value. Here, the large bold dashed line indicates that the S + (i) value is penalized higher in the objective function compared to the S (i) above variable, so that deviations outside the range limit 232 A far greater penalty than departure from set point 231 at.

同様に、点238は、予測プロセス変数が、事前選択設定点231より下だが線232および234によって画成される事前設定許容範囲内に位置する状況を示す。ここで、変数S(i)belowは点238の事前選択設定点231からの逸脱に関連するペナルティを定めるために用いられる。点線で示すように、S(i)below変数の非ゼロ値は目的関数内でペナルティが課される。さらに、点240は、設定点と関連するプロセス変数が事前設定低範囲の限界234をS-(i)値だけ越える場合の、高ペナルティを課されたスラック変数の使用を示す。ここで、大きい太点線は、S-(i)値が、目的関数内でS(i)below変数と比べてより高いペナルティを課され、それによって範囲限界234外の逸脱は、範囲限界234内での設定点231からの逸脱よりも、はるかに大きなペナルティが課されるようにすることを示している。 Similarly, point 238 illustrates a situation where the predicted process variable is below the preselected set point 231 but within a preset tolerance defined by lines 232 and 234. Here, the variable S (i) below is used to determine the penalty associated with the departure of point 238 from the preselected set point 231. As shown by the dotted line, non-zero values of the S (i) below variable are penalized in the objective function. Furthermore, the point 240, the process variables associated with setpoint limit 234 preset low range S - shows the use of a case, the slack variables imposed a high penalty in excess (i) value by. Here, large thick dotted line, S - (i) value, imposed a higher penalty than the S (i) below variable in the objective function, whereby the range limit 234 out of deviations, range limit 234 A far greater penalty than departure from set point 231 at.

両側範囲を有する設定点制御に関する等式は、次のように表すことができる。   The equation for set point control with a two-sided range can be expressed as:

Figure 2004265381
Figure 2004265381

Figure 2004265381
Figure 2004265381

Figure 2004265381
Figure 2004265381

ここで、SbelowおよびSaboveは設定点の下および上に位置する解のスラック変数のベクトルであり、項PSPT below*Sbelow+PSPT above*Saboveは目的関数に加算されるべきであり、ここで、PSPT belowは設定点より下に位置する解のユニットペナルティであり、PSPT aboveは設定点より上に位置する解のユニットペナルティである。目的関数は上記に定めるS-およびS+変数のスラック変数ペナルティをも含むことは理解されるであろう。 Where S below and S above are vectors of the slack variables of the solutions located below and above the set point, and the terms PSP T below * S below + PSP T above * S above should be added to the objective function Yes , where PSP T below is the unit penalty for solutions located below the set point, and PSP T above is the unit penalty for solutions located above the set point. The objective function S defined above - it would also comprise and slack variables penalties S + variables are understood.

ペナルティを課されたスラック変数を伴う制約に対応するためのこの技術は、実現不可能な状況への対応において著しいフレキシビリティをもたらす。特に、ペナルティを課されたスラック変数を適用することによって、オプティマイザは、解が事前選択限界または制約から外れる場合でも、目的関数によって定義される、全体的な制約侵害コストを最小化する最適解を常に探索することができる。しかし、プロセス変数出力の中には、ペナルティを課されたスラック変数で再定義されたオプティマイザを実行する前には限界内であったが、スラック変数を用いた解の結果、限界を超えるものもある。さらに、特定のプロセス変数に関して限界をオーバーランする量は、解を生成する前に量的に定義されるものではない。この2つの特徴は、多くのアプリケーションにおいて望ましいことではない。なぜなら、アプリケーションの中には、優先順位の高いプロセス変数を範囲内に入れるために当初範囲限界内にあった優先順位の低いプロセス変数を限界から外すといったことをしないよう求められるものもあるからだ。また、アプリケーションの中には、すべてのプロセス変数に関して十分に定義された解の限界が求められるものもある。これら2つの目的は、実現不可能な状況または解に応答して制約モデルを再定義することにより満たすことができる場合もある。   This technique for addressing constraints with penalized slack variables provides significant flexibility in dealing with unfeasible situations. In particular, by applying a penalized slack variable, the optimizer finds an optimal solution that minimizes the overall constraint violation cost, defined by the objective function, even if the solution falls outside the preselection bounds or constraints. You can always search. However, some of the process variable outputs were within limits before running the redefined optimizer with penalized slack variables, but exceeded the limits as a result of solutions using slack variables. is there. Furthermore, the amount by which the limit is overrun for a particular process variable is not quantitatively defined before generating a solution. These two features are not desirable in many applications. This is because some applications require that lower-priority process variables that were initially within the range limits be not out of bounds in order to bring higher-priority process variables into the range. Also, some applications require well-defined solution limits for all process variables. In some cases, these two objectives can be met by redefining the constraint model in response to unrealizable situations or solutions.

特に、厳しく定義された限界侵害の程度を履行するように実現不可能性に対応するために、制約モデル自体を再定義することもある。当然、この再定義は第1の最適化動作が行われ、ペナルティを課されたスラック変数が使用されず当初の限界内に解が存在しない場合、またはペナルティを課されたスラック変数が使用されたがペナルティが課されたスラック変数による解が受け入れられない場合、これに続いて実行される。一般的に、再定義された限界は、当初の限界およびいくらかの名目値を引いた当初の限界を侵害する予測プロセス変数(つまり制御変数CV)の値として設定される。これらの新たに定義された限界は、第2の最適化走行において、該新たに再定義された限界を侵害せずに目的関数を最小化または最大化する解を探索するために用いられる。この限界の再定義は、当初の限界を侵害するプロセス変数が悪化するのを防ぐと同時に、当初の事前設定限界を侵害しなかった他のプロセス変数が第2の最適化走行でこれを侵害するのを防ぐ。しかし、プロセス変数は、当初の限界内(プロセス変数の予測値が当初の限界を侵害しない場合)または新たに定義された限界内(プロセス変数の予測値が当初の限界を侵害する場合)で最適化が続けられ、限界侵害が存在する中で限られた最適解を提供する。   In particular, the constraint model itself may be redefined to address the infeasibility to fulfill a tightly defined degree of marginal infringement. Of course, this redefinition was the first optimization action, where the penalized slack variable was not used and there was no solution within the original bounds, or the penalized slack variable was used Is followed if the solution with the penalized slack variable is not acceptable. Generally, the redefined limit is set as the value of a predictive process variable (ie, control variable CV) that violates the original limit and the original limit minus some nominal value. These newly defined limits are used in a second optimization run to find a solution that minimizes or maximizes the objective function without violating the newly redefined limits. Redefining this limit prevents process variables that violate the original limit from deteriorating, while other process variables that did not violate the original preset limit violate it in the second optimization run To prevent However, the process variable is optimal within the original limits (if the predicted values of the process variables do not violate the original limits) or within the newly defined limits (if the predicted values of the process variables violate the original limits) And provide a limited optimal solution in the presence of marginal infringement.

この技術は、次のように制御変数CVについて数学的に定義することもできる。解がなく高限界CVHLを越える場合、CVの新限界は次のように定義される。 This technique can also be mathematically defined for the control variable CV as follows. If there is no solution and the high limit CV HL is exceeded, the new limit of CV is defined as:

CVHL' = CVprediction
CVLL' = CVHL-D
ここで、解が当初の限界と同一になるのを避けるには、D=1-3%である。
CV HL ' = CV prediction
CV LL ' = CV HL -D
Here, to avoid that the solution becomes the same as the original limit, D = 1-3%.

同様に、低限界CVLLを越える場合、新限界は次のように定義される。 Similarly, above the low limit CV LL , the new limit is defined as:

CVLL' = CVprediction
CVHL' = CVLL+D
当然、操作変数MVおよび補助変数AV等の他のプロセス変数についても同様の限界が定義できる。
CV LL ' = CV prediction
CV HL ' = CV LL + D
Of course, similar limits can be defined for other process variables, such as manipulated variable MV and auxiliary variable AV.

図8に、これらの新たに定義された限界の概要を示す。特に、当初の制約CVHLおよびCVLLは図8の左側に線250および252で示され、これらの制約を侵害する2つのCV予測値(当初の目的関数を用いたオプティマイザの第1のパスによって生成される)は点254および256で示されている。2組の再定義された限界CVHL'およびCVLL'は、線258と260、および線262と264の組で示されている。理解されるとおり、再定義された限界258と260との組は点254の新たな限界に対応し、上側は点254によって、下側は当初の限界250からデルタ関数を引いた地点で限られる。同様に、再定義された限界262と264との組は点256の新たな限界に対応し、上側は点256(最大の正側)によって、下側は当初限界252にデルタ関数を加えた地点(最小の正側)で、限られる。これらの新たな限界の組は、点254または256(いずれか適切な方)の新たな限界として目的関数内で用いられ、新たな目的関数はこれらの限界から外れた解を得ることは認められない。また、新たな限界260(点254の場合)または新たな限界262(点256の場合)と新たなCV値との距離に基づき、高ペナルティが課された係数が割り当てられ、目的関数においてこれを用いて、新たな限界を有する新CVを新たな下限260へ、または新たな上限262へ進ませてもよい。より特定的には、制約対応モデルまたは限界を再定義した後、範囲または限界を超えるすべてのCVに関するペナルティベクトルは、該CVを超過限界の方向に進ませるように再計算されてもよい。この目的を達成するために、限界侵害に対するペナルティは経済的評価をオーバーライドすべきであり、また新たな限界に関連するペナルティは高ペナルティを課された変数となるべきである。 FIG. 8 outlines these newly defined limits. In particular, the original constraints CV HL and CV LL are shown on the left side of FIG. 8 by lines 250 and 252, and two CV predictions that violate these constraints (by the first pass of the optimizer using the original objective function) Generated) are shown by points 254 and 256. The two sets of redefined limits CV HL ' and CV LL' are shown by the sets of lines 258 and 260 and lines 262 and 264. As can be seen, the redefined set of limits 258 and 260 corresponds to the new limit at point 254, limited by point 254 on the upper side and lower by the delta function from the original limit 250 on the lower side. . Similarly, the redefined set of limits 262 and 264 corresponds to the new limit of point 256, with the upper limit being point 256 (the most positive side) and the lower being the initial limit 252 plus the delta function. (Minimum positive side), limited. These new sets of limits are used in the objective function as new limits for points 254 or 256 (whichever is appropriate), and it is acknowledged that the new objective function will yield solutions outside these limits. Absent. Also, based on the distance between the new limit 260 (for point 254) or the new limit 262 (for point 256) and the new CV value, a high penalized coefficient is assigned and A new CV with a new limit may be used to advance to a new lower limit 260 or to a new upper limit 262. More specifically, after redefining the constraint correspondence model or limits, the penalty vectors for all CVs that exceed the range or limit may be recalculated to force the CVs toward the excess limit. To this end, the penalty for marginal infringement should override the economic valuation and the penalty associated with the new margin should be a highly penalized variable.

このように、限界を超えると予測される各プロセス変数(例えばCV)について、プロセス変数に領域を与えるために新たな限界が確立されるが、オプティマイザの第2のパスにあるプロセス変数を当初の限界へと進ませるために目的関数においてペナルティを課す方法が用いらる。これにより、いかなる限界(限界を超えるプロセス変数の場合は新たに定義された限界、また当初の限界を侵害しないプロセス変数の場合は当初の限界)をも侵害することなくプロセス変数を最適化する。しかし、この場合、限界(目的関数の第1のパス内で当初限界を侵害しなかったプロセス変数の当初限界、または目的関数の第1のパス内で当初限界を侵害したプロセス変数の再定義された限界)は限られ、オプティマイザはこれらの限界内で解を探索することができる。   Thus, for each process variable (e.g., CV) that is predicted to exceed the limit, a new limit is established to give the process variable space, but the process variable in the second pass of the optimizer is replaced by the original Penalties are used in the objective function to push to the limit. This optimizes the process variables without violating any limits (newly defined limits for process variables exceeding the limits, and initial limits for process variables that do not violate the original limits). However, in this case, the limit (the initial limit of a process variable that did not violate the initial limit in the first pass of the objective function, or the process variable that violated the initial limit in the first pass of the objective function is redefined) Are limited, and the optimizer can search for solutions within these limits.

再定義された限界および該限界に関するペナルティ係数を用いたLP目的関数の一般的な形式は次のように表される。   The general form of the LP objective function with the redefined limits and penalty factors for the limits is expressed as:

Figure 2004265381
Figure 2004265381

プロセス出力のコストがベクトルによって表される場合は、次のようになる。   If the cost of the process output is represented by a vector:

Figure 2004265381
Figure 2004265381

結果、ベクトルは次のようになる。   As a result, the vector becomes:

Figure 2004265381
Figure 2004265381

制約を優先順位に対応させるために、侵害された制約出力の追加のペナルティviは、プロセス変数(例えばCV)が上限を超える場合は負の値として定義し、プロセス変数が下限を超える場合は正の値として定義することができる。追加ペナルティviのコストベクトルへの寄与は、次のように表される。 In order to make the constraints correspond to priorities, the additional penalty for violating constraint outputs, v i, is defined as a negative value if the process variable (eg, CV) is above the upper limit, and a negative value if the process variable is above the lower limit. It can be defined as a positive value. Contribution to the cost vector of additional penalty v i is expressed as follows.

Figure 2004265381
Figure 2004265381

制約が経済的要素よりも優先順位に対応するために、このベクトルはあらゆる要素がベクトルCMTよりも大きくなければならない。したがって、次のようになる。 Constraints in order to respond to priority than economic factors, this vector is any element must be larger than the vector CM T. Thus:

Figure 2004265381
Figure 2004265381

ここで、riは再定義されたCVの優先順位/ランク数、rmaxは最低の優先順位/ランクに関する最大優先順位/ランク数、rminは最高の優先順位/ランクに関する最小優先順位/ランク数である。 Where r i is the priority / rank number of the redefined CV, r max is the maximum priority / rank number for the lowest priority / rank, and r min is the minimum priority / rank for the highest priority / rank. Is a number.

高予測|vi|を用いることによって、計算を簡単にすることができる。 The calculation can be simplified by using the high prediction | v i |.

Figure 2004265381
Figure 2004265381

実際的な目的においては、極めて低いプロセスゲインを計算から排除するために|aij|>.05と仮定する。事前設定限界または事前設定範囲を越えるすべてのプロセス変数(例えばCV)に関するvペナルティを計算した後で、ペナルティはプロセス変数の優先順位に応じて次のように調整してもよい。 For practical purposes, assume | a ij |> .05 to exclude very low process gains from the calculations. After calculating the v penalty for all process variables (eg, CVs) that exceed a preset limit or range, the penalties may be adjusted according to the priority of the process variables as follows.

Figure 2004265381
Figure 2004265381

各々の制約を超える特定のプロセス変数のコストを等式(23)に従って算出した後、すべての操作変数のあらゆる制約の総コストを等式(19)から算出してもよい。ペナルティを算出する手順は、制約を侵害するすべてのCVに対して、等式(22)
を適用し、優先順位の最も低い侵害された制約(ri最大値)から優先順位の最も高い侵害された制約へと順次適用すべきである。実際的な目的のためには、有効ペナルティベクトルは正規化してもよい。可能な正規化技術の1つとして、すべてのベクトル要素を最大要素で割り、100を掛ける方法がある。
After calculating the cost of a particular process variable that exceeds each constraint according to equation (23), the total cost of all constraints for all manipulated variables may be calculated from equation (19). The procedure for calculating the penalty is based on equation (22) for all CVs that violate the constraint.
Apply the should be applied sequentially from the lowest compromised precedence constraint (r i maximum value) to the highest compromised precedence constraint. For practical purposes, the effective penalty vector may be normalized. One possible normalization technique is to divide all vector elements by the largest element and multiply by 100.

所望する場合、制約対応の概念は上記の2つのアプローチを統合した状況、特にペナルティを課されたスラック変数とモデル再定義とを組み合わせた状況まで拡大することも可能である。この統合アプローチにおいて、制約侵害がない場合、またはペナルティを課されたスラック変数を用いて算出された最適解が受け入れられるものである場合は、ペナルティが課されたスラック変数のみが用いられる。しかし、制約が侵害されペナルティが課されたスラック変数による解が受け入れられないものである場合は、プロセス出力限界が再定義される。この場合、新たな出力限界は、図8に示すように、限界を侵害する予測プロセス出力に関する予測と等しくなる。しかし、当初の限界も、前述のスラック変数アプリケーションの場合と同様に、ペナルティを課されたスラック変数を定義するために依然として用いられる。   If desired, the concept of constraint correspondence can be extended to situations that combine the above two approaches, especially those that combine penalized slack variables and model redefinition. In this integrated approach, only penalized slack variables are used if there are no constraint violations, or if the optimal solution calculated using the penalized slack variables is acceptable. However, if the constraints violated and the penalized slack variable solution is unacceptable, the process output limits are redefined. In this case, the new power limit is equal to the prediction for the predicted process output that violates the limit, as shown in FIG. However, the original limits are still used to define penalized slack variables, as in the slack variable application described above.

図9は、スラック変数および限界再定義を統合した使用を示す。特に、点270は、線272および274で示される当初限界CVHLおよびCVLL内の予測プロセス変数つまりCVを示す。点276は上限CVHL272を侵害する予測プロセス変数つまりCVを示す。この場合、図8の限界再定義に関して既に概説したように、限界はCVHL'およびCVLL'として再定義される。また、スラック変数S' maxおよびS+(i)は、上記のようにスラック変数ペナルティを用いて当初限界の侵害に対するペナルティを評価するために使用される。同様に、点280は下限CVLL274を侵害する予測プロセス変数つまりCVを示す。この場合、図8の限界再定義に関して既に概説したように、限界はCVHL'およびCVLL'として再定義される。また、スラック変数S' minおよびS-(i)は、上記のようにスラック変数ペナルティを用いて当初限界の侵害に対するペナルティを評価するために使用される。 FIG. 9 shows the combined use of slack variables and limit redefinition. In particular, point 270 indicates the predicted process variable or CV within the initial limits CV HL and CV LL indicated by lines 272 and 274. Point 276 indicates a predicted process variable or CV that violates the upper bound CV HL 272. In this case, the limits are redefined as CV HL ' and CV LL', as outlined above with respect to the limit redefinition of FIG. Also, the slack variables S max and S + (i) are used to evaluate the penalty for infringing the initial margin using the slack variable penalty as described above. Similarly, point 280 indicates a predicted process variable or CV that violates the lower bound CV LL 274. In this case, the limits are redefined as CV HL ' and CV LL', as outlined above with respect to the limit redefinition of FIG. Also, the slack variables S min and S (i) are used to evaluate the penalty for infringing the initial margin using the slack variable penalty as described above.

この技術は次の等式を用いて表すことができる。   This technique can be represented using the following equation:

Figure 2004265381
Figure 2004265381

Figure 2004265381
Figure 2004265381

Figure 2004265381
Figure 2004265381

Figure 2004265381
Figure 2004265381

ここで、再定義された限界値CVLL'およびCVHL'は、オプティマイザが超えてはならない下限および上限である。該限界値は、当初限界よりも範囲の広い限界外のCV予測値または限界外の値として設定される。CV範囲制御および両側CV範囲制御のための統合等式も同様に作成することができる。また、片側制御のための統合等式は、等式(25)ないし(28)と同一である。両側範囲制御は次の等式によって実現することもできる。 Here, the redefined limit values CV LL ′ and CV HL ′ are lower and upper limits that the optimizer must not exceed. The limit value is set as an out-of-limit CV predicted value or an out-of-limit value that is wider than the initial limit. Integrated equations for CV range control and double sided CV range control can be created as well. Also, the integration equation for one-sided control is the same as equations (25) through (28). Bilateral range control can also be realized by the following equation:

Figure 2004265381
Figure 2004265381

これは等式(15)と同一である。   This is the same as equation (15).

理解されるとおり、この統合アプローチによって制約への対応はよりフレキシブルな方法で管理することが可能となる。現行では、入力はハードなまたは固定の定義された制約限界しか有していない。しかし該アプローチを用いることによって、いくつかの入力に関してハード制約に含まれるソフトな制約を定義することができる。ソフトな制約のためのペナルティを課されたスラック変数を取り入れることにより、MVのペナルティを課された範囲を容易に定めることができる。これらのソフトな範囲のための等式は次のように表すことができる。   As can be appreciated, this integrated approach allows constraint handling to be managed in a more flexible way. Currently, the inputs have only hard or fixed defined constraint limits. However, by using this approach, it is possible to define soft constraints that are included in the hard constraints for some inputs. By incorporating penalized slack variables for soft constraints, the MV penalized range can be easily defined. The equations for these soft ranges can be expressed as:

Figure 2004265381
Figure 2004265381

Figure 2004265381
Figure 2004265381

最後に、同様のアプローチを用いて、オプティマイザに、操作変数MV等のプロセス変数を好ましい入力値、つまりいわゆる「理想休止値」に進ませることもできる。このアプローチは図9に示されており、理想休止値は線290で表され、MV限界の上限および下限は各々線292および294で表されている。点296および298は、予測値が理想休止値290よりも上または下にある状況を示している。これらの場合、ペナルティを課されたスラック変数S(i)aboveおよびS(i)belowは、理想休止値からの逸脱に関連する目的関数内のコストまたはペナルティを定めるために用いられる。理想休止値を有するMVに関する等式は次のように表される。 Finally, a similar approach may be used to cause the optimizer to advance a process variable, such as the manipulated variable MV, to a preferred input value, the so-called "ideal rest value." This approach is illustrated in FIG. 9, where the ideal rest value is represented by line 290, and the upper and lower limits of the MV limit are represented by lines 292 and 294, respectively. Points 296 and 298 indicate situations where the predicted value is above or below the ideal pause value 290. In these cases, the penalized slack variables S (i) above and S (i) below are used to determine the cost or penalty in the objective function related to the deviation from the ideal rest value. The equation for the MV with the ideal rest value is expressed as:

Figure 2004265381
Figure 2004265381

Figure 2004265381
Figure 2004265381

Figure 2004265381
Figure 2004265381

理解されるように、ペナルティを課されたスラック変数S-、S+、Sbelow、Sabove等の構成要素、ユニットコストまたはペナルティは、変数の優先順位、変数のユニットコストおよび/または限界侵害の程度等の他の係数の関数として、目的関数内で設定または選択される。 As will be appreciated, the slack variables S imposed a penalty -, S +, S Below, components such as S Above, unit cost or penalty, priority variables, the unit cost and / or limit violations variables It is set or selected within the objective function as a function of other coefficients, such as degree.

これらの技術を用いたテストで、限界侵害は、高レベル外乱を適用することによって、または入力および出力に対して下限と上限が侵害されるようにこれらを設定することによって、達成された。これらのテストにより、該技術の有益性が確認された。特に、これらのテストの最中に、オプティマイザは適切かつ効果的に機能し、優先順位の低い制約の侵害を増やすことなく優先順位の高い制約の侵害を改善した。したがって、スラック変数およびモデル再定義を適用して実現不可能なLP解に対応することは、極めてフレキシブルで効果的なアプローチである。   In tests using these techniques, marginal violations have been achieved by applying high-level disturbances or by setting the lower and upper limits for inputs and outputs to be violated. These tests confirm the benefits of the technique. In particular, during these tests, the optimizer worked properly and effectively, improving the violation of higher priority constraints without increasing the violation of lower priority constraints. Therefore, applying slack variables and model redefinition to address unrealizable LP solutions is a very flexible and effective approach.

さらに、上述した制約対応の原則は、制約モデルの変更を複数作成してより特定的な要件を満たすよう用いることも可能である。同様に、このアプローチは、例えばガソリン配合最適化等のMPC制御を用いない他のリアルタイム最適化アプリケーションに用いることもできる。さらに、オプティマイザ54は上述の技術を用いて、1つまたは複数の実現可能な解がある状況において、範囲制御、理想休止値を実現することができる。したがって、オプティマイザ54は、これらの技術を、実現可能な解を得られない状況で目的関数を用いる際に、または1つまたは複数の実現可能な解を得ることが可能ではあるが設定点範囲内等で理想休止値へさらに最適化することを所望する状況で目的関数を用いる際に、最適化を図るために用いることができる。   Further, the above-described principle of handling constraints can be used to create a plurality of changes in the constraint model to satisfy more specific requirements. Similarly, this approach can be used for other real-time optimization applications that do not use MPC control, for example, gasoline blend optimization. Further, the optimizer 54 can use the techniques described above to achieve range control, ideal pause values in situations where there is one or more feasible solutions. Thus, the optimizer 54 may use these techniques when using the objective function in situations where a feasible solution cannot be obtained, or when it is possible to obtain one or more feasible solutions but within the setpoint range. For example, when the objective function is used in a situation where it is desired to further optimize to the ideal pause value, it can be used for optimization.

図2を再び参照すると、操作変数目標の組の解を決定した後、オプティマイザ54は1組の最適または目標操作変数MVTを目標変換ブロック55に提供し、該ブロックは定常状態ゲイン行列を用いて目標定常状態制御および目標操作変数MVTから得た操作変数を決定する。この変換は、コンピュータ的には直送式である。なぜなら、定常状態ゲイン行列は、操作変数と制御および補助変数との間の相互作用を定め、それにより、定義された目標(定常状態)操作変数MVTから、目標操作変数CVTおよび目標補助変数AVTを独自に決定するために用いることができるからである。 Referring again to FIG. 2, after determining the set of solutions of the manipulated variable target, the optimizer 54 provides a set of optimal or target manipulated variables MV T to the target conversion block 55, the block uses a steady-state gain matrix determining a manipulated variable obtained from the target steady state control and the target manipulated variables MV T Te. This conversion is computer-directed. Because the steady state gain matrix defines the interaction between the manipulated variables and the control and auxiliary variables, thereby defined goals (steady state) from the operating variables MV T, the target manipulated variables CV T and the target auxiliary variables This is because it can be used to determine AVT independently.

これが決定されると、少なくともサブセットの目標制御変数CVTおよび目標補助変数AVT、N個が、入力としてMPCコントローラ52へ提供され、上述のとおり、該コントローラはこれらの目標制御変数CVTおよび目標補助変数AVTを用いて、新たな1組の定常状態操作変数(制御水平線を超える)MVSSを決定する。該MVSSは、制御水平線の端点で現行の制御変数CVおよび操作変数AVを目標値CVTおよびAVTへと進ませる。当然、周知の通り、MPCコントローラは、これらの変数MVSSの定常状態値に達するまで段階的に操作変数を変更するものであり、この変数MVSSは理論上は、オプティマイザ54によって決定される目標操作変数MVTとなる。オプティマイザ54とMPCコントローラ52は、各プロセススキャン中、上述のとおり動作するため、操作変数の目標値MVTはスキャンの間に変更される場合もある。その結果、MPCコントローラは、特にノイズ、予期し得ない外乱、プロセス50の変更等がある場合は、実際にはこれらの目標操作変数MVTのいずれの特定の組にも一度も達しない場合がある。しかし、オプティマイザ54は常に、操作変数MVを最適解へ移動させるようコントローラ52を駆動している。 Once this is determined, at least a subset of the target control variables CV T and target auxiliary variables AV T , N are provided as inputs to the MPC controller 52, which, as described above, uses these target control variables CV T and target an auxiliary variable AV T, determines a new set of steady state manipulated variables (over control horizon) MV SS. The MV SS is to advance the current control variable CV and manipulated variables AV at the end point of the control horizon to a target value CV T and AV T. Naturally target, as is well known, MPC controller is for changing stepwise the manipulated variable to reach a steady state value of these variables MV SS, this variable MV SS is theoretically, as determined by the optimizer 54 the manipulated variables MV T. Optimizer 54 and MPC controller 52 during each process scan, for operation as described above, the target value MV T manipulated variable sometimes changed during the scan. As a result, MPC controller, particularly noise, unexpected Impossible disturbance, if there is change of process 50, may not actually reach even once to any particular set of these target manipulated variables MV T is there. However, the optimizer 54 always drives the controller 52 to move the manipulated variable MV to the optimal solution.

周知のとおり、MPCコントローラは52は制御予測プロセスモデル70を含み、これはN×(M+D)のステップ応答行列(Nは制御変数CVの数に補助変数AVの数を足したもの、Mは操作変数の数、Dは外乱変数DVの数)であってもよい。制御予測プロセスモデル70は、出力72上に、制御変数CVおよび補助変数AVの各々に関して事前に算出した予測を作成し、ベクトル加算器74は現行時間に関するこれらの予測値を実際に測定された制御変数CVおよび補助変数AVの値から差し引いて、入力76上にエラーベクトルまたは訂正ベクトルを作成する。   As is well known, the MPC controller 52 includes a control prediction process model 70, which comprises an N × (M + D) step response matrix (N is the number of control variables CV plus the number of auxiliary variables AV, M May be the number of manipulated variables, and D may be the number of disturbance variables DV. The control prediction process model 70 creates, on the output 72, a pre-calculated prediction for each of the control variable CV and the auxiliary variable AV, and the vector adder 74 compares these predictions for the current time to the actual measured control value. An error vector or correction vector is created on input 76 by subtracting from the values of variable CV and auxiliary variable AV.

次いで、制御予測プロセスモデル70は、N×(M+D)のステップ応答行列を用いて、制御予測プロセスモデル70の他の入力に対して提供された外乱変数および操作変数に基づき、制御水平線を超える制御変数CVおよび補助変数AVの各々について未来制御パラメータを予測する。制御予測プロセスモデル70はまた、制御変数および補助変数の予測定常状態値であるCVSSおよびAVSSを、入力処理/フィルタブロック58に提供する。 Next, the control prediction process model 70 uses the N × (M + D) step response matrix to form the control horizontal line based on the disturbance variables and the manipulated variables provided to the other inputs of the control prediction process model 70. A future control parameter is predicted for each of the control variables CV and the auxiliary variables AV that exceed. The control prediction process model 70 also provides the predicted steady state values of the control and auxiliary variables, CV SS and AV SS, to the input processing / filter block 58.

制御目標ブロック80は、提供されたN個の目標制御変数CVTおよび補助変数AVTの各々について、ブロック38のために事前に設定された軌跡フィルタ82を用いて目標変換ブロック55により制御目標ベクトルを決定する。特に、軌跡フィルタは、制御変数および補助変数が徐々に各自の目標値へと駆動されるような方法を定めるユニットベクトルを提供する。制御目標ブロック80は、このユニットベクトルおよび目標変数CVTとAVTを用いて、制御水平線期間によって定められる期間の経過における目標変数CVTおよびAVTに変化を定める制御変数および補助変数の各々について、ダイナミック制御目標ベクトルを作成する。続いて、ベクトル加算器84は、ダイナミック制御ベクトルから制御変数CVおよび補助変数AV各々の未来制御パラメータベクトルを差し引き、制御変数CVおよび補助変数AV各々のエラーベクトルを定める。制御変数CVおよび補助変数AV各々の未来エラーベクトルは、例えば最小平方エラー等を制御水平線を超えて最小化する操作変数MVステップを選択するために動作するMPCアルゴリズムに提供される。当然、MPCアルゴリズムまたはコントローラは、MPCコントローラに入力されるN個の制御変数および補助変数とMPCコントローラ52から出力されるM個の操作変数との関係から作成される、M×Mのプロセスモデルまたは制御行列をを用いる。 Control target block 80, the control target vector for each of the N target control variables CV T and the auxiliary variables AV T provided by the target conversion block 55 by using the trajectory filter 82 which is set in advance for the block 38 To determine. In particular, the trajectory filter provides a unit vector that defines how the control and auxiliary variables are gradually driven to their respective target values. Control target block 80, using the unit vector and the target variables CV T and AV T, for each of the control and auxiliary variables determining the change in the target variables CV T and AV T in the course of the period defined by the control horizon period , Create a dynamic control target vector. Subsequently, the vector adder 84 subtracts the future control parameter vector of each of the control variable CV and the auxiliary variable AV from the dynamic control vector to determine an error vector of each of the control variable CV and the auxiliary variable AV. The future error vector of each of the control variable CV and the auxiliary variable AV is provided to an MPC algorithm that operates to select an manipulated variable MV step that minimizes, for example, a minimum square error beyond the control horizon. Naturally, the MPC algorithm or controller is an M × M process model or a M × M process model created from the relationship between the N control variables and auxiliary variables input to the MPC controller and the M manipulated variables output from the MPC controller 52. Use the control matrix.

より特定的には、オプティマイザと共に機能するMPCアルゴリズムには、2つの主要目的がある。1つは、動作制約内で、最小のMVの動きでCV制御エラーを最小化しようとすること、もう1つは、オプティマイザによって設定される最適な定常状態MV値と、該最適な定常状態MV値から直接算出される目標CV値とを達成しようとすることである。   More specifically, the MPC algorithm that works with the optimizer has two main purposes. One is to try to minimize the CV control error with the minimum MV movement within the motion constraint, and the other is to find the optimal steady state MV value set by the optimizer and the optimal steady state MV value. The goal is to achieve the target CV value calculated directly from the value.

これらの目的を達成するための当初の制約のないMPCアルゴリズムは、最低平方解にMV目標値を含むよう拡大することができる。このMPCコントローラの目的関数は次のとおりである。   Initially unconstrained MPC algorithms to achieve these goals can be extended to include the MV target in the lowest squared solution. The objective function of this MPC controller is as follows.

Figure 2004265381
Figure 2004265381

ここで、CV(k)は、制御された出力pステップ先の予測ベクトル、R(k)は、pステップ先の参照軌跡(設定点)ベクトル、ΔMV(k)は、cステップ先の制御移動ベクトル、Γy=diag[Γy 1,・・・,Γy p]は、制御出力エラーのペナルティ行列、Γu=diag[Γu 1,・・・,Γu c]は、制御移動のペナルティ行列、pは、予測水平線(ステップ数)、cは、制御水平線(ステップ数)、Γoは、オプティマイザによって定義されるMVの目標最適変化に関連する、制御水平線を超えるコントローラ出力移動の合計のエラーのペナルティである。表示を簡潔にするために、目的関数は単一入力/単一出力(SISO)制御として示されている。 Here, CV (k) is a predicted vector that is p steps ahead of the controlled output, R (k) is a reference trajectory (set point) vector that is p steps ahead, and ΔMV (k) is a control movement that is c steps ahead. vector, Γ y = diag [Γ y 1, ···, Γ y p] is a penalty matrix of output error, Γ u = diag [Γ u 1, ···, Γ u c] is controlled movement Penalty matrix, p is the predicted horizon (number of steps), c is the control horizon (number of steps), Γ o is the sum of controller output movements beyond the control horizon, related to the target optimal change in MV defined by the optimizer Error penalty. For simplicity of presentation, the objective function is shown as a single input / single output (SISO) control.

理解されるように、最初の2つの項は制約のないMPCコントローラの目的関数であり、3番目の項はコントローラの出力移動の合計を最適目標と等しくするための追加条件を設定する。言い換えると、最初の2つの項はコントローラのダイナミック動作のための目的を設定し、3番目の項は定常状態の最適化目標を設定する。   As will be appreciated, the first two terms are the objective functions of the unconstrained MPC controller, and the third term sets additional conditions to make the total output movement of the controller equal to the optimal goal. In other words, the first two terms set the objectives for the dynamic operation of the controller, and the third term sets the steady state optimization goals.

制約のないMPCコントローラのための基本解と同様に、このコントローラの基本解は次のように表すことができる。   Like the basic solution for an unconstrained MPC controller, the basic solution for this controller can be expressed as:

Figure 2004265381
Figure 2004265381

ここで、ΔMV(k)は時間kにおけるMPCコントローラ出力の変化、Kampcは最適化されたMPCコントローラゲイン、Suはプロセスダイナミック行列である。Suは、SISOモデルについては寸法p×cのステップ応答から、多入力/多出力MIMOモデルについてはp*n×c*mのステップ応答から構築することができ、ここでmは操作入力、nは制御出力である。 Here, .DELTA.MV (k) is the change in MPC controller output at time k, K AmpC is optimized MPC controller gain is S u process dynamic matrix. S u can be constructed from the step response of dimension p × c for the SISO model and p * n × c * m for the multi-input / multi-output MIMO model, where m is the operation input, n is a control output.

最適化されたMPCに関して、ダイナミック行列は、SISOモデルについてはサイズ:(p+1)×mまで、MIMOモデルについてはサイズ:(p+m)*n×c*mまで拡大し、MVエラーに対応する。Ep+1(k)は、予測水平線を超えるCVエラーベクトルであり、コントローラ出力合計のエラーはMVの目標最適変化に関連して制御水平線を超えて移動する。行列Γは、行列ΓyおよびΓoを組み合わせたものであり、SISOコントローラについては寸法(p+1)の平方行列、多変数コントローラについては[n(p+m)]の平方行列である。上付きのTは転位行列を示す。 For the optimized MPC, the dynamic matrix expands to a size: (p + 1) × m for SISO models and (p + m) * n × c * m for MIMO models, resulting in MV errors. Corresponding. E p + 1 (k) is the CV error vector above the predicted horizon, and the error in the controller output sum moves over the control horizon in relation to the target optimal change in MV. The matrix Γ is a combination of the matrices Γ y and Γ o , and is a square matrix of size (p + 1) for a SISO controller and [n (p + m)] for a multivariable controller. The superscript T indicates a transposition matrix.

オプティマイザ54は、すべての制御変数CVおよび補助変数AVに基づいて最適化され、独自の最適動作点を定義する操作変数MVTの目標値の組を決定するため、MPCコントローラ52が制御行列内の制御変数CVと補助変数AVのサブセットのみを用いて動作し、そこから実際に操作変数MV出力が作成されても問題ないと決定されている。その理由は、コントローラ52が選択された制御変数CVおよび補助変数AVのサブセットをこれらに関連する目標値へ進めた場合、制御変数および補助変数の完全な組の他の部分も、それらの目標値に位置するからだ。その結果、M×Mの制御行列を有する平方(M×M)MPCコントローラは、矩形(N×M)プロセスモデルを用いるオプティマイザと共に用いられて、プロセス最適化を実行する。これにより、標準的なMPC制御技術は、非平方行列を近似値に反転することなく、またはコントローラ内におけるこのような変換技術に伴うリスクを負うことなく、標準最適化技術と共に用いられることが可能となる。 The optimizer 54 is optimized based on all of the control and auxiliary variables CV and AV, the manipulated variables MV T to define their own optimal operating point for determining a set of target values, MPC controller 52 in the control matrix It is determined that the operation is performed using only a subset of the control variable CV and the auxiliary variable AV, and that there is no problem even if the output of the manipulated variable MV is actually generated therefrom. The reason is that if the controller 52 advances a subset of the selected control variables CV and auxiliary variables AV to their associated target values, the other parts of the complete set of control and auxiliary variables will also have their target values Because it is located in. As a result, a square (M × M) MPC controller with an M × M control matrix is used with an optimizer using a rectangular (N × M) process model to perform process optimization. This allows standard MPC control techniques to be used with standard optimization techniques without inverting the non-square matrix to an approximation or without taking the risks associated with such transformation techniques in the controller. It becomes.

1つの実施形態において、MPCコントローラが平方されている、つまり操作変数AVの数が制御変数CVの数と等しい場合、操作変数MVの目標値はCV値を次のように変更することによって効果的に実現することができる。   In one embodiment, if the MPC controller is squared, i.e., the number of manipulated variables AV is equal to the number of control variables CV, then the target value of manipulated variable MV is effective by changing the CV value as follows: Can be realized.

Figure 2004265381
Figure 2004265381

ここで、ΔMVTはMVの最適目標値の変化、ΔCVは最適MVに達するためのCVの変化である。当然、CVの変化はCV設定点を管理することにより実行される。   Here, ΔMVT is a change in the optimum target value of the MV, and ΔCV is a change in the CV to reach the optimum MV. Of course, the change in CV is performed by managing the CV set point.

オプティマイザ54は動作において、各スキャンごとにMPC非制約コントローラの定常状態目標値を設定し、これを更新する。したがって、MPCコントローラ52は非制約アルゴリズムを実行する。目標値CVTおよびAVTは、制約を明らかにするよう設定されているので、実現可能な解が存在する限りコントローラが制約限界内で機能する。したがって、最適化はMPCコントローラと一体化されている。 In operation, the optimizer 54 sets and updates the steady state target value of the MPC unconstrained controller for each scan. Therefore, MPC controller 52 executes an unconstrained algorithm. The target values CV T and AV T are set to account for the constraints, so that the controller works within the constraint limits as long as a feasible solution exists. Therefore, the optimization is integrated with the MPC controller.

図3および図4は、統合されたモデル予測制御および最適化を行うために用いられるステップを説明するフローチャート90である。フローチャート90は、概して2つのセクション、90a(図3)および90b(図4)に分割されており、プロセス動作以前に発生する機能(90a)およびプロセス動作中、例えばプロセス動作の各スキャン毎に発生する機能(90b)を示している。プロセス動作に先立ち、オペレータまたはエンジニアは、統合された制御MPCコントローラおよびオプティマイザを含むアドバンスド制御ブロック38を作成するために複数のステップを行う。特に、ブロック92では、アドバンスド制御ブロック38として使用するためにアドバンスド制御テンプレートを選択してもよい。該テンプレートは、ユーザインタフェース13上の構成アプリケーション内のライブラリに記憶され、そこから複製されてもよく、また、特定のMPC、プロセスモデルおよび定常状態ゲイン/制御行列および特定の目的関数を持たずにMPCコントローラルーチン52およびオプティマイザ54の総合的な算術および論理機能を含んでもよい。このアドバンスド制御テンプレートは他のブロックを有するモジュールに設けられてもよく、該他のブロックとしては、例えば、プロセス50内で他の装置と通信するよう構成される入力および出力ブロック等、およびPID、ニューラルネットワーク、およびファジー論理制御ブロックを含む制御ブロック等の他の種類のブロック等がある。1つの実施形態では、モジュール内の各ブロックは、ブロック間で通信を行うよう相互に接続された入力および出力を有する目的由来プログラミング・パラダイム内の目的であることは、理解されるであろう。動作中、該モジュールを走行させるプロセッサは、ブロックへの入力を用いて異なる時点で各ブロックを順次実行して該ブロックの出力を作成する。そして、これらは、ブロック間の特定の通信リンクによって定められるように、他のブロックの入力に提供される。   FIGS. 3 and 4 are flowcharts 90 illustrating the steps used to perform integrated model predictive control and optimization. Flowchart 90 is generally divided into two sections, 90a (FIG. 3) and 90b (FIG. 4), with functions occurring before the process operation (90a) and during the process operation, eg, for each scan of the process operation. (90b). Prior to process operation, an operator or engineer performs multiple steps to create an advanced control block 38 that includes an integrated control MPC controller and optimizer. In particular, at block 92, an advanced control template may be selected for use as advanced control block 38. The template may be stored in a library in a configuration application on the user interface 13 and replicated therefrom, and without having a particular MPC, process model and steady state gain / control matrix and a particular objective function. It may include the overall arithmetic and logic functions of MPC controller routine 52 and optimizer 54. The advanced control template may be provided in a module having other blocks, such as, for example, input and output blocks configured to communicate with other devices in the process 50, and PID, There are other types of blocks, such as neural networks and control blocks, including fuzzy logic control blocks. It will be appreciated that, in one embodiment, each block in the module is a purpose in a purpose-based programming paradigm having inputs and outputs interconnected to communicate between the blocks. In operation, the processor running the module executes each block sequentially at different times using the input to the block to produce the output of the block. These are then provided to the inputs of other blocks, as defined by the particular communication link between the blocks.

オペレータは、ブロック94で、ブロック38で用いられる特定の操作変数、制御変数、制約変数および外乱変数を定義する。所望する場合は、図1のプログラム40などの構成プログラムにおいて、ユーザは制御テンプレートを目視し、記名され構成される入力および出力を選択し、構成環境内の任意の標準ブラウザを用いてブラウズして制御システム内の実際の入力および出力を探索し、これらの実際の制御変数を制御テンプレート用の入力および出力制御変数として選択してもよい。   The operator defines the specific manipulated, control, constraint, and disturbance variables used in block 38 at block 94. If desired, in a configuration program such as program 40 of FIG. 1, the user views the control template, selects the named inputs and outputs, and browses using any standard browser in the configuration environment. The actual inputs and outputs in the control system may be searched and these actual control variables may be selected as input and output control variables for the control template.

ユーザは、アドバンスド制御機能ブロックへの入力および出力を選択したら、制御変数と関連する設定点、制御変数、補助変数および操作変数と関連する範囲または限界、および制御変数、補助変数および操作変数の各々と関連するウエイトを定義してもよい。当然、制約限界または範囲等、これらの情報の一部は、既にこれらの変数と関連付けられていることもある。なぜなら、これらの変数はプロセス制御システム構成環境内で選択または探索されるからである。オペレータは、所望する場合は図3のブロック96で、操作変数、制御変数および補助変数の各々に関するユニットコストおよび/または利益を特定することによりオプティマイザ内で用いられる1つまたは複数の目的関数を構成してもよい。当然、オペレータはこの時点で、上述のようにデフォルト目的関数の使用を選択してもよい。さらに、ユーザは、制御変数、補助変数および操作変数の各々について、各スラック変数またはペナルティ変数、S+、S-、Sabove、Sbelow等に関連するコストまたはペナルティを特定してもよい。ユーザは、所望する場合、当初の制約限界によって定義される実現不可能な解をオプティマイザが扱うまたは対処するための、例えばスラック変数の使用、制約限界の再定義またはこの2つの何らかの組み合わせ等の、特定の方法を指定してもよい。 Once the user has selected the inputs and outputs to the advanced control function block, the set points associated with the control variables, the ranges or limits associated with the control variables, auxiliary variables and manipulated variables, and each of the control variables, auxiliary variables and manipulated variables May be defined. Of course, some of this information, such as constraint limits or ranges, may already be associated with these variables. Because these variables are selected or searched for in the process control system configuration environment. The operator configures one or more objective functions to be used within the optimizer by specifying unit costs and / or benefits for each of the manipulated, control, and auxiliary variables, if desired, at block 96 of FIG. May be. Of course, at this point the operator may choose to use the default objective function as described above. Further, the user control variable for each of the auxiliary variables and manipulated variables, each slack variable or penalty variable, S +, S -, S above, may identify the cost or penalty associated with S Below the like. The user may, if desired, cause the optimizer to handle or address unrealizable solutions defined by the original constraint limits, such as using slack variables, redefining the constraint limits, or some combination of the two. A specific method may be specified.

入力(制御変数、補助変数および外乱変数)および出力(操作変数)が記名され、アドバンスド制御テンプレートに連結され、ウエイト、限界および設定点がそれらに関連付けられると、図3のブロック98で、アドバンスド制御テンプレートは、制御に使用される機能ブロックとしてプロセス内で選択されたコントローラにダウンロードされる。該制御ブロックの基本的な性質および該制御ブロックの構成方法は、"Integrated Advanced Control Blocks in Process Control System(プロセス制御システムにおける統合されたアドバンスド制御ブロック)"という名称の米国特許第6,445,963号に記載されている。該特許は本発明の譲受人に譲渡され、本明細書内に引用され明示的に援用される。該特許は、プロセス制御システム内でのMPCコントローラ作成の性質について述べたものであり、オプティマイザがそのコントローラに接続される方法については述べていないが、コントローラを接続し構成するための基本的なステップは、引用特許に記載されているものだけでなく、本明細書の制御ブロック38に関するここに記載されるあらゆる論理要素を含むテンプレートと共に、本明細書に述べる制御ブロック38に使用できることは理解されるであろう。   Once the inputs (control variables, auxiliary variables and disturbance variables) and outputs (manipulated variables) are named and linked to the advanced control template and their weights, limits and set points are associated with them, the advanced control in block 98 of FIG. The template is downloaded to the controller selected in the process as a functional block used for control. The basic nature of the control block and the manner in which the control block is constructed is described in US Pat. No. 6,445,963 entitled "Integrated Advanced Control Blocks in Process Control System". ing. The patent is assigned to the assignee of the present invention and is hereby expressly incorporated by reference. The patent describes the nature of creating an MPC controller in a process control system and does not describe how the optimizer is connected to that controller, but does not describe the basic steps for connecting and configuring the controller. It is understood that can be used in the control block 38 described herein, together with a template that includes any of the logic elements described herein with respect to the control block 38 herein, as well as those described in the cited patents. Will.

いかなる場合においても、オペレータは、アドバンスド制御テンプレートがコントローラにダウンロードされた後、ブロック100で、制御テンプレートのテストフェーズを実行させMPCコントローラアルゴリズム内で使用されるステップ応答行列およびプロセスモデルを選択してもよい。前述の特許に記載されている通り、テストフェーズ中に、アドバンスド制御ブロック38内の制御論理は一連の擬似ランダム波形を操作変数としてプロセスに提供し、制御変数および補助変数(MPCコントローラにより本質的には制御変数として扱われる)の変化を監視する。所望する場合、操作変数および外乱変数ならびに制御変数および補助変数は、図1のヒストリアン12によって収集されてもよく、またオペレータは、ヒストリアン12からこのデータを取得しこのデータについて任意の方法でトレンディングを行いステップ応答の行列を取得または決定するための構成プログラム40(図1)を設定してもよい。該各ステップ応答は、操作変数および制御変数の1つ(かつ唯一)におけるユニット変更に対する制御変数または補助変数の1つの時間内の応答を特定するものである。該ユニット変更は一般的にはステップ変更だが、インパルス変更またはランプ(ramped)変更等の他の種類の変更でもよい。一方、所望する場合、制御ブロック38は、擬似ランダム波形をプロセス50に適用する際に収集されたデータに応答してステップ応答行列を生成し、これらの波形を、アドバンスド制御ブロック38を作成しインストールするオペレータまたはユーザによって使用されるオペレータインターフェース13に提供してもよい。   In any case, after the advanced control template has been downloaded to the controller, the operator may execute a test phase of the control template at block 100 to select a step response matrix and a process model to be used in the MPC controller algorithm. Good. As described in the aforementioned patent, during the test phase, the control logic in the advanced control block 38 provides the process with a series of pseudo-random waveforms as manipulated variables, and the control and auxiliary variables (essentially by the MPC controller). Are treated as control variables). If desired, the manipulated and disturbance variables and the control and auxiliary variables may be collected by the historian 12 of FIG. 1, and the operator may obtain this data from the historian 12 and in any manner operate on this data. A configuration program 40 (FIG. 1) for performing trending and acquiring or determining a matrix of step responses may be set. Each step response specifies the response in time of one of the control or auxiliary variables to a unit change in one (and only) of the manipulated and control variables. The unit change is typically a step change, but may be another type of change, such as an impulse change or a ramped change. On the other hand, if desired, the control block 38 generates step response matrices in response to the data collected in applying the pseudo-random waveforms to the process 50, and creates and installs these waveforms in the advanced control block 38. May be provided to the operator interface 13 used by the operator or user to perform the operation.

ステップ応答行列が作成されたら、制御変数および補助変数の数が操作変数の数を上回る場合は、ステップ応答行列を用いて、MPCアルゴリズム内で使用される制御変数および補助変数のサブセットを、MPCコントローラ52内で反転され使用されるM×Mのプロセスモデルまたは制御行列として選択する。この選択プロセスは、オペレータによって手動で行われてもよく、また例えばステップ応答行列にアクセスできるユーザインターフェース13内でルーチンによって自動的に行われてもよい。一般的に、単一の制御変数および補助変数は、単一の補助変数と最も密接に関連するものとして特定される。したがって、単一かつ特異(つまり異なる)の制御変数または補助変数(プロセスコントローラへの入力)は、異なる各操作変数(プロセスコントローラの出力)と関連し、それによってMPCアルゴリズムはM×Mのステップ応答の組から作成されるプロセスモデルに基づくことができる。   Once the step response matrix has been created, if the number of control and auxiliary variables exceeds the number of manipulated variables, use the step response matrix to convert a subset of the control and auxiliary variables used in the MPC Select as an M × M process model or control matrix to be inverted and used in 52. This selection process may be performed manually by an operator or automatically by a routine within a user interface 13 that has access to a step response matrix, for example. In general, a single control variable and auxiliary variable will be identified as being most closely related to the single auxiliary variable. Thus, a single and singular (ie different) control or auxiliary variable (input to the process controller) is associated with each different manipulated variable (output of the process controller), which causes the MPC algorithm to have an M × M step response. Can be based on a process model created from the set of

対を成すために発見的アプローチを取る1つの実施形態において、自動ルーチンまたはオペレータは制御変数および補助変数のM個の組(Mは操作変数の数と等しい)を選択する。これは、特定の1つの操作変数におけるユニット変更に対する最大ゲインおよび最速応答時間の組み合わせを持つ単一の制御変数または補助変数を選択し、これらの2つの変数を対にするためである。当然、場合によっては、特定の制御変数または補助変数が複数の操作変数に対して大きなゲインと速い応答時間を有することもある。ここで、該制御変数または補助変数が関連する任意の操作変数と対を成すようにしてもよく、実際は、最大ゲインおよび最速応答時間を生成しない操作変数と対にしてもよい。なぜなら、総計すれば、結果的に、ゲインが少なくなるまたは応答時間が遅くなる操作変数は他の制御変数または補助変数に許容可能な程度の影響を与えないことがあるからだ。したがって、一方が操作変数でもう一方が制御変数または補助変数の対は、全体としては、操作変数に対して最も応答性のある制御変数を表す制御変数および補助変数のサブセットと操作変数を対にするために選択される。さらに、すべての制御変数がM個の制御および補助変数のサブセットの1つとして選択されなくても問題はなく、したがって、MPCコントローラはすべての制御変数を入力として受け取るわけではない。なぜなら、制御変数および補助変数の目標値の組は、非選択制御変数(および非選択補助変数)が自身の設定点にあるかまたは定められた動作範囲内にあるプロセスの動作点を表すために、オプティマイザによって選択されるからだ。   In one embodiment, which takes a heuristic approach to pairing, an automated routine or operator selects M sets of control and auxiliary variables, where M equals the number of manipulated variables. This is to select a single control or auxiliary variable with a combination of maximum gain and fastest response time for a unit change in one particular manipulated variable and to pair these two variables. Of course, in some cases, a particular control or auxiliary variable may have a large gain and a fast response time for multiple manipulated variables. Here, the control variable or the auxiliary variable may be paired with any related operation variable, and may be actually paired with an operation variable that does not generate the maximum gain and the fastest response time. In aggregate, manipulated variables that result in lower gain or slower response times may not have an acceptable effect on other control or auxiliary variables. Therefore, a pair of control variables and auxiliary variables, one of which is the manipulated variable and the other, is a pair of the control and auxiliary variables representing the control variable that is most responsive to the manipulated variable and the manipulated variable. To be selected. Further, it is ok that not all control variables are selected as one of a subset of the M control and auxiliary variables, so the MPC controller does not receive all control variables as inputs. The set of target values for the control and auxiliary variables is used to represent the operating point of the process where the unselected control variables (and the unselected auxiliary variables) are at their set points or within a defined operating range. Because it is chosen by the optimizer.

当然、一方には数十更には数百もの制御変数および補助変数があり、もう一方には数十または数百もの操作変数があるため、少なくとも視覚的な観点から、様々な操作変数の各々に最適に応答する制御変数および補助変数の組を選択するのは難しいと考えられる。この問題を解決するために、オペレータインターフェース13内のアドバンスド制御ブロック生成ルーチン40は、1組のスクリーン表示を含むか、またはこれをユーザあるいはオペレータに提示し、オペレータが、動作中にMPCコントローラ52によって用いられる制御変数および補助変数のサブセットとして使用されるべき制御変数および補助変数を適切に選択できるように補助するか、あるいはこれを可能にするようにしてもよい。   Of course, one has dozens and even hundreds of control and auxiliary variables, and the other has dozens or hundreds of manipulated variables, so at least from a visual point of view, It may be difficult to select a set of control and auxiliary variables that respond optimally. To solve this problem, the advanced control block generation routine 40 in the operator interface 13 includes or presents a set of screen displays to the user or operator, which the operator can use during operation by the MPC controller 52. The control and auxiliary variables to be used as a subset of the control and auxiliary variables used may be assisted or enabled to make a suitable choice.

したがって、オペレータは、図3のブロック120でスクリーンを提示され、特定のまたは選択された1つの操作変数に対する各制御変数および補助変数の応答を目視できるようになっていてもよい。オペレータは、操作変数を通して一度に1つスクロールし、様々な操作変数の各々に対する各制御変数および補助変数のステップ応答を目視してもよく、またこのプロセス中に、該操作変数に対して最適に応答する1つの制御変数または補助変数を選択してもよい。オペレータは通常、操作変数に対して最高の定常状態ゲインと最速応答時間との最適な組み合わせを有する制御変数または操作変数を選択しようとする。   Accordingly, the operator may be presented with a screen at block 120 of FIG. 3 to allow the operator to view the response of each control and auxiliary variable to a particular or selected one operating variable. The operator may scroll one at a time through the manipulated variables, view the step response of each control variable and auxiliary variable for each of the various manipulated variables, and optimize the One control or auxiliary variable to respond to may be selected. Operators typically seek to select a control or manipulated variable that has the best combination of highest steady state gain and fastest response time for the manipulated variable.

理解されるように、このようなディスプレイスクリーンは、MPC制御アルゴリズムの入力として用いられるM個の制御変数および補助変数のサブセットをオペレータが目視して選択できるようにするものであり、これらの変数が大量にある場合には特に役立つ。当然、ブロック74で決定された制御変数および制約変数の組は、何らかの事前に設定された基準または選択ルーチンに基づいて自動的または電子的に選択されてもよい。該選択ルーチンは、制御変数および補助変数に関するステップ応答から決定されるゲイン応答および時間の遅延の組み合わせに基づいて、使用する入力変数を選択してもよい。   As will be appreciated, such a display screen allows the operator to visually select a subset of the M control and auxiliary variables used as inputs to the MPC control algorithm, and these variables are This is especially helpful if you have large quantities. Of course, the set of control and constraint variables determined in block 74 may be automatically or electronically selected based on some preset criteria or selection routine. The selection routine may select an input variable to use based on a combination of gain response and time delay determined from a step response for the control and auxiliary variables.

別の実施形態においては、自動選択プロセスは、まず、行列の条件数に基づいて入力/出力行列を選択することにより、制御行列を決定してもよい。例えば、条件数をある所望の程度まで最小化し、制御行列から制御構成を作成してもよい。   In another embodiment, the automatic selection process may determine the control matrix by first selecting an input / output matrix based on the condition number of the matrix. For example, the condition number may be minimized to some desired degree and a control configuration may be created from the control matrix.

この例では、プロセスゲイン行列Aに関して、行列ATAの条件数は行列制御可能性のテストを行って決定されてもよい。一般的に、条件数が小さければ制御可能性が高いことを意味し、条件数が大きければ制御可能性が低くダイナミック制御動作中の制御ステップまたは移動が多いことを意味する。制御可能性の許容程度を定める厳密な基準はないため、条件数は、様々な潜在的条件行列の相対比較として、また悪条件の行列のテストとして用いることもできる。周知の通り、悪条件の行列の条件数は無限に近づく。数学的には、悪条件は、共直線プロセス変数の場合、つまり制御行列における共直線の行または列によって発生する。したがって、条件数および制御可能性に影響を与える主な要因は、行列の行と列との相互関連性である。制御行列内で入力・出力変数を慎重に選択すれば、条件に関する問題を減らすことができる。実際的には、制御行列の条件数が500以上の場合は懸念すべきである。このような行列の場合、コントローラの操作変数の移動が著しく過剰になる。 In this example, for the process gain matrix A, the condition number of the matrix A T A may be determined by performing a matrix controllability test. In general, a small condition number means a high controllability, and a large condition number means a low controllability and a large number of control steps or movements during the dynamic control operation. Since there is no exact criterion for the degree of controllability tolerance, the condition number can also be used as a relative comparison of various potential condition matrices and as a test for ill-conditioned matrices. As is well known, the condition number of an ill-conditioned matrix approaches infinity. Mathematically, bad conditions arise in the case of collinear process variables, i.e., by collinear rows or columns in the control matrix. Thus, the main factor affecting condition number and controllability is the interrelationship between rows and columns of the matrix. Careful selection of input and output variables in the control matrix can reduce conditional issues. Practically, if the condition number of the control matrix is 500 or more, you should be concerned. In the case of such a matrix, the movement of the manipulated variable of the controller is significantly excessive.

上述の通り、制御行列がダイナミック制御の問題を解決する一方、LPオプティマイザは定常状態最適化問題を解決し、MPCコントローラブロックが同数でないMV(AVを含む)およびCVを有する場合でも、制御行列は平方入力・出力行列を有する必要がある。コントローラを生成するために用いる制御行列の入力と出力の選択を始めるために、通常は利用可能なすべてのMVが制御出力として含有または選択される。出力(MV)が選択されたら、ダイナミック制御行列の一部を成すプロセス出力変数(つまりCVとAV)を、悪条件でない平方制御行列を作成するような方法で選択しなければならない。   As mentioned above, while the control matrix solves the problem of dynamic control, the LP optimizer solves the steady-state optimization problem, and even if the MPC controller blocks have unequal numbers of MVs (including AV) and CVs, the control matrix is Must have a square input / output matrix. To start selecting the inputs and outputs of the control matrix used to generate the controller, all available MVs are usually included or selected as control outputs. Once the output (MV) has been selected, the process output variables (ie, CV and AV) that form part of the dynamic control matrix must be selected in such a way as to create a square control matrix that is not ill-conditioned.

ここでは、制御行列内での入力としてのCVおよびAVを自動的にまたは手動で選択する1つの方法を述べるが、他の方法を用いてもよいことは理解される。   Here, one method for automatically or manually selecting CV and AV as inputs in the control matrix is described, but it is understood that other methods may be used.

ステップ1−可能な場合はCVの数がMVの数(つまりコントローラ出力の数)と等しくなるまでCVを選択する。MVよりもCVの方が多い場合、CVは、優先順位、ゲインまたはフェーズ応答、ユーザ入力等、所望の基準に基づいて任意の順序で選択してよい。CVの可能な総数がMVの数と等しい場合は、ステップ4に進み、結果的に得られる平方制御行列条件数が許容できるかどうかをテストする。CVの数がMVの数よりも少ない場合、AVはステップ2に記載するように選択される。定義されるCVがない場合は、MVに関して最大のゲインを有するAVを選択し、ステップ2へ進む。   Step 1—If possible, select CVs until the number of CVs equals the number of MVs (ie, the number of controller outputs). If there are more CVs than MVs, the CVs may be selected in any order based on desired criteria, such as priority, gain or phase response, user input, etc. If the total number of possible CVs is equal to the number of MVs, proceed to step 4 and test whether the resulting square control matrix condition number is acceptable. If the number of CVs is less than the number of MVs, the AV is selected as described in step 2. If there is no CV to be defined, select the AV with the largest gain for the MV and go to step 2.

ステップ2−先に選択されたCVおよびAVによって定義される既に選択された制御行列に追加された、可能性のある全てのAVの条件数を1つずつ算出する。理解されるように、選択されたCVによって定義される行列には、選択されたCVおよびAVの各々について行が含まれ、先に選択された各MVに対する該CVまたはAVの定常状態ゲインが定義される。   Step 2—Calculate one by one the condition numbers of all possible AVs added to the already selected control matrix defined by the previously selected CV and AV. As will be appreciated, the matrix defined by the selected CV includes a row for each of the selected CV and AV, defining the steady state gain of that CV or AV for each previously selected MV. Is done.

ステップ3−ステップ2で決定され、結果として得られる行列の条件数が最小になるAVを選択し、該行列を、先の行列に選択されたAVが追加されたものとして定義する。この時点で、MVの数が、選択されたCVの数に選択されたAVを加えた数と等しい場合(つまりこの時点で行列が平方になった場合)は、ステップ4に進む。そうでなければステップ2に戻る。   An AV determined in Step 3-Step 2 and having the minimum condition number of the resulting matrix is selected, and the matrix is defined as the selected matrix added with the selected AV. At this point, if the number of MVs is equal to the number of selected CVs plus the selected AVs (ie, if the matrix is now squared), go to step 4. Otherwise, return to step 2.

ステップ4−作成された平方制御行列Acの条件数を算出する。所望する場合は、行列Ac TAcの代わりに行列Acの条件数算出を用いてもよい。なぜなら、これらの異なる行列の条件数は他の平方根として関連しているからだ。 Step calculated 4- condition number of created square control matrix A c. If desired, it may be used condition number calculation of the matrix A c, instead of the matrix A c T A c. Because the condition numbers of these different matrices are related as other square roots.

ステップ5−ステップ4で算出された条件数が受け入れられる場合、すべてのCVおよび選択されたAVにMVを関連付ける。これは特定のMVに関して最大のゲインを有するCVまたはAVを選択することにより、対を成す処理が完了するまで行う。この時点で選択プロセスは完了する。ただし、条件数が最低許容条件数を超える場合は、制御行列に追加された最後のAV/CVを除去し、ステップ6のラップアラウンド・プロシージャを行う。   If the condition number calculated in step 5 to step 4 is accepted, associate the MV with all CVs and the selected AV. This is done by selecting the CV or AV that has the largest gain for a particular MV until the paired process is completed. At this point, the selection process is complete. However, when the condition number exceeds the minimum allowable condition number, the last AV / CV added to the control matrix is removed, and the wraparound procedure of step 6 is performed.

ステップ6−選択された各MVについて、一度に1つずつラップアラウンド・プロシージャを行い、各ラップアラウンド・プロシージャの結果もたらされる行列の条件数を算出する。本質的に、ラップアラウンド・プロシージャは、除去されたAV(またはCV)の代わりに異なるMV各々の一単位応答を交互に配置することによって行われる。一単位応答は、行列の行のある位置では一単位でありそれ以外の位置ではゼロである。要するに、この場合、特定のMVは各々、好条件の平方制御行列を形成するAVの代わりに、入力および出力として用いられる。一例として、4×4行列の場合、1000、0100、0010、および0001の組み合わせが、ゲイン行列Acの除去されたAVラインの行に配置される。 Step 6-Perform a wrap-around procedure, one at a time, on each selected MV and calculate the condition number of the resulting matrix for each wrap-around procedure. In essence, the wrap-around procedure is performed by interleaving one-unit responses for each different MV in place of the removed AV (or CV). The one-unit response is one unit at some positions in the rows of the matrix and zero at other positions. In short, in this case, the particular MVs are used as inputs and outputs, respectively, instead of the AVs forming a well-conditioned square control matrix. As an example, for a 4 × 4 matrix, 1000,0100,0010, and combinations 0001 are arranged in rows of the removed AV line gain matrix A c.

ステップ7−各MVについてラップアラウンド・プロシージャを行ったら、条件数が最小になる組み合わせを選択する。何ら改善されない場合は、当初の行列を維持する。この時点で、MV自身の制御に用いられるMV(つまりラップアラウンドされたMV)を除いた特定のMVに関連して最大のゲインを有するCVまたはAVを選択し、選択したすべてのCVおよびAVとMVとを関連付ける。   Step 7-After performing the wrap-around procedure for each MV, select the combination that minimizes the condition number. If there is no improvement, keep the original matrix. At this point, select the CV or AV that has the largest gain in relation to the particular MV except the MV used to control the MV itself (ie, the wrap-around MV), and select all the selected CVs and AVs. Associate with MV.

当然、このプローシージャによって定義された制御行列およびその結果の条件数はユーザに提供されてもよく、ユーザはコントローラの生成において該定義された制御行列の使用を受け入れても、拒絶してもよい。   Of course, the control matrix defined by this procedure and the resulting condition number may be provided to the user, who may accept or reject the use of the defined control matrix in the creation of the controller. .

上述した自動プロシージャでは、制御可能性の改善を目的としてMV自身を制御する(つまりラップアラウンドされる)ために選択されたのは、1つのMVのみであった。手動のプロシージャでは、ラップアラウンドされるMVの数は任意でよい。MV自身を制御するために選択されるMVは、コントローラ構成において該当する出力変数選択がないことから明らかである。また、MVの数がCVの総数にAVを加えた数よりも多い場合は、制御のためのラップアラウンドとしてより多くのMVを用いることができる。このように、最終的には平方制御行列が各MVを出力として有するコントローラに提供される。ラップアラウンドを行ってこれを用いるプロセスは、制御行列のために選択されるCVおよびAVの数がコントローラによって制御されるMVの数よりも少ない場合があることを意味し、この差は、制御行列に入力されたMVのラップアラウンドの数であるということが理解されるであろう。また、このラップアラウンド・プロシージャはCVとAVを足した数がMVの数よりも少ないプロセスで用いることができる。   In the automatic procedure described above, only one MV was selected to control (ie, wrap around) the MV itself for the purpose of improving controllability. In a manual procedure, the number of wraparound MVs may be arbitrary. The MV selected to control the MV itself is clear from the absence of a corresponding output variable selection in the controller configuration. If the number of MVs is larger than the total number of CVs plus AVs, more MVs can be used as wraparound for control. Thus, a square control matrix is ultimately provided to the controller having each MV as an output. The process of doing wrap around and using this means that the number of CVs and AVs selected for the control matrix may be less than the number of MVs controlled by the controller, the difference being It will be appreciated that this is the number of MV wraparounds input to This wraparound procedure can be used in a process in which the number of CVs and AVs is smaller than the number of MVs.

当然、条件数は定常状態ゲインを用いて上述の通り算出され、それによって制御行列は本質的に定常状態での制御可能性を定義する。プロセスダイナミックス(デッドタイム、ラグ等)およびモデルの不確実性もまた、ダイナミック制御可能性に影響を与える。この影響はプロセス変数(例えば制御変数および補助変数)の優先順位を変えることによって考慮することができ、ダイナミック制御に与える影響に基づいて制御行列に含まれることを命じてもよい。   Of course, the condition number is calculated as described above using the steady state gain, whereby the control matrix essentially defines the controllability in the steady state. Process dynamics (dead time, lag, etc.) and model uncertainties also affect dynamic controllability. This effect can be taken into account by changing the priority of the process variables (eg, control and auxiliary variables) and may be ordered to be included in the control matrix based on the effect on dynamic control.

定常状態およびダイナミック制御可能性の双方の改善を目的として、他の発見的プロシージャを用いることも可能である。このようなプローシージャは通常、制御行列を作成するいくつかのフェーズで適用される複数の発見的基準(相反するものが含まれる場合もある)を有し、これによって制御行列に何らかの改善をもたらす適切な制御入力の組を選択する。このような発見的プロシージャの1つにおいて、CVおよびMVは最高のゲイン関係に基づいてAVによってグループ分けされる。そして、MVのグルーピング各々について、最速ダイナミックおよび有意のゲインを伴う1つのプロセス出力を選択する。この選択プロセスは、信頼性間隔を考慮しAVよりもCVを優先してもよい(他がすべて等しい場合は)。次いで、プロセスモデル生成ルーチンは、MPC制御の生成中に各グループから選択するパラメータを用いる。各MVについて単一のパラメータしか選択されないため、応答マトリックスは平方であり、反転することが可能である。   Other heuristic procedures can be used to improve both steady state and dynamic controllability. Such a procedure typically has multiple (and possibly conflicting) heuristics that are applied in several phases of creating the control matrix, thereby providing some improvement in the control matrix. Select an appropriate set of control inputs. In one such heuristic procedure, CVs and MVs are grouped by AV based on the highest gain relationship. Then, for each MV grouping, select one process output with the fastest dynamic and significant gain. This selection process may prioritize CV over AV (if everything else is equal) given the reliability interval. The process model generation routine then uses the parameters selected from each group during generation of the MPC control. Since only a single parameter is selected for each MV, the response matrix is square and can be inverted.

いかなる場合でも、MPCコントローラに入力するM個(またはそれ未満)の制御変数および補助変数のサブセットが選択されたら、図3のブロック124は、決定された平方制御行列から図2のMPC制御アルゴリズムで用いるプロセスモデルまたはコントローラを生成する。周知の通り、このコントローラ生成ステップはコンピュータ集約プロシージャである。次いでブロック126は、このMPCプロセスモデル(固有的に制御行列を含む)またはコントローラを、また必要に応じてステップ応答および定常状態応答ゲイン行列を、制御ブロック38にダウンロードし、このデータは動作のために制御ブロック38に組み込まれる。この時点で、該制御ブロック38はプロセス50内でのオンライン動作の用意ができている。   In any case, once a subset of the M (or less) control and auxiliary variables to input to the MPC controller has been selected, block 124 of FIG. 3 uses the MPC control algorithm of FIG. Generate a process model or controller to use. As is well known, this controller generation step is a computer intensive procedure. Block 126 then downloads the MPC process model (which inherently includes the control matrix) or controller and, if necessary, the step response and steady state response gain matrices to control block 38, which data is used for operation. Is incorporated in the control block 38. At this point, the control block 38 is ready for online operation within the process 50.

所望する場合、プロセスステップ応答はこれらのステップ応答を生成したものとは別の方法で再構成または提供されてもよい。例えば、ステップ応答はシステム内に記憶される異なるモジュールから複製し、操作変数または外乱変数に対する特定の制御変数または補助変数のステップ応答を特定してもよい。さらに、ユーザは、定常安定ゲイン、応答時間、第1オーダーの時間制約および平方エラー等の、ステップ応答に関するパラメータを定義または特定してもよい。また所望する場合、ユーザは、異なるゲインまたは時間制約等、異なるパラメータを指定することによってステップ応答のプロパティを目視し変更してもよい。ユーザが異なるゲインまたは他のパラメータを指定した場合、ステップ応答モデルは、該新たなパラメータまたはパラメータの組を含んで数学的に再生成することができる。この動作は、ユーザがステップ応答のパラメータを知っており、生成されたステップ応答がこれらのパラメータを満たすように、またはこれらに合うように変更する必要がある場合に役立つ。   If desired, the process step responses may be reconstructed or provided in other ways than those that generated these step responses. For example, the step response may be duplicated from a different module stored in the system to specify the step response of a particular control or auxiliary variable to a manipulated or disturbance variable. In addition, the user may define or specify parameters for the step response, such as steady state gain, response time, first order time constraints and squared error. Also, if desired, the user may view and change the properties of the step response by specifying different parameters, such as different gains or time constraints. If the user specifies a different gain or other parameter, the step response model can be mathematically recreated to include the new parameter or set of parameters. This action is useful if the user knows the parameters of the step response and the generated step response needs to be modified to meet or fit these parameters.

ここで図4を参照すると、各動作サイクルまたはアドバンスド制御ブロック38のスキャンの間に、図3のフローチャート90aを用いて作成される基本的なステップが行われ、一方プロセス50はオンライン作動していることが示されている。ブロック150で、MPCコントローラ52は(図2)、測定された制御変数CVおよび補助変数AVの値を受け取り、これを処理する。特に、制御予測プロセスモデルは、CV、AVおよびDVの測定値または入力を処理し未来制御パラメータベクトルを作成すると同時に、予測される定常状態制御変数CVSSおよび補助変数AVSSを作成する。 Referring now to FIG. 4, during each operating cycle or scan of advanced control block 38, the basic steps created using flowchart 90a of FIG. 3 are performed, while process 50 is operating online. It has been shown. At block 150, the MPC controller 52 (FIG. 2) receives and processes the measured control variable CV and auxiliary variable AV values. In particular, the control prediction process model processes CV, AV and DV measurements or inputs to create future control parameter vectors, while creating the predicted steady state control variable CV SS and auxiliary variable AV SS .

次いで、ブロック152で、入力処理/フィルタブロック58(図2)は、MPCコントローラ52によって作成された、予測される制御変数CVSS、補助変数AVSSおよび操作変数MVSSを処理またはフィルタ処理し、このフィルタ処理された値をオプティマイザ54に提供する。オプティマイザ54はブロック154で、標準的なLP技術を実行し、選択されたまたはデフォルトの目的関数を最大化または最小化するが補助変数および操作変数のいかなる限界をも侵害せず制御変数を特定の設定点内またはこれらの変数に関する特定の範囲内に維持する、M個の操作変数目標MVTの組を決定する。一般的に、オプティマイザ54は、制御変数および補助変数の各々をその限界に進ませることによって目標操作変数解MVTを算出する。上記の通り、制御変数の各々が各自の設定点(当初は制御変数の上限として扱われたこともある)に位置し補助変数の各々が各自の制約限界内にある場合に、解が存在することが多い。このような場合、オプティマイザ54は目的関数の最適な結果を生成する決定された操作変数目標MVTのみを出力すればよい。 Then, at block 152, the input processing / filter block 58 (FIG. 2) processes or filters the predicted control variable CV SS , auxiliary variable AV SS and manipulated variable MV SS created by the MPC controller 52; This filtered value is provided to optimizer 54. The optimizer 54 executes standard LP techniques at block 154 to identify or control variables that maximize or minimize the selected or default objective function but do not violate any limits of auxiliary and manipulated variables. maintained within or within a certain range for these variables set points, determining a set of M manipulated variable target MV T. Typically, the optimizer 54 calculates the target manipulated variable resolution MV T by advancing each of the control and auxiliary variables to their limits. As described above, a solution exists when each of the control variables is located at its own set point (sometimes initially treated as the upper limit of the control variable) and each of the auxiliary variables is within its own constraint. Often. In such a case, the optimizer 54 may be output only manipulated variable target MV T determined to produce the best results of the objective function.

しかし、場合によっては、補助変数または操作変数の幾つかまたは全ての制約が厳しく、全ての制御変数がそれらの設定点に位置し全ての補助変数が各々の制約限界内に入る動作点を探索することが不可能なことがある。なぜなら、このような解が存在しないからだ。このような場合、オプティマイザ54は、ブロック155に示すように、新たな目的関数を生成する、および/または、スラック変数および/または上述の限界再定義技術を用いて新たな限界の組を選択する。次いで、ブロック154は新たに作成された目的関数および/またはペナルティ変数を含むあるいは含まない限界を有するオプティマイザを戻し、最適解を決定する。実現可能な解がない場合、または再び受け入れられない解が得られた場合、ブロック155は再び動作し、オプティマイザの更なるパスで用いる新たな1組の限界または新たな目的関数を定義する。例えば、実現不可能な解を有する第1のパスにおいて、ブロック155はスラック変数の使用を選択し、オプティマイザの第2のパスで用いる新たな目的関数を提供してもよい。第2のパスの後で、実現不可能または受け入れられない解が得られた場合、ブロック155はペナルティ変数を含むまたは含まない制約限界を再定義し、これらの新たな制約限界および可能な場合は新たな目的関数を、第3のパスで用いるようブロック154に提供してもよい。当然、ブロック155は、スラック変数および限界再定義の組み合わせを用いて、新たな目的関数および限界を任意のパスで用いるようオプティマイザに提供してもよい。ブロック155はまた、当初の目的関数を用いて実現可能な解が得られない状況においては、当然、新たな目的関数の選択または制約限界の再定義のための、所望する他のあらゆる戦略を用いることもできる。所望する場合、ブロック154で走行される当初の目的関数は、プロセス変数を、オプティマイザの第1のパス(およびその後のパス)中に限界、設定点または理想休止値へ進ませるスラック変数ペナルティを含んでもよい。さらに、ブロック154で用いられる当初の目的関数は、初期に取り扱われるスラック変数制約を含んでもよく、これはオプティマイザの第1のパスで用いられてもよい。そして、その後の走行において、必要であれば限界の再定義を単独で、またはペナルティを課されたスラック変数と合わせて用いてもよい。同様に、オプティマイザのその後のパスにおいて、上述の技術を用いて、スラック変数および限界再定義のいずれか1つまたは双方を用いてプロセス変数を、限界へ、設定点へ、理想休止値等へと進ませてもよい。   However, in some cases, some or all of the auxiliary or manipulated variables are severely constrained, and an operating point is searched where all control variables are at their set points and all auxiliary variables fall within their respective constraint limits. Sometimes things are impossible. Because there is no such solution. In such a case, the optimizer 54 generates a new objective function and / or selects a new set of limits using slack variables and / or the limit redefinition techniques described above, as indicated by block 155. . Block 154 then returns the newly created objective function and / or the optimizer with bounds that may or may not include penalty variables and determine the optimal solution. If there is no feasible solution, or again an unacceptable solution, block 155 operates again to define a new set of limits or a new objective function to use in further passes of the optimizer. For example, in a first pass having an unrealizable solution, block 155 may choose to use slack variables and provide a new objective function for use in a second pass of the optimizer. After the second pass, if an unrealizable or unacceptable solution is obtained, block 155 redefines the constraint limits with or without penalty variables, and these new constraint limits and, if possible, A new objective function may be provided to block 154 for use in the third pass. Of course, block 155 may use the combination of slack variables and limit redefinition to provide the optimizer to use the new objective function and limits in any pass. Block 155 also naturally employs any other desired strategy for selecting a new objective function or redefining constraint limits in situations where a feasible solution cannot be obtained using the original objective function. You can also. If desired, the initial objective function run at block 154 includes a slack variable penalty that causes the process variable to advance to a limit, set point, or ideal rest value during the optimizer's first pass (and subsequent passes). May be. Further, the original objective function used in block 154 may include slack variable constraints that are initially handled, which may be used in the first pass of the optimizer. Then, in subsequent runs, if necessary, the redefinition of the limits may be used alone or in conjunction with a penalized slack variable. Similarly, in subsequent passes of the optimizer, using the techniques described above, the process variables may be reduced to limits, set points, ideal rest values, etc. using one or both of slack variables and limit redefinition. You may proceed.

いかなる場合でも、ブロック154が実現可能または受け入れられる解を得た後、ブロック156は、目標変換ブロック55(図2)を用いて、定常状態ステップ応答ゲイン行列を用いて操作変数MVTの目標値から制御変数CVTおよび補助変数AVTの目標値を決定し、選択したこれらの値のN個(NはMと同数またはそれ未満)のサブセットを、目標入力としてMPCコントローラ52へ提供する。MPCコントローラ52は、ブロック158で、制御行列またはそこから派生する論理を用いて非制約MPCコントローラとして上述の通り動作し、これらの目標値の未来CVおよびAVベクトルを決定し、未来制御パラメータベクトルとの間でベクトル減算を行って未来エラーベクトルを作成する。MPCアルゴリズムは既知の方法で動作し、M×Mステップ応答から生成されたプロセスモデルに基づいて定常状態操作変数MVSSを決定し、これらのMVSS値を入力処理/フィルタブロック58(図2)に提供する。MPCアルゴリズムはまた、ブロック160でプロセス50に出力されるMVステップを決定し、これらのステップの第1次を任意の適切な方法でプロセス50に出力する。 In any case, after obtaining a solution that block 154 can be realized, or accepted, block 156, using the target conversion block 55 (FIG. 2), the target value of the manipulated variables MV T using steady state step response gain matrix It determines a target value of the control variables CV T and the auxiliary variables AV T from providing a subset of N of these selected values (N is M and equal or less), the MPC controller 52 as the target input. The MPC controller 52 operates at block 158 as described above as an unconstrained MPC controller using a control matrix or logic derived therefrom to determine the future CV and AV vectors of these target values, and Is performed to create a future error vector. The MPC algorithm operates in a known manner and determines steady state manipulated variables MV SS based on a process model generated from the M × M step response, and inputs these MV SS values to an input processing / filter block 58 (FIG. 2). To provide. The MPC algorithm also determines the MV steps that are output to the process 50 at block 160 and outputs the first order of these steps to the process 50 in any suitable manner.

動作中、例えばインタフェース13の1つで駆動する1つまたは複数の監視アプリケーションは、アドバンスド制御ブロックまたはこれに通信可能に接続されている他の機能ブロックから、直接またはヒストリアン12を通して情報を引き受け、ユーザまたはオペレータに対して、アドバンスド制御ブロックの動作状態を見るための1つまたは複数の目視スクリーンまたは診断スクリーンを提供してもよい。機能ブロック技術は、制御機能ブロックおよび出力機能ブロックの双方について、カスケード入力(CAS_IN)およびリモートカスケード入力(RCAS_IN)ならびに対応するバック算出出力(BKCAL_OUTおよびRCAS_OUT)を特徴とする。これらのコネクタを用いて、スーパーバイザー的な最適化MPC制御戦略を既存の制御戦略の頂点に置き、1つまたは複数の目視スクリーンまたはディスプレイを用いて該スーパーバイザー制御戦略を見ることも可能である。同様に、最適化されたMPCコントローラの目標は、所望する場合は戦略からも修正できる。   In operation, for example, one or more monitoring applications running on one of the interfaces 13 may take information directly or through the historian 12 from an advanced control block or other functional blocks communicatively connected thereto. One or more viewing or diagnostic screens may be provided to the user or operator to view the operating status of the advanced control block. The functional block technology features a cascade input (CAS_IN) and a remote cascade input (RCAS_IN) and corresponding buck calculation outputs (BKCAL_OUT and RCAS_OUT) for both control and output function blocks. Using these connectors, it is also possible to place a supervisory optimized MPC control strategy on top of an existing control strategy and view it using one or more viewing screens or displays. . Similarly, the goals of the optimized MPC controller can be modified from the strategy if desired.

ここに記載されているアドバンスド機能ブロックは、同一の機能ブロック内にオプティマイザが配置され、したがってMPCコントローラと同じ装置で実行されるものだが、オプティマイザを別の装置で実行することも可能である。特に、オプティマイザは、ユーザのワークステーション13の1つの中、等の異なる装置に置かれてもよく、各実行中またはコントローラのスキャン中に図2と併せて述べた通りMPCコントローラと通信を行って、目標操作変数(MVT)またはそこから決定される制御変数(CV)および補助変数(AV)のサブセットを算出し、MPCコントローラに提供してもよい。当然、既知のOPCインタフェース等の特別なインタフェースを用いて、コントローラまたは内部にMPCコントローラを有する機能ブロックとオプティマイザを実施または実行するワークステーションあるいは他のコンピュータとの間の通信インタフェースを提供してもよい。図2に関して述べた実施形態と同様に、オプティマイザおよびMPCコントローラは各スキャンサイクル中は相互に通信を行い、統合された最適MPC制御を行わなければならない。 Although the advanced function blocks described here have the optimizer located in the same function block and therefore run on the same device as the MPC controller, it is also possible to run the optimizer on another device. In particular, the optimizer may be located on a different device, such as in one of the user's workstations 13, and communicates with the MPC controller as described in conjunction with FIG. 2 during each execution or controller scan. , The target manipulated variable (MV T ) or a subset of the control variable (CV) and auxiliary variable (AV) determined therefrom may be calculated and provided to the MPC controller. Of course, a special interface, such as a known OPC interface, may be used to provide a communication interface between the controller or a functional block having an MPC controller therein and a workstation or other computer implementing or executing the optimizer. . As with the embodiment described with respect to FIG. 2, the optimizer and MPC controller must communicate with each other during each scan cycle to provide integrated optimal MPC control.

当然、既にプロセス制御環境内に存在する既知のまたは標準的なリアルタイムオプティマイザ等の、所望する他の種類のオプティマイザでも、本明細書に述べる実現不可能性対応技術を用いることができる。この特徴は、最適化問題が非線形でその解に非線形計画法の技術が必要とされる場合でも有利に用いることができる。さらに、オプティマイザ54はMPCルーチンの目標変数を作成するために用いられると述べてきたが、オプティマイザ54は本明細書に述べた実現不可能性対応技術を用いて、例えばPIDコントローラ、ファジー論理コントローラ等の他の種類のコントローラによって使用される目標値または他の変数を作成することもできる。   Of course, any other type of optimizer desired, such as a known or standard real-time optimizer already present in the process control environment, can also use the unachievable techniques described herein. This feature can be used to advantage even when the optimization problem is nonlinear and its solution requires nonlinear programming techniques. Further, while the optimizer 54 has been described as being used to create target variables for MPC routines, the optimizer 54 may use the infeasibility techniques described herein, such as PID controllers, fuzzy logic controllers, etc. Target values or other variables used by other types of controllers can also be created.

アドバンスド制御ブロックおよび本明細書に述べた他のブロックおよびルーチンは、フィールドバスおよび標準的な4-20ミリアンペア装置と併せて用いられると、ここで述べてきたが、これらは当然ながら、他のプロセス制御通信プロトコルまたはプログラミング環境を用いて実施することもでき、また他の種類の装置、機能ブロックまたはコントローラと共に使用してもよい。ここに述べるアドバンスド制御ブロックおよび関連する生成およびテストルーチンはソフトウェアで実行されるのが好ましいが、これらはハードウェア、ファームウェア等で実行してもよく、プロセス制御システムと関連する他の処理装置で実行されてもよい。したがって、ここに述べたルーチン40は、所望する場合は、標準的な汎用CPUまたは例えばASIC等の特定目的ハードウェアまたはファームウェアで実施されてもよい。ソフトウェアで実施する場合、該ソフトウェアは、コンピュータあるいはプロセッサ等のRAMまたはROMの、磁気ディスク、レーザーディスク、光ディスク、または他の記憶媒体等のコンピュータ読取り可能メモリに記憶されてもよい。同様に、該ソフトウェアは、例えばコンピュータ読取り可能ディスクまたは他の移動可能なコンピュータ記憶メカニズムまたは電話線、インターネット等の通信チャネルを通した変調(これは移動可能記憶媒体を介してかかるソフトウェアを提供するのと同様または相互交換可能であるとみなされる)を含む、既知のまたは所望の提供方法を介してユーザまたはプロセス制御システムへ提供されてもよい。   Although the advanced control blocks and other blocks and routines described herein have been described herein when used in conjunction with a fieldbus and a standard 4-20 milliamp device, it will be appreciated that these are other processes. It may be implemented using a control communication protocol or programming environment, and may be used with other types of devices, functional blocks or controllers. Although the advanced control blocks and associated generation and test routines described herein are preferably implemented in software, they may be implemented in hardware, firmware, etc., and may be implemented in other processing units associated with the process control system. May be done. Thus, the routines 40 described herein may be implemented in a standard general purpose CPU or special purpose hardware or firmware, such as an ASIC, if desired. When implemented in software, the software may be stored in RAM or ROM, such as a computer or processor, or in a computer-readable memory, such as a magnetic disk, laser disk, optical disk, or other storage medium. Similarly, the software may be, for example, a computer readable disk or other portable computer storage mechanism or modulation through a communication channel, such as a telephone line, the Internet, which provides such software via a portable storage medium. (Considered to be the same as or interchangeable with) the user or the process control system via a known or desired provision method.

したがって、本発明は特定の例を参照して説明されたが、これは単に説明目的のためであり本発明を限定するものではない。ここに開示される実施例に対し、本発明の精神および範囲を逸脱することなく変更、追加または削除を行うことが可能であることは、当業者には明らかであろう。   Thus, while the present invention has been described with reference to particular examples, this is for illustrative purposes only and is not limiting. It will be apparent to those skilled in the art that modifications, additions, or omissions can be made to the embodiments disclosed herein without departing from the spirit and scope of the invention.

オプティマイザとMPCコントローラとを統合したアドバンスド・コントローラ機能ブロックを有する制御モジュールを含む、プロセス制御システムのブロック図である。FIG. 1 is a block diagram of a process control system including a control module having an advanced controller function block integrating an optimizer and an MPC controller. 統合されたオプティマイザおよびMPCコントローラを有する、図1のアドバンスド・コントローラ機能ブロックのブロック図である。FIG. 2 is a block diagram of the advanced controller functional block of FIG. 1 with an integrated optimizer and MPC controller. 図2の統合されたオプティマイザおよびMPCコントローラ機能ブロックの作成および搭載方法を示すフローチャートである。3 is a flowchart illustrating a method of creating and mounting the integrated optimizer and MPC controller functional blocks of FIG. 2. オンライン・プロセス動作中の、図2の統合されたオプティマイザおよびMPCコントローラの動作を示すフローチャートである。3 is a flowchart illustrating the operation of the integrated optimizer and MPC controller of FIG. 2 during an online process operation. 図2のオプティマイザの目的関数内のスラック変数を用いた、操作変数の制約または限界を緩和させる方法を示すグラフ図である。FIG. 3 is a graph illustrating a method of using a slack variable in an objective function of the optimizer of FIG. 2 to relax constraints or limits on manipulated variables. 図2のオプティマイザの目的関数内のスラック変数を用いた、設定点と関連する範囲の緩和方法を示すブラフ図である。FIG. 3 is a bluff diagram illustrating a method of relaxing a range associated with a set point using a slack variable in an objective function of the optimizer of FIG. 2. 図2のオプティマイザの目的関数内の低値および高値のスラック変数を用いた、設定点と関連する2組の範囲の緩和方法を示すブラフ図である。FIG. 3 is a bluff diagram illustrating a method of relaxing two sets of ranges associated with set points using low and high slack variables in the objective function of the optimizer of FIG. 2. 操作変数の制約モデルまたは制約限界を再定義し、図2のオプティマイザの目的関数内の新たな制約モデルと関連するペナルティ変数を用いる方法を示すグラフ図である。FIG. 3 is a graph illustrating a method of redefining a constraint model or a constraint limit of a manipulated variable and using a penalty variable associated with a new constraint model in an objective function of the optimizer of FIG. 2. 限界から外れた操作変数が1つまたは複数存在する場合の、最適化を行うためのスラック変数および制約モデル再定義の双方の使用を示すグラフ図である。FIG. 5 is a graph illustrating the use of both slack variables and constraint model redefinition for optimization when one or more manipulated variables are out of bounds. 操作変数の理想休止値が存在する場合の、最適化を行うためのスラック変数の使用を示すグラフ図である。FIG. 7 is a graph illustrating the use of slack variables for optimization when there is an ideal rest value of the manipulated variable.

符号の説明Explanation of reference numerals

10 プロセス制御システム
11 プロセスコントローラ
12 データヒストリアン
13 ワークステーション、コンピュータ、ユーザインタフェース
14 ディスプレイスクリーン
26、28 入力/出力(I/O)カード
29 通信ネットワーク
15〜22 フィールドデバイス
32、34 ルーチン
36 制御ループ
38 高度制御ブロック
40 高度制御ブロック生成ルーチン
42 制御ブロック生成ルーチン
44 プロセスモデル化ルーチン
46 制御論理パラメータ作成ルーチン
48 オプチマイザルーチン
50 プロセス
52 MPCコントローラ
54 オプチマイザ
55 目標変換ブロック
56 ステップ応答モデルまたは制御行列
58 入力処理/フィルタブロック
62 選択ブロック
64 目的関数
66、76 入力
70 制御予測プロセスモデル
72 出力
74、84 ベクトル加算器
80 制御目標ブロック
82 軌跡フィルタ
90 フローチャート
101 傾向プロット領域
102 プロット
104 モード
106 設定時間
112、114 ライン
116 モデル作成ボタン
200 表示スクリーン
204、208 区域
212、216 列
220 ゲイン
224 デッドタイム
228 利用可能変数の列
232a 追加ボタン
232b 取り除きボタン
236 戻るボタン
10 Process control system
11 Process controller
12 Data historian
13 Workstation, computer, user interface
14 Display screen
26, 28 input / output (I / O) card
29 Communication Network
15-22 field device
32, 34 routines
36 Control loop
38 Advanced control block
40 Advanced control block generation routine
42 Control Block Generation Routine
44 Process Modeling Routine
46 Control Logic Parameter Creation Routine
48 Optimizer Routine
50 processes
52 MPC controller
54 Optimizer
55 Target conversion block
56 step response model or control matrix
58 Input processing / filter block
62 selection block
64 objective function
66, 76 inputs
70 Control prediction process model
72 outputs
74, 84 vector adder
80 Control target block
82 Trajectory Filter
90 Flowchart
101 Trend plot area
102 plots
104 mode
106 Set time
112, 114 lines
116 Model creation button
200 display screen
Area 204, 208
212, 216 columns
220 gain
224 Dead Time
228 column of available variables
232a add button
232b remove button
236 back button

Claims (53)

プロセス制御方法であって、
目的関数を用いて1組の目標値を定義する解を作成するオプティマイザを走行させるステップと、
1組のプロセス変数制約に関して前記解が実現可能か否かを決定するステップであって、
前記解が実現不可能な場合は、
(1)少なくとも1つのプロセス変数のプロセス変数制約を再定義して前記1つのプロセス変数に関する新たなプロセス変数制約の上限および下限を定義し、
(2)前記1つのプロセス変数の前記目的関数にペナルティ変数を追加することにより新たな目的関数を作成し、該ペナルティ変数は、前記1つのプロセス変数が前記1つのプロセス変数の新たなプロセス変数制約限界の1つと相違する量に基づくものであり、
(3)前記新たな目的関数で前記オプティマイザを再走行させ、前記1つのプロセス変数の前記新たなプロセス変数制約限界で、1組の新たな目標値を定義する新たな解を作成する、ステップと、
コントローラに前記目標値または前記新たな目標値を提供するステップと、
前記目標値または前記新たな目標値を用いて前記コントローラを走行させて前記プロセスを制御するための1組の制御信号を作成するステップとを含む方法。
A process control method,
Running an optimizer that produces a solution that defines a set of target values using an objective function;
Determining whether the solution is feasible for a set of process variable constraints,
If the solution is not feasible,
(1) redefining a process variable constraint of at least one process variable to define upper and lower limits of a new process variable constraint for the one process variable;
(2) A new objective function is created by adding a penalty variable to the objective function of the one process variable, wherein the penalty variable is a new process variable constraint of the one process variable. Based on an amount that differs from one of the limits,
(3) rerunning the optimizer with the new objective function and creating a new solution defining a set of new target values at the new process variable constraint limit of the one process variable; ,
Providing the controller with the target value or the new target value;
Driving the controller using the target value or the new target value to create a set of control signals for controlling the process.
請求項1に記載の方法であって、前記目的関数に1組のスラック変数を提供し、少なくとも1つの前記プロセス変数に関するペナルティを、該少なくとも1つのプロセス変数が関連する制約を侵害する量に基づいて定義するステップを更に含む方法。   The method of claim 1, wherein a set of slack variables is provided to the objective function, and a penalty for at least one of the process variables is based on an amount by which the at least one process variable violates an associated constraint. Further comprising the step of defining. 請求項2に記載の方法であって、1つまたは複数の経済的コストを定義する前記目的関数内でユニットコスト変数よりもはるかに大きい、前記1組のスラック変数と関連するユニットペナルティを設定するステップを含む方法。   3. The method of claim 2, wherein a unit penalty associated with the set of slack variables in the objective function defining one or more economic costs is much greater than a unit cost variable. A method comprising steps. 請求項1に記載の方法であって、前記目的関数に1組のスラック変数を提供し、少なくとも1つの前記プロセス変数に関するペナルティを、該少なくとも1つのプロセス変数が理想休止値と相違する量に基づいて定義するステップを更に含む方法。   The method of claim 1, wherein a set of slack variables is provided to the objective function, and a penalty for at least one of the process variables is based on an amount by which the at least one process variable differs from an ideal pause value. Further comprising the step of defining. 請求項4に記載の方法であって、1つまたは複数の経済的コストを定義する前記目的関数内のユニットコスト変数よりもはるかに大きい、前記1組のスラック変数と関連するユニットペナルティを設定するステップを含む方法。   5. The method of claim 4, wherein setting a unit penalty associated with the set of slack variables that is much greater than a unit cost variable in the objective function that defines one or more economic costs. A method comprising steps. 請求項1に記載の方法であって、前記目的関数に1組のスラック変数を提供し、少なくとも1つの前記プロセス変数に関するペナルティを、該少なくとも1つのプロセス変数が設定点と相違する量に基づいて定義するステップを更に含む方法。   The method of claim 1, wherein a set of slack variables is provided to the objective function, and a penalty for at least one of the process variables is based on an amount by which the at least one process variable differs from a set point. The method further comprising the step of defining. 請求項6に記載の方法であって、1つまたは複数の経済的コストを定義する前記目的関数内のユニットコスト変数よるもはるかに大きい、前記1組のスラック変数と関連するユニットペナルティを設定するステップを含む方法。   7. The method of claim 6, wherein a unit penalty associated with the set of slack variables is set much greater than a unit cost variable in the objective function that defines one or more economic costs. A method that includes a step. 請求項1に記載の方法であって、1つまたは複数の経済的コストを定義する前記目的関数内の1つまたは複数のユニットコスト変数よりもはるかに大きい、前記ペナルティ変数のユニットペナルティを提供するステップを含む方法。   2. The method of claim 1, providing a unit penalty for the penalty variable that is much greater than one or more unit cost variables in the objective function that define one or more economic costs. A method comprising steps. 請求項1に記載の方法であって、経済的コストを定義する前記目的関数内のあらゆる前記ユニットコスト変数よりも大きい前記ペナルティ変数のユニットペナルティを提供するステップを含む方法。   The method of claim 1, comprising providing a unit penalty for the penalty variable that is greater than any of the unit cost variables in the objective function that defines an economic cost. 請求項1に記載の方法であって、前記コントローラを走行させるステップに多入力/多出力コントローラの走行を含む方法。   The method of claim 1, wherein running the controller comprises running a multiple input / multiple output controller. 請求項10に記載の方法であって、前記多入力/多出力コントローラを走行させるステップにモデル予測制御タイプのコントローラの走行を含む方法。   The method of claim 10, wherein running the multi-input / multi-output controller includes running a model predictive control type controller. プロセス制御に用いるプロセッサで実行されるよう適合されたシステムであって、
コンピュータ読取り可能媒体と、
前記コンピュータ読取り可能媒体に記憶され、目的関数を用いて1組の目標値を定義する解を作成するために前記プロセッサ上で実行されるよう適合された、オプティマイザ・ルーチンと、
前記コンピュータ読取り可能媒体に記憶され、1組みのプロセス変数制約に対して前記解が実現可能か否かを判断するために前記プロセッサ上で実行されるよう適合された、実現可能性対応ルーチンであって、前記解が実現不可能な場合は、
少なくとも1つのプロセス変数のプロセス変数制約を再定義し、該1つのプロセス変数の新たなプロセス変数制約の上限および下限を定義し、
前記1つのプロセス変数のペナルティ変数を前記目的関数に追加することにより新たな目的関数を作成し、該ペナルティ変数は、前記1つのプロセス変数が該1つのプロセス変数の前記新たなプロセス変数制約限界の1つと相違する量に基づいて、前記目的関数にペナルティを課し、
前記新たな目的関数で前記オプティマイザ・ルーチンを再走行させ、前記1つのプロセス変数の前記新たなプロセス変数制約限界を伴う1組の新たな目標値を定義する新たな解を作成する、実現可能性対応ルーチンと、
前記コンピュータ読取り可能媒体に記憶され、前記目標値または前記新たな目標値を用いて前記プロセスを制御するための1組の制御信号を作成するために前記プロセッサ上で実行されるよう適合された、コントローラ・ルーチンと、を備えるシステム。
A system adapted to be executed on a processor used for process control,
A computer readable medium;
An optimizer routine stored on the computer readable medium and adapted to be executed on the processor to generate a solution defining a set of target values using an objective function;
A feasibility enabled routine stored on the computer readable medium and adapted to be executed on the processor to determine whether the solution is feasible for a set of process variable constraints. If the solution is not feasible,
Redefining a process variable constraint for at least one process variable, defining upper and lower limits of a new process variable constraint for the one process variable;
A new objective function is created by adding a penalty variable of the one process variable to the objective function, wherein the penalty variable is such that the one process variable is the new process variable constraint limit of the one process variable. Penalizing the objective function based on the amount different from one;
Re-running the optimizer routine with the new objective function and creating a new solution defining a set of new target values with the new process variable constraint limits of the one process variable; The corresponding routine,
Stored on the computer readable medium and adapted to be executed on the processor to create a set of control signals for controlling the process using the target value or the new target value; A controller routine.
請求項12に記載のシステムであって、前記目的関数は、少なくとも1つの前記プロセス変数のペナルティを、該少なくとも1つのプロセス変数が関連する制約を侵害する量に基づいて定義する、1組のスラック関数を含むシステム。   13. The system of claim 12, wherein the objective function defines a penalty for at least one of the process variables based on an amount by which the at least one process variable violates an associated constraint. The system containing the function. 請求項13に記載のシステムであって、前記目的関数は、1つまたは複数の経済的コストを定義する前記目的関数内のユニットコスト変数よりもはるかに大きい、前記1組のスラック変数に関連するユニットペナルティを含む、システム。   14. The system of claim 13, wherein the objective function is associated with the set of slack variables that is much larger than a unit cost variable in the objective function that defines one or more economic costs. System, including unit penalties. 請求項12に記載のシステムであって、前記目的関数は、少なくとも1つの前記プロセス変数のペナルティを、該少なくとも1つのプロセス変数が理想休止値と相違する量に基づいて定義する1組のスラック変数を含む、システム。   13. The system of claim 12, wherein the objective function defines a penalty for at least one of the process variables based on an amount by which the at least one process variable differs from an ideal pause value. The system, including. 請求項15に記載のシステムであって、前記目的関数は、1つまたは複数の経済的コストを定義する前記目的関数内のユニットコスト変数よりもはるかに大きい、前記1組のスラック変数に関連するユニットペナルティを含む、システム。   16. The system of claim 15, wherein the objective function is associated with the set of slack variables that is much larger than a unit cost variable in the objective function that defines one or more economic costs. System, including unit penalties. 請求項12に記載のシステムであって、前記目的関数は、少なくとも1つの前記プロセス変数のペナルティを、該少なくとも1つのプロセス変数が設定点と相違する量に基づいて定義する1組のスラック変数を含む、システム。   13. The system of claim 12, wherein the objective function defines a set of slack variables that define a penalty for at least one of the process variables based on an amount by which the at least one process variable differs from a set point. Including, system. 請求項17に記載のシステムであって、前記目的関数は、1つまたは複数の経済的コストを定義する前記目的関数内のユニットコスト変数よりもはるかに大きい、前記1組のスラック変数に関連するユニットペナルティを含む、システム。   18. The system of claim 17, wherein the objective function is associated with the set of slack variables that are much larger than a unit cost variable in the objective function that defines one or more economic costs. System, including unit penalties. 請求項12に記載のシステムであって、前記目的関数は、1つまたは複数の経済的コストを定義する前記目的関数内の1つまたは複数のユニットコスト変数よりもはるかに大きい前記ペナルティ変数のユニットペナルティを含む、システム。   13. The system of claim 12, wherein the objective function is a unit of the penalty variable that is much larger than one or more unit cost variables in the objective function that define one or more economic costs. System, including penalties. 請求項12に記載のシステムであって、前記目的関数は、経済的コストを定義する前記目的関数内のあらゆるユニットコスト変数よりも大きい前記ペナルティ変数のユニットペナルティを含む、システム。   13. The system of claim 12, wherein the objective function includes a unit penalty for the penalty variable that is greater than any unit cost variable in the objective function that defines an economic cost. 請求項12に記載のシステムであって、前記コントローラルーチンは多入力/多出力コントローラルーチンを含む、システム。   13. The system of claim 12, wherein the controller routine includes a multiple input / multiple output controller routine. 請求項21に記載のシステムであって、前記多入力/多出力コントローラルーチンは、モデル予測制御タイプのコントローラルーチンを含む、システム。   22. The system of claim 21, wherein the multi-input / multi-output controller routine includes a model predictive control type controller routine. プロセス制御方法であって、
1組のプロセス変数の各々と関連する少なくとも1つの制約を定義するステップと、
前記プロセス変数と関連する1つまたは複数の経済的ユニットコストと、1つの前記プロセス変数の前記制約を侵害する前記1つのプロセス変数と関連するペナルティ変数とを含む、目的関数を定義するステップであって、前記ペナルティ変数は前記各経済的ユニットコストよりも大きいユニットペナルティを有する、ステップと、
前記目的関数を用いて前記プロセス制御に用いる1組のプロセス制御信号を作成するステップと、を含む方法。
A process control method,
Defining at least one constraint associated with each of the set of process variables;
Defining an objective function including one or more economic unit costs associated with the process variable and a penalty variable associated with the one process variable that violates the constraint of one of the process variables. Wherein the penalty variable has a unit penalty greater than each economic unit cost.
Creating a set of process control signals for use in the process control using the objective function.
請求項23に記載の方法であって、前記少なくとも1つの制約を定義するステップは、前記1つのプロセス変数と関連する1組の範囲限界を定義するステップを含む、方法。   24. The method of claim 23, wherein defining the at least one constraint comprises defining a set of range limits associated with the one process variable. 請求項23に記載の方法であって、前記少なくとも1つの制約を定義するステップは、前記1つのプロセス変数と関連する設定点を定義するステップを含む、方法。   24. The method of claim 23, wherein defining the at least one constraint comprises defining a set point associated with the one process variable. 請求項23に記載の方法であって、前記少なくとも1つの制約を定義するステップは、前記1つのプロセス変数と関連する理想休止値を定義するステップを含む、方法。   24. The method of claim 23, wherein defining the at least one constraint comprises defining an ideal pause value associated with the one process variable. 請求項23に記載の方法であって、前記少なくとも1つの制約を定義するステップは、前記1つのプロセス変数と関連する第1の組の範囲限界と、前記1つのプロセス変数と関連する第2の組の範囲限界とを定義するステップを含み、目的関数を定義するステップは、前記第1の組の範囲限界の侵害に関連する第1のペナルティ変数と、前記第2の組の範囲限界の侵害に関連する第2のペナルティ変数とを定義するステップを含み、前記第1のペナルティ変数と関連する第1のユニットペナルティは前記第2のペナルティ変数と関連する第2のユニットペナルティよりも小さい、方法。   24. The method of claim 23, wherein defining the at least one constraint comprises: a first set of range limits associated with the one process variable; and a second set of range limits associated with the one process variable. Defining a set of range limits, wherein defining the objective function comprises: a first penalty variable associated with violation of the first set of range limits; and a violation of the second set of range limits. Defining a second penalty variable associated with the first penalty variable, wherein a first unit penalty associated with the first penalty variable is less than a second unit penalty associated with the second penalty variable. . 請求項23に記載の方法であって、前記少なくとも1つの制約を定義するステップは、前記1つのプロセス変数と関連する第1の値と、前記1つのプロセス変数と関連する1組の範囲限界とを定義するステップを含み、目的関数を定義するステップは、前記第1の値と相違する前記1つのプロセス変数と関連する第1のペナルティ変数と、前記1組の範囲限界を侵害する前記1つのプロセス変数と関連する第2のペナルティ変数とを定義するステップを含み、前記第1のペナルティ変数と関連する第1のユニットペナルティは前記第2のペナルティ変数と関連する第2のユニットペナルティよりも小さい、方法。   24. The method of claim 23, wherein defining the at least one constraint comprises: a first value associated with the one process variable; and a set of range limits associated with the one process variable. Defining the objective function comprises: a first penalty variable associated with the one process variable different from the first value; and the one penalty variable violating the set of range limits. Defining a process variable and a second penalty variable associated therewith, wherein a first unit penalty associated with the first penalty variable is less than a second unit penalty associated with the second penalty variable. ,Method. 請求項28に記載の方法であって、前記第1の値は設定点である方法。   29. The method according to claim 28, wherein the first value is a set point. 請求項28に記載の方法であって、前記第1の値は理想休止値である方法。   29. The method according to claim 28, wherein the first value is an ideal rest value. 請求項23に記載の方法であって、前記目的関数を用いて、前記プロセス変数の1つが該プロセス変数の前記制約を侵害することが予測される期間水平線に渡って最適な1組の制御信号を作成するステップを含む、方法。   24. The method of claim 23, wherein the objective function is used to optimize a set of control signals over a horizon during which one of the process variables is expected to violate the constraints of the process variable. A method comprising the step of creating a. 請求項23に記載の方法であって、前記1つのプロセス変数が該1つのプロセス変数と関連する前記制約を侵害すると予想される場合を検出し、該1つのプロセス変数の前記制約を再定義し、前記目的関数を再定義し、前記1つのプロセス変数が該1つのプロセス変数と関連する前記制約に侵害すると予想される場合に前記再定義した目的関数を用いて前記1組のプロセス制御信号を決定するステップを含む、方法。   24. The method of claim 23, detecting when the one process variable is expected to violate the constraint associated with the one process variable, and redefining the constraint on the one process variable. Redefining the objective function, and using the redefined objective function to generate the set of process control signals if the one process variable is expected to violate the constraints associated with the one process variable. A method comprising the step of determining. 請求項32に記載の方法であって、前記目的関数を再定義するステップは、前記1つのプロセス変数の前記目的関数に更なるペナルティ変数を追加するステップを含み、前記更なるペナルティ変数は、前記1つのプロセス変数が該1つのプロセス変数に関する前記再定義された制約と相違する量に基づいて、前記目的関数にペナルティを課す、方法。   33. The method of claim 32, wherein redefining the objective function comprises adding a further penalty variable to the objective function of the one process variable, wherein the further penalty variable is A method for penalizing the objective function based on an amount by which one process variable differs from the redefined constraint on the one process variable. 請求項33に記載の方法であって、前記更なるペナルティ変数を追加するステップは、1つまたは複数の経済的コストを定義する前記目的関数内の前記経済的ユニットコストよりも大きい、前記更なるペナルティ変数と関連する更なるユニットペナルティの設定を含む、方法。   34. The method according to claim 33, wherein the step of adding the further penalty variable is greater than the economic unit cost in the objective function defining one or more economic costs. A method comprising setting further unit penalties associated with a penalty variable. 請求項33に記載の方法であって、前記更なるペナルティ変数を追加するステップは、前記目的関数内の前記ペナルティ変数と関連する前記ユニットペナルティよりも大きい前記更なるペナルティ変数と関連する、更なるユニットペナルティを設定するステップを含む、方法。   34. The method of claim 33, wherein the step of adding the further penalty variable is further associated with the further penalty variable being greater than the unit penalty associated with the penalty variable in the objective function. A method comprising setting a unit penalty. 請求項33に記載の方法であって、前記更なるペナルティ変数を追加するステップは、前記目的関数内の前記ペナルティ変数と関連する前記ユニットペナルティよりもはるかに大きい、前記更なるペナルティ変数と関連する更なるユニットペナルティを設定するステップを含む、方法。   34. The method of claim 33, wherein the step of adding the additional penalty variable is associated with the additional penalty variable that is much greater than the unit penalty associated with the penalty variable in the objective function. A method comprising setting an additional unit penalty. プロセスを制御するプロセッサに用いられるシステムであって、
コンピュータ読取り可能媒体と、
前記コンピュータ読取り可能媒体に記憶され、1組のプロセス変数の各々と関連する少なくとも1つの制約を記憶するために前記プロセッサで実行されるよう適合された、第1のルーチンと、
前記コンピュータ読取り可能媒体に記憶され、前記プロセス変数と関連する1つまたは複数の経済的ユニットコストと、前記1つのプロセス変数の制約を侵害する前記少なくとも1つの前記プロセス変数と関連するペナルティ変数とを定義する目的関数を記憶するために、前記プロセッサで実行されるよう適合された、第2のルーチンと、
前記コンピュータ読取り可能媒体に記憶され、前記目的関数を用いて前記プロセスの制御に使用する1組のプロセス制御信号を作成するために前記プロセッサで実行されるよう適合された、第3のルーチンと、を含むシステム。
A system used for a processor that controls a process,
A computer readable medium;
A first routine stored on the computer readable medium and adapted to be executed on the processor for storing at least one constraint associated with each of a set of process variables;
One or more economical unit costs associated with the process variable and stored on the computer-readable medium, and a penalty variable associated with the at least one process variable that violates a constraint of the one process variable. A second routine, adapted to be executed on the processor, for storing an objective function to be defined;
A third routine stored on the computer readable medium and adapted to be executed on the processor to generate a set of process control signals for using the objective function to control the process; Including the system.
請求項37に記載のシステムであって、前記1つのプロセス変数の前記少なくとも1つの制約は、前記1つのプロセス変数と関連する1組の範囲限界を含む、システム。   38. The system of claim 37, wherein the at least one constraint on the one process variable includes a set of range limits associated with the one process variable. 請求項37に記載のシステムであって、前記1つのプロセス変数の前記少なくとも1つの制約は、前記1つのプロセス変数と関連する設定点を含む、システム。   38. The system of claim 37, wherein the at least one constraint on the one process variable includes a set point associated with the one process variable. 請求項37に記載のシステムであって、前記1つのプロセス変数の前記少なくとも1つの制約は、前記1つのプロセス変数に関連する理想休止値を含む、システム。   38. The system of claim 37, wherein the at least one constraint on the one process variable includes an ideal pause value associated with the one process variable. 請求項37に記載のシステムであって、前記1つのプロセス変数の前記少なくとも1つの制約は、前記1つのプロセス変数と関連する第1の組の範囲限界と、前記1つのプロセス変数と関連する第2の組の範囲限界とを含み、前記目的関数は、前記第1の組の範囲限界に関連する第1のペナルティ変数と、前記第2の組の範囲限界に関連する第2のペナルティ変数とを含み、前記第1のペナルティ変数と関連する第1のユニットペナルティは前記第2のペナルティ変数と関連する第2のユニットペナルティよりも小さい、システム。   38. The system of claim 37, wherein the at least one constraint on the one process variable comprises a first set of range limits associated with the one process variable and a second set of range limits associated with the one process variable. And two sets of range limits, the objective function comprising: a first penalty variable associated with the first set of range limits; a second penalty variable associated with the second set of range limits; Wherein the first unit penalty associated with the first penalty variable is less than the second unit penalty associated with the second penalty variable. 請求項37に記載のシステムであって、前記1つのプロセス変数の前記少なくとも1つの制約は、該1つのプロセス変数と関連する第1の値と、該1つのプロセス変数と関連する1組の範囲限界とを含み、前記目的関数は、前記第1の値と相違する該1つのプロセス変数と関連する第1のペナルティ変数と、前記1組の範囲限界を侵害する前記1つのプロセス変数と関連する第2のペナルティ変数とを含み、前記第1のペナルティ変数と関連する第1のユニットペナルティは前記第2のペナルティ変数と関連する第2のユニットペナルティよりも小さい、システム。   38. The system of claim 37, wherein the at least one constraint on the one process variable is a first value associated with the one process variable and a set of ranges associated with the one process variable. And the objective function is associated with a first penalty variable associated with the one process variable different from the first value and with the one process variable violating the set of range limits. A second unit penalty associated with said first penalty variable is less than a second unit penalty associated with said second penalty variable. 請求項42に記載のシステムであって、前記第1の値は設定点であるシステム。   43. The system of claim 42, wherein the first value is a set point. 請求項42に記載のシステムであって、前記第1の値は理想休止値であるシステム。   43. The system of claim 42, wherein the first value is an ideal rest value. 請求項37に記載のシステムであって、前記第3のルーチンは、前記目的関数を用いて、前記1つのプロセス変数が該1つのプロセス変数の前記制約を侵害すると予測される期間水平線に渡って最適な1組のプロセス制御信号を作成するよう適合された、システム。   38. The system of claim 37, wherein the third routine uses the objective function over a horizon during which the one process variable is predicted to violate the constraint of the one process variable. A system adapted to create an optimal set of process control signals. 請求項37に記載のシステムであって、前記コンピュータ読取り可能媒体に記憶され、プロセッサ上で行われるよう適合された第4のルーチンを含み、1つの前記プロセス変数が該1つのプロセス変数と関連する前記制約を侵害すると予想される場合を検出して該1つのプロセス変数の制約を再定義し、前記目的関数を再定義して、該1つのプロセス変数が該1つのプロセス変数と関連する前記制約を侵害すると予想される場合に、前記第3のルーチンに前記再定義した目的関数を用いて前記1組のプロセス制御信号を決定させる、システム。   38. The system of claim 37, comprising a fourth routine stored on the computer readable medium and adapted to be performed on a processor, wherein one of the process variables is associated with the one of the process variables. Detecting when the constraint is expected to be violated, redefining the constraint of the one process variable, redefining the objective function, and redefining the constraint that the one process variable is associated with the one process variable. And causing the third routine to determine the set of process control signals using the redefined objective function if it is expected to violate the set of process control signals. 請求項46に記載のシステムであって、前記第4のルーチンは、前記1つのプロセス変数に関する前記目的関数に更なるペナルティ変数を追加することによって前記目的関数を再定義するよう適合され、前記更なるペナルティ変数は、前記1つのプロセス変数が該1つのプロセス変数に関する前記再定義された制約と相違する量に基づいて前記目的関数にペナルティを課す、システム。   47. The system of claim 46, wherein the fourth routine is adapted to redefine the objective function by adding a further penalty variable to the objective function for the one process variable, A system wherein the penalty variable imposes a penalty on the objective function based on an amount by which the one process variable differs from the redefined constraint on the one process variable. 請求項47に記載のシステムであって、前記第4のルーチンは、前記目的関数内の前記経済的ユニットコストよりも大きい前記更なるペナルティ変数と関連する、更なるユニットペナルティを設定するよう適合された、システム。   48. The system of claim 47, wherein the fourth routine is adapted to set a further unit penalty associated with the further penalty variable in the objective function that is greater than the economic unit cost. The system. 請求項47に記載のシステムであって、前記第4のルーチンは、前記目的関数内の前記ペナルティ変数と関連する前記ユニットペナルティよりも大きい前記更なるペナルティ変数と関連する、更なるユニットペナルティを設定するよう適合された、システム。   48. The system of claim 47, wherein the fourth routine sets a further unit penalty associated with the further penalty variable in the objective function that is greater than the unit penalty associated with the penalty variable. A system that is adapted to: 請求項47に記載のシステムであって、前記第4のルーチンは、前記目的関数内の前記ペナルティ変数と関連する前記ユニットペナルティよりもはるかに大きい前記更なるペナルティ変数と関連する、更なるユニットペナルティを設定するよう適合された、システム。   48. The system of claim 47, wherein the fourth routine further comprises: a further unit penalty associated with the further penalty variable in the objective function that is much greater than the unit penalty associated with the penalty variable. A system adapted to set the 請求項37に記載のシステムであって、前記第3のルーチンは、コントローラのための1組の目標値を作成するよう適合されたオプティマイザルーチンである、システム。   38. The system of claim 37, wherein the third routine is an optimizer routine adapted to create a set of target values for a controller. 請求項37に記載のシステムであって、前記第3のルーチンはコントローラルーチンであるシステム。   The system of claim 37, wherein the third routine is a controller routine. 請求項37に記載のシステムであって、前記第3のルーチンはモデル予測制御タイプのコントローラルーチンであるシステム。   38. The system of claim 37, wherein the third routine is a model predictive control type controller routine.
JP2003319683A 2002-09-11 2003-09-11 Addressing the feasibility of constraints and limits in process control system optimizers Expired - Lifetime JP4079369B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/241,350 US7376472B2 (en) 2002-09-11 2002-09-11 Integrated model predictive control and optimization within a process control system
US10/465,153 US7337022B2 (en) 2002-09-11 2003-06-19 Constraint and limit feasibility handling in a process control system optimizer

Publications (2)

Publication Number Publication Date
JP2004265381A true JP2004265381A (en) 2004-09-24
JP4079369B2 JP4079369B2 (en) 2008-04-23

Family

ID=31980987

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003319683A Expired - Lifetime JP4079369B2 (en) 2002-09-11 2003-09-11 Addressing the feasibility of constraints and limits in process control system optimizers

Country Status (5)

Country Link
JP (1) JP4079369B2 (en)
CN (1) CN1300651C (en)
DE (1) DE10341762B4 (en)
GB (2) GB2423831B (en)
HK (1) HK1060777A1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009277239A (en) * 2002-09-11 2009-11-26 Fisher Rosemount Syst Inc Integrated model predictive control and optimization in process control system
JP2013225333A (en) * 2006-10-02 2013-10-31 Fisher Rosemount Systems Inc Analytical server integrated in process control network
JP2017070131A (en) * 2015-10-01 2017-04-06 株式会社日立製作所 Power demand adjustment plan management device and power demand adjustment plan management method
JP2022509489A (en) * 2018-10-30 2022-01-20 アスペン テクノロジー インコーポレイテッド Non-interfering closed-loop step test equipment and methods with controllable optimization mitigation
US11782401B2 (en) 2019-08-02 2023-10-10 Aspentech Corporation Apparatus and methods to build deep learning controller using non-invasive closed loop exploration

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7444191B2 (en) 2005-10-04 2008-10-28 Fisher-Rosemount Systems, Inc. Process model identification in a process control system
EP1969429A2 (en) * 2005-12-05 2008-09-17 Fisher-Rosemount Systems, Inc. Multi-objective predictive process optimization with concurrent process simulation
CN100461037C (en) * 2007-05-11 2009-02-11 浙江大学 IDP based industrial process dynamic optimization system and method
DE102008028777A1 (en) * 2008-06-17 2009-12-24 Siemens Aktiengesellschaft Control system of a plant with multi-level model optimization
CA2785748C (en) * 2009-12-31 2015-08-04 Abb Research Ltd. Process optimization method and system for a power plant
EP2560062A1 (en) * 2011-08-16 2013-02-20 ABB Research Ltd. Methods and control systems for controlling an industrial system
JP5858080B2 (en) * 2013-08-23 2016-02-10 横河電機株式会社 Operation planning method and operation planning system
DE102016108053A1 (en) 2016-04-29 2017-11-02 Khs Gmbh Method for optimizing the filling of a container
DE102017206299A1 (en) * 2017-04-12 2018-10-18 Siemens Schweiz Ag Method for controlling an operating device of a building and building automation system
JP6901448B2 (en) * 2018-09-14 2021-07-14 株式会社東芝 Arithmetic logic unit, calculation program, recording medium and calculation method
WO2020227383A1 (en) 2019-05-09 2020-11-12 Aspen Technology, Inc. Combining machine learning with domain knowledge and first principles for modeling in the process industries
WO2021076760A1 (en) 2019-10-18 2021-04-22 Aspen Technology, Inc. System and methods for automated model development from plant historical data for advanced process control
EP3910428A1 (en) * 2020-05-15 2021-11-17 L'air Liquide, Société Anonyme Pour L'Étude Et L'exploitation Des Procédés Georges Claude Method to control a gasifier by means of a multivariate model predictive controller
US11630446B2 (en) 2021-02-16 2023-04-18 Aspentech Corporation Reluctant first principles models
DE102022201207A1 (en) * 2022-02-04 2023-08-10 Glatt Ingenieurtechnik Gesellschaft mit beschränkter Haftung Method for controlling a particle-forming fluidization process running in a fluidization apparatus

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09512120A (en) * 1994-04-13 1997-12-02 ザ エム.ダブリュ. ケロッグ カンパニー Method and system for optimizing variable relationships for processes with multiple inputs and outputs
JPH11259450A (en) * 1998-03-09 1999-09-24 Hitachi Ltd Optimal output deciding method and device therefor
JP2001273278A (en) * 1993-12-14 2001-10-05 Masaharu Ishii Device and method for optimization

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3828171A (en) * 1972-08-14 1974-08-06 Phillips Petroleum Co Process apparatus control system for optimizing objective variable quality
US5315521A (en) * 1992-07-29 1994-05-24 Praxair Technology, Inc. Chemical process optimization method
EP0707719B1 (en) * 1993-07-05 2001-03-14 Siemens Aktiengesellschaft Process for determining the optimum values of the correcting variables of a technical system
US5630070A (en) * 1993-08-16 1997-05-13 International Business Machines Corporation Optimization of manufacturing resource planning
JP3174223B2 (en) * 1993-12-14 2001-06-11 雅治 石井 Filter design method and filter
CN1187888A (en) * 1995-06-14 1998-07-15 霍尼韦尔公司 Method of process controller optimization in multivariable predictive controller
US6278899B1 (en) * 1996-05-06 2001-08-21 Pavilion Technologies, Inc. Method for on-line optimization of a plant
US6330483B1 (en) * 1999-05-07 2001-12-11 The Boeing Company Optimal control system
CN1520557A (en) * 1999-09-03 2004-08-11 Method of optimizing parameter values in process of producing product
DE10341764B4 (en) * 2002-09-11 2019-01-10 Fisher-Rosemount Systems, Inc. Integrated model prediction control and optimization within a process control system
US7376472B2 (en) * 2002-09-11 2008-05-20 Fisher-Rosemount Systems, Inc. Integrated model predictive control and optimization within a process control system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001273278A (en) * 1993-12-14 2001-10-05 Masaharu Ishii Device and method for optimization
JPH09512120A (en) * 1994-04-13 1997-12-02 ザ エム.ダブリュ. ケロッグ カンパニー Method and system for optimizing variable relationships for processes with multiple inputs and outputs
JPH11259450A (en) * 1998-03-09 1999-09-24 Hitachi Ltd Optimal output deciding method and device therefor

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009277239A (en) * 2002-09-11 2009-11-26 Fisher Rosemount Syst Inc Integrated model predictive control and optimization in process control system
JP2013225333A (en) * 2006-10-02 2013-10-31 Fisher Rosemount Systems Inc Analytical server integrated in process control network
JP2017070131A (en) * 2015-10-01 2017-04-06 株式会社日立製作所 Power demand adjustment plan management device and power demand adjustment plan management method
JP2022509489A (en) * 2018-10-30 2022-01-20 アスペン テクノロジー インコーポレイテッド Non-interfering closed-loop step test equipment and methods with controllable optimization mitigation
JP7289924B2 (en) 2018-10-30 2023-06-12 アスペンテック・コーポレーション Apparatus and method for incoherent closed-loop step testing with controllable optimization relaxation
US11934159B2 (en) * 2018-10-30 2024-03-19 Aspentech Corporation Apparatus and methods for non-invasive closed loop step testing with controllable optimization relaxation
US11782401B2 (en) 2019-08-02 2023-10-10 Aspentech Corporation Apparatus and methods to build deep learning controller using non-invasive closed loop exploration

Also Published As

Publication number Publication date
GB2394564A (en) 2004-04-28
GB0321291D0 (en) 2003-10-15
CN1300651C (en) 2007-02-14
CN1497402A (en) 2004-05-19
DE10341762A1 (en) 2004-04-15
GB2423831B (en) 2007-05-16
GB2394564B (en) 2006-10-11
GB2423831A (en) 2006-09-06
HK1060777A1 (en) 2004-08-20
GB2394564A8 (en) 2004-05-19
JP4079369B2 (en) 2008-04-23
DE10341762B4 (en) 2014-05-15
GB0600443D0 (en) 2006-02-15

Similar Documents

Publication Publication Date Title
US7337022B2 (en) Constraint and limit feasibility handling in a process control system optimizer
JP4079369B2 (en) Addressing the feasibility of constraints and limits in process control system optimizers
JP4722388B2 (en) Setting and browsing display screen for integrated model predictive control and optimizer functional blocks
US7856281B2 (en) On-line adaptive model predictive control in a process control system
EP2175332B1 (en) Two-stage model predictive control technique
GB2432682A (en) A method of performing control and optimising of a process system
US8055358B2 (en) Multi-objective predictive process optimization with concurrent process simulation
GB2430764A (en) Online adaptive model predictive control in a process control system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040802

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070417

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070710

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070720

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071017

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080108

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080201

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110215

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4079369

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120215

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120215

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130215

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140215

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term