DE10362369B3 - Integrated model predictive control and optimization within a process control system - Google Patents

Integrated model predictive control and optimization within a process control system Download PDF

Info

Publication number
DE10362369B3
DE10362369B3 DE10362369.8A DE10362369A DE10362369B3 DE 10362369 B3 DE10362369 B3 DE 10362369B3 DE 10362369 A DE10362369 A DE 10362369A DE 10362369 B3 DE10362369 B3 DE 10362369B3
Authority
DE
Germany
Prior art keywords
control
variables
auxiliary
manipulated
auxiliary variables
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.)
Expired - Lifetime
Application number
DE10362369.8A
Other languages
German (de)
Inventor
Ashish Mehta
Wilhelm K. Wojsznis
Dirk Thiele
Peter Wojsznis
Mark Nixon
Terrence L. Blevins
Ron Ottenbacher
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
Priority claimed from US10/627,362 external-priority patent/US7050863B2/en
Application filed by Fisher Rosemount Systems Inc filed Critical Fisher Rosemount Systems Inc
Application granted granted Critical
Publication of DE10362369B3 publication Critical patent/DE10362369B3/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
    • 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
    • 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/0205Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric not using a model or a simulator of the controlled system
    • G05B13/024Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric not using a model or a simulator of the controlled system 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/041Adaptive 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 variable 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

Ein Prozesssteuerungskonfigurationssystem zur Verwendung bei der Herstellung oder Sichtung eines integrierten Optimierungs- und Steuer-/Regelblocks wird bereitgestellt, das ein Optimierungsprogramm und ein Mehrfacheingabe-/Mehrfachausgabe-Steuerprogramm implementiert. Das Konfigurationssystem kann es einem Benutzer ermöglichen, das Optimierungs- oder Steuerprogramm anzuzeigen oder zu konfigurieren. Ein Speicherprogramm kann Daten speichern, die mehreren Steuer- und Hilfsgrößen und mehrere Stellgrößen betreffen, die vom Optimierungsprogramm und/oder dem Steuerprogramm verwendet werden sollen. Ein Anzeigeprogramm kann einem Benutzer eine Anzeige im Hinblick auf die Daten bieten, die die mehreren Steuer- und Hilfsgrößen und die mehreren Stellgrößen betreffen.A process control configuration system for use in fabricating or screening an integrated optimization and control block is provided that implements an optimization program and a multiple-input, multiple-output handler. The configuration system may allow a user to view or configure the optimizer or control program. A storage program can store data relating to multiple control and auxiliary variables and multiple manipulated variables to be used by the optimization program and/or the control program. A viewer may provide a user with a view of data related to the multiple control and auxiliary variables and the multiple manipulated variables.

Description

Die vorliegende Erfindung bezieht sich allgemein auf Prozesssteuerungssysteme und insbesondere auf einen optimierten Modellvorhersage-Controller im Rahmen eines Prozesssteuerungssystems.The present invention relates generally to process control systems, and more particularly to an optimized model prediction controller within a process control system.

Prozesssteuerungssysteme wie verteilte oder skalierbare Prozesssteuerungssysteme wie diejenigen, die in Chemie-, Erdöl- oder anderen Prozessen verwendet werden, umfassen typischerweise einen oder mehrere, kommunikativ miteinander, mit mindestens einem Haupt- oder Bedienerarbeitsplatzrechner und mit einem oder mehreren Feldgeräten über analoge, digitale oder kombinierte analoge/digitale Busse gekoppelte/n Controller. Die Feldgeräte, bei denen es sich beispielsweise um Ventile, Ventilsteller, Schalter und Messwertgeber (z.B. Temperatur-, Druck- und Fließratensensoren) handeln kann, erfüllen Funktionen im Rahmen des Prozesses wie Öffnen und Schließen von Ventilen und Messen von Prozessparametern. Der Prozesscontroller empfängt Signale, die für Prozessmessungen stehen, die von den Feldgeräten durchgeführt werden, und/oder andere, die Feldgeräte betreffende Daten, verwendet diese Daten, um ein Steuerprogramm in Gang zu setzen, und erzeugt dann Steuersignale, die über die Busse an die Feldgeräte geschickt werden, um den Ablauf des Prozesses zu steuern. Daten aus den Feldgeräten und dem Controller werden typischerweise einer oder mehreren Anwendungen zur Verfügung gestellt, die vom Bedienerarbeitsplatzrechner ausgeführt wird/werden, um einen Bediener jede gewünschte Funktion hinsichtlich des Prozesses wie Überwachung des augenblicklichen Prozessstadiums, Abändern des Prozessablaufs, etc. durchführen zu lassen.Process control systems, such as distributed or scalable process control systems such as those used in chemical, petroleum or other processes, typically include one or more, communicating with each other, with at least one main or operator workstation and with one or more field devices via analog, digital or combined analog/digital buses coupled controller(s). The field devices, which can be, for example, valves, valve actuators, switches and transmitters (e.g. temperature, pressure and flow rate sensors) perform functions within the process such as opening and closing valves and measuring process parameters. The process controller receives signals representative of process measurements made by the field devices and/or other data pertaining to the field devices, uses that data to initiate a control program, and then generates control signals that are transmitted over the buses to the Field devices are sent to control the flow of the process. Data from the field devices and the controller is typically provided to one or more applications run by the operator workstation to allow an operator to perform any desired function related to the process, such as monitoring the current process state, modifying the process flow, etc.

Prozess-Controller sind typischerweise so programmiert, dass sie verschiedene Algorithmen, Unterprogramme oder Steuer-/Regelkreise (die alle Steuerroutinen sind) für jede einer Anzahl unterschiedlicher Kreise durchführen, die für einen Prozess bestimmt oder darin enthalten sind, wie Durchflussregelkreise, Temperaturregelkreise, Druckregelkreise, etc. Allgemein ausgedrückt umfasst jeder solche Steuer-/Regelkreis einen oder mehrere Eingabeblöcke wie einen Funktionsblock analoge Eingabe (AI), einen Einzelausgabe-Regelblock, wie einen Proportional-, Integral-, Differential- (PID)-Regelblock oder einen Fuzzy-Regelfunktionsblock, und einen einzelnen Ausgabeblock, wie einen Funktionsblock analoger Ausgang (AO). Diese Steuer-/Regelkreise führen typischerweise eine Einzeleingabe-/Einzelausgabesteuerung durch, weil der Steuer-/Regelblock eine einzelne Steuerausgabe erzeugt, die dazu verwendet wird, eine einzelne Prozesseingabe wie eine Ventilposition, etc. zu steuern. In manchen Fällen ist jedoch die Verwendung mehrerer unabhängig arbeitender Einzeleingabe-/Einzelausgabesteuerkreise nicht sinnvoll, weil die zu steuernden Prozessgrößen von mehr als einer einzelnen Prozesseingabe betroffen werden und sich jede Prozesseingabe auf den Status vieler Prozessausgaben auswirken kann. Ein Beispiel dafür könnte beispielsweise in einem Prozess auftreten, bei dem ein Tank durch zwei Zufuhrleitungen befüllt und über eine einzige Auslassleitung geleert werden soll, wobei jede Leitung von einem anderen Ventil gesteuert wird, und bei dem Temperatur, Druck und Durchsatz des Tanks so geregelt werden, dass sie sich auf oder nahe an Sollwerten befinden. Wie oben angegeben, kann die Regelung des Durchsatzes, der Temperatur und des Drucks des Tanks unter Verwendung eines separaten Durchsatzregelkreises, eines separaten Temperaturregelkreises und eines separaten Druckregelkreises durchgeführt werden. In dieser Situation kann jedoch der Betrieb des Temperaturregelkreises beim Ändern der Einstellung eines der Zufuhrventile, um die Temperatur im Tank zu regeln, dazu führen, dass der Druck im Tank ansteigt, was beispielsweise den Druckkreis dazu veranlasst, das Auslassventil zu öffnen, um den Druck zu senken. Dieser Vorgang kann dann den Durchsatzregelkreis dazu bringen, eines der Einlassventile zu schließen, wodurch die Temperatur beeinflusst und der Temperaturregelkreis dazu veranlasst wird, irgendeine weitere Maßnahme zu ergreifen. Wie aus diesem Beispiel klar wird, bringen die Einzeleingabe-/Einzelausgabe-Steuer-/Regelkreise die Prozessausgaben (in diesem Fall Durchsatz, Temperatur und Druck) dazu, sich auf eine inakzeptable Weise zu verhalten, bei der die Ausgaben schwanken ohne jemals einen Beharrungszustand zu erreichen.Process controllers are typically programmed to perform various algorithms, sub-programs, or control loops (all of which are control routines) for each of a number of different loops dedicated to or included in a process, such as flow control loops, temperature control loops, pressure control loops, etc. Generally speaking, each such control loop comprises 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) control block or a fuzzy control function block, and a single output block, such as an analog output (AO) function block. These control loops typically perform single input/single output control because the control block generates a single control output that is used to control a single process input such as valve position, etc. In some cases, however, the use of several independently operating single input/single output control circuits does not make sense because the process variables to be controlled are affected by more than one single process input and each process input can affect the status of many process outputs. An example of this might occur in a process where a tank is to be filled through two supply lines and emptied through a single outlet line, each line being controlled by a different valve, and where the temperature, pressure and flow rate of the tank are thus controlled that they are at or near set points. As indicated above, the control of the flow rate, temperature and pressure of the tank can be performed using a separate flow control loop, a separate temperature control loop and a separate pressure control loop. However, in this situation, the operation of the temperature control circuit when changing the setting of one of the supply valves to control the temperature in the tank can cause the pressure in the tank to rise, for example causing the pressure circuit to open the exhaust valve to regulate the pressure to lower. This action can then cause the flow control loop to close one of the intake valves, thereby affecting the temperature and causing the temperature control loop to take some further action. As is clear from this example, the single-input, single-output control loops cause the process outputs (in this case, flow rate, temperature, and pressure) to behave in an unacceptable manner, where the outputs fluctuate without ever reaching a steady state reach.

Modellvorhersagesteuerung (MPC - Model Predictive Control) oder andere Arten von fortgeschrittener Steuerung wurden eingesetzt, um eine Prozesssteuerung in Situationen durchzuführen, bei denen Änderungen an einer bestimmten gesteuerten Prozessgröße sich auf mehr als eine Prozessgröße oder Prozessausgabe auswirken. Seit den späten 70er Jahren des zwanzigsten Jahrhunderts wurde über viele erfolgreiche Implementierungen von Modellvorhersagesteuerung berichtet, und MPC wurde zur primären Form der fortgeschrittenen multivariablen Steuerung in der Prozessindustrie. Darüber hinaus wurde die MPC-Steuerung in verteilten Steuersystemen als verteilte Steuersystem-Mehrschichtensoftware implementiert. Die US-Patente Nr. 4,616,308 und 4,349,869 beschreiben allgemein MPC-Steuergeräte, die in einem Prozesssteuerungssystem verwendet werden können.Model Predictive Control (MPC) or other types of advanced control have been employed to perform process control in situations where changes to a particular controlled process variable affect more than one process variable or process output. Since the late 1970's, many successful implementations of model predictive control have been reported and MPC has become the primary form of advanced multivariable control in the process industry. In addition, MPC control has been implemented in distributed control systems as distributed control system multi-layer software. the U.S. Patent Nos. 4,616,308 and 4,349,869 generally describe MPC controllers that may be used in a process control system.

Allgemein gesprochen ist MPC eine Mehrfacheingabe-/Mehrfachausgabe-Steuerstrategie, bei der die Auswirkungen des Änderns jeweils mehrerer Prozesseingaben auf jeweils mehrere Prozessausgaben gemessen werden, und diese gemessenen Antworten dann dazu verwendet werden, um eine Steuermatrix oder ein Modell des Prozesses zu erzeugen. Das Prozessmodell oder die Steuermatrix (die im Allgemeinen den Beharrungszustand des Prozesses definiert), wird mathematisch invertiert und dann in einer oder als eine Mehrfacheingabe-/Mehrfachausgabe-Steuerung zur Steuerung der Prozessausgaben basierend auf Änderungen verwendet, die an den Prozesseingaben vorgenommen werden. In manchen Fällen wird das Prozessmodell als eine Prozessausgabeansprechkurve (typischerweise eine Schrittantwortkurve) für jede der Prozesseingaben dargestellt, und diese Kurven können basierend auf einer Reihe von beispielsweise Pseudozufallsschrittveränderungen erzeugt werden, die zu jeder der Prozesseingaben geliefert werden. Diese Ansprechkurven können dazu verwendet werden, den Prozess auf bekannte Weise modellhaft darzustellen. Modellvorhersagesteuerung ist im Stand der Technik bekannt, und deshalb werden ihre spezifischen Eigenheiten hier nicht beschrieben. MPC ist jedoch allgemein in Qin, S. Joe und Thomas A. Badgwell, „An Overview of Industrial Model Predictive Control Technology“, AIChE Conference, 1996 beschrieben.Generally speaking, MPC is a multiple-input/multiple-output control strategy in which the effects of changing each of multiple process inputs are reflected in each of multiple process outputs measured, and these measured responses then used to generate a control matrix or model of the process. The process model or control matrix (which generally defines the steady state of the process) is mathematically inverted and then used in or as a multiple input/multiple output controller to control the process outputs based on changes made to the process inputs. In some cases, the process model is represented as a process output response curve (typically a step response curve) for each of the process inputs, and these curves may be generated based on a series of, for example, pseudo-random step changes provided to each of the process inputs. These response curves can be used to model the process in a known manner. Model predictive control is well known in the art and therefore its specifics will not be described here. However, MPC is generally described in Qin, S. Joe and Thomas A. Badgwell, "An Overview of Industrial Model Predictive Control Technology", AIChE Conference, 1996.

MPC stellte sich als eine sehr effektive und nützliche Steuertechnik heraus und wurde im Zusammenhang mit Prozessoptimierung eingesetzt. Um einen Prozess zu optimieren, welcher MPC einsetzt, minimiert oder maximiert ein Optimierer bestimmt durch das MPC-Programm eine oder mehrere Prozesseingabegrößen, um den Prozess an einem optimalen Operationspunkt ablaufen zu lassen. Während diese Technik vom Rechnerischen her möglich ist, müssen die Prozessgrößen ausgewählt werden, die beispielsweise einen signifikanten Einfluss auf die Verbesserung des wirtschaftlichen Ablaufs des Prozesses (z.B. Prozessdurchsatz oder Qualität) haben, um den Prozess von einem ökonomischen Standpunkt her zu optimieren. Um den Prozess von einem finanziellen oder wirtschaftlichen Standpunkt her an einem optimalen Operationspunkt ablaufen zu lassen, müssen viele Prozessgrö-ßen, und nicht nur eine einzige Prozessgröße, zusammengenommen gesteuert werden.MPC turned out to be a very effective and useful control technique and was used in the context of process optimization. To optimize a process employing MPC, an optimizer minimizes or maximizes one or more process inputs determined by the MPC program in order to run the process at an optimal operating point. While this technique is computationally possible, in order to optimize the process from an economic standpoint, the process variables that have a significant impact on improving the economics of the process (e.g., process throughput or quality) must be selected. In order to run the process at an optimal operating point from a financial or economic point of view, many process variables, and not just a single process variable, must be controlled collectively.

Eine Optimierung mittels quadratischer Programmiertechniken oder geläufigerer Techniken wie Gleitkommaverfahren wurden als eine Lösung vorgeschlagen, um mit MPC eine dynamische Optimierung bereitzustellen. Mit diesen Verfahren wird eine Optimierungslösung bestimmt, und der Optimierer liefert dem Controller Umsetzungen in den Controllerausgaben (d.h. die Stellgrößen des Prozesses), berücksichtigt die Prozessdynamik, bestehende Randbedingungen und Optimierungsziele. Dennoch weist dieser Lösungsweg eine gewaltige rechnerische Belastung auf und ist mit dem gegenwärtigen Stand der Technologie nicht machbar.Optimization using quadratic programming techniques or more familiar techniques such as floating point methods have been proposed as a solution to provide dynamic optimization with MPC. With these methods, an optimization solution is determined and the optimizer provides the controller with implementations in the controller outputs (i.e. the manipulated variables of the process), taking into account the process dynamics, existing constraints and optimization goals. However, this approach has a tremendous computational burden and is not feasible with the current level of technology.

In den meisten Fällen ist bei der Verwendung von MPC die Anzahl von Prozessstellgrößen, die im Rahmen des Prozesses zur Verfügung stehen (d.h. die Steuerausgaben des MPC-Programms), größer als die Zahl der Steuergrößen des Prozesses (d.h. die Anzahl von Prozessgrößen, die gesteuert werden müssen, um sich an einem bestimmten Sollwert zu befinden). Im Ergebnis bestehen für gewöhnlich mehrere Freiheitsgrade, die zur Abwicklung von Optimierung und Randbedingungen verfügbar sind. Theoretisch sollten zur Durchführung einer solchen Optimierung Werte berechnet werden, die durch Prozessgröße, Randbedingungen, Grenzen und ökonomische Faktoren ausgedrückt werden, die einen optimalen Operationspunkt des Prozesses bestimmen. In vielen Fällen sind diese Prozessgrößen zwangsweise vorgegebene Größen, weil ihnen Grenzen in Bezug auf die physikalischen Eigenschaften des Prozesses, den sie betreffen, gesetzt sind, innerhalb derer sie gehalten werden müssen. Beispielsweise ist eine Prozessgröße, die den Tankfüllstand darstellt, auf den physikalisch erreichbaren maximalen und minimalen Füllstand des jeweiligen Tanks beschränkt. Eine Optimierungsfunktion kann Kosten und/oder Nutzen berechnen, die mit jeder der zwangsweise vorgegebenen oder Hilfsgrößen verbunden sind, um mit einem Füllstand zu arbeiten, bei dem der Nutzen maximiert, die Kosten minimiert sind, etc. Die Messungen dieser Hilfsgrößen können dann dem MPC-Programm als Eingaben zu Verfügung gestellt und vom MPC-Programm als Steuergrößen mit einem Sollwert gleich dem Operationspunkt für die Hilfsgröße, der durch das Optimierungsprogramm definiert ist, zu verarbeiten.In most cases when using MPC, the number of manipulated process variables available within the process (i.e. the control outputs of the MPC program) is greater than the number of controlled variables of the process (i.e. the number of process variables that are controlled need to be to be at a certain setpoint). As a result, there are usually several degrees of freedom available to handle optimization and constraints. Theoretically, in order to carry out such an optimization, values should be calculated that are expressed by process size, boundary conditions, limits and economic factors that determine an optimal operating point of the process. In many cases these process variables are constrained variables because they have limits relative to the physical properties of the process they affect within which they must be maintained. For example, a process variable that represents the tank fill level is limited to the maximum and minimum fill level that can be physically reached in the respective tank. An optimization function can compute costs and/or benefits associated with each of the constraint or auxiliary quantities to operate at a level where utility is maximized, cost is minimized, etc. The measurements of these auxiliary quantities can then be fed to the MPC Provided as inputs to the program and to be processed by the MPC program as control variables with a setpoint equal to the operating point for the auxiliary variable defined by the optimization program.

MPC liefert die beste Leistung, die oft von der Anwendung nur für die quadratische Steuerung benötigt wird, bei der die Anzahl von Steuereingaben in den Prozess (d.h. die vom Steuerprogramm bildeten Stellgrößen) gleich der Anzahl von zu steuernden Steuergrößen ist (d.h. den Eingaben in den Controller). In den meisten Fällen jedoch ist die Anzahl an zwangsweise vorgegebenen Hilfsgrößen plus die Anzahl an Prozesssteuerungsgrößen größer als die Anzahl von Stellgrößen. Eine Implementierung von MPC für solche nicht quadratischen Konfigurationen führt zu einer unannehmbar schlechten Leistung.MPC provides the best performance, often required by the application only for quadratic control, where the number of control inputs to the process (i.e., the manipulated variables formed by the control program) equals the number of control variables to be controlled (i.e., the inputs to the controllers). In most cases, however, the number of mandatory auxiliary variables plus the number of process control variables is greater than the number of manipulated variables. Implementing MPC for such non-square configurations results in unacceptably poor performance.

Man geht davon aus, dass Andere versucht haben, dieses Problem zu bewältigen, indem ein Satz von Steuer- und zwangsweise vorgegebenen Größen gleich der Anzahl von Stellgrößen ausgewählt und der Controller online oder während des Prozessablaufs generiert wird, um die nächsten Bewegungen bei den Stellgrößen zu bestimmen. Diese Technik ist jedoch rechnerisch aufwändig, weil sie eine Matrixinversion anwendet und in manchen Fällen wie MPC, die als ein Funktionsblock in einem Prozesssteuerungsgerät eingebaut ist, nicht verwendet werden kann. Genauso wichtig ist, dass manche Kombinationen von Ein- und Ausgaben des generierten Controllers zu einem schlecht bedingten Controller führen können, was zu einem unannehmbaren Betrieb führt. Während der Zustand des Controllers überprüft und verbessert werden kann, wenn die Controllerkonfiguration offline installiert wird, ist diese Aufgabe für den Online-Betrieb eine übermäßige Belastung und auf Controllerniveau praktisch unmöglich zu bewerkstelligen.It is believed that others have attempted to overcome this problem by selecting a set of control and forcing variables equal to the number of manipulated variables and generating the controller on-line or in-process to determine the next moves at the to determine variables. However, this technique is computationally expensive because it uses matrix inversion and cannot be used in some cases like MPC built as a function block in a process control device. Equally important, some combinations of inputs and outputs of the generated controller can result in an ill-conditioned controller, resulting in unacceptable operation. While the health of the controller can be checked and improved when the controller configuration is installed offline, this task is unduly burdensome for online operation and virtually impossible to accomplish at the controller level.

US 2002 107 821 A1 bezieht sich auf ein System zum Ausführen von Abwägungsstudien unter Verwendung einer Mehrfachparameterauswahl. Kandidaten, von denen jedem ein oder mehrere Kriterien zugeordnet wird, werden über eine Eingabeschnittstelle in das System eingegeben. Darüber hinaus können Testgrundlagen eingegeben und mit Kandidaten und Kriterien verknüpft werden, um das menschliche Verständnis von Testdaten und -ergebnissen zu erleichtern. Die Kriterien werden mit paarweisen Vergleichen gewichtet, um Fehler zu minimieren, die durch die Beurteilung von Testingenieuren eingeführt werden. Dann werden die Kandidaten unter Verwendung paarweiser Vergleichstechniken bewertet, an denen anschließend Empfindlichkeitsprüfungen durchgeführt werden. Bearbeitete Kandidaten und Kriterien werden dann einem Systembetreiber in Formaten zur Verfügung gestellt, die vom Bediener auswählbar sind. U.S. 2002 107 821 A1 relates to a system for conducting trade-off studies using multiple parameter selection. Candidates, each of which is assigned one or more criteria, are entered into the system via an input interface. In addition, test bases can be entered and linked to candidates and criteria to facilitate human understanding of test data and results. The criteria are weighted with pairwise comparisons to minimize errors introduced by test engineer judgment. Then the candidates are evaluated using pairwise comparison techniques, which are then subjected to sensitivity testing. Processed candidates and criteria are then made available to a system operator in operator selectable formats.

US 5 930 762 A beschreibt eine Computermethode, die das Risiko in physischen Mehrparametersystemen verwaltet, die miteinander verbundene Aktivitäten ausführen. Hierbei ist mindestens eine dieser Aktivitäten insofern risikobezogen, als sie ein Ergebnisniveau aufweisen kann, das außerhalb der Grenzgrenzen liegt. Die Methode legt eine Vorgehensweise für die physischen Systeme fest, die es ermöglicht, zu verhindern, dass Ergebniswerte für risikobezogene Aktivitäten außerhalb der Grenzwerte liegen. Die Methode setzt die Existenz eines multinationalen Rechenmodells voraus, das die physikalischen Systeme beschreibt und nach einer Reihe von Kriterien sowohl mögliche als auch erwünschte Stufen ihrer Aktivitäten bestimmt. U.S. 5,930,762 A describes a computational method that manages risk in physical multi-parameter systems performing interconnected activities. At least one of these activities is risk-related in that it may have an out-of-bounds outcome level. The method specifies a course of action for the physical systems that makes it possible to prevent out-of-bounds result values for risk-related activities. The method assumes the existence of a multinational computational model that describes the physical systems and, according to a set of criteria, determines both possible and desirable levels of their activities.

US 4 736 316 verweist auf ein Beschränkungs-abhängiges Steuerverfahren und - system für eine Raffinerie in großem Maßstab, das eine Online-Optimierung von einem oder zwei Anlageneingaben ohne Notwendigkeit optimaler Einstellpunkte durch iteratives Verfahren ermöglicht Erzeugen eines von der Randbedingung abhängigen Steuercodes, der auf die gegenwärtige Zeit t normiert ist, um die optimierten Anlageneingaben schnell zur Optimierung zu „fahren“, ohne die Anlage zu destabilisieren. Die Erzeugung eines solchen Steuercodes beinhaltet die Bewertung bestimmter Schlüsselkomponenten, die mit Elementen eines Optimierungs- und Stabilisierungssteuervektors (OSC) verbunden sind, von dem der Code abgeleitet wird. U.S. 4,736,316 refers to a constraint-dependent control method and system for a large-scale refinery that allows on-line optimization of one or two plant inputs without the need for optimal setpoints by iterative methods generating a constraint-dependent control code that normalizes to the current time t is to quickly "drive" the optimized plant inputs to optimization without destabilizing the plant. The generation of such control code involves the evaluation of certain key components associated with elements of an optimization and stabilization control vector (OSC) from which the code is derived.

US 5 612 866 A beschreibt einen asynchronen Echtzeit-Controller, der eine Startprozedur, die mit einem Echtzeitsystem verknüpfte Parameter initialisiert, eine Unterbrechungsprozedur, die eine als Reaktion auf ein asynchrones Unterbrechungssignal aus dem Echtzeitsystem auszuführende Operation spezifiziert, und einen Hintergrundprozedur umfasst, die einen Satz von Anweisungen kontinuierlich durchläuft und periodisch einen Steueraktionsbefehl erzeugt, der von der Unterbrechungsprozedur abgeleitet wird, um durch das Echtzeitsystem ausgeführt zu werden. U.S. 5,612,866 A describes an asynchronous real-time controller that includes a start procedure that initializes parameters associated with a real-time system, an interrupt procedure that specifies an operation to be performed in response to an asynchronous interrupt signal from the real-time system, and a background procedure that continuously loops through a set of instructions and periodically generates a control action command derived from the interrupt procedure to be executed by the real-time system.

US 6 049 738 A bezieht sich auf ein Modellierungsunterstützungssystem zum Modellieren eines Steuerungsmodells, das zum Simulieren eines Steuerungsobjekts erforderlich ist, in dem eine Vielzahl von Datensätzen in einer ersten Datenbank zur Verwendung beim Modellieren einer Vielzahl von Steuerungsmodellen gespeichert ist, durch den Datenteiler in eine Mehrzahl von Unterdatengruppen unterteilt, die jeweils die geringste statistische Disparität haben, und in einer Vielzahl von Unterdatenbanken jeweils in der zweiten Datenbank gespeichert. Der Modellierer konstruiert ein Steuerungsmodell unter Verwendung von Daten in einer der Vielzahl von Unterdatengruppen, die dann durch den Modellauswerter unter Verwendung von Daten in einer anderen der Mehrzahl von Unterdatengruppen ausgewertet werden. U.S. 6,049,738 A relates to a modeling support system for modeling a control model required for simulating a control object in which a plurality of data sets are stored in a first database for use in modeling a plurality of control models, divided by the data divider into a plurality of sub-data groups that each have the smallest statistical disparity and stored in a plurality of sub-databases each in the second database. The modeler constructs a control model using data in one of the plurality of sub-data sets, which is then evaluated by the model evaluator using data in another of the plurality of sub-data sets.

DE 100 48 360 A1 verweist auf ein Prozeßsteuerelement, das so ausgelegt ist, daß es als Teil einer Prozeßsteuerroutine verwendet wird, die auf einem Prozessor zur Steuerung eines Prozesses implementiert ist, welches Prozeßsteuerelement enthält: ein computerlesbares Medium; einen fortschrittlichen Steuerfunktionsblock, der auf dem computerlesbaren Medium gespeichert und der so ausgelegt ist, daß er auf dem Prozessor ausgeführt wird, um eine Mehrfacheingabe-/Mehrfachausgabesteuerung eines Prozesses umzusetzen, wobei der fortschrittliche Steuerfunktionsblock enthält: eine erste Vielzahl von Eingängen, wobei jeder Eingang so ausgelegt ist, daß er jeweils einen anderen Parameter eines Satzes von Prozeßparametern empfängt; eine zweite Vielzahl von Ausgängen, wobei jeder Ausgang so ausgelegt ist, daß er mit einem unterschiedlichen Prozeßeingang zur Steuerung des Satzes von Prozeßparametern in Kommunikationsverbindung gebracht wird; und eine Steuerlogik, die ansprechend auf die erste Vielzahl von Eingängen ein Steuersignal an jedem der zweiten Vielzahl von Ausgängen erzeugt. DE 100 48 360 A1 refers to a process control element adapted to be used as part of a process control routine implemented on a processor for controlling a process, the process control element including: a computer-readable medium; an advanced control function block stored on the computer-readable medium and adapted to be executed on the processor to implement multiple input/multiple output control of a process, the advanced control function block including: a first plurality of inputs, each input so is designed to receive a different one of a set of process parameters at a time; a second plurality of outputs, each output being adapted to be communicatively connected to a different process input for controlling the set of process parameters dung is brought; and control logic that generates a control signal at each of the second plurality of outputs in response to the first plurality of inputs.

DE 101 27 788 A1 offenbart ein Prozesssteuerungssystem sowie ein Verfahren zur Verwendung in einem solchen, mit mehreren Stellgrößen und vielen Steuer- und Hilfsgrößen, die durch Änderungen bei den Stellgrößen beeinflusst werden können, welche eine Reihe von Gemeinsamkeiten mit dem Gegenstand der vorliegenden Anmeldung aufweisen. DE 101 27 788 A1 discloses a process control system and a method for use in such, having multiple manipulated variables and many controlled and auxiliary variables that can be affected by changes in the manipulated variables, having a number of common features with the subject matter of the present application.

Die US 5 457 625 A offenbart ein Optimierungsverfahren, das in jedem Betriebszyklus einer Prozesssteuerung durchgeführt wird.the U.S. 5,457,625 A discloses an optimization method performed in each cycle of operation of a process controller.

Es ist Aufgabe der vorliegenden Erfindung, ein Prozesssteuerungssystem mit einem Optimierer und einer Mehrfacheingabe-/Mehrfachausgabe-Steuerung derart zu verbessern, dass ein Prozess auf einen optimalen Prozessbetriebspunkt gebracht werden kann.It is an object of the present invention to improve a process control system with an optimizer and a multiple input/multiple output controller such that a process can be brought to an optimal process operating point.

Gemäß der vorliegenden Erfindung werden ein ProzesssteuerungsKonfigurationssystem nach Anspruch 1, ein Verfahren zur Verwendung eines Prozesssteuerungssystems nach Anspruch 18 sowie nach Anspruch 22, ein Prozesssteuerungselement nach Anspruch 23 und ein Verfahren zur Durchführung der Steuerung eines Prozesses nach Anspruch 24 bereitgestellt.According to the present invention a process control configuration system according to claim 1, a method for using a process control system according to claim 18 and claim 22, a process control element according to claim 23 and a method for performing the control of a process according to claim 24 are provided.

Insbesondere wird ein Prozesssteuerungskonfigurationssystem zur Verwendung bei der Erzeugung oder Sichtung eines integrierten Optimierungs- und Steuer-/Regelblocks bereitgestellt, der ein Optimierungsprogramm und ein Mehrfacheingabe-/Mehrfachausgabesteuerprogramm ablaufen lässt. Das Konfigurationssystem kann es einem Benutzer ermöglichen, den Optimierer oder das Steuerprogramm anzuzeigen oder zu konfigurieren. Beispielsweise kann ein Speicherprogramm Daten
bezüglich mehrerer Steuer- und Hilfsgrößen und mehrerer Stellgrößen speichern, die vom Optimierer und/oder dem Steuerprogramm verwendet werden sollen, und ein Anzeigeprogramm kann einem Benutzer eine Anzeige darbieten, die die Daten bezüglich der mehreren Steuer- und Hilfsgrößen und der mehreren Stellgrößen betreffen.
In particular, a process control configuration system is provided for use in creating or viewing an integrated optimization and control block that runs an optimization program and a multiple input/multiple output handler. The configuration system may allow a user to view or configure the optimizer or scheduler. For example, a storage program can store data
relating to a plurality of controlled and auxiliary variables and a plurality of manipulated variables to be used by the optimizer and/or the control program, and a display program may present a user with a display relating to the data relating to the plurality of controlled and auxiliary variables and the plurality of manipulated variables.

In einer Ausführungsform speichert das Speicherprogramm Ansprechverhaltensdaten oder Antwortdaten für jede von mindestens einigen der Steuer- und Hilfsgrößen. Die Ansprechverhaltensdaten für eine Steuer- oder Hilfsgröße können Daten umfassen, die für ein jeweiliges Ansprechverhalten der Steuer- oder Hilfsgrößen auf jeweilige Stellgrößen stehen. Dieses Ansprechverhalten kann beispielsweise Schrittverhalten, Pulsverhalten, Anstiegsverhalten etc. sein. Das Displayprogramm kann dem Benutzer Ansprechverhaltensdaten anzeigen. Zum Beispiel kann der Benutzer eine Stellgröße festlegen, und das Anzeigeprogramm kann das Ansprechverhalten einer oder mehrerer der Steuer- und Hilfsgrößen auf die festgelegte Stellgröße anzeigen.In one embodiment, the memory program stores response data or response data for each of at least some of the control and auxiliary quantities. The response behavior data for a controlled or auxiliary variable may include data indicative of a respective response behavior of the controlled or auxiliary variable to respective manipulated variables. This response behavior can be step behavior, pulse behavior, increase behavior, etc., for example. The display program can display response data to the user. For example, the user can specify a manipulated variable and the viewer can display the response of one or more of the control and auxiliary variables to the specified manipulated variable.

In einem weiteren Aspekt umfasst ein Prozesssteuerungssystem zum Steuern eines Prozesses einen Mehrfacheingabe-/Mehrfachausgabe-Controller und einen Optimierer. Der Mehrfacheingabe-/Mehrfachausgabe-Controller erzeugt während jedem Operationszyklus des Prozesssteuerungssystems Mehrfachsteuerausgaben, die so konfiguriert sind, dass sie den Prozess basierend auf Mehrfachmesseingaben aus dem Prozess und basierend auf einem Satz von Zielwerten steuern, die dem Mehrfacheingabe-/Mehrfachausgabe-Controller während jedem Operationszyklus des Prozesssteuerungssystems bereitgestellt werden. Der Optimierer bildet den Satz von Zielwerten zur Verwendung durch den Mehrfacheingabe-/Mehrfachausgabe-Controller während jedem Operationszyklus des Prozesssteuerungssystems. Der Optimierer versucht, eine Zielfunktion zu minimieren oder zu maximieren und gleichzeitig einen Satz von Steuergrößen innerhalb vorbestimmter Sollwertgrenzen, einen Satz von Hilfsgrößen innerhalb eines Satzes vorbestimmter Hilfsgrößengrenzen und einen Satz von Stellgrößen innerhalb eines Satzes vorbestimmter Stellgrößengrenzen zu halten. Wenn der Optimierer keine Lösung bestimmen kann, versucht der Optimierer, die Zielfunktion zu minimieren oder zu maximieren und erlaubt gleichzeitig, dass mindestens eine der Sollwertgrenzen verletzt wird.In another aspect, a process control system for controlling a process includes a multiple input/multiple output controller and an optimizer. The multiple input/multiple output controller generates multiple control outputs during each cycle of operation of the process control system that are configured to control the process based on multiple measurement inputs from the process and based on a set of target values that the multiple input/multiple output controller provides during each cycle of operation of the process control system. The optimizer builds the set of target values for use by the multiple input/multiple output controller during each cycle of operation of the process control system. The optimizer attempts to minimize or maximize an objective function while maintaining a set of controlled variables within predetermined setpoint limits, a set of auxiliary variables within a set of predetermined auxiliary variable limits, and a set of manipulated variables within a set of predetermined manipulated variable limits. If the optimizer cannot determine a solution, the optimizer attempts to minimize or maximize the objective function while allowing at least one of the target limits to be violated.

In noch einem anderen Aspekt umfasst ein Prozesssteuerungsverfahren zum Steuern eines Prozesses mit mehreren Stellgrößen und mehreren Steuer- und Hilfsgrößen das Auswählen einer Teilmenge von Steuer- und Hilfsgrößen zur Verwendung bei der Durchführung der Prozesssteuerung, wobei mindestens eine der ausgewählten Steuer- und Hilfsgrößen basierend darauf ausgewählt wird, dass sie auf eine der Stellgrößen am stärksten anspricht. Eine Steuermatrix wird unter Verwendung der ausgewählten Steuer- und Hilfsgrößen und der Stellgrößen erzeugt, und aus der Steuermatrix wird eine Controllermatrix generiert. Eingaben in den Controller umfassen die ausgewählten Steuer- und Hilfsgrößen, und Ausgaben des Controllers umfassen die Stellgrößen. Eine Optimierung wird durchgeführt, indem ein Prozessoperationspunkt ausgewählt wird, der Prozessoperationspunkt durch einen Satz von Zielwerten für die ausgewählten Steuer- und Hilfsgrößen bestimmt wird, um eine Zielfunktion zu minimieren oder zu maximieren. Der Controller wird verwendet, um ein Mehrfacheingabe-/Mehrfachausgabesteuerungsverfahren durchzuführen, um aus den Zielwerten einen Satz von Stellgrößenwerten zu bilden.In yet another aspect, a process control method for controlling a process having multiple manipulated variables and multiple control and auxiliary variables includes selecting a subset of control and auxiliary variables for use in performing the process control, at least one of the selected control and auxiliary variables being selected based thereon that it responds most strongly to one of the manipulated variables. A control matrix is generated using the selected control and auxiliary variables and the manipulated variables, and a controller matrix is generated from the control matrix. A Inputs to the controller include the selected control and auxiliary variables, and outputs from the controller include the manipulated variables. Optimization is performed by selecting a process operation point, the process operation point being determined by a set of target values for the selected control and auxiliary quantities to minimize or maximize an objective function. The controller is used to perform a multiple input/multiple output control process to form a set of manipulated variable values from the target values.

Im Folgenden werden bevorzugte Ausführungsformen anhand der Zeichnungen beschrieben. Es zeigen:

  • 1 ist ein Blockschema eines Prozesssteuerungssystems einschließlich eines Steuermoduls mit einem fortgeschrittenen Controller-Funktionsblock, der einen Optimierer mit einem MPC-Controller beinhaltet;
  • 2 ist ein Blockschema des fortgeschrittenen Controller-Funktionsblocks von 1 mit integriertem Optimierer und MPC-Controller;
  • 3 ist ein Ablaufdiagramm, das eine Art und Weise darstellt, den integrierten Optimierer und den MPC-Controller-Funktionsblock von 2 festzulegen und zu installieren;
  • 4 ist ein Ablaufdiagramm, das den Betrieb des integrierten Optimiereres und MPC-Controllers von 2 während eines Online-Prozessablaufs darstellt;
  • 5 ist eine Bildschirmanzeige eines Konfigurationsprogramms, die einen fortgeschrittenen Steuer-/Regelblock in einem Steuermodul darstellt, das eine Prozesssteuerung durchführt;
  • 6 ist eine Bildschirmanzeige einer Konfigurationsprogramms, die ein Dialogfeld darstellt, das die Eigenschaften des fortgeschrittenen Steuer-/Regelblocks von 5 anzeigt;
  • 7 ist eine Bildschirmanzeige eines Konfigurationsprogramms, das eine Art und Weise darstellt, Eingaben in einen oder Ausgaben aus einem in der Anzeige von 5 gezeigten fortgeschrittenen Steuerfunktionsblock auszuwählen oder einzugeben;
  • 8 ist eine Bildschirmanzeige, die von einem Konfigurationsprogramm bereitgestellt wird, das es einem Benutzer oder Bediener ermöglicht, eine aus einem Satz von Zielfunktionen zur Verwendung bei der Festlegung eines fortgeschrittenen Steuer-/Regelblocks auszuwählen;
  • 9 ist eine Bildschirmanzeige eines Testbildschirms, der dazu verwendet werden kann, es einem Benutzer zu ermöglichen, ein Prozessmodell während des Festlegens eines fortgeschrittenen Steuer-/Regelblocks zu testen und zu erzeugen;
  • 10 ist eine Bildschirmanzeige eines Konfigurationsprogramms, das mehrere Schrittantworten darstellt, die das Ansprechverhalten verschiedener Steuer- und Hilfsgrößen auf eine bestimmte Stellgröße anzeigen;
  • 11 ist eine Bildschirmanzeige eines Konfigurationsprogramms, das eine Art und Weise des Auswählens der Steuer- oder Hilfsgrößen von 9 darstellt, die zuvor der Stellgröße zugeordnet wurden;
  • 12 ist eine Bildschirmanzeige eines Konfigurationsprogramms, das mehrere Schrittantworten darstellt, die das Ansprechen derselben Steuer- oder Hilfsgröße auf andere der Stellgrößen anzeigt;
  • 13 ist eine Bildschirmanzeige eines Konfigurationsprogramms, das eine andere Art und Weise darstellt, Steuer- oder Hilfsgrößen auszuwählen, die Stellgrößen zugeordnet werden sollen;
  • 14 ist eine Bildschirmanzeige eines Konfigurationsprogramms, das eine andere Art und Weise darstellte, Steuer- oder Hilfsgrößen auszuwählen, die Stellgrößen zugeordnet werden sollen;
  • 15 ist eine Bildschirmanzeige, die die Art und Weise darstellt, eine der Schrittantworten eines Modells zu kopieren, die zur Verwendung in einem anderen Modell kopiert werden soll;
  • 16 ist eine Bildschirmanzeige, die die Art und Weise darstellt, eine Schrittantwortkurve zu sichten und zu ändern;
  • 17 ist eine Bildschirmanzeige, die einen Dialogbildschirm darstellt, welcher dem Bediener während des Betriebs des fortgeschrittenen Steuer-/Regelblocks Daten zur Verfügung stellt; und
  • 18 ist eine Bildschirmanzeige, die einen Diagnosebildschirm darstellt, der einem Benutzer oder Bediener zur Verfügung gestellt werden kann, um am fortgeschrittenen Steuer-/Regelblock eine Diagnose vorzunehmen.
Preferred embodiments are described below with reference to the drawings. Show it:
  • 1 Figure 13 is a block diagram of a process control system including a control module with an advanced controller function block that includes an optimizer with an MPC controller;
  • 2 is a block diagram of the advanced controller function block of 1 with integrated optimizer and MPC controller;
  • 3 FIG. 12 is a flowchart showing one way to use the integrated optimizer and MPC controller function block of FIG 2 to define and install;
  • 4 is a flow chart showing the operation of the integrated optimizer and MPC controller of 2 during an online process flow;
  • 5 Figure 12 is a configuration program screen display showing an advanced control block in a control module that performs process control;
  • 6 is a screen shot of a configuration program showing a dialog box showing the properties of the advanced control block of 5 indicates;
  • 7 is a screen display of a configuration program that shows a way to get input into or output from a display of 5 select or enter advanced control function block shown;
  • 8th is a screen display provided by a configuration program that allows a user or operator to select one of a set of target functions for use in specifying an advanced control block;
  • 9 Figure 13 is a screen display of a test screen that can be used to allow a user to test and create a process model during the definition of an advanced control block;
  • 10 Figure 13 is a screen display of a configuration program displaying a plurality of step responses indicative of the response of various control and auxiliary variables to a particular manipulated variable;
  • 11 is a screen display of a configuration program showing a way of selecting the control or auxiliary variables of 9 represents that were previously associated with the manipulated variable;
  • 12 Figure 13 is a screen display of a configuration program showing multiple step responses indicating the same control or auxiliary variable's response to other ones of the manipulated variables;
  • 13 Figure 13 is a screen display of a configuration program showing another way of selecting control or auxiliary variables to be associated with manipulated variables;
  • 14 Figure 13 is a screen display of a configuration program showing another way of selecting control or auxiliary variables to be associated with manipulated variables;
  • 15 Figure 12 is a screen display showing the manner of copying one of a model's step responses to be copied for use in another model;
  • 16 Figure 12 is a screen display showing the way to view and change a step response curve;
  • 17 Figure 12 is a screen display showing a dialog screen that provides data to the operator during operation of the advanced control block; and
  • 18 is a screen display that presents a diagnostics screen that can be made available to a user or operator to diagnose the advanced control block.

Nunmehr umfasst mit Bezug auf 1 ein Prozesssteuerungssystem 10 einen Prozess-Controller 11, der kommunikativ mit einer Datensammlung 12 und einem oder mehreren Hauptarbeitsplatzrechnern oder Computern 13 verbunden ist (die von irgendeiner Art von PC, Arbeitsplatzrechner, etc. sein können), wovon jeder einen Anzeigebildschirm 14 aufweist. Der Controller 11 ist über Eingabe-/Ausgabekarten (I/O-Karten) 26 und 28 mit Feldgeräten 15 - 22 verbunden. Die Datensammlung 12 kann von irgendeiner gewünschten Art von Datensammeleinheit mit irgendeiner gewünschten Art von Speicher und irgendeiner gewünschten oder bekannten Software, Hardware oder Firmware zum Speichern von Daten sein, und kann getrennt (wie in 1 gezeigt) oder ein Teil von einem der Arbeitsplatzrechner 13 sein. Der Controller 11, der beispielsweise der Controller DeltaV™ sein kann, der von Fisher-Rosemount Systems, Inc. vertrieben wird, ist an die Hauptrechner 13 und die Datensammlung 12 beispielsweise über einen Ethernet-Anschluss oder irgendein anderes Kommunikationsnetz 29 angeschlossen. Bei dem Kommunikationsnetz 29 kann es sich um eines lokalen Datennetzes (LAN), ein überregionales Netz (WAN), ein Telekommunikationsnetzes, etc. handeln, und es kann unter Verwendung festverdrahteter oder drahtloser Technologie implementiert sein. Der Controller 11 ist mittels irgendeiner gewünschten Hard- und Software, die beispielsweise standardmäßigen 4 - 20 ma-Geräten zugeordnet ist und/- oder irgendeinem intelligenten Kommunikationsprotokoll wie dem FOUNDATION-Feldbusprotokoll (Fieldbus), dem HART-Protokoll, etc., kommunikativ mit den Feldgeräten 15 - 22 verbunden.Now with reference to 1 a process control system 10, a process controller 11 communicatively connected to a data collection 12 and one or more host workstations or computers 13 (which may be any type of PC, workstation, etc.), each having a display screen 14. The controller 11 is connected via input/output (I/O) cards 26 and 28 to field devices 15-22. Data collection 12 may be any desired type of data collection unit with any desired type of memory and any desired or known software, hardware or firmware for storing data, and may be separate (as in 1 shown) or part of one of the workstations 13. The controller 11, which may be, for example, the DeltaV™ controller sold by Fisher-Rosemount Systems, Inc., is connected to the host computers 13 and the data collection 12 via an Ethernet connection or some other communications network 29, for example. Communications network 29 may be a local area network (LAN), wide area network (WAN), telecommunications network, etc., and may be implemented using wired or wireless technology. The controller 11 is communicative with the Field devices 15 - 22 connected.

Bei den Feldgeräten 15 - 22 kann es sich um irgendwelche Arten von Geräten handeln, wie Sensoren, Ventile, Messwertgeber, Steller, etc., während es sich bei den I/O-Karten 26 und 28 um irgendwelche Arten von I/O-Geräten handeln kann, die irgendeinem gewünschten Kommunikations- oder Controllerprotokoll entsprechen. In der in 1 dargestellten Ausführungsform sind die Feldgeräte 15 - 18 standardmäßige 4-20 ma-Geräte, die über analoge Leitungen mit der I/O-Karte 26 kommunizieren, während die Feldgeräte 19 - 22 intelligente Geräte sind, wie Fieldbus-Feldgeräte, die über einen digitalen Bus mit der I/O-Karte 28 unter Verwendung von Fieldbusprotokollkommunikation kommunizieren. Selbstverständlich könnten die Feldgeräte 15 - 22 auch irgendeinem anderen Standard oder irgendwelchen anderen Standards oder Protokollen entsprechen, einschließlich derer, die zukünftig noch entwickelt werden.Field devices 15-22 can be any type of device, such as sensors, valves, transmitters, actuators, etc., while I/O cards 26 and 28 can be any type of I/O device conforming to any desired communication or controller protocol. in the in 1 In the illustrated embodiment, field devices 15-18 are standard 4-20 ma devices that communicate with I/O card 26 over analog lines, while field devices 19-22 are intelligent devices, such as fieldbus field devices, that communicate over a digital bus communicate with the I/O card 28 using Fieldbus protocol communications. Of course, the field devices 15-22 could conform to any other standard or standards or protocols, including those that may be developed in the future.

Der Controller 11, welcher einer von vielen verteilten Controllern innerhalb der Anlage 10 sein kann, weist in sich mindestens einen Prozessor auf, implementiert oder wacht über ein oder mehrere Prozesssteuerungsprogramm/e, die darin gespeicherte oder sonstwie damit verbundene Steuerkreise umfassen kann/können. Der Controller 11 kommuniziert auch mit den Geräten 15 - 22, den Hauptcomputern 13 und der Datensammlung 12, um einen Prozess in irgendeiner gewünschten Weise zu steuern. Es wäre festzuhalten, dass irgendwelche hier beschriebenen Steuerprogramme oder -elemente Teile davon aufweisen können, die, falls gewünscht, von anderen Controllern oder Geräten implementiert oder ausgeführt werden. Gleichermaßen können die hier beschriebenen Steuerprogramme oder -elemente, die im Prozesssteuerungssystem 10 implementiert werden sollen, irgendeine Form annehmen, die Soft-, Firm- und Hardware, etc. umfasst. Zu Zwecken dieser Erläuterung kann ein Prozesssteuerungselement irgendein Teil oder Abschnitt eines Prozesssteuerungssystems sein, der/das beispielsweise ein Programm, einen Block oder ein Modul umfasst, die auf irgendeinem computerlesbaren Medium gespeichert sind. Steuerprogramme, welche Module oder irgendein Teil eines Steuervorgangs sein können, wie ein Unterprogramm, Teile eines Unterprogramms (wie Befehlszeilen), etc., können in jedem gewünschten Softwareformat implementiert werden, wie demjenigen, das KOP-Logik, Sequenzfunktionskurven, Funktionsblockdiagramme, objektorientierte Programmierung oder irgendeine andere Software-Programmiersprache oder irgendein anderes Software-Entwurfsparadigma verwendet. Genauso können die Steuerprogramme beispielsweise in einem oder mehreren EPROM/s, EEPROM/s, anwendungsspezifischen integrierten Schaltungen (ASICs) oder irgendwelchen anderen Hard- oder Firmwarelementen festcodiert sein. Überdies können die Steuerprogramme mittels irgendwelcher Entwurfs-Tools einschließlich graphischer Entwurfs-Tools oder irgendeiner anderen Art von Software-/Hardware-/Firmware-Programmier- oder Entwurfstools festlegt werden. Auf diese Weise kann der Controller 11 so konfiguriert werden, dass er auf irgendeine gewünschte Weise eine Steuerstrategie oder ein Steuerprogramm implementiert.The controller 11, which may be one of many distributed controllers within the plant 10, has within it at least one processor, implements or oversees one or more process control programs, which may include control circuitry stored therein or otherwise associated therewith. The controller 11 also communicates with the devices 15-22, the main computers 13 and the data collection 12 to control a process in any desired manner. It should be noted that any control programs or elements described herein may have portions thereof that are implemented or executed by other controllers or devices, if desired. Likewise, the control programs or elements described herein to be implemented in process control system 10 may take any form, including software, firmware, hardware, etc. For purposes of this discussion, a process control element may be any part or portion of a process control system, including, for example, a program, block, or module stored on any computer-readable medium. Control programs, which can be modules or any part of a control process, such as a subprogram, parts of a subprogram (like command lines), etc., can be implemented in any desired software format, such as that using ladder logic, sequence function curves, function block diagrams, object-oriented programming, or uses any other software programming language or any other software design paradigm. Likewise, the control programs may be hard-coded into, for example, one or more EPROM/s, EEPROM/s, Application Specific Integrated Circuits (ASICs), or any other hardware or firmware element. Furthermore, the control programs can be defined using any design tools including graphical design tools or any other type of software/hardware/firmware programming or design tools. In this way, the controller 11 can be configured to implement a control strategy or program in any desired manner.

In einer Ausführungsform implementiert der Controller 11 eine Steuerstrategie, die einsetzt, was im Allgemeinen als Funktionsblöcke bezeichnet wird, wobei jeder Funktionsblock ein Teil oder Gegenstand eines übergeordneten Steuerprogramms ist und zusammen mit anderen Funktionsblöcken (über Kommunikation, die Verknüpfungen oder „Links“ genannt werden) arbeitet, um Prozesssteuerkreise innerhalb des Prozesssteuerungssystems 10 zu implementieren. Die Funktionsblöcke üben typischerweise eine Eingabefunktion aus, wie diejenige, die mit einem Messwertgeber, einem Sensor oder einem anderen Messgerät für Prozessparameter zusammenhängt, eine Steuerfunktion wie derjenigen, die mit einem Steuerprogramm zusammenhängt, das PID-, Fuzzy-Regelung etc. durchführt, oder eine Ausgabefunktion, welche den Betrieb irgendeines Geräts wie einem Ventil steuert, um irgendeine physikalische Funktion innerhalb des Prozesssteuerungssystems 10 zu erfüllen. Natürlich gibt es hybride und andere Arten von Funktionsblöcken. Funktionsblöcke können im Controller 11 gespeichert und von ihm ablaufen gelassen werden, was typischerweise der Fall ist, wenn diese Funktionsblöcke für oder in Verbindung mit standardmäßigen 4 - 20 ma-Geräten und manchen Arten von intelligenten Feldgeräten wie HART-Geräten verwendet werden, oder können in den Feldgeräten selbst gespeichert und durch diese implementiert werden, was bei FieldbusGeräten der Fall sein kann. Während die Beschreibung des Steuersystems hier unter Verwendung einer Funktionsblocksteuerstrategie beschrieben wird, welche ein objektorientiertes Programmierparadigma einsetzt, könnten die Steuerstrategie oder Steuerkreise oder -module auch unter Verwendung anderer Programmkonventionen implementiert oder entworfen werden, wie KOP-Logik, Sequenzfunktionskurven, etc., oder unter Verwendung irgendeiner anderen Programmiersprache oder irgendeines anderen Programmierparadigmas.In one embodiment, the controller 11 implements a control strategy that employs what are commonly referred to as functional blocks, each functional block being a part or object of a higher-level control program and together with other functional blocks (via communications called shortcuts or "links") operates to implement process control loops within the process control system 10 . The function blocks typically perform an input function, such as that associated with a transmitter, sensor, or other measurement of process parameters, a control function, such as that associated with a control program that performs PID, fuzzy control, etc., or a Output function showing the operation any device, such as a valve, to perform any physical function within the process control system 10. Of course, there are hybrid and other types of functional blocks. Function blocks can be stored and run by the controller 11, which is typically the case when these function blocks are used for or in connection with standard 4 - 20 ma devices and some types of intelligent field devices such as HART devices, or can be stored in and implemented by the field devices themselves, which may be the case with Fieldbus devices. While the description of the control system is described here using a function block control strategy that employs an object-oriented programming paradigm, the control strategy or control circuits or modules could also be implemented or designed using other programming conventions, such as LAD logic, sequence function curves, etc., or using any other programming language or any other programming paradigm.

Wie durch den erweiterten Block 30 von 1 dargestellt ist, kann der Controller 11 mehrere Einzelkreis-Steuerprogramme umfassen, die als Programme 32 und 34 dargestellt sind, und kann einen oder mehrere fortgeschrittene Regel-/Steuerkreise implementieren, der/die als Regel-/Steuerkreis 36 dargestellt ist/- sind. Jeder derartige Kreis wird typischerweise als Regel-/Steuermodul bezeichnet. Die Einzelkreis-Steuerprogramme 32 und 34 sind so dargestellt, dass sie eine Einzelkreissteuerung unter Verwendung eines Einzeleingabe-/Einzelausgabe-Fuzzy-Regelblocks bzw. eines Einzeleingabe-/Einzelausgabe-PID-Regelblocks durchführen, die an passende Funktionsblöcke analoger Eingang (AI) und analoger Ausgang (AO) angeschlossen sind, welche Prozesssteuergeräten wie Ventilen, Messgeräten wie Temperatur- und Druckmesswertgebern oder irgendeinem anderen Gerät innerhalb des Prozesssteuerungssystems 10 zugeordnet sein können. Der fortgeschrittene Steuer-/Regelkreis 36 ist so dargestellt, dass er einen fortgeschrittenen Steuer-/Regelblock 38 umfasst, dessen Eingänge kommunikativ mit zahlreichen AI-Funktionsblöcken und Ausgänge kommunikativ mit zahlreichen AO-Funktionsblöcken verbunden sind, obwohl die Eingänge und Ausgänge des fortgeschrittenen Steuer-/Regelblocks 38 auch kommunikativ mit irgendwelchen anderen gewünschten Funktionsblöcken oder Steuerelementen verbunden sein können, um andere Arten von Eingaben zu empfangen und andere Arten von Steuerausgaben bereitzustellen. Wie weiter noch beschrieben wird, kann der fortgeschrittene Steuer-/Regelblock 38 ein Steuer-/Regelblock sein, der ein Modellvorhersagesteuerprogramm mit einem Optimierer beinhaltet, um eine optimierte Steuerung des Prozesses oder eines Teils des Prozesses durchzuführen. Während der fortgeschrittene Steuer-/Regelblock 38 hier so beschrieben ist, dass er einen Modellvorhersage-Steuer-/Regelblock (MPC-Block) umfasst, könnte der fortgeschrittene Steuer-/Regelblock 38 auch irgendein/e andere/s Mehrfacheingabe-/Mehrfachausgabe-Steuerprogramm oder -prozedur umfassen wie ein Programm für neuronale Netzmodellierung oder -steuerung, ein multivariables Steuerprogramm in Fuzzy-Programmlogik, etc. Es wird klar, dass die in 1 dargestellten Funktionsblöcke, die den fortgeschrittenen Steuer-/Regelblock 38 umfassen, vom Controller 11 ausgeführt werden können, oder alternativ in irgendeinem anderen Verarbeitungsgerät angeordnet und von diesem ausgeführt werden können, wie einem der Arbeitsplatzrechner 13 oder sogar einem der Feldgeräte 19 - 22.As indicated by the extended block 30 of 1 1, controller 11 may include multiple single loop control programs, shown as programs 32 and 34, and may implement one or more advanced control loops, shown as control loop 36. Each such circuit is typically referred to as a control module. The single loop control programs 32 and 34 are shown as performing single loop control using a single input/single output fuzzy control block and a single input/single output PID control block, respectively, connected to appropriate analog input (AI) and analog input (AI) function blocks Output (AO) which may be associated with process control devices such as valves, measurement devices such as temperature and pressure transmitters, or any other device within the process control system 10. The advanced control loop 36 is illustrated as including an advanced control block 38 having inputs communicatively connected to various AI function blocks and outputs communicatively connected to various AO function blocks, although the inputs and outputs of the advanced control /rule blocks 38 may also be communicatively connected to any other desired functional blocks or control elements to receive other types of inputs and provide other types of control outputs. As will be further described, advanced control block 38 may be a control block that includes a model predictive handler with an optimizer to perform optimized control of the process or a portion of the process. While advanced control block 38 is described herein as including a model predictive (MPC) control block, advanced control block 38 could be any other multiple-input, multiple-output control program or procedure such as a program for neural network modeling or control, a multivariable control program in fuzzy program logic, etc. It will be clear that the in 1 The functional blocks illustrated, comprising the advanced control block 38, may be executed by the controller 11, or alternatively may be located in and executed by any other processing device, such as one of the workstations 13 or even one of the field devices 19-22.

Wie in 1 dargestellt, umfasst einer der Arbeitsplatzrechner 13 ein Generatorprogramm 40 für einen fortgeschrittenen Steuer-/Regelblock, das dazu verwendet wird, den fortgeschrittenen Steuer-/Regelblock 38 festzulegen, herunterzuladen und zu implementieren. Während das Generatorprogramm 40 für den fortgeschrittenen Steuer-/Regelblock in einem Speicher innerhalb des Arbeitsplatzrechners 13 gespeichert und darin von einem Prozessor ausgeführt werden kann, kann dieses Programm (oder irgendein Teil davon) zusätzlich oder alternativ in irgendeinem anderen Gerät innerhalb des Prozesssteuerungssystems 10, falls das so gewünscht wird, gespeichert und von diesem ausgeführt werden. Allgemein ausgedrückt umfasst das Generatorprogramm 40 für den fortgeschrittenen Steuer-/Regelblock ein Steuer-/Regelblockfestlegungsprogramm 42, das einen fortgeschrittenen Steuer-/Regelblock festlegt, wie später hier noch beschrieben wird, und das diesen fortgeschrittenen Steuer-/Regelblock in das Prozesssteuerungssystem einbindet, ein Prozessmodellierungsprogramm 44, das ein Prozessmodell für den Prozess oder einen Teil davon erzeugt, basierend auf Daten, die durch den fortgeschrittenen Steuer-/Regelblock erfasst werden, ein Steuerlogikparameterfestlegungsprogramm 46, das Steuerlogikparameter für den fortgeschrittenen Steuer-/Regelblock aus dem Prozessmodell erzeugt, und das diese Steuerlogikparameter im fortgeschrittenen Steuer-/Regelblock zur Verwendung bei der Prozesssteuerung speichert und herunterlädt, und einen Optimierer 48, der ein Optimierungsprogramm zur Verwendung mit dem fortgeschrittenen Steuer-/Regelblock festlegt. Selbstverständlich können die Programme 42, 44, 46 und 48 aus einer Reihe unterschiedlicher Programme bestehen, wie einem ersten Programm, das ein fortgeschrittenes Steuerelement festlegt, dessen Steuereingänge dazu ausgelegt sind, Prozessausgaben zu empfangen, und dessen Steuerausgänge dazu ausgelegt sind, Steuersignale an die Prozesseingänge zu schicken, einem zweiten Programm, das es einem Benutzer ermöglicht, das fortgeschrittene Steuerelement innerhalb des Prozesssteuerungsprogramms (welches irgendein gewünschtes Konfigurationsprogramm sein kann) herunterzuladen und kommunikativ einzubinden, einem dritten Programm, das das fortgeschrittene Steuerelement dazu verwendet, jeder der Prozesseingaben Erregersignalformen zu verleihen, einem vierten Programm, das das fortgeschrittene Steuerelement dazu verwendet, um Daten zu erfassen, die das Ansprechen jeder der Prozessausgaben auf die Erregersignalformen wiederspiegelt, einem fünften Programm, das selbst auswählt oder es einem Benutzer ermöglicht, einen Satz Eingaben für den fortgeschrittenen Steuer-/Regelblock auszuwählen, einem sechsten Programm, das ein Prozessmodell festlegt, einem siebten Programm, das fortgeschrittene Steuerlogikparameter aus dem Prozessmodell bildet, einem achten Programm, das die fortgeschrittene Steuerlogik und, falls nötig, das Prozessmodell in das fortgeschrittene Steuerelement einbringt, um es dem fortgeschrittenen Steuerelement zu ermöglichen, den Prozess zu steuern, und einem neunten Programm, das selbst auswählt oder es einem Benutzer ermöglicht, einen Optimierer zu Verwendung im fortgeschrittenen Steuer-/Regelblock 38 auszuwählen.As in 1 As illustrated, one of the workstations 13 includes an advanced control block generator program 40 which is used to define, download and implement the advanced control block 38 . While advanced control block generator program 40 may be stored in memory within workstation 13 and executed therein by a processor, this program (or any portion thereof) may additionally or alternatively reside in any other device within process control system 10, if that is so desired can be stored and executed by it. In general terms, the advanced control block generator program 40 includes a control block specification program 42 that specifies an advanced control block, as described later herein, and that incorporates this advanced control block into the process control system process modeling program 44 that creates a process model for the process or part thereof based on data collected by the advanced control block, a control logic parameter setting program 46 that creates control logic parameters for the advanced control block from the process model, and the stores and downloads these control logic parameters in the advanced control block for use in process control, and an optimizer 48 which defines an optimization program for use with the advanced control block. Of course, the programs 42, 44, 46 and 48 can consist of a number of different programs, such as a first program that defines an advanced control element whose control inputs are adapted to receive process outputs and whose control outputs are adapted to send control signals to the process inputs to send, a second program that enables a user to download and communicatively include the advanced control within the process control program (which may be any desired configuration program), a third program that uses the advanced control to impart excitation waveforms to each of the process inputs, a fourth program that uses the advanced control to collect data reflecting the response of each of the process outputs to the excitation waveforms, a fifth program that itself selects or allows a user to select a set of inputs for the advanced control block, a sixth program that specifies a process model, a seventh program that forms advanced control logic parameters from the process model, an eighth program that defines the advanced control logic and , if necessary, injects the process model into the advanced control to allow the advanced control to control the process, and a ninth program that selects itself or allows a user to use an optimizer in the advanced Select control / regulation block 38.

2 stellt ein detaillierteres Blockschema einer Ausführungsform des fortgeschrittenen Steuer-/Regelblocks 38 dar, der kommunikativ mit einem Prozess 50 gekoppelt ist, wobei klar ist, dass der Steuer-/Regelblock 38 einen Satz von Stellgrößen MVs erzeugt, die anderen Funktionsblöcken zur Verfügung gestellt werden, die wiederum an Steuereingänge des Prozesses 50 angeschlossen sind. Wie in 2 dargestellt ist, umfasst der fortgeschrittene Steuer-/Regelblock 38 einen MPC-Controllerblock 52, einen Optimierer 54, einen Zielumsetzungsblock 55, ein Schrittantwortmodell oder eine Steuermatrix 56 und einen Eingabebearbeitungs-/Filterblock 58. Bei dem MPC-Controller 52 kann es sich um irgendeinen Standard handeln, ein/e M-mal-M-MPC-Programm oder -prozedur (wobei M irgendeine Zahl größer Eins sein kann) mit derselben Anzahl von Ein- und Ausgaben. Der MPC-Controller 52 empfängt als Eingaben einen Satz von N Steuer- und Hilfsgrößen CV und AV (welche Vektoren von Werten sind), wie sie im Prozess 50 gemessen werden, einen Satz von Störgrößen DV, welche bekannte oder erwartete Änderungen oder Störungen sind, mit denen der Prozess 50 zu irgendeiner Zeit in der Zukunft beaufschlagt wird, und einen Satz von Beharrungszustandsziel- und -hilfsgrößen CVT und AVT, die vom Zielumsetzungsblock 55 bereitgestellt werden. Der MPC-Controller 52 verwendet diese Eingaben, um den Satz von M Stellgrößen MV (in Form von Steuersignalen) festzulegen, und liefert die Signale der Stellgröße MV, um den Prozess 50 zu steuern. 2 Figure 12 illustrates a more detailed block diagram of one embodiment of the advanced control block 38 communicatively coupled to a process 50, it being understood that the control block 38 generates a set of manipulated variables MVs that are made available to other functional blocks, which in turn are connected to control inputs of the process 50. As in 2 As shown, the advanced control block 38 includes an MPC controller block 52, an optimizer 54, a goal translation block 55, a step response model or control matrix 56, and an input manipulation/filter block 58. The MPC controller 52 can be any Act standard, an M-by-M MPC program or procedure (where M can be any number greater than one) with the same number of inputs and outputs. The MPC controller 52 receives as inputs a set of N control and auxiliary variables CV and AV (which are vectors of values) as measured in the process 50, a set of disturbance variables DV which are known or expected changes or disturbances, applied to the process 50 at some time in the future, and a set of steady state target and auxiliary quantities CVT and AV T provided by the target translation block 55 . The MPC controller 52 uses these inputs to determine the set of M manipulated variables MV (in the form of control signals) and provides the manipulated variable MV signals to control the process 50 .

Darüber hinaus berechnet der MPC-Controller 52 noch einen Satz von Vorhersagebeharrungszustandssteuergrößen CVSS und Vorhersagebeharrungszustandshilfsgrößen AVSS und stellt sie, zusammen mit einem Satz von Vorhersagebeharrungszustandsstellgrößen MVSS, die die Vorhersagewerte der Steuergrößen CV, der Hilfsgrößen AV bzw. der Stellgrößen MV darstellen, mit dem Vorhersagehorizont dem Eingabeverarbeitungs-/Filterblock 58 zur Verfügung. Der Eingabeverarbeitungs-/Filterblock 58 verarbeitet die bestimmten Vorhersagebeharrungszustandswerte der Steuer-, Hilfs- und Stellgrößen CVSS, AVSS und MVSS, um die Auswirkungen von Rauschen und nicht vorhergesagten Störungen auf diese Größen zu reduzieren. Selbstverständlich kann der Eingabeverarbeitungs-/Filterblock 58 ein Tiefpassfilter oder irgendeine andere Eingabeverarbeitung umfassen, die die Auswirkungen von Rauschen, Modellierungsfehler und Störungen auf diese Werte reduziert, und liefert die gefilterten Steuer-, Hilfs- und Stellgrößen CVSSfil, AVSSfil und MVSSfil an den Optimierer 54.In addition, the MPC controller 52 calculates a set of predicted steady-state control variables CV SS and predicted steady-state auxiliary variables AV SS and provides them, together with a set of predicted steady-state manipulated variables MV SS , which represent the predicted values of the controlled variables CV, the auxiliary variables AV and the manipulated variables MV available to the input processing/filtering block 58 in the prediction horizon. The input processing/filtering block 58 processes the determined prediction steady-state values of the control, auxiliary, and manipulated variables CV SS , AV SS , and MV SS to reduce the effects of noise and unpredicted disturbances on these variables. Of course, the input processing/filtering block 58 may include a low-pass filter or any other input processing that reduces the effects of noise, modeling errors, and interference on these values, and provides the filtered control, auxiliary, and manipulated variables CV SSfil , AV SSfil , and MV SSfil the optimizer 54.

Der Optimierer 54 ist in diesem Beispiel ein linear programmierender (LP) Optimierer, der eine Zielfunktion (OF), die von einem Auswahlblock 62 bereitgestellt werden kann, verwendet, um eine Prozessoptimierung durchzuführen. Alternativ könnte der Optimierer 54 ein quadratisch programmierender Optimierer sein, welcher ein Optimierer mit einem linearen Modell und einer quadratischen Zielfunktion ist. Allgemein ausgedrückt, legt die Zielfunktion OF Kosten und Nutzen fest, die jeder von einer Anzahl von Steuer-, Hilfs- und Stellgrößen zugeordnet sind, und der Optimierer 54 stellt Zielwerte für diese Größen ein, indem er die Zielfunktion maximiert oder minimiert. Der Auswahlblock 62 kann die Zielfunktion OF auswählen, die dem Optimierer 54 als eine eines Satzes von vorabgespeicherten Zielfunktionen 64 zur Verfügung gestellt wird, welche auf mathematische Weise verschiedene Arten und Weisen zur Definition des optimalen Ablaufs des Prozesses 50 darstellen. Beispielsweise kann eine der vorabgespeicherten Zielfunktionen 64 so konfiguriert sein, dass sie den Gewinn der Anlage maximiert, eine andere der Zielfunktionen 64 kann so konfiguriert sein, dass sie den Einsatz eines bestimmten Rohmaterials, bei dem Lieferknappheit herrscht, minimiert, während noch eine andere der Zielfunktionen 64 so konfiguriert sein kann, dass sie die Qualität des im Rahmen des Prozesses 50 herzustellenden Produkts maximiert. Allgemein ausgedrückt verwendet die Zielfunktion Kosten oder Nutzen, die mit jeder Bewegung einer Steuer-, Hilfs- und Stellgröße zusammenhängen, um den optimalsten Prozessoperationspunkt innerhalb eines Satzes annehmbarer Punke zu bestimmen, wie sie durch die Sollwerte oder -bereiche der Steuergrößen CV und die Grenzen der Hilfs- und Stellgrößen AV und MV definiert sind. Selbstverständlich kann jede gewünschte Zielfunktion anstelle der oder zusätzlich zu denjenigen verwendet werden, die hier beschrieben sind, einschließlich von Zielfunktionen, die jeweils mehrere Angelegenheiten wie Einsatz von Rohmaterial, Profitabilität, etc. in gewisser Weise optimieren.The optimizer 54 in this example is a linear programming (LP) optimizer that uses an objective function (OF), which may be provided by a selection block 62, to perform process optimization. Alternatively, the optimizer 54 could be a quadratic programming optimizer, which is an optimizer with a linear model and a quadratic objective function. In general terms, the objective function OF specifies costs and benefits associated with each of a number of control, auxiliary, and manipulated variables, and the optimizer 54 sets target values for these variables by maximizing or minimizing the objective function. The selection block 62 may select the objective function OF, which is provided to the optimizer 54 as one of a set of pre-stored objective functions 64 that mathematically represent various ways of defining the optimal flow of the process 50 . For example, one of the pre-stored objective functions 64 may be configured to maximize plant profit, another of the objective functions 64 may be configured to minimize the use of a particular raw material that is in shortage of supply, while still another of the objective functions 64 can be configured to maximize the quality of the product to be manufactured as part of the process 50. In general terms, the objective function uses costs or benefits associated with each movement of a control, auxiliary, and manipulated variable to determine the most optimal process operating point within a set of acceptable points as defined by the CV setpoints or ranges and the limits of the Auxiliary and manipulated variables AV and MV are defined. Of course, any desired objective function may be used in place of or in addition to those described herein, including objective functions that each optimize several issues such as raw material usage, profitability, etc. in some way.

Um eine der Zielfunktionen 64 auszuwählen, kann ein Benutzer oder Bediener eine Angabe zu der zu verwendenden Zielfunktion 64 machen, indem er diese Zielfunktion auf einem Bediener- oder Nutzerterminal (wie einem der Arbeitsplatzrechner 13 von 1) auswählt, welche Auswahl über eine Eingabe 66 dem Auswahlblock 62 zur Verfügung gestellt wird. Im Ansprechen auf die Eingabe 66 stellt der Auswahlblock 62 die ausgewählte Zielfunktion OF dem Optimierer 54 zur Verfügung. Selbstverständlich kann der Benutzer oder Bediener die Zielfunktion ändern, die während des Prozessablaufs verwendet wird. Falls gewünscht kann eine Standardzielfunktion in Fällen verwendet werden, bei denen der Benutzer keine Zielfunktion bereitstellt oder auswählt. Eine mögliche Standardzielfunktion wird nachstehend ausführlicher erläutert. Obwohl sie als Teil des fortgeschrittenen Steuer-/Regelblocks 38 dargestellt sind, können die verschiedenen Zielfunktionen auch im Bedienerterminal 13 von 1 gespeichert sein, und eine dieser Zielfunktionen kann dem fortgeschrittenen Steuer-/Regelblock 38 während des Festlegens oder der Generierung dieses Blocks zur Verfügung gestellt werden.In order to select one of the objective functions 64, a user or operator can provide an indication of the objective function 64 to be used by entering that objective function on an operator or user terminal (such as one of the workstations 13 of 1 ) selects which selection is made available to the selection block 62 via an input 66 . In response to the input 66, the selection block 62 provides the selected objective function OF to the optimizer 54. Of course, the user or operator can change the objective function used during the process flow. If desired, a default objective function can be used in cases where the user does not provide or select an objective function. A possible default objective function is explained in more detail below. Although shown as part of the advanced control block 38, the various target functions can also be implemented in the operator terminal 13 of FIG 1 may be stored, and one of these objective functions may be made available to the advanced control block 38 during the definition or generation of that block.

Zusätzlich zur Zielfunktion OF erhält der Optimierer 54 als Eingaben einen Satz Steuergrößensollwerte (welche typischerweise vom Bediener festgelegte Sollwerte für die Steuergrößen CV des Prozesses 50 sind und vom Bediener oder einem anderen Benutzer geändert werden können) und einen Bereich und eine Gewichtung oder Priorität, der/die den Steuergrößen CV jeweils zugeordnet ist. Der Optimierer 54 erhält darüber hinaus einen Satz Bereichs- oder Zwangsgrenzen und einen Satz Gewichtungen oder Prioritäten für die Hilfsgrößen AV und einen Grenzensatz für die Stellgrößen MV, die zur Steuerung des Prozesses 50 verwendet werden. Allgemein ausgedrückt definieren die Bereiche für die Hilfs- und Stellgrößen die Grenzen (typischerweise basierend auf den physikalischen Eigenschaften der Anlage) für die Hilfs- und Stellgrößen, während die Bereiche für die Steuergrößen einen Bereich bereitstellen, in welchem die Steuergrößen für eine zufriedenstellende Steuerung des Prozesses wirken können. Die Gewichtungen für die Steuer- und Hilfsgrößen legen die relative Wichtigkeit der Steuer- und der Hilfsgrößen im Optimierungsprozess in Bezug aufeinander fest und können unter gewissen Umständen dazu verwendet werden, es dem Optimierer 54 zu ermöglichen, eine Steuerziellösung zu generieren, falls einige der Zwangsgrenzen verletzt werden.In addition to the objective function OF, the optimizer 54 receives as inputs a set of control variable setpoints (which are typically operator specified setpoints for the control variables CV of the process 50 and can be changed by the operator or another user) and a range and weight or priority that/ which is assigned to the control variables CV. The optimizer 54 also receives a set of range or constraint limits and a set of weights or priorities for the auxiliary variables AV and a limit set for the manipulated variables MV used to control the process 50 . In general terms, the auxiliary and manipulated variable ranges define the limits (typically based on the physical properties of the plant) for the auxiliary and manipulated variable ranges, while the controlled variable ranges provide a range within which the controlled variables can be used for satisfactory control of the process can work. The weights for the control and auxiliary variables determine the relative importance of the control and auxiliary variables in relation to each other in the optimization process and can be used under certain circumstances to allow the optimizer 54 to generate a control target solution if some of the constraint limits are violated will.

Während des Betriebs kann der Optimierer 54 eine lineare Programmiertechnik (LP-Programmiertechnik) zur Durchführung der Optimierung verwenden. Bekanntlich ist die lineare Programmierung ein mathematisches Verfahren zum Lösen eines Satzes linearer Gleichungen oder Ungleichheiten, die eine bestimmte zusätzliche Funktion, Zielfunktion genannt, maximiert oder minimiert. Wie zuvor erläutert, kann die Zielfunktion einen wirtschaftlichen Wert wie Kosten oder Nutzen ausdrücken, kann aber statt dessen auch andere Ziele ausdrücken. Darüber hinaus definiert, wie vorausgesetzt wird, die Beharrungszustandsverstärkungsmatrix die Beharrungszustandsverstärkung für jedes mögliche Paar der Stellgrößen und der Steuer- und Hilfsgrößen. Mit anderen Worten definiert die Beharrungszustandsverstärkungsmatrix die Beharrungszustandsverstärkung in jeder Steuer- und Hilfsgröße für eine Änderungseinheit in jeder der Stell- und Störgrößen. Diese Beharrungszustandsverstärkungsmatrix ist im Allgemeinen eine N-mal-M-Matrix, worin N die Anzahl von Steuer- und Hilfsgrößen und M die Anzahl von Stellgrößen ist, die in der Optimierungsroutine verwendet werden. Im Allgemeinen kann N größer, gleich oder kleiner M sein, wobei der allgemeinste Fall ist, dass N größer M ist. During operation, the optimizer 54 may use a linear programming (LP) programming technique to perform the optimization. As is well known, linear programming is a mathematical technique for solving a set of linear equations or inequalities that maximizes or minimizes some additional function, called the objective function. As discussed previously, the objective function can express an economic value such as cost or benefit, but can express other objectives instead. Furthermore, as is assumed, the steady state gain matrix defines the steady state gain for each possible pair of the manipulated and control and auxiliary variables. In other words, the steady-state gain matrix defines the steady-state gain in each control and auxiliary variable for a unit change in each of the manipulated and disturbance variables. This steady state gain matrix is generally an N by M matrix, where N is the number of control and auxiliary variables and M is the number of manipulated variables used in the optimization routine. In general, N can be greater than, equal to, or less than M, with the most general case being that N is greater than M.

Unter Verwendung irgendeines bekannten oder standardmäßigen LP-Algorithmus oder -Verfahrens wiederholt der Optimierer 54 die Bestimmung des Satzes von Zielstellgrößen MVT (wie sie von der Beharrungszustandsverstärkungsmatrix bestimmt sind), welche die ausgewählte Zielfunktion OF maximieren oder minimieren und gleichzeitig zu einem Prozessablauf führen, der die Sollwertbereichsgrenzen der Steuergröße CV, die Zwangsgrenzen der Hilfsgröße AV und die Grenzen der Stellgröße MV erfüllt oder sich innerhalb dieser befindet. In einer Ausführungsform bestimmt der Optimierer 54 sogar die Veränderung der Stellgrößen und verwendet die Angabe der Vorhersagebeharrungszustandssteuergrößen, - hilfsgrößen und -stellgrößen CVSSfil, AVSSfil und MVssfil, um die Veränderungen im Prozessablauf von seinem gegenwärtigen Ablauf zu bestimmen, d.h., den dynamischen Ablauf des MPC-Steuerprogramms während des Erreichungsprozesses des Ziel- oder optimalen Prozessoperationspunktes zu bestimmen. Dieser dynamische Ablauf ist wichtig, weil sichergestellt werden muss, dass während der Bewegung aus dem gegenwärtigen Operationspunkt zum Zieloperationspunkt keine der Zwangsgrenzen verletzt wird.Using any known or standard LP algorithm or method, the optimizer 54 iterates the determination of the set of target manipulated variables MVT (as determined by the steady-state gain matrix) that maximize or minimize the selected objective function OF while resulting in a process flow that Fulfills the setpoint range limits of the control variable CV, the forced limits of the auxiliary variable AV and the limits of the manipulated variable MV or is within them. In one embodiment, the optimizer 54 even determines the change in manipulated variables and uses the indication of the prediction steady state controls, auxiliary and manipulated variables CV SSfil , AV SSfil and MV ssfil to determine the changes in process flow from its current flow, ie, the dynamic flow of the MPC scheduler during the process of reaching the target or optimal process operation point. This dynamic flow is important because it must be ensured that none of the constraint limits are violated during the movement from the current operation point to the target operation point.

In einer Ausführungsform kann der LP-Optimierer 54 so ausgelegt sein, dass er eine Zielfunktion der folgenden Form minimiert: Q = p t A Δ MV + C t Δ MV

Figure DE000010362369B3_0001
worin :

  • Q = Gesamtkosten/-nutzen
  • P = Nutzenvektor im Zusammenhang mit den AVs und CVs
  • C = Kostenvektor im Zusammenhang mit MVs
  • A = Verstärkungsmatrix
  • ΔMV = Vektor für die berechnete Veränderung bei den MVs
In one embodiment, the LP optimizer 54 may be designed to minimize an objective function of the form: Q = p t A Δ MV + C t Δ MV
Figure DE000010362369B3_0001
in which :
  • Q = total cost/benefit
  • P = utility vector associated with the AVs and CVs
  • C = cost vector associated with MVs
  • A = gain matrix
  • ΔMV = vector for the calculated change in MVs

Die Nutzenwerte sind positive Zahlen und die Kostenwerte sind negative Zahlen, um ihren Einfluss auf das Ziel anzugeben. Unter Verwendung dieser Zielfunktion berechnet der LP-Optimierer 54 die Veränderungen bei den Stellgrößen MV, die die Zielfunktion minimieren, während sichergestellt wird, dass die Steuergrößen CV innerhalb eines Bereichs von ihrem Zielsollwert bleiben, dass sich die Hilfsgrößen AV sich innerhalb ihrer unteren und oberen Zwangsgrenzen befinden, und dass die Stellgrößen MV innerhalb ihrer oberen und unteren Grenzen liegen.The utility values are positive numbers and the cost values are negative numbers to indicate their impact on the goal. Using this objective function, the LP optimizer 54 calculates the changes in the manipulated variables MV that minimize the objective function while ensuring that the controlled variables CV remain within a range of their target setpoint, that the auxiliary variables AV stay within their lower and upper constraint limits are located, and that the manipulated variables MV lie within their upper and lower limits.

Bei einem Verfahren zur Optimierung, das verwendet werden kann, werden Inkrementalwerte von Stellgrößen zur momentanen Zeit (t) verwendet, und es wird eine Summe von Stellgrößen über den Steuerhorizont verwendet, wobei die Inkrementalwerte der Steuer- und Hilfsgrößen am Ende des Vorhersagehorizonts und keine momentanen Stellenwerte bestimmt werden, wie dies in LP-Anwendungen typisch ist. Selbstverständlich kann der LP-Algorithmus für diese Variante angemessen abgeändert werden. Der LP-Optimierer 54 kann auf jeden Fall ein Beharrungszustandsmodell verwenden, und im Ergebnis ist eine Beharrungszustandsbedingung für diese Anwendung erforderlich. Mit einem Vorhersagehorizont, wie er normalerweise in der MPC-Entwicklung verwendet wird, ist ein zukünftiger Beharrungszustand für einen Selbstregelungsprozess garantiert. Eine mögliche Prozessvorhersagebeharrungszustandsgleichung für einen m-mal-n-Eingabe-Ausgabe-Prozess mit einem Vorhersagehorizont p, einem Steuerhorizont c, in Inkrementalform ausgedrückt, ist: Δ C V ( t + p ) = A Δ M V ( t + c )

Figure DE000010362369B3_0002
worin: Δ C V ( t + p ) = [ Δ C V i Δ C V n ]
Figure DE000010362369B3_0003
vorhergesagte Änderungen in Ausgaben am Ende des Vorhersagehorizonts (t + p) bezeichnet, A = [ a l l a l m a n l a n m ]
Figure DE000010362369B3_0004
der Prozessbeharrungszustand m mal n Verstärkungsmatrix ist, Δ M V ( t + c ) = [ Δ m v l Δ m v n ]
Figure DE000010362369B3_0005
Veränderungen bei den Stellgrößen am Ende des Steuerhorizonts (t+c) bezeichnet.One method of optimization that can be used uses incremental values of manipulated variables at the current time (t) and a sum of manipulated variables over the control horizon, with the incremental values of the control and auxiliary variables at the end of the forecast horizon and not instantaneous Place values are determined, as is typical in LP applications. Of course, the LP algorithm can be modified appropriately for this variant. In any event, the LP optimizer 54 may use a steady state model, and as a result a steady state condition is required for this application. With a prediction horizon, such as is typically used in MPC development, future steady state is guaranteed for a self-regulatory process. A possible process prediction steady state equation for an m by n input-output process with a prediction horizon p, a control horizon c, expressed in incremental form, is: Δ C V ( t + p ) = A Δ M V ( t + c )
Figure DE000010362369B3_0002
wherein: Δ C V ( t + p ) = [ Δ C V i ... Δ C V n ]
Figure DE000010362369B3_0003
denotes predicted changes in outputs at the end of the forecast horizon (t + p), A = [ a l l ... a l m ... ... ... ... a n l ... a n m ]
Figure DE000010362369B3_0004
the process steady state is m by n gain matrix, Δ M V ( t + c ) = [ Δ m v l ... Δ m v n ]
Figure DE000010362369B3_0005
changes in the manipulated variables at the end of the control horizon (t+c).

Der Vektor ΔMV(t+c) stellt die Summe der Veränderungen über den Steuerhorizont dar, die durch jede Controllerausgabe mvi erfolgt ist, so dass Δ m v i = j = l c m v i ( t + j )  i = 1,2, , m

Figure DE000010362369B3_0006
The vector ΔMV(t+c) represents the sum of the changes over the control horizon made by each controller output mv i such that Δ m v i = j = l c m v i ( t + j ) i = 1.2, ... , m
Figure DE000010362369B3_0006

Die Veränderungen sollten Grenzen sowohl bei den Stellgrößen MV als auch den Steuergrößen CV entsprechen (hier werden die Hilfsgrößen als Steuergrößen behandelt): M V m i n M V m o m e n tan + Δ M V ( t + c ) M V max C V m i n C V v o r h e r g e s a g t + Δ C V ( t + p ) C V max

Figure DE000010362369B3_0007
The changes should correspond to limits for both the manipulated variables MV and the control variables CV (here the auxiliary variables are treated as control variables): M V m i n M V m O m e n tan + Δ M V ( t + c ) M V Max C V m i n C V v O right H e right G e s a G t + Δ C V ( t + p ) C V Max
Figure DE000010362369B3_0007

In diesem Fall kann die Zielfunktion zur Maximierung des Produktwerts und Minimierung der Rohmaterialkosten gemeinsam definiert werden als: Q min = U C V T Δ C V ( t + p ) + U M V T Δ M V ( t + c )

Figure DE000010362369B3_0008
worin:

  • UCV der Kostenvektor für eine Änderungseinheit beim Prozesswert der Steuergröße CV ist; und
  • UMV der Kostenvektor für eine Änderungseinheit beim Prozesswert der Stellgrößen MV ist.
In this case, the objective function for maximizing product value and minimizing raw material cost can be defined together as: Q at least = u C V T Δ C V ( t + p ) + u M V T Δ M V ( t + c )
Figure DE000010362369B3_0008
wherein:
  • UCV is the cost vector for a unit change in the process value of the control variable CV; and
  • UMV is the cost vector for a unit change in the process value of the manipulated variable MV.

Unter Anwendung der obigen ersten Gleichung kann die Zielfunktion in Form von Stellgrößen MV ausgedrückt werden als: Q min = U C V T A Δ M V ( t + c ) + U M V T Δ M V ( t + c ) .

Figure DE000010362369B3_0009
Using the first equation above, the objective function can be expressed in terms of manipulated variables MV as: Q at least = u C V T A Δ M V ( t + c ) + u M V T Δ M V ( t + c ) .
Figure DE000010362369B3_0009

Um eine optimale Lösung zu finden, berechnet der LP-Algorithmus die Zielfunktion für einen anfänglichen Scheitelpunkt in dem durch diese Gleichung definierten Bereich und verbessert die Lösung bei jedem nächsten Schritt, bis der Algorithmus den Scheitelpunkt mit dem höchsten (oder niedrigsten) Wert der Zielfunktion als optimale Lösung bestimmt. Die bestimmten optimalen Stellgrößenwerte werden als die Zielstellgrößen MVT, die innerhalb des Steuerhorizonts erzielt werden sollen, angewandt.To find an optimal solution, the LP algorithm computes the objective function for an initial vertex in the range defined by this equation, and improves the solution at each next step until the algorithm finds the vertex with the highest (or lowest) value of the objective function as optimal solution determined. The determined optimal manipulated variable values are applied as the target manipulated variables MV T to be achieved within the control horizon.

Allgemein ausgedrückt ergibt das Ablaufenlassen des LP-Algorithmus auf der vorbereiteten Matrix drei mögliche Ergebnisse. Erstens, es gibt eine einzige Lösung für die Zielstellgrößen MVT. Zweitens, die Lösung ist unbegrenzt, was nicht der Fall sein sollte, wenn die Steuer- bzw. Hilfsgröße eine hohe und eine niedrige Grenze hat. Drittens, es gibt keine Lösung, was bedeutet, dass die den Hilfsgrößen auferlegten Grenzen oder Randbedingungen zu eng sind. Um den dritten Fall zu behandeln, können die Randbedingungen gelockert werden, um eine Lösung zu erhalten. Die Grundannahme besteht darin, dass die den Stellgrößen gesetzten Grenzen (hohe/niedrige Grenzen) nicht durch den Optimierer verändert werden können. Selbiges trifft auf die Randbedingungen oder Grenzen der Hilfsgrößen zu (hohe/niedrige Grenzen). Dennoch kann der Optimierer davon abrücken, die Steuergröße CV auf die festgelegten Sollwerte (CV-Sollwertsteuerung) und die Steuergrößen auf irgendwelche anderen Werte innerhalb eines Bereichs von dem oder um den Sollwert (CV-Bereichssteuerung) zu fahren. In diesem Fall können die Werte der Steuergrößen eher in einem Bereich als an einem spezifischen Sollwert angesiedelt werden. Gibt es mehrere Hilfsgrößen AV, die ihre Randbedingungen verletzen und von der CV-Sollwertsteuerung zur CV-Bereichssteuerung überspringen, ist es auch möglich, die Randbedingungen der Hilfsgrößen basierend auf den vorgesehenen Gewichtungs- oder Prioritätszuweisungen zu lockern oder zu ignorieren. In einer Ausführungsform könnte eine Lösung dadurch bestimmt werden, dass der ins Quadrat umgesetzte Fehler der Hilfsgrößen minimiert wird, wodurch es jeder von ihnen möglich ist, ihre jeweilige Randbedingung zu verletzen, oder durch sequentielles Aufgeben der Randbedingungen der Hilfsgrößen mit der niedrigsten Priorität.In general terms, running the LP algorithm on the prepared matrix yields three possible outcomes. First, there is a single solution for the target manipulated variable MV T . Second, the solution is unbounded, which should not be the case if the control or auxiliary has a high and a low bound. Third, there is no solution, which means that the bounds or boundary conditions imposed on the auxiliary quantities are too tight. To handle the third case, the boundary conditions can be relaxed to get a solution. The basic assumption is that the limits set for the manipulated variables (high/low limits) cannot be changed by the optimizer. The same applies to the boundary conditions or limits of the auxiliary quantities (high/low limits). However, the optimizer may refrain from driving the control variable CV to the specified set points (CV set point control) and the control variables to any other values within a range of or around the set point (CV range control). In this case, the values of the control variables can be settled in a range rather than at a specific target value. If there are multiple ancillaries AV violating their constraints and skipping from CV setpoint control to CV range control, it is also possible to relax or ignore the constraints of the ancillaries based on the intended weight or priority assignments. In one embodiment, a solution could be determined by minimizing the squared error of the auxiliaries, thereby allowing each of them to violate their respective constraint, or by sequentially relinquishing the constraints of the lowest priority auxiliaries.

Wie vorstehend festgestellt wurde, kann die Zielfunktion OF durch das Steuer-/Regelblockgeneratorprogramm 40 ausgewählt werden oder standardmäßig eingestellt sein. Ein Verfahren zum Festlegen einer solchen Standardeinstellung ist nachstehend wiedergegeben. Während es wünschenswert ist, die Optimierungsfähigkeit bereitzustellen, können es insbesondere viele Situationen erforderlich machen, dass nur Sollwerte für die Steuergrößen auf eine Weise beibehalten werden, die die Ablaufrandbedingungen der Hilfs- und Stellgrößen noch berücksichtigt. Für diese Anwendungen kann der Block 38 so konfiguriert sein, dass er einzig als MPC-Funktionsblock wirkt. Um diese einfache Verwendung vorzusehen, kann eine standardmäßige Zielfunktion „Operate“ automatisch erzeugt werden, wobei Standardkosten den verschiedenen darin vorkommenden Größen zusammen mit Standardgewichtungen für die Hilfsgrößen AV zugeordnet werden. Diese Standards können alle Kosten für die Hilfsgrößen AV und die Stellgrößen MV gleich festsetzen oder können irgendeine andere Kostenzuordnung zu den Hilfs- und Stellgrößen AV und MV vorsehen. Wird eine fachmännische Option gewählt, kann der Benutzer zusätzliche Optimierungsselektionen festlegen und deren zugeordnete Kosten für unterschiedliche Zielfunktionen 64 definieren. Der fachmännische Benutzer hat dann auch die Möglichkeit, die Gewichtungen der standardmäßigen Hilfs- und Steuergröße AV und CV der Standardzielfunktion abzuändern.As stated above, the objective function OF can be selected by the control block generator program 40 or can be set by default. A procedure for setting such a default setting is given below. In particular, while it is desirable to provide the optimization capability, many situations may require that only setpoint values for the controlled variables be maintained in a manner that still accounts for the operational and manipulated variable processing constraints. For these applications, block 38 can be configured to act solely as an MPC function block. To provide for this ease of use, a standard objective function 'Operate' can be generated automatically, with standard costs associated with the various quantities therein along with standard weights for the auxiliary quantities AV. These standards can set all costs for the auxiliary variables AV and the manipulated variables MV the same or can provide any other cost allocation to the auxiliary and manipulated variables AV and MV. If an expert option is chosen, the user can specify additional optimization selections and define their associated costs for different objective functions 64. The expert user then also has the option of changing the weightings of the standard auxiliary and control variables AV and CV of the standard target function.

In einer Ausführungsform kann, wenn beispielsweise keine wirtschaftlichen Vorgaben für die Prozesskonfiguration definiert sind, die Zielfunktion automatisch aus der MPC-Konfiguration aufgebaut werden. Im Allgemeinen kann die Zielfunktion unter Verwendung der folgenden Formel aufgebaut werden: C D T = C T + P T A = [ C 1 , C j , C m ] + [ i = 1 n p i a i 1 , i = 1 n p i a i 2 , i = 1 n p i a i m , ] = [ C D l , C D j , C D m ]

Figure DE000010362369B3_0010
In one embodiment, if, for example, no economic specifications are defined for the process configuration, the objective function can be built automatically from the MPC configuration. In general, the objective function can be constructed using the following formula: C D T = C T + P T A = [ C 1 , ... C j , ... C m ] + [ i = 1 n p i a i 1 , i = 1 n p i a i 2 , ... i = 1 n p i a i m , ] = [ C D l , ... C D j , ... C D m ]
Figure DE000010362369B3_0010

Die Größen Cj und pj können aus den Konfigurationseinstellungen definiert werden. Insbesondere unter der Annahme, dass der Sollwert der Steuergröße CV nur auf LL (Low Limit) oder HL (High Limit) festgelegt werden kann, wird der Wert pj folgendermaßen definiert:

  • pj = -1, wenn der Sollwert auf niedrige Grenze festgelegt oder Minimieren ausgewählt wurde; und
  • pj = 1, wenn der Sollwert auf hohe Grenze festgelegt oder Maximieren gewählt wurde.
The quantities C j and p j can be defined from the configuration settings. In particular, assuming that the setpoint of the control variable CV can only be set to LL (Low Limit) or HL (High Limit), the value p j is defined as follows:
  • p j = -1 if setpoint is set to low limit or minimize is selected; and
  • p j = 1 if setpoint is set to high limit or maximize is selected.

Angenommen, es werden keine Konfigurationsdaten für die Hilfsgrößen AV eingegeben, dann gilt für alle Hilfsgrößen pj = 0. Ähnlich hängt bei den Stellgrößen MV der Wert Cj davon ab, ob die bevorzugte Zielstellgröße MVT definiert ist oder nicht. Steht die bevorzugte Zielstellgröße MVT fest, gilt:

  • Cj = 1, wenn MVT auf die hohe Grenze festgelegt oder Maximieren gewählt wurde;
  • Cj = -1, wenn MVT auf die niedrige Grenze festgelegt oder Minimieren gewählt wurde, und
  • Cj = 0, wenn MVT nicht definiert ist.
Assuming no configuration data is entered for the auxiliary variables AV, then p j =0 for all auxiliary variables. Similarly for the manipulated variables MV, the value C j depends on whether the preferred target manipulated variable MVT is defined or not. If the preferred target manipulated variable MVT is fixed, the following applies:
  • C j = 1 if MVT is set to the high limit or maximize is selected;
  • C j = -1 when MVT is set to the low limit or minimize is selected, and
  • C j = 0 if MVT is undefined.

Falls gewünscht, kann die Auswahl der Verwendung des Optimiereres 54 in Zusammenhang mit dem MPC-Controller 52 einstellbar sein, um dadurch einen Optimierungsgrad bereitzustellen. Um diese Funktion zu vollziehen, kann die Änderung bei den vom Controller 52 verwendeten Stellgrößen MV dadurch geändert werden, dass auf die durch den MPC-Controller 52 und den Optimierer 54 bestimmten Änderung bei den Stellgrößen MV unterschiedliche Gewichtungen gelegt werden. Solch eine gewichtete Kombination der Stellgrößen MV wird hier als effektive MV (MVeff) bezeichnet. Die effektive MVeff kann bestimmt werden als: Δ M V e ƒ ƒ = M V m p c ( α / S ) + Δ M V o p t ( 1 α )   0 α 1,

Figure DE000010362369B3_0011
worin S willkürlich oder heuristisch ausgewählt ist. Typischerweise ist S größer als Eins und kann sich im Bereich von Zehn befinden.If desired, the selection of the use of the optimizer 54 may be adjustable in conjunction with the MPC controller 52 to thereby provide a degree of optimization. In order to accomplish this function, the change in the manipulated variables MV used by the controller 52 can be changed by placing different weights on the change in the manipulated variables MV determined by the MPC controller 52 and the optimizer 54 . Such a weighted combination of the manipulated variables MV is referred to here as the effective MV (MV eff ). The effective MV rms can be determined as: Δ M V e ƒ ƒ = M V m p c ( a / S ) + Δ M V O p t ( 1 a ) 0 a 1,
Figure DE000010362369B3_0011
where S is chosen arbitrarily or heuristically. Typically, S is greater than one and can be in the range of ten.

Hier trägt der Optimierer mit α = 0 zur effektiven Ausgabe bei, wie sie bei der Festlegung eingestellt wurde. Mit α = 1 trägt der Controller nur eine dynamische MPC-Steuerung bei. Natürlich liefert der Bereich zwischen 0 und 1 unterschiedliche Optimierer- und MPC-Steuerungsbeiträge.Here the optimizer with α = 0 contributes to the effective output as set at the time of definition. With α = 1, the controller contributes only dynamic MPC control. Of course, the range between 0 and 1 provides different optimizer and MPC control contributions.

Die vorstehend beschriebene Standardzielfunktion kann dazu eingesetzt werden, den Ablauf des Optimierers in verschiedenen möglichen Betriebsarten von diesem herzustellen. Insbesondere wenn die Anzahl der Steuergrößen CV zur Anzahl der Stellgrößen MV passt, ist das erwartete Verhalten bei der Standardeinstellung, dass die Sollwerte der Steuergröße CV so lange beibehalten werden, solange die Hilfsgrößen AV und Stellgrößen MV voraussichtlich innerhalb ihrer Grenzen liegen. Wird vorausgesagt, dass eine Hilfsgröße oder eine Stellgröße ihre Grenze verletzen wird, werden die Steuergrößenarbeitssollwerte innerhalb ihres Bereichs verändert, um zu verhindern, dass diese Grenzen verletzt werden. Falls in diesem Fall der Optimierer 54 keine Lösung finden kann, die die Hilfs- und Stellgrößengrenzen einhält, während gleichzeitig die Steuergrößen innerhalb ihres Bereichs gehalten werden, werden die Steuergrößen in ihrem Bereich gehalten, während die Hilfsgrößen von ihren Zwangsgrenzen abweichen dürfen. Beim Finden der besten Lösung werden dann diejenigen Hilfsgrößen AV, die voraussichtlich eine Grenze verletzen, gleich behandelt und ihre durchschnittliche Grenzabweichung wird minimiert.The default objective function described above can be used to run the optimizer in various possible modes of operation thereof. In particular, if the number of control variables CV matches the number of manipulated variables MV, the expected behavior with the standard setting is that the setpoints of the controlled variable CV are retained as long as the auxiliary variables AV and manipulated variables MV are expected to be within their limits. If an auxiliary or manipulated variable is predicted to violate its limit, the control variable work setpoints are varied within their range to prevent these limits from being violated. In this case, if the optimizer 54 cannot find a solution that keeps the auxiliary and manipulated variable limits while keeping the controlled variables within their range, the controlled variables are kept in their range while the auxiliary variables are allowed to deviate from their constraint limits. When finding the best solution, those auxiliary variables AV that are likely to violate a limit are then treated in the same way and their average limit deviation is minimized.

Um dieses Verhalten zu erreichen, werden die von der Zielfunktion verwendeten standardmäßigen Kosten/Nutzen automatisch derart eingestellt, dass die Steuergrößen CV einen Nutzen von 1 zugeteilt bekommen, wenn der Bereich so definiert ist, dass er ein Abweichung unter den Sollwert zulässt, und einen Nutzen von -1, wenn der Bereich so definiert ist, dass er eine Abweichung über den Sollwert zulässt. Die innerhalb der Grenzen befindlichen Hilfsgrößen AV bekommen einen Nutzen von 0 und die Stellgrößen Kosten von 0 zugeteilt.To achieve this behavior, the default cost/benefits used by the objective function are automatically adjusted such that the control variables CV are assigned a utility of 1 when the range is defined to allow deviation below target and a utility from -1 if the range is defined to allow deviation above the target value. The auxiliary variables AV located within the limits are assigned a benefit of 0 and the manipulated variables are assigned costs of 0.

Ist die Anzahl der Steuergrößen CV geringer als die Anzahl der Stellgrößen MV, dann können die zusätzlichen Freiheitsgrade genutzt werden, um sich der Erfordernisse anzunehmen, die mit der endgültigen Ruheposition der konfigurierten Stellgröße MV zusammenhängen. Hier werden die Steuergrößensollwerte (falls Steuergrößen CV definiert sind) solange beibehalten, wie die Hilfs- und Stellwerte voraussichtlich innerhalb ihrer Grenzen bleiben werden. Die Durchschnittsabweichung der Stellgrößen von der konfigurierten endgültigen Ruheposition wird minimiert. Wird vorausgesagt, dass eine oder mehrere der Hilfs- und Stellgrößen ihre Grenze verletzen wird/werden, dann werden die Steuergrößenarbeitssollwerte innerhalb ihrer Bereiche geändert, um zu verhindern, dass diese Grenzen verletzt werden. Falls es unter dieser Bedingung mehrere Lösungen gibt, dann wird diejenige, die zur Steuerung verwendet wird, die Durchschnittsabweichung der Stellgrößen von der konfigurierten endgültigen Ruheposition minimieren.If the number of control variables CV is less than the number of manipulated variables MV, then the additional degrees of freedom can be used to address the requirements associated with the final rest position of the configured manipulated variable MV. Here, the control variable setpoints (if CV control variables are defined) are retained as long as the auxiliary and manipulated values are expected to remain within their limits. The average deviation of the manipulated variables from the configured final idle position is minimized. If one or more of the auxiliary and manipulated variables is predicted to violate its limit, then the control variable work setpoints are changed within their ranges to prevent violating those limits. If there are multiple solutions to this condition, then the one used for control will minimize the mean deviation of the manipulated variables from the configured final rest position.

Kann der Optimierer 54 keine Lösung finden (d.h. es gibt keine Lösung), die die Hilfs- und Stellgrößengrenzen einhält und gleichzeitig die Steuergrenzen innerhalb ihres Bereichs hält, dann werden die Steuergrößen innerhalb des Bereichs gehalten, während die Hilfsgrößen von ihren Zwangsgrenzen abweichen dürfen. Beim Finden der besten Lösung werden dann diejenigen Hilfsgrößen, die voraussichtlich eine Grenze verletzen, gleich behandelt und ihre durchschnittliche Grenzabweichung wird minimiert. Um dieses Verhalten zu erreichen, werden die von der Zielfunktion verwendeten standardmäßigen Kosten/Nutzen automatisch derart eingestellt, dass die Steuergrößen einen Nutzen von 1 zugeteilt bekommen, wenn der Bereich so definiert ist, dass er eine Abweichung unter den Sollwert zulässt, und einen Nutzen von -1, wenn der Bereich so definiert ist, dass er eine Abweichung über den Sollwert zulässt. Die Hilfsgrößen bekommen einen Nutzen von 1 oder -1 und die Stellgrößen Kosten von 0,1 zugeteilt.If the optimizer 54 cannot find a solution (i.e., there is no solution) that satisfies the auxiliary and manipulated variable limits while keeping the control limits within their range, then the controlled variables are kept within the range while the auxiliary variables are allowed to deviate from their constraint limits. When finding the best solution, those auxiliary quantities that are likely to violate a limit are then treated equally and their average limit deviation is minimized. To achieve this behavior, the default cost/benefits used by the objective function are automatically adjusted such that the controls are assigned a utility of 1 when the range is defined to allow deviation below target and a utility of -1 if the range is defined to allow deviation above the target value. The auxiliary variables are assigned a benefit of 1 or -1 and the manipulated variables are assigned costs of 0.1.

Jedenfalls stellt nach dem Ablauf der Optimierer 54 dem Zielumsetzungsblock 55 einen Satz optimaler oder Zielstellgrößen MVT zur Verfügung, der die Beharrungszustandsverstärkungsmatrix verwendet, um die Zielbeharrungszustandssteuergrößen und -hilfsgrößen zu bestimmen, die sich aus den Zielstellgrößen MVT ergeben. Diese Umsetzung ist rechnerisch problemlos, da die Beharrungszustandsverstärkungsmatrix die Wechselwirkungen zwischen den Stellgrößen und den Steuer- und Hilfsgrößen definiert und dadurch dazu eingesetzt werden kann, einzig die Zielsteuergrößen und -hilfsgrößen CVT und AVT aus den definierten Ziel(beharrungszustands)stellgrößen MVT zu bestimmen.In any event, after execution, the optimizer 54 provides a set of optimal or target manipulated variables MVT to the goal translation block 55, which uses the steady state gain matrix to determine the target steady state controls and auxiliary variables resulting from the target manipulated variables MVT. This implementation is computationally problem-free, since the steady-state gain matrix defines the interactions between the manipulated variables and the control and auxiliary variables and can therefore be used to determine only the target control variables and auxiliary variables CVT and AV T from the defined target (steady-state) manipulated variables MVT.

Wenn sie erst bestimmt sind, wird mindestens eine Teilmenge N der Zielsteuergrößen und -hilfsgrößen CVT und AVT dem MPC-Controller 52 als Eingaben zu Verfügung gestellt, welcher, wie zuvor festgestellt, diese Zielwerte CVT und AVT dazu verwendet, um einen neuen Satz von Beharrungszustandsstellgrößen MVSS (über den Steuerhorizont) zu bestimmen, welcher die gegenwärtigen Steuer- und Hilfsgrößen CV und AV am Ende des Vorhersagehorizonts auf die Zielwerte CVT und AVT fährt. Natürlich verändert der MPC-Controller bekanntlich die Stellgrößen in Schritten, in einem Versuch, die Beharrungszustandswerte für diese Größen MVSS zu erreichen, die theoretisch die vom Optimierer 54 bestimmten Zielstellgrößen MVT sein werden. Da der Optimierer 54 und MPC-Controller 52 wie zuvor beschrieben während jeder Prozessabtastung in Betrieb sind, können sich die Zielwerte der Stellgrößen MVT von Abtastung zu Abtastung ändern, und im Ergebnis kann der MPC-Controller niemals einen bestimmten dieser Sätze von Zielstellgrößen MVT wirklich erreichen, insbesondere dann nicht, wenn Rauschen, unerwartete Störungen, Änderungen im Prozess 50, etc. hinzukommen. Dennoch treibt der Optimierer 54 den Controller 52 immer dazu an, die Stellgrößen MV zu einer optimalen Lösung hin zu bewegen.Once determined, at least a subset N of the target control and auxiliary variables CVT and AV T are provided as inputs to the MPC controller 52 which, as previously noted, uses these target values CVT and AV T to generate a new set of steady-state manipulated variables MV SS (over the control horizon), which drives the current control and auxiliary variables CV and AV to the target values CVT and AV T at the end of the forecast horizon. Of course, as is well known, the MPC controller varies the manipulated variables in steps in an attempt to reach the steady-state values for these quantities MV SS , which in theory will be the target manipulated variables MVT determined by the optimizer 54 . Since the optimizer 54 and MPC controller 52 operate during each process scan as previously described, the target values of the manipulated variables MVT can change from sample to sample, and as a result the MPC controller can never actually achieve any particular one of these sets of target manipulated variables MVT , especially not when there is noise, unexpected disturbances, changes in the process 50, etc. Nevertheless, the optimizer 54 always drives the controller 52 to move the manipulated variables MV towards an optimal solution.

Der MPC-Controller 52 umfasst bekanntermaßen ein Steuerprozessvorhersagemodell 70, welches eine N mal M + D-Schrittantwortmatrix sein kann (in der N die Anzahl der Steuergrößen CV zuzüglich der Anzahl der Hilfsgrößen AV ist, M die Anzahl der Stellgrößen MV und D die Anzahl der Störgrößen DV ist). Das Steuerprozessvorhersagemodell 70 erzeugt in einer Ausgabe 72 eine zuvor berechnete Vorhersage für jede der Steuer- und Hilfsgrößen CV und AV, und ein Vektorsummierer 74 subtrahiert diese Vorhersagewerte für die aktuelle Zeit von den tatsächlich gemessenen Werten der Steuer- und Hilfsgrößen, um in der Eingabe 76 einen Fehler- oder Korrekturvektor zu erzeugen.As is known, the MPC controller 52 includes a control process prediction model 70, which may be an N by M + D step response matrix (where N is the number of control variables CV plus the number of auxiliary variables AV, M is the number of manipulated variables MV, and D is the number of Disturbances DV is). The control process prediction model 70 produces in an output 72 a previously calculated prediction for each of the control and auxiliary variables CV and AV, and a vector summer 74 subtracts these prediction values for the current time from the actually measured values of the control and auxiliary variables to in the input 76 generate an error or correction vector.

Das Steuerprozessvorhersagemodell 70 verwendet dann die N mal M + D-Schrittantwortmatrix, um für jede der Steuer- und Hilfsgrößen CV und AV einen zukünftigen Steuerparameter über den Vorhersagehorizont basierend auf den Stör- und Stellgrößen vorherzusagen, die anderen Eingaben des Steuerprozessvorhersagemodells 70 bereitgestellt werden. Das Steuerprozessvorhersagemodell 70 liefert auch die Vorhersagebeharrungszustandswerte der Steuer- und Hilfsgrößen CVSS und AVSS an den Eingabeverarbeitungs-/Filterblock 58.The control process prediction model 70 then uses the N by M + D step response matrix to predict, for each of the control and auxiliary variables CV and AV, a future control parameter over the prediction horizon based on the disturbance and manipulated variables provided to other inputs of the control process prediction model 70. The control process prediction model 70 also provides the prediction steady-state values of the control and auxiliary variables CV SS and AV SS to the input processing/filtering block 58.

Ein Zielsteuer-/Regelblock 80 bestimmt einen Zielsteuervektor für jede der N ihm vom Zielumsetzungsblock 55 unter Verwendung eines zuvor für den Block 38 erstellten Trajektorienfilters 82 zur Verfügung gestellten Zielsteuergrößen und -hilfsgrößen CVT und AVT. Das Trajektorienfilter liefert insbesondere einen Einheitsvektor, der die Art und Weise festlegt, mit der die Steuer- und Hilfsgrößen mit der Zeit auf ihre Zielwerte gefahren werden sollen. Der Zielsteuer-/Regelblock 80 verwendet diesen Einheitsvektor und die Zielgrößen CVT und AVT, um einen dynamischen Zielsteuervektor für jede der Steuer- und Hilfsgrößen zu erzeugen, der die Veränderungen bei den Zielgrößen CVT und AVT über den Zeitraum definiert, der durch die Zeit des Vorhersagehorizonts festgelegt ist. Ein Vektorsummierer 84 subtrahiert dann den zukünftigen Steuerparametervektor für jede der Steuer- und Hilfsgrößen CV und AV von den dynamischen Steuervektoren, um einen Fehlervektor für jede der Steuer- und Hilfsgrößen CV und AV zu definieren. Der zukünftige Fehlervektor für jede der Steuer- und Hilfsgrößen CV und AV wird dann dem MPC-Algorithmus zur Verfügung gestellt, der so wirkt, dass er die Schritte der Stellgröße MV auswählt, die beispielsweise den kleinsten ins Quadrat umgesetzten Fehler über den Steuerhorizont für die Stellgrößen MV und den Vorhersagehorizont für die Steuer- und Hilfsgrößen CV und AV minimiert. Selbstverständlich verwendet der MPC-Algorithmus oder -Controller ein M-mal-M-Prozessmodell oder eine M-mal-M-Steuermatrix, das/die aus den Verhältnissen zwischen den N in den MPC-Controller 52 eingegebenen Steuer- und Hilfsgrößen und den M vom MPC-Controller 52 ausgegebenen Stellgrößen gebildet wird.A target control block 80 determines a target control vector for each of the N target control variables and auxiliary variables CVT and AV T provided to it by the target translation block 55 using a trajectory filter 82 previously created for the block 38 . In particular, the trajectory filter provides a unit vector that defines the manner in which the control and auxiliary variables are to be driven to their target values over time. The target control block 80 uses this unit vector and the target variables CVT and AVT to generate a dynamic target control vector for each of the control and auxiliary variables that defines the changes in the target variables CVT and AV T over the period defined by time of the forecast horizon is set. A vector summer 84 then subtracts the future control parameter vector for each of the controls and assists CV and AV from the dynamic control vectors to define an error vector for each of the controls and assists CV and AV. The future error vector for each of the control and auxiliary variables CV and AV is then provided to the MPC algorithm, which operates to select the steps of the manipulated variable MV that, for example, have the smallest squared error over the control horizon for the manipulated variables MV and the forecast horizon for the control and auxiliary variables CV and AV are minimized. Of course, the MPC algorithm or controller uses an M by M process model or control matrix that is derived from the ratios between the N control and auxiliary variables input to the MPC controller 52 and the M is formed from the manipulated variables output by the MPC controller 52 .

Genauer ausgedrückt hat der mit dem Optimierer arbeitende MPC-Algorithmus zwei Hauptziele. Erstens versucht der MPC-Algorithmus, den Steuergrößensteuerfehler mit minimalen Stellgrößenbewegungen innerhalb von Opeationsrandbedingungen zu minimieren, und versucht zweitens, optimale Beharrungszustandsstellgrößenwerte, die vom Optimierer eingestellt werden und die Zielsteuergrößenwerte zu erzielen, die direkt aus den optimalen Beharrungszustandsstellgrößenwerten berechnet werden.More precisely, the MPC algorithm working with the optimizer has two main goals. First, the MPC algorithm tries to minimize the control variable error with minimal manipulated variable movements within operation constraints, and second, it tries to achieve optimal steady state manipulated variable values set by the optimizer and the target controlled variable values calculated directly from the optimal steady state manipulated variable values.

Um diesen Zielen Genüge zu tun, kann der ursprüngliche unbeschränkte MPC-Algorithmus so erweitert werden, dass er die MV-Ziele in der kleinsten Quadratlösung einschließt. Die Zielfunktion für diesen MPC-Controller ist: F O R M E L   1

Figure DE000010362369B3_0012
worin:

  • CV(k) der gesteuerte, ausgegebene Vorhersagevektor ist, der um einen p-Schritt voraus ist;
  • R(k) der Referenztrajektorien(sollwert)vektor ist, der um einen p-Schritt voraus ist;
  • ΔMV(k) der inkrementale Steuerbewegungsvektor ist, der um einen c-Schritt voraus ist;
  • Γy = diag{Γy 1, ..., Γy p} eine Penalty-Matrix für den gesteuerten Ausgabefehler ist,
  • Γu = diag{Γu 1, ..., Γu c} eine Penalty-Matrix für die Steuerbewegungen ist,
  • p der Vorhersagehorizont (Schrittanzahl) ist;
  • c der Steuerhorizont (Schrittanzahl) ist; und
To satisfy these goals, the original unconstrained MPC algorithm can be extended to include the MV goals in the least squares solution. The objective function for this MPC controller is: f O R M E L 1
Figure DE000010362369B3_0012
wherein:
  • CV(k) is the gated output prediction vector that is p-step ahead;
  • R(k) is the reference trajectory (setpoint) vector ahead by one p-step;
  • ΔMV(k) is the incremental control motion vector one c-step ahead;
  • Γ y = diag{Γ y 1 , ..., Γ y p } is a penalty matrix for the controlled output error,
  • Γ u = diag{Γ u 1 , ..., Γ u c } is a penalty matrix for the control movements,
  • p is the forecast horizon (step number);
  • c is the control horizon (step number); and

Γ0 eine Penalty für den Fehler der Controllerausgabenbewegungen über den Steuerhorizont in Relation zur optimalen Zielveränderung von MV, die vom Optimierer definiert wurde. Der einfacheren Darstellung halber ist die Zielfunktion für eine Einzeleingabe-/Einzelausgabesteuerung (SISO-Steuerung) gezeigt.Γ 0 a penalty for the error of the controller output moves across the control horizon relative to the optimal target change of MV defined by the optimizer. For simplicity of illustration, the objective function for a single input, single output (SISO) control is shown.

Wie klar wird, sind die ersten beiden Terme die Zielfunktion für den unbeschränkten MPC-Controller, während der dritte Term eine zusätzliche Bedingung aufstellt, die die Summe der Controllerausgabenbewegungen den Optimalzielen gleich setzt. Mit anderen Worten stellen die ersten beiden Terme Ziele für einen dynamischen Controllerbetrieb auf, während der dritte Term Beharrungszustandsoptimierungsziele aufstellt.As can be seen, the first two terms are the objective function for the unconstrained MPC controller, while the third term imposes an additional constraint that equates the sum of the controller output moves to the optimal objectives. In other words, the first two terms set goals for dynamic controller operation, while the third term set steady-state optimization goals.

Es ist festzuhalten, dass die allgemeine Lösung für diesen Controller, ähnlich derjenigen für den unbeschränkten MPC-Controller, folgendermaßen ausgedrückt werden kann: F o r m e l   2

Figure DE000010362369B3_0013
worin:

  • ΔMV(k) die Veränderung bei der MPC-Controllerausgabe zu einem Zeitpunkt k ist;
  • Kompc die optimierte MPC-Controllerverstärkung ist;
  • Su ist die Prozessdynamikmatrix, die aus den Schrittantworten der Dimension p × c für ein SISO-Modell und p*n × c*m für ein Mehrfacheingabe-/Mehrfachausgabe-MIMO-Modell mit m gestellten Eingaben und n gesteuerten Ausgaben aufgebaut ist.
Note that the general solution for this controller, similar to that for the unconstrained MPC controller, can be expressed as: f O right m e l 2
Figure DE000010362369B3_0013
wherein:
  • ΔMV(k) is the change in MPC controller output at time k;
  • K ompc is the optimized MPC controller gain;
  • S u is the process dynamics matrix constructed from the step responses of dimension p×c for a SISO model and p*n×c*m for a multi-input/multiple-output MIMO model with m inputs and n controlled outputs.

Für eine optimierte MPC wird die Dynamikmatrix auf die Größe (p+1) × m für das SISO-Modell und (p+m)*n × c* für das MIMO-Modell erweitert, um den MV-Fehler unterzubringen. Ep+1(k) ist der CV-Fehlervektor über den Vorhersagehorizont und der Fehler der Summe der Controllerausgabenbewegungen über den Steuerhorizont bezogen auf die optimale Zielveränderung von MV. Die Matrix Γ fasst die Matrix Γy und Γ0 zusammen und ist eine Quadratmatrix der Dimension (p+1) für einen SISO-Controller und [n(p+m)] für den multivariablen Controller. Das hochgestellte T bezeichnet eine transponierte Matrix.For an optimized MPC, the dynamics matrix is expanded to size (p+1)×m for the SISO model and (p+m)*n×c* for the MIMO model to accommodate the MV error. E p+1 (k) is the CV error vector over the prediction horizon and the error of the sum of the controller output movements over the control horizon relative to the optimal target change of MV. The matrix Γ summarizes the matrix Γ y and Γ 0 and is a square matrix of dimension (p+1) for a SISO controller and [n(p+m)] for the multivariable controller. The superscript T denotes a transposed matrix.

Es wurde bestimmt, dass, da der Optimierer 54 basierend auf allen Steuer- und Hilfsgrößen CV und AV optimiert, um einen Zielsatz von Stellgrößen MVT zu bestimmen, die einen einzigen optimalen Operationspunkt definieren, es nichts ausmacht, dass der MPC-Controller 52 nur unter Verwendung einer Teilmenge der Steuer- und Hilfsgrößen CV und AV in seiner Steuermatrix arbeitet, um die daraus ausgegebenen Stellgrößen tatsächlich herzustellen, weil, wenn der Controller 52 die ausgewählte Teilmenge von Steuer- und Hilfsgrößen CV und AV auf ihre zugeordneten Ziele fährt, die anderen des kompletten Satzes der Steuer- und Hilfsgrößen sich auch auf ihren Zielwerten befinden werden. Im Ergebnis wurde festgestellt, dass ein quadratischer (M mal M) MPC-Controller mit einer M-mal-M-Steuermatrix mit einem Optimierer verwendet werden kann, der ein rechteckiges (N mal M) Prozessmodell zur Durchführung von Prozessoptimierung verwendet. Dies macht es möglich, dass standardmäßige MPC-Steuerverfahren mit standardmäßigen Optimierungsverfahren verwendet werden können, ohne eine nicht quadratische Matrix mit den damit einhergehenden Approximationen und den Gefahren, die mit solchen Umsetzungsverfahren bei einem Controller verbunden sind, invertieren zu müssen.It has been determined that since the optimizer 54 optimizes CV and AV based on all control and auxiliary variables to determine a target set of manipulated variables MVT that define a single optimum operating point, it does not matter that the MPC controller 52 only under Using a subset of the control and auxiliary variables CV and AV in its control matrix works to actually produce the manipulated variables output therefrom because when the controller 52 drives the selected subset of the control and auxiliary variables CV and AV to their assigned destinations, the other des complete set of control and auxiliary variables will also be at their target values. As a result, it was found that a square (M by M) MPC controller with an M by M control matrix can be used with an optimizer that uses a rectangular (N by M) process model to perform process optimization. This allows standard MPC control methods to be used with standard optimization methods without having to invert a non-square matrix with the accompanying approximations and the dangers associated with such mapping methods in a controller.

In einer Ausführungsform kann die Zielstellgröße MV, wenn der MPC-Controller quadriert ist, d.h. die Anzahl der Stellgrößen MV gleich der Anzahl der Steuergrößen CV ist, wirksam durch Änderungen bei den CV-Werten wie folgt erzielt werden: Δ C V = A Δ M V T

Figure DE000010362369B3_0014

  • ΔMVT - optimale Zielveränderung von MV
  • ΔCV - CV-Veränderung zur Erlangung einer optimalen MV. CV-Veränderung wird implementiert, indem CV-Sollwerte verwendet werden.
In one embodiment, when the MPC controller is squared, that is, the number of manipulated variables MV equals the number of controlled variables CV, the target manipulated variable MV can be effectively achieved by changes in the CV values as follows: Δ C V = A Δ M V T
Figure DE000010362369B3_0014
  • ΔMVT - optimal target change of MV
  • ΔCV - CV change to obtain optimal MV. CV manipulation is implemented using CV setpoints.

Im Betrieb stellt der Optimierer 54 Beharrungszustandsziele für den unbeschränkten MPC-Controller bei jeder Abtastung auf und aktualisiert sie. Somit führt der MPC-Controller 52 den unbeschränkten Algorithmus durch. Da die Ziele CVT und AVT auf eine Weise festgelegt werden, die Randbedingungen so lange berücksichtigt, wie eine machbare Lösung besteht, arbeitet der Controller innerhalb von Zwangsgrenzen. Deshalb ist Optimierung ein integraler Bestandteil des MPC-Controllers.In operation, the optimizer 54 establishes and updates steady-state targets for the unconstrained MPC controller on each sample. Thus, the MPC controller 52 performs the unconstrained algorithm. Since the targets CVT and AVT are set in a way that takes into account constraints as long as a feasible solution exists, the controller operates within constraint limits. Therefore, optimization is an integral part of the MPC controller.

Die 3 und 4 stellen ein Ablaufdiagramm 90 dar, das die Schritte zeigt, die zu Durchführung einer integrierter Modellvorhersagesteuerung und -optimierung erfolgen. Das Ablaufdiagramm 90 ist allgemein in zwei Abschnitte 90a (3) und 90b (4) aufgeteilt, die Funktionen zeigen, die vor dem Prozessablauf in Erscheinung treten (90a), und Funktionen, die während des Prozessablaufs in Erscheinung treten (90b), z.B. während jedes Abtastens des Prozessablaufs. Vor dem Prozessablauf ergreift ein Bediener oder Techniker eine Anzahl von Schritten, um den fortgeschrittenen Steuer-/Regelblock 38 einschließlich eines integrierten MPC-Controllers und Optimierers herzustellen. Insbesondere kann bei einem Block 92 eine fortgeschrittene Steuervorlage zu Verwendung als fortgeschrittener Steuer-/Regelblock 38 ausgewählt werden. Die Vorlage kann in einer Bibliothek in einer Konfigurationsanwendung auf der Benutzeroberfläche 13 gespeichert oder daraus kopiert werden, und kann die allgemeinen mathematischen und logischen Funktionen des MPC-Controllerprogramms 52 und des Optimiereres 54 enthalten, ohne die speziellen MPC-, Prozessmodelle und Beharrungszustandsverstärkungs- oder Steuermatrizes und die spezielle Zielfunktion. Diese fortgeschrittene Steuervorlage kann in einem Modul mit anderen Blöcken hinterlegt werden, wie Eingabe- und Ausgabeblöcken, die so konfiguriert sind, dass sie mit Geräten innerhalb des Prozesses 50, sowie anderen Typen von Funktionsblöcken wie Steuer-/Regelblöcken, einschließlich PID-, neuronalen Netz- und Fuzzy-Regelblöcken kommunizieren. Es wird klar, dass in einer Ausführungsform die Blöcke innerhalb eines Moduls jeweils Gegenstände in einem objektorientierten Programmierparadigma sind, deren Ein- und Ausgaben miteinander verbunden sind, um eine Kommunikation zwischen den Blöcken zu bewerkstelligen. Während des Ablaufs führt der Prozessor, der das Modul bearbeitet, jeden der Blöcke der Reihe nach zu einer anderen Zeit durch, und verwendet die Eingaben in die Blöcke, um Ausgaben aus den Blöcken zu erzeugen, die dann den Eingaben anderer Blöcke wie durch die festgelegten Kommunikationsverbindungen zwischen den Blöcken definiert zur Verfügung gestellt werden.the 3 and 4 Figure 12 depicts a flowchart 90 showing the steps involved in performing integrated model predictive control and optimization. The flowchart 90 is generally divided into two sections 90a ( 3 ) and 90b ( 4 ) showing functions that appear before the process flow (90a) and functions that appear during the process flow (90b), eg during each scan of the process flow. Prior to process flow, an operator or technician takes a number of steps to fabricate the advanced control block 38 including an integrated 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 can be stored in or copied from a library in a configuration application on the user interface 13, and can contain the general mathematical and logical functions of the MPC controller program 52 and the optimizer 54, without the specific MPC, process models and steady state gain or control matrices and the special objective function. This advanced control template can be placed in a module with other blocks, such as input and output blocks configured to interface with devices within the process 50, as well as other types of functional blocks such as control blocks, including PID, neural network - and fuzzy control blocks communicate. It will be appreciated that in one embodiment, the blocks within a module are each entities in an object-oriented programming paradigm whose inputs and outputs are connected to effectuate communication between the blocks. During execution, the processor processing the module runs each of the blocks in turn at another time, and uses the inputs to the blocks to generate outputs from the blocks, which are then made available to the inputs of other blocks as defined by the specified communication links between the blocks.

Bei einem Block 94 legt der Bediener die speziellen Stellgrößen, Steuergrö-ßen, Randbedingungsgrößen und Störgrößen fest, die im Block 38 verwendet werden sollen. Falls gewünscht, kann der Benutzer in einem Konfigurationsprogramm wie dem Programm 40 von 1, die Steuervorlage sichten, Ein- und Ausgaben, die benannt und konfiguriert werden sollen, auswählen, irgendwelche Standardbrowser in der Konfigurationsumgebung durchsuchen, um die aktuellen Eingaben- und Ausgaben innerhalb des Steuersystems zu finden und diese aktuellen Steuergrößen als Eingabe- und Ausgabesteuergrößen für die Steuervorlage auszuwählen. 5 stellt eine Bildschirmanzeige dar, die von einem Konfigurationsprogramm erzeugt wurde, die ein Steuermodul DEB_MPC mit mehreren untereinander verbundenen Funktionsblöcken einschließlich mehrerer Funktionsblöcke mit analogem Eingang (AI) und analogem Ausgang (AO) zeigt, mehrere PID-Regelfunktionsblöcke und einen MPC-PRO-Funktionsblock, welcher ein fortgeschrittener Funktionsblock ist. Die Baumstruktur auf der linken Seite der Anzeige von 5 stellt die Funktionsblöcke innerhalb des DEB_MPC-Moduls dar, die beispielsweise den Block 1, C4_AI, C4_DGEN, etc. umfassen.At block 94, the operator specifies the particular manipulated, controlled, constrained, and disturbance variables to be used in block 38. If desired, the user can enter a configuration program such as program 40 from 1 , view the control template, select inputs and outputs to be named and configured, browse any standard browsers in the configuration environment to find the current inputs and outputs within the control system, and set these current controls as input and output controls for the control template to select. 5 represents a screen display generated by a configuration program showing a control module DEB_MPC with several interconnected function blocks including several analog input (AI) and analog output (AO) function blocks, several PID control function blocks and an MPC-PRO function block, which is an advanced function block. The tree structure on the left side of the display of 5 represents the function blocks within the DEB_MPC module, which include, for example, block 1, C4_AI, C4_DGEN, etc.

Wie klar wird, kann der Benutzer die Eingaben in und Ausgaben aus dem MPC-PRO-Funktionsblock festlegen, indem er zwischen diesen Ein- und Ausgaben und den Ein- und Ausgaben anderer Funktionsblöcke Linien zieht. Alternativ kann der Benutzer den MPC-PRO-Block auswählen, um Zugriff auf die Eigenschaften des MPC-PRO-Blocks zu erhalten. Ein Dialogfeld wie dasjenige von 6, kann angezeigt werden, um es einem Benutzer zu ermöglichen, die Eigenschaften des MPC-PRO-Blocks anzuschauen. Wie in 6 dargestellt ist, kann für jede der Steuer-, Stell-, Stör- und Randbedingungsgrößen (Hilfsgrößen) eine andere Tabelle vorgesehen sein, um diese Größen zu ordnen, was insbesondere dann notwendig ist, wenn zahlreiche Größen wie 20 oder mehr von jeder, dem fortschrittlichen Steuer-/Regelblock 38 zugeordnet sind. Innerhalb der Tabelle für eine bestimmte Art von Größe kann eine Beschreibung, eine niedrige und hohe Grenze (Randbedingungen) und eine Pfadbezeichnung vorgesehen sein. Zusätzlich kann der Benutzer oder Bediener festlegen, was der Block im Falle einer verfehlten Bedingung mit der Größe machen soll, wie beispielsweise keine Maßnahme zu ergreifen, den simulierten Wert der Größe anstatt des gemessenen Werts zu verwenden oder eine manuelle Eingabe zuzulassen. Überdies kann der Bediener auch noch festlegen, ob diese Größe zur Optimierung minimiert oder maximiert werden soll, und kann die Priorität oder Gewichtung und die mit dieser Größe zusammenhängenden Nutzwerte festlegen. Diese Felder müssen ausgefüllt werden, wenn keine Standardzielfunktion verwendet wird. Selbstverständlich kann der Benutzer unter Verwendung der geeigneten Tasten auf der rechten Seite des Dialogfelds Daten oder Größen hinzufügen, verschieben, abändern oder löschen.As will become clear, the user can specify the inputs to and outputs from the MPC-PRO function block by drawing lines between these inputs and outputs and the inputs and outputs of other function blocks. Alternatively, the user can select the MPC-PRO block to access the properties of the MPC-PRO block. A dialog box like that of 6 , may be displayed to allow a user to view the properties of the MPC-PRO block. As in 6 , a different table can be provided for each of the control, manipulated, disturbance, and constraint (auxiliary) variables to organize these variables, which is particularly necessary when numerous variables such as 20 or more of each, the advanced Control / regulation block 38 are assigned. Within the table for a certain type of quantity there can be a description, a low and high limit (constraints) and a path designation. In addition, the user or operator can specify what the block should do with the quantity in the event of a failed condition, such as taking no action, using the simulated value of the quantity instead of the measured value, or allowing manual input. In addition, the operator can also specify whether this quantity should be minimized or maximized for optimization and can specify the priority or weight and utility values associated with this quantity. These fields must be filled in if no default objective function is used. Of course, the user can add, move, modify or delete dates or sizes using the appropriate buttons on the right side of the dialog box.

Der Benutzer kann die Daten einer oder mehrerer der Größen festlegen oder ändern, indem er die Größe auswählt. In diesem Fall kann dem Benutzer ein Dialogfeld wie dasjenige von 7 für die RÜCKFLUSS-Stellgröße (REFLUX FLOW) präsentiert werden. Der Benutzer kann die Daten in ihren unterschiedlichen Feldern ändern und Daten wie den Pfadnamen der Größe (d.h. ihre Eingabe- und Ausgabeverbindung) durch Browsen festlegen. Mittels des Bildschirms von 7 kann der Benutzer eine interne Suchtaste oder eine externe Suchtaste auswählen, um innerhalb des Moduls oder außerhalb des Moduls zu suchen, in dem der MPC-PRO-Block untergebracht ist. Natürlich kann der Bediener oder Benutzer, falls gewünscht, manuell eine Adresse, einen Pfad- oder Etikettnamen, etc. bereitstellen, der die Verbindungen zu und aus den Ein- und Ausgaben des fortgeschrittenen Steuer-/Regelblocks definiert, falls das so gewünscht wird.The user can set or change the data of one or more of the sizes by selecting the size. In this case, the user can be presented with a dialog box like that of 7 for the RETURN FLOW manipulated variable (REFLUX FLOW). The user can change the data in their different fields and set data like the pathname of the size (ie their input and output connection) by browsing. Using the screen of 7 the user can select an internal search button or an external search button to search inside the module or outside the module housing the MPC-PRO block. Of course, if desired, the operator or user can manually provide an address, path or tag name, etc. defining the connections to and from the inputs and outputs of the advanced control block, if so desired.

Nach der Auswahl der Ein- und Ausgaben in und aus dem fortgeschrittenen Steuerfunktionsblock, kann der Benutzer die mit den Steuergrößen zusammenhängenden Sollwerte definieren, die mit den Steuer-, Hilfs- und Stellgrößen zusammenhängenden Bereiche oder Grenzen, und die mit jeder der Steuer-, Hilfs- und Stellgrößen zusammenhängenden Gewichtungen. Natürlich können einige dieser Daten wie Zwangsgrenzen oder -bereiche schon mit diesen Größen assoziiert sein, weil diese Größen aus der Konfigurationsumgebung des Prozesssteuerungssystems ausgewählt oder darin aufgefunden wurden. Falls gewünscht, kann der Bediener bei einem Block 96 von 3 die eine oder die mehreren Funktion/en, die im Optimierer verwendet werden sollen, dadurch konfigurieren, dass er die Einheitskosten und/oder den Einheitsnutzen für die Stellgrößen, Steuergrößen bzw. Hilfsgrößen festlegt. Selbstverständlich kann der Bediener dabei auswählen, die Standardzielfunktion, wie zuvor beschrieben, zu verwenden. 8 ist eine Bildschirmanzeige, die von einem Konfigurationsprogramm bereitgestellt wird, das es einem Benutzer oder Bediener ermöglicht, eine aus einem Satz von Zielfunktionen zum Herstellen eines fortgeschrittenen Steuer-/Regelblocks auszuwählen. Es versteht sich, dass der Benutzer die Bildschirmanzeige wie diejenige, die in 8 vorgesehen ist, zur Auswahl eines Satzes von zuvor gespeicherten Zielfunktionen verwenden kann, hier als Standardzielfunktion und Zielfunktionen 2-5 dargestellt.After selecting the inputs and outputs to and from the advanced control function block, the user can define the setpoints associated with the control variables, the ranges or limits associated with the control, auxiliary and manipulated variables, and the limits associated with each of the control, auxiliary - and manipulated variables related weightings. Of course, some of this data, such as constraint limits or ranges, may already be associated with these quantities because these quantities were selected from or found in the process control system configuration environment. If desired, at a block 96 of 3 configure the one or more functions to be used in the optimizer by specifying the unit costs and/or the unit utility for the manipulated variables, control variables or auxiliary variables. Of course, the operator can choose to use the default target function as previously described. 8th is a screen display provided by a configuration program that allows a user or operator to select one of a set of target functions for making an advanced control block. It is understood that the user can see the screen display like the one shown in 8th intended is, to select a set of previously stored objective functions, shown here as default objective function and objective functions 2-5.

Nachdem die Eingaben (Steuer-, Hilfs- und Störgrößen) benannt und mit der fortgeschrittenen Steuervorlage verknüpft, und die Gewichtungen, Grenzen und Sollwerte bei einem Block 98 von 3 damit assoziiert wurden, wird die fortgeschrittene Steuervorlage in einen ausgewählten Controller innerhalb des Prozesses als Funktionsblock heruntergeladen, der zur Steuerung verwendet werden soll. Die allgemeine Natur dieses Steuer-/Regelblocks und die Art und Weise, diesen Steuer-/Regelblock zu konfigurieren, ist im U.S.-Patent Nr. 6,445,963 mit dem Titel „Integrated Advanced Control Blocks in Process Control Systems“ beschrieben, das auf den Inhaber der vorliegenden Anmeldung übertragen wurde und hier ausdrücklich durch Bezugnahme aufgenommen ist. Während dieses Patent die Art beschreibt, einen MPC-Controller in einem Prozesssteuerungssystems herzustellen und die Art und Weise nicht beschreibt, in der ein Optimierer mit diesem Controller verbunden werden kann, wird klar, dass die allgemeinen Schritte, die unternommen werden, um den Controller zu verbinden und zu konfigurieren, für den hier beschriebenen Steuer-/Regelblock 38 verwendet werden können, wobei die Vorlage alle der hier erörterten logischen Elemente für den Steuer-/Regelblock 38 umfasst und nicht nur diejenigen, die in diesem Patent beschrieben sind.After the inputs (control, auxiliary, and disturbance) are named and linked to the advanced control template, and the weights, limits, and setpoints at a block 98 of 3 associated with it, the advanced control template is downloaded to a selected controller within the process as a functional block to be used for control. The general nature of this control block and the way to configure this control block is in the U.S. Patent No. 6,445,963 entitled "Integrated Advanced Control Blocks in Process Control Systems" which is assigned to the assignee of the present application and is expressly incorporated herein by reference. While this patent describes the manner of making an MPC controller in a process control system and does not describe the manner in which an optimizer may be connected to that controller, it is clear that the general steps taken to make the controller connect and configure, may be used for the control block 38 described herein, the template including all of the logical elements for the control block 38 discussed herein, not just those described in this patent.

Jedenfalls kann der Bediener bei einem Block 100, nachdem die fortgeschrittene Steuervorlage in den Controller heruntergeladen wurde, auswählen, eine Testphase der Steuervorlage ablaufen zu lassen, um die Schrittantwortmatrix und das Prozessmodell herzustellen, das im MPC-Controlleralgorithmus Verwendung finden soll. Wie in dem oben angegebenen Patent beschrieben, stellt während der Testphase die Steuerlogik im fortgeschrittenen Steuer-/Regelblock 38 dem Prozess eine Reihe von Pseudozufallswellenformen als Stellgrößen zur Verfügung und beobachtet die Veränderungen bei den Steuer- und Hilfsgrößen (die vom MPC-Controller im Wesentlichen als Steuergrößen behandelt werden). Falls gewünscht, können die Stell- und Störgrößen sowie die Steuer- und Hilfsgrößen von der Datensammlung 12 von 1 gesammelt werden, und der Bediener kann das Konfigurationsprogramm 40 (1) aufbauen, um diese Daten von der Datensammlung 12 abzurufen und auf irgendeine Weise eine Trenduntersuchung an diesen Daten vorzunehmen, um die Schrittantwortmatrix zu erhalten oder zu bestimmen, wobei jede Schrittantwort das zeitliche Ansprechen einer der Steuer- oder Hilfsgrößen auf eine Einheitsveränderung bei einer (und nur einer) der Stell- und Steuergrößen kennzeichnet. Diese Einheitsveränderung ist im Allgemeinen eine Schrittveränderung, könnte aber auch eine andere Art von Veränderung wie eine Puls- oder Anstiegsänderung sein. Andererseits kann der Steuer-/Regelblock 38, falls gewünscht, die Schrittantwortmatrix im Ansprechen auf die Daten erzeugen, die erfasst werden, wenn die Pseudozufallswellenformen auf den Prozess 50 angewandt werden, und stellt dann diese Wellenformen der Bedieneroberfläche 13 zur Verfügung, die vom Bediener oder Benutzer verwendet wird, um den fortgeschrittenen Steuer-/Regelblock 38 herzustellen und zu installieren.In any event, at a block 100, after the advanced control template has been downloaded to the controller, the operator can choose to run a test phase of the control template to produce the step response matrix and process model to be used in the MPC controller algorithm. As described in the above referenced 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 observes the changes in the controlled and auxiliary variables (which the MPC controller essentially uses as control variables are treated). If desired, the manipulated variables and disturbance variables as well as the control and auxiliary variables from the data collection 12 from 1 can be collected and the operator can run the configuration program 40 ( 1 ) to retrieve this data from the data collection 12 and to trend this data in some manner to obtain or determine the step-response matrix, each step-response representing the time response of one of the control or auxiliary quantities to a unit change in one (and only one) of the manipulated and control variables. This unit change is generally a step change, but could also be another type of change such as a pulse or slope change. On the other hand, if desired, the control block 38 can generate the step response matrix in response to the data collected when the pseudo-random waveforms are applied to the process 50, and then makes these waveforms available to the operator interface 13, which can be used by the operator or user is used to manufacture and install the advanced control block 38.

9 stellt eine Bildschirmanzeige dar, die vom Testprogramm bereitgestellt werden kann, um dem Bediener graphische Darstellungen der gesammelten und auf ihren Trend hin untersuchten Daten zu liefern, um es dem Bediener zu ermöglichen, die Erstellung der Schrittantwortkurven und damit der Prozessmodell- oder Steuermatrix anzuleiten, die im MPC-Controller des fortgeschrittenen Steuer-/Regelblocks verwendet werden soll. Insbesondere stellt ein Graphikdarstellungsbereich 101 die Daten für mehrere Ein- oder Ausgaben oder andere Daten (wie zuvor vom Bediener festgelegt) im Ansprechen auf die Testwellenformen dar. Ein Balkendiagrammbereich 102 liefert ein Balkendiagramm für jede der auf ihren Trend hin untersuchten Größendaten, das für jede der Größen, die auf ihren Trend hin untersucht werden, den Namen der Größe, den momentanen Wert der Größe in Balkendiagrammform darstellt, gegebenenfalls einen Sollwert (angezeigt durch ein größeres Dreieck über dem Balkendiagramm) und gegebenenfalls Grenzen (angezeigt durch kleinere Dreiecke über dem Balkendiagramm). Andere Bereiche der Anzeige stellen andere Angaben über den fortgeschrittenen Steuer-/Regelblock dar, wie die Ziel- und aktuelle Betriebsart des Blocks (104) und die konfigurierte Zeit bis Beharrungszustand (106). 9 represents a screen display that may be provided by the test program to provide the operator with graphical representations of the data collected and trended to enable the operator to guide the creation of the step-response curves and hence the process model or control matrix which to be used in the MPC controller of the advanced control block. In particular, a graph display area 101 displays the data for a plurality of inputs or outputs or other data (as previously specified by the operator) in response to the test waveforms Quantities being analyzed for trend, the name of the quantity, the instantaneous value of the quantity in bar graph form, a target value (indicated by a larger triangle above the bar graph), if any, and limits (indicated by smaller triangles above the bar graph), if any. Other areas of the display present other information about the advanced control block, such as the block's target and current mode of operation (104) and the configured time to steady state (106).

Vor der Erstellung eines Prozessmodells für den fortgeschrittenen Steuer-/Regelblock kann der Bediener graphisch die Daten festlegen, die aus den trendanzeigenden graphischen Darstellungen 101 verwendet werden sollen. Insbesondere kann der Bediener Beginn- und Endpunkte 108 und 110 der graphischen Darstellung 102 als die Daten festlegen, die zur Herstellung der Schrittantwortkurve verwendet werden sollen. Die Daten in diesem Bereich können in einer anderen Farbe, wie Grün, schraffiert sein, um die ausgewählten Daten visuell anzuzeigen. Genauso kann der Bediener Bereiche innerhalb des schraffierten Bereichs festlegen, die ausgeschlossen werden sollen (weil sie nicht repräsentativ, eine Auswirkung von Rauschen oder eine ungewollte Störung, etc. sind). Dieser Bereich ist zwischen den Linien 112 und 114 dargestellt und kann beispielsweise rot schraffiert sein, um anzuzeigen, dass diese Daten bei der Erstellung der Schrittantworten nicht mit aufgenommen werden sollen. Natürlich könnte der Benutzer irgendwelche gewünschte Daten ein- oder ausschließen und kann diese Funktionen für jede von mehreren graphischen Trenddarstellungen durchführen (9 stellt dar, dass in diesem Falle acht graphische Trenddarstellungen zur Verfügung stehen), wobei die unterschiedlichen graphischen Trenddarstellungen beispielsweise mit unterschiedlichen Stell-, Steuer-, Hilfsgrößen etc. assoziiert werden.Prior to creating a process model for the advanced control block, the operator can graphically specify the data to be used from trending graphs 101 . In particular, the operator can specify start and end points 108 and 110 of graph 102 as the data to be used to construct the step-response curve. The data in this area may be hatched in a different color, such as green, to visually indicate the selected data. Likewise, the operator can specify areas within the shaded area to be excluded (because they are unrepresentative, an effect of noise or an unwanted disturbance, etc.). This area is shown between lines 112 and 114 and may, for example, be shaded red to indicate that this data was used in the generation of the stepant words should not be included. Of course, the user could include or exclude any data desired and can perform these functions on any of several trend graphs ( 9 shows that in this case eight graphic trend displays are available), with the different graphic trend displays being associated, for example, with different manipulated, control, auxiliary variables, etc.

Um einen Satz von Schrittantworten herzustellen, kann der Bediener auf der Bildschirmanzeige von 9 die Modellherstellungstaste 116 wählen, und das Herstellungsprogramm verwendet die aus den graphischen Trenddarstellungen ausgewählten Daten, um einen Satz von Schrittantworten herzustellen, wobei jede Schrittantwort das Ansprechen einer der Steuer- oder Hilfsgrößen auf eine der Stell- oder Störgrößen anzeigt. Dieser Herstellungsprozess ist hinlänglich bekannt und wird hier nicht mehr ausführlicher beschrieben.To create a set of step responses, the operator can click on the on-screen display of 9 select the build model button 116 and the build program uses the data selected from the trend graphs to build a set of step responses, each step response indicating the response of one of the control or auxiliary variables to one of the manipulated or disturbance variables. This manufacturing process is well known and will not be described in more detail here.

Wieder mit Bezug auf 3 wird, nachdem die Schrittantwortmatrix (oder Puls-, Anstiegsantwortmatrix, etc.) hergestellt wurde, in dem Fall, bei dem die Steuer- und Hilfsgrößen die Stellgrößen zahlenmäßig übertreffen, die Schrittantwortmatrix (oder Puls-, Anstiegsantwortmatrix, etc.) dazu verwendet, um die Teilmenge von Steuer- und Hilfsgrößen auszuwählen, die im MPC-Algorithmus als das M-mal-M-Prozessmodell oder die Steuermatrix verwendet wird, die invertiert und im MPC-Controller 52 verwendet werden soll. Dieser Auswahlvorgang kann manuell durch den Bediener oder automatisch durch ein Programm, beispielsweise in der Bedieneroberfläche 13 erfolgen, die Zugriff auf die Schrittantwortmatrix hat. Allgemein ausgedrückt wird eine einzelne der Steuer- und Hilfsgrößen als einer einzelnen der Stellgrößen am nächsten verwandt identifiziert. Somit wird eine einzelne und einzige (d.h. andere) der Steuer- oder Hilfsgrößen (welche Eingaben in den Prozesscontroller sind) mit jeder der anderen Stellgrößen (welche Ausgaben aus dem Prozesscontroller sind) assoziiert (z.B. paarweise zusammengefasst), so dass sich der MPC-Algorithmus auf ein Prozessmodell stützen kann, das aus einem Satz von M-mal-M Schrittantworten hergestellt wurde.Again referring to 3 After the step response matrix (or pulse, slew response matrix, etc.) has been established, in the case where the control and auxiliary variables outnumber the manipulated variables, the step response matrix (or pulse, slew response matrix, etc.) is used to: select the subset of controls and auxiliary quantities to be used in the MPC algorithm as the M by M process model or control matrix to be inverted and used in the MPC controller 52 . This selection process can be done manually by the operator or automatically by a program, for example in the user interface 13 which has access to the step response matrix. Generally speaking, a single one of the control and auxiliary variables is identified as being most closely related to a single one of the manipulated variables. Thus, a single and only (i.e., other) one of the control or auxiliary variables (which are inputs to the process controller) is associated (e.g., paired) with each of the other manipulated variables (which are outputs from the process controller) such that the MPC algorithm can be based on a process model constructed from a set of M by M step responses.

In einer Ausführungsform, welche einen heuristischen Lösungsansatz durch Vorsehen von Paarbildung verwendet, wählt das automatische Programm oder der Bediener den Satz von M Steuer- und Hilfsgrößen (bei dem M gleich der Anzahl von Stellgrößen ist) in einem Versuch aus, die einzelne Steuer- oder Hilfsgröße auszuwählen, die eine gewisse Kombination aus größter Verstärkung und schnellster Ansprechzeit auf eine Einheitsveränderung bei einer einzelnen der Stellgrößen aufweist, und aus diesen beiden Größen ein Paar zu bilden. Natürlich kann in manchen Fällen eine einzelne Steuer- oder Hilfsgröße eine große Verstärkung und schnelle Ansprechzeit auf mehrere Stellgrößen aufweisen. Hier kann diejenige Steuer- oder Hilfsgröße mit irgendeiner der dazugehörigen Stellgrößen zu einem Paar zusammengefasst werden und kann auch mit einer Stellgröße ein Paar bilden, die nicht die größte Verstärkung und Ansprechzeit hervorbringt, weil in der Gruppe die Stellgröße, die die geringere Verstärkung oder langsamere Ansprechzeit verursacht, keine andere Steuer- oder Hilfsgröße in einem annehmbaren Ausmaß beeinflussen kann. Somit werden die Paare von Stellgrößen einerseits und die Steuer- oder Hilfsgrößen andererseits alles in allem so ausgewählt, dass die Stellgrößen mit der Teilmenge von Steuer- und Hilfsgrößen, die die Steuergrößen darstellen, die auf die Stellgrößen am stärksten ansprechen, zu Paaren zusammengefasst werden.In an embodiment that uses a heuristic approach by providing pairing, the automated program or operator selects the set of M controls and auxiliary variables (where M equals the number of manipulated variables) in an attempt to match the single control or to select an auxiliary variable which has a certain combination of the greatest gain and the fastest response time to a unit change in a single one of the manipulated variables, and to form a pair of these two variables. Of course, in some cases, a single control or auxiliary variable can have high gain and fast response time to multiple manipulated variables. Here, that control or auxiliary variable can be combined with any of the associated manipulated variables to form a pair and can also form a pair with a manipulated variable that does not produce the greatest gain and response time, because in the group the manipulated variable that has the lower gain or slower response time caused, no other control or auxiliary variable can influence to an acceptable extent. Thus, the pairs of manipulated variables, on the one hand, and the control or auxiliary variables, on the other hand, are selected overall in such a way that the manipulated variables are paired with the subset of controlled and auxiliary variables that represent the control variables that are most responsive to the manipulated variables.

Das automatische Programm oder der Bediener kann auch versuchen, Steuer- und Hilfsgrößen CV und AV mit aufzunehmen, die nicht korreliert, stark korreliert, minimal korreliert, etc. sind. Außerdem macht es auch nichts aus, wenn nicht alle der Steuergrößen als eine der Teilmenge der M Steuer- und Hilfsgrößen ausgewählt werden und deshalb der MPC-Controller nicht alle der Steuergrößen als Eingaben in ihn erhält, weil der Satz von Zielsteuer- und Hilfsgrößen vom Optimierer ausgewählt wird, um einen Operationspunkt des Prozesses darzustellen, bei dem die nicht ausgewählten Steuergrößen (wie auch die nicht ausgewählten Hilfsgrößen) sich auf ihrem Sollwert oder innerhalb ihres vorgesehenen Operationsbereichs befinden.The automatic program or the operator can also try to include control and auxiliary variables CV and AV which are uncorrelated, highly correlated, minimally correlated, etc. In addition, it also doesn't matter if not all of the control variables are selected as one of the subset of the M control and auxiliary variables and therefore the MPC controller does not get all of the control variables as inputs to it, because the set of target control and auxiliary variables from the optimizer is selected to represent an operating point of the process where the unselected control variables (as well as the unselected auxiliary variables) are at their set point or within their intended range of operation.

Da es Dutzende und sogar Hunderte von Steuer- und Hilfsgrößen einerseits und Dutzende oder Hunderte von Stellgrößen andererseits gibt, kann es natürlich zumindest vom Visualisierungsstandpunkt her schwierig sein, den Satz von Steuer- und Hilfsgrößen auszuwählen, die das beste Ansprechen auf die verschiedenen Stellgrößen haben. Um dieses Problem zu bewältigen kann das Generatorprogramm 40 für den fortgeschrittenen Steuer-/Regelblock in der Bedienerarbeitsoberfläche 13 einen Satz von Bildschirmanzeigen umfassen oder dem Benutzer oder Bediener darbieten, um es dem Bediener zu ermöglichen, eine angemessene Auswahl der Steuer- und Hilfsgrößen zu treffen, die als Teilmenge der im MPC-Controller 52 während des Betriebs zu verwendenden Steuer- und Hilfsgrößen verwendet werden sollen.Of course, since there are tens and even hundreds of controls and auxiliary variables on the one hand and tens or hundreds of manipulated variables on the other hand, it can be difficult, at least from a visualization standpoint, to select the set of controls and auxiliary variables that have the best response to the various manipulated variables. To overcome this problem, the advanced control block generator program 40 in the operator workspace 13 may include or present a set of screen displays to the user or operator to allow the operator to make appropriate selections of control and auxiliary variables, which are to be used as a subset of the control and auxiliary variables to be used in the MPC controller 52 during operation.

Auf diese Weise kann bei einem in 3 dargestellten Block 120 dem Bediener eine Bildschirmmaske geboten werden, in der der Bediener das Ansprechen jeder der Steuer- und Hilfsgrößen auf eine bestimmte oder ausgewählte der Stellgrößen anschauen kann. Solch eine Bildschirmmaske ist in 10 dargestellt, die das Ansprechen jeder von mehreren Steuer- und Hilfsgrößen (als Randbedingung bezeichnet) auf eine Stellgröße zeigt, die TOP_DRAW genannt wird. Der Bediener kann die Stellgrößen durch Bildverschiebung (Scrollen) eine nach der anderen durchlaufen und die Schrittantworten jeder der Steuer- und Hilfsgrößen auf jede der unterschiedlichen Stellgrößen anschauen und während des Prozesses die eine Steuer- oder Hilfsgröße auswählen, die am besten auf diese Stellgröße anspricht. Typischerweise wird der Bediener versuchen, die Steuer- oder Hilfsgröße auszuwählen, die die beste Kombination aus höchster Beharrungszustandsverstärkung und schnellster Ansprechzeit auf die Stellgröße aufweist. Wie in 11 dargestellt ist, kann eine der Steuer- und Hilfsgrößen unter Verwendung des Dialogfelds als die für diese Stellgröße Signifikanteste ausgewählt werden. Falls gewünscht, kann, wie in 11 dargestellt, die aus den Steuer- und Hilfsgrößen ausgewählte Größe in einer anderen Farbe, wie Rot, hervorgehoben werden (während die zuvor ausgewählten, d.h. Steuer- und Hilfsgrößen, die für andere Stellgrößen ausgewählt wurden, in einer anderen Farbe, wie Gelb, hervorgehoben werden können). In dieser Ausführungsform kann das Steuerprogramm 40, das natürlich die zuvor ausgewählten Steuer- und Hilfsgrößen in einem Speicher hinterlegt, eine Prüfung durchführen, um sicherzustellen, dass der Bediener nicht dieselbe Steuer- oder Hilfsgröße als mit zwei unterschiedlichen Stellgrößen assoziierte Größe auswählt. Falls der Benutzer oder Bediener eine Steuer- oder Hilfsgröße auswählt, die bereits für eine andere Stellgröße ausgewählt wurde, kann das Programm 40 dem Benutzer oder Bediener eine Fehlermeldung zukommen lassen, um den Benutzer oder Bediener über die Auswahl einer zuvor bereits ausgewählten Steuer- oder Hilfsgröße zu informieren. Auf diese Weise verhindert das Programm 40 die Auswahl derselben Steuer- oder Hilfsgröße für zwei oder mehr unterschiedliche Stellgrößen.In this way, with an in 3 Illustrated block 120 the operator are offered a screen mask in which the operator the response of each of the control and auxiliary variables to a can view certain or selected of the manipulated variables. Such a screen mask is in 10 is shown showing the response of each of several control and auxiliary variables (called a constraint) to a manipulated variable called TOP_DRAW. The operator can scroll through the manipulated variables one at a time and view the step responses of each of the control and auxiliary variables to each of the different manipulated variables and during the process select the one control or auxiliary variable that best responds to that manipulated variable. Typically, the operator will attempt to select the control or auxiliary variable that has the best combination of highest steady-state gain and fastest response time to the manipulated variable. As in 11 , one of the control and auxiliary variables can be selected using the dialog box as the most significant for that manipulated variable. If desired, as in 11 displayed, the variable selected from the control and auxiliary variables are highlighted in a different color, such as red (while the previously selected i.e. control and auxiliary variables selected for other manipulated variables are highlighted in a different color, such as yellow be able). In this embodiment, the control program 40, which of course stores the previously selected control and auxiliary variables in memory, can perform a check to ensure that the operator does not select the same control or auxiliary variable as the variable associated with two different manipulated variables. If the user or operator selects a control or auxiliary variable that has already been selected for another manipulated variable, the program 40 can send the user or operator an error message to inform the user or operator about the selection of a previously selected control or auxiliary variable to inform. In this way, the program 40 prevents the selection of the same control or auxiliary variable for two or more different manipulated variables.

Wie in 12 dargestellt ist, kann der Bediener oder Benutzer die Wahl treffen, die verschiedenen Schrittantworten für jede der unterschiedlichen Stell- und Störgrößen anzusehen. 12 stellt die Schrittantworten des TOP_END_-POINT auf jede der Stell- und Störgrößen dar, die zuvor für den zu schaffenden fortgeschrittenen Steuer-/Regelblock festgelegt wurden. Natürlich kann der Bediener die Bildschirmmaske von 12 verwenden, um eine der Stellgrößen auszuwählen, die mit der Steuergröße TOP_END_POINT assoziiert wird.As in 12 shown, the operator or user can choose to view the different step responses for each of the different manipulated and disturbance variables. 12 represents the step responses of the TOP_END_POINT to each of the manipulated and disturbance variables previously specified for the advanced control block to be created. Of course, the operator can change the screen mask from 12 Use to select one of the manipulated variables associated with the control variable TOP_END_POINT.

Die mit Bezug auf die 10 - 12 beschriebene Auswahlprozedur basiert auf graphischen Anzeigen, bei denen eine Steuer- oder Hilfsgröße aus einer Anzeige als die Signifikanteste ausgewählt werden kann. Dem Bediener können die Daten zusätzlich oder alternativ auf eine andere Weise dargeboten werden, wie in Tabellenform, um zur Vervollständigung einer M-mal-M-Controllerkonfiguration beizutragen. Ein Beispiel einer Bildschirmanzeige, die zur Vervollständigung einer M-mal-M-Controllerkonfiguration beiträgt und die Daten in Tabellenform bietet, ist in 13 gezeigt. In diesem Beispiel sind die Größen, die der Steuermatrix (Steuer- CV, Hilfs- AV und Stellgrößen MV) zur Verfügung stehen, die Bedingungsanzahlen der Matrixkonfiguration, etc. in Tabellenform bereitgestellt. In einem Abschnitt 204 der Bildschirmanzeige 200 sind Angaben von Steuer- und Hilfsgrößen, die noch nicht Teil einer Steuermatrixkonfiguration sind, zusammen mit Ansprechparametern, die mit den Steuer- und Hilfsgrößen zusammenhängen (z.B. Verstärkung, Totzeit, Priorität, Zeitkonstante, etc.) zu jeder der Prozessstellgrößen aufgelistet. In einem Abschnitt 208 ist eine Angabe der aktuellen Konfiguration des MPC-Controllers angezeigt. Eine Spalte 212 liefert Angaben über verfügbare Stellgrößen, und eine Spalte 216 liefert Angaben über Ausgabengrößen (z.B. Steuer- oder Hilfsgrößen), die aktuell in der MPC-Steuermatrix enthalten sind.The related to the 10 - 12 The selection procedure described is based on graphical displays, where a control or auxiliary variable can be selected from a display as the most significant. Additionally or alternatively, the data may be presented to the operator in some other way, such as in tabular form, to help complete an M by M controller configuration. An example of a screen display that helps complete an M by M controller configuration and that provides data in tabular form is shown in 13 shown. In this example, the variables available to the control matrix (control CV, auxiliary AV and manipulated variables MV), the condition numbers of the matrix configuration, etc. are provided in tabular form. In a section 204 of the screen display 200 are indications of controls and auxiliary variables that are not already part of a control matrix configuration, along with response parameters associated with the controls and auxiliary variables (e.g., gain, dead time, priority, time constant, etc.) for each of the process variables are listed. In a section 208 an indication of the current configuration of the MPC controller is displayed. A column 212 provides information about available manipulated variables, and a column 216 provides information about output variables (eg, control or auxiliary variables) currently contained in the MPC control matrix.

Das Anzeigebeispiel 200 zeigt einen Quadratcontroller mit den Stellgrößen MV TOP_DRAW, SIDE_DRAW und BOT_REFLUX und Controllereingaben einschließlich der Steuer- und Hilfsgrößen BOT_TEMP, SIDE_END_POINT, TOP_END_POINT. Wählt ein Benutzer eine der Stellgrößen unter Verwendung einer Eingabevorrichtung wie einer Maus, einer Rollkugel, eines Berührungsbildschirms, etc., kann die ausgewählte Stellgröße hervorgehoben werden. Beispielsweise ist in der beispielhaften Bildschirmanzeige 200 die Stellgröße TOP_DRAW hervorgehoben. Zusätzlich sind Ansprechparameter, die mit den verfügbaren, im Abschnitt 204 angezeigten Steuer- und Hilfsgrößen zusammenhängen und der ausgewählten Stellgröße entsprechen, angezeigt. Beispielsweise sind in der beispielhaften Bildschirmanzeige 200 Verstärkungen 220 und Totzeiten 224 angezeigt, die der Stellgröße TOP_-DRAW entsprechen und den verfügbaren Steuer- und Hilfsgrößen 228 zugeordnet sind.The display example 200 shows a quadratic controller with the manipulated variables MV TOP_DRAW, SIDE_DRAW and BOT_REFLUX and controller inputs including the control and auxiliary variables BOT_TEMP, SIDE_END_POINT, TOP_END_POINT. When a user selects one of the manipulated variables using an input device such as a mouse, trackball, touch screen, etc., the selected manipulated variable may be highlighted. For example, in the exemplary screen display 200, the manipulated variable TOP_DRAW is highlighted. In addition, response parameters related to the available control and auxiliary variables displayed in section 204 and corresponding to the selected manipulated variable are displayed. For example, gains 220 and dead times 224 are displayed in the exemplary screen display 200, which correspond to the manipulated variable TOP_-DRAW and are assigned to the available control and auxiliary variables 228.

Die Anzeige 200 umfasst auch eine Hinzufügetaste 232a und eine Löschtaste 232b, um Steuer- und Hilfsgrößen (Randbedingungsgrößen) zwischen den Abschnitten 204 und 208 zu bewegen. Die Figur zeigt auch die Bedingungsanzahl von Matrixkonfigurationen mit verschiedener Verstärkung:

  • - Prozessmatrix: eine vollständige N-mal-M-Prozessmatrix mit Steuer- und Randbedingungsgrößen entlang einer ersten Achse und den Stellgrößen entlang einer zweiten Achse;
  • - Aktuelle Konfiguration: die M-mal-M-Konfiguration, die aktuell vom Bediener ausgewählt wurde und in der Tabelle „MPC Controller Input-Otput Configuration“ angezeigt wird;
  • - Automatische Konfiguration: die automatisch von einem Auswahlprogramm in der MPC-Anwendung ausgewählte M-mal-M-Konfiguration.
Display 200 also includes an add button 232a and a delete button 232b for moving control and auxiliary (constraint) quantities between sections 204 and 208. The figure also shows the condition number of matrix configurations with different gain:
  • - process matrix: a complete N by M process matrix with control and constraint variables along a first axis and the manipulated variables along a second axis;
  • - Current configuration: the M by M configuration currently selected by the operator and displayed in the MPC Controller Input-Otput Configuration table;
  • - Auto Configuration: the M by M configuration automatically selected by a selection program in the MPC application.

Die Anzeige 200 umfasst auch eine Taste 236 zum Rücksetzen zu einer Konfiguration, die automatisch bestimmt wurde. Somit kann ein Bediener, nachdem er Änderungen an einer automatischen Konfiguration vorgenommen hat und zur automatischen Konfiguration zurückkehren möchte, die Taste 236 wählen.The display 200 also includes a button 236 for resetting to a configuration that was automatically determined. Thus, after making changes to an automatic configuration and wishing to return to the automatic configuration, an operator can select button 236 .

Unter Verwendung der Daten in einer Anzeige wie sie in der Anzeige 200 angezeigt werden, und unter Kenntnis des Prozesses, kann ein Bediener auf jede gewünschte Weise eine Quadratmatrix aufbauen.Using the data in a display as displayed in display 200 and knowing the process, an operator can build a square matrix in any desired manner.

Wie klar wird, ermöglichen es die Bildschirmanzeigen der 10 - 13 dem Bediener, die Teilmenge von M Steuer- und Hilfsgrößen zu visualisieren und auszuwählen, die als Eingaben in den MPC-Steueralgorithmus (Block 120 von 3) verwendet werden, was besonders nützlich ist, wenn es zahlreiche dieser Größen gibt. Auch kann der Satz Steuer- und Randbedingungsgrößen, die bei Block 120 bestimmt werden, basierend auf gewissen vorher festgelegten Kriterien oder einem Auswahlprogramm automatisch oder elektronisch ausgewählt werden. In einer Ausführungsform kann ein Auswahlprogramm die Eingabegrößen auswählen, die, basierend auf irgendeiner Kombination von Ansprechparametern (eine oder mehrere Verstärkungen, Totzeit, Priorität, Zeitkonstante, etc.), wie sie aus den Schrittantworten (oder Puls-, Anstiegsantworten, etc.) bestimmt wurden, für die Steuerrandbedingungs- und die Stellgrößen verwendet werden sollen. In einer anderen Ausführungsform kann ein Auswahlprogramm irgendeine Form von Zeitreihenanalyse der Werte der Eingabe- und Ausgabeparameter des Controllers nutzen. Beispielsweise kann eine Kreuzkorrelation zwischen den Stell- und Steuer- oder Hilfsgrößen verwendet werden, um die am stärksten ansprechende Steuer- oder Hilfsgröße als Controllereingabe zu verwenden. Als weiteres Beispiel kann eine Kreuzkorrelation zwischen den Steuer- und Hilfsgrößen verwendet werden, um kolineare (d.h. korrelierte) Controllereingaben aus der Matrix zu entfernen. Ein Programm kann auch jeden Heuristiksatz umfassen, der aus der Modellanalyse oder der Prozesskenntnis gebildet wurde.As will become clear, the screen displays of the 10 - 13 the operator to visualize and select the subset of M controls and auxiliary quantities to be used as inputs to the MPC control algorithm (block 120 of 3 ) can be used, which is particularly useful when there are many of these sizes. Also, the set of control and constraint variables that are determined at block 120 may be selected automatically or electronically based on some predetermined criteria or a selection program. In one embodiment, a selection program may select the inputs based on any combination of response parameters (one or more gains, dead time, priority, time constant, etc.) as determined from the step (or pulse, slope, etc.) responses were for which the control boundary conditions and the manipulated variables are to be used. In another embodiment, a selection program may use some form of time series analysis of the values of the controller's input and output parameters. For example, a cross-correlation between the manipulated and control or auxiliary variables can be used to use the most responsive control or auxiliary variable as the controller input. As another example, cross-correlation between the control and auxiliary quantities can be used to remove colinear (ie, correlated) controller inputs from the matrix. A program can also include any set of heuristics formed from model analysis or process knowledge.

In einer anderen Ausführungsform kann ein automatisches Auswahlprogramm zuerst eine Steuermatrix bestimmen, indem eine Eingabe-/Ausgabematrix basierend auf der Bedingungsanzahl der Matrix ausgewählt wird, d.h. durch Minimieren der Anzahl an Bedingungen auf irgendein gewünschtes Maß, und dann eine Controllerkonfiguration aus der Steuermatrix gebildet werden.In another embodiment, an automatic selection program can first determine a control matrix by selecting an input/output matrix based on the number of conditions of the matrix, i.e. by minimizing the number of conditions to any desired level, and then building a controller configuration from the control matrix.

In diesem Beispiel kann für eine Prozessverstärkungsmatrix A die Bedingungsanzahl der Matrix ATA bestimmt werden, um die Steuerbarkeit der Matrix zu prüfen. Eine kleine Anzahl an Bedingungen bedeutet im Allgemeinen eine bessere Steuerbarkeit, während eine größere Anzahl an Bedingungen eine geringere Steuerbarkeit und mehr Steuerschritte oder größere Bewegungen während des dynamischen Steuervorgangs bedeuten. Es gibt keine strikten Kriterien, um einen annehmbaren Grad an Steuerbarkeit festzulegen, und deshalb kann die Anzahl an Bedingungen als relativer Vergleich verschiedener potentieller Steuermatrizes und als Prüfung für schlecht bedingte Matrizes verwendet werden. Bekanntlich nähert sich eine Bedingungsanzahl für eine schlecht bedingte Matrix der Unendlichkeit. Mathematisch tritt eine schlechte Bedingtheit im Fall kolinearer Prozessgrößen auf, d.h. aufgrund kolinearer Reihen oder Spalten in der Steuermatrix. Somit ist ein wichtiger Faktor, der die Bedingungsanzahl und Steuerbarkeit betrifft, die Kreuzkorrelation zwischen Matrixreihen und -spalten. Eine sorgfältige Auswahl der Eingabe-/Ausgabegrößen bei der Steuermatrix kann Bedingungsprobleme reduzieren. In der Praxis sollte von Belang sein, ob die Bedingungsanzahl einer Steuermatrix in den Hunderten (z.B. 500) oder darüber liegt. Mit einer solchen Matrix können die Bewegungen der Controllerstellgrößen höchst exzessiv sein.In this example, for a process gain matrix A, the constraint number of the matrix ATA can be determined to test the controllability of the matrix. A small number of conditions generally means better controllability, while a larger number of conditions means less controllability and more control steps or larger movements during the dynamic control process. There are no strict criteria to set an acceptable level of controllability, and therefore the number of constraints can be used as a relative comparison of different potential control matrices and as a check for ill-constrained matrices. As is known, a condition number for an ill-conditioned matrix approaches infinity. Mathematically, bad conditionality occurs in the case of collinear process variables, i.e. due to collinear rows or columns in the control matrix. Thus, an important factor affecting constraint count and controllability is cross-correlation between matrix rows and columns. Careful selection of the input/output sizes in the control matrix can reduce constraint problems. In practice it should matter whether the condition count of a control matrix is in the hundreds (e.g. 500) or more. With such a matrix, the movements of the controller manipulated variables can be highly excessive.

Wie zuvor erläutert löst die Steuermatrix das Problem der dynamischen Steuerung, während der LP-Optimierer das Problem der Beharrungszustandsoptimierung löst, und die Steuermatrix muss eine quadratische Eingabe-/Ausgabematrix sein, selbst wenn der MPC-Controllerblock eine ungleiche Anzahl an MVs und CVs (einschließlich AVs) aufweist. Um mit der Auswahl der Ein- und Ausgaben für die Steuermatrix zu beginnen, die bei der Herstellung des Controllers verwendet werden soll, werden alle verfügbaren MVs typischerweise als Controllerausgaben aufgenommen oder ausgewählt. Nach der Auswahl der Ausgaben (der MVs), müssen die Prozessausgabegrößen (d.h. die CVs und AVs), die zu einem Teil der dynamischen Steuermatrix geworden sind, so ausgewählt werden, dass eine quadratische Steuermatrix entsteht, die nicht schlecht bedingt ist.As previously explained, the control matrix solves the dynamic control problem while the LP optimizer solves the steady-state optimization problem, and the control matrix must be a square input/output matrix even if the MPC controller block has an unequal number of MVs and CVs (including AVs). To start selecting the inputs and outputs for the control matrix to be used in manufacturing the controller, all available MVs are typically included or selected as controller outputs. After selecting the outputs (the MVs), the process outputs (i.e. the CVs and AVs) that have become part of the dynamic control matrix must be selected to produce a square control matrix that is not ill-conditioned.

Ein Verfahren, um CVs und AVs als Eingaben in die Steuermatrix automatisch oder manuell auszuwählen, wird nun erörtert, wobei vorausgesetzt wird, dass auch andere Verfahren verwendet werden können. Diese Ausführungsform verstärkt die Robustheit des sich ergebenden Controllers, indem sie eine Technik anwendet, die „MV-Umlauf“ (MV wrap around) (oder selbststeuernde MVs) genannt wird, und automatisch den Penalty-Faktor auf Bewegungsfaktoren für die MVs des MPC-Controllers schätzt.A method to automatically or manually select CVs and AVs as inputs to the control matrix will now be discussed, with the understanding that other methods can also be used. This embodiment enhances the robustness of the resulting controller by applying a technique called "MV wrap around" (or self-steering MVs) and automatically applying the penalty factor to motion factors for the MPC controller's MVs appreciates.

Schritt 1 - Die CVs werden ausgewählt, bis, falls möglich, die Anzahl von CVs gleich der Anzahl von MVs ist (d.h. der Anzahl von Controllerausgaben). Falls es mehr CVs als MVs gibt, können die CVs in beliebiger Reihenfolge basierend auf irgendwelchen gewünschten Kriterien wie Priorität, Verstärkung oder Phasenansprechempfindlichkeit, Benutzereingabe, Korrelation, Analyse etc. ausgewählt werden. Ist die gesamte mögliche Anzahl an CVs gleich der Anzahl an MVs, wird zu Schritt 4 übergegangen, um die sich ergebende Bedingungsanzahl der Quadratsteuermatrix auf Annehmbarkeit hin zu überprüfen. Ist die Anzahl an CVs geringer als die Anzahl von MVs, können AVs ausgewählt werden, wie in Schritt 2 beschrieben ist. Gibt es keine definierten CVs, wird die AV mit der höchsten Verstärkung in Relation zu einer MV ausgewählt und dann zu Schritt 2 übergegangen.Step 1 - The CVs are selected until, if possible, the number of CVs equals the number of MVs (i.e. the number of controller outputs). If there are more CVs than MVs, the CVs can be selected in any order based on any desired criteria such as priority, gain or phase response, user input, correlation, analysis, etc. If the total possible number of CVs equals the number of MVs, go to step 4 to check the resulting constraint number of the square control matrix for acceptability. If the number of CVs is less than the number of MVs, AVs can be selected as described in step 2. If there are no CVs defined, the AV with the highest gain relative to an MV is selected and then go to step 2.

Schritt 2 - Es wird die Anzahl der Bedingungen, eine nach der anderen, für jede mögliche AV berechnet, die zur bereits ausgewählten Steuermatrix, die durch die zuvor ausgewählten CVs und AVs festgelegt wurde, hinzugefügt wird. Wie klar wird, enthält die durch die ausgewählten CVs festgelegte Matrix eine Reihe für jede ausgewählte CV und AV, die die Beharrungszustandsverstärkung für diese CV oder AV zu jeder der zuvor ausgewählten MVs festlegt.Step 2 - The number of conditions is calculated, one at a time, for each possible AV to be added to the already selected control matrix defined by the previously selected CVs and AVs. As will be appreciated, the matrix defined by the selected CVs contains a row for each selected CV and AV which defines the steady state gain for that CV or AV to each of the previously selected MVs.

Schritt 3 - Die in Schritt 2 festgelegte AV wird bestimmt, die die Mindestbedingungsanzahl für die sich ergebende Matrix ergibt, und die Matrix wird wie die vorherige Matrix unter Hinzufügung der ausgewählten AV festgelegt. Ist die Anzahl an MVs nun gleich der Anzahl an ausgewählten CVs, zuzüglich der Anzahl an ausgewählten AVs (d.h. die Matrix ist nun quadratisch), dann wird zu Schritt 4 übergegangen. Andernfalls wird zu Schritt 2 zurückgekehrt.Step 3 - The AV set in step 2 is determined which gives the minimum condition count for the resulting matrix and the matrix is set like the previous matrix with the addition of the selected AV. If the number of MVs is now equal to the number of CVs selected, plus the number of AVs selected (i.e. the matrix is now square), then go to step 4. Otherwise, return to step 2.

Schritt 4 - Die Bedingungsanzahl für die hergestellte quadratische Steuermatrix Ac wird berechnet. Falls gewünscht, kann die Bedingungsanzahlberechnung für die Matrix Ac anstelle der Matrix Ac TAc verwendet werden, weil die Anzahl an Bedingungen für diese unterschiedlichen Matrizes als Quadratwurzel der anderen in Beziehung stehen. Ist die Bedingungsanzahl akzeptabel, werden die Schritte 5 und 6 übersprungen und es wird zu Schritt 7 übergegangen.Step 4 - The constraint number for the constructed square control matrix Ac is calculated. If desired, the constraint count calculation for matrix A c can be used instead of matrix A c T A c because the number of constraints for these different matrices are related as the square root of the other. If the condition count is acceptable, skip steps 5 and 6 and go to step 7.

Schritt 5 - Eine Umlaufprozedur wird für jede der ausgewählten MVs durchgeführt und die Bedingungsanzahl der Matrix berechnet, die sich aus jeder Umlaufprozedur ergibt. Im Wesentlichen kann eine Umlaufprozedur durchgeführt werden, indem nacheinander eine Einheitsantwort (Verstärkung = 1,0; Totzeit = 0, Zeitkonstante = 0) für jede der unterschiedlichen MVs an die Stelle der beseitigten AV (oder CV) gesetzt wird. Die Einheitsantwort wird an einer der Stellen in der Reihe der Matrix Eins sein und irgendwo anders Null. Im Wesentlichen wird jede der einzelnen MVs in diesem Fall anstelle der AV (oder CV) als eine Eingabe und eine Ausgabe verwendet, um eine gut bedingte, quadratische Steuermatrix zu bilden. Als Beispiel werden für eine Vier-mal-Vier-Matrix die Kombinationen 1000, 0100, 0010 und 0001 in die Reihe der beseitigten AV-Zeile in der Verstärkungsmatrix Ac gesetzt.Step 5 - A wraparound procedure is performed for each of the selected MVs and the constraint count of the matrix resulting from each wraparound procedure is calculated. In essence, a wrap-around procedure can be performed by sequentially substituting a unit response (gain=1.0; deadtime=0, time constant=0) for each of the different MVs for the removed AV (or CV). The unit response will be one at one of the locations in the row of the matrix and zero somewhere else. Essentially, each of the individual MVs is used in this case as an input and an output instead of the AV (or CV) to form a well-conditioned square control matrix. As an example, for a four by four matrix, the combinations 1000, 0100, 0010 and 0001 are placed in the row of the eliminated AV line in gain matrix A c .

Schritt 6 - Nach dem Durchführen einer Umlaufprozedur für jede der MVs wird die Kombination ausgewählt, die die Mindestbedingungsanzahl ergibt. Falls es keine Verbesserung im Vergleich zur Bedingungsanzahl gibt, die im Schritt 4 erhalten wurde, wird die ursprüngliche Matrix beibehalten.Step 6 - After performing a wraparound procedure for each of the MVs, the combination that gives the minimum condition count is selected. If there is no improvement compared to the condition count obtained in step 4, the original matrix is retained.

Schritt 7 - An diesem Punkt wird jede ausgewählte CV und ausgewählte AV mit einer MV assoziiert, indem die CV oder AV mit dem besten Ansprechen (Maximalverstärkung, schnelle Ansprechzeit) in Bezug auf eine bestimmte MV ausgewählt wird, ausschließlich der MV, die zur Selbststeuerung verwendet wird (d.h. der MV, die den Umlauf durchgemacht hat). Es ist sicherzustellen, dass jede MV mit einer einzigen CV (oder AV) zu einem Paar zusammengefasst wird, im Falle dass mehr als eine MV eine hohes Verstärkungs- und schnelles Ansprechverhältnis mit einer einzelnen CV (oder AV) oder umgekehrt für die CV- (AV-)Parameter hat. Die umgelaufene MV wird mit sich selbst assoziiert. Wenn die Paarbildung aller Parameter erfolgt ist, ist der Auswahlprozess abgeschlossen.Step 7 - At this point, each CV and AV selected is associated with an MV by selecting the CV or AV with the best response (maximum gain, fast response time) relative to a particular MV, excluding the MV used for self-steering (i.e. the MV that has made the round trip). Ensure that each MV is paired with a single CV (or AV) in the case of more than one MV providing high gain and fast response ratio with a single CV (or AV) or vice versa for the CV ( AV) parameters has. The circulated MV is associated with itself. When all parameters have been paired, the selection process is complete.

Selbstverständlich kann die durch diese Prozedur gebildete Steuermatrix sowie die sich ergebende Bedingungsanzahl dem Benutzer vorgelegt werden, und der Benutzer kann die gebildete Steuermatrix zur Anwendung bei der Herstellung des Controllers annehmen oder ablehnen.Of course, the control matrix formed by this procedure, as well as the resulting condition count, can be presented to the user, and the user can accept or reject the formed control matrix for use in manufacturing the controller.

Es wäre anzumerken, dass bei der oben beschriebenen automatischen Prozedur höchstens nur eine (d.h. umgelaufene) MV zur Selbststeuerung ausgewählt wurde, um die Steuerbarkeit zu verbessern. Beim manuellen Vorgang kann die Anzahl von umgelaufenen MVs willkürlich sein. Beispielsweise kann mit Bezug auf 11 die Wahl der höchstwertigen („Most Significant“) CVs oder AVs wieder aufgehoben werden. Mit Bezug auf 13 können CVs oder AVs unter Verwendung der Löschtaste 232b entfernt werden. In diesen Beispielen fallen die zur Selbststeuerung ausgewählten MVs durch das Nichtvorhandensein einer entsprechenden Ausgabengrößenauswahl in der Controllerkonfiguration auf. Beispielsweise stellt 14 die Anzeige 200 von 13 dar, in der aber die Stellgrößen TOP_DRAW und SIDE_DRAW keine entsprechende Steuervariable CV enthalten. Auf diese Weise lässt man die Stellgrößen TOP_DRAW und SIDE_DRAW umlaufen. Die Anzeige 200 von 13 könnte auf die in 14 dargestellte abgeändert werden, indem zuerst das Paar BOT_TEMP und TOP_DRAW in der Anzeige 200 ausgewählt und dann die Löschtaste 232b gewählt wird. Als Nächstes könnte das Paar SIDE_END_POINT und SIDE_DRAW in der Anzeige 200 ausgewählt und dann die Löschtaste 232b gewählt werden. In der Anzeige 200 von 14 werden dann die Größen BOT_TEMP und SIDE_END_POINT in die Spalte 228 der verfügbaren Größen gesetzt. Zusätzlich unterscheidet sich die Bedingungsanzahl der aktuellen, in 14 dargestellten Konfiguration von der Bedingungsanzahl der automatischen Konfiguration.It would be noted that in the automatic procedure described above, at most only one (ie, circulated) MV was selected for self-steering in order to improve steerability. In the manual process, the number of MVs circulated can be arbitrary. For example, with reference to 11 the selection of the most significant CVs or AVs can be canceled again. Regarding 13 CVs or AVs can be removed using the delete button 232b. In these examples, the MVs selected for self-steering are conspicuous by the absence of a corresponding output size selection in the controller configuration. For example 14 the display 200 from 13 in which the manipulated variables TOP_DRAW and SIDE_DRAW do not contain a corresponding control variable CV. In this way, the manipulated variables TOP_DRAW and SIDE_DRAW can be circulated. The display 200 of 13 could on the in 14 can be modified by first selecting the pair BOT_TEMP and TOP_DRAW in the display 200 and then selecting the delete button 232b. Next, the pair SIDE_END_POINT and SIDE_DRAW could be selected in the display 200 and then the delete button 232b selected. In the ad 200 of 14 then the sizes BOT_TEMP and SIDE_END_POINT are placed in column 228 of the available sizes. In addition, the condition count differs from the current, in 14 configuration shown depends on the condition number of the automatic configuration.

Auch können mehr MVs als Umlaufgrößen zur Steuerung verwendet werden, falls die Anzahl an MVs größer ist als die Anzahl der gesamten CVs zuzüglich AVs. Auf diese Weise steht dem Controller am Ende immer noch eine quadratische Steuermatrix mit jeder der MVs als Ausgaben zur Verfügung. Es wird klar, dass das Verfahren, Umläufe durchzuführen und zu verwendet, bedeutet, dass die Anzahl an für die Steuermatrix ausgewählten CVs und AVs kleiner sein kann als die Anzahl der vom Controller gesteuerten MVs, wobei der Unterschied in der Umlaufanzahl der MVs als Eingaben in die Steuermatrix besteht. Darüber hinaus kann diese Umlaufprozedur in einem Prozess eingesetzt werden, der weniger CVs zuzüglich AVs als MVs hat.Also, more MVs can be used as wrap sizes for control if the number of MVs is greater than the number of total CVs plus AVs. This way, the controller still ends up with a square control matrix with each of the MVs as outputs. It will be appreciated that the method of performing and using wraparound means that the number of CVs and AVs selected for the control matrix can be less than the number of MVs controlled by the controller, with the difference in the wraparound number of MVs as inputs in the control matrix exists. In addition, this round-robin procedure can be used in a process that has fewer CVs plus AVs than MVs.

Natürlich wird die obige Bedingungsanzahl unter Verwendung der Beharrungszustandsverstärkungen berechnet, und deshalb definiert die Steuermatrix die Steuerbarkeit auch im Wesentlichen für den Beharrungszustand. Die Prozessdynamik (Totzeit, Nachlauf, etc.) und Modellungewissheit haben auch eine Auswirkung auf die dynamische Steuerbarkeit, und diese Auswirkungen können dadurch berücksichtigt werden, dass die Priorität von Prozessgrößen (z.B. Steuer- und Hilfsgrößen) geändert wird, was ihre Mitaufnahme in die Steuermatrix aufgrund der Auswirkungen, die sie auf die dynamische Steuerung haben, gebieten kann.Of course, the above condition number is calculated using the steady-state gains, and therefore the control matrix essentially defines the controllability for the steady-state as well. Process dynamics (dead time, lag, etc.) and model uncertainty also have an impact on dynamic controllability, and these impacts can be accounted for by changing the priority of process variables (e.g., control and auxiliary variables), which dictates their inclusion in the control matrix due to the impact they have on dynamic control.

Es ist auch möglich, andere heuristische Verfahren zu verwenden, die sowohl den Beharrungszustand als auch die dynamische Steuerbarkeit verbessern sollen. Solch ein Verfahren würde typischerweise eine Anzahl von heuristischen Kriterien, möglicherweise einige, die widersprüchlich sind, aufweisen, die in mehreren Phasen angewandt werden, um eine Steuermatrix zu bilden und dadurch einen angemessenen Satz von Controllereingaben auszuwählen, die gewisse Verbesserungen der Steuermatrix bereitstellen. In einem solchen heuristischen Verfahren werden die CVs und die AVs durch MV basierend auf dem höchsten Verstärkungsverhältnis gruppiert. Dann wird für jede MV-Gruppierung die eine Prozessausgabe mit der schnellsten Dynamik und signifikanter Verstärkung ausgewählt. Dieser Auswahlprozess kann einen Konfidenzintervall berücksichtigen und den CVs den Vorzug vor den AVs geben (wobei sonst alle gleich sind). Das Prozessmodellgeneratorprogramm verwendet dann die Parameter, die während der Herstellung der MPC-Steuerung aus jeder Gruppe ausgewählt wurden. Da nur ein Parameter für jede MV ausgewählt wird, ist die Antwortmatrix quadratisch und kann invertiert werden.It is also possible to use other heuristics designed to improve both steady state and dynamic controllability. Such a method would typically involve a number of heuristic criteria, possibly some that are contradictory, applied in multiple phases to form a control matrix and thereby select an appropriate set of controller inputs that provide certain improvements to the control matrix. In such a heuristic, the CVs and the AVs are grouped by MV based on the highest boost ratio. Then, for each MV grouping, the one process output with the fastest dynamics and significant gain is selected. This selection process may consider a confidence interval and favor CVs over AVs (all else being equal). The process model generator program then uses the parameters selected from each group during manufacture of the MPC controller. Because only one parameter is chosen for each MV, the response matrix is square and can be inverted.

Jedenfalls erzeugt nach der Auswahl der Teilmenge von M (oder weniger) Steuer- und Hilfsgrößeneingaben in den MPC-Controller ein Block 124 von 3 aus der bestimmten quadratischen Steuermatrix das Prozessmodell oder den Controller, das/der im MPC-Steueralgorithmus 86 von 2 verwendet werden soll. Bekanntlich ist dieser Controllerherstellungsschritt eine rechenintensive Prozedur. Primäre Abstimmungsfaktoren für die Controllerherstellung sind „Penalty on Move“-Parameter (PM-Parameter) der Controller-Stellgrößen. Eine Analyse hat gezeigt, dass Totzeit ein wichtiger Faktor bei der Berechnung von PM ist, während Verstärkung sich natürlich stark auf die Controllerbewegungen auswirkt. Die folgende Experimentalformel trägt sowohl der Totzeit als auch der Verstärkung beim Schätzen eines PM-Faktors Rechnung, der für einen stabilen und reaktionsschnellen MPC-Ablauf für Modellfehler von bis zu 50% sorgt: P M i = 3 ( 1 + 6 D T i p + 3 G i D T i p )

Figure DE000010362369B3_0015
worin DTi die Totzeit in MPC-Abtastungen für ein MVi-CVj-Paar ist, Gi die Verstärkung (dimensionslos) für das MVi-CVj-Paar ist, und die Paarbildung diejenige ist, die während der quadratischen Controllerkonfiguration aufgebaut wird. Die Quadratmatrixpaarbildung liefert deshalb PM-Werte, die dazu beitragen, die miteinander in Konflikt stehenden Controllerbedürfnisse nach Leistung und Robustheit zu erfüllen.In any event, after selecting the subset of M (or fewer) controls and auxiliary inputs to the MPC controller, a block 124 of 3 from the determined square control matrix, the process model or controller used in the MPC control algorithm 86 of 2 should be used. As is well known, this controller fabrication step is a computationally intensive procedure. Primary tuning factors for controller manufacture are "Penalty on Move" parameters (PM parameters) of the controller manipulated variables. Analysis has shown that dead time is an important factor in calculating PM, while gain naturally has a strong impact on controller movements. The following experimental formula accounts for both dead time and gain when estimating a PM factor that ensures stable and responsive MPC operation for model errors up to 50%: P M i = 3 ( 1 + 6 D T i p + 3 G i D T i p )
Figure DE000010362369B3_0015
where DT i is the dead time in MPC samples for an MVi-CVj pair, G i is the gain (dimensionless) for the MVi-CVj pair, and the pairing is that established during the quadratic controller configuration. Square matrix pairing therefore provides PM values that help to meet the conflicting controller needs of performance and robustness.

Ein Block 126 lädt dann dieses MPC-Prozessmodell (mit der inhärenten Steuermatrix) oder den Controller und nötigenfalls die Schrittantworten und die Beharrungszustandsschrittantwortverstärkungsmatrix auf den Steuer-/Regelblock 38 herunter, und diese Daten werden in den Steuer-/Regelblock 38 für den Betrieb eingegliedert. Zu diesem Zeitpunkt ist der Steuer-/Regelblock 38 bereit für den Online-Betrieb im Rahmen des Prozesses 50.A block 126 then downloads this MPC process model (with the inherent control matrix) or the controller and if necessary the step responses and the steady state step response gain matrix to the control block 38 and this data is incorporated into the control block 38 for operation. At this point, the control block 38 is ready for on-line operation as part of the process 50.

Falls gewünscht können die Prozessschrittantworten rekonfiguriert oder auf eine andere Weise bereitgestellt werden, als diese Schrittantworten generiert wurden. Zum Beispiel kann eine der Schrittantworten aus verschiedenen Modellen herauskopiert und in die Bildschirmmasken beispielsweise der 10 - 12 gestellt werden, um die Schrittantworten einer bestimmten Steuer- oder Hilfsgröße auf eine Stell- oder Störgröße festzulegen. 15 stellt eine Bildschirmanzeige dar, bei der der Benutzer eine der Schrittantworten eines bestimmten Prozesses oder Modells auswählen und kopieren und dann selbige Antwort in ein anderes Modell ziehen oder einfügen und diese Schrittantwort in das neue Modell einfügen kann, um es dadurch dem Benutzer zu ermöglichen, manuell ein Schrittantwortmodell zu spezifizieren. Natürlich kann der Benutzer als Teil dieses Vorgangs eines oder mehrere der automatisch generierten Schrittantwortmodelle wie zuvor beschrieben löschen.If desired, the process step responses can be reconfigured or provided in a different way than when these step responses were generated. For example, one of the step responses can be copied from different models and inserted into the screen masks, for example the 10 - 12 be set to determine the step responses of a specific control or auxiliary variable to a manipulated variable or disturbance variable. 15 represents a screen display where the user can select and copy one of the step responses of a particular process or model, and then drag or paste that same response into another model and paste that step response into the new model, thereby allowing the user to manually to specify a step response model. Of course, as part of this process, the user may delete one or more of the automatically generated step response models as previously described.

16 stellt eine Bildschirmanzeige dar, bei der der Benutzer im Besonderen eine der Schrittantworten anschauen kann (hier für die Schrittantwort TOP_END_POINT im Gegensatz zu TOP_DRAW). Die Parameter für diese Schrittantwort wie Beharrungszustandsverstärkung, Ansprechzeit, erstrangige Zeitkonstante und Quadratfehler werden dem Benutzer oder Bediener zur bequemen Bezugnahme auf der Anzeige dargestellt. Falls gewünscht kann der Benutzer die Eigenschaften dieser Schrittantwort anschauen oder ändern, indem er andere Parameter spezifiziert, wie eine andere Verstärkung oder Zeitkonstante, falls das so gewünscht wird. Falls der Benutzer eine unterschiedliche Verstärkung oder einen anderen Parameter festlegt, kann das Schrittantwortmodell mathematisch so regeneriert werden, dass es diesen neuen Parameter oder Parametersatz aufweist. Dieser Vorgang ist dann von Nutzen, wenn der Benutzer die Parameter der Schrittantwort kennt und die generierte Schrittantwort ändern muss, damit sie mit diesen Parametern übereinstimmt oder sie erfüllt. Änderungen am Schrittantwortmodell werden wiederum in der Paarbildung und Herstellung der Quadratsteuermatrix reflektiert, da die Verstärkungs- und Ansprechdynamik verwendet wird. 16 represents a screen display where the user can look at one of the step responses in particular (here for the step response TOP_END_POINT as opposed to TOP_DRAW). The parameters for this step response such as steady state gain, response time, premier time constant and square error are presented on the display for the user or operator's convenience. If desired, the user can view or change the characteristics of this step response by specifying other parameters, such as a different gain or time constant, if so desired. If the user specifies a different gain or other parameter, the step response model can be mathematically regenerated to include that new parameter or set of parameters. This operation is useful when the user knows the parameters of the step response and needs to modify the generated step response to match or satisfy those parameters. Changes to the step response model are in turn reflected in the pairing and fabrication of the square control matrix since the gain and response dynamics are used.

Nun sind mit Bezug auf 4 die allgemeinen Schritte dargestellt, die während jedes Operationszyklus oder jeder Abtastung des fortgeschrittenen Steuer-/Regelblocks 38, wie unter Verwendung des Ablaufdiagramms 90a von 3 hergestellt, durchgeführt werden, während der Prozess 50 online abläuft. Bei einem Block 150 erhält und verarbeitet der MPC-Controller 52 (2) die Messwerte der Steuer- und Hilfsgrößen CV und AV. Insbesondere verarbeitet das Steuervorhersageprozessmodell die CV-, AV- und DV-Messungen oder -Eingaben, um den zukünftigen Steuerparametervektor sowie die vorhergesagten Beharrungszustandssteuergrößen und -hilfsgrößen CVSS und AVSS herzustellen.Now are referring to 4 Illustrated are the general steps taken during each cycle of operation or scan of the advanced control block 38, as determined using the flow chart 90a of FIG 3 manufactured, can be performed while the process 50 is running online. At a block 150, the MPC controller 52 receives and processes ( 2 ) the measured values of the control and auxiliary variables CV and AV. In particular, the control prediction process model processes the CV, AV and DV measurements or inputs to produce the future control parameter vector as well as the predicted steady state controls and auxiliary variables CV SS and AV SS .

Als Nächstes verarbeitet oder filtert bei einem Block 152 der Eingabeverarbeitungs-/Filterblock 58 (2) die vorhergesagten, vom MPC-Controller 52 gebildeten Steuer-, Hilfs- und Stellgrößen CVSS, AVSS und MVSS und stellt dem Optimierer 54 diese gefilterten Werte zur Verfügung. Bei einem Block 154 führt der Optimierer 54 standardmäßige LP-Verfahren durch, um den Satz von M Zielstellgrößen MVT bereitzustellen, welche die ausgewählte oder standardmäßige Zielfunktion maximieren oder minimieren, während keine der Grenzen der Hilfs- und Stellgrößen verletzt wird und während die Steuergrößen auf ihrem festgelegten Sollwert oder innerhalb der für diese Größen festgesetzten Bereichen gehalten werden. Allgemein ausgedrückt berechnet der Optimierer 54 eine Zielstellgrößenlösung MVT, indem er die Steuer- und die Hilfsgrößen jeweils in ihre Grenzen zwingt. Wie vorstehend festgestellt, wird in vielen Fällen eine Lösung bestehen, bei der sich die Steuergrößen jeweils auf ihrem Sollwert befinden (der anfänglich als eine, der Steuergröße gesetzte Obergrenze behandelt wird), während die Hilfsgrößen jeweils innerhalb ihrer jeweiligen Zwangsgrenzen bleiben. Ist das der Fall, muss der Optimierer 54 nur die bestimmten Zielstellgrößen MVT ausgeben, die ein optimales Ergebnis für die Zielfunktion erbringen.Next, at a block 152, the input processing/filtering block 58 processes or filters ( 2 ) the predicted control, auxiliary and manipulated variables CV SS , AV SS and MV SS formed by the MPC controller 52 and makes these filtered values available to the optimizer 54 . At a block 154, the optimizer 54 performs standard LP procedures to provide the set of M target manipulated variables MVT that maximize or minimize the selected or standard objective function while not violating any of the limits of the auxiliary and manipulated variables and while the controlled variables are at their specified target value or within the specified ranges for these quantities. Generally speaking, the optimizer 54 computes a target manipulated variable solution MV T by forcing the control and auxiliary variables within their respective limits. As stated above, in many cases a solution will exist where the control variables are each at their setpoint (which is initially treated as an upper limit placed on the control variable), while the auxiliary variables are each within their respective constraint limits. If that is the case, the optimizer 54 only has to output the specific target manipulated variables MVT that yield an optimal result for the target function.

In machen Fällen jedoch kann es aufgrund von Randbedingungen, die für einige oder alle der Hilfs- oder Stellgrößen zu eng gesteckt sind, unmöglich sein, einen Operationspunkt zu finden, bei dem sich alle Steuergrößen auf ihrem Sollwert und alle Hilfsgrößen innerhalb ihrer jeweiligen Zwangsgrenzen befinden, weil eine solche Lösung nicht existiert. In diesen Fällen kann, wie zuvor angemerkt, der Optimierer 54 eine Lockerung der festgelegten Sollwertbereiche der Steuergrößen zulassen, um zu versuchen, einen Operationspunkt zu finden, bei dem die Hilfsgrößen innerhalb ihrer jeweiligen Grenzen wirken. Besteht in diesem Falle keine Lösung, kann der Optimierer eine oder mehrere der Hilfsgrößenzwangsgrenzen als Grenze im Rahmen der Lösung fallen lassen und/oder kann den Steuergrößensollwertbereich im Rahmen der Lösung fallen lassen und statt dessen den optimalen Prozessoperationspunkt bestimmen und die fallengelassenen Hilfsgrößenzwangsgrenzen und/oder den fallengelassenen Steuergrößensollwertbereich ignorieren. Hier wählt der Optimierer, welche Hilfs- oder Steuergröße fallengelassen werden soll, basierend auf den jeweiligen Gewichtungen, die für die Steuer- und Hilfsgrößen jeweils vorgesehen sind (wobei beispielsweise die unterste Gewichtung oder höchste Priorität zuerst fallengelassen wird). Der Optimierer 54 fährt fort, Hilfs- oder Steuergrößen basierend auf ihren vorgesehenen Gewichtungen und Prioritäten fallen zu lassen, bis er eine Zielstellgrößenlösung (MVT-Lösung) findet, bei der für die übrigen Steuer- oder Hilfsgrößen mit höherer Priorität, alle Sollwertbereiche für die Steuergrößen und die Grenzen für die Hilfsgrößen eingehalten werden.However, in some cases, due to boundary conditions that are too tight for some or all of the auxiliary or manipulated variables, it may not be possible to find an operating point where all control variables are at their setpoint and all auxiliary variables are within their respective constraint limits, because such a solution does not exist. In these cases, as previously noted, the optimizer 54 may allow the specified setpoint ranges of the control variables to be relaxed in order to attempt to find an operating point where the auxiliary variables operate within their respective limits. In this case, if there is no solution, the optimizer can drop one or more of the auxiliary constraint limits as a bound within the solution and/or drop the control variable setpoint range within the solution and instead determine the optimal process operation point and the dropped auxiliary constraints limits and/or the Ignore dropped control variable setpoint range. Here the optimizer chooses which auxiliary or control to drop based on the respective weights assigned to the controls and auxiliary respectively (e.g. lowest weight or highest priority being dropped first). The optimizer 54 continues to drop auxiliary or control variables based on their intended weights and priorities until it finds a target manipulated variable (MV T ) solution where, for the remaining higher priority controls or auxiliary variables, all setpoint ranges for the Control variables and the limits for the auxiliary variables are observed.

Als Nächstes verwendet bei einem Block 156 der Zielumsetzungsblock 55 (2) die Beharrungszustandsschrittantwortverstärkungsmatrix, um die Zielwerte der Steuer- und Hilfsgrößen CVT und AVT aus den Zielwerten für die Stellgrößen MVT zu bestimmen, und stellt die ausgewählte N (wobei N kleiner oder gleich M ist) Teilmenge dieser Werte dem MPC-Controller 52 als Zieleingaben zur Verfügung. Bei einem Block 158 verwendet der MPC-Controller 52 die daraus abgeleitete Steuermatrix oder -logik, um wie zuvor beschrieben als unbeschränkter MPC-Controller zu arbeiten, um den zukünftigen CV- und AV-Vektor für diese Zielwerte zu bestimmen, führt eine Vektorsubtraktion mit dem zukünftigen Steuerparametervektor durch, um den zukünftigen Fehlervektor herzustellen. Der MPC-Algorithmus wirkt auf eine bekannte Weise, um die Beharrungszustandsstellgröße MVSS basierend auf dem Prozessmodell zu bestimmen, das aus den M-mal-M-Schrittantworten gebildet wurde, und stellt diese MVSS-Werte dem Eingabeverarbeitungs-/Filterblock 58 (2) zur Verfügung. Bei einem Block 160 bestimmt der MPC-Algorithmus auch die MV-Schritte, die an den Prozess 50 ausgegeben werden sollen, und gibt den ersten dieser Schritte auf irgendeine angemessene Weise an den Prozess 50 aus.Next, at a block 156, the goal translation block 55 ( 2 ) the steady state step response gain matrix to determine the target values of the control and auxiliary variables CV T and AV T from the target values for the manipulated variables MV T and provides the selected N (where N is less than or equal to M) subset of these values to the MPC controller 52 available as destination entries. At a block 158, the MPC controller 52 uses the control matrix or logic derived therefrom to operate as an unconstrained MPC controller, as previously described, to determine the future CV and AV vector for these target values, performs vector subtraction with the future control parameter vector to produce the future error vector. The MPC algorithm operates in a known manner to determine the steady state manipulated variable MV SS based on the process model formed from the M by M step responses and provides these MV SS values to the input processing/filtering block 58 ( 2 ) to disposal. At a block 160, the MPC algorithm also determines the MV steps to be output to the process 50 and outputs the first of those steps to the process 50 in any appropriate manner.

Während des Ablaufs laufen eine oder mehrere Überwachungsanwendungen beispielsweise in einem der Arbeitsplatzrechner 13 ab, können Daten aus dem fortgeschrittenen Steuer-/Regelblock oder anderen damit verbundenen Funktionsblöcken entweder direkt oder indirekt über die Datensammlung 12 abgerufen werden, und dem Benutzer oder Bediener eine oder mehrere Sicht- oder Diagnosebildschirmmasken zur Verfügung gestellt werden, um den Betriebszustand des fortgeschrittenen Steuer-/Regelblocks anzuzeigen. Die Funktionsblocktechnologie weist Kaskadeneingaben (CAS_IN) und Kaskadenferneingaben (RCAS_IN) sowie entsprechende Rückberechnungsausgaben (BCAL_OUT und RCAS_OUT) auf sowohl den Steuer- als auch Ausgabefunktionsblöcken auf. Unter Verwendung dieser Verknüpfungen ist es möglich, eine optimierte MPC-Überwachungssteuerungsstrategie über die bestehende Steuerungsstrategie zu legen, und diese überwachte Steuerungsstrategie kann unter Verwendung eines oder mehrerer Sichtbildschirme oder einer oder mehrerer Anzeigen dargestellt werden. Gleichermaßen können auch Ziele für den optimierten MPC-Controller aus einer Strategie abgeändert werden, wenn das so gewünscht wird.During operation, one or more monitoring applications are running, for example, in one of the workstations 13, data can be retrieved from the advanced control block or other functional blocks connected thereto, either directly or indirectly via the data collection 12, and the user or operator has one or more views - or diagnostic screens are provided to indicate the operational status of the advanced control block. The function block technology has cascade inputs (CAS_IN) and cascade remote inputs (RCAS_IN) and corresponding backcalculation outputs (BCAL_OUT and RCAS_OUT) on both the control and output function blocks. Using these links, it is possible to overlay an optimized MPC supervisory control strategy over the existing control strategy, and this supervised control strategy can be presented using one or more view screens or displays. Likewise, targets for the optimized MPC controller can also be modified from a strategy if so desired.

17 ist eine beispielhafte Bildschirmanzeige, die von einer oder mehreren Sichtanwendungen erzeugt werden können, die einen Optimiererdialogbildschirm darstellen, welcher dem Bediener Daten liefert, die den Betrieb des fortgeschrittenen Steuer-/Regelblocks während dessen Ablauf betreffen. Insbesondere sind die Eingaben in den Prozess (die Stellgrößen MV) und die Ausgaben (die Steuer- und Hilfsgrößen CV und AV) gesondert dargestellt. Für jede dieser Größen stellt die Bildschirmanzeige den Namen (Deskriptor) der Größe, den aktuellen Wert, wie er gemessen wurde, gegebenenfalls einen Sollwert, den Zielwert, wie er vom Optimierer berechnet wurde, die Einheiten und Einheitswerte der Größenänderung und eine Angabe der aktuellen Größenwerte dar. Für die Ausgabegrößen ist auch eine Angabe, ob diese Größe eine der ausgewählten Größen ist, die im MPC-Controller verwendet werden, der Vorhersagewert dieser Größe, wie er vom MPC-Controller bestimmt wurde, und die voreingestellte Priorität für diese Größe angegeben. Diese Bildschirmmaske ermöglicht es dem Bediener, den gegenwärtigen Betriebszustand des fortgeschrittenen Steuer-/Regelblocks zu sichten und die Art und Weise, mit der der fortgeschrittene Steuer-/Regelblock die Steuerung durchführt. Darüber hinaus kann der Benutzer einige Steuerparameter für Fernsollwertfähigkeit konfigurieren, so dass externe Anwendungen Betriebsziele für die Durchsatzkoordination einstellen können. 17 Figure 1 is an example screen display that may be generated by one or more view applications that present an optimizer dialog screen that provides the operator with data related to the operation of the advanced control block during its execution. In particular, the inputs to the process (the manipulated variables MV) and the outputs (the control and auxiliary variables CV and AV) are shown separately. For each of these quantities, the on-screen display provides the name (descriptor) of the quantity, the current value as measured, a target value, if any, the target value as calculated by the optimizer, the units and unit values of the change in size, and an indication of the current size values For the output sizes, there is also an indication of whether this size is one of the selected sizes used in the MPC controller, the predicted value of this size as determined by the MPC controller, and the default priority for this size. This screen allows the operator to view the current operating state of the advanced control block and the manner in which the advanced control block is performing control. In addition, the user can configure some control parameters for remote setpoint capability, allowing external applications to set operational targets for throughput coordination.

18 ist eine Bildschirmanzeige, die von einer Diagnoseanwendung generiert werden kann, die eine Diagnosebildschirmmaske darstellt, die einem Benutzer oder Bediener bereitgestellt werden kann, um eine Diagnose am fortgeschrittenen Steuer-/Regelblock vorzunehmen. Insbesondere stellt die Diagnosebildschirmmaske von 18 die Steuer- und Randbedingungs(hilfs)größen, die Stellgrößen und die Störgrößen separat dar. Für jede wird der Name oder Deskriptor zusammen mit einer Angabe (in der ersten Spalte) geliefert, ob ein Fehler- oder Warnzustand für diese Größe existiert. Solch ein Fehler bzw. solch eine Warnung kann graphisch unter Verwendung beispielsweise eines grünen Hakens oder eines roten „x“ oder auf irgendeine andere gewünschte Weise angezeigt werden. Es ist auch ein Wert oder Status für jede dieser Größen angegeben. Für die Stellgrößen ist der Wert und Status der Back_Cal-Größe (rückberechnete oder rückgeführte Größe) für diese Signale dargestellt. Wie klar wird, kann diese Bildschirmmaske dazu verwendet werden, eine Diagnose am fortgeschrittenen Steuer-/Regelblock vorzunehmen, indem der Bediener mit den nötigen Daten versorgt wird, um Probleme innerhalb des Steuersystems zu bestimmen. Natürlich können dem Bediener auch andere Arten von Bildschirmmasken und Daten bereitgestellt werden, um ihn in die Lage zu versetzen, den Betrieb des fortgeschrittenen Steuer-/Regelblocks und des Moduls, in dem er implementiert ist, zu sichten und eine Diagnose daran durchzuführen. 18 is a screen that can be generated by a diagnostics application that presents a diagnostics screen that can be provided to a user or operator to diagnose the advanced control block. In particular, the diagnostic screen of 18 the control and boundary condition (auxiliary) variables, the manipulated variables and the disturbance variables separately. For each, the name or descriptor is provided along with an indication (in the first column) whether an error or warning condition exists for that entity. Such an error or warning may be displayed graphically using, for example, a green tick or a red "x" or in any other desired manner. A value or status is also given for each of these quantities. For the manipulated variables, the value and status of the Back_Cal variable (recalculated or returned variable) for these signals is shown. As will be appreciated, this screen can be used to diagnose the advanced control block, providing the operator with the data necessary to diagnose problems within the control system. Of course, other types of screens and data may also be provided to the operator to enable him to view and diagnose the operation of the advanced control block and the module in which it is implemented.

Während der fortgeschrittene Steuer-/Regelblock hier als ein Optimierer umfassend dargestellt ist, der im selben Funktionsblock angeordnet und deshalb in derselben Vorrichtung ausgeführt ist wie der MPC-Controller, ist es auch möglich, den Optimierer in einer gesonderten Vorrichtung unterzubringen. Insbesondere kann der Optimierer in einer anderen Vorrichtung wie beispielsweise einem der Benutzerarbeitsplatzrechner 13 untergebracht werden und mit dem MPC-Controller wie im Zusammenhang mit 2 beschrieben während jeder Ausführung oder Abtastung kommunizieren, um die Zielstellgrößen (MVT) oder die Teilmenge der Steuer- und Hilfsgrößen (CV und AV) zu berechnen und dem MPC-Controller zur Verfügung zu stellen, die daraus berechnet wurden. Selbstverständlich kann eine spezielle Schnittstelle, wie eine bekannte OPC-Schnittstelle verwendet werden, um die Kommunikationsschnittstelle zwischen dem Controller und dem Funktionsblock, der den MPC-Controller beinhaltet, und dem Arbeitsplatzrechner oder einem anderen Computer bereitzustellen, der den Optimierer eingebaut hat oder ihn ausführt. Wie in der im Hinblick auf 2 beschriebenen Ausführungsform, müssen der Optimierer und der MPC-Controller während jedes Abtastzyklus noch miteinander kommunizieren, um eine integrierte, optimierte MPC-Steuerung durchzuführen. In diesem Fall aber können auch andere gewünschte Arten von Optimiereren verwendet werden, wie bekannte oder EchtzeitOptimierere, die in einer Prozesssteuerungsumgebung bereits vorhanden sein können. Dieses Merkmal kann auch zum Vorteil genutzt werden, wenn das Optimierungsproblem nicht linear ist und die Lösung nichtlineare Programmierungstechniken erfordert.While the advanced control block is shown here as comprising an optimizer located in the same functional block and therefore implemented in the same device as the MPC controller, it is also possible to house the optimizer in a separate device. In particular, the optimizer can be housed in another device such as one of the user workstations 13 and connected to the MPC controller as in connection with FIG 2 communicate during each execution or sampling to calculate and provide to the MPC controller the target manipulated variables (MV T ) or the subset of the control and auxiliary variables (CV and AV) calculated therefrom. Of course, a special interface such as a known OPC interface can be used to provide the communication interface between the controller and the functional block containing the MPC controller and the workstation or other computer that has or is running the optimizer. As in with regard to 2 described embodiment, the optimizer and the MPC controller must still communicate with each other during each scan cycle to perform integrated, optimized MPC control. In this case, however, other desired types of optimizers can also be used, such as known or real-time optimizers that may already exist in a process control environment. This feature can also be used to advantage when the optimization problem is nonlinear and the solution requires nonlinear programming techniques.

Während der fortgeschrittene Steuer-/Regelblock und andere hier beschriebenen Blöcke und Programme hier so beschrieben wurden, dass sie zusammen mit Fieldbus- und standardmäßigen 4-20 ma-Geräten verwendet werden, können sie natürlich auch unter Verwendung irgendeines anderen Prozesssteuerungskommunikationsprotokolls oder irgendeiner anderen Programmierumgebung implementiert sein, und können mit irgendwelchen anderen Arten von Geräten, Funktionsblöcken oder Controllern verwendet werden. Obwohl die fortgeschrittenen Steuerblöcke und die dazugehörigen, hier beschriebenen Generierungs- und Testprogramme vorzugsweise in Software implementiert sind, können sie auch in Hardware, Firmware, etc. implementiert werden, und können von irgendeinem anderen Prozessor ausgeführt werden, der einem Prozesssteuerungssystem zugeordnet ist. Somit kann das hier beschriebene Programm 40 in einer standardmäßigen Universal-CPU oder einer speziell entwickelten Hard- oder Firmware, wie beispielsweise ASICs implementiert werden, wenn das so gewünscht wird. Wenn sie in Software implementiert sind, kann die Software in jedem computerlesbaren Speicher wie einer Magnetplatte, Laserplatte, Bildplatte oder einem anderen Speichermedium, auf einen RAM oder ROM eines Computers oder Prozessors, etc. hinterlegt werden. Gleichermaßen kann diese Software einem Benutzer oder einem Prozesssteuerungssystem über jedes bekannte oder gewünschte Übergabeverfahren übergeben werden, wie beispielsweise auf einer computerlesbaren Diskette oder irgendeinem tragbaren Computerspeichermechanismus oder kann über einen Kommunikationskanal wie eine Telefonleitung, das Internet, etc. moduliert werden (was als äquivalent oder austauschbar mit der Bereitstellung einer solchen Software über ein tragbares Speichermedium angesehen wird).Of course, while the advanced control block and other blocks and programs described herein have been described as being used in conjunction with Fieldbus and standard 4-20 ma devices, they can also be implemented using any other process control communication protocol or programming environment and can be used with any other type of device, function block or controller. Although the advanced control blocks and associated generation and test routines described herein are preferably implemented in software, they may also be implemented in hardware, firmware, etc., and may be executed by any other processor associated with a process control system. Thus, the program 40 described herein can be implemented in a standard general purpose CPU or in specially designed hardware or firmware, such as ASICs, if so desired. When implemented in software, the software may be stored in any computer-readable memory such as magnetic disk, laser disk, optical disk or other storage medium, in a computer's or processor's RAM or ROM, etc. Likewise, this software may be delivered to a user or process control system via any known or desired delivery method, such as on a computer-readable disk or any portable computer storage mechanism, or may be modulated over a communications channel such as a telephone line, the Internet, etc. (which may be equivalent or interchangeable with the provision of such software via a portable storage medium).

BezugszeichenlisteReference List

1111
10 Prozesssteuerungssystem Prozess-Controller10 Process Control System Process Controller
1212
Datensammlungdata collection
1313
Hauptarbeitsplatzrechner oder ComputerMain workstation or computer
1414
Anzeigebildschirmdisplay screen
15 - 2215 - 22
Feldgerätefield devices
26, 2826, 28
Eingabe-/Ausgabekarten, I/O-KartenInput/Output Cards, I/O Cards
2929
Kommunikationsnetzcommunication network
3030
Erweiterter BlockExtended block
32, 3432, 34
Programme, Routinenprograms, routines
3636
Regel-/Steuerkreiscontrol circuit
3838
Regel-/Steuer-/Regelblockrule/control/rule block
4040
Generatorprogramm für den fortgeschrittenen Steuer-/Regelblock, KonfigurationsprogrammAdvanced control block generator program, configuration program
4242
Steuer-/RegelblockfestlegungsprogrammControl block specification program
4444
Prozessmodellierungsprogrammprocess modeling program
4646
SteuerlogikparameterfestlegungsprogrammControl logic parameter setting program
4848
Optimiereroptimizer
5050
Prozessprocess
5151
MPC-ControllerblockMPC controller block
5252
MPC-ControllerblockMPC controller block
5454
Optimiereroptimizer
5555
Zielumsetzungsblockgoal implementation block
5656
Schrittantwortmodell, SteuermatrixStep response model, control matrix
5858
Eingabeverarbeitungs-/FilterblockInput processing/filter block
6262
Auswahlblockselection block
6464
Zielfunktionentarget functions
6666
Eingabeinput
7070
Vorhersagesteuerprozessmodellprediction control process model
7272
Ausgabeoutput
7474
VektorsummiererVector Summer
7676
Eingabeinput
8080
Zielsteuer-/RegelblockTarget control/rule block
8282
Trajektorienfiltertrajectory filter
8484
VektorsummiererVector Summer
8686
MPC-SteueralgorithmusMPC control algorithm
9090
Ablaufdiagrammflowchart
90a90a
Funktionen vor ProzessbetriebFunctions before process operation
90b90b
Funktionen während des ProzessbetriebsFunctions during process operation
92, 9492, 94
Blockblock
9898
Blockblock
100100
Blockblock
101101
Graphikdarstellungsbereichgraphics display area
102102
Balkendiagrammbereichbar chart area
104104
Block Ziel- und aktuelle BetriebsartBlock target and current operating mode
106106
Block Zeit bis BeharrungszustandBlock time to steady state
108, 110108, 110
Beginn-, Endpunkt von 102Beginning, end point of 102
112, 114112, 114
Linienlines
116116
Modellherstellungstastemodel making button
120, 124, 126, 150, 152, 154, 156, 158, 160120, 124, 126, 150, 152, 154, 156, 158, 160
Blockblock
200200
Bildschirmanzeigescreen display
204, 208204, 208
Abschnitt von 200Section of 200
212212
Spalte verfügbare StellgrößenColumn available variables
216216
Ausgabegrößenoutput sizes
220220
Verstärkungsfaktorenamplification factors
224224
Totzeitendead times
228228
Verfügbare Steuer- und HilfsgrößenAvailable control and auxiliary variables
232a232a
Hinzufügetasteadd button
232b232b
Löschtastedelete key
236236
Taste, Rücksetztastebutton, reset button
AVAV
Hilfsgrößenauxiliary quantities
AVSSAVSS
Vorhersagebeharrungszustandhilfsgrößenprediction steady state auxiliary quantities
AVSSfilAVSSfil
Gefilterte HilfsgrößeFiltered auxiliary variable
AVTAVT
Zielhilfsgrößentarget assists
CVCV
Steuergrößencontrol variables
CVSSCVSS
Vorhersagebeharrungszustandsteuergrößenprediction steady state controls
CVSSfilCVSSfil
Gefilterte SteuergrößeFiltered control variable
CVTCVT
Zielsteuergrößentarget control variables
DVdv
Störgrößendisturbances
LPLP
Lineare Programmierunglinear programming
MVMV
Stellgrößenvariables
MVSSMVSS
Vorhersagebeharrungszustandsstellgrößenprediction steady state manipulated variables
MVSSfilMVSSfil
Gefilterte StellgrößeFiltered manipulated variable
OFOF
Zielfunktionobjective function

Weitere vorteilhafte Ausführungsformen ergeben sich wie folgt:Further advantageous embodiments result as follows:

1. Ausführungsform1st embodiment

Prozesssteuerungs-Konfigurationssystem zur Verwendung bei der Neuanlegung oder Sichtung eines Steuer-/Regelblocks mit einem integrierten Optimierer und einer Mehrfacheingabe-/Mehrfachausgabe-Steuerroutine, wobei das Prozesssteuerungssystem Folgendes aufweist:

  • ein computerlesbares Medium:
    • eine Konfigurationsroutine, die auf dem computerlesbaren Medium gespeichert und dazu ausgelegt ist, auf einem Prozessor abzulaufen, wobei die Konfigurationsroutine Folgendes enthält:
      • eine Speicherroutine, die Informationen speichert, welche mehrere Steuer- und Hilfsgrößen und mehrere Stellgrößen betrifft, welche vom Optimierer und/oder der Mehrfacheingabe-/Mehrfachausgabe-Steuerroutine verwendet werden, wobei die Informationen, die die mehreren Steuer- und Hilfsgrößen und die mehreren Stellgrößen betreffen, Antwortinformationen für jede von mindestens einigen der Steuer- und Hilfsgrößen umfassen, die Antwortinformationen von jeweiligen Antworten für jede von den mindestens einigen der Steuer- und Hilfsgrößen auf jeweilige Stellgrößen anzeigen; und
      • eine Anzeigeroutine, die dazu ausgelegt ist, einem Benutzer eine Anzeige hinsichtlich einer oder mehrerer der Steuer-, Hilfs- und Stellgrößen zu bieten, wobei die Anzeige eine Teilmenge der Antwortinformationen umfasst, wobei die Teilmenge der Antwortinformation Antwortinformationen umfasst, die Antworten von jeder der mindestens einigen der Steuer- und Hilfsgrößen auf mindestens eine der Stellgrößen anzeigen.
A process control configuration system for use in creating or reviewing a control block with an integrated optimizer and a multiple input/multiple output handler, the process control system comprising:
  • a computer-readable medium:
    • a configuration routine stored on the computer-readable medium and adapted to run on a processor, the configuration routine including:
      • a storage routine that stores information pertaining to a plurality of control and auxiliary variables and a plurality of manipulated variables used by the optimizer and/or the multiple input/multiple output control routine, the information pertaining to the plurality of control and auxiliary variables and the plurality of manipulated variables , comprise response information for each of at least some of the control and auxiliary variables indicating response information of respective responses for each of the at least some of the control and auxiliary variables to respective manipulated variables; and
      • a display routine configured to provide a user with a display of one or more of the control, auxiliary, and manipulated variables, the display including a subset of the response information, the subset of the response information including response information representing responses from each of the at least display some of the control and auxiliary variables on at least one of the manipulated variables.

2. Ausführungsform2nd embodiment

Prozesssteuerungs-Konfigurationssystem nach Ausführungsform 1, wobei die Konfigurationsroutine ferner eine erste Routine enthält, um es dem Benutzer zu ermöglichen, die eine der Stellgrößen aus mehreren Stellgrößen auszuwählen.The process control configuration system according to embodiment 1, wherein the configuration routine further includes a first routine for allowing the user to select the one of the plurality of manipulated variables.

3. Ausführungsform3rd embodiment

Prozesssteuerungs-Konfigurationssystem nach Ausführungsform 2, wobei die Konfigurationsroutine ferner eine zweite Routine enthält, um es dem Benutzer zu ermöglichen, die eine der Stellgrößen einer der Steuer- und Hilfsgrößen zuzuordnen.The process control configuration system of embodiment 2, wherein the configuration routine further includes a second routine to allow the user to associate the one of the manipulated variables with one of the control and auxiliary variables.

4. Ausführungsform4th embodiment

Prozesssteuerungs-Konfigurationssystem nach Ausführungsform 3, wobei die Konfigurationsroutine ferner eine dritte Routine enthält, um es dem Benutzer zu ermöglichen, die Zuordnung einer der Steuer- und Hilfsgrößen, die der einen der Stellgrößen zugeordnet wurde, wieder aufzuheben.The process control configuration system of embodiment 3, wherein the configuration routine further includes a third routine for allowing the user to unassign one of the control and auxiliary variables that has been associated with the one of the manipulated variables.

5. Ausführungsform5th embodiment

Prozesssteuerungs-Konfigurationssystem nach einer der Ausführungsformen 1 bis 4,
wobei die Anzeigeroutine dazu ausgelegt ist, Angaben der mehreren Stellgrößen anzuzeigen und für jede Stellgröße eine Angabe der zugeordneten mehreren Steuer- und Hilfsgrößen, falls vorhanden, anzuzeigen.
Process control configuration system according to one of the embodiments 1 to 4,
wherein the display routine is configured to display indications of the plurality of manipulated variables and, for each manipulated variable, to display an indication of the associated plurality of control and auxiliary variables, if any.

6. Ausführungsform6th embodiment

Prozesssteuerungs-Konfigurationssystem nach einer der Ausführungsformen 1 bis 5,
wobei die Anzeigeroutine dazu ausgelegt ist, eine Angabe einer aktuellen Konfigurationsbedingungszahl anzuzeigen, die mit einer Konfiguration zusammenhängt, die den aktuell zugeordneten Stellgrößen und Steuer- und Hilfsgrößen entspricht.
Process control configuration system according to one of the embodiments 1 to 5,
wherein the display routine is configured to display an indication of a current configuration condition number associated with a configuration corresponding to the currently associated manipulated and control and auxiliary variables.

7. Ausführungsform7th embodiment

Prozesssteuerungs-Konfigurationssystem nach einer der Ausführungsformen 1 bis 6, wobei die Anzeigeroutine dazu ausgelegt ist, eine Angabe einer automatischen Konfigurationsbedingungszahl anzuzeigen, die mit einer automatisch generierten Konfiguration zusammenhängt.The process control configuration system according to any one of embodiments 1 to 6, wherein the display routine is adapted to display an indication of an automatic configuration condition number associated with an automatically generated configuration.

8. Ausführungsform8th embodiment

Prozesssteuerungs-Konfigurationssystem nach einer der vorhergehenden Ausführungsformen,
wobei die Anzeigeroutine dazu ausgelegt ist, eine Angabe einer Prozessmatrix-Konfigurationsbedingungszahl anzuzeigen, die mit einer Konfiguration zusammenhängt, die einer Prozessmatrix entspricht, die alle der mehreren Steuer- und Hilfsgrößen entlang einer ersten Achse der Prozessmatrix und alle der Stellgrößen entlang einer zweiten Achse der Prozessmatrix aufweist.
Process control configuration system according to one of the preceding embodiments,
wherein the display routine is configured to display an indication of a process matrix configuration condition number associated with a configuration corresponding to a process matrix, all of the plurality of control and auxiliary variables along a first axis of the process matrix and all of the manipulated variables along a second axis of the process matrix having.

9. Ausführungsform9th embodiment

Prozesssteuerungs-Konfigurationssystem nach einer der vorhergehenden Ausführungsformen,
wobei die Anzeigeroutine dazu ausgelegt ist, Angaben von verfügbaren Größen der mehreren Steuer- und Hilfsgrößen anzuzeigen, wobei die verfügbaren Größen Stellgrößen zuzuordnen sind.
Process control configuration system according to one of the preceding embodiments,
wherein the display routine is designed to display indications of available variables of the plurality of control and auxiliary variables, with the available variables being associated with manipulated variables.

10. Ausführungsform10th embodiment

Prozesssteuerungs-Konfigurationssystem nach einer der vorhergehenden Ausführungsformen,
wobei die Anzeigeroutine dazu ausgelegt ist, Angaben von Antwortsinformationen für jede der verfügbaren Größen anzuzeigen, wobei die Antwortsinformationen Antworten von jeder der verfügbaren Größen auf die eine der Stellgrößen anzeigen.
Process control configuration system according to one of the preceding embodiments,
wherein the display routine is adapted to display response information indications for each of the available variables, the response information indicating responses from each of the available variables to the one of the manipulated variables.

11. Ausführungsform11th embodiment

Prozesssteuerungs-Konfigurationssystem nach einer der vorhergehenden Ausführungsformen,
wobei dem die Antwortinformationen für jede der verfügbaren Größen mindestens eine Angabe einer Verstärkung, eine Angabe einer Totzeit, eine Angabe einer Priorität und eine Angabe einer Zeitkonstante enthält.
Process control configuration system according to one of the preceding embodiments,
wherein the response information for each of the available variables contains at least an indication of a gain, an indication of a dead time, an indication of a priority and an indication of a time constant.

12. Ausführungsform12th embodiment

Prozesssteuerungs-Konfigurationssystem nach Ausführungsform 11, bei dem die Angabe der Verstärkung eine Zahl umfasst.Process control configuration system according to embodiment 11, wherein the indication of the gain comprises a number.

13. Ausführungsform13th embodiment

Prozesssteuerungs-Konfigurationssystem nach Ausführungsform 11 oder 12, bei dem die Angabe der Totzeit eine Zahl umfasst.Process control configuration system according to embodiment 11 or 12, wherein the indication of the dead time comprises a number.

14. Ausführungsform14th embodiment

Prozesssteuerungs-Konfigurationssystem nach einer der vorhergehenden Ausführungsformen,
wobei die Antwortinformationen für jede der mindestens einigen der Steuer- und Hilfsgrößen mindestens eine Angabe einer Verstärkung, eine Angabe einer Totzeit, eine Angabe einer Priorität und eine Angabe einer Zeitkonstante enthält.
Process control configuration system according to one of the preceding embodiments,
wherein the response information for each of the at least some of the control and auxiliary variables includes at least an indication of a gain, an indication of a dead time, an indication of a priority, and an indication of a time constant.

15. Ausführungsform15th embodiment

Prozesssteuerungs-Konfigurationssystem nach einer der vorhergehenden Ausführungsformen,
wobei die Antwortinformationen für jede der mindestens einigen der Steuer- und Hilfsgrößen Informationen enthalten, die mit einer Schrittantwort zusammenhängen.
Process control configuration system according to one of the preceding embodiments,
wherein the response information for each of the at least some of the control and auxiliary variables includes information associated with a step response.

16. Ausführungsform16th embodiment

Prozesssteuerungs-Konfigurationssystem nach einer der vorhergehenden Ausführungsformen,
wobei die Antwortinformationen für jede der mindestens einigen der Steuer- und Hilfsgrößen Daten enthalten, die mit einer Pulsantwort zusammenhängen.
Process control configuration system according to one of the preceding embodiments,
wherein the response information for each of the at least some of the control and auxiliary variables includes data associated with a pulse response.

17. Ausführungsform17th embodiment

Prozesssteuerungs-Konfigurationssystem nach einer der vorhergehenden Ausführungsformen,
wobei die Antwortinformationen für jede der mindestens einigen der Steuer- und Hilfsgrößen Informationen enthalten, die mit einer Anstiegsantwort zusammenhängen.
Process control configuration system according to one of the preceding embodiments,
wherein the response information for each of the at least some of the control and auxiliary quantities includes information associated with a ramp response.

18. Ausführungsform18th embodiment

Prozesssteuerungssystem zum Steuern eines Prozesses, Folgendes um-fassend: einen Mehrfacheingabe-/Mehrfachausgabe-Controller, der dazu ausgelegt ist, während jedes Operationszyklus des Prozesssteuerungssystems Mehrfachsteuerausgaben zu erzeugen, die so konfiguriert sind, dass sie den Prozess basierend auf gemessenen Mehrfacheingaben aus dem Prozess und basierend auf einem Satz von Zielwerten steuern, die dem Mehrfacheingabe-/Mehrfachausgabe-Controller während jedes Operationszyklus des Prozesssteuerungssystems zur Verfügung gestellt werden; und
einen Optimierer, der dazu ausgelegt ist, den Satz von Zielwerten zur Verwendung durch den Mehrfacheingabe-/Mehrfachausgabe-Controller während jedes Operationszyklus des Prozesssteuerungssystems zu bilden;
bei dem der Optimierer ein linear oder quadratisch programmierender Optimierer einschließlich einer Zielfunktion ist, und der Optimierer dazu ausgelegt ist, die Zielfunktion zu minimieren oder zu maximieren und gleichzeitig einen Satz von Steuergrößen innerhalb vorbestimmter Sollwertgrenzen, einen Satz von Hilfsgrößen innerhalb eines Satzes von vorbestimmten Hilfsgrößengrenzen, und
einen Satz von Stellgrößen innerhalb eines Satzes von vorbestimmten Stellgrö-ßengrenzen zu halten, und, falls keine Lösung besteht, zuzulassen, dass mindestens eine der Sollwertgrenzen verletzt wird.
A process control system for controlling a process, comprising: a multiple input/multiple output controller configured to generate multiple control outputs during each cycle of operation of the process control system, configured to control the process based on measured multiple inputs from the process and control based on a set of target values provided to the multiple input/multiple output controller during each cycle of operation of the process control system; and
an optimizer configured to form the set of target values for use by the multiple input/multiple output controller during each cycle of operation of the process control system;
where the optimizer is a linear or quadratic programming optimizer including a target function, and the optimizer is designed to minimize or maximize the objective function while maintaining a set of control variables within predetermined setpoint limits, a set of auxiliary variables within a set of predetermined auxiliary variable limits, and
maintaining a set of manipulated variables within a set of predetermined manipulated variable limits and, if no solution exists, allowing at least one of the setpoint limits to be violated.

19. Ausführungsform19th embodiment

Prozesssteuerungssystem nach Ausführungsform 18,
bei dem der Optimierer dazu ausgelegt ist, einen Satz von Prioritäten zu speichern, die dem Satz von Steuergrößen entsprechen, und bei dem der Optimierer die Prioritäten aus dem Satz verwendet, um die mindestens eine der Steuersollwertgrenzen zu bestimmen, die verletzt werden soll.
process control system according to embodiment 18,
wherein the optimizer is configured to store a set of priorities corresponding to the set of control variables and wherein the optimizer uses the priorities from the set to determine the at least one of the control setpoint limits to violate.

20. Ausführungsform20th embodiment

Prozesssteuerungssystem nach Ausführungsform 18 oder 19,
bei dem der Optimierer dazu ausgelegt ist, falls keine Lösung besteht, zu ermöglichen, dass mindestens eine der Sollwertgrenzen und der Hilfsgrößengrenzen verletzt wird.
Process control system according to embodiment 18 or 19,
in which the optimizer is designed, if no solution exists, to allow at least one of the setpoint limits and the auxiliary quantity limits to be violated.

21. Ausführungsform21st embodiment

Prozesssteuerungssystem nach einer der Ausführungsformen 18 bis 20, bei dem der Optimierer dazu ausgelegt ist, einen ersten Satz von Prioritäten zu speichern, die dem Satz von Steuergrößen entsprechen, und einen zweiten Satz von Prioritäten, die dem Satz von Hilfsgrößen entsprechen, und bei dem der Optimierer die Prioritäten aus dem ersten Satz und die Prioritäten aus dem zweiten Satz verwendet, um die mindestens eine der Steuersollwertgrenzen und der Hilfsgrößengrenzen zu bestimmen, die verletzt werden sollen.Process control system according to any one of embodiments 18 to 20, in which the optimizer is arranged to store a first set of priorities corresponding to the set of control variables and a second set of priorities corresponding to the set of auxiliary variables, and in which the The optimizer uses the priorities from the first set and the priorities from the second set to determine the at least one of the control setpoint limits and the auxiliary quantity limits to be violated.

22. Ausführungsform22nd embodiment

Prozesssteuerungssystem zum Steuern eines Prozesses, Folgendes umfassend:

  • eine Antwortmatrix, die eine Reaktion jeder eines Satzes von Steuer- und Hilfsgrößen auf eine Veränderung in jedem eines Satzes von Stellgrößen definiert, bei dem eine Anzahl von Steuer- und Hilfsgrößen in dem Satz von Steuer- und Hilfsgrößen gleich einer ersten Zahl ist, bei dem eine Anzahl von Stellgrößen in dem Satz von Stellgrößen gleich einer zweiten Zahl ist;
  • einen linearen oder quadratischen Optimierer, der dazu ausgelegt ist:
  • einen Satz von Zielstellgrößenwerten herzustellen, wobei die Zielstellgrößenwerte einen optimalen Betriebspunkt basierend auf einem Satz von Vorhersagewerten von Steuer- und Hilfsgrößen des Prozesses und basierend auf einem Satz vom aktuellen Werten von Stellgrößen des Prozesses definieren, bei dem eine Anzahl von Vorhersagewerten von Steuer- und Hilfsgrößen in dem Satz von Vorhersagewerten von Steuer- und Hilfsgrößen gleich der ersten Zahl ist, bei dem eine Anzahl von aktuellen Werten von Stellgrößen in dem Satz von aktuellen Werten von Stellgrößen gleich der zweiten Zahl ist;
  • einen Satz von Vorhersagesteuergrößen und -hilfsgrößen, einen Satz von Vorhersagestellgrößen und die Antwortmatrix zu verwenden, um einen Satz von Zielwerten für eine vorbestimmte Teilmenge eines Satzes von Steuer- und Hilfsgrößen herzustellen, bei dem eine Anzahl von Vorhersagesteuergrößen und -hilfsgrößen in dem Satz von Vorhersagesteuergrößen und -hilfsgrößen gleich der ersten Zahl ist, bei dem eine Anzahl von Steuer- und Hilfsgrößen in der vorbestimmten Teilmenge des Satzes von Steuer- und Hilfsgrößen sich von der ersten Zahl unterscheidet;
  • bei dem der lineare oder quadratische Optimierer dazu ausgelegt ist, den Satz von Zielstellgrößenwerten herzustellen, die eine Zielfunktion maximieren oder minimieren, während jede der Steuergrößen auf ihren vorbestimmten Sollwerten und jede der Hilfsgrößen und Stellgrößen innerhalb vorbestimmter Zwangsgrenzen gehalten werden;
  • bei dem der Optimierer dazu ausgelegt ist, den Satz von Zielstellgrößenwerten herzustellen, die die Zielfunktion maximieren oder minimieren, während jede der Steuergrößen innerhalb vorbestimmter Sollwertgrenzen und jede der Hilfsgrößen und Stellgrößen innerhalb von Zwangsgrenzen gehalten werden, wenn keine Lösung besteht, die jede der Steuergrößen auf vorbestimmten Sollwerten und jede der Hilfsgrößen und Stellgrößen innerhalb vorbestimmter Zwangsgrenzen hält;
  • bei dem der Optimierer dazu ausgelegt ist, den Satz von Zielstellgrößenwerten herzustellen, die die Zielfunktion maximieren oder minimieren, während jede der Hilfsgrößen innerhalb vorbestimmter Zwangsgrenzen und die Stellgrößen innerhalb vorbestimmter Zwangsgrenzen gehalten werden, während eine oder mehrere der Steuergrößen vorbestimmte Sollwertgrenzen basierend auf Prioritäten verletzen dürfen, die den Steuergrößen zugeordnet sind, wenn keine Lösung besteht, die jede der Steuergrößen innerhalb vorbestimmter Sollwertgrenzen und jede der Hilfsgrößen und Stellgrößen innerhalb vorbestimmter Zwangsgrenzen hält;
  • einen Mehrfacheingabe-/Mehrfachausgabe-Controller, der dazu ausgelegt ist:
    • den Satz von Vorhersagesteuergrößen und -hilfsgrößen und den Satz von Vorhersagestellgrößen herzustellen, und
    • den Satz von Zielwerten für die vorbestimmte Teilmenge des Satzes von Steuer- und Hilfsgrößen mit Messwerten der vorbestimmten Teilmenge des Satzes von Steuer- und Hilfsgrößen zu kombinieren, um einen Satz von Stellsteuersignalen zur Steuerung der Stellgrößen des Prozesses herzustellen, bei dem eine Anzahl der Stellsteuersignale im Satz von Stellgrößen gleich der zweiten Zahl ist.
A process control system for controlling a process, comprising:
  • a response matrix defining a response of each of a set of control and auxiliary variables to a change in each of a set of manipulated variables, in which a number of control and auxiliary variables in the set of control and auxiliary variables is equal to a first number, in which a number of manipulated variables in the set of manipulated variables equals a second number;
  • a linear or quadratic optimizer designed to:
  • to produce a set of target manipulated variable values, the target manipulated variable values defining an optimal operating point based on a set of predicted values of control and auxiliary variables of the process and based on a set of current values of manipulated variables of the process, in which a number of predicted values of control and auxiliary variables in the set of predicted values of control and auxiliary variables is equal to the first number, in which a number of current values of manipulated variables in the set of current values of manipulated variables is equal to the second number;
  • using a set of prediction controls and auxiliary variables, a set of prediction manipulated variables and the response matrix to produce a set of target values for a predetermined subset of a set of control and auxiliary variables, in which a number of prediction control variables and auxiliary variables in the set of prediction control variables and -auxiliaries equal to the first number in which a number of control and auxiliary variables in the predetermined subset of the set of control and auxiliary variables differs from the first number;
  • wherein the linear or quadratic optimizer is adapted to produce the set of target manipulated variable values that maximize or minimize an objective function while maintaining each of the control variables at their predetermined setpoints and each of the auxiliary and manipulated variables within predetermined constraint limits;
  • in which the optimizer is designed to produce the set of target manipulated variable values that maximize or minimize the objective function while maintaining each of the controlled variables within predetermined set-point limits and each of the auxiliary and manipulated variables within constraint limits when no solution exists that satisfies each of the controlled variables predetermined setpoints and each of the auxiliary and manipulated variables within predetermined constraint limits;
  • wherein the optimizer is designed to produce the set of target manipulated variable values that maximize or minimize the objective function while maintaining each of the auxiliary variables within predetermined constraint limits and the manipulated variables within predetermined constraint limits while allowing one or more of the control variables to violate predetermined setpoint limits based on priorities associated with the controlled variables when there is no solution keeping each of the controlled variables within predetermined setpoint limits and each of the auxiliary and manipulated variables within predetermined constraint limits;
  • a multiple input/multiple output controller designed to:
    • to produce the set of prediction control and auxiliary variables and the set of prediction manipulated variables, and
    • to combine the set of target values for the predetermined subset of the set of control and auxiliary variables with measured values of the predetermined subset of the set of control and auxiliary variables to produce a set of positioning control signals for controlling the manipulated variables of the process in which a number of the positioning control signals im set of manipulated variables is equal to the second number.

23. Ausführungsform23rd embodiment

Prozesssteuerungssystem nach Ausführungsform 22,
bei dem der Optimierer dazu ausgelegt ist, den Satz von Zielstellgrößenwerten herzustellen, die die Zielfunktion maximieren oder minimieren, während die Stellgrößen innerhalb vorbestimmter Zwangsgrenzen gehalten werden, während eine oder mehrere der Steuergrößen vorbestimmte Sollwertgrenzen, und die Hilfsgrößen vorbestimmte Zwangsgrenzen basierend auf Prioritäten, die den Steuergrößen und den Hilfsgrößen zugeordnet sind, verletzen dürfen, wenn keine Lösung besteht, die jede der Hilfsgrößen und Stellgrößen innerhalb vorbestimmter Zwangsgrenzen hält.
process control system according to embodiment 22,
wherein the optimizer is configured to produce the set of target manipulated variable values that maximize or minimize the objective function while maintaining the manipulated variables within predetermined constraint limits while one or more of the control variables have predetermined set point limits and the auxiliary variables have predetermined constraint limits based on priorities affecting the Control variables and associated auxiliary variables may violate if there is no solution that keeps each of the auxiliary variables and manipulated variables within predetermined constraint limits.

24. Ausführungsform24th embodiment

Prozesssteuerungssystem nach Ausführungsform 22 oder 23,
bei dem der Optimierer dazu ausgelegt ist, den Satz von Zielstellgrößenwerten herzustellen, die die Zielfunktion maximieren oder minimieren, während die Stellgrößen innerhalb vorbestimmter Zwangsgrenzen gehalten werden, während eine oder mehrere der Steuergrößen vorbestimmte Sollwertgrenzen, und die Hilfsgrößen vorbestimmte Zwangsgrenzen basierend auf Prioritäten, die den Steuergrößen und den Hilfsgrößen zugeordnet sind, verletzen dürfen, wenn keine Lösung besteht, die jede der Steuergrößen innerhalb vorbestimmter Sollwertgrenzen und die Stellgrößen innerhalb vorbestimmter Zwangsgrenzen hält.
Process control system according to embodiment 22 or 23,
wherein the optimizer is configured to produce the set of target manipulated variable values that maximize or minimize the objective function while maintaining the manipulated variables within predetermined constraint limits while one or more of the control variables have predetermined set point limits and the auxiliary variables have predetermined constraint limits based on priorities affecting the Control variables and the auxiliary variables are assigned, may violate if there is no solution that keeps each of the control variables within predetermined setpoint limits and the manipulated variables within predetermined forced limits.

25. Ausführungsform25th embodiment

Verfahren zur Steuerung eines Prozesses mit mehreren Stellgrößen und vielen Steuer- und Hilfsgrößen, die durch Änderungen bei den Stellgrößen beeinflusst werden können, bei dem sich die mehreren der Stellgrößen zahlenmäßig von den vielen Steuer- und Hilfsgrößen unterscheiden, wobei das Verfahren umfasst:

  • eine Teilmenge der vielen Steuer- und Hilfsgrößen auszuwählen, die beim Durchführen der Prozesssteuerung verwendet werden sollen, bei dem das Auswählen der Teilmenge umfasst, eine der Steuer- oder Hilfsgrößen auszuwählen, die am stärksten auf eine der Stellgrößen anspricht;
  • eine Steuermatrix unter Verwendung der ausgewählten Teilmenge der vielen der Steuer- und Hilfsgrößen und der mehreren Stellgrößen herzustellen;
  • einen Controller aus der Steuermatrix mit der ausgewählten Teilmenge der vielen der Steuer- und Hilfsgrößen als Eingaben und den mehreren Stellgrößen als Ausgaben zu generieren;
  • eine Prozessoptimierung durchzuführen, indem ein Prozessbetriebspunkt ausgewählt wird, um eine Zielfunktion in Abhängigkeit von den mehreren Stellgrößen und den vielen Steuer- und Hilfsgrößen zu minimieren oder zu maximieren, wobei der Prozessbetriebspunkt durch einen Satz von Zielwerten für die ausgewählte Teilmenge der vielen Steuer- und Hilfsgrößen definiert wird;
  • ein Mehrfacheingabe-/Mehrfachausgabe-Steuerverfahren unter Verwendung eines Controllers durchzuführen, der aus der Steuermatrix generiert wurde, um einen Satz von Stellgrößenwerten aus den Zielgrößen für die ausgewählte Teilmenge der vielen Steuer- und Hilfsgrößen und Messwerte der ausgewählten Teilmenge der vielen Steuer- und Hilfsgrößen zu bilden; und
  • den gebildeten Satz von Stellgrößenwerten zur Steuerung des Prozesses zu verwenden.
A method of controlling a process with multiple manipulated variables and many control and auxiliary variables that can be affected by changes in the manipulated variables, in which the plurality of manipulated variables differ in number from the multiple control and auxiliary variables, the method comprising:
  • select a subset of the plurality of control and auxiliary variables to be used in performing process control, wherein selecting the subset comprises selecting one of the control or auxiliary variables that is most responsive to one of the manipulated variables;
  • construct a control matrix using the selected subset of the plurality of the control and auxiliary variables and the plurality of manipulated variables;
  • generate a controller from the control matrix with the selected subset of the plurality of the control and auxiliary variables as inputs and the plurality of manipulated variables as outputs;
  • perform a process optimization by selecting a process operating point to minimize or maximize a target function depending on the multiple manipulated variables and the many control and auxiliary variables, the process operating point by a set of target values for the selected subset of the many control and auxiliary variables is defined;
  • perform a multiple-input/multiple-output control method using a controller generated from the control matrix to assign a set of manipulated variable values from the target variables for the selected subset of the multiple control and auxiliary variables and measured values of the selected subset of the multiple control and auxiliary variables form; and
  • to use the formed set of manipulated variable values to control the process.

26. Ausführungsform26th embodiment

Verfahren nach Ausführungsform 25,
bei dem das Auswählen einer der Steuer- oder Hilfsgrößen als die am stärksten auf eine der Stellgrößen ansprechende das Auswählen einer der Steuer- oder Hilfsgrößen basierend zumindest auf einer Kreuzkorrelationsanalyse umfasst.
method according to embodiment 25,
wherein selecting one of the controls or auxiliary variables as most responsive to one of the manipulated variables comprises selecting one of the control or auxiliary variables based at least on a cross-correlation analysis.

27. Ausführungsform27th embodiment

Verfahren nach Ausführungsform 25 oder 26,
bei dem das Auswählen einer der Steuer- oder Hilfsgrößen als die am stärksten auf eine der Stellgrößen ansprechende das Auswählen einer der Steuer- oder Hilfsgrößen basierend zumindest auf ein heuristisches Verfahren umfasst.
Method according to embodiment 25 or 26,
wherein selecting one of the control or auxiliary variables as most responsive to one of the manipulated variables comprises selecting one of the control or auxiliary variables based on at least one heuristic method.

28. Ausführungsform28th embodiment

Verfahren nach einer der Ausführungsformen 25 bis 27,
bei dem das Auswählen einer der Steuer- oder Hilfsgrößen als die am stärksten auf eine der Stellgrößen ansprechende das Auswählen einer der Steuer- oder Hilfsgrößen basierend zumindest auf Prioritäten umfasst, die den Steuer- und Hilfsgrößen zugeordnet sind.
Method according to any one of embodiments 25 to 27,
wherein selecting one of the controls or auxiliary variables as most responsive to one of the manipulated variables comprises selecting one of the control or auxiliary variables based at least on priorities associated with the control and auxiliary variables.

29. Ausführungsform29th embodiment

Verfahren zum Steuern eines Prozesses, der mehrere Stellgrößen und viele Steuer- und Hilfsgrößen aufweist, die durch Änderungen bei den Stellgrößen beeinflusst werden können, bei dem sich die mehreren der Stellgrößen zahlenmäßig von den vielen Steuer- und Hilfsgrößen unterscheiden, wobei das Verfahren umfasst:

  • eine Teilmenge der vielen Steuer- und Hilfsgrößen auszuwählen, die beim Durchführen der Prozesssteuerung verwendet werden sollen, bei der eine Anzahl von Steuer- und Hilfsgrößen in der Teilmenge geringer ist als eine Anzahl von Stellgrößen bei den mehreren Stellgrößen;
  • eine Steuermatrix unter Verwendung der ausgewählten Teilmenge der vielen der Steuer- und Hilfsgrößen und der mehreren Stellgrößen herzustellen;
  • einen Controller aus der Steuermatrix mit der ausgewählten Teilmenge der vielen der Steuer- und Hilfsgrößen als Eingaben und den mehreren Stellgrößen als Ausgaben zu generieren;
  • eine Prozessoptimierung durchzuführen, indem ein Prozessbetriebspunkt ausgewählt wird, um eine Zielfunktion in Abhängigkeit von den mehreren Stellgrößen und den vielen Steuer- und Hilfsgrößen zu minimieren oder zu maximieren, wobei der Prozessbetriebspunkt durch einen Satz von Zielwerten für die ausgewählte Teilmenge der vielen Steuer- und Hilfsgrößen definiert wird;
  • ein Mehrfacheingabe-/Mehrfachausgabe-Steuerverfahren unter Verwendung eines Controllers durchzuführen, der aus der Steuermatrix generiert wurde, um einen Satz von Stellgrößenwerten aus den Zielgrößen für die ausgewählte Teilmenge der vielen Steuer- und Hilfsgrößen und Messwerte der ausgewählten Teilmenge der vielen Steuer- und Hilfsgrößen auszubilden; und
  • den ausgebildeten Satz von Stellgrößenwerten zur Steuerung des Prozesses zu verwenden.
A method of controlling a process having multiple manipulated variables and many control and auxiliary variables that can be affected by changes in the manipulated variables, in which the plurality of manipulated variables differ in number from the multiple control and auxiliary variables, the method comprising:
  • select a subset of the plurality of control and auxiliary variables to be used in performing the process control in which a number of control and auxiliary variables in the subset is less than a number of manipulated variables in the plurality of manipulated variables;
  • construct a control matrix using the selected subset of the plurality of the control and auxiliary variables and the plurality of manipulated variables;
  • generate a controller from the control matrix with the selected subset of the plurality of the control and auxiliary variables as inputs and the plurality of manipulated variables as outputs;
  • perform a process optimization by selecting a process operating point to minimize or maximize a target function depending on the multiple manipulated variables and the many control and auxiliary variables, the process operating point by a set of target values for the selected subset of the many control and auxiliary variables is defined;
  • perform a multiple-input/multiple-output control method using a controller generated from the control matrix to form a set of manipulated variable values from the target variables for the selected subset of the multiple control and auxiliary variables and measured values of the selected subset of the multiple control and auxiliary variables ; and
  • use the trained set of manipulated variable values to control the process.

30. Ausführungsform30th embodiment

Prozesssteuerungselement, das dazu ausgelegt ist, als Teil eines auf einem Prozessor implementierten Prozesssteuerungsprogramms verwendet zu werden, um mehrere Steuer- und Hilfsparameter eines Prozesses unter Verwendung von vielen Stellparametern zu steuern, wobei das Prozesssteuerungselement umfasst:

  • ein computerlesbares Medium;
  • einen Funktionsblock, der auf dem computerlesbaren Medium gespeichert und dazu ausgelegt ist, auf dem Prozessor abzulaufen, um während jeder Steuerabtastperiode eine Mehrfacheingabe-/Mehrfachausgabesteuerung des Prozesses zu bewerkstelligen, wobei der Funktionsblock umfasst:
    • eine Zielfunktion, die ein Optimierungskriterium basierend auf den mehreren Steuer- und Hilfsparametern definiert, bei dem die Zielfunktion ein Optimierungskriterium basierend auf einer ersten Anzahl von Steuer- und Hilfsparametern definiert;
    • ein Optimierungsprogramm, das die Zielfunktion verwendet, um während jeder Steuerabtastperiode einen Satz von optimalen Zielwerten für die Steuer- und Hilfsparameter herzustellen, bei dem das Optimierungsprogramm eine lineare oder quadratische Programmierroutine enthält;
    • eine Steuermatrix, die eine vorbestimmte Teilmenge der mehreren der Steuer- und Hilfsparameter zu den vielen Stellparametern in Beziehung setzt, bei dem eine Anzahl von Steuer- und Hilfsparametern bei der vorbestimmten Teilmenge gleich der ersten Zahl ist, bei dem eine Anzahl von Stellparametern bei den vielen Stellparametern gleich der ersten Zahl ist; und
    • ein Mehrfacheingabe-/Mehrfachausgabe-Steuerprogramm, das während jeder Steuerabtastperiode ein Steuersignal für jeden der vielen Stellparameter unter Verwendung der Steuermatrix und der Zielwerte für die Teilmenge der mehreren Steuer- und Hilfsgrößen erzeugt, bei dem die Steuersignale dazu bestimmt sind, die Teilmenge der mehreren der Steuer- und Hilfsparameter auf die für die Teilmenge von Steuer- und Hilfsparametern optimalen Zielwerte zu fahren, bei dem das Mehrfacheingabe-/Mehrfachausgabe-Steuerprogramm ein Modellvorhersagesteuerprogramm umfasst.
A process control element adapted to be used as part of a process control program implemented on a processor to control multiple control and auxiliary parameters of a process using multiple manipulated parameters, the process control element comprising:
  • a computer-readable medium;
  • a function block stored on the computer readable medium and adapted to run on the processor to effectuate multiple input/multiple output control of the process during each control sampling period, the functional block comprising:
    • an objective function defining an optimization criterion based on the plurality of control and auxiliary parameters, wherein the objective function defines an optimization criterion based on a first number of control and auxiliary parameters;
    • an optimization program using the objective function to produce a set of optimal target values for the control and auxiliary parameters during each control sample period, wherein the optimization program includes a linear or quadratic programming routine;
    • a control matrix relating a predetermined subset of the plurality of control and auxiliary parameters to the plurality of adjustment parameters, in which a number of control and auxiliary parameters in the predetermined subset is equal to the first number, in which a number of adjustment parameters in the plurality setting parameters is equal to the first number; and
    • a multiple-input/multiple-output control program that generates a control signal for each of the plurality of control parameters during each control sample period using the control matrix and the target values for the subset of the plurality of control and auxiliary variables, wherein the control signals are designed to control the subset of the plurality of the drive control and auxiliary parameters to the optimal target values for the subset of control and auxiliary parameters, wherein the multiple-input/multiple-output handler comprises a model prediction handler.

31. Ausführungsform31st embodiment

Prozesssteuerungselement, das dazu ausgelegt ist, als Teil eines auf einem Prozessor implementierten Prozesssteuerungsprogramm verwendet zu werden, um mehrere Steuer- und Hilfsparameter eines Prozesses unter Verwendung von vielen Stellparametern zu steuern, wobei das Prozesssteuerungselement umfasst:

  • ein computerlesbares Medium;
  • einen Funktionsblock, der auf dem computerlesbaren Medium gespeichert und dazu ausgelegt ist, auf dem Prozessor abzulaufen, um während jeder Steuerabtastperiode eine Mehrfacheingabe-/Mehrfachausgabesteuerung des Prozesses zu bewerkstelligen, wobei der Funktionsblock umfasst:
    • eine Zielfunktion, die ein Optimierungskriterium basierend auf den mehreren Steuer- und Hilfsparametern definiert;
    • ein Optimierungsprogramm, das die Zielfunktion verwendet, um während jeder Steuerabtastperiode einen Satz von optimalen Zielwerten für die Steuer- und Hilfsparameter herzustellen;
    • eine Steuermatrix, die eine vorbestimmte Teilmenge der mehreren der Steuer- und Hilfsparameter zu den vielen Stellparametern in Beziehung setzt; und
    • ein Mehrfacheingabe-/Mehrfachausgabe-Steuerprogramm, das während jeder Steuerabtastperiode ein Steuersignal für jeden der vielen Stellparameter unter Verwendung der Steuermatrix und der Zielwerte für die Teilmenge der mehreren Steuer- und Hilfsgrößen erzeugt, bei dem die Steuersignale dazu bestimmt sind, die Teilmenge der mehreren der Steuer- und Hilfsparameter auf die für die Teilmenge von Steuer- und Hilfsparametern optimalen Zielwerte zu fahren;
    • bei dem der Funktionsblock einen Speicher zum Speichern eines Satzes von Steuerparametersollwerten und eines Satzes von Hilfs- und Stellparametergrenzen umfasst, und bei dem das Optimierungsprogramm so konfiguriert ist, dass es den Satz von optimalen Zielwerten für die Stellparameter, die die Steuerparameter ergeben, sich auf den Steuerparametersollwerten, die Hilfs- und Stellparameter sich innerhalb der Hilfs- und Stellparametergrenzen befinden und die Zielfunktion minimiert oder maximiert wird;
    • bei dem der Speicher auch einen Satz von Steuerparametersollwertgrenzen gespeichert hat und das Optimierungsprogramm dazu ausgelegt ist, den Satz von optimalen Zielwerten für die Stellparameter herzustellen, die die Zielfunktion maximieren oder minimieren, während jeder der Steuerparameter innerhalb der Steuerparametersollwertgrenzen und jeder der Hilfsparameter und Stellparameter innerhalb der Hilfs- und Stellparametergrenzen gehalten wird, wenn keine Lösung besteht, die die Steuerparameter auf den Steuerparametersollwerten und die Hilfs- und Stellparameter innerhalb der Hilfs- und Stellparametergrenzen hält;
    • bei dem der Speicher auch einen Satz von Prioritätsangaben für die Steuerparameter gespeichert hat und das Optimierungsprogramm dazu ausgelegt ist, den Satz von Zielstellparametern herzustellen, die die Zielfunktion maximieren oder minimieren, während jeder der Steuerparameter innerhalb der Steuerparametersollwertgrenzen gehalten wird, während eine oder mehrere der Steuerparameter die Steuerparametersollwertgrenzen basierend auf den Prioritätsangaben für die Steuerparameter verletzen darf/dürfen, wenn keine Lösung besteht, die jeden der Steuerparameter innerhalb der Steuerparametersollwertgrenzen und jede der Hilfsparameter und Stellparameter innerhalb der Hilfs- und Stellparametergrenzen hält;
    • bei dem der Speicher auch einen Satz von Prioritätsangaben für die Hilfsparameter gespeichert hat und das Optimierungsprogramm dazu ausgelegt ist, den Satz von Zielstellparametern herzustellen, die die Zielfunktion maximieren oder minimieren, während mindestens einer der Hilfsparameter die Hilfsparametergrenzen basierend auf den Prioritätsangaben für die Hilfsparameter verletzten darf, und die Steuerparameter die Steuerparametersollwertgrenzen basierend auf den Prioritätsangaben für die Steuerparameter verletzen dürfen, wenn keine Lösung besteht, die jeden der Steuerparameter innerhalb der Steuerparametersollwertgrenzen und jeden der Hilfsparameter und Stellparameter innerhalb der Hilfs- und Stellparametergrenzen hält.
A process control element adapted to be used as part of a process control program implemented on a processor to control multiple control and auxiliary parameters of a process using multiple manipulated parameters, the process control element comprising:
  • a computer-readable medium;
  • a function block stored on the computer readable medium and adapted to run on the processor to effectuate multiple input/multiple output control of the process during each control sampling period, the functional block comprising:
    • an objective function defining an optimization criterion based on the plurality of control and auxiliary parameters;
    • an optimization program that uses the objective function to produce a set of optimal target values for the control and auxiliary parameters during each control sample period;
    • a control matrix relating a predetermined subset of the plurality of control and auxiliary parameters to the plurality of adjustment parameters; and
    • a multiple-input/multiple-output control program that generates a control signal for each of the plurality of control parameters during each control sample period using the control matrix and the target values for the subset of the plurality of control and auxiliary variables, wherein the control signals are designed to control the subset of the plurality of the drive control and auxiliary parameters to the optimal target values for the subset of control and auxiliary parameters;
    • wherein the functional block includes a memory for storing a set of control parameter setpoints and a set of auxiliary and manipulated parameter limits, and wherein the optimization program is configured to calculate the set of optimal target values for the manipulated parameters that result in the control parameters on the control parameter setpoints, the auxiliary and manipulated parameters are within the auxiliary and manipulated parameter limits and the objective function is minimized or maximized;
    • wherein the memory also has stored a set of control parameter setpoint limits and the optimizer is adapted to produce the set of optimal target values for the manipulated parameters that maximize or minimize the objective function while each of the control parameters is within the control parameter setpoint limits and each of the auxiliary parameters and manipulated parameters is within the maintaining auxiliary and manipulated parameter limits when no solution exists to keep the control parameters at the control parameter setpoints and the auxiliary and manipulated parameters within the auxiliary and manipulated parameter limits;
    • wherein the memory also has stored a set of priority indications for the control parameters and the optimizer is adapted to produce the set of target setting parameters that maximize or minimize the target function while each of the control parameters is within control parameter setpoint limits is maintained while one or more of the control parameters is permitted to violate the control parameter setpoint limits based on the priority designations for the control parameters, if there is no solution that keeps each of the control parameters within the control parameter setpoint limits and each of the auxiliary and manipulated parameters within the auxiliary and manipulated parameter limits;
    • wherein the memory also has stored a set of priority specifications for the ancillary parameters and the optimizer is designed to produce the set of objective setting parameters that maximize or minimize the objective function while at least one of the auxiliary parameters is allowed to violate the auxiliary parameter limits based on the priority specifications for the auxiliary parameters , and the control parameters are allowed to violate the control parameter set point limits based on the priority designations for the control parameters if there is no solution keeping each of the control parameters within the control parameter set point limits and each of the auxiliary and manipulated parameters within the auxiliary and manipulated parameter limits.

32. Ausführungsform32nd embodiment

Verfahren zur Durchführung der Steuerung eines Prozesses mit einer ersten Anzahl von Steuer- und Hilfsgrößen, die von einer zweiten Anzahl von Stellgrößen gesteuert werden, wobei das Verfahren Folgendes umfasst:

  • eine Schrittantwortmatrix zu bestimmen, die eine Antwort jeder der Steuer- und Hilfsgrößen auf Veränderungen bei jeder der Stellgrößen definiert;
  • eine Teilmenge der Steuer- und Hilfsgrößen auszuwählen, wobei die Teilmenge dieselbe wie oder eine geringere Anzahl von Steuer- und Hilfsgrößen aufweist als die Stellgrößen, bei dem das Auswählen der Teilmenge das Auswählen einer der am stärksten auf eine der Stellgrößen ansprechenden Steuer- oder Hilfsgrö-ßen umfasst;
  • eine quadratische Steuermatrix aus dem Antworten innerhalb der Antwortmatrix für die ausgewählte Teilmenge der Steuer- und Hilfsgrößen und der Stellgrößen herzustellen; und
  • während jeder Abtastung des Prozesses
  • einen Messwert von jeder der ausgewählten Teilmenge der Steuer- und Hilfsgrößen zu erhalten;
  • einen optimalen Betriebszielwert für jede der ausgewählten Teilmenge der Steuer- und Hilfsgrößen zu berechnen;
  • ein Mehrfacheingabe-/Mehrfachausgabe-Steuerprogramm ablaufen zu lassen, das die Zielwerte für jede der ausgewählten Teilmenge der Steuer- und Hilfsgrö-ßen, die Messwerte der ausgewählten Teilmenge der Steuer- und Hilfsgrößen und die Steuermatrix verwendet, um einen Satz von Stellparametersignalen zu erzeugen; und
  • die Stellparametersignale zur Steuerung des Prozesses zu verwenden.
Method for performing the control of a process with a first number of control and auxiliary variables controlled by a second number of manipulated variables, the method comprising:
  • determine a step response matrix defining a response of each of the control and auxiliary variables to changes in each of the manipulated variables;
  • to select a subset of the control and auxiliary variables, the subset having the same or a smaller number of control and auxiliary variables than the manipulated variables, in which selecting the subset involves selecting one of the control or auxiliary variables most responsive to one of the manipulated variables includes;
  • construct a square control matrix from the responses within the response matrix for the selected subset of the control and auxiliary variables and the manipulated variables; and
  • during each scan of the process
  • obtain a measurement of each of the selected subset of the control and auxiliary quantities;
  • calculate an optimal operating target value for each of the selected subset of the control and auxiliary quantities;
  • run a multiple input/multiple output control program that uses the target values for each of the selected subset of the control and auxiliary quantities, the measured values of the selected subset of the control and auxiliary quantities, and the control matrix to generate a set of manipulated variable signals; and
  • to use the control parameter signals to control the process.

33. Ausführungsform33rd embodiment

Verfahren nach Ausführungsform 32,
bei dem das Auswählen einer der am stärksten auf eine der Stellgrößen ansprechenden Steuer- oder Hilfsgrößen das Auswählen einer der Steuer- oder Hilfsgrößen basierend zumindest auf einer Kreuzkorrelationsanalyse umfasst.
method according to embodiment 32,
wherein selecting one of the control or auxiliary variables most responsive to one of the manipulated variables comprises selecting one of the control or auxiliary variables based at least on a cross correlation analysis.

34. Ausführungsform34th embodiment

Verfahren nach Ausführungsform 32 oder 33,
bei dem das Auswählen einer der am stärksten auf eine der Stellgrößen ansprechenden Steuer- oder Hilfsgrößen das Auswählen einer der Steuer- oder Hilfsgrößen basierend zumindest auf einem heuristischen Verfahren umfasst.
Method according to embodiment 32 or 33,
wherein selecting one of the control or auxiliary variables most responsive to one of the manipulated variables includes selecting one of the control or auxiliary variables based at least on a heuristic method.

35. Ausführungsform35th embodiment

Verfahren nach einer der Ausführungsformen 32 bis 34,
bei dem das Auswählen einer der am stärksten auf eine der Stellgrößen ansprechenden Steuer- oder Hilfsgrößen das Auswählen einer der Steuer- oder Hilfsgrößen basierend zumindest auf Prioritäten umfasst, die den Steuer- und Hilfsgrößen zugeordnet sind.
Method according to one of the embodiments 32 to 34,
in which selecting one of the most responsive to one of the manipulated variables control or auxiliary includes selecting one of the control or auxiliary variables based at least on priorities associated with the control and auxiliary variables.

Claims (27)

Prozesssteuerungs-Konfigurationssystem zur Verwendung in einem Prozesssteuerungssystem (10) zum Konfigurieren eines Steuer-/Regelblocks (38) mit einem integrierten Optimierer (48) und einer Mehrfacheingabe-/Mehrfachausgabe-Steuerroutine, wobei das Prozesssteuerungssystem Folgendes aufweist: ein computerlesbares Medium: eine Konfigurationsroutine, die auf dem computerlesbaren Medium gespeichert und dazu ausgelegt ist, auf einem Prozessor abzulaufen, wobei die Konfigurationsroutine Folgendes enthält: eine Speicherroutine, die Informationen speichert, welche mehrere Steuer- und Hilfsgrößen (CV, AV), mit einem Satz von Zielwerten, der vom Optimierer (48) erzeugt und einer Mehrfacheingabe-/Mehrfachausgabe-Steuerung während jedem Operationszyklus des Prozesssteuerungssystems (10) bereitgestellt wird, und mehrere Stellgrößen (MV) betrifft, welche vom Optimierer (48; 54) und/oder der Mehrfacheingabe-/Mehrfachausgabe-Steuerroutine verwendet werden, wobei die Informationen, die die mehreren Steuer- und Hilfsgrößen und die mehreren Stellgrößen betreffen, Antwortinformationen für jede von mindestens einigen der Steuer- und Hilfsgrößen umfassen, die Antwortinformationen von jeweiligen Antworten für jede von den mindestens einigen der Steuer- und Hilfsgrößen auf jeweilige Stellgrößen anzeigen; und eine Anzeigeroutine, die dazu ausgelegt ist, einem Benutzer eine Anzeige (14) hinsichtlich einer oder mehrerer der Steuer-, Hilfs-, Ziel- und Stellgrößen (CV, AV, MV) zu bieten, wobei die Anzeige eine Teilmenge der Antwortinformationen umfasst, wobei die Teilmenge der Antwortinformation Antwortinformationen umfasst, die Antworten von jeder der mindestens einigen der Ziel-, Steuer- und Hilfsgrößen auf mindestens eine der Stellgrößen anzeigen.Process control configuration system for use in a process control system (10) for configuring a control block (38) with an integrated optimizer (48) and a multiple input/multiple output control routine, the process control system comprising: a computer-readable medium: a configuration routine stored on the computer-readable medium and adapted to run on a processor, the configuration routine including: a storage routine that stores information representing a plurality of control and auxiliary variables (CV, AV) with a set of target values generated by the optimizer (48) and provided to a multiple input/multiple output controller during each cycle of operation of the process control system (10). , and relates to a plurality of manipulated variables (MV) used by the optimizer (48; 54) and/or the multiple input/multiple output control routine, the information relating to the plurality of control and auxiliary variables and the plurality of manipulated variables including response information for each of at least some of the control and auxiliary variables indicating response information of respective responses for each of the at least some of the control and auxiliary variables to respective manipulated variables; and a display routine designed to provide a user with a display (14) in terms of one or more of the control, auxiliary, target and manipulated variables (CV, AV, MV), the display comprising a subset of the response information, wherein the subset of the response information includes response information indicative of responses from each of the at least some of the target, control, and auxiliary variables to at least one of the manipulated variables. Prozesssteuerungs-Konfigurationssystem nach Anspruch 1, wobei die Konfigurationsroutine ferner eine erste Routine enthält, um es dem Benutzer zu ermöglichen, die eine der Stellgrößen aus mehreren Stellgrößen (MV) auszuwählen.Process Control Configuration System claim 1 wherein the configuration routine further includes a first routine to allow the user to select the one of the plurality of manipulated variables (MV). Prozesssteuerungs-Konfigurationssystem nach Anspruch 2, wobei die Konfigurationsroutine ferner eine zweite Routine enthält, um es dem Benutzer zu ermöglichen, die eine der Stellgrößen (MV) einer der Steuer- und Hilfsgrößen (CV, AV) zuzuordnen.Process Control Configuration System claim 2 wherein the configuration routine further includes a second routine to allow the user to associate one of the manipulated variables (MV) with one of the control and auxiliary variables (CV, AV). Prozesssteuerungs-Konfigurationssystem nach Anspruch 3, wobei die Konfigurationsroutine ferner eine dritte Routine enthält, um es dem Benutzer zu ermöglichen, die Zuordnung einer der Steuer- und Hilfsgrößen (CV, AV), die der einen der Stellgrößen (MV) zugeordnet wurde, wieder aufzuheben.Process Control Configuration System claim 3 wherein the configuration routine further includes a third routine to allow the user to unassign one of the control and auxiliary variables (CV, AV) associated with one of the manipulated variables (MV). Prozesssteuerungs-Konfigurationssystem nach einem der Ansprüche 1 bis 4, wobei die Anzeigeroutine dazu ausgelegt ist, Angaben der mehreren Stellgrößen (MV) anzuzeigen und für jede Stellgröße eine Angabe der zugeordneten mehreren Steuer- und Hilfsgrößen (CV, AV), falls vorhanden, anzuzeigen.Process control configuration system according to one of Claims 1 until 4 wherein the display routine is adapted to display indications of the plurality of manipulated variables (MV) and, for each manipulated variable, an indication of the associated plurality of control and auxiliary variables (CV, AV), if any, to display. Prozesssteuerungs-Konfigurationssystem nach einem der Ansprüche 1 bis 5, wobei die Anzeigeroutine dazu ausgelegt ist, eine Angabe einer aktuellen Konfigurationsbedingungszahl anzuzeigen, die mit einer Konfiguration zusammenhängt, die den aktuell zugeordneten Stellgrößen (MV) und Steuer- und Hilfsgrößen (CV, AV) entspricht.Process control configuration system according to one of Claims 1 until 5 wherein the display routine is adapted to display an indication of a current configuration condition number associated with a configuration corresponding to the currently associated manipulated variables (MV) and control and auxiliary variables (CV, AV). Prozesssteuerungs-Konfigurationssystem nach einem der Ansprüche 1 bis 6, wobei die Anzeigeroutine dazu ausgelegt ist, eine Angabe einer automatischen Konfigurationsbedingungszahl anzuzeigen, die mit einer automatisch generierten Konfiguration zusammenhängt.Process control configuration system according to one of Claims 1 until 6 wherein the display routine is configured to display an indication of an automatic configuration condition number associated with an automatically generated configuration. Prozesssteuerungs-Konfigurationssystem nach einem der vorhergehenden Ansprüche, wobei die Anzeigeroutine dazu ausgelegt ist, eine Angabe einer Prozessmatrix-Konfigurationsbedingungszahl anzuzeigen, die mit einer Konfiguration zusammenhängt, die einer Prozessmatrix entspricht, die alle der mehreren Steuer- und Hilfsgrößen (CV, AV) entlang einer ersten Achse der Prozessmatrix und alle der Stellgrößen (MV) entlang einer zweiten Achse der Prozessmatrix aufweist.Process control configuration system according to one of the preceding claims, wherein the display routine is adapted to display an indication of a process matrix configuration condition number associated with a configuration corresponding to a process matrix that all of the plurality of control and auxiliary variables (CV, AV) along a first axis of the process matrix and all of the manipulated variables (MV) along a second axis of the process matrix. Prozesssteuerungs-Konfigurationssystem nach einem der vorhergehenden Ansprüche, wobei die Anzeigeroutine dazu ausgelegt ist, Angaben von verfügbaren Größen der mehreren Steuer- und Hilfsgrößen (CV, AV) anzuzeigen, wobei die verfügbaren Größen Stellgrößen (MV) zuzuordnen sind.Process control configuration system according to one of the preceding claims, wherein the display routine is designed to display indications of available variables of the plurality of control and auxiliary variables (CV, AV), the available variables being associated with manipulated variables (MV). Prozesssteuerungs-Konfigurationssystem nach einem der vorhergehenden Ansprüche, wobei die Anzeigeroutine dazu ausgelegt ist, Angaben von Antwortsinformationen für jede der verfügbaren Größen anzuzeigen, wobei die Antwortsinformationen Antworten von jeder der verfügbaren Größen auf die eine der Stellgrößen (MV) anzeigen.A process control configuration system as claimed in any preceding claim, wherein the display routine is adapted to display response information indications for each of the available variables, the response information indicating responses from each of the available variables to the one of the manipulated variables (MV). Prozesssteuerungs-Konfigurationssystem nach einem der vorhergehenden Ansprüche, wobei dem die Antwortinformationen für jede der verfügbaren Größen mindestens eine Angabe einer Verstärkung (220), eine Angabe einer Totzeit (224), eine Angabe einer Priorität und eine Angabe einer Zeitkonstante enthält.The process control configuration system of any preceding claim, wherein the response information for each of the available quantities includes at least an indication of a gain (220), an indication of a dead time (224), an indication of a priority, and an indication of a time constant. Prozesssteuerungs-Konfigurationssystem nach Anspruch 11, bei dem die Angabe der Verstärkung (220) eine Zahl umfasst.Process Control Configuration System claim 11 , where the gain indication (220) includes a number. Prozesssteuerungs-Konfigurationssystem nach Anspruch 11 oder 12, bei dem die Angabe der Totzeit (224) eine Zahl umfasst.Process Control Configuration System claim 11 or 12 , where the dead time specification (224) includes a number. Prozesssteuerungs-Konfigurationssystem nach einem der vorhergehenden Ansprüche, wobei die Antwortinformationen für jede der mindestens einigen der Steuer- und Hilfsgrößen (CV, AV) mindestens eine Angabe einer Verstärkung (220), eine Angabe einer Totzeit (224), eine Angabe einer Priorität und eine Angabe einer Zeitkonstante enthält.Process control configuration system according to one of the preceding claims, wherein the response information for each of the at least some of the control and auxiliary variables (CV, AV) at least an indication of a gain (220), an indication of a dead time (224), an indication of a priority and a Specification of a time constant contains. Prozesssteuerungs-Konfigurationssystem nach einem der vorhergehenden Ansprüche, wobei die Antwortinformationen für jede der mindestens einigen der Steuer- und Hilfsgrößen (CV, AV) Informationen enthalten, die mit einer Schrittantwort zusammenhängen.Process control configuration system according to one of the preceding claims, wherein the response information for each of the at least some of the control and auxiliary variables (CV, AV) includes information associated with a step response. Prozesssteuerungs-Konfigurationssystem nach einem der vorhergehenden Ansprüche, wobei die Antwortinformationen für jede der mindestens einigen der Steuer- und Hilfsgrößen (CV, AV) Daten enthalten, die mit einer Pulsantwort zusammenhängen.Process control configuration system according to one of the preceding claims, wherein the response information for each of the at least some of the control and auxiliary variables (CV, AV) includes data associated with a pulse response. Prozesssteuerungs-Konfigurationssystem nach einem der vorhergehenden Ansprüche, wobei die Antwortinformationen für jede der mindestens einigen der Steuer- und Hilfsgrößen (CV, AV) Informationen enthalten, die mit einer Anstiegsantwort zusammenhängen.A process control configuration system as claimed in any preceding claim, wherein the response information for each of the at least some of the control and auxiliary quantities (CV, AV) includes information associated with an increase response. Verfahren zur Verwendung eines Prozesssteuerungssystems zur Steuerung eines Prozesses (50) mit mehreren Stellgrößen (MV) und vielen Steuer- und Hilfsgrößen (CV, AV), die durch Änderungen bei den Stellgrößen beeinflusst werden können, bei dem sich die mehreren der Stellgrößen zahlenmäßig von den vielen Steuer- und Hilfsgrößen unterscheiden, wobei das Verfahren umfasst: eine Teilmenge der vielen Steuer- und Hilfsgrößen auszuwählen, die beim Durchführen der Prozesssteuerung verwendet werden sollen, bei dem das Auswählen der Teilmenge umfasst, eine der Steuer- oder Hilfsgrößen auszuwählen, die am stärksten auf eine der Stellgrößen anspricht; eine Steuermatrix unter Verwendung der ausgewählten Teilmenge der vielen der Steuer- und Hilfsgrößen und der mehreren Stellgrößen herzustellen; einen Controller aus der Steuermatrix mit der ausgewählten Teilmenge der vielen der Steuer- und Hilfsgrößen als Eingaben und den mehreren Stellgrößen als Ausgaben zu generieren; mittels eines Optimierers (48; 54) eine Prozessoptimierung durchzuführen, indem ein Prozessbetriebspunkt ausgewählt wird, um eine Zielfunktion in Abhängigkeit von den mehreren Stellgrößen und den vielen Steuer- und Hilfsgrößen zu minimieren oder zu maximieren, wobei der Prozessbetriebspunkt durch einen Satz von Zielwerten für die ausgewählte Teilmenge der vielen Steuer- und Hilfsgrößen definiert wird; den Satz von Zielwerten einer Mehrfacheingabe-/Mehrfachausgabe-Steuerung während jedem Operationszyklus des Prozesssteuerungssystems (10) bereitstellen; mittels der Mehrfacheingabe-/Mehrfachausgabe-Steuerung ein Mehrfacheingabe-/Mehrfachausgabe-Steuerverfahren unter Verwendung eines Controllers durchzuführen, der aus der Steuermatrix generiert wurde, um einen Satz von Stellgrößenwerten aus den Zielwerten für die ausgewählte Teilmenge der vielen Steuer- und Hilfsgrößen und Messwerte der ausgewählten Teilmenge der vielen Steuer- und Hilfsgrößen zu bilden; und den gebildeten Satz von Stellgrößenwerten zur Steuerung des Prozesses zu verwenden.A method of using a process control system to control a process (50) with multiple manipulated variables (MV) and many control and auxiliary variables (CV, AV) that can be affected by changes in the manipulated variables, in which the multiple of the manipulated variables differ in number from the distinguish between many control and auxiliary variables, whereby the procedure includes: select a subset of the plurality of control and auxiliary variables to be used in performing process control, wherein selecting the subset comprises selecting one of the control or auxiliary variables that is most responsive to one of the manipulated variables; construct a control matrix using the selected subset of the plurality of the control and auxiliary variables and the plurality of manipulated variables; generate a controller from the control matrix with the selected subset of the plurality of the control and auxiliary variables as inputs and the plurality of manipulated variables as outputs; using an optimizer (48; 54) to carry out process optimization by selecting a process operating point in order to minimize or maximize a target function depending on the multiple manipulated variables and the multiple control and auxiliary variables, the process operating point being defined by a set of target values for the selected subset of the many control and auxiliary variables is defined; providing the set of target values to a multiple input/multiple output controller during each cycle of operation of the process control system (10); using the multiple-input/multiple-output control to perform a multiple-input/multiple-output control method using a controller generated from the control matrix to select a set of manipulated variable values from the target values for the selected subset of the many control and auxiliary variables and measured values of the selected ones to form a subset of the many control and auxiliary variables; and to use the formed set of manipulated variable values to control the process. Verfahren nach Anspruch 18, bei dem das Auswählen einer der Steuer- oder Hilfsgrößen (CV, AV) als die am stärksten auf eine der Stellgrößen (MV) ansprechende das Auswählen einer der Steuer- oder Hilfsgrößen basierend zumindest auf einer Kreuzkorrelationsanalyse umfasst.procedure after Claim 18 , wherein selecting one of the control or auxiliary variables (CV, AV) as the most responsive to one of the manipulated variables (MV) comprises selecting one of the control or auxiliary variables based at least on a cross-correlation analysis. Verfahren nach Anspruch 18 oder 19, bei dem das Auswählen einer der Steuer- oder Hilfsgrößen (CV, AV) als die am stärksten auf eine der Stellgrößen (MV) ansprechende das Auswählen einer der Steuer- oder Hilfsgrößen basierend zumindest auf ein heuristisches Verfahren umfasst.procedure after Claim 18 or 19 , wherein selecting one of the control or auxiliary variables (CV, AV) as the most responsive to one of the manipulated variables (MV) comprises selecting one of the control or auxiliary variables based on at least one heuristic method. Verfahren nach einem der Ansprüche 18 bis 20, bei dem das Auswählen einer der Steuer- oder Hilfsgrößen als die am stärksten auf eine der Stellgrößen (MV) ansprechende das Auswählen einer der Steuer- oder Hilfsgrößen (CV, AV) basierend zumindest auf Prioritäten umfasst, die den Steuer- und Hilfsgrößen zugeordnet sind.Procedure according to one of claims 18 until 20 wherein selecting one of the control or auxiliary variables as most responsive to one of the manipulated variables (MV) comprises selecting one of the control or auxiliary variables (CV, AV) based at least on priorities associated with the control and auxiliary variables . Verfahren zur Verwendung eines Prozesssteuerungssystems zum Steuern eines Prozesses (50), der mehrere Stellgrößen (MV) und viele Steuer- und Hilfsgrößen (CV, AV) aufweist, die durch Änderungen bei den Stellgrößen beeinflusst werden können, bei dem sich die mehreren der Stellgrößen zahlenmäßig von den vielen Steuer- und Hilfsgrößen unterscheiden, wobei das Verfahren umfasst: eine Teilmenge der vielen Steuer- und Hilfsgrößen auszuwählen, die beim Durchführen der Prozesssteuerung verwendet werden sollen, bei der eine Anzahl von Steuer- und Hilfsgrößen in der Teilmenge geringer ist als eine Anzahl von Stellgrößen bei den mehreren Stellgrößen; eine Steuermatrix unter Verwendung der ausgewählten Teilmenge der vielen der Steuer- und Hilfsgrößen und der mehreren Stellgrößen herzustellen; einen Controller aus der Steuermatrix mit der ausgewählten Teilmenge der vielen der Steuer- und Hilfsgrößen als Eingaben und den mehreren Stellgrößen als Ausgaben zu generieren; mittels eines Optimierers (48) eine Prozessoptimierung durchzuführen, indem ein Prozessbetriebspunkt ausgewählt wird, um eine Zielfunktion in Abhängigkeit von den mehreren Stellgrößen und den vielen Steuer- und Hilfsgrößen zu minimieren oder zu maximieren, wobei der Prozessbetriebspunkt durch einen Satz von Zielwerten für die ausgewählte Teilmenge der vielen Steuer- und Hilfsgrößen definiert wird; den Satz von Zielwerten einer Mehrfacheingabe-/Mehrfachausgabe-Steuerung während jedem Operationszyklus des Prozesssteuerungssystems (10) bereitstellen; mittels der Mehrfacheingabe-/Mehrfachausgabe-Steuerung ein Mehrfacheingabe-/Mehrfachausgabe-Steuerverfahren unter Verwendung eines Controllers durchzuführen, der aus der Steuermatrix generiert wurde, um einen Satz von Stellgrößenwerten aus den Zielwerten für die ausgewählte Teilmenge der vielen Steuer- und Hilfsgrößen und Messwerte der ausgewählten Teilmenge der vielen Steuer- und Hilfsgrößen auszubilden; und den ausgebildeten Satz von Stellgrößenwerten zur Steuerung des Prozesses zu verwenden.A method of using a process control system to control a process (50) having multiple manipulated variables (MV) and many control and auxiliary variables (CV, AV) that can be affected by changes in the manipulated variables, where the plurality of manipulated variables are numerically from the many control and auxiliary variables, whereby the procedure includes: select a subset of the plurality of control and auxiliary variables to be used in performing the process control in which a number of control and auxiliary variables in the subset is less than a number of manipulated variables in the plurality of manipulated variables; construct a control matrix using the selected subset of the plurality of the control and auxiliary variables and the plurality of manipulated variables; generate a controller from the control matrix with the selected subset of the plurality of the control and auxiliary variables as inputs and the plurality of manipulated variables as outputs; using an optimizer (48) to carry out process optimization by selecting a process operating point in order to minimize or maximize a target function depending on the multiple manipulated variables and the many control and auxiliary variables, the process operating point being determined by a set of target values for the selected subset of the many control and auxiliary variables is defined; providing the set of target values to a multiple input/multiple output controller during each cycle of operation of the process control system (10); using the multiple-input/multiple-output control to perform a multiple-input/multiple-output control method using a controller generated from the control matrix to select a set of manipulated variable values from the target values for the selected subset of the many control and auxiliary variables and measured values of the selected ones form a subset of the many control and auxiliary variables; and use the trained set of manipulated variable values to control the process. Prozesssteuerungselement, das dazu ausgelegt ist, als Teil eines auf einem Prozessor implementierten Prozesssteuerungsprogramms verwendet zu werden, um mehrere Steuer- und Hilfsparameter (CV, AV) eines Prozesses (50) unter Verwendung von vielen Stellparametern (MV) zu steuern, wobei das Prozesssteuerungselement umfasst: ein computerlesbares Medium; einen Funktionsblock, der auf dem computerlesbaren Medium gespeichert und dazu ausgelegt ist, auf dem Prozessor abzulaufen, um während jeder Steuerabtastperiode eine Mehrfacheingabe-/Mehrfachausgabesteuerung des Prozesses zu bewerkstelligen, wobei der Funktionsblock umfasst: eine Zielfunktion, die ein Optimierungskriterium basierend auf den mehreren Steuer- und Hilfsparametern definiert, bei dem die Zielfunktion ein Optimierungskriterium basierend auf einer ersten Anzahl von Steuer- und Hilfsparametern definiert; ein Optimierungsprogramm, das die Zielfunktion verwendet, um während jeder Steuerabtastperiode einen Satz von optimalen Zielwerten für die Steuer- und Hilfsparameter herzustellen, bei dem das Optimierungsprogramm eine lineare oder quadratische Programmierroutine enthält und worin das Optimierungsprogramm den Satz von optimalen Zielwerten an ein Mehrfacheingabe-/Mehrfachausgabe-Steuerprogramm während jedem Operationszyklus bereitstellt; eine Steuermatrix, die eine vorbestimmte Teilmenge der mehreren der Steuer- und Hilfsparameter zu den vielen Stellparametern in Beziehung setzt, bei dem eine Anzahl von Steuer- und Hilfsparametern bei der vorbestimmten Teilmenge gleich der ersten Zahl ist, bei dem eine Anzahl von Stellparametern bei den vielen Stellparametern gleich der ersten Zahl ist; und das Mehrfacheingabe-/Mehrfachausgabe-Steuerprogramm, das während jeder Steuerabtastperiode ein Steuersignal für jeden der vielen Stellparameter unter Verwendung der Steuermatrix und der Zielwerte für die Teilmenge der mehreren Steuer- und Hilfsgrößen erzeugt, bei dem die Steuersignale dazu bestimmt sind, die Teilmenge der mehreren der Steuer- und Hilfsparameter auf die für die Teilmenge von Steuer- und Hilfsparametern optimalen Zielwerte zu fahren, bei dem das Mehrfacheingabe-/Mehrfachausgabe-Steuerprogramm ein Modellvorhersagesteuerprogramm umfasst.A process control element configured to be used as part of a process control program implemented on a processor to control multiple control and auxiliary parameters (CV, AV) of a process (50) using multiple manipulated parameters (MV), the process control element comprising : a computer-readable medium; a function block stored on the computer readable medium and adapted to run on the processor to effectuate multiple input/multiple output control of the process during each control sampling period, the functional block comprising: an objective function defining an optimization criterion based on the plurality of control and auxiliary parameters, wherein the objective function defines an optimization criterion based on a first number of control and auxiliary parameters; an optimizer that uses the objective function to produce a set of optimal target values for the control and auxiliary parameters during each control sample period, wherein the optimizer includes a linear or quadratic programming routine, and wherein the optimizer applies the set of optimal target values to a multiple input/multiple output - provides control program during each operation cycle; a control matrix relating a predetermined subset of the plurality of control and auxiliary parameters to the plurality of adjustment parameters, in which a number of control and auxiliary parameters in the predetermined subset is equal to the first number, in which a number of adjustment parameters in the plurality setting parameters is equal to the first number; and the multiple-input, multiple-output control program that generates, during each control sample period, a control signal for each of the plurality of manipulated parameters using the control matrix and the target values for the subset of the plurality of controls and auxiliary quantities, wherein the control signals are designed to control the subset of the plurality of the drive control and auxiliary parameters to the optimal target values for the subset of control and auxiliary parameters, wherein the multiple-input/multiple-output handler comprises a model prediction handler. Verfahren zur Durchführung der Steuerung eines Prozesses (50) mit einer ersten Anzahl von Steuer- und Hilfsgrößen (CV, AV), die von einer zweiten Anzahl von Stellgrößen (MV) gesteuert werden, wobei das Verfahren Folgendes umfasst: eine Schrittantwortmatrix zu bestimmen, die eine Antwort jeder der Steuer- und Hilfsgrößen auf Veränderungen bei jeder der Stellgrößen definiert; eine Teilmenge der Steuer- und Hilfsgrößen auszuwählen, wobei die Teilmenge dieselbe wie oder eine geringere Anzahl von Steuer- und Hilfsgrößen aufweist als die Stellgrößen, bei dem das Auswählen der Teilmenge das Auswählen einer der am stärksten auf eine der Stellgrößen ansprechenden Steuer- oder Hilfsgrößen umfasst; eine quadratische Steuermatrix aus dem Antworten innerhalb der Antwortmatrix für die ausgewählte Teilmenge der Steuer- und Hilfsgrößen und der Stellgrößen herzustellen; und während jeder Abtastung des Prozesses einen Messwert von jeder der ausgewählten Teilmenge der Steuer- und Hilfsgrößen zu erhalten; mittels eines Optimierers (48; 54) einen optimalen Betriebszielwert für jede der ausgewählten Teilmenge der Steuer- und Hilfsgrößen zu berechnen; den Betriebszielwert für jede der ausgewählten Teilmenge der Steuer- und Hilfsgrößen vom Optimierer an eine Mehrfacheingabe-/Mehrfachausgabe-Steuerung während jedem Operationszyklus des Prozesssteuerungssystems bereitstellen; mittels der Mehrfacheingabe-/Mehrfachausgabe-Steuerung ein Mehrfacheingabe-/Mehrfachausgabe-Steuerprogramm ablaufen zu lassen, das die Zielwerte für jede der ausgewählten Teilmenge der Steuer- und Hilfsgrößen, die Messwerte der ausgewählten Teilmenge der Steuer- und Hilfsgrößen und die Steuermatrix verwendet, um einen Satz von Stellparametersignalen zu erzeugen; und die Stellparametersignale zur Steuerung des Prozesses zu verwenden.A method of performing control of a process (50) having a first number of control and auxiliary variables (CV, AV) controlled by a second number of manipulated variables (MV), the method comprising: determining a step response matrix that defines a response of each of the control and auxiliary variables to changes in each of the manipulated variables; select a subset of the control and auxiliary variables, the subset having the same or fewer number of control and auxiliary variables than the manipulated variables, wherein selecting the subset comprises selecting one of the control or auxiliary variables most responsive to one of the manipulated variables ; construct a square control matrix from the responses within the response matrix for the selected subset of the control and auxiliary variables and the manipulated variables; and during each scan of the process, obtain a measurement of each of the selected subset of the control and auxiliary variables; calculate, by means of an optimizer (48; 54), an optimal operating target value for each of the selected subset of the control and auxiliary variables; providing the operational target value for each of the selected subset of the control and auxiliary quantities from the optimizer to a multiple input/multiple output controller during each cycle of operation of the process control system; to run, by means of the multiple input/multiple output controller, a multiple input/multiple output control program that uses the target values for each of the selected subset of the control and auxiliary variables, the measured values of the selected subset of the control and auxiliary variables, and the control matrix to produce a generate set of setting parameter signals; and use the manipulated variable signals to control the process. Verfahren nach Anspruch 24, bei dem das Auswählen einer der am stärksten auf eine der Stellgrößen (MV) ansprechenden Steuer- oder Hilfsgrößen (CV, AV) das Auswählen einer der Steuer- oder Hilfsgrößen basierend zumindest auf einer Kreuzkorrelationsanalyse umfasst.procedure after Claim 24 , wherein selecting one of the control or auxiliary variables (CV, AV) most responsive to one of the manipulated variables (MV) comprises selecting one of the control or auxiliary variables based at least on a cross-correlation analysis. Verfahren nach Anspruch 24 oder 25, bei dem das Auswählen einer der am stärksten auf eine der Stellgrößen (MV) ansprechenden Steuer- oder Hilfsgrößen (CV, AV) das Auswählen einer der Steuer- oder Hilfsgrößen basierend zumindest auf einem heuristischen Verfahren umfasst.procedure after Claim 24 or 25 , wherein selecting one of the control or auxiliary variables (CV, AV) most responsive to one of the manipulated variables (MV) comprises selecting one of the control or auxiliary variables based at least on a heuristic method. Verfahren nach einem der Ansprüche 24 bis 26, bei dem das Auswählen einer der am stärksten auf eine der Stellgrößen (MV) ansprechenden Steuer- oder Hilfsgrößen (CV, AV) das Auswählen einer der Steuer- oder Hilfsgrößen basierend zumindest auf Prioritäten umfasst, die den Steuer- und Hilfsgrößen zugeordnet sind.Procedure according to one of claims 24 until 26 wherein selecting one of the control or auxiliary variables (CV, AV) most responsive to one of the manipulated variables (MV) comprises selecting one of the control or auxiliary variables based at least on priorities associated with the control and auxiliary variables.
DE10362369.8A 2002-09-11 2003-09-10 Integrated model predictive control and optimization within a process control system Expired - Lifetime DE10362369B3 (en)

Applications Claiming Priority (6)

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/241350 2002-09-11
US10/310416 2002-12-05
US10/310,416 US7330767B2 (en) 2002-09-11 2002-12-05 Configuration and viewing display for an integrated model predictive control and optimizer function block
US10/627362 2003-07-25
US10/627,362 US7050863B2 (en) 2002-09-11 2003-07-25 Integrated model predictive control and optimization within a process control system

Publications (1)

Publication Number Publication Date
DE10362369B3 true DE10362369B3 (en) 2022-09-29

Family

ID=29255267

Family Applications (2)

Application Number Title Priority Date Filing Date
DE10362369.8A Expired - Lifetime DE10362369B3 (en) 2002-09-11 2003-09-10 Integrated model predictive control and optimization within a process control system
DE10341764.8A Expired - Lifetime DE10341764B4 (en) 2002-09-11 2003-09-10 Integrated model prediction control and optimization within a process control system

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE10341764.8A Expired - Lifetime DE10341764B4 (en) 2002-09-11 2003-09-10 Integrated model prediction control and optimization within a process control system

Country Status (4)

Country Link
CN (1) CN1514318B (en)
DE (2) DE10362369B3 (en)
GB (4) GB2432683B (en)
HK (3) HK1063223A1 (en)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10341762B4 (en) * 2002-09-11 2014-05-15 Fisher-Rosemount Systems, Inc. Managing the realizability of constraints and limitations in an optimizer for process control systems
US7376472B2 (en) 2002-09-11 2008-05-20 Fisher-Rosemount Systems, Inc. Integrated model predictive control and optimization within a process control system
US9201420B2 (en) 2005-04-08 2015-12-01 Rosemount, Inc. Method and apparatus for performing a function in a process plant using monitoring data with criticality evaluation data
US8005647B2 (en) 2005-04-08 2011-08-23 Rosemount, Inc. Method and apparatus for monitoring and performing corrective measures in a process plant using monitoring data with corrective measures data
DE102005025282A1 (en) * 2005-06-02 2006-12-07 Bayer Materialscience Ag Data processing system and method for controlling a plant
US7451004B2 (en) 2005-09-30 2008-11-11 Fisher-Rosemount Systems, Inc. On-line adaptive model predictive control in a process control system
GB2446343B (en) * 2005-12-05 2011-06-08 Fisher Rosemount Systems Inc Multi-objective predictive process optimization with concurrent process simulation
US8271103B2 (en) 2007-05-02 2012-09-18 Mks Instruments, Inc. Automated model building and model updating
US8301676B2 (en) 2007-08-23 2012-10-30 Fisher-Rosemount Systems, Inc. Field device with capability of calculating digital filter coefficients
US7702401B2 (en) 2007-09-05 2010-04-20 Fisher-Rosemount Systems, Inc. System for preserving and displaying process control data associated with an abnormal situation
US8065251B2 (en) * 2007-09-28 2011-11-22 Fisher-Rosemount Systems, Inc. Dynamic management of a process model repository for a process control system
US8055479B2 (en) 2007-10-10 2011-11-08 Fisher-Rosemount Systems, Inc. Simplified algorithm for abnormal situation prevention in load following applications including plugged line diagnostics in a dynamic process
US8494798B2 (en) 2008-09-02 2013-07-23 Mks Instruments, Inc. Automated model building and batch model building for a manufacturing process, process monitoring, and fault detection
US8155932B2 (en) 2009-01-08 2012-04-10 Jonas Berggren Method and apparatus for creating a generalized response model for a sheet forming machine
US8209048B2 (en) 2009-01-12 2012-06-26 Abb Automation Gmbh Method and apparatus for creating a comprehensive response model for a sheet forming machine
US9069345B2 (en) * 2009-01-23 2015-06-30 Mks Instruments, Inc. Controlling a manufacturing process with a multivariate model
GB2479315B (en) * 2009-02-02 2014-12-10 Fisher Rosemount Systems Inc Model predictive controller with tunable integral component to compensate for model mismatch
US20100198364A1 (en) * 2009-02-05 2010-08-05 Shih-Chin Chen Configurable Multivariable Control System
US8756039B2 (en) * 2010-03-02 2014-06-17 Fisher-Rosemount Systems, Inc. Rapid process model identification and generation
US8855804B2 (en) 2010-11-16 2014-10-07 Mks Instruments, Inc. Controlling a discrete-type manufacturing process with a multivariate model
US9429939B2 (en) 2012-04-06 2016-08-30 Mks Instruments, Inc. Multivariate monitoring of a batch manufacturing process
US9541471B2 (en) 2012-04-06 2017-01-10 Mks Instruments, Inc. Multivariate prediction of a batch manufacturing process
CN102622528B (en) * 2012-04-16 2015-02-18 广东双利电缆有限公司 Method and system for automatic generation of formula parameters required by manufacture of aluminum alloy rods
EP2881822A1 (en) * 2013-12-05 2015-06-10 Bayer Technology Services GmbH Computer-implemented method and system for automatic monitoring and status detection of entire process stages in a process unit
EP2884354A1 (en) * 2013-12-12 2015-06-17 Honeywell spol s.r.o. Model-based predictive controller with steady-state model adaptation
CN109976144B (en) * 2014-03-20 2022-10-18 费希尔-罗斯蒙特系统公司 Reducing controller updates in a control loop
CN104765339B (en) * 2015-02-10 2017-05-10 浙江大学 FCC dynamic control method based on control variable priority
US10969135B2 (en) * 2017-07-27 2021-04-06 Johnson Controls Technology Company Central plant control system with computation reduction based on sensitivity analysis
US20190286988A1 (en) * 2018-03-15 2019-09-19 Ants Technology (Hk) Limited Feature-based selective control of a neural network
CN108427284A (en) * 2018-04-09 2018-08-21 中国石油大学(华东) A kind of cascaded structure multi-agent system coordinative coherence control method
WO2020188330A1 (en) * 2019-03-15 2020-09-24 3M Innovative Properties Company Operating a supply chain using causal models
JP7358257B2 (en) * 2020-01-28 2023-10-10 住友重機械工業株式会社 Control program generation device, control program generation method, roll-to-roll conveyance system
CN113325696B (en) * 2021-06-01 2022-07-19 吉林大学 Single neuron PID and model prediction combined hybrid control method applied to crosslinked cable production equipment
CN113485109B (en) * 2021-07-12 2022-07-12 山东大学 Converter dynamic cascade control method and system based on variable priority
US20240085861A1 (en) * 2022-09-14 2024-03-14 Rockwell Automation Technologies, Inc. Programmable automation controller based optimization

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4349869A (en) 1979-10-01 1982-09-14 Shell Oil Company Dynamic matrix control method
US4616308A (en) 1983-11-15 1986-10-07 Shell Oil Company Dynamic process control
US4736316A (en) 1986-08-06 1988-04-05 Chevron Research Company Minimum time, optimizing and stabilizing multivariable control method and system using a constraint associated control code
US5457625A (en) 1994-04-13 1995-10-10 The M. W. Kellogg Company Maximizing process production rates using permanent constraints
US5612866A (en) 1994-06-24 1997-03-18 Integrated Systems, Inc. Code generation system to construct an asynchronous real-time controller for a real-time system
US5930762A (en) 1996-09-24 1999-07-27 Rco Software Limited Computer aided risk management in multiple-parameter physical systems
US6049738A (en) 1996-03-13 2000-04-11 Hitachi, Ltd. Control model modeling support system and a method therefor
DE10048360A1 (en) 1999-10-04 2001-05-10 Fisher Rosemount Systems Inc Integrated, advanced control blocks in process control systems
DE10127788A1 (en) 2000-06-14 2002-01-24 Fisher Rosemount Systems Inc Integrated optimal model prediction control in a process control system
US20020107821A1 (en) 2000-11-16 2002-08-08 Lockheed Martin Corporation Method and system for multi-parameter choice optimization

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5574638A (en) * 1995-04-03 1996-11-12 Lu; Zhuxin J. Method of optimal scaling of variables in a multivariable predictive controller utilizing range control
US5682309A (en) 1995-04-28 1997-10-28 Exxon Chemical Patents Inc. Feedback method for controlling non-linear processes
US5758047A (en) * 1995-06-14 1998-05-26 Lu; Zhuxin Joseph Method of process controller optimization in a multivariable predictive controller
CN1099060C (en) * 1999-04-14 2003-01-15 袁璞 Universal multi-variable quantity model pre-estimating coordinating control method
US6330483B1 (en) * 1999-05-07 2001-12-11 The Boeing Company Optimal control system
US6445936B1 (en) * 1999-11-16 2002-09-03 Agere Systems Guardian Corp. Low power consumption quick charge for wireless device
MXPA02012834A (en) * 2000-06-30 2003-05-15 Dow Chemical Co Multi-variable matrix process control.

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4349869A (en) 1979-10-01 1982-09-14 Shell Oil Company Dynamic matrix control method
US4616308A (en) 1983-11-15 1986-10-07 Shell Oil Company Dynamic process control
US4736316A (en) 1986-08-06 1988-04-05 Chevron Research Company Minimum time, optimizing and stabilizing multivariable control method and system using a constraint associated control code
US5457625A (en) 1994-04-13 1995-10-10 The M. W. Kellogg Company Maximizing process production rates using permanent constraints
US5612866A (en) 1994-06-24 1997-03-18 Integrated Systems, Inc. Code generation system to construct an asynchronous real-time controller for a real-time system
US6049738A (en) 1996-03-13 2000-04-11 Hitachi, Ltd. Control model modeling support system and a method therefor
US5930762A (en) 1996-09-24 1999-07-27 Rco Software Limited Computer aided risk management in multiple-parameter physical systems
DE10048360A1 (en) 1999-10-04 2001-05-10 Fisher Rosemount Systems Inc Integrated, advanced control blocks in process control systems
US6445963B1 (en) 1999-10-04 2002-09-03 Fisher Rosemount Systems, Inc. Integrated advanced control blocks in process control systems
DE10127788A1 (en) 2000-06-14 2002-01-24 Fisher Rosemount Systems Inc Integrated optimal model prediction control in a process control system
US20020107821A1 (en) 2000-11-16 2002-08-08 Lockheed Martin Corporation Method and system for multi-parameter choice optimization

Also Published As

Publication number Publication date
GB2394312B (en) 2007-10-03
DE10341764B4 (en) 2019-01-10
GB2432683A (en) 2007-05-30
GB2394312A (en) 2004-04-21
GB2432682A (en) 2007-05-30
GB2432682B (en) 2007-10-10
HK1102842A1 (en) 2007-12-07
GB2429539B (en) 2007-06-06
GB0321249D0 (en) 2003-10-08
DE10341764A1 (en) 2004-07-15
HK1063223A1 (en) 2004-12-17
CN1514318B (en) 2010-04-28
GB2432683B (en) 2007-10-10
GB0609616D0 (en) 2006-06-21
HK1102841A1 (en) 2007-12-07
CN1514318A (en) 2004-07-21
GB0702678D0 (en) 2007-03-21
GB2429539A (en) 2007-02-28
GB0702680D0 (en) 2007-03-21

Similar Documents

Publication Publication Date Title
DE10362369B3 (en) Integrated model predictive control and optimization within a process control system
DE10362408B3 (en) Integrated model-based predicative control and optimization within a process control system
DE102004026979B4 (en) Multiple input / multiple output control blocks with non-linear prediction capabilities
DE10341574A1 (en) Configuration and viewing display for an integrated predictive model control and optimization function block
DE69909838T2 (en) CONTROL UNITS FOR SETTING OPTIMAL PARAMETERS IN PROCESS CONTROL SYSTEMS AND METHODS FOR APPLYING THE SAME
DE102006045429B4 (en) Adaptive, Model Predictive Online control in a process control system
DE60019349T2 (en) Multivariable process trend display and coordinated process
DE102006046870B4 (en) Process model identification in a process control system
DE602005002839T2 (en) PROCESSING OF INDUSTRIAL PRODUCTION PROCESSES
DE102007017039B4 (en) Robust process model identification with model-based control techniques
DE602004007069T2 (en) Model-based predictive control
DE60007750T2 (en) GENERAL GRAPHICAL DISPLAY DEVICE FOR PROCESS VARIABLES AND METHODS FOR SAME
EP2108139B1 (en) Method for the computer-aided control and/or regulation of a technical system, particularly a gas turbine
DE102007063915B4 (en) Process control and optimization technology using immunological concepts
DE10012258B4 (en) Self-tuning in a distributed process control environment
DE60316517T2 (en) Method and device for recording interference signals
EP2112568B1 (en) Method for computer-supported control and/or regulation of a technical system
DE10341762B4 (en) Managing the realizability of constraints and limitations in an optimizer for process control systems
DE102016010068A1 (en) Numerical control with menu
DE60111374T2 (en) Advanced Recipe - Knowledge-based information system for manufacturing processes
DE102011012710A1 (en) Fast identification and generation of process models
EP2553535B1 (en) Engineering tool and method for parameterizing a model-based predictive controller
EP1546823B1 (en) Method for the computer-supported generation of prognoses for operative systems and system for the generation of prognoses for operative systems
DE102004025876B4 (en) Apparatus and method for batch property estimation
DE102007050434A1 (en) A method and arrangement for computer-assisted determination of at least one property of a hair colorant based on a formulation of chemically reactive and / or unreactive raw materials, method and apparatus for computer-assisted determination of a hair colorant formulation based on chemically reactive and / or unreactive raw materials, and method and arrangement for computer aided Train a predetermined model to computer-aided determine at least one property of a hair coloring based on a formulation of chemically reactive and / or unreactive raw materials

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R129 Divisional application from

Ref document number: 10341764

Country of ref document: DE

R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R071 Expiry of right