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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B13/00—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
- G05B13/02—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
- G05B13/04—Adaptive 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/042—Adaptive 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
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B11/00—Automatic controllers
- G05B11/01—Automatic controllers electric
- G05B11/32—Automatic controllers electric with inputs from more than one sensing element; with outputs to more than one correcting element
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B13/00—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
- G05B13/02—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
- G05B13/0205—Adaptive 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/024—Adaptive 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
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B13/00—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
- G05B13/02—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
- G05B13/04—Adaptive 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/041—Adaptive 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
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B13/00—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
- G05B13/02—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
- G05B13/04—Adaptive 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/048—Adaptive 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
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.
Die
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
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 inder 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.
-
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 of1 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 FIG2 to define and install; -
4 is a flow chart showing the operation of the integrated optimizer and MPC controller of2 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 of5 indicates; -
7 is a screen display of a configuration program that shows a way to get input into or output from a display of5 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 of9 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
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
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
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
Wie durch den erweiterten Block 30 von
Wie in
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
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
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
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
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
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
In einer Ausführungsform kann der LP-Optimierer 54 so ausgelegt sein, dass er eine Zielfunktion der folgenden Form minimiert:
- 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
- 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
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:
Der Vektor ΔMV(t+c) stellt die Summe der Veränderungen über den Steuerhorizont dar, die durch jede Controllerausgabe mvi erfolgt ist, so dass
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):
In diesem Fall kann die Zielfunktion zur Maximierung des Produktwerts und Minimierung der Rohmaterialkosten gemeinsam definiert werden als:
- 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.
- 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:
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
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:
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.
- 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.
- 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:
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
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
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
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
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
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
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
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:
- 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
- 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:
- Δ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.
- Δ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
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:
- Δ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.
- Δ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
Die
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
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
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
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
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
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
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 (
Um einen Satz von Schrittantworten herzustellen, kann der Bediener auf der Bildschirmanzeige von
Wieder mit Bezug auf
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
Auf diese Weise kann bei einem in
Wie in
Die mit Bezug auf die
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
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.
- - 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
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
Wie klar wird, ermöglichen es die Bildschirmanzeigen der
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
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
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
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
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
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
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
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
Nun sind mit Bezug auf
Als Nächstes verarbeitet oder filtert bei einem Block 152 der Eingabeverarbeitungs-/Filterblock 58 (
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
Als Nächstes verwendet bei einem Block 156 der Zielumsetzungsblock 55 (
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
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
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
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.
- eine Konfigurationsroutine, die auf dem computerlesbaren Medium gespeichert und dazu ausgelegt ist, auf einem Prozessor abzulaufen, wobei die Konfigurationsroutine Folgendes enthält:
- 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.
- a configuration routine stored on the computer-readable medium and adapted to run on a processor, the configuration routine including:
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
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
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
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
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
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
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
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
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
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
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
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 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
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
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.
- 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
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
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
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.
- 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 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 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.
- 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
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
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
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)
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)
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)
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)
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. |
-
2003
- 2003-09-10 DE DE10362369.8A patent/DE10362369B3/en not_active Expired - Lifetime
- 2003-09-10 DE DE10341764.8A patent/DE10341764B4/en not_active Expired - Lifetime
- 2003-09-11 GB GB0702680A patent/GB2432683B/en not_active Expired - Lifetime
- 2003-09-11 GB GB0609616A patent/GB2429539B/en not_active Expired - Lifetime
- 2003-09-11 CN CN03164972.6A patent/CN1514318B/en not_active Expired - Lifetime
- 2003-09-11 GB GB0321249A patent/GB2394312B/en not_active Expired - Lifetime
- 2003-09-11 GB GB0702678A patent/GB2432682B/en not_active Expired - Lifetime
-
2004
- 2004-08-09 HK HK04105928A patent/HK1063223A1/en not_active IP Right Cessation
-
2007
- 2007-09-05 HK HK07109646A patent/HK1102841A1/en not_active IP Right Cessation
- 2007-09-17 HK HK07110110A patent/HK1102842A1/en not_active IP Right Cessation
Patent Citations (11)
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 |