Movatterモバイル変換


[0]ホーム

URL:


DE10341762B4 - Managing the realizability of constraints and limitations in an optimizer for process control systems - Google Patents

Managing the realizability of constraints and limitations in an optimizer for process control systems
Download PDF

Info

Publication number
DE10341762B4
DE10341762B4DE10341762.1ADE10341762ADE10341762B4DE 10341762 B4DE10341762 B4DE 10341762B4DE 10341762 ADE10341762 ADE 10341762ADE 10341762 B4DE10341762 B4DE 10341762B4
Authority
DE
Germany
Prior art keywords
variables
variable
penalty
objective function
control
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE10341762.1A
Other languages
German (de)
Other versions
DE10341762A1 (en
Inventor
Wilhelm K. Wojsznis
Terrence L. Blevins
Mark Nixon
Peter Wojsznis
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fisher Rosemount Systems Inc
Original Assignee
Fisher Rosemount Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US10/241,350external-prioritypatent/US7376472B2/en
Application filed by Fisher Rosemount Systems IncfiledCriticalFisher Rosemount Systems Inc
Publication of DE10341762A1publicationCriticalpatent/DE10341762A1/en
Application grantedgrantedCritical
Publication of DE10341762B4publicationCriticalpatent/DE10341762B4/en
Anticipated expirationlegal-statusCritical
Expired - Lifetimelegal-statusCriticalCurrent

Links

Images

Classifications

Landscapes

Abstract

Translated fromGerman

Verfahren zum Steuern eines Prozesses, enthaltend: das Ausführen eines Optimierers (54), der eine Zielfunktion (64) verwendet, um eine einen Satz von Zielwerten definierende Lösung zu entwickeln; das Bestimmen, ob die Lösung hinsichtlich eines Satzes von Prozessvariablen-Beschränkungen realisierbar ist; falls die Lösung nicht realisierbar ist; (1) das Neudefinieren der Prozessvariablen-Beschränkungen für mindestens eine Prozessvariable, um eine neue obere und untere Prozessvariablen-Beschränkungsgrenze für die eine Prozessvariable zu definieren; (2) das Entwickeln einer neuen Zielfunktion (64) durch Addieren einer Strafvariablen zur Zielfunktion (64) für die eine Prozessvariable, wobei die Strafvariable auf dem Betrag beruht, um welchen die eine Prozessvariable von einer der neuen Prozessvariablen-Beschränkungsgrenzen für die eine Prozessvariable abweicht; und (3) das erneute Ausführen des Optimierers (54) mit der neuen Zielfunktion (64), um eine neue Lösung zu entwickeln, welche einen neuen Satz von Zielwerten mit den neuen Prozessvariablen-Beschränkungsgrenzen für die eine Prozessvariable definiert; das Liefern der Zielwerte oder der neuen Zielwerte an eine Steuereinrichtung (52); und das Ausführen der Steuereinrichtung (52) unter Verwendung der Zielwerte oder der neuen Zielwerte, um einen Satz von Steuersignalen zum Steuern des Prozesses zu entwickeln.A method of controlling a process comprising: executing an optimizer (54) using an objective function (64) to develop a solution defining a set of objective values; determining whether the solution to a set of process variable constraints is feasible; if the solution is not feasible; (1) redefining the process variable constraints for at least one process variable to define new upper and lower process variable constraints for the one process variable; (2) developing a new objective function (64) by adding a penalty variable to the objective function (64) for the one process variable, the penalty variable being based on the amount by which the one process variable deviates from one of the new process variable restriction limits for the one process variable ; and (3) re-running the optimizer (54) on the new objective function (64) to develop a new solution that defines a new set of objective values with the new process variable constraint limits for the one process variable; supplying the target values or the new target values to a control device (52); and executing the controller (52) using the target values or the new target values to develop a set of control signals for controlling the process.

Description

Translated fromGerman

Diese Anmeldung ist eine Teilfortführungsanmeldung der U. S.-Patentanmeldung mit der Seriennummer 10/241,350 und dem Titel ”Integrated Model Predictive Control and Optimization Within a Process Control System”, die am 11. September 2002 eingereicht wurde und deren Offenbarung ausdrücklich durch Bezugnahme hierin eingeschlossen wird.This application is a continuation-in-part of U.S. Patent Application Serial No. 10 / 241,350 entitled "Integrated Model Predictive Control and Optimization Within a Process Control System" filed Sep. 11, 2002, the disclosure of which is expressly incorporated herein by reference.

Dieses Patent betrifft allgemein Prozesssteuerungssysteme und insbesondere die Handhabung der Realisierbarkeit von Beschränkungen und Grenzen in einem Optimierer für Prozesssteuerungssysteme bei Verwendung beispielsweise mit einer Modellvorhersage-Steuereinrichtung zum Steuern einer Prozessanlage.This patent relates generally to process control systems, and more particularly to managing the realizability of constraints and limits in an optimiser for process control systems when used with, for example, a model prediction controller for controlling a process plant.

Prozesssteuerungssysteme, beispielsweise verteilte oder skalierbare Prozesssteuerungssysteme wie die in chemischen, petrochemischen oder anderen Prozessen verwendeten, enthalten üblicherweise eine oder mehrere Prozesssteuereinrichtungen, welche über analoge, digitale oder kombinierte analoge/digitale Busse kommunikativ miteinander, mit mindestens einer Host- oder Bediener-Workstation und mit einer oder mehreren Anlageneinrichtungen gekoppelt sind. Die Anlageneinrichtungen, welche zum Beispiel Ventile, Ventilstellmechanismen, Schalter und Geber (z. B. Temperatur-, Druck- und Durchflusssensoren) sein können, führen im Prozess Funktionen wie das Öffnen oder Schließen von Ventilen und das Messen von Prozessparametern durch. Die Prozesssteuereinrichtung empfängt Signale, welche von den Anlageneinrichtungen vorgenommene Prozessmessungen melden, und/oder andere die Anlageneinrichtungen betreffende Informationen, verwendet diese Informationen, um eine Steuerroutine zu implementieren, und erzeugt dann Steuersignale, welche über die Busse an die Anlageneinrichtungen gesendet werden, um den Betrieb des Prozesses zu steuern. Informationen von den Anlageneinrichtungen und der Steuereinrichtung werden üblicherweise einer oder mehreren von der Bediener-Workstation ausgeführten Anwendungen verfügbar gemacht, um einen Bediener in die Lage zu versetzen, eine gewünschte Funktion bezüglich des Prozesses, beispielsweise das Anzeigen des aktuellen Zustands des Prozesses, das Verändern des Betriebsablaufs des Prozesses usw., durchzuführen.Process control systems, such as distributed or scalable process control systems such as those used in chemical, petrochemical, or other processes, typically include one or more process controllers communicatively communicating with each other via analog, digital, or combined analog / digital buses, with at least one host or operator workstation one or more equipment installations are coupled. The plant equipment, which may be, for example, valves, valve timing mechanisms, switches and encoders (eg, temperature, pressure and flow sensors) perform functions such as opening or closing valves and measuring process parameters in the process. The process controller receives signals indicating process measurements made by the equipment and / or other information concerning the equipment, uses this information to implement a control routine, and then generates control signals sent to the equipment via the buses for operation to control the process. Information from the plant devices and the controller is typically made available to one or more applications run by the operator workstation to enable an operator to perform a desired function related to the process, such as displaying the current state of the process, changing the process Operation of the process, etc., perform.

Prozesssteuereinrichtungen werden üblicherweise dafür programmiert, verschiedene Algorithmen, Unterroutinen oder Regelschleifen (welche allesamt Steuerroutinen sind) für jede aus einer Anzahl von verschiedenen, für einen Prozess definierten oder in einem Prozess enthaltenen Schleifen, beispielsweise Durchfluss-Regelschleifen, Temperatur-Regelschleifen, Druck-Regelschleifen usw., auszuführen. Allgemein enthält jede solche Regelschleife einen oder mehrere Eingangsblöcke wie einen Analogeingangs-(AI-)Funktionsblock, einen Einzelausgangs-Steuerblock wie einen Proportional-Integrier-Differenzier-(PID-) oder einen Fuzzy-Logic-Regelungs-Funktionsblock, und einen Einzelausgangs-Block wie einen Analogausgangs-(AO-)Funktionsblock. Diese Regelschleifen führen üblicherweise eine Einzeleingangs-/Einzelausgangs-Steuerung durch, weil der Steuerblock einen einzigen Steuerausgang erzeugt, der zum Steuern eines einzigen Prozesseingangs wie einer Ventilstellung usw. verwendet wird. In bestimmten Fällen aber ist die Verwendung einer Anzahl von unabhängig arbeitenden Einzeleingangs-/Einzelausgangs-Regelschleifen nicht sehr effektiv, weil die gesteuerten Prozessvariablen von mehr als einem einzigen Prozesseingang beeinflusst werden und sich tatsächlich jeder Prozesseingang auf den Zustand vieler Prozessausgänge auswirken kann. Ein Beispiel dieser Situation könnte zum Beispiel in einem Prozess mit einem Behälter auftreten, welcher durch zwei Eingangsleitungen gefüllt und durch eine einzige Ausgangsleitung entleert wird, wobei jede Leitung von einem anderen Ventil gesteuert wird und in welchem Temperatur, Druck und Durchsatz des Behälters so gesteuert werden, dass sie auf oder nahe bei gewünschten Werten liegen. Wie oben angedeutet, kann die Steuerung des Durchsatzes, der Temperatur und des Drucks des Behälters mittels einer separaten Durchsatz-Regelschleife, einer separaten Temperatur-Regelschleife und einer separaten Druck-Regelschleife durchgeführt werden. In dieser Situation kann jedoch der Betrieb der Temperatur-Regelschleife durch Ändern der Einstellung eines der Eingangsventile zwecks Steuern der Temperatur im Behälter bewirken, dass der Druck im Behälter steigt, was zum Beispiel die Druck-Regelschleife veranlassst, das Auslassventil zu öffnen, um den Druck zu senken. Diese Maßnahme kann dann die Durchsatz-Regelschleife veranlassen, eines der Eingangsventile zu schließen, was sich auf die Temperatur auswirkt und die Temperatur-Regelschleife veranlasst, irgendeine andere Maßnahme zu ergreifen. In diesem Beispiel versteht es sich, dass die Einzeleingangs-/Einzelausgangs-Regelschleifen die Prozessausgänge (in diesem Fall Durchsatz, Temperatur und Druck) veranlassen, sich auf eine inakzeptable Weise zu verhalten, bei welcher die Ausgänge schwingen, ohne jemals einen stationären Zustand zu erreichen.Process controllers are typically programmed to use various algorithms, subroutines or loops (all of which are control routines) for each of a number of different loops defined for a process or contained in a process, such as flow control loops, temperature loops, pressure loops, etc ., to execute. Generally, each such control loop includes one or more input blocks such as an analog input (AI) function block, a single output control block such as a proportional-integral-derivative (PID) or a fuzzy logic-control function block, and a single-output block like an analog output (AO) function block. These control loops usually perform a single input / single output control because the control block generates a single control output used to control a single process input, such as a valve position, and so forth. However, in some cases, using a number of independently operating single-input / single-output loops is not very effective because the controlled process variables are affected by more than a single process input, and indeed each process input can affect the state of many process outputs. An example of this situation could occur, for example, in a process involving a reservoir filled by two inlet conduits and drained by a single outlet conduit, each conduit being controlled by a different valve and in which temperature, pressure and flow rate of the container are thus controlled in that they are at or near desired values. As indicated above, the control of the throughput, the temperature and the pressure of the container may be performed by means of a separate flow rate control loop, a separate temperature control loop and a separate pressure control loop. In this situation, however, the operation of the temperature control loop by changing the setting of one of the input valves to control the temperature in the container may cause the pressure in the container to rise, causing the pressure control loop, for example, to open the outlet valve to increase the pressure to lower. This action may then cause the flow rate loop to close one of the input valves, which affects the temperature and causes the temperature control loop to take some other action. In this example, it will be understood that the single input / single output control loops cause the process outputs (in this case flow, temperature and pressure) to behave in an unacceptable manner in which the outputs oscillate without ever reaching steady state ,

Modellvorhersage-Steuerung (MPC – Model Predictive Control) oder andere Arten von hochentwickelten Steuerungen wurden verwendet, um in Situationen, in welchen Änderungen an einer einzelnen gesteuerten Prozessvariablen sich auf mehr als eine Prozessvariable oder auf mehr als einen Ausgang auswirken, eine Prozesssteuerung durchzuführen. Seit den späten 1970er-Jahren wurden viele erfolgreiche Implementierungen von Modellvorhersage-Steuerung berichtet, und MPC ist die wichtigste Form einer hochentwickelten Mehrvariablen-Steuerung in der Prozessindustrie geworden. Überdies wurde MPC in verteilten Steuerungssystemen als eine mehrschichtige Software für ein verteiltes Steuerungssystem implementiert.Model Predictive Control (MPC) or other types of advanced controllers have been used to perform process control in situations where changes to a single controlled process variable affect more than one process variable or more than one output. Since the late 1970s, many successful implementations of model prediction control have been reported, and MPC is the most important form of sophisticated Has become multi-variable control in the process industry. Moreover, MPC has been implemented in distributed control systems as a multi-layer software for a distributed control system.

Allgemein ist MPC eine Mehreingangs-/Mehrausgangs-Steuerstrategie, in welcher die Auswirkungen des Änderns jedes einzelnen einer Anzahl von Prozesseingängen auf jeden einzelnen einer Anzahl von Prozessausgängen gemessen werden und diese gemessenen Antworten dann verwendet werden, um eine Steuermatrix oder ein Modell des Prozesses zu erzeugen. Das Prozessmodell oder die Steuermatrix (welches bzw. welche in der Regel den stationären Betrieb des Prozesses definiert) wird mathematisch invertiert und dann in einer oder als eine Mehreingangs-/Mehrausgangs-Steuereinrichtung verwendet, um die auf an den Prozesseingängen vorgenommenen Änderungen beruhenden Prozessausgänge zu steuern. In manchen Fällen wird das Prozessmodell als eine Prozessausgangs-Ansprechkennlinie (üblicherweise eine Sprungantwort-Kennlinie) für jeden der Prozesseingänge dargestellt, und diese Kennlinien können auf Grundlage einer an jeden der Prozesseingänge gelieferten Reihe von beispielsweise pseudozufälligen Sprungänderungen erzeugt werden. Diese Ansprechkennlinien können verwendet werden, um den Prozess auf bekannte Weisen zu modellieren. MPC ist nach dem Stand der Technik bekannt, und deshalb werden ihre Eigenschaften hierin nicht beschrieben. Allgemein beschrieben wird MPC in Qin, S. Joe und Thomas A. Badgwell, ”An Overview of Industrial Model Predictive Control Technology”, AICHE Conference, 1996. Darüber hinaus beschreiben dieU. S.-Patente Nr. 4,616,308 undNr. 4,349,869 allgemein MPC-Steuereinrichtungen, die in einem Prozesssteuerungssystem verwendet werden können.In general, MPC is a multi-input / multi-output control strategy in which the effects of changing each one of a number of process inputs to each of a number of process outputs are measured and these measured responses are then used to generate a control matrix or model of the process , The process model or control matrix (which typically defines the steady-state operation of the process) is mathematically inverted and then used in one or more multi-input / multi-output controllers 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 characteristic (typically a step response characteristic) for each of the process inputs, and these characteristics may be generated based on a series of, for example, pseudo-random jump changes provided to each of the process inputs. These response curves can be used to model the process in known ways. MPC is known in the art, and therefore its characteristics are not described herein. MPC is generally described in Qin, S. Joe and Thomas A. Badgwell, "An Overview of Industrial Model Predictive Control Technology," AICHE Conference, 1996. In addition, the U.S. Patent Nos. 4,616,308 and No. 4,349,869 general MPC controllers that may be used in a process control system.

MPC wurde als ein sehr effektives und brauchbares Steuerungsverfahren erkannt und in Verbindung mit Prozessoptimierung verwendet. Zum Optimieren eines Prozesses, der MPC verwendet, minimiert oder maximiert ein Optimierer eine oder mehrere von der MPC-Routine bestimmte Prozesseingangsvariablen, um zu bewirken, dass der Prozess an einem optimalen Punkt läuft. Während dieses Verfahren rechentechnisch möglich ist, ist es, um den Prozess von einem wirtschaftlichen Standpunkt aus gesehen zu optimieren, erforderlich, die Prozessvariablen auszuwählen, welche zum Beispiel beträchtliche Auswirkungen auf die Verbesserung des wirtschaftlichen Betriebs des Prozesses (z. B. Prozessdurchsatz oder -qualität) haben. Von einem finanziellen oder wirtschaftlichen Standpunkt aus gesehen erfordert das Betreiben des Prozesses an einem optimalen Punkt üblicherweise das Steuern vieler Prozessvariablen in Verbindung miteinander, nicht nur einer einzigen Prozessvariable.MPC has been recognized as a very effective and useful control method and used in conjunction with process optimization. To optimize a process that uses MPC, an optimizer minimizes or maximizes one or more process input variables determined by the MPC routine to cause the process to run at an optimal point. While this method is computationally feasible, in order to optimize the process from an economic point of view, it is necessary to select the process variables which, for example, have a significant impact on improving the economic operation of the process (eg process throughput or quality ) to have. From a financial or economic point of view, running the process at an optimal point usually requires controlling many process variables in conjunction with one another, not just a single process variable.

Das Optimieren unter Verwendung quadratischer Programmierungsverfahren oder gebräuchlicherer Verfahren wie Verfahren mit innerhalb liegenden Punkten wurde als eine Lösung vorgeschlagen, um dynamische Optimierung mit MPC zu erzielen. Bei diesen Verfahren wird eine Optimierungslösung bestimmt, und der Optimierer liefert der Steuereinrichtung Bewegungen in den Steuereinrichtungs-Ausgängen (d. h. in den Stellvariablen des Prozesses), wobei er Prozessdynamik, aktuelle Beschränkungen und Optimierungsziele berücksichtigt. Dieser Ansatz ist jedoch mit einem enormen Rechenaufwand verbunden und beim derzeitigen technologischen Stand nicht praktisch realisierbar.Optimization using quadratic programming techniques or more common techniques such as in-point techniques has been proposed as a solution to achieve dynamic optimization with MPC. In these methods, an optimization solution is determined, and the optimizer provides the controller with movements in the controller outputs (i.e., in process variables), taking into account process dynamics, current constraints, and optimization goals. However, this approach is associated with an enormous amount of computation and not practically feasible at the current technological level.

In den meisten Fällen ist bei Verwendung von MPC die Anzahl der im Prozess verfügbaren Stellvariablen (d. h. der Steuerausgänge der MPC-Routine) größer als die Anzahl der Steuervariablen des Prozesses (d. h. die Anzahl der Prozessvariablen, die gesteuert werden müssen, um auf einem jeweiligen Sollwert zu liegen). Folglich gibt es in der Regel mehr Freiheitsgrade, die zur Optimierung und zur Handhabung von Beschränkungen zur Verfügung stehen. Theoretisch sollten durch Prozessvariablen, Beschränkungen, Grenzen und wirtschaftliche Faktoren ausgedrückte, einen optimalen Arbeitspunkt des Prozesses definierende Werte berechnet werden, um eine solche Optimierung durchzuführen. In vielen Fällen sind diese Prozessvariablen beschränkte Variablen, weil sie mit physikalischen Eigenschaften des Prozesses, zu welchem sie gehören, zusammenhängende Grenzen aufweisen, innerhalb derer diese Variablen gehalten werden müssen. Zum Beispiel ist eine Prozessvariable, die einen Behälterfüllstand darstellt, auf den Bereich zwischen dem im Behälter physikalisch maximal und minimal erreichbaren Füllstand begrenzt. Eine Optimierungsfunktion kann die mit jeder der beschränkten Variablen oder Hilfsvariablen verknüpften Kosten und/oder Erlöse berechnen, um auf einem Niveau zu arbeiten, auf welchem der Erlös maximiert wird, die Kosten minimiert werden usw.. Messungen dieser Hilfsvariablen können dann als Eingänge an die MPC-Routine geliefert und von der MPC-Routine als Steuervariablen behandelt werden, welche einen Sollwert haben, der gleich dem von der Optimierungsroutine definierten Arbeitspunkt für die Hilfsvariable ist.In most cases, when MPC is used, the number of manipulated variables available in the process (ie, the MPC routine control outputs) is greater than the number of process control variables (ie, the number of process variables that must be controlled to be at a particular setpoint) to lie). As a result, there are usually more degrees of freedom available to optimize and handle constraints. Theoretically, values defined by process variables, constraints, limits, and economic factors, defining an optimum operating point of the process, should be calculated to perform such optimization. In many cases, these process variables are limited variables because they have coherent boundaries with physical properties of the process to which they belong, within which these variables must be kept. For example, a process variable representing a container level is limited to the range between the maximum and minimum achievable levels in the container. An optimization function may compute the costs and / or revenues associated with each of the limited variables or auxiliary variables to operate at a level at which revenue is maximized, costs minimized, etc. Measurements of these auxiliary variables may then be provided as inputs to the MPC Routine and handled by the MPC routine as control variables having a setpoint equal to the auxiliary variable operating point defined by the optimization routine.

Die U. S.-Patentanmeldung mit der Seriennummer 10/241,350 und dem Titel ”Integrated Model Predictive Control and Optimization Within a Process Control System”, die am 11. September 2002 eingereicht wurde und die auf den Rechtsinhaber dieser Anmeldung übertragen ist und deren Offenbarung hiermit ausdrücklich durch Bezugnahme hierin eingeschlossen wird, offenbart ein Verfahren und eine Einrichtung zum Erzielen von Online-Optimierung mit einem hochentwickelten Steuerblock wie beispielsweise einem MPC-Block, in welchem die Optimierung ein integraler Bestandteil der Mehrvariablen-Modellvorhersage-Steuerung ist. Dieses Verfahren ist großenteils erfolgreich, weil die MPC-Steuereinrichtung im normalen Betrieb eine Zukunftsvorhersage der Prozessausgänge bis zu einem stationären Zustand liefert, wodurch sie die notwendigen Bedingungen für das zuverlässige Funktionieren des Optimierers schafft. Dieser Optimierungsansatz zum Finden einer Lösung funktioniert jedoch nicht immer, weil in manchen Situationen einige der Ausgänge der Steuereinrichtung oder der vorhergesagten Ausgänge der Steuereinrichtung (hierin als Stellvariablen bezeichnet) oder einige der Prozessausgänge (hierin als gesteuerte oder Steuervariablen bezeichnet), welche mit jeder der möglichen optimierten Lösungen verknüpft sind, außerhalb zuvor für diese Variablen eingestellter, vordefinierter Beschränkungen oder Grenzen liegen und die Lösung deshalb in einem zuvor definierten, nicht realisierbaren Bereich liegt. Es ist wünschenswert und in vielen Steuersituationen erforderlich, dass der Optimierer, wenn er mit dem Betrieb der MPC oder einer anderen Steuereinrichtung integriert ist, immer eine Lösung findet und gleichzeitig im bestmöglichen Ausmaß vermeidet, in einem nicht realisierbaren Bereich zu arbeiten.U.S. Patent Application Serial No. 10 / 241,350 entitled "Integrated Model Predictive Control and Optimization Within a Process Control System" filed Sep. 11, 2002, assigned to the assignee hereof, the disclosure of which is hereby expressly assigned Is incorporated herein by reference, discloses a method and apparatus for achieving Online optimization with a sophisticated control block, such as an MPC block, in which optimization is an integral part of multi-variable model prediction control. This method is largely successful because, in normal operation, the MPC controller provides a future prediction of the process outputs to a steady state, thereby providing the necessary conditions for the optimizer to function reliably. However, this optimization approach to finding a solution does not always work because, in some situations, some of the outputs of the controller or the controller's predicted outputs (referred to herein as manipulated variables) or some of the process outputs (referred to herein as controlled variables) associated with each of the possible Optimized solutions are located outside of previously set for these variables, predefined limitations or limits and the solution therefore lies in a previously defined, unrealizable area. It is desirable, and in many control situations, for the optimizer, when integrated with the operation of the MPC or other controller, to always find a solution and at the same time, to the best extent possible, avoid operating in an unrealizable area.

Wenn ein Optimierer feststellt, dass es keine realisierbare optimale Lösung gibt, welche alle Prozesssteuerungs-Ausgänge oder -Eingänge innerhalb zuvor festgesetzter Beschränkungen oder Grenzen hält, lockert der Optimierer gegenwärtig meistens eine oder mehrere Beschränkungen oder Grenzen, um eine akzeptable Lösung zu finden. Dieses Wiederherstellungsverfahren verwendet üblicherweise mit jeder der Stell- und Steuervariablen verknüpfte Prioritäten, um zu bestimmen, welche Beschränkungsgrenze zuerst zu lockern ist. Hier besteht ein einfacher Ansatz darin, die Beschränkungen niedrigster Priorität fallen zu lassen, um dem Optimierer zu ermöglichen, eine Lösung zu finden, welche die Beschränkungen höherer Priorität einhält. Dieses Verfahren ist jedoch nicht unbedingt die zweckmäßigste Art und Weise, bei nicht realisierbaren Lösungen mit Beschränkungen umzugehen, weil das Fallenlassen von Beschränkungen niedrigerer Priorität zur Folge haben kann, dass diese Beschränkungen weit über ihre Grenzen hinausschießen, nur um eine minimale Verstellung an einer oder mehreren Beschränkungen höherer Priorität zu ermöglichen. Außerdem ist es gewöhnlich erforderlich, abzuschätzen, wie viele Beschränkungen fallengelassen werden müssen, um eine realisierbare Lösung zu finden. Natürlich ist es wünschenswert, die minimale Anzahl von Beschränkungen fallen zu lassen, die erforderlich ist, um die Einhaltung der Beschränkungen höherer Priorität zu ermöglichen. Um die angemessene Anzahl fallenzulassender Beschränkungen zu bestimmen, kann es jedoch erforderlich sein, auf den verfügbaren Freiheitsgraden im System beruhende Offline-Berechnungen durchzuführen oder den Optimierer zu veranlassen, eine Beschränkung iterativ fallen zu lassen und zu bestimmen, ob bei dem neuen reduzierten Satz von Beschränkungen eine realisierbare Lösung existiert, bis eine realisierbare Lösung gefunden wird. In Echtzeit- oder Online-Optimierungssystemen funktionieren Offline-Berechnungen leider nicht gut, und der iterative Ansatz ist in der Regel unbegrenzt und kann deshalb eine inakzeptable Verzögerung beim Finden einer realisierbaren Lösung verursachen. In anderen Worten, der Prozess des Entwickelns einer optimalen Lösung durch aufeinanderfolgendes Fallenlassen von Beschränkungen muss möglicherweise wiederholt werden, bis eine Losung gefunden wird, und ein solcher zeitlich unbegrenzter iterativer Prozess ist in den meisten Echtzeit-Optimierungsanwendungen nicht wünschenswert.When an optimizer determines that there is no viable optimal solution that holds all process control outputs or inputs within previously set limits or constraints, the optimizer currently tends to relax one or more constraints or limits to find an acceptable solution. This recovery method typically uses priorities associated with each of the set and control variables to determine which restriction limit to loosen first. Here, a simple approach is to drop the lowest priority constraints to allow the optimizer to find a solution that meets the higher priority constraints. However, this technique is not necessarily the most convenient way to deal with constraints in unrealizable solutions, because dropping lower priority constraints may result in these restrictions shooting well beyond their limits, just a minimal misalignment of one or more To allow for higher priority restrictions. In addition, it is usually necessary to estimate how many constraints must be dropped to find a viable solution. Of course, it is desirable to drop the minimum number of restrictions required to allow compliance with the higher priority constraints. However, to determine the appropriate number of restrictions to drop, it may be necessary to perform off-line calculations based on the available degrees of freedom in the system, or to cause the optimizer to iteratively drop a constraint and determine whether the new reduced set of constraints a feasible solution exists until a feasible solution is found. Unfortunately, offline calculations do not work well in real-time or on-line optimization systems, and the iterative approach is usually limitless and can therefore cause an unacceptable delay in finding a viable solution. In other words, the process of developing an optimal solution by sequentially dropping constraints may need to be repeated until a solution is found, and such an indefinite iterative process is not desirable in most real-time optimization applications.

Es wurden mehrere andere bekannte Ansätze zum Lösen der Optimierung bei Vorliegen nicht realisierbarer Lösungen vorgeschlagen. Zum Beispiel offenbart Tyler, M. L. und Morari M., ”Propositional Logic in Control and Monitoring Problems,” Proceedings of European Control Conference '97, Seiten 623–628, Brüssel, Belgien, Juni 1997, das Verwenden ganzzahliger Variablen, um die Gewichtung zu bewältigen, wobei die Grösse der Übertretung durch Lösen einer Folge von gemischten ganzzahligen Optimierungsproblemen minimiert wird. Alternativ bespricht Vada, J., Slupphaug, O. und Foss, B. A., ”Infeasibility Handling in Linear MPC subject to Prioritized Constraints”, Preprints IFAC '99, 14th World Congress, Peking, China, Juli 1999, einen Algorithmus, welcher verwendet werden kann, um eine Folge von Problemen linearer Programmierung (LP) oder Problemen quadratischer Programmierung (QP) zu lösen, um die Übertretungen der Beschränkungen, welche nicht eingehalten werden können, zu minimieren. Jedoch sind diese Ansätze beide rechentechnisch anspruchsvoll und für schnelle Echtzeit-Anwendungen in der Regel nicht ausreichend oder akzeptabel. Alternativ offenbart Vada, J, Slupphaug, O. und Johansen, T. A., ”Efficient Infeasibility Handling in Linear MPC subject to Prioritized Constraints,” ACC2002 Proceedings, Anchorage, Alaska, Mai 2002, einen Offline-Algorithmus, der LP-Gewichte berechnet, welche die berechneten Beschränkungsübertretungen optimieren. Während dieses Verfahren die Belastung durch übermässigen Rechenaufwand in eine Offline-Umgebung verlagert, erfordert es das Umgehen mit einem zusätzlichen Offline-Optimierungsproblem und ist für Online- oder Echtzeit-Optimierungsprozeduren nicht sehr nützlich.Several other known approaches to solving optimization in the presence of unrealizable solutions have been proposed. For example, Tyler, ML and Morari M., Propositional Logic in Control and Monitoring Problems, Proceedings of European Control Conference, 97, pp. 623-628, Brussels, Belgium, June 1997, discloses using integer variables to weight the magnitude of the transgression is minimized by solving a sequence of mixed integer optimization problems. Alternatively, Vada, J., Slupphaug, O. and Foss, BA, "Infeasibility Handling in Linear MPC subject to Prioritized Constraints", Preprints, IFAC '99, 14th World Congress, Beijing, China, July 1999, discusses an algorithm that is used can be used to solve a series of Linear Programming (LP) or Quadratic Programming (QP) problems to minimize the violations of the constraints that can not be met. However, these approaches are both computationally demanding and usually insufficient or acceptable for fast real-time applications. Alternatively, Vada, J, Slupphaug, O. and Johansen, TA, "Efficient Infeasibility Handling in Linear MPC Subject to Priority Constraints," ACC2002 Proceedings, Anchorage, Alaska, May 2002, discloses an off-line algorithm that calculates LP weights optimize the calculated restriction violations. While this process relocates the burden of excessive computational overhead to an offline environment, it requires handling an additional off-line optimization problem and is not very useful for online or real-time optimization procedures.

Ein Verfahren der hier angesprochenen Art ist auch aus derUS 6,032,106 A und derWO 95/28 666 A1 bekannt.A method of the type mentioned here is also from the US 6,032,106 A and the WO 95/28 666 A1 known.

Ein integriertes Optimierungsverfahren, welches zum Optimieren einer hochentwickelten Steuerungsprozedur wie einer Modellvorhersage-Steuerungsprozedur verwendet werden kann, verwendet ein organisiertes, systematisches, aber rechentechnisch einfaches Verfahren des Lockerns oder Neudefinierens von Beschränkungen oder Grenzen für Stell- oder Steuervariablen, wenn es keine realisierbare optimale Lösung innerhalb der zuvor festgesetzten Beschränkungen oder Grenzen gibt, um dadurch eine erreichbare optimale Lösung zur Verwendung in der Steuerprozedur zu finden. Insbesondere verwendet die Optimierungsroutine, wenn sie mit einer innerhalb zuvor festgesetzter Beschränkungsgrenzen nicht realisierbaren Optimierer-Lösung konfrontiert wird, auf mit Strafen belegten Spielraumvariablen und/oder auf dem Neudefinieren des Reschränkungsmodells beruhende, robuste und zuverlässige Verfahren, um systematisch die beste Lösung zu wählen. Weil das offenbarte Verfahren rechentechnisch einfach ist, eignet sich dieses Verfahren zur Online-Implementierung eines Echtzeit-Optimierers. An integrated optimization method that can be used to optimize a sophisticated control procedure, such as a model prediction control procedure, uses an organized, systematic but computationally simple method of relaxing or redefining constraints or limits on control variables when there is no viable optimal solution within the previously set limits or limits, thereby to find an achievable optimal solution for use in the control procedure. In particular, when confronted with an optimizer solution that is not achievable within previously established constraint limits, the optimization routine uses penalty-weighted margin variables and / or redefined model based on the robust and reliable method to systematically choose the best solution. Because the disclosed method is computationally simple, this method is suitable for the on-line implementation of a real-time optimizer.

In einer Ausführungsform kann der Optimierer eine Zielfunktion verwenden, die mit Strafen belegte Spielraumvariablen enthält, um bei Vorliegen einer oder mehrerer Stell- oder Steuervariablen, welche über voreingestellte Grenzen hinaus getrieben werden, eine optimale Lösung zu finden. In einer anderen Ausführungsform kann der Optimierer das Beschränkungsmodell neu definieren, um dadurch die akzeptablen Grenzen für Stell- oder Steuervariablen, welche außerhalb der Grenzen liegen, neu zu definieren, und dann eine im neuen Beschränkungsmodell definierte Zielfunktion mit Strafvariablen verwenden, um die außerhalb der Grenzen liegenden Beschränkungen mit höheren Prioritäten ohne weitere Beschränkungsübertretungen bei Beschränkungen niedrigerer Priorität gegen zuvor festgesetzte Grenzen zu treiben. In einer weiteren Ausführungsform kann der Optimierer die Verwendung von mit Strafen belegten Spielraumvariablen mit dem Neudefinieren des Beschränkungsmodells verschmelzen, um ein flexibles und effizientes Verfahren zur Handhabung von Beschränkungen zu schaffen.In one embodiment, the optimizer may use an objective function that includes penalty variables that are penalized to find an optimal solution in the presence of one or more control variables that are driven beyond preset limits. In another embodiment, the optimizer may redefine the constraint model to thereby redefine the acceptable limits for off-limit control variables, and then use a target function with penalty variables defined in the new constraint model to out-of-bounds Priority restrictions on higher priority priorities without further restriction breaches for lower priority restrictions. In another embodiment, the optimizer may merge the use of penalized travel variables with redefining the constraint model to provide a flexible and efficient method of handling constraints.

1 ist ein Blockschaltbild eines Prozesssteuerungssystems einschließlich eines Steuermoduls mit einem hochentwickelten Steuereinrichtungs-Funktionsblock, welcher einen Optimierer mit einer MPC-Steuereinrichtung integriert; 1 Figure 4 is a block diagram of a process control system including a control module with a sophisticated controller functional block that integrates an optimizer with an MPC controller;

2 ist ein Blockschaltbild des hochentwickelten Steuereinrichtungs-Funktionsblocks aus1, in welchen ein Optimierer und eine MPC-Steuereinrichtung integriert sind; 2 is a block diagram of the sophisticated controllerfunctional block 1 in which an optimizer and an MPC controller are integrated;

3 ist ein Flussdiagramm, welches eine Art und Weise des Erzeugens und Einrichtens des integrierten Optimierer- und MPC-Steuereinrichtungs-Funktionsblocks aus2 veranschaulicht; 3 FIG. 10 is a flow chart illustrating a manner of creating and setting up the integrated optimizer and MPC controller functional block 2 illustrated;

4 ist ein Flussdiagramm, welches den Betrieb des integrierten Optimierers und der MPC-Steuereinrichtung aus2 während des Online-Prozessbetriebs veranschaulicht; 4 FIG. 4 is a flow chart illustrating the operation of the integrated optimizer and the MPC controller. FIG 2 during online process operation;

5 ist eine grafische Darstellung, welche eine Art und Weise des Lockerns einer Stellvariablen-Beschränkung oder -Grenze mittels Spielraumvariablen in einer Zielfunktion des Optimierers aus2 veranschaulicht; 5 Fig. 12 is a graph showing a manner of relaxing a manipulated variable restriction or limit by means of travel variables in an objective function of the optimizer 2 illustrated;

6 ist eine grafische Darstellung, welche eine Art und Weise des Lockerns von mit einem Sollwert verknüpften Bereichen mittels Spielraumvariablen in der Zielfunktion des Optimierers aus2 veranschaulicht; 6 Fig. 12 is a graph showing a manner of loosening ranges associated with a target value by means of margin variables in the objective function of the optimizer 2 illustrated;

7 ist eine grafische Darstellung, welche eine Art und Weise des Lockerns zweier Sätze von mit einem Sollwert verknüpften Bereichen mittels niedrigerer und höherer mit Strafen belegter Spielraumvariablen in der Zielfunktion des Optimierers aus2 veranschaulicht; 7 Fig. 12 is a graph showing a manner of relaxing two sets of target value associated ranges by using lower and higher penalty weighted margin variables in the objective function of the optimizer 2 illustrated;

8 ist eine grafische Darstellung, welche eine Art und Weise des Neudefinierens des Beschränkungsmodells oder der Beschränkungsgrenzen für eine Stellvariable und des Verwendens von mit dem neuen Beschränkungsmodell verknüpften Strafvariablen in der Zielfunktion des Optimierers aus2 veranschaulicht; 8th FIG. 12 is a graph illustrating a manner of redefining the constraint model or constraint limits for a manipulated variable and using penalties associated with the new constraint model in the objective function of the optimizer 2 illustrated;

9 ist eine grafische Darstellung, welche die Verwendung sowohl von Spielraumvariablen als auch des Neudefinierens eines Beschränkungsmodells zum Durchführen der Optimierung bei Vorliegen einer oder mehrerer außerhalb der Grenzen liegender Stellvariablen veranschaulicht; und 9 Figure 4 is a graphical representation illustrating the use of both margin variables and redefinition of a constraint model to perform the optimization in the presence of one or more out-of-bound variables; and

10 ist eine grafische Darstellung, welche die Verwendung von Spielraumvariablen zum Optimieren bei Vorliegen eines idealen Ruhewerts einer Stellvariable veranschaulicht. 10 Figure 12 is a graph illustrating the use of margin variables to optimize for the presence of an ideal rest value of a manipulated variable.

Wie in1 gezeigt, enthält ein Prozesssteuerungssystem10 eine Prozesssteuereinrichtung11, welche mit einer Datenprotokolliereinrichtung12 und mit einer bzw. einem oder mehreren Host-Workstations oder -Computern13 (welche irgendeine Art von Personalcomputern, Workstations usw. sein können), die jeweils einen Anzeigebildschirm14 haben, kommunikativ verbunden ist. Die Steuereinrichtung11 ist über Eingangs-/Ausgangs-(E/A-)Karten26 und28 auch mit Anlageneinrichtungen1522 verbunden. Die Datenprotokolliereinrichtung12 kann irgendeine gewünschte Art von Datenerfassungseinrichtung sein, welche über irgendeine gewünschte Art von Speicher und irgendeine gewünschte oder bekannte Software, Hardware oder Firmware zum Speichern von Daten verfügt, und kann von den Workstations13 getrennt (wie in1 dargestellt) oder ein Teil einer der Workstations13 sein. Die Steuereinrichtung11, welche beispielsweise die von Emerson Process Management vertriebene Steuereinrichtung Delta VTM sein kann, ist zum Beispiel über eine Ethernet-Verbindung oder irgendein anderes gewünschtes Kommunikationsnetz29 mit den Host-Computern13 und der Datenprotokolliereinrichtung12 kommunikativ verbunden. Das Kommunikationsnetz29 kann ein mittels drahtgebundener oder drahtloser Technologie implementiertes lokales Netz (LAN), weiträumiges Netz (WAN), Telekommunikationsnetz usw. sein. Die Steuereinrichtung11 ist mittels irgendeiner gewünschten, zum Beispiel mit standardgemäßen 4–20-mA-Einrichtungen verknüpften Hardware und Software und/oder irgendeines intelligenten Kommunikationsprotokolls wie des FOUNDATIONTM-Fieldbus-Protokolls (Fieldbus), des HARTTM-Protokolls usw. mit den Anlageneinrichtungen1522 kommunikativ verbunden. As in 1 shown contains a process control system 10 aprocess control device 11 , which with adata logger 12 and with one or more host workstations or computers 13 (which may be any type of personal computers, workstations, etc.), each having adisplay screen 14 have, communicatively connected. Thecontrol device 11 is via input / output (I / O)cards 26 and 28 also with plant equipment 15 - 22 connected. Thedata logger 12 may be any desired type of data acquisition device that has any desired type of memory and any desired or known software, hardware, or firmware for storing data, and may be from theworkstations 13 separated (as in 1 shown) or a part of one of theworkstations 13 be. Thecontrol device 11 which may be, for example, the Delta V™ controller distributed by Emerson Process Management, for example, via an Ethernet connection or any other desiredcommunications network 29 with thehost computers 13 and thedata logger 12 communicatively connected. Thecommunication network 29 may be a local area network (LAN), wide area network (WAN), telecommunications network, etc. implemented via wired or wireless technology. Thecontrol device 11 is by any desired hardware and software associated with, for example, standard 4-20mA devices and / or any intelligent communication protocol such as the FOUNDATION Fieldbus Protocol (Fieldbus), the HART protocol, etc. with the equipment 15 - 22 communicatively connected.

Die Anlageneinrichtungen1522 können irgendwelche Arten von Einrichtungen wie Sensoren, Ventile, Geber, Stellmechanismen usw. sein, während die E/A-Karten26 und28 irgendwelche Arten von zu irgendeinem gewünschten Kommunikations- oder Steuereinrichtungsprotokoll kompatiblen E/A-Einrichtungen sein können. In der in1 dargestellten Ausführungsform sind die Anlageneinrichtungen1518 standardgemäße 4–20-mA-Einrichtungen, die über Analogleitungen mit der E/A-Karte26 kommunizieren, während die Anlageneinrichtungen1922 intelligente Einrichtungen wie Fieldbus-Anlageneinrichtungen sind, die mittels Fieldbus-Protokoll-Kommunikation über einen digitalen Bus mit der E/A-Karte28 kommunizieren. Natürlich könnten die Anlageneinrichtungen1522 zu irgendwelchen anderen gewünschten Normen oder Protokollen, einschließlich etwaiger in der Zukunft entwickelter Normen oder Protokolle, kompatibel sein.The plant equipment 15 - 22 can be any types of devices such as sensors, valves, encoders, adjusting mechanisms, etc., while the I /O cards 26 and 28 may be any type of I / O devices compatible with any desired communication or controller protocol. In the in 1 illustrated embodiment, the equipment facilities 15 - 18 standard 4-20 mA devices connected via analog lines to the I /O card 26 communicate while the facilities facilities 19 - 22 intelligent devices such as Fieldbus equipment are those that communicate with the I / O card via Fieldbus protocol communication over adigital bus 28 communicate. Of course, the plant facilities could 15 - 22 be compatible with any other desired standards or protocols, including any standards or protocols developed in the future.

Die Steuereinrichtung11, welche eine von vielen verteilten Steuereinrichtungen innerhalb der Anlage10 sein kann und welche mindestens einen Prozessor enthält, implementiert oder überwacht eine oder mehrere Prozesssteuerungsroutinen, welche darin gespeicherte oder anderweitig damit verknüpfte Regelschleifen enthalten können. Die Steuereinrichtung11 kommuniziert auch mit den Einrichtungen1522, den Host-Computern13 und der Datenprotokolliereinrichtung12, um einen Prozess auf irgendeine gewünschte Art zu steuern. Es ist zu beachten, dass hierin beschriebene Steuerroutinen oder -elemente Teile haben können, welche, falls so gewünscht, von andersartigen Steuereinrichtungen oder anderen Einrichtungen implementiert oder ausgeführt werden. Desgleichen können die hierin beschriebenen, im Prozesssteuerungssystem10 zu implementierenden Steuerroutinen oder -elemente jede beliebige Form einschließlich Software, Firmware, Hardware usw. annehmen. Für den Zweck dieser Erörterung kann ein Prozesssteuerungselement ein beliebiger Teil eines Prozesssteuerungssystems einschließlich zum Beispiel einer bzw. eines auf irgendeinem computerlesbaren Medium gespeicherten Routine, Blocks oder Moduls sein. Steuerroutinen, welche Module oder irgendein Teil einer Steuerprozedur wie eine Unterroutine, Teile einer Unterroutine (wie Codezeilen) usw. sein können, können in jedem beliebigen gewünschten Softwareformat wie mittels Kontaktplan-Logik, Sequenzfunktionstabellen, Blockschaltbildern, objektorientierter Programmierung oder einer anderen Software-Programmiersprache oder eines anderen Softwareentwicklungs-Paradigma implementiert werden. Desgleichen können die Steuerroutinen in beispielsweise einen oder mehrere EPROMs, EEPROMs, anwendungsspezifische integrierte Schaltungen (ASICs) oder irgendwelche anderen Hardware- oder Firmware-Elemente hart codiert werden. Überdies können die Steuerroutinen unter Verwendung irgendwelcher Entwicklungswerkzeuge einschließlich grafischer Entwicklungswerkzeuge oder irgendeiner anderen Art von Software-, Hardware- oder Firmware-Programmier- oder Entwicklungswerkzeugen entwickelt werden. Mithin kann die Steuereinrichtung11 so konfiguriert werden, dass sie eine Steuerstrategie oder Steuerroutine auf eine beliebige gewünschte Art implementiert.Thecontrol device 11 which is one of many distributed controllers within thefacility 10 and which includes at least one processor implements or monitors one or more process control routines that may contain control loops stored therein or otherwise associated therewith. Thecontrol device 11 also communicates with the facilities 15 - 22 , thehost computers 13 and thedata logger 12 to control a process in any desired way. It should be noted that control routines or elements described herein may have portions which, if so desired, are implemented or executed by other types of controllers or other devices. Likewise, those described herein may be used in theprocess control system 10 to any implementing control routines or elements, any form including software, firmware, hardware, etc. For purposes of this discussion, a process control element may be any part of a process control system including, for example, a routine, block, or module stored on any computer-readable medium. Control routines, which may be modules or any part of a control procedure such as a subroutine, parts of a subroutine (such as lines of code), etc., may be in any desired software format such as ladder logic, sequence function tables, block diagrams, object oriented programming or other software programming language or software another software development paradigm. Likewise, the control routines may be hard coded into, for example, one or more EPROMs, EEPROMs, application specific integrated circuits (ASICs), or any other hardware or firmware elements. Moreover, the control routines may be developed using any development tools including graphical development tools or any other type of software, hardware, or firmware programming or development tools. Thus, thecontrol device 11 be configured to implement a control strategy or control routine in any desired manner.

In einer Ausführungsform implementiert die Steuereinrichtung11 unter Verwendung dessen, was im Allgemeinen als Funktionsblöcke bezeichnet wird, eine Steuerstrategie, in welcher jeder Funktionsblock ein Teil oder Objekt einer Gesamt-Steuerroutine ist und (über als Kommunikation bezeichnete Verbindungen) mit anderen Funktionsblöcken zusammenarbeitet, um im Prozesssteuerungssystem10 Prozessregelschleifen zu implementieren. Üblicherweise führen Funktionsblöcke entweder eine Eingangsfunktion wie die mit einem Transmitter, einem Sensor oder einer anderen Prozessparameter-Meßeinrichtung verknüpfte, eine Steuerfunktion wie die mit einer Steuerroutine, welche PID-, Fuzzy-Logic-Regelung usw. durchführt, verknüpfte, oder eine Ausgangsfunktion, welche den Betrieb irgendeiner Einrichtung wie eines Ventils steuert, um im Prozesssteuerungssystem10 irgendeine physikalische Funktion durchzuführen, durch. Natürlich gibt es hybride und andere Arten von Funktionsblöcken. Funktionsblöcke können in der Steuereinrichtung11 gespeichert und durch diese ausgeführt werden, was üblicherweise der Fall ist, wenn diese Funktionsblöcke für standardgemäße 4–20-mA-Einrichtungen und einige Arten von intelligenten Anlageneinrichtungen wie HART-Einrichtungen verwendet werden oder mit solchen verknüpft sind, oder können in den Anlageneinrichtungen selbst gespeichert und durch diese selbst implementiert werden, was bei Fieldbus-Einrichtungen der Fall sein kann. Obwohl die Beschreibung des Steuerungssystems hierin mittels einer Funktionsblock-Steuerstrategie, welche ein objektorientiertes Programmierparadigma verwendet, erfolgt, könnten die Steuerstrategie oder die Regelschleifen oder die Module auch unter Verwendung anderer Konventionen wie Kontaktplan-Logik, Sequenzfunktionstabellen usw. oder unter Verwendung irgendeiner anderen gewünschten Programmiersprache oder irgendeines anderen gewünschten Programmierparadigmas implementiert oder entwickelt werden.In one embodiment, the controller implements 11 using what are commonly referred to as functional blocks, a control strategy in which each functional block is a part or object of an overall control routine and cooperates (via connections referred to as communication) with other functional blocks in theprocess control system 10 Implement process loops. Typically, function blocks carry either an input function such as that associated with a transmitter, sensor, or other process parameter measuring device, a control function such as that associated with a control routine that performs PID, fuzzy logic, etc., or an output function controls the operation of any device, such as a valve, in theprocess control system 10 to perform any physical function. Of course there are hybrids and other types of function blocks. Function blocks may be in thecontroller 11 are stored and executed by them, which is usually the case when these functional blocks are used for or linked to standard 4-20 mA devices and some types of smart equipment such as HART devices, or may be stored in the equipment itself and implemented by themselves, which can be the case with Fieldbus devices. Although the description of the control system herein is made by means of a functional block control strategy using an object-oriented programming paradigm, the control strategy or loops or modules could also be constructed using other conventions such as ladder logic, sequence function tables, etc. or using any other programming language or programming language of any other desired programming paradigm.

Wie durch den ausgebreiteten Block30 in1 ersichtlich, kann die Steuereinrichtung11 eine Anzahl von Einzelschleifen-Regelroutinen enthalten, hier dargestellt als Routinen32 und34, und eine oder mehrere hochentwickelte Regelschleifen implementieren, hier dargestellt als Regelschleife36. Jede solche Schleife wird üblicherweise als ein Steuermodul bezeichnet. Die dargestellten Einzelschleifen-Regelroutinen32 und34 führen Einzelschleifen-Regelung mittels eines Einzeleingangs-/Einzelausgangs-Fuzzy-Logic-Regelungsblocks beziehungsweise eines Einzeleingangs-/Einzelausgangs-PID-Regelungsblocks durch, welche mit geeigneten Analogeingangs-(AI-) und Analogausgangs-(AO-)Funktionsblöcken verbunden sind, die mit Prozesssteuerungseinrichtungen wie Ventilen, mit Meßeinrichtungen wie Temperatur- und Druckgebern oder mit irgendeiner anderen Einrichtung im Prozesssteuerungssystem10 verknüpft sein können. Die dargestellte hochentwickelte Regelschleife36 enthält einen hochentwickelten Steuerblock38, dessen Eingänge mit zahlreichen AI-Funktionsblöcken und dessen Ausgänge mit zahlreichen AO-Funktionsblöcken kommunikativ verbunden sind, obwohl die Eingänge und Ausgänge des hochentwickelten Steuerblocks38 mit beliebigen anderen gewünschten Funktionsblöcken oder Steuerelementen kommunikativ verbunden sein können, um andere Arten von Eingängen zu empfangen und andere Arten von Steuerausgängen zu liefern. Wie im weiteren beschrieben wird, kann der hochentwickelte Steuerblock38 ein Steuerblock sein, der eine Modellvorhersage-Steuerroutine mit einem Optimierer integriert, um die optimierte Steuerung des Prozesses oder eines Teils des Prozesses durchzuführen. Obwohl der hochentwickelte Steuerblock38 in der hierin gegebenen Beschreibung einen Modellvorhersage-Steuerungs-(MPC-)Block enthält, kann der hochentwickelte Steuerblock38 jede beliebige andere Mehreingangs-/Mehrausgangs-Regelungsroutine oder -prozedur, wie eine Neuronennetz-Modellierungs- oder Regelungsroutine, eine Mehrvariablen-Fuzzy-Logic-Regelungsroutifle usw. enthalten. Es versteht sich, dass die in1 dargestellten Funktionsblöcke einschließlich des hochentwickelten Steuerblocks38 von der Steuereinrichtung11 ausgeführt werden können oder dass sie sich alternativ in einer beliebigen anderen Verarbeitungseinrichtung wie in einer der Workstations13 oder sogar in einer der Anlageneinrichtungen1922 befinden und von dieser ausgeführt werden können.As by the spreadingblock 30 in 1 can be seen, thecontrol device 11 contain a number of single loop control routines, shown here asroutines 32 and 34 , and implement one or more sophisticated closed loop loops, shown here as aclosed loop 36 , Each such loop is commonly referred to as a control module. The illustrated singleloop control routines 32 and 34 perform single-loop control by means of a single-input / single-output fuzzy logic control block or a single-input / single-output PID control block, which are connected to appropriate analog input (AI) and analog output (AO) function blocks with Process control devices such as valves, with measuring devices such as temperature and pressure sensors or with any other device in theprocess control system 10 can be linked. The illustratedadvanced control loop 36 contains asophisticated control block 38 whose inputs are communicatively linked to numerous AI function blocks and whose outputs are communicatively connected to numerous AO function blocks, although the inputs and outputs of theadvanced control block 38 may be communicatively connected to any other desired function blocks or controls to receive other types of inputs and to provide other types of control outputs. As will be described further below, the advanced control block 38 a control block that integrates a model prediction control routine with an optimizer to perform the optimized control of the process or part of the process. Although theadvanced control block 38 In the description given herein, a model predictive control (MPC) block may be included, theadvanced control block 38 include any other multi-input / multi-output control routine or procedure, such as a neural network modeling or control routine, a multi-variable fuzzy logic control routine, and so on. It is understood that in 1 displayed functional blocks including thesophisticated control block 38 from thecontroller 11 or alternatively in any other processing device, such as one of theworkstations 13 or even in one of the plant facilities 19 - 22 can be located and executed by this.

Wie in1 gezeigt, enthält eine der Workstations13 eine Erzeugungsroutine für einen hochentwickelten Steuerblock40, welche verwendet wird, um den hochentwickelten Steuerblock38 zu erzeugen, herunterzuladen und zu implementieren. Während die Erzeugungsroutine für einen hochentwickelten Steuerblock40 in einem Speicher in der Workstation13 gespeichert und von einem darin enthaltenen Prozessor ausgeführt werden kann, kann diese Routine (oder irgendein Teil davon), falls gewünscht, zusätzlich oder alternativ in irgendeiner anderen Einrichtung im Prozesssteuerungssystem10 gespeichert und von dieser ausgeführt werden. Allgemein enthält die Erzeugungsroutine für einen hochentwickelten Steuerblock40 eine Steuerblock-Erzeugungsroutine42, welche einen hochentwickelten Steuerblock erzeugt und diesen hochentwickelten Steuerblock in das Prozesssteuerungssystem einbindet, eine Prozessmodellierungsroutine44, welche ein auf vom hochentwickelten Steuerblock erfassten Daten beruhendes Prozessmodell für den Prozess oder einen Teil des Prozesses erzeugt, eine Steuerlogikparameter-Erzeugungsroutine46, welche für den hochentwickelten Steuerblock Steuerlogikparameter aus dem Prozessmodell erzeugt und welche diese Steuerlogikparameter zur Verwendung beim Steuern des Prozesses im hochentwickelten Steuerblock speichert oder in diesen herunterlädt, und eine Optimiererroutine48, welche einen Optimierer zur Verwendung mit dem hochentwickelten Steuerblock erzeugt. Es versteht sich, dass die Routinen42,44,46 und48 aus einer Reihe von verschiedenen Routinen bestehen können, wie einer ersten Routine, welche ein hochentwickeltes Steuerelement mit zum Empfangen von Prozessausgängen geeigneten Steuereingängen und zum Liefern von Steuersignalen an Prozesseingänge geeigneten Steuerausgängen erzeugt, einer zweiten Routine, welche einem Benutzer ermöglicht, das hochentwickelte Steuerelement in der Prozesssteuerungsroutine (welche jede gewünschte Konfigurationsroutine sein kann) herunterzuladen und kommunikativ zu verbinden, einer dritten Routine, welche das hochentwickelte Steuerelement verwendet, um Anregungs-Wellenformen an jeden der Prozesseingänge anzulegen, einer vierten Routine, welche das hochentwickelte Steuerelement verwendet, um die Antwort jedes einzelnen der Prozessausgänge auf die Anregungs-Wellenformen widerspiegelnde Daten zu erfassen, einer fünften Routine, welche einen Satz von Eingängen für den hochentwickelten Steuerblock auswählt oder dies einem Benutzer ermöglicht, einer sechsten Routine, welche ein Prozessmodell erzeugt, einer siebten Routine, welche hochentwickelte Steuerlogikparameter aus dem Prozessmodell entwickelt, einer achten Routine, welche die hochentwickelte Steuerlogik und, falls erforderlich, das Prozessmodell in das hochentwickelte Steuerelement einfügt, um das hochentwickelte Steuerelement in die Lage zu versetzen, den Prozess zu steuern, und einer neunten Routine, welche einen Optimierer zur Verwendung im hochentwickelten Steuerblock38 auswählt oder dies einem Benutzer ermöglicht.As in 1 shown contains one of the workstations 13 a generation routine for asophisticated control block 40 which is used to theadvanced control block 38 to create, download and implement. During the generation routine for asophisticated control block 40 in a store in theworkstation 13 stored and executed by a processor contained therein, this routine (or any part thereof) may additionally or alternatively, if desired, be located in any other device in theprocess control system 10 stored and executed by this. In general, the advanced control block generation routine includes 40 a controlblock generation routine 42 which generates a sophisticated control block and incorporates this advanced control block into the process control system, aprocess modeling routine 44 which generates a process model based on the advanced control block based on the process or part of the process, a control logicparameter generation routine 46 which for the advanced control block generates control logic parameters from the process model and which stores or downloads those control logic parameters for use in controlling the process in the advanced control block and anoptimizer routine 48 which generates an optimizer for use with the advanced control block. It is understood that theroutines 42 . 44 . 46 and 48 may consist of a number of different routines, such as a first routine generating a sophisticated control with control inputs suitable for receiving process outputs and providing control outputs to process inputs appropriate to a second routine allowing a user to control the advanced control in the process Download and communicatively connect a process control routine (which may be any desired configuration routine), a third routine that uses the advanced control to apply excitation waveforms to each of the process inputs, a fourth routine that uses the advanced control to answer each one individually to capture data reflecting the process outputs onto the excitation waveforms, a fifth routine that selects or sets a set of inputs to the advanced control block allows a user to create a sixth routine that generates a process model, a seventh routine that develops advanced control logic parameters from the process model, an eighth routine that incorporates the advanced control logic and, if necessary, the process model into the advanced control, the advanced control to enable the process to be controlled and a ninth routine which provides an optimizer for use in theadvanced control block 38 selects or allows this to a user.

2 zeigt ein detaillierteres Blockschaltbild einer Ausführungsform des mit einem Prozess50 kommunikativ gekoppelten hochentwickelten Steuerblocks38, wobei es sich versteht, dass der hochentwickelte Steuerblock38 einen Satz von Stellvariablen produziert, die an andere Funktionsblöcke geliefert werden, welche wiederum mit Steuereingängen des Prozesses50 verbunden sind. Wie in2 gezeigt, enthält der hochentwickelte Steuerblock38 einen MPC-Steuereinrichtungs-Block52, einen Optimierer54, einen Zielwert-Umwandlungsblock55, ein Sprungantwort-Modell oder eine Steuermatrix56 und einen Eingangsverarbeitungs-/Filterblock58 (input processing/filter block). Die MPC-Steuereinrichtung52 kann jede beliebige standardgemäße quadratische M-mal-M- (wobei M eine beliebige Zahl größer oder gleich eins sein kann) MPC-Routine oder Prozedur sein, welche die gleiche Anzahl Eingänge wie Ausgänge hat. Die MPC-Steuereinrichtung52 empfängt als Eingänge einen Satz von N Steuer- und Hilfsvariablen CV und AV (welche Vektoren von Werten sind) wie im Prozess50 gemessen, einen Satz von Störvariablen DV, welche bekannte oder erwartete, zu irgendeinem Zeitpunkt in der Zukunft auf den Prozess50 einwirkende Änderungen oder Störungen sind, und einen Satz von vom Zielwert-Umwandlungsblock55 gelieferten stationären Zielwert-Steuer- und Hilfsvariablen CVT und AVT. Die MPC-Steuereinrichtung52 verwendet diese Eingänge, um den Satz von M Stellvariablen MV (in Form von Steuersignalen) zu erzeugen, und liefert die Stellvariablen-(MV-)Signale zum Steuern des Prozesses50. 2 shows a more detailed block diagram of an embodiment of theprocess 50 communicatively coupledadvanced control block 38 it being understood that theadvanced control block 38 produces a set of manipulated variables which are supplied to other function blocks, which in turn communicate with control inputs of theprocess 50 are connected. As in 2 shown contains theadvanced control block 38 anMPC controller block 52 , anoptimizer 54 , a targetvalue conversion block 55 , a step response model or acontrol matrix 56 and an input processing / filtering block 58 (input processing / filter block). TheMPC controller 52 For example, any standard quadratic M-by-M (where M can be any number greater than or equal to one) can be an MPC routine or procedure that has the same number of inputs as outputs. TheMPC controller 52 receives as inputs a set of N control and auxiliary variables CV and AV (which are vectors of values) as in theprocess 50 measured a set of noise variables DV, which is known or expected, at some point in the future on theprocess 50 are acting changes or errors, and a set of from the targetvalue conversion block 55 supplied stationary target value control and auxiliary variables CVT and AVT. TheMPC controller 52 uses these inputs to generate the set of M manipulated variables MV (in the form of control signals) and provides the manipulated variable (MV) signals to control theprocess 50 ,

Außerdem berechnet die MPC-Steuereinrichtung52 einen Satz von vorhergesagten stationären Steuervariablen CVSS und Hilfsvariablen AVSS sowie einen Satz von vorhergesagten stationären Stellvariablen MVSS, welche die vorhergesagten Werte der Steuervariablen CV, der Hilfsvariablen AV beziehungsweise der Stellvariablen MV am Vorhersagehorizont (für die CVs und AVs) und am Steuerhorizont (für die MVs) darstellen, und liefert sie an den Eingangsverarbeitungs-/Filterblock58. Der Eingangsverarbeitungs-/Filterblock58 verarbeitet die bestimmten vorhergesagten stationären Werte der Steuer-, Hilfs- und Stellvariablen CVSS, AVSS und MVSS, um die Auswirkungen von Rauschen und unvorhergesagten Störungen auf diese Variablen zu reduzieren. Es versteht sich, dass der Eingangsverarbeitungs-/Filterblock58 einen Tiefpassfilter oder irgendeine andere Eingangsverarbeitung enthalten kann, welche die Auswirkungen von Rauschen, Modellierfehlern und Störungen auf diese Werte reduziert und die gefilterten Steuer-, Hilfs- und Stellvariablen CVSSfil, AVSSfil und MVSSfil an den Optimierer54 liefert.In addition, the MPC controller calculates 52 a set of predicted steady state control variables CVSS and auxiliary variables AVSS and a set of predicted steady state variables MVSS representing the predicted values of the control variable CV, the auxiliary variable AV and the predictive variable MV at the forecast horizon (for the CVs and AVs) and at the control horizon ( for the MVs) and deliver them to the input processing /filter block 58 , The input processing /filter block 58 processes the specific predicted steady state values of the control, auxiliary and manipulated variables CVSS , AVSS and MVSS to reduce the effects of noise and unpredicted disturbances on these variables. It is understood that the input processing /filter block 58 may include a low pass filter or any other inputprocessing that reduces the effects of noise, modeling errors, and noise on these values, and the filtered control, auxiliary, and manipulated variables CVSSfil , AVSSfil, and MVSSfil to theoptimizer 54 supplies.

Der Optimierer54 ist in diesem Beispiel ein mit linearer Programmierung (LP) arbeitender Optimierer, welcher eine Zielfunktion (OF) verwendet, die von einem Auswahlblock62 geliefert werden kann, um die Prozessoptimierung durchzuführen. Alternativ könnte der Optimierer54 ein mit quadratischer Programmierung arbeitender Optimierer sein, was ein Optimierer mit einem linearen Modell und einer quadratischen Zielfunktion ist. Allgemein legt die Zielfunktion OF mit jeder einzelnen aus einer Anzahl von Steuer-, Hilfs- und Stellvariablen (welche allgemein als Prozessvariablen bezeichnet werden) verknüpfte Kosten oder Erlöse fest und bestimmt der Optimierer54 durch Finden eines Satzes von Prozessvariablen, welche die Zielfunktion maximieren oder minimieren, Zielwerte für diese Variablen. Der Auswahlblock62 kann die an den Optimierer54 gelieferte Zielfunktion OF als eine aus einem Satz von vorgespeicherten Zielfunktionen64 auswählen, welche mathematisch verschiedene Arten, den optimalen Betrieb des Prozesses50 zu definieren, darstellen. Zum Beispiel kann eine der vorgespeicherten Zielfunktionen64 zum Maximieren des Erlöses der Anlage konfiguriert sein, kann eine andere der Zielfunktionen64 zum Minimieren des Verbrauchs eines besonderen Rohstoffs, der knapp ist, konfiguriert sein, während noch eine weitere der Zielfunktionen64 zum Maximieren der Qualität des im Prozess50 hergestellten Produkts konfiguriert sein kann. Allgemein verwendet die Zielfunktion einen mit jeder Bewegung einer Steuer-, Hilfs- und Stellvariable verknüpften Kosten- oder Erlöswert, um den optimalen Prozessarbeitspunkt innerhalb des Satzes von akzeptablen Punkten, wie durch die Sollwerte oder -bereiche der Steuervariablen CV und die Grenzen der Hilfs- und Stellvariablen AV und MV definiert, zu bestimmen. Natürlich kann jede beliebige gewünschte Zielfunktion anstelle der oder zusätzlich zu den hierin beschriebenen verwendet werden, einschließlich Zielfunktionen, welche jeden einzelnen aus einer Anzahl von Aspekten wie Rohstoffverbrauch, Rentabilität usw. bis zu einem bestimmten Grad optimieren.Theoptimizer 54 For example, in this example, a linear programming (LP) optimizer that uses an objective function (OF) from aselection block 62 can be delivered to perform the process optimization. Alternatively, the optimizer could 54 a quadratic programming optimizer, which is an optimizer with a linear model and a quadratic objective function. Generally, the objective function OF determines each cost or revenue associated with a number of control, auxiliary, and manipulated variables (commonly referred to as process variables) and determines theoptimizer 54 Find target values for these variables by finding a set of process variables that maximize or minimize the objective function. Theselection block 62 that can be sent to theoptimizer 54 provided target function OF as one of a set of prestored target functions 64 choose which mathematically different types, the optimal operation of theprocess 50 to define, represent. For example, one of the pre-storedobjective functions 64 may be configured to maximize the revenue of the attachment, another of theobjective functions 64 to minimize the consumption of a particular resource that is scarce, while still another of theobjective functions 64 to maximize the quality of theprocess 50 configured product can be configured. In general, the objective function uses a cost or revenue value associated with each movement of a control, auxiliary, and manipulated variable to determine the optimal process operating point within the set of acceptable points, such as the set values or ranges of the control variable CV and the limits of the auxiliary and Control variables AV and MV defined to be determined. Of course, any desired objective function may be used in lieu of or in addition to those described herein, including objective functions that optimize each of them to a certain extent from a number of aspects such as resource consumption, profitability, etc.

Ein Benutzer oder Bediener kann eine der Zielfunktionen64 auswählen, indem er an einem Bediener- oder Benutzerterminal (beispielsweise an einer der Workstations13 aus1) eine Angabe zur zu verwendenden Zielfunktion64 macht, welche Auswahl über einen Eingang66 an den Auswahlblock62 gegeben wird. Als Antwort auf den Eingang66 liefert der Auswahlblock62 die ausgewählte Zielfunktion OF an den Optimierer54. Natürlich kann der Benutzer oder Bediener die zu verwendende Zielfunktion während des Betriebs des Prozesses ändern. Falls gewünscht, kann in Fällen, in denen der Benutzer keine Zielfunktion angibt oder auswählt, eine Vorgabe-Zielfunktion verwendet werden. Eine mögliche Vorgabe-Zielfunktion wird nachfolgend noch ausführlicher erörtert. Obwohl sie als Bestandteile des hochentwickelten Steuerblocks38 dargestellt sind, können die verschiedenen Zielfunktionen im Bedienerterminal13 aus1 gespeichert sein und kann eine dieser Zielfunktionen während der Erschaffung oder Erzeugung des hochentwickelten Steuerblock38 an diesen geliefert werden.A user or operator may have one of theobjective functions 64 by clicking on an operator or user terminal (for example, on one of theworkstations 13 out 1 ) an indication of the target function to be used 64 does what selection via aninput 66 to theselection block 62 is given. In response to theentrance 66 delivers theselection block 62 the selected objective function OF to theoptimizer 54 , Of course, the user or operator may change the objective function to be used during the operation of the process. If desired, a default destination function can be used in cases where the user does not specify or select a destination function. A possible default objective function will be discussed in more detail below. Although they are considered components of theadvanced control block 38 The various target functions can be displayed in theoperator terminal 13 out 1 can be stored and one of these objective functions during the creation or generation of theadvanced control block 38 be delivered to these.

Zusätzlich zur Zielfunktion OF empfängt der Optimierer54 als Eingänge einen Satz von Steuervariablen-Sollwerten (welche üblicherweise vom Bediener festgelegte Sollwerte für die Steuervariablen CV des Prozesses50 sind und vom Bediener oder einem anderen Benutzer geändert werden können) und einen mit jeder einzelnen der Steuervariablen CV verknüpften Bereich sowie ein damit verknüpftes Gewicht oder eine damit verknüpfte Priorität. Außerdem empfängt der Optimierer54 einen Satz von Bereichen oder Beschränkungsgrenzen und einen Satz von Gewichten oder Prioritäten für die Hilfsvariablen AV und einen Satz von Grenzen für die Stellvariablen MV, welche zum Steuern des Prozesses50 verwendet werden. Der Optimierer54 kann auch Sollwerte, bevorzugte Arbeitsbereiche, ideale Ruhewerte oder andere Grenzen, welche mit einer oder mehreren der Prozessvariablen verknüpft sind, empfangen. Allgemein definieren die Bereiche für die Hilfs- und Stellvariablen die (gewöhnlich auf den physikalischen Eigenschaften der Anlage beruhenden) Grenzen für die Hilfs- und Stellvariablen, wohingegen die Bereiche für die Steuervariablen einen Bereich liefern, in welchem die Steuervariablen zur befriedigenden Steuerung des Prozesses arbeiten können. Die Gewichte für die Steuer-, Hilfs- und Stellvariablen können die relative Bedeutung der Steuervariablen, der Hilfsvariablen und der Stellvariablen bezüglich einander während des Optimierungsprozesses festlegen und können unter manchen Umständen verwendet werden, um dem Optimierer54 zu ermöglichen, eine Steuerungszielwert-Lösung zu erzeugen, wenn einige der mit diesen Variablen verknüpften Beschränkungen oder Grenzen übertreten werden müssen.In addition to the objective function OF, the optimizer receives 54 as inputs a set of control variable setpoints (which are commonly set by the operator setpoints for the control variable CV of theprocess 50 and can be changed by the operator or another user) and an area associated with each one of the control variables CV, and any associated weight or priority. In addition, the optimizer receives 54 a set of ranges or limits of limitation and a set of weights or priorities for the auxiliary variables AV and a set of limits for the manipulated variables MV used to control theprocess 50 be used. Theoptimizer 54 may also receive setpoints, preferred workspaces, ideal rest values, or other bounds associated with one or more of the process variables. Generally, the ranges for the auxiliary and manipulated variables define the limits (usually based on the physical characteristics of the system) for the auxiliary and manipulated variables, whereas the ranges for the control variables provide a range in which the control variables can operate for satisfactory control of the process , The weights for the control, auxiliary and manipulated variables may determine the relative importance of the control variables, the auxiliary variables and the manipulated variable with respect to each other during the optimization process and may in some circumstances be used by theoptimizer 54 to enable a control target solution to be created when some of the constraints or bounds associated with these variables must be breached.

Während des Betriebs kann der Optimierer54 ein lineares Programmierungsverfahren (LP-Verfahren) verwenden, um die Optimierung durchzuführen. Bekanntermaßen ist lineare Programmierung ein mathematisches Verfahren zum Lösen eines Satzes von linearen Gleichungen und Ungleichungen, das eine gewisse Zusatzfunktion, die als Zielfunktion bezeichnet wird, maximiert oder minimiert. Wie oben erörtert, kann die Zielfunktion einen wirtschaftlichen Wert wie Kosten oder Erlös ausdrücken, aber anstelle von oder zusätzlich zu wirtschaftlichen Zielen kann sie auch andere Ziele ausdrücken. Außerdem kann die Zielfunktion, wie oben erörtert, maßgeschneidert werden, so dass sie mit dem Übertreten von Beschränkungen oder Grenzen verknüpfte Kosten oder Strafen enthält, um der zu verwendenden Zielfunktion zu ermöglichen, eine akzeptable Lösung zu bestimmen, wenn es keine Lösung gibt, die alle CVs, AVs und MVs innerhalb der voreingestellten Grenzen hält.During operation, the optimizer can 54 use a linear programming (LP) method to perform the optimization. As is well known, linear programming is a mathematical method for solving a set of linear equations and inequalities that maximizes or minimizes some additional function called the objective function. As discussed above, the objective function may express an economic value such as cost or revenue, but instead of or in addition to economic goals, it may also express other goals. In addition, as discussed above, the objective function may be tailored to include costs or penalties associated with violating restrictions or limits in order to allow the objective function to be used to determine an acceptable solution if there is no solution, all Keep CVs, AVs, and MVs within their preset limits.

Es versteht sich, dass die Matrix der stationären Verstärkungen die stationäre Verstärkung für jedes mögliche Paar der Stellvariablen und der Steuer- oder Hilfsvariablen definiert. In anderen Worten, die Matrix der stationären Verstärkungen definiert die stationäre Verstärkung in jeder Steuer- und Hilfsvariable für eine Einheitsänderung in jeder der Stell- und Störvariablen. Diese Matrix der stationären Verstärkungen ist in der Regel eine N-mal-M-Matrix, wobei N die Anzahl der Steuer- und Hilfsvariablen und M die Anzahl der Stellvariablen ist, welche in der Optimiererroutine verwendet werden. Allgemein kann N größer als, gleich oder kleiner als M sein, wobei N meistens größer als M ist.It is understood that the matrix of steady state gains defines the steady state gain for each possible pair of manipulated variable and control or auxiliary variable. In other words, the steady state gain matrix defines the steady state gain in each control and auxiliary variable for a unit change in each of the set and disturb variables. This matrix of steady state gains is typically an N by M matrix, where N is the number of control and auxiliary variables and M is the number of manipulated variables used in the optimizer routine. Generally, N may be greater than, equal to or less than M, where N is usually greater than M.

Bei Verwendung eines beliebigen bekannten oder standardgemäßen LP-Algorithmus oder -Verfahrens geht der Optimierer54 in der Regel iterativ vor, um den Satz von Zielwert-Stellvariablen MVT (wie aus der Matrix der stationären Verstärkungen bestimmt) zu bestimmen, welche die ausgewählte Zielfunktion OF maximieren oder minimieren, wobei er, falls möglich, einen Prozessbetrieb erzielt, der innerhalb der Steuervariablen-(CV-)Sollbereichsgrenzen, der Hilfsvariablen-(AV-)Beschränkungsgrenzen und der Stellvariablen-(MV-)Grenzen bleibt. In einer Ausführungsform bestimmt der Optimierer54 die Änderung in den Stellvariablen und verwendet die Angabe der vorhergesagten stationären Steuervariablen, Hilfsvariablen und Stellvariablen CVSSfil, AVSSfil und MVSSfil, um die Änderungen im Prozessbetrieb aus seinem aktuellen Betrieb zu bestimmen, das heißt, um während des Prozesses des Erreichens des Zielwerts oder optimalen Prozess-Arbeitspunkts den dynamischen Betrieb der MPC-Steuerroutine zu bestimmen. Dieser dynamische Betrieb ist wichtig, da es wünschenswert ist, sicherzustellen, dass keine der Beschränkungsgrenzen während der Bewegung vom aktuellen Arbeitspunkt zum Ziel-Arbeitspunkt übertreten wird.Using any known or standard LP algorithm or method, the optimizer goes 54 usually iteratively to determine the set of target variable MVT (as determined from the matrix of steady state gains) which maximize or minimize the selected objective function OF, and, if possible, achieve a process operation within the Control variable (CV) set point limits, the auxiliary variable (AV) limit limits, and the set variable (MV) limits. In one embodiment, the optimizer determines 54 the change in the manipulated variable and uses the indication of the predicted steady state control variables, auxiliary variables and manipulated variable CVSSfil , AVSSfil and MVSSfil to determine the changes in process mode from its current operation, that is, during the process of reaching the target value or optimal process operating point to determine the dynamic operation of the MPC control routine. This dynamic operation is important because it is desirable to ensure that none of the restriction limits during the movement is transited from the current operating point to the target operating point.

In einer Ausführungsform kann der LP-Optimierer54 so ausgelegt werden, dass er eine Zielfunktion der folgenden Form minimiert:Q = Pt·A·ΔMV + CtΔMV (1)wobei:

Q
= Gesamtkosten/Erlös;
P
= mit AVs und CVs verknüpfter Erlösvektor;
C
= mit MVs verknüpfter Kostenvektor;
A
= Verstärkungsmatrix; und
ΔMV
= Vektor für berechnete Änderung in MVs.
In one embodiment, theLP optimizer 54 be designed to minimize an objective function of the following form: Q = Pt * A * ΔMV + Ct ΔMV (1) in which:
Q
= Total cost / revenue;
P
= revenue vector associated with AVs and CVs;
C
= cost vector associated with MVs;
A
= Gain matrix; and
delta MV
= Vector for calculated change in MVs.

Die Erlöswerte sind generell positive und die Kostenwerte generell negative Zahlen, damit ihr Einfluss auf das Ziel erkennbar ist. Unter Verwendung dieser oder einer anderen Zielfunktion berechnet der IP-Optimierer54 die Änderungen in den Stellvariablen MV, welche die Zielfunktion minimieren und gleichzeitig sicherstellen, dass die Steuervariablen CV innerhalb eines Bereichs um ihren Ziel-Sollwert bleiben, dass die Hilfsvariablen AV innerhalb ihrer Beschränkungs-Ober- und Untergrenzen liegen und dass die Stellvariablen MV innerhalb ihrer Ober- und Untergrenzen liegen.The revenue values are generally positive and the cost values are generally negative numbers, so that their impact on the goal can be seen. Using this or another objective function, the IP optimizer calculates 54 the changes in the manipulated variables MV minimizing the objective function while ensuring that the CV control variables remain within a range of their target setpoint, that the AV auxiliary variables are within their upper and lower bounded limits, and that the MV manipulated variables are within their upper limits and lower limits.

In einer Optimierungsprozedur, die verwendet werden kann, werden zur augenblicklichen Zeit (t) Inkrementalwerte von Stellvariablen verwendet und wird über den Vorhersagehorizont eine Summe von Inkrementen von Stellvariablen verwendet, wobei am Ende des Vorhersagehorizonts Inkrementalwerte von Steuer- und Hilfsvariablen bestimmt werden statt, wie in LP-Anwendungen üblich, aktuelle Positionswerte. Natürlich kann der LP-Algorithmus für diese Abwandlung entsprechend verändert werden. Auf jeden Fall kann der LP-Optimierer54 ein stationäres Modell verwenden, und folglich ist in der Regel ein stationärer Zustand für seine Anwendung erforderlich. Mit einem Vorhersagehorizont, wie er bei der Auslegung einer MPC normalerweise verwendet wird, ist ein zukünftiger stationärer Zustand für einen selbstregelnden Prozess gewährleistet. Eine mögliche Gleichung des stabilen Zustands eines vorhergesagten Prozesses für einen m-mal-n-Eingangs-Ausgangs-Prozess mit Vorhersagehorizont p, Steuerhorizont c, in inkrementaler Form ausgedrückt, lautet:ΔCV(t + p) = A·ΔMV(t + c) (2)wobei:

Figure DE000010341762B4_0002
vorhergesagte Änderungen in Ausgängen am Ende des Vorhersagehorizonts (t + p) angibt,
Figure DE000010341762B4_0003
die m-mal-n-Verstärkungsmatrix des stabilen Zustands des Prozesses ist, und
Figure DE000010341762B4_0004
Änderungen in Stellvariablen am Ende des Steuerhorizonts (t + c) angibt.In an optimization procedure that can be used, incremental values of manipulated variables are used at the current time (t) and a sum of increments of manipulated variables is used over the prediction horizon, incremental values of control and auxiliary variables being determined at the end of the prediction horizon, as in LP applications common, current position values. Of course, the LP algorithm for this modification can be changed accordingly. In any case, theLP Optimizer 54 use a stationary model, and consequently a steady state condition is required for its application. With a predictive horizon, as normally used in the design of an MPC, a future stationary state for a self-regulating process is ensured. A possible steady state equation of a predicted process for an m-by-n input-output process with a prediction horizon p, control horizon c, expressed in incremental form, is: ΔCV (t + p) = A · ΔMV (t + c) (2) in which:
Figure DE000010341762B4_0002
predicted changes in outputs at the end of the forecast horizon (t + p),
Figure DE000010341762B4_0003
is the m-by-n gain matrix of the stable state of the process, and
Figure DE000010341762B4_0004
Indicates changes in manipulated variables at the end of the tax horizon (t + c).

Der Vektor ΔMV(t + c) stellt die Summe der von jedem Steuereinrichtungs-Ausgang mvi gemachten Änderungen über den Steuerhorizont dar, so dass:

Figure DE000010341762B4_0005
The vector ΔMV (t + c) represents the sum of the changes made over the control horizon by each controller output mvi such that:
Figure DE000010341762B4_0005

Die Änderungen sollten vorzugsweise den Grenzen sowohl der Stellvariablen MV als auch der Steuervariablen CV genügen (hier werden Hilfsvariablen als Steuervariablen behandelt), so dass:MVmin ≤ MVaktuell + ΔMV(t + c) ≤ MVmax (4)CVmin ≤ CVvorhergesagt + ΔCV(t + p) ≤ CVmax (5)The changes should preferably satisfy the limits of both the variable MV and the control variable CV (here auxiliary variables are treated as control variables), so that: MVmin ≤ MVactual + ΔMV (t + c) ≤ MVmax (4) CVmin ≤ CVpredicted + ΔCV (t + p) ≤ CVmax (5)

In diesem Fall kann die Zielfunktion zum Maximieren des Produktwerts und zum Minimieren der Rohstoffkosten gemeinsam definiert werden als:

Figure DE000010341762B4_0006
wobei:
UCV der Kostenvektor für eine Einheitsänderung im Steuervariablen-(CV-)Prozesswert ist; und
UMV der Kostenvektor für eine Einheitsänderung im Stellvariablen-(MV-)Prozesswert ist.In this case, the objective function to maximize product value and minimize raw material costs can be defined together as:
Figure DE000010341762B4_0006
in which:
UCV is the cost vector for a unit change in the control variable (CV) process value; and
UMV is the cost vector for a unit change in the variable variable (MV) process value.

Bei Anwendung der obenstehenden Gleichung (1) kann die Zielfunktion in Form von Stellvariablen MV ausgedrückt werden als:

Figure DE000010341762B4_0007
Using the above equation (1), the objective function can be expressed in the form of manipulated variables MV as:
Figure DE000010341762B4_0007

Um eine optimale Lösung zu finden, berechnet der LP-Algorithmus die Zielfunktion für einen anfänglichen Scheitelpunkt im durch Gleichung (7) definierten Bereich und verbessert die Lösung in jedem nächsten Schritt, bis der Algorithmus den Scheitelpunkt mit dem maximalen (oder minimalen) Wert der Zielfunktion als optimale Lösung bestimmt. Die bestimmten optimalen Stellvariablenwerte werden dann als die innerhalb des Steuerhorizonts zu erreichenden Zielwert-Stellvariablen MVT auf die Steuereinrichtung angewendet oder an diese geliefert.To find an optimal solution, the LP algorithm calculates the objective function for an initial vertex in the range defined by Equation (7), and improves the solution in each next step until the algorithm peaks at the maximum (or minimum) value of the objective function determined as optimal solution. The determined optimal manipulated variable values are then applied to or supplied to the controller as the target value manipulated variable MVT to be reached within the control horizon.

Allgemein ergibt das Anwenden des LP-Algorithmus auf die vorbereitete Matrix drei mögliche Ergebnisse. Erstens, es gibt eine eindeutige Lösung für die Zielwert-Stellvariablen MVT. Zweitens, die Lösung ist unbegrenzt, was nicht passieren sollte, wenn jede Steuer- und Hilfsvariable eine Ober- und eine Untergrenze hat. Drittens, es gibt keine Lösung, welche die Grenzen der Prozessvariablen einhält, was bedeutet, dass die Grenzen oder Beschränkungen der Prozessvariablen zu eng sind. Um den dritten Fall zu handhaben, können die Gesamtbeschränkungen gelockert werden und kann der Optimierer mit den gelockerten Beschränkungen erneut ausgeführt werden, um eine Lösung zu erhalten. Die Grundannahme ist, dass die Grenzen von Stellvariablen (Ober-/Untergrenzen) vom Optimierer nicht geändert werden können, obwohl diese Annahme nicht zutreffen muss. Dieselbe Annahme kann auch für Beschränkungen oder Grenzen der Hilfsvariablen (Ober-/Untergrenzen) verwendet werden. Jedoch kann der Optimierer vom Treiben der Steuervariable CV gegen die festgelegten Sollwerte (von der CV-Sollwertregelung) zum Treiben der Steuervariablen gegen irgendeinen der Werte innerhalb eines Bereichs um den Sollwert (zur CV-Bereichsregelung) wechseln. In diesem Fall dürfen die Werte der Steuervariablen statt auf einem genauen Sollwert innerhalb eines Bereichs liegen. Wenn es mehrere Hilfsvariablen AV gibt, die ihre Beschränkungen übertreten, und das Umschalten von CV-Sollwertregelung auf CV-Bereichsregelung keine Lösung liefert, ist es auch möglich, die Beschränkungen der Hilfsvariablen auf Grundlage der jeweiligen Gewichte oder Prioritätsangaben zu lockern oder zu ignorieren. In einer Ausführungsform konnte durch Minimieren des ins Quadrat erhobenen Fehlers der Hilfsvariablen, was jeder einzelnen gestattete, ihre jeweilige Beschränkung zu übertreten, oder durch aufeinanderfolgendes Fallenlassen von Beschränkungen der Hilfsvariablen mit niedrigster Priorität eine Lösung bestimmt werden. Wie nachfolgend ausführlicher beschrieben wird, zählen zu anderen Arten des Umgangs mit außerhalb der Grenzen liegenden Lösungen das Abändern der Zielfunktion, so dass sie Spielraumvariablen oder Strafvariablen enthält, welche einen Kostenwert oder eine Strafe für jede Prozessvariable, die eine voreingestellte Grenze oder Beschränkung übertritt, auferlegen, und das erneute Ausführen des Optimierers mit der neuen Zielfunktion und/oder das Neudefinieren der Grenzen für eine oder mehrere außerhalb der Grenzen liegende Prozessvariablen, das Abändern der Zielfunktion, so dass sie Strafen für die innerhalb der neuen Grenzen liegenden Prozessvariablen enthält, um diese Variablen gegen die ursprünglichen Grenzen zu treiben, und das erneute Ausführen des Optimierers mit der neuen Zielfunktion, um die optimale Lösung innerhalb dieser neu definierten Grenzen zu finden. Zuerst wird aber ein Verfahren des anfänglichen Auswählens einer Zielfunktion beschrieben.Generally, applying the LP algorithm to the prepared matrix gives three possible results. First, there is a definite solution for the target value variable MVT. Second, the solution is unlimited, which should not happen if each control and auxiliary variable has upper and lower bounds. Third, there is no solution that adheres to the limits of process variables, which means that the limits or limitations of process variables are too narrow. In order to handle the third case, the overall constraints can be relaxed and the optimizer with the relaxed constraints can be re-executed to get a solution. The basic assumption is that the limits of manipulated variables (upper / lower limits) can not be changed by the optimizer, although this assumption does not have to apply. The same assumption can also be used for restrictions or limits of the auxiliary variables (upper / lower limits). However, the optimizer may switch from driving the control variable CV against the set target values (from the CV setpoint control) to drive the control variable against any of the values within a range around the target value (for CV range control). In this case, the values of the control variables may be within a range instead of an exact setpoint. If there are several auxiliary variables AV overriding their limitations, and switching from CV setpoint control to CV range control does not provide a solution, it is also possible to relax or ignore the constraints of the auxiliary variables based on the respective weights or priority indications. In one embodiment, by minimizing the squared error of the auxiliary variable, each allowed each to violate their respective constraints, or by sequentially dropping constraints on the lowest priority helper variables, a solution could be determined. As will be described in more detail below, other ways of dealing with out-of-limits solutions include modifying the objective function to include margin variables or penalty variables that impose a cost value or penalty for each process variable that exceeds a preset limit or constraint and re-executing the optimizer with the new objective function and / or redefining the boundaries for one or more out-of-bounds process variables, modifying the objective function to include penalties for the process variables within the new bounds to those variables to push against the original limits, and to re-run the optimizer with the new objective function to find the optimal solution within these newly defined limits. First, however, a method of initially selecting a target function will be described.

Wie oben erwähnt, kann die Zielfunktion OF gewählt oder vom Programm zur Erzeugung von Steuerblöcken40 als Vorgabe eingestellt werden. Obwohl es wünschenswert ist, die Fähigkeit zum Optimieren zu schaffen, können viele Situationen lediglich erfordern, dass Sollwerte für die Steuervariablen auf eine Weise gehalten werden, welche die Betriebsbeschränkungen der Hilfsvariablen und Stellvariablen noch beachtet. Für diese Anwendungen kann der Block38 so konfiguriert werden, dass er ausschließlich als MPC-Funktionsblock arbeitet. Um diese Benutzerfreundlichkeit zu ermöglichen, kann eine Vorgabe-”Bedienungs”-Zielfunktion mit den verschiedenen Variablen darin zugewiesenen vorgegebenen Kosten nebst den vorgegebenen Hilfsvariablen-(AV-)Gewichten automatisch erzeugt werden. Diese Vorgaben können alle Kosten für die Hilfsvariablen AV und die Stellvariablen MV gleich einstellen oder eine andere vorbestimmte Zuweisung von Kosten zu den Hilfs- und Stellvariablen AV und MV schaffen. Wenn eine Option für erfahrene Benutzer ausgewählt ist, kann der Benutzer zusätzliche Optimierungsauswahlen erzeugen und die mit diesen verknüpften Kosten für die verschiedenen Zielfunktionen64 definieren. Dem erfahrenen Benutzer kann auch gestattet werden, die Hilfsvariablen-(AV-) und Steuervariablen-(CV-)Vorgabegewichte der Vorgabe-Zielfunktion sowie die Beschränkungsgrenzen- oder Sollwertbereichs-Übertretungskosten zu verändern, welche nachfolgend ausführlicher beschrieben werden und welche vom Optimierer verwendet werden können, wenn der Optimierer anfänglich keine realisierbare Lösung finden kann.As mentioned above, the objective function OF may be selected or by the program for generating control blocks 40 be set as default. While it is desirable to provide the ability to optimize, many situations may only require that setpoints for the control variables be maintained in a manner that still respects the operating limitations of the auxiliary variables and manipulated variables. For these applications, theblock 38 be configured to work exclusively as an MPC function block. To facilitate this ease of use, a default "operation" target function with the various variables assigned therein may be automatically generated along with the default auxiliary variable (AV) weights. These defaults can set all costs for the auxiliary variables AV and the manipulated variable MV equal or provide another predetermined allocation of costs to the auxiliary and manipulated variables AV and MV. If an advanced user option is selected, the user can generate additional optimization choices and the associated costs for the variousobjective functions 64 define. The experienced user may also be allowed to change the default variable target auxiliary variable (AV) and control variable (CV) default weights, as well as the restriction limit or set point violation costs, which are described in more detail below and which may be used by the optimizer if the optimizer initially can not find a viable solution.

In einer Ausführungsform kann die Zielfunktion, wenn zum Beispiel wirtschaftliche Faktoren für die Prozesskonfiguration nicht definiert sind, automatisch aus der MPC-Konfiguration erstellt werden. Im Allgemeinen kann die Zielfunktion mittels folgender Formel ersteht werden.In one embodiment, for example, if economic factors for the process configuration are not defined, the objective function may be automatically created from the MPC configuration. In general, the objective function can be established by means of the following formula.

Figure DE000010341762B4_0008
Figure DE000010341762B4_0008

Die Variablen Cj und pj können aus den Konfigurationseinstellungen definiert werden. Insbesondere unter der Annahme, dass der Steuervariablen-(CV-)Sollwert nur an einer Untergrenze (LL) oder an einer Obergrenze (HL) definiert werden kann, kann der Wert pj auf die folgende Weise definiert werden:
pj = –1, wenn der Sollwert bei LL definiert oder ”Minimieren” ausgewählt ist; und
pj = 1, wenn der Sollwert bei HL definiert oder ”Maximieren” ausgewählt ist.
The variables Cj and pj can be defined from the configuration settings. Specifically, assuming that the control variable (CV) setpoint can be defined only at a lower limit (LL) or an upper limit (HL), the value pj can be defined in the following manner:
pj = -1 if the setpoint is defined at LL or "Minimize" is selected; and
pj = 1 when the setpoint is defined at HL or "Maximize" is selected.

Unter der Annahme, dass für die Hilfsvariablen AV keine Konfigurationsinformationen eingegeben sind, ist pj = 0 für alle Hilfsvariablen AV. Entsprechend hängt für die Stellvariablen MV der Wert Cj davon ab, ob der bevorzugte Stellvariablen-Zielwert MVT definiert ist oder nicht. Wo der bevorzugte Stellvariablen-Zielwert MVT definiert ist, gilt:
Cj = 1, wenn MVT bei HL liegt oder ”Maximieren” ausgewählt ist;
Cj = –1, wenn MVT bei LL liegt oder ”Minimieren” ausgewählt ist; und
Cj = 0, wenn MVT nicht definiert ist.
Assuming that no configuration information has been entered for the auxiliary variable AV, pj = 0 for all auxiliary variables AV. Accordingly, for the manipulated variable MV, the value Cj depends on whether the preferred manipulated variable target value MVT is defined or not. Where the preferred variable target MVT is defined, the following applies:
Cj = 1 if MVT is HL or "maximize" is selected;
Cj = -1 if MVT is LL or Minimize is selected; and
Cj = 0 if MVT is not defined.

Falls gewünscht, kann die Auswahl der Verwendung des Optimierers54 in Verbindung mit der MPC-Steuereinrichtung52 einstellbar sein, um dadurch einen Optimierungsgrad zu schaffen. Um diese Funktion durchzuführen, kann die von der Steuereinrichtung52 verwendete Änderung in den Stellvariablen MV durch Anwenden verschiedener Gewichte auf die durch die MPC-Steuereinrichtung52 und den Optimierer54 bestimmte Änderung in den Stellvariablen MV abgeändert werden. Ein solche gewichtete Kombination der Stellvariablen MV wird hierin als eine effektive MV (MVeff) bezeichnet. Die effektive MVeff kann bestimmt werden als:ΔMVeff = ΔMVmpc(1 + α/S) + ΔMVopt(1 – α) 0 < α < 1 (9)wobei S willkürlich oder heuristisch ausgewählt wird. Üblicherweise ist S größer als eins und kann im Bereich von zehn liegen. Hier trägt der Optimierer bei α = 1 zum effektiven Ausgang bei, wie er bei der Erzeugung eingestellt wurde. Bei α = 0 liefert die Steuereinrichtung nur dynamische MPC-Steuerung. Natürlich liefert der Bereich zwischen 0 und 1 verschiedene Beiträge von Optimierer und MPC-Steuerung.If desired, the choice of using theoptimizer 54 in conjunction with theMPC controller 52 be adjustable, thereby creating an optimization level. To perform this function, that of thecontroller 52 used change in the variable MV by applying different weights to it by theMPC controller 52 and theoptimizer 54 certain change in the manipulated variable MV be changed. Such a weighted combination of the variable MV is referred to herein as an effective MV (MVeff ). The effective MVeff can be determined as: ΔMVeff = ΔMVmpc (1 + α / S) + ΔMVopt (1-α) 0 <α <1 (9) where S is chosen arbitrarily or heuristically. Usually, S is greater than one and may be in the range of ten. Here, at α = 1, the optimizer contributes to the effective output as set during generation. At α = 0, the controller provides only dynamic MPC control. Of course, the range between 0 and 1 provides different contributions from optimizer and MPC control.

Die oben beschriebene Vorgabe-Zielfunktion kann verwendet werden, um den Betrieb des Optimierers während verschiedener möglicher Betriebsarten desselben festzusetzen. Insbesondere wenn die Anzahl der Steuervariablen CVs mit der Anzahl der Stellvariablen MVs übereinstimmt, besteht das erwartete Verhalten bei der Vorgabeeinstellung darin, dass die Steuervariablen-(CV-)Sollwerte gehalten werden, solange die Hilfsvariablen AVs und die Stellvariablen MVs voraussichtlich innerhalb ihrer Grenzen liegen werden. Wenn vorhergesagt wird, dass eine Hilfsvariable oder eine Stellvariable ihre Grenze übertreten wird, können die Betriebs-Sollwerte der Steuervariablen innerhalb ihrer Bereiche geändert werden, um, falls möglich, zu verhindern, dass diese Grenzen übertreten werden. Wenn in diesem Fall der Optimierer54 keine Lösung finden kann, welche, während die Steuervariablen innerhalb ihres Bereich gehalten werden, den Hilfs- und Stellvariablen-Grenzen genügt, können die Steuervariablen innerhalb ihres Bereichs gehalten werden, während den Hilfs- und/oder Stellvariablen gestattet wird, von ihren Beschränkungsgrenzen abzuweichen. Beim Finden der besten Lösung können jene Hilfsvariablen AVs und Stellvariablen MVs, die voraussichtlich eine Grenze übertreten werden, gleich behandelt und ihre mittlere Grenzabweichung minimiert werden. Um dieses Verhalten zu erreichen, kann der von der Zielfunktion verwendete Kosten/Erlös-Vorgabewert automatisch so eingestellt werden, dass den Steuervariablen CV ein Erlös von 1 zugewiesen wird, wenn der Bereich so definiert ist, dass er eine Abweichung unter dem Sollwert zulässt, und ein Erlös von –1, wenn der Bereich so definiert ist, dass er eine Abweichung über dem Sollwert zulässt. Den Hilfsvariablen AVs innerhalb der Grenzen kann ein Erlös von 0 zugewiesen werden und den Stellvariablen MVs kann ein Kostenwert von 0 zugewiesen werden. Alternativ kann den Hilfsvariablen ein Erlös von 1 oder –1 und den Stellvariablen ein Kostenwert von 0,1 zugewiesen werden.The default objective function described above can be used to set the operation of the optimizer during various possible modes of operation thereof. Especially if the number of If the control variable CVs matches the number of manipulated variables MVs, the expected behavior in the default setting is to hold the control variable (CV) setpoints as long as the auxiliary variables AVs and the manipulated variables MVs are expected to be within their limits. If it is predicted that an auxiliary variable or manipulated variable will exceed its limit, the operating setpoints of the control variables may be changed within their ranges to prevent, if possible, these limits from being exceeded. If in this case theoptimizer 54 can not find a solution which, while the control variables are kept within their range, satisfies the auxiliary and manipulated variable limits, the control variables can be kept within their range while the auxiliary and / or manipulated variables are allowed to deviate from their limitation limits. In finding the best solution, those auxiliary variables AVs and manipulated variables MVs that are likely to cross a limit can be treated equally and their mean limit deviation minimized. To achieve this behavior, the cost / revenue preset used by the objective function can be automatically set to give the control variable CV a revenue of 1 if the range is defined to allow deviation below the target value, and a revenue of -1 if the range is defined to allow a deviation above the setpoint. The auxiliary variables AVs within the limits can be assigned a revenue of 0 and the variable MVs can be assigned a cost value of 0. Alternatively, the auxiliary variables may be assigned a revenue of 1 or -1 and the variable variables a cost of 0.1.

Wenn die Anzahl der Steuervariablen CVs kleiner als die Anzahl von Stellvariablen MVs ist, können die zusätzlichen Freiheitsgrade verwendet werden, um die mit der konfigurierten Stellvariablen-(MV-)End-Ruheposition verbundenen Anforderungen zu befriedigen. Hier können die Steuervariablen-Sollwerte (falls irgendwelche Steuervariablen-(CV-)Sollwerte definiert sind) gehalten werden, solange die Hilfs- und Stellvariablen voraussichtlich innerhalb ihrer Grenzen liegen werden. Die mittlere Abweichung der Stellvariablen von der konfigurierten End-Ruheposition wird minimiert. Wenn für eine oder mehrere der Hilfs- und Stellvariablen vorhergesagt wird, dass sie ihre Grenzen übertreten werden, können die Betriebs-Sollwerte der Steuervariablen innerhalb ihrer Bereiche geändert werden, um zu verhindern, dass diese Grenzen übertreten werden. Unter dieser Bedingung kann, wenn es mehrere Lösungen gibt, die zur Steuerung verwendete Lösung die Lösung sein, welche die mittlere Abweichung der Stellvariablen von der konfigurierten End-Ruheposition minimiert.If the number of control variables CVs is less than the number of manipulated variables MVs, the additional degrees of freedom may be used to satisfy the requirements associated with the configured manipulated variable (MV) end rest position. Here, the control variable setpoints (if any control variable (CV) setpoints are defined) can be held as long as the auxiliaries and manipulated variables are expected to be within their limits. The mean deviation of the manipulated variable from the configured end rest position is minimized. If one or more of the auxiliary and manipulated variables are predicted to cross their limits, the operating setpoints of the control variables within their ranges may be changed to prevent these limits from being exceeded. Under this condition, if there are multiple solutions, the solution used for control may be the solution that minimizes the mean deviation of the manipulated variable from the configured end rest position.

In normalen Situationen liegen die vom Optimierer54 auf die oben beschriebene Weise entwickelten Ziel-Sollwerte innerhalb akzeptabler Bereiche und bleiben die Stell-, Hilfs- und Steuervariablen innerhalb der voreingestellten Grenzen oder Bereiche. Wenn aber die Störungen zu schwerwiegend sind, um innerhalb der Beschränkungsgrenzen ausgeglichen zu werden, werden einige Beschränkungen übertreten, in welchem Fall der Optimierer54 möglicherweise nicht in der Lage ist, unter Verwendung der vorgegebenen oder ausgewählten Zielfunktion mit den oben beschriebenen Sollwertlockerungsverfahren eine realisierbare Lösung (d. h. eine Lösung, in welcher keine der Beschränkungen oder Grenzen übertreten wird) zu finden. Zu den möglichen Weisen, unter diesen Umständen für Optimierung zu sorgen, zählen der Verzicht auf jede Optimierungsmaßnahme und das Fallenlassen von Beschränkungen niedrigerer Priorität.In normal situations they are the ones of theoptimizer 54 In the manner described above, target targets developed within acceptable ranges and the control, auxiliary and control variables remain within preset limits or ranges. But if the disturbances are too severe to be balanced within the constraint limits, some constraints will be violated, in which case theoptimizer 54 may not be able to find a viable solution (ie, a solution in which none of the constraints or limits will be transgressed) using the predetermined or selected objective function with the above-described setpoint arbitration methods. Possible ways to optimize in these circumstances include not taking any optimization action and dropping lower priority restrictions.

Während der Verzicht auf Optimierung die einfachste mögliche Weise ist, mit einer nicht realisierbaren Lösung umzugehen, ist es nicht das beste Verfahren zur Handhabung von Beschränkungen, weil, wenn es keine realisierbare Lösung innerhalb der Grenzen gibt, es in den meisten Fällen noch möglich ist, unter Berücksichtigung der Optimierungsziele Beschränkungsübertretungen zu minimieren. Überdies ist das Fallenlassen von Beschränkungen niedrigerer Priorität eine extreme Maßnahme, die, während sie ermöglicht, Beschränkungen höherer Priorität einzuhalten, übermäßige unkontrollierte Übertretungen der Grenzen der fallengelassenen Beschränkungen zur Folge haben kann, was inakzeptabel sein kann. Ein anderes Problem beim Fallenlassen von Beschränkungen niedrigerer Priorität ist, dass abgeschätzt werden muss, wie viele Beschränkungen niedrigerer Priorität fallengelassen werden müssen, um eine Lösung zu erhalten. Eine solche Abschätzung beruht auf den im System verfügbaren Freiheitsgraden, welche Abschätzung vor der Optimierungsprozedur berechnet oder während der Prozedur bestimmt werden muss. Im letzteren Fall muss der Prozess des Entwickelns einer optimalen Lösung durch aufeinanderfolgendes Fallenlassen von Beschränkungen möglicherweise wiederholt werden, bis eine Lösung gefunden wird, und ein solcher zeitlich unbegrenzter iterativer Prozess ist in den meisten Echtzeit-Optimierungsanwendungen nicht wünschenswert.While avoiding optimization is the simplest way to handle an unrealizable solution, it is not the best way to handle constraints because if there is no viable solution within the bounds, it is still possible in most cases. taking into account the optimization objectives to minimize restriction violations. Moreover, dropping lower priority restrictions is an extreme measure that, while allowing higher priority restrictions to be met, may result in excessive uncontrolled violations of the limits of dropped restrictions, which may be unacceptable. Another problem with dropping lower priority constraints is that it must be estimated how many lower priority constraints must be dropped to get a solution. Such an estimate is based on the degrees of freedom available in the system, which estimate must be calculated before the optimization procedure or determined during the procedure. In the latter case, the process of developing an optimal solution by sequentially dropping constraints may need to be repeated until a solution is found, and such an indefinite iterative process is undesirable in most real-time optimization applications.

Es wurde jedoch entdeckt, dass es in manchen Situationen noch möglich ist, eine akzeptable Lösung zu finden, wenn die Zielfunktion ursprünglich so konfiguriert ist, dass keine realisierbare Lösung existiert, indem, je nach der Priorität der Variable und dem Ausmaß der Beschränkungsübertretung, in der Zielfunktion eine Strafe für jede Beschränkungsübertretung zugewiesen wird (was gewöhnlich als Verwenden von Spielraumvariablen in der Zielfunktion bezeichnet wird), indem die Beschränkungsgrenzen für eine oder mehrere Prozessvariablen neu definiert werden und die Zielfunktion neu definiert wird, um die Prozessvariable unter Verwendung der neu definierten Grenzen gegen die vorherige Grenze zu treiben, während anderen Prozessvariablen nicht gestattet wird, ihre ursprünglichen Beschränkungen oder Grenzen zu übertreten, oder durch eine Kombination dieser beider Verfahren.However, it has been discovered that in some situations it may still be possible to find an acceptable solution if the objective function is initially configured so that no viable solution exists, depending on the priority of the variable and the extent of the constraint violation Target function is assigned a penalty for each constraint violation (commonly referred to as using space variables in the objective function) by redefining the constraint limits for one or more process variables and redefining the objective function to use the new process variable pushing defined boundaries against the previous boundary, while other process variables are not allowed to cross their original limitations or boundaries, or by a combination of these two processes.

Insbesondere lassen sich nicht realisierbare Optimierer-Lösungen mittels des wohlbekannten Konzepts der Spielraumvariablen handhabe. Dieses Verfahren weist Strafen zu, welche auf der Priorität der übertreten werdenden Beschränkung oder auf dem Ausmaß der Grenzübertretung oder auf beidem beruhen. Obwohl nach dem Stand der Technik allgemein vorgeschlagen wurde, dass es möglich ist, bei Vorliegen von Übertretungen von Steuereinrichtungs-Beschränkungsgrenzen Spielraumvariablen beim Optimieren zu verwenden, ist den Erfindern keine konkrete Offenbarung über eine Art, dies zu tun, bekannt. Also wurde das im Folgenden beschriebene Verfahren von den Erfindern entwickelt, um Spielraumvariablen zu verwenden, um eine von einem Optimierer verwendete Zielfunktion neu zu definieren, wenn in der mittels der ursprünglichen Zielfunktion entwickelten Lösung notwendigerweise Beschränkungsübertretungen vorliegen.In particular, unrealisable optimizer solutions can be handled by the well-known concept of travel variables. This procedure will result in penalties based on the priority of the restriction being breached or on the extent of the border violation or on both. Although it has been generally suggested in the prior art that it is possible to use margin variables in optimization in the presence of violations of controller constraint limits, the inventors are not aware of any specific disclosure of a way to do so. Thus, the method described below has been developed by the inventors to use margin variables to redefine an objective function used by an optimizer when constraint violations necessarily exist in the solution developed by the original objective function.

Allgemein sind Spielraumvariablen als der Wert oder das Ausmaß definiert, um welchen bzw. welches die vorhergesagte Prozessvariable die übertretene Grenze überschreitet (über oder unter dieser liegt). Um die Spielraumvariable zu minimieren (und dadurch die Grenzübertretung zu minimieren), wird die vom Optimierer verwendete Zielfunktion neu definiert, so dass sie eine Strafe für jeden Spielraumvariablen-Wert, der nicht null ist, enthält, welche im Wesentlichen den Optimierer veranlasst, eine Lösung zu finden, welche in Verbindung mit den anderen von der Zielfunktion definierten Zielen wie ökonomischen Zielen die Spielraumvariable minimiert. Gemäß diesem Verfahren wird, wenn der Optimierer auf eine Situation stößt, in welcher er nur nicht realisierbare Lösungen liefern kann, die Zielfunktion neu definiert, so dass sie einen Kostenwert oder eine Strafe enthält, welcher bzw. welche mit einer Grenzübertretung für jede Prozessvariable (z. B. Stell-, Hilfs- oder Steuervariable) oder mindestens für jede Prozessvariable, welche voraussichtlich eine voreingestellte Grenze übertreten wird, verknüpft ist. Falls gewünscht, kann für jede der Prozessvariablen die gleiche oder eine unterschiedliche Strafe definiert werden, so dass die Zielfunktion eine Spielraumvariable enthält, die einen Kostenwert oder eine Strafe definiert, welcher bzw. welche aus jeder Grenzübertretung für jede Prozessvariable, die eine zugehörige Grenze übertritt, resultiert. Der Spielraumvariablen-Kostenwert oder Strafwert in der neu definierten Zielfunktion kann sowohl vom Ausmaß der Grenzübertretung als auch von der Prozessvariable, in welcher die Grenzübertretung auftritt, abhängen. Die Einheitskosten oder -strafen können zum Beispiel für Prozessvariablengrenzen höherer Priorität höher und für Prozessvariablengrenzen niedrigerer Priorität niedriger sein. Auf jeden Fall wird dann die neu definierte Zielfunktion verwendet, um durch Minimieren (oder Maximieren) der neu definierten Zielfunktion bei Vorliegen beider der zuvor definierten wirtschaftlichen Faktoren (Erlöse und Kosten) sowie der mit dem Vorliegen von Spielraumvariablen, welche nicht null sind, verknüpften Kosten oder Strafen für eine oder mehrere der Prozessvariablen eine optimale Losung zu finden.Generally, travel variables are defined as the value or extent by which the predicted process variable exceeds (exceeds) or exceeds the transgressed limit. To minimize the travel variable (and thereby minimize the violation of the boundary), the objective function used by the optimizer is redefined so that it contains a penalty for each non-zero margin variable value, which essentially causes the optimizer to solve which, in conjunction with the other objectives defined by the objective function, such as economic goals, minimizes the travel variable. According to this method, when the optimizer encounters a situation in which he can only provide unrealizable solutions, the objective function is redefined to include a cost value or penalty that is associated with a limit violation for each process variable (e.g. B. control, auxiliary or control variable) or at least for each process variable, which is expected to exceed a preset limit is linked. If desired, the same or a different penalty may be defined for each of the process variables, such that the objective function includes a margin variable defining a cost value or penalty, which may result from any violation for any process variable that exceeds an associated limit. results. The margin variable cost or penalty value in the newly defined objective function may depend on both the extent of the border violation and the process variable in which the border violation occurs. For example, the unit costs or penalties may be higher for higher priority process variable bounds and lower for lower level process variable bounds. In any case, the newly defined objective function is then used to minimize (or maximize) the newly defined objective function in the presence of both the previously defined economic factors (revenues and costs) and the cost associated with the presence of non-zero travel variables or penalties for one or more of the process variables to find an optimal solution.

Insbesondere können bei der linearen Programmierung Spielraumvariablen-Vektoren Smax ≥ 0 und Smin ≥ 0 wie folgt verwendet werden:CVvorhergesagt + A·ΔMV(t + c) = CVmin + Smin (10)CVvorhergesagt + A·ΔMV(t + c) = CVmax – Smax (11)In particular, in linear programming, space variable vectors Smax ≥ 0 and Smin ≥ 0 may be used as follows: CVpredicted + A · ΔMV (t + c) = CVmin + Smin (10) CVpredicted + A · ΔMV (t + c) = CVmax - Smax (11)

Hier versteht es sich, dass AVs in den CV-Termen in diesen Gleichungen enthalten sind (d. h. die Variablen CVs decken alle Ausgänge ab, wo Steuervariablen Hilfsvariablen sind). In den Gleichungen (10) und (11) für das lineare Programmierungsmodell ist die Gleichheit erforderlich, und die Spielraumvariablen Smin und Smax dienen nur zur Unterstützung formaler Parameter ohne besondere Bedeutung in der Anwendung. In dieser Anwendung werden zusätzliche Spielraumvariablen S+ und S verwendet, um die Bereichsgrenzen des Spielraumvektors zu erweitern, wobei S+ ≥ 0 zum Erhöhen der Obergrenze und S ≥ 0 zum Absenken der Untergrenze verwendet wird. Effektiv können die Gleichungen (10) und (11) neu definiert oder neu formuliert werden als:CVvorhergesagt + A·ΔMV(t + c) = CVmin + Smin – S (12)CVvorhergesagt + A·ΔMV(t + c) = CVmax – Smax + S+ (13)wobei die Werte S und S+ die Werte sind, um welche die vorhergesagte Prozessvariable die Unter- beziehungsweise Obergrenzen der Beschränkung übertritt. Bei dieser Definition werden die neuen Spielraumvariablen S und S+ verwendet, um Straffaktoren in der Zielfunktion zu definieren, um eine LP-Lösung innerhalb der Bereiche oder mit lediglich minimaler Überschreitung der Bereiche zu erhalten.Here it is understood that AVs are included in the CV terms in these equations (ie the CVs variables cover all outputs where control variables are auxiliary variables). Equations (10) and (11) for the linear programming model require equality, and the space variables Smin and Smax are only for supporting formal parameters of no particular importance in the application. In this application, additional travel variables S+ and S- are used to expand the range limits of the travel vector using S+ ≥ 0 to increase the upper limit and S- ≥ 0 to lower the lower limit. In effect, equations (10) and (11) can be redefined or reformulated as: CVpredicted + A · ΔMV (t + c) = CVmin + Smin - S- (12) CVpredicted + A · ΔMV (t + c) = CVmax - Smax + S+ (13) wherein the values S- and S+ are the values by which the predicted process variable exceeds the lower or upper limits of the constraint. In this definition, the new travel variables S- and S+ are used to define penalty factors in the objective function to obtain an LP solution within the ranges or with only minimal exceedance of the ranges.

Als Beispiel kann die Zielfunktion durch Addieren der TermePS T / –·S undPS T / +·S+ erweitert werden, so dass:

Figure DE000010341762B4_0009
wobei:
PS der Spielraumvariablen-Strafenvektor für das Übertreten von Untergrenzen ist;
PS+ der Spielraumvariablen-Strafenvektor für das Übertreten von Obergrenzen ist; und
PS >> UCV und PS+ >> UCV (wobei das Symbol >> ”viel größer als” bedeutet). As an example, the objective function can be done by adding the terms PS T / - · S- and PS T / + · S+ be extended so that:
Figure DE000010341762B4_0009
in which:
PS- the margin variable penalty vector for crossing lower bounds;
PS+ is the travel variable penalty vector for exceeding upper bounds; and
PS- >> UCV and PS+ >> UCV (where the symbol >> means "much larger than").

Danach kann die neu definierte Zielfunktion auf eine standardgemäße Weise verwendet werden, so dass durch Minimieren der neu definierten Zielfunktion die Werte S und S+ minimiert werden wie durch mit diesen Werten verknüpfte Kosten definiert, um eine Lösung zu erhalten, welche optimal ist in dem Sinn, dass sie die Grenzüberschreitungen bezüglich der anderen Ziele der Zielfunktion optimal reduziert.After that, the objective function newly defined can be used in a nonstandard way so that by minimizing the objective function redefined the values S- are and S+ minimized as by associated with these values costs defined in order to obtain a solution which is optimal in the Meaning that it optimally reduces the border crossings with respect to the other objectives of the objective function.

Allgemein sollten die mit den Spielraumvariablen S und S+ verknüpften Strafen beträchtlich höher sein als die in oder verknüpft mit der Zielfunktion optimiert werdenden wirtschaftlichen Kosten oder Erlöse. Also sollten alle Komponenten der Vektoren PS und PS+ (welche die mit den verschiedenen Spielraumvariablen verknüpften Strafen definieren) beträchtlich größer sein als diejenigen der in der Zielfunktion verwendeten wirtschaftlichen Kosten/Erlös-Vektoren. Es ist angemessen, anzunehmen, dass die kleinste Komponente der Vektoren PS und PS+ im Allgemeinen mehrfach größer sein sollte als die größte Komponente des UCV-Vektors. Somit sollten die Spielraumvariablen in der Zielfunktion, wie hierin beschrieben, im Vergleich zu den wirtschaftlichen Kosten, Erlösen usw. mit hohen Strafen belegt sein.In general, the penalties associated with the S- and S+ margin variables should be significantly higher than the economic costs or revenues being optimized in or linked to the objective function. Thus, all components of the vectors PS- and PS+ (which define the penalties associated with the various margin variables) should be considerably larger than those of the economic cost / revenue vectors used in the objective function. It is reasonable to assume that the smallest component of the vectors PS- and PS+ in general should be several times larger than the largest component of the UCV vector. Thus, the margin variables in the objective function, as described herein, should be penalized as compared to economic costs, revenues, etc.

5 veranschaulicht grafisch die Verwendung von Spielraumvariablen für den Umgang mit Beschränkungsübertretungen einer Prozessvariablen (ohne zugehörigen Sollwert). Insbesondere veranschaulicht5 die Werte für Smax(i), Smin(i) für die Fälle, in welchen (1) die vorhergesagte Prozessvariable innerhalb der (durch die Linien202 und204 definierten) vordefinierten Beschränkungsgrenzen liegt, wie durch den Punkt206 veranschaulicht, (2) die vorhergesagte Prozessvariable über der Beschränkungs-Obergrenze202 liegt, wie durch den Punkt208 veranschaulicht, und (3) die vorhergesagte Prozessvariable unter der Beschränkungs-Untergrenze204 liegt, wie durch den Punkt210 veranschaulicht. Im ersten (mit dem Punkt206 verbundenen) Fall sind die Werte von S+(i) und S(i) null, weil die Beschränkungs-Obergrenze und die Beschränkungs-Untergrenze nicht übertreten werden. In diesem Fall wird keine Strafe mit der Prozessvariable in der Zielfunktion verknüpft oder dieser zugeordnet. Im zweiten (durch den Punkt208 veranschaulichten) Fall aber ist der Wert von S+(i) nicht null, weil der Punkt208 die Obergrenze202 überschreitet. Die fette gestrichelte Linie veranschaulicht den Wert der Spielraumvariable S+(i), welcher der Wert ist, der mit einem mit einer Übertretung der Obergrenze für diese Prozessvariable in der Zielfunktion verknüpften Einheitskostenwert multipliziert wird. Entsprechend ist im (durch den Punkt210 veranschaulichten) dritten Fall der Wert von S(i) nicht null, weil der Punkt210 die Untergrenze204 überschreitet. Die fette gestrichelte Linie veranschaulicht hier den Wert der Spielraumvariable S(i), welcher der Wert ist, der mit einem mit einer Übertretung der Untergrenze für diese Prozessvariable in der Zielfunktion verknüpften Einheitskostenwert multipliziert wird. Natürlich veranschaulicht5 einen einzigen mit einer Signal-Prozessvariable verknüpften Zeitpunkt, und es versteht sich, dass die neu definierte Zielfunktion die Beschränkungsübertretungen über die Zeit bis zum Steuerhorizont minimiert. 5 graphically illustrates the use of margin variables for dealing with constraint violations of a process variable (with no associated setpoint). In particular, illustrated 5 the values for Smax (i), Smin (i) for the cases in which (1) the predicted process variable within the (through thelines 202 and 204 defined) predefined constraint limits, such as thepoint 206 Figure 2 illustrates the predicted process variable above therestraint cap 202 lies as if by thepoint 208 and (3) the predicted process variable under theconstraint bottom limit 204 lies as if by thepoint 210 illustrated. In the first one (with thedot 206 connected) case, the values of S+ (i) and S- (i) are zero because the restriction upper limit and the restriction lower limit are not exceeded. In this case, no penalty is associated with or associated with the process variable in the target function. In the second (by thepoint 208 case), but the value of S+ (i) is not zero, because thepoint 208 theupper limit 202 exceeds. The bold dashed line illustrates the value of the travel variable S+ (i), which is the value multiplied by a unit cost value associated with a violation of the upper limit for that process variable in the objective function. Accordingly, in (by thedot 210 the third case, the value of S- (i) is not zero because of thepoint 210 thelower limit 204 exceeds. The bold dashed line here illustrates the value of the travel variable S- (i), which is the value multiplied by a unit cost value associated with a violation of the lower bound for that process variable in the objective function. Of course illustrated 5 a single time associated with a signal process variable, and it is understood that the newly defined objective function minimizes the constraint violations over time to the control horizon.

Zusätzlich zum Minimieren (oder statt des Minimierens) von Übertretungen von Beschränkungsgrenzen wie oben beschrieben kann der Optimierer mit Strafen belegte Spielraumvariablen verwenden, um Sollwertoptimierung entweder in dem Fall, in welchem eine nicht realisierbare Lösung gefunden wird, oder in dem Fall, in welchem aus anderen Gründen gewünscht wird, auf einen Sollwert zu optimieren, zu leisten. Insbesondere können mit Strafen belegte Spielraumvariablen verwendet werden, um, als Antwort auf eine nicht realisierbare Lösung oder aus irgendeinem anderen gewünschten Grund, das Lockern von Sollwerten innerhalb um einen vorgewählten Sollwert (z. B. einen vom Bediener oder irgendeiner anderen Quelle gelieferten Sollwert) definierter akzeptabler Bereiche zu gestatten, um anderen Prozessvariablen zu ermöglichen, ihre zugehörigen Grenzen einzuhalten oder dem Einhalten derselben näher zu kommen. Die Sollwertbereiche könnten einen hohen Bereich (in welchem dem Sollwert gestattet wird, innerhalb eines Bereichs oberhalb des vorgewählten Sollwerts abzuweichen), einen niedrigen Bereich (in welchem dem Sollwert gestattet wird, innerhalb eines Bereichs unterhalb des vorgewählten Sollwerts abzuweichen) oder beide einschließen. Die in diesem Verfahren verwendeten Sollwertbereiche können einseitig oder zweiseitig sein. Einseitige Bereiche können mit einer Minimierungs- oder einer Maximierungs-Zielfunktion verknüpft sein, welche für das Abweichen außerhalb eines vorgewählten Sollwertbereichs eine Strafe in der Zielfunktion definiert, aber welche für eine Abweichung vom Sollwert innerhalb des Sollwertbereichs nur wirtschaftliche Kosten in der Zielfunktion auferlegt. Zweiseitige Bereiche andererseits haben üblicherweise keine wirtschaftlichen Ziele, sondern werden verwendet, um die optimale Lösung so nah wie möglich am vorgewählten Sollwert innerhalb eines bevorzugten Bereichs, welcher durch Verwendung von mit hohen Strafen belegten Spielraumvariablen außerhalb des Bereichs erweitert werden kann, zu erhalten. Wenn der bevorzugte Sollwertbereich gleich null ist, liegt im Wesentlichen die gleiche Situation vor wie bei einem Sollwert mit den mit Strafen belegten Spielraumvariablen um ihn herum.In addition to minimizing (or instead of minimizing) constraint limit violations as described above, the optimizer may use penalty variables that have been penalized to setpoint optimization either in the case where a non-feasible solution is found, or in the case of others Reasons is desired, to optimize to a target value to afford. In particular, punctured travel variables may be used to, in response to an unrealizable solution or for any other desired reason, define the loosening of setpoints within a preselected set point (eg, a setpoint provided by the operator or some other source) allow acceptable ranges to allow other process variables to meet their associated limits or to come closer to complying with them. The setpoint ranges could include a high range (in which the setpoint is allowed to deviate within a range above the preselected setpoint), a low range (in which the setpoint is allowed to deviate within a range below the preselected setpoint), or both. The setpoint ranges used in this procedure can be one-sided or two-sided. One-sided areas may be associated with a minimization or a maximization objective function which defines a penalty in the objective function for the deviation outside of a preselected set point range, but which for a deviation from the target function Setpoint within the setpoint range only imposes economic costs on the target function. On the other hand, two-sided areas, on the other hand, usually have no economic goals, but are used to obtain the optimal solution as close as possible to the preselected set point within a preferred range that can be extended by using highly penalized off-range margin variables. If the preferred setpoint range is zero, then there is substantially the same situation as a setpoint with the penalty variables around it.

Die6 beziehungsweise7 veranschaulichen die Verwendung von Spielraumvariablen ohne und mit Verwendung eines erweiterten Bereichs. In6 veranschaulicht ein Punkt215 einen Sollwert für eine Prozessvariable innerhalb eines durch die Linien217 und219 definierten Bereichs. Mit der Abweichung vom Sollwert innerhalb des durch die Linien217 und219 begrenzten Bereichs ist keine Spielraumvariablen-Strafe verknüpft. Wie für einen Punkt221 gezeigt, wird aber, wenn die Prozessvariable die obere Bereichsgrenze217 überschreitet, eine mit einer Strafe belegte Spielraumvariable S+(i) verwendet, um, ähnlich wie bei der Verwendung von Spielraumvariablen in den oben erörterten Beschränkungsübertretungssituationen, in der Zielfunktion eine Strafe für diese Abweichung aufzuerlegen. Entsprechend wird, wie für einen Punkt223 gezeigt, wenn die Prozessvariable die untere Bereichsgrenze219 überschreitet, eine mit einer Strafe belegte Spielraumvariable S(i) verwendet, um, ähnlich wie bei der Verwendung von Spielraumvariablen in den oben beschriebenen Beschränkungsübertretungssituationen, in der Zielfunktion eine Strafe für diese Abweichung aufzuerlegen.The 6 respectively 7 illustrate the use of margin variables without and with the use of an expanded area. In 6 illustrates a point 215 a setpoint for a process variable within aline 217 and 219 defined area. With the deviation from the setpoint within theline 217 and 219 limited range, no margin variable penalty is associated. As for apoint 221 but is shown when the process variable is theupper range limit 217 exceeds a penalty variable S+ (i) used to impose a penalty for this deviation in the objective function, similar to the use of margin variables in the restriction violation situations discussed above. Accordingly, as for apoint 223 shown when the process variable is thelower range limit 219 exceeds a punctured travel variable S- (i) used to impose a penalty for this deviation in the objective function, similar to the use of margin variables in the above-described restriction violation situations.

7 veranschaulicht die Verwendung von Spielraumvariablen in einer Situation mit erweitertem Bereich, in welcher eine erste Spielraumvariablen-Strafe für Abweichungen vom Sollwert innerhalb eines ersten Bereichs auferlegt wird und mit hohen Strafen belegte Spielraumvariablen (mit mit hohen Strafen belegten Kosten) verwendet werden, um den möglichen Bereich des Sollwerts außerhalb des ersten Bereichs zu erweitern. Insbesondere veranschaulicht ein Punkt230 die Situation, wenn die vorhergesagte Prozessvariable über einem vorgewählten Sollwert231, aber innerhalb eines voreingestellten zulässigen, durch die Linien232 und234 definierten Bereichs liegt. Hier wird eine Variable S(i)oben verwendet, um die mit der Abweichung des Punktes230 vom voreingestellten Sollwert231 verknüpfte Strafe zu definieren. Wie durch die gestrichelte Linie angedeutet, ist der nicht null betragende Wert der Variable S(i)oben in der Zielfunktion mit einer Strafe belegt. Andererseits veranschaulicht der Punkt236 die Verwendung von mit hohen Strafen belegten Spielraumvariablen, wenn die mit dem Sollwert verknüpfte Stellvariable die voreingestellte obere Bereichsgrenze232 um einen Wert S+(i) überschreitet. Hier deutet die besonders fette gestrichelte Linie an, dass die Variable S+(i) in der Zielfunktion mit einer im Vergleich zur Variable S(i)oben hohen Strafe belegt ist, um Abweichungen außerhalb der Bereichsgrenze232 viel höher zu bestrafen als Abweichungen vom Sollwert231 innerhalb der Bereichsgrenze232. 7 Figure 12 illustrates the use of margin variables in an extended area situation in which a first margin variable penalty is imposed for deviations from the target within a first range, and high penalty (variable penalty) costs are used to determine the possible range of the setpoint outside the first range. In particular, a point illustrates 230 the situation when the predicted process variable is above apreselected setpoint 231 but within a pre-set allowable, through thelines 232 and 234 defined area lies. Here a variable S (i)above is used to match the with the deviation of thepoint 230 from thepreset setpoint 231 to define linked punishment. As indicated by the dashed line, the non-zero value of the variable S (i)is penalized at thetop of the objective function. On the other hand, the point illustrates 236 the use of high penalty penalty variables when the setpoint associated with the setpoint is the presetupper range limit 232 exceeds a value S+ (i). Here the particularly bold dashed line indicates that the variable S+ (i) in the objective function is occupied with a high penalty compared to the variable S (i)above to avoid deviations outside therange limit 232 much higher punishable than deviations from thesetpoint 231 within therange limit 232 ,

Auf eine ähnliche Art veranschaulicht ein Punkt238 die Situation, wenn die vorhergesagte Prozessvariable unter dem vorgewählten Sollwert231, aber innerhalb eines voreingestellten zulässigen, durch die Linien232 und234 definierten Bereichs liegt. Hier wird eine Variable S(i)unten verwendet, um die mit der Abweichung des Punktes238 vom vorgewählten Sollwert231 verknüpfte Strafe zu definieren. Wie durch die gestrichelte Linie angedeutet, wird der nicht null betragende Wert der Variable S(i)unten in der Zielfunktion mit einer Strafe belegt. Außerdem veranschaulicht ein Punkt240 die Verwendung von mit hohen Strafen belegten Spielraumvariablen, wenn die mit dem Sollwert verknüpfte Prozessvariable die voreingestellte untere Bereichsgrenze234 um einen Wert S(i) überschreitet. Hier deutet die besonders fette gestrichelte Linie wieder an, dass die Variable S(i) in der Zielfunktion mit einer im Vergleich zur Variable S(i)unten hohen Strafe belegt ist, um Abweichungen außerhalb der Bereichsgrenze234 viel höher zu bestrafen als Abweichungen vom Sollwert231 innerhalb der Bereichsgrenze234.In a similar way, a point illustrates 238 the situation when the predicted process variable is below the preselectedsetpoint 231 but within a pre-set allowable, through thelines 232 and 234 defined area lies. Here, a variable S (i)is usedbelow to match the deviation of thepoint 238 from the preselectedsetpoint 231 to define linked punishment. As indicated by the dashed line, the nonzero value of the variable S (i)is penalizedat the bottom of the objective function. In addition, a point illustrates 240 the use of highly penalized travel variables when the process variable associated with the setpoint is at the presetlower range limit 234 by a value S- (i) exceeds. Here, the extra bold dashed line again indicates that the variable S- (i) in the objective function is penalized with a high penalty compared to the variable S (i)below , to deviate beyond therange limit 234 much higher punishable than deviations from thesetpoint 231 within therange limit 234 ,

Die Gleichungen für die Sollwertregelung mit den zweiseitigen Bereichen können in folgender Form dargestellt werden:CVvorhergesagt + A·ΔMV(t + c) = SP – Sunten + Soben (15)CVvorhergesagt + A·ΔMV(t + c) = CVmin + Smin – S (16)CVvorhergesagt + A·ΔMV(t + c) = CVmax – Smax + S+ (17)The equations for the setpoint control with the two-sided ranges can be represented in the following form: CVpredicted + A · ΔMV (t + c) = SP - Sbelow + Sabove (15) CVpredicted + A · ΔMV (t + c) = CVmin + Smin - S- (16) CVpredicted + A · ΔMV (t + c) = CVmax - Smax + S+ (17)

Hier sind Sunten und Soben Vektoren von Spielraumvariablen für die Lösungen unterhalb und oberhalb der Sollwerte, und die TermePSP T / unten·Sunten + PSP T / oben·Soben sollten zur Zielfunktion hinzuaddiert werden, wobei:
PSP T / uten die Einheitsstrafe für die Lösung unter dem Sollwert ist; und
PSP T / oben die Einheitsstrafe für die Lösung über dem Sollwert ist.
Here Sbelow and Sabove are vectors of space variables for the solutions below and above the setpoints, and the terms PSP T / bottom · Sbottom + PSP T / top · Stop should be added to the objective function, where:
PSP Doors the unit penalty for the solution is below the set point; and
PSP T / top the unit penalty for the solution is above the setpoint.

Es versteht sich, dass die Zielfunktion auch die Spielraumvariablen-Strafen für die Variablen S und S+ enthält wie oben definiert.It should be understood that the objective function also includes the scope variable penalties for the variables S- and S+ as defined above.

Dieses Verfahren zum Handhaben von Beschränkungen mit Spielraumvariablen, welche mit Strafen belegt sind, schafft beträchtliche Flexibilität beim Handhaben nicht realisierbarer Situationen. Insbesondere durch Anwenden von mit Strafen belegten Spielraumvariablen kann der Optimierer immer eine optimale Lösung finden, welche die Gesamtkosten von Beschränkungsübertretungen wie von der Zielfunktion definiert minimiert, auch wenn die Lösung außerhalb der vorgewählten Grenzen oder Beschränkungen liegt. Jedoch können manche Prozessvariablen-Ausgänge, welche vor dem Ausführen des neu definierten Optimierers mit den mit Strafen belegten Spielraumvariablen innerhalb der Grenzen liegen, infolge der Lösung mit Spielraumvariablen die Grenzen übertreten. Außerdem wird der Betrag der Grenzüberschreitung für eine bestimmte Prozessvariable vor dem Erzeugen der Lösung nicht quantitativ definiert. Diese zwei Merkmale sind möglicherweise in vielen Anwendungen nicht wünschenswert, weil manche Anwendungen erfordern können, dass die Prozessvariablen niedrigerer Priorität, welche anfänglich innerhalb der Bereichsgrenzen legen, nicht über die Grenzen hinaus getrieben werden, um Prozessvariablen höherer Priorität in die Grenzen zu befördern. Überdies können manche Anwendungen wohldefinierte Lösungsgrenzen für alle Prozessvariablen erfordern. Diesen zwei Zielen kann genügt werden, indem das Beschränkungsmodell als Antwort auf eine nicht realisierbare Situation oder Lösung neu definiert wird.This method of managing constraints with penalties that are penalted provides considerable flexibility in handling unrealizable situations. In particular, by applying penaltied travel variables, the optimizer can always find an optimal solution that minimizes the overall cost of restriction violations as defined by the objective function, even if the solution falls outside the preselected limits or constraints. However, some process variable outputs that are within limits prior to executing the newly defined optimizer with the penaltied travel variables may exceed the limits due to the solution with travel variables. In addition, the amount of boundary crossing for a particular process variable prior to generating the solution is not quantified. These two features may not be desirable in many applications because some applications may require that the lower priority process variables, which initially fall within the range limits, are not driven beyond the limits to push higher priority process variables forward. Moreover, some applications may require well-defined solution limits for all process variables. These two goals can be met by redefining the constraint model in response to an unrealizable situation or solution.

Insbesondere um Nichtrealisierbarkeiten auf eine Weise zu handhaben, welche genau definierte Grade von Grenzübertretungen erzwingt, kann das Beschränkungsmodell selbst neu definiert werden. Natürlich erfolgt diese Neudefinierung nach dem ersten Optimierungslauf, wenn mit Strafen belegte Spielraumvariablen nicht verwendet werden und es keine Lösung innerhalb ursprünglicher Grenzen gibt oder wenn mit Strafen belegte Spielraumvariablen verwendet werden, aber die Lösung mit mit Strafen belegten Spielraumvariablen nicht akzeptabel ist. Allgemein werden die neu definierten Grenzen als der Wert der vorhergesagten Prozessvariable (z. B. einer Steuervariable CV), welche eine ursprüngliche Grenze und die ursprüngliche Grenze minus irgendeinem Nominalwert übertritt, eingestellt. Diese neu definierten Grenzen werden dann in einem zweiten Optimierungslauf verwendet, um bei gleichzeitigem Minimieren oder Maximieren der Zielfunktion eine Lösung zu finden, welche die neu definierten Grenzen nicht übertritt. Dieses Neudefinieren von Grenzen verhindert, dass die Prozessvariable, die eine ursprüngliche Grenze übertritt, sich verschlechtert, und verhindert gleichzeitig, dass andere Prozessvariablen, welche ihre ursprünglichen voreingestellten Grenzen nicht übertraten, dies im zweiten Optimierungslauf tun. Die Prozessvariablen werden jedoch immer noch innerhalb der ursprünglichen Grenzen (wenn der vorhergesagte Wert der Prozessvariable die ursprüngliche Grenze nicht übertrat) oder innerhalb der neu definierten Grenzen (wenn der vorhergesagte Wert der Prozessvariable die ursprüngliche Grenze übertrat) optimiert, um bei Vorliegen von Grenzübertretungen eine begrenzte optimierte Lösung zu schaffen.In particular, to handle non-realizabilities in a manner that enforces well-defined degrees of border violations, the constraint model itself may be redefined. Of course, this redefinition occurs after the first optimization run, when penaltied travel variables are not used and there is no solution within original bounds or when penaltied travel variables are used, but the solution with penaltied travel variables is unacceptable. In general, the newly defined limits are set as the value of the predicted process variable (eg, a control variable CV) which exceeds an original limit and the original limit minus any denomination. These newly defined boundaries are then used in a second optimization run to find a solution that does not exceed the newly defined limits while minimizing or maximizing the objective function. This redefinition of boundaries prevents the process variable that is crossing an original boundary from deteriorating, and at the same time prevents other process variables that did not exceed their original preset limits from doing so in the second optimization run. However, the process variables are still optimized within the original limits (if the predicted value of the process variable did not exceed the original limit) or within the newly defined limits (if the predicted value of the process variable exceeded the original limit) to be limited in the presence of border violations to create an optimized solution.

Dieses Verfahren kann für eine Steuervariable CV wie folgt mathematisch definiert werden: Wenn es keine Lösung gibt und eine Obergrenze CVHL überschritten wird, werden neue Grenzen für die CV definiert als:CVHL' = CVVorhersageCVLL' = CVHL – Δwobei Δ = 1–3%, um eine Lösung genau auf der ursprünglichen Grenze zu vermeiden.This procedure can be defined mathematically for a control variable CV as follows: If there is no solution and an upper limit CVHL is exceeded, new limits for the CV are defined as: CVHL ' = CVprediction CVLL ' = CVHL - Δ where Δ = 1-3% to avoid solution exactly at the original limit.

Entsprechend werden, wenn eine Untergrenze CVLL überschritten wird, die neuen Grenzen definiert als:CVLL' = CVVorhersageCVHL' = CVLL + ΔAccordingly, when a lower limit CVLL is exceeded, the new limits are defined as: CVLL ' = CVprediction CVHL ' = CVLL + Δ

Natürlich können entsprechende Grenzen für andere Prozessvariablen wie Stellvariablen MV und Hilfsvariablen AV definiert werden.Of course, corresponding limits can be defined for other process variables such as manipulated variable MV and auxiliary variable AV.

Diese neu definierten Grenzen sind allgemein in8 dargestellt. Insbesondere sind die ursprünglichen Beschränkungen CVHL und CVLL auf der linken Seite von8 durch die Linien250 und252 dargestellt und sind zwei CV-Vorhersagen, welche diese Beschränkungen übertreten (und welche vom ersten Durchgang des Optimierers unter Verwendung der ursprünglichen Zielfunktion erzeugt werden würden) durch die Punkte254 und256 dargestellt. Zwei Sätze von neu definierten Grenzen CVHL' und CVLL' sind durch die Sätze von Linien258,260 und262,264 dargestellt. Es versteht sich, dass der Satz von neu definierten Grenzen258 und260 den neuen Grenzen für den Punkt254 entspricht und durch den Punkt254 auf der hohen Seite und durch die ursprüngliche Grenze250 minus eine Delta-Funktion auf der niedrigen Seite begrenzt wird. Entsprechend entspricht der Satz von neu definierten Grenzen262 und264 den neuen Grenzen für den Punkt256 und wird auf der hohen Seite (der positiveren Seite) durch den Punkt256 und auf der niedrigen Seite (der weniger positiven Seite) durch die ursprüngliche Grenze252 plus eine Delta-Funktion begrenzt. Diese neuen Sätze von Grenzen werden in der Zielfunktion als neue Grenzen für die Punkte254 oder256 (je nachdem, um welchen es geht) verwendet, und der neuen Zielfunktion wird nicht gestattet, eine Lösung außerhalb dieser Grenzen zu finden. Außerdem kann ein auf dem Abstand zwischen der neuen Grenze260 (im Falle des Punktes254) oder der neuen Grenze262 (im Falle des Punktes256) und dem neuen CV-Wert beruhender hoher Straffaktor zugewiesen und in der neuen Zielfunktion verwendet werden, um die neue CV mit den neuen Grenzen gegen die neue Untergrenze260 (im Falle des Punktes254) oder gegen die neue Obergrenze262 (im Falle des Punktes256) zu treiben. Insbesondere nach dem Neudefinieren des Beschränkungshandhabungsmodells oder der Grenzen kann der Strafenvektor für alle außerhalb der Bereiche oder Grenzen liegenden CVs auf eine Weise, welche diese CVs in Richtung der überschrittenen Grenzen treibt, neu berechnet werden. Um dieses Ziel zu erreichen, sollte die Strafe für Grenzübertretung sich über wirtschaftliche Kriterien hinwegsetzen und sollten folglich die mit den neuen Grenzen verknüpften Strafen mit hohen Strafen belegte Variablen sein.These newly defined boundaries are generally in 8th shown. In particular, the original restrictions CVHL and CVLL are on the left side ofFIG 8th through thelines 250 and 252 and are two CV predictions that violate these constraints (and those from the first pass of the optimizer using the original objective function) through thepoints 254 and 256 shown. Two sets of newly defined boundaries CVHL ' and CVLL' are defined by the sets oflines 258 . 260 and 262 . 264 shown. It is understood that the set of newly definedboundaries 258 and 260 the new boundaries for thepoint 254 corresponds and through thepoint 254 on the high side and through theoriginal border 250 minus a delta function on the low side is limited. Accordingly, the set of newly definedboundaries 262 and 264 the new boundaries for thepoint 256 and gets on the high side (the more positive side) through thepoint 256 and on the low side (the less positive side) through theoriginal border 252 plus a delta function limited. These new sets of boundaries are in the objective function as new boundaries for thepoints 254 or 256 (whichever is), and the new objective function is not allowed to find a solution outside of these limits. Also, one can be on the distance between the new limit 260 (in the case of the point 254 ) or the new border 262 (in the case of the point 256 ) and the new CV value based high penalty factor and used in the new objective function to get the new CV with the new limits against the new lower limit 260 (in the case of the point 254 ) or against the new ceiling 262 (in the case of the point 256 ) to drive. In particular, after redefining the constraint handling model or limits, the penalty vector may be recomputed for all out-of-range CVs in a manner that drives these CVs toward the exceeded limits. In order to achieve this objective, the penalty for crossing borders should be overruled by economic criteria and, consequently, should be the high penalty penalties associated with the new borders.

Auf diese Weise werden neue Grenzen für jede Prozessvariable (z. B. CV) festgesetzt, für welche vorhergesagt wird, dass sie außerhalb der Grenzen liegen wird, um einen begrenzten Bereich für diese Prozessvariable zu schaffen, wird aber in der Zielfunktion eine Bestrafung verwendet, um die Prozessvariable im zweiten Durchgang des Optimierers gegen die ursprüngliche Grenze zu treiben, um dadurch die Prozessvariablen ohne Übertreten irgendwelcher Grenzen (entweder neu definierter Grenzen im Falle von Prozessvariablen außerhalb der Grenzen oder ursprünglicher Grenzen im Falle von Prozessvariablen, welche ursprüngliche Grenzen nicht übertreten) zu optimieren. In diesem Fall werden jedoch die Grenzen (entweder die ursprünglichen Grenzen für Prozessvariablen, welche ihre ursprünglichen Grenzen im ersten Durchgang der Zielfunktion nicht übertraten oder die neu definierten Grenzen für die Prozessvariablen, welche ihre ursprünglichen Grenzen im ersten Durchgang der Zielfunktion übertraten) in Schranken gehalten und ist der Optimierer in der Lage, eine Lösung innerhalb dieser Grenzen zu finden.In this way, new bounds are set for each process variable (eg, CV) that is predicted to be out of bounds to create a limited range for that process variable, but punishment is used in the objective function, to propel the process variable in the second pass of the optimizer to the original limit, thereby propagating the process variables without breaking any boundaries (either newly defined bounds in the case of out-of-bound process variables or original bounds in the case of process variables that do not cross original bounds) optimize. In this case, however, the bounds (either the original bounds for process variables which did not exceed their original bounds in the first pass of the objective function or the newly defined bounds for the process variables which exceeded their original bounds in the first pass of the objective function) are constrained and the optimizer is able to find a solution within these limits.

Eine allgemeine Form einer LP-Zielfunktion, welche neu definierte Grenzen und die Straffaktoren für diese Grenzen verwendet, kann ausgedrückt werden als:(PT·A + CT)·(MVt – MVt-1) (18)wobei die Kosten der Prozessausgänge durch folgenden Vektor ausgedrückt werden können:

Figure DE000010341762B4_0010
A general form of LP objective function that uses newly defined boundaries and the penalty factors for these boundaries can be expressed as: (PT · A + CT ) · (MVt - MVt-1 ) (18) where the cost of the process outputs can be expressed by the following vector:
Figure DE000010341762B4_0010

Der resultierende Vektor ist:

Figure DE000010341762B4_0011
The resulting vector is:
Figure DE000010341762B4_0011

Um der Beschränkungshandhabung Priorität zu geben, kann für die Ausgänge mit übertretenen Beschränkungen eine zusätzliche Strafe vi, wenn die Prozessvariable (z. B. eine CV) eine Obergrenze überschreitet, als ein negativer Wert und, wenn die Prozessvariable eine Untergrenze überschreitet, als ein positiver Wert definiert werden. Ein Beitrag der zusätzlichen Strafe vi zum Kostenvektor ist:[viai1, viai2, ..., viaim] = [V i / 1, V i / 2, ..., V i / m] (21)To prioritize constraint handling, for the exits with exceeded constraints, an additional penalty vi , when the process variable (eg, a CV) exceeds an upper bound, may be considered a negative value and, if the process variable exceeds a lower bound, a penalty positive value. A contribution of the additional penalty vi to the cost vector is: [vi ai1 , vi ai2 , ..., vi aim ] = [V i / 1, V i / 2, ..., V i / m] (21)

Damit die Beschränkungshandhabung Vorrang vor wirtschaftlichen Faktoren bekommt, sollte jede Komponente dieses Vektors größer sein als die jeweils entsprechende des Vektors CMT. Deshalb:

Figure DE000010341762B4_0012
wobei:
ri die Prioritäts-/Rangnummer der neu definierten CV ist;
rmax die maximale Prioritäts-/Rangnummer für die niedrigste Priorität/den niedrigsten Rang ist; und
rmin die minimale Prioritäts-/Rangnummer für die höchste Priorität/den höchsten Rang ist. For constraint handling to take precedence over economic factors, each component of that vector should be larger than the corresponding one of the vector CMT. Therefore:
Figure DE000010341762B4_0012
in which:
ri is the priority / rank number of the newly defined CV;
rmax is the maximum priority / rank number for the lowest priority / lowest rank; and
rmin is the minimum priority / rank number for the highest priority / rank.

Berechnungen können vereinfacht werden durch Verwendung der hohen Abschätzung von |vi| als:

Figure DE000010341762B4_0013
Calculations can be simplified by using the high estimate of | vi | when:
Figure DE000010341762B4_0013

Für praktische Zwecke wird |aij| > 0,05 angenommen, um extrem niedrige Prozessverstärkungen von den Berechnungen auszunehmen. Nach Berechnen der Strafe v für alle Prozessvariablen (z. B. CVs), welche außerhalb der voreingestellten Grenzen oder außerhalb der voreingestellten Bereiche liegen, können die Strafen je nach der Priorität der Prozessvariable eingestellt werden als:

Figure DE000010341762B4_0014
For practical purposes, | aij | > 0.05 is assumed to exempt extremely low process gains from the calculations. After calculating the penalty v for all process variables (eg, CVs) that are outside the preset limits or outside the preset ranges, the penalties can be set according to the priority of the process variable as:
Figure DE000010341762B4_0014

Nach Berechnen der Kosten für die einzelnen Prozessvariablen, welche ihre jeweiligen Beschränkungen gemäß Gleichung (23) überschreiten, können die Gesamtkosten aller Beschränkungen für alle Stellvariablen aus der Gleichung (19) berechnet werden. Die Prozedur zum Berechnen von Strafen sollte aufeinanderfolgend für alle CVs, welche die Beschränkungen übertreten, durchgeführt werden, indem Gleichung (23) beginnend mit der übertretenen Beschränkung niedrigster Priorität (größte ri) und hinarbeitend auf die übertretene Beschränkung höchster Priorität angewendet wird. Für praktische Zwecke kann der effektive Strafenvektor normalisiert werden. Ein mögliches Normalisierungsverfahren besteht darin, alle Vektorkomponenten durch eine maximale Komponente zu dividieren und mit 100 zu multiplizieren.After calculating the cost of the individual process variables exceeding their respective constraints according to equation (23), the total cost of all constraints for all the manipulated variable can be calculated from equation (19). The procedure for calculating penalties should be performed sequentially for all CVs that exceed the constraints by applying Equation (23) beginning with the highest priority transgressed constraint (largest ri ) and working towards the highest priority constraint that has been transgressed. For practical purposes, the effective penalty vector can be normalized. One possible normalization method is to divide all vector components by a maximum component and multiply by 100.

Falls gewünscht, kann das Konzept der Beschränkungshandhabung auf eine Situation erweitert werden, welche die zwei oben beschriebenen Ansätze integriert, und insbesondere durch Kombinieren der Verwendung mit Strafen belegter Spielraumvariablen und der Neudefinierung des Modells. Wenn es keine Beschränkungsübertretungen gibt oder wenn die mit mit Strafen belegten Spielraumvariablen berechnete optimale Lösung akzeptabel ist, werden in diesem integrierten Ansatz nur die mit Strafen belegten Spielraumvariablen verwendet. Wenn aber Beschränkungen übertreten werden und die Lösung mit mit Strafen belegten Spielraumvariablen nicht akzeptabel ist, werden die Prozessausgangsgrenzen neu definiert. In diesem Fall werden die neuen Ausgangsgrenzen gleich den Vorhersagen für die vorhergesagten Prozessausgänge, welche Grenzen übertreten, wie in8 dargestellt. Die ursprüngliche Grenze wird jedoch noch verwendet, um mit Strafen belegte Spielraumvariablen wie in der bereits beschriebenen Spielraumvariablen-Anwendung zu definieren.If desired, the concept of constraint handling can be extended to a situation that integrates the two approaches described above, and in particular, by combining the use of penalties occupied travel variables and the redefinition of the model. If there are no restriction violations or if the optimal solution calculated with penaltied travel variables is acceptable, then only the penaltied travel variables will be used in this integrated approach. However, if restrictions are violated and the solution with penalized travel variables is unacceptable, the process output limits are redefined. In this case, the new output limits become equal to the predictions for the predicted process outputs, which exceed limits, as in 8th shown. However, the original limit is still used to define penaltyed space variables as in the previously described space variable application.

9 veranschaulicht diese integrierte Verwendung von Spielraumvariablen und Neudefinierung der Grenzen. Insbesondere veranschaulicht ein Punkt270 eine vorhergesagte Prozessvariable oder CV innerhalb der durch die Linien272 und274 dargestellten ursprünglichen Grenzen CVHL und CVLL. Ein Punkt276 veranschaulicht eine vorhergesagte Prozessvariable oder CV, welche die Obergrenze CVHL272 übertritt. In diesem Fall werden die Grenzen als CVHL' und CVLL' neu definiert, wie oben bezüglich der Neudefinierung der Grenzen in8 allgemein erörtert. Außerdem werden Spielraumvariablen S'max und S+(i) verwendet, um mittels Spielraumvariablen-Strafen wie oben erörtert eine Strafe für die Übertretung der ursprünglichen Grenze aufzuerlegen. Auf eine ähnliche Art veranschaulicht ein Punkt280 eine vorhergesagte Prozessvariable oder CV, welche die Untergrenze CVLL274 übertritt. In diesem Fall werden die Grenzen als CVHL' und CVLL' neu definiert, wie oben bezüglich der Neudefinierung der Grenzen in8 allgemein erörtert. Außerdem werden Spielraumvariablen S'min und S(i) verwendet, um mittels Spielraumvariablen-Strafen wie oben erörtert eine Strafe für die Übertretung der ursprünglichen Grenze aufzuerlegen. 9 illustrates this integrated use of travel variables and redefinition of boundaries. In particular, a point illustrates 270 a predicted process variable or CV within theline 272 and 274 represented original boundaries CVHL and CVLL . Onepoint 276 FIG. 12 illustrates a predicted process variable or CV which is theupper limit CVHL 272 transgresses. In this case, the boundaries are redefined as CVHL ' and CVLL' , as above with respect to the redefinition of the boundaries in 8th generally discussed. In addition, travel variables S 'max and S+ (i) are used to impose a penalty for transgressing the original boundary by means of travel variable penalties as discussed above. In a similar way, a point illustrates 280 a predicted process variable or CV, which is thelower limit CVLL 274 transgresses. In this case, the boundaries are redefined as CVHL ' and CVLL' , as above with respect to the redefinition of the boundaries in 8th generally discussed. In addition, will Travel variables S 'min and S- (i) are used to impose a penalty for violation of the original boundary by means of travel variable penalties as discussed above.

Dieses Verfahren kann mittels folgender Gleichungen ausgedrückt werden:CVvorhergesagt + A·ΔMV(t + c) – CVLL + Smin – S (25)CVvorhergesagt + A·ΔMV(t + c) = CVHL – Smax + S+ (26)CVvorhergesagt + A·ΔMV(t + c) = CVLL' + S'min (27)CVvorhergesagt + A·ΔMV(t + c) = CVHL' – S'max (28)This method can be expressed by the following equations: CVpredicted + A · ΔMV (t + c) - CVLL + Smin - S- (25) CVpredicted + A · ΔMV (t + c) = CVHL - Smax + S+ (26) CVpredicted + A · ΔMV (t + c) = CVLL ' + S'min (27) CVpredicted + A · ΔMV (t + c) = CVHL ' - S'max (28)

Hier sind die neu definierten Grenzwerte CVLL' und CVHL' Unter- und Obergrenzen, welche vom Optimierer nicht überschritten werden können. Die Grenzwerte werden als außerhalb der Grenzen liegende CV-Vorhersagen oder außerhalb der Grenzen liegende Werte mit einem ausgedehnteren Bereich als die ursprünglichen Grenzen eingestellt. Integrierte Gleichungen für die CV-Bereichsregelung und zweiseitige CV-Bereichsregelung können auf eine ähnliche Weise entwickelt werden. Überdies sind integrierte Gleichungen für einseitige Bereichsregelung mit den Gleichungen (25)–(28) identisch. Zweiseitige Bereichsregelung kann mit der folgenden Gleichung implementiert werden:CVvorhergesagt + A·ΔMV(t + c) = SP – Sunten + Soben (29)welche mit Gleichung (15) identisch ist.Here are the newly defined limits CVLL ' and CVHL' lower and upper limits, which can not be exceeded by the optimizer. The limits are set as out-of-range CV predictions or out-of-limits values with a wider range than the original limits. Integrated equations for CV range control and two-sided CV range control can be developed in a similar way. Moreover, integrated equations for unilateral range control are identical to equations (25) - (28). Two-sided range control can be implemented with the following equation: CVpredicted + A · ΔMV (t + c) = SP - Sbelow + Sabove (29) which is identical to equation (15).

Es versteht sich, dass dieser integrierte Ansatz gestattet, Beschränkungshandhabung auf eine flexiblere Weise zu bewerkstelligen. Gegenwärtig haben Eingänge nur hart oder fest definierte Beschränkungsgrenzen. Mittels desselben Ansatzes ist es möglich, für einige der Eingänge weiche Beschränkungen, welche in harten Beschränkungen enthalten sind, zu definieren. Das Einführen mit Strafen belegter Spielraumvariablen für die weichen Beschränkungen macht es leicht, einen mit einer Strafe belegten Bereich für die MV zu definieren. Gleichungen für diese weichen Bereiche können ausgedrückt werden als:MV weich / min – S – / weichmin = MVaktuell + ΔMV(t + c) (30)MV weich / max + S + / weichmax = MVaktuell + ΔMV(t + c) (31)It will be appreciated that this integrated approach allows constraint handling to be accomplished in a more flexible manner. Currently, entrances have only hard or well-defined restriction limits. By means of the same approach it is possible to define for some of the inputs soft constraints contained in hard constraints. Introducing penalties for the soft constraints makes it easy to define a penalty area for the MVs. Equations for these soft ranges can be expressed as: MV soft / min - S - / soft min = MVactual + ΔMV (t + c) (30) MV soft / max + S + / soft max = MVactual + ΔMV (t + c) (31)

Schließlich kann derselbe Ansatz verwendet werden, um den Optimierer zu veranlassen, eine Prozessvariable wie eine Stellvariable MV gegen einen bevorzugten Eingangswert oder den sogenannten ”idealen Ruhewert” zu treiben. Dieser Ansatz ist in9 dargestellt, in welcher der ideale Ruhewert durch die Linie290 veranschaulicht wird und die Ober- und Untergrenzen der MV durch die Linien292 beziehungsweise294 veranschaulicht werden. Die Punkte296 und298 veranschaulichen die Situation, wenn der vorhergesagte Wert über oder unter dem idealen Ruhewert290 liegt. In diesen Fällen werden die mit Strafen belegten Spielraumvariables S(i)oben und S(i)unten verwendet, um den mit dem Abweichen vom idealen Ruhewert verknüpften Kostenwert oder Strafwert in der Zielfunktion zu definieren. Gleichungen für eine MV mit dem idealen Ruhewert können ausgedrückt werden als:IRV – Sunten + Soben = MVaktuell + ΔMV(t + c) (32)MVmin + Smin = MVaktuell + ΔMV(t + c) (33)MVmax – Smax = MVaktuell + ΔMV(t + c) (34)Finally, the same approach can be used to cause the optimizer to drive a process variable, such as a variable MV, against a preferred input value or the so-called "ideal quiescent value". This approach is in 9 shown in which the ideal resting value through theline 290 is illustrated and the upper and lower limits of MV through thelines 292 respectively 294 be illustrated. Thepoints 296 and 298 illustrate the situation when the predicted value is above or below theideal rest value 290 lies. In these cases, the penaltied travel variables S (i)above and S (i)below are used to define the cost value or penalty associated with the departure from the ideal rest value in the objective function. Equations for a MV with the ideal resting value can be expressed as: IRV - Sdown + Sup = MVup to + ΔMV (t + c) (32) MVmin + Smin = MVactual + ΔMV (t + c) (33) MVmax - Smax = MVactual + ΔMV (t + c) (34)

Es versteht sich, dass die Komponenten der mit Strafen belegten Spielraumvektoren S, S+, Sunten, Soben, z. B. der Einheitskostenwert oder -strafwert, in der Zielfunktion als eine Funktion der Variablenprioritäten, Variablen-Einheitskosten und/oder anderen Faktoren wie dem Grad der Grenzübertretung eingestellt oder ausgewählt werden können.It is understood that the components of occupied penalties latitude vectors S-, S+, Sbelow, Sup, for. The unit cost or penalty, may be set or selected in the objective function as a function of the variable priorities, variable unit costs, and / or other factors such as the degree of border violation.

In Tests unter Verwendung dieser Verfahren wurden Grenzübertretungen erreicht, indem hochpegelige Störungen angewendet wurden oder indem Unter- und Obergrenzen der Eingänge und Ausgänge auf eine Weise eingestellt wurden, welche bewirkte, dass diese Grenzen übertreten wurden. Diese Tests bestätigten die Brauchbarkeit der Verfahren. Insbesondere während dieser Tests arbeitete der Optimierer einwandfrei und effektiv, wobei er die Übertretung von Beschränkungen hoher Priorität ohne weitere Übertretung von Beschränkungen niedrigerer Priorität verbesserte. Mithin stellt die Handhabung nicht realisierbarer LP-Lösungen durch Anwenden von Spielraumvariablen und Neudefinierung des Modells einen extrem flexiblen und effektiven Ansatz dar.In tests using these methods, border violations were achieved by applying high level disturbances or by setting the lower and upper bounds of the inputs and outputs in a way that caused these limits to be exceeded. These tests confirmed the usability of the procedures. Specifically, during these tests, the optimizer worked flawlessly and effectively, improving the violation of high priority constraints without further violation of lower priority constraints. Thus, handling non-viable LP solutions by applying margin variables and redefining the model is an extremely flexible and effective approach.

Außerdem können die oben erörterten Prinzipien der Beschränkungshandhabung verwendet werden, um eine Anzahl von Veränderungen an den Beschränkungsmodellen zu entwickeln, um spezielleren Anforderungen zu genügen. Desgleichen kann der Ansatz für andere Echtzeit-Optimierungsanwendungen ohne Verwendung von MPC-Steuerung, wie beispielsweise die Optimierung eines Benzinmischprozesses, verwendet werden. Überdies kann der Optimierer54 die oben beschriebenen Verfahren verwenden, um in Situationen, in welchen eine oder mehrere realisierbare Lösungen möglich sind, Bereichsregelung, ideale Ruhewerte zu implementieren. Also kann der Optimierer54 diese Verfahren verwenden, wenn er entweder beim Verwenden einer Zielfunktion in Situationen, in welchen keine realisierbare Lösung gefunden werden kann, oder beim Verwenden einer Zielfunktion in Situationen, in welchen eine oder mehrere realisierbare Lösungen möglich sind, es aber gewünscht ist, bis zu einem idealen Ruhewert, innerhalb eines Sollwertbereichs usw. weiter zu optimieren, zu optimieren versucht.In addition, the constraint handling principles discussed above may be used to develop a number of changes to the constraint models to meet more specific requirements. Likewise, the approach may be used for other real-time optimization applications without the use of MPC control, such as the optimization of a gasoline blending process. Moreover, theoptimizer 54 Use the methods described above to implement ideal closed-loop control in situations where one or more viable solutions are possible. So the optimizer can 54 These methods use when it is either ideal when using a target function in situations where no viable solution can be found, or when using a target function in situations where one or more viable solutions are possible, but it is desirable Quiescent value, within a setpoint range, etc., continue to optimize, to optimize.

Wie wiederum2 zeigt, liefert der Optimierer54 nach Bestimmen einer Lösung für den Satz von Stellvariablen-Zielwerten den Satz von optimalen oder Zielwert-Stellvariablen MVT an den Zielwert-Umwandlungsblock55, welcher die Matrix der stationären Verstärkungen verwendet, um die stationären Zielwert-Steuer- und Stellvariablen zu bestimmen, die sich aus den Zielwert-Stellvariablen MVT ergeben. Diese Umwandlung ist rechentechnisch einfach, da die Matrix der stationären Verstärkungen die Zusammenhänge zwischen den Stellvariablen und den Steuer- und Hilfsvariablen definiert und somit verwendet werden kann, um die Zielwert-Stell- und Hilfsvariablen CVT und AVT aus den definierten (stationären) Zielwert-Stellvariablen MVT eindeutig zu bestimmen.Like again 2 shows, the optimizer delivers 54 after determining a solution to the set of variable-target values, the set of optimal or target-value manipulated variables MVT to the targetvalue conversion block 55 which uses the matrix of steady state gains to determine the steady state target control and manipulated variables resulting from the target value manipulated variable MVT. This conversion is computationally simple, since the matrix of steady state gains defines the relationships between the manipulated variables and the control and auxiliary variables and thus can be used to derive the target value adjustment and auxiliary variables CVT and AVT from the defined (steady state) target value Unique variables MVT.

Nachdem sie bestimmt sind, wird mindestens eine Teilmenge von N der Zielwert-Steuer- und Hilfsvariablen CVT und AVT als Eingänge an die MPC-Steuereinrichtung52 geliefert, welche, wie zuvor erwähnt, diese Zielwerte CVT und AVT verwendet, um einen neuen Satz von stationären Stellvariablen (über den Steuerhorizont) MVSS zu bestimmen, welcher die aktuellen Steuer- und Stellvariablen CV und AV gegen die Zielwerte CVT und AVT am Ende des Steuerhorizonts treibt. Natürlich ändert die MPC-Steuereinrichtung die Stellvariablen beim Versuch, die stationären Werte für diese Variablen MVSS zu erreichen, welche theoretisch die vom Optimierer54 bestimmten Zielwert-Stellvariablen MVT sein werden, bekanntermaßen schrittweise. Weil der Optimierer54 und die MPC-Steuereinrichtung52 während jeder Prozessabfrage wie oben beschrieben arbeiten, können sich die Zielwerte der Stellvariablen MVT von Abfrage zu Abfrage ändern und kann die MPC-Steuereinrichtung folglich niemals einen bestimmten dieser Sätze von Zielwert-Stellvariablen MVT wirklich erreichen, vor allem nicht bei Vorliegen von Rauschen, unerwarteten Störungen, Änderungen im Prozess50 usw. Jedoch wirkt der Optimierer54 stets auf die Steuereinrichtung52 ein, damit diese die Stellvariablen MV gegen eine optimale Lösung bewegt.Once determined, at least a subset of N of the target value control and auxiliary variables CVT and AVT are input to theMPC controller 52 which, as previously mentioned, uses these target values CVT and AVT to determine a new set of steady state variables (over the control horizon) MVSS which maps the current control and manipulated variables CV and AV against the target values CVT and AVT drives at the end of the tax horizon. Of course, the MPC controller changes the manipulated variables in an attempt to reach the steady state values for these variables MVSS , which theoretically is that of theoptimizer 54 certain target value manipulated variables MVT are known to be incremental. Because theoptimizer 54 and theMPC controller 52 during each process polling as described above, the target values of the manipulated variables MVT may change from polling to polling, and consequently the MPC controller can never really reach any one of these sets of target variable MVT , especially not in the presence of noise, unexpected errors, changes in theprocess 50 etc. However, the optimizer works 54 always on thecontroller 52 so that it moves the manipulated variable MV against an optimal solution.

Bekanntermaßen enthält die MPC-Steuereinrichtung52 ein Steuerungsvorhersage-Prozessmodeil70, welches eine N-mal-M + D-Sprungantworten-Matrix sein kann (wobei N die Anzahl der Steuervariablen CV plus die Anzahl der Hilfsvariablen AV ist, M die Anzahl der Stellvariablen MV ist und D die Anzahl der Störvariablen DV ist). Das Steuerungsvorhersage-Prozessmodell70 produziert an einem Ausgang72 eine zuvor berechnete Vorhersage für jede der Steuer- und Hilfsvariablen CV und AV, und ein Vektorsummierer74 subtrahiert diese vorhergesagten Werte für den aktuellen Zeitpunkt von den gemessenen Istwerten der Steuer- und Hilfsvariablen CV und AV, um am Eingang76 einen Fehler- oder Korrekturvektor zu produzieren.As is known, the MPC controller includes 52 a controlprediction process mode 70 , which may be an N times M + D step response matrix (where N is the number of control variables CV plus the number of auxiliary variables AV, M is the number of manipulated variable MV and D is the number of disturbance variables DV). The controlprediction process model 70 produced at an exit 72 a previously calculated prediction for each of the control and auxiliary variables CV and AV, and avector summer 74 subtracts these predicted values for the current time from the measured actual values of the control and auxiliary variables CV and AV, at theinput 76 to produce an error or correction vector.

Das Steuerungsvorhersage-Prozessmodell70 verwendet dann die N-mal-M + D-Sprungantworten-Matrix, um für jede der Steuervariablen und Hilfsvariablen CV und AV über den Steuerhorizont auf Grundlage der an andere Eingänge des Steuerungsvorhersage-Prozessmodells70 gelieferten Stör- und Stellvariablen einen zukünftigen Steuerparameter vorherzusagen. Das Steuerungsvorhersage-Prozessmodell70 liefert auch die vorhergesagten stationären Werte der Steuervariablen und der Hilfsvariablen CVSS und AVSS an den Eingangsverarbeitungs-/Filterblock58.The controlprediction process model 70 then uses the N times M + D step response matrix to compare, for each of the control variables and auxiliary variables CV and AV, the control horizon based on the other inputs of the controlprediction process model 70 predicted disturbance and manipulated variable predict a future control parameter. The controlprediction process model 70 Also supplies the predicted steady state values of the control variables and the auxiliary variables CVSS and AVSS to the input processing /filtering block 58 ,

Ein Steuerungszielwertblock80 bestimmt unter Verwendung eines für den Block38 zuvor eingerichteten Trajektorienfilters82 einen Steuerungszielwerte-Vektor für jede der vom Zielwert-Umwandlungsblock55 an ihn gelieferten N Zielwert-Steuer- und Hilfsvariablen CVT und AVT. Insbesondere liefert der Trajektorienfilter einen Einheitsvektor, welcher die Art und Weise definiert, auf welche Steuer- und Hilfsvariablen über die Zeit gegen ihre Zielwerte zu treiben sind. Der Steuerungszielwertblock80 verwendet diesen Einheitsvektor und die Zielwert-Variablen CVT und AVT, um für jede der Steuer- und Hilfsvariablen einen Vektor der dynamischen Steuerungszielwerte zu produzieren, welcher die Änderungen in den Zielwert-Variablen CVT und AVT über die von der Steuerhorizont-Zeit definierte Zeitspanne definiert. Ein Vektorsummierer84 subtrahiert dann für jede der Steuer- und Hilfsvariablen CV und AV den zukünftigen Steuerparameter-Vektor von den dynamischen Steuervektoren, um für jede der Steuer- und Hilfsvariablen CV und AV einen Fehlervektor zu definieren. Der zukünftige Fehlervektor für jede der Steuer- und Hilfsvariablen CV und AV wird dann an den MPC-Algorithmus geliefert, welcher wirksam wird, um die Stellvariablen-(MV-)Schritte auszuwählen, welche zum Beispiel den kleinsten ins Quadrat erhobenen Fehler über den Steuerhorizont minimieren. Natürlich verwendet der MPC-Algorithmus oder die MPC-Steuereinrichtung ein M-mal-M-Prozessmodell oder eine M-mal-M-Steuermatrix, welches bzw. welche aus den Beziehungen zwischen den in die MPC-Steuereinrichtung52 eingegebenen N Steuer- und Hilfsvariablen und den von der MPC-Steuereinrichtung52 ausgegebenen M Stellvariablen entwickelt wurde.A controltarget value block 80 determined using one for theblock 38 previously established trajectory filter 82 a control target vector for each of the target value conversion block 55 N target value control and auxiliary variables CVT and AVT delivered to it . In particular, the trajectory filter provides a unit vector which defines the manner in which control and auxiliary variables over time against their targets. The controltarget value block 80 uses this unit vector and the target value variables CVT and AVT to produce, for each of the control and auxiliary variables, a vector of the dynamic control target values representing the changes in the target value variables CVT and AVT over that of the control horizon time defined time span defined. Avector sizer 84 then, for each of the control and auxiliary variables CV and AV, subtract the future control parameter vector from the dynamic control vectors to define an error vector for each of the control and auxiliary variables CV and AV. The future error vector for each of the control and auxiliary variables CV and AV is then provided to the MPC algorithm, which operates to select the manipulated variable (MV) steps that minimize, for example, the smallest squared error over the control horizon , Of course, the MPC algorithm or MPC controller uses an M by M process model or an M by M control matrix, which may be derived from the relationships between the MPC controller and theMPC controller 52 inputted N control and auxiliary variables and theMPC controller 52 output M variables was developed.

Insbesondere verfolgt der mit dem Optimierer arbeitende MPC-Algorithmus zwei Hauptziele. Erstens versucht der MPC-Algorithmus, den CV-Steuerfehler mit minimalen MV-Bewegungen innerhalb der Betriebsbeschränkungen zu minimieren, und zweitens versucht er, vom Optimierer erstellte optimale stationäre MV-Werte und die direkt aus den optimalen stationären MV-Werten berechneten CV-Zielwerte zu erreichen.In particular, the optimizer MPC algorithm pursues two main goals. First, the MPC algorithm attempts to minimize the CV control error with minimal MV movements within the operating constraints, and second, it attempts to optimize optimal stationary MV values created by the optimizer and the CV target values calculated directly from the optimum stationary MV values to reach.

Um diesen Zielen zu genügen, kann der ursprüngliche unbeschränkte MPC-Algorithmus erweitert werden, so dass er MV-Zielwerte in die kleinste quadratische Lösung einbezieht. Die Zielfunktion für diese MPC-Steuereinrichtung lautet:

Figure DE000010341762B4_0015
wobei
CV(k) der Vektor der ”p-Schritt-vorwärts”-Vorhersagen der gesteuerten Ausgänge ist;
R(k) der Vektor der ”p-Schritt-vorwärts”-Bezugstrajektorie (des ”p-Schrittvorwärts”-Sollwerts) ist;
ΔMV(k) der Vektor der inkrementalen ”c-Schritt-vorwärts”-Steuerbewegungen ist;
Γy = diag{Γ y / l, ..., Γ y / p} eine Matrix der Strafen auf die Fehler der gesteuerten Ausgänge ist;
Γu = diag{Γ u / l, ..., Γ u / c} eine Matrix der Strafen auf die Steuerbewegungen ist;
p der Vorhersagehorizont (Anzahl von Schritten) ist;
c der Steuerhorizont (Anzahl von Schritten) ist; und
Γo eine Strafe auf den Fehler der Summe der Ausgangsbewegungen der Steuereinrichtung über den Steuerhorizont bezüglich der vom Optimierer definierten optimalen Zielwert-Änderung von MV ist.To meet these goals, the original unrestricted MPC algorithm can be extended to include MV target values in the smallest quadratic solution. The objective function for this MPC controller is:
Figure DE000010341762B4_0015
in which
CV (k) is the vector of the "p-step-ahead" predictions of the controlled outputs;
R (k) is the vector of the "p-step-forward" reference trajectory (the "p-step forward"setpoint);
ΔMV (k) is the vector of incremental "c-step-forward"controls;
Γy = diag {Γ y / l , ..., Γ y / p } is a matrix of penalties on the errors of the controlled outputs;
Γu = diag {Γ u / l , ..., Γ u / c } is a matrix of penalties on the tax movements;
p is the forecast horizon (number of steps);
c is the tax horizon (number of steps); and
Eineo is a penalty on the error of the sum of the output movements of the controller over the control horizon with respect to the optimal target value change of MV defined by the optimizer.

Zur Vereinfachung der Darstellung ist die Zielfunktion für Einzeleingangs-/Einzelausgangs-(SISO)Steuerung dargestellt.To simplify the illustration, the target function for single input / single output (SISO) control is shown.

Es versteht sich, dass die ersten zwei Terme die Zielfunktion für die unbeschränkte MPC-Steuereinrichtung sind, während der dritte Term eine Zusatzbedingung aufstellt, welche die Summe der Ausgangsbewegungen der Steuereinrichtung gleich den optimalen Zielwerten macht. In anderen Worten, die ersten zwei Terme stellen Ziele für den dynamischen Betrieb der Steuereinrichtung auf, während der dritte Term Ziele für die stationäre Optimierung aufstellt.It should be understood that the first two terms are the objective function for the unrestricted MPC controller, while the third term establishes an overhead condition that renders the sum of the output motions of the controller equal to the optimal target values. In other words, the first two terms set goals for the dynamic operation of the controller, while the third term sets targets for the steady state optimization.

Es ist zu beachten, dass die allgemeine Losung für diese Steuereinrichtung, ähnlich derjenigen für die unbeschränkte MPC-Steuereinrichtung, ausgedrückt werden kann als:ΔMV(k) = (SuTΓTΓSu + ΓuTΓu)–1SuTΓTΓEp+1(k) = KompcEp+1(k) (36)wobei:
ΔMV(k) die Änderung im Ausgang der MPC-Steuereinrichtung zum Zeitpunkt k ist; Kompc die optimierte Verstärkung der MPC-Steuereinrichtung ist; und
Su die Matrix der Prozessdynamik ist.
Su kann aus den Sprungantworten der Größe p × c für ein SISO-Modell und
p·n × c·m für ein Mehreingangs-/Mehrausgangs-(MIMO)Modell mit m Stelleingängen und n Steuerausgängen erstellt werden.
It should be noted that the general solution for this controller, similar to that for the unrestricted MPC controller, can be expressed as: ΔMV (k) = (SuT ΓT ΓSu + ΓuT Γu )-1 SuT ΓT Γ Ep + 1 (k) = Kompc Ep + 1 (k) (36) in which:
ΔMV (k) is the change in output of the MPC controller at time k; Kompc is the optimized gain of the MPCcontroller ; and
Su is the matrix of process dynamics.
Su can be calculated from the step responses of the size p × c for a SISO model and
p × n × c × m for a multi-input / multi-output (MIMO) model with m set inputs and n control outputs.

Für eine optimierte MPC wird die Dynamik-Matrix auf die Größe (p + 1) × m für ein SISO-Modell und (p + m)·n × c·m für ein MIMO-Modell erweitert, um sie an den MV-Fehler anzupassen. Ep+1(k) ist der CV-Fehlervektor über den Vorhersagehorizont und der Fehler der Summe der Ausgangsbewegungen der Steuereinrichtung über den Steuerhorizont bezüglich der optimalen Zielwert-Änderung von MV. Die Matrix Γ kombiniert die Matrizen Γy und Γo und ist eine quadratische Matrix der Größe (p + 1) für eine SISO-Steuereinrichtung und [n(p + m)] für die Mehrvariablen-Steuereinrichtung. Das hochgesetzte T kennzeichnet eine transponierte Matrix. For an optimized MPC, the dynamics matrix is extended to the size (p + 1) × m for a SISO model and (p + m) × n × c × m for a MIMO model to match the MV error adapt. Ep + 1 (k) is the CV error vector over the prediction horizon and the error of the sum of the output movements of the controller over the control horizon with respect to the optimal target value change of MV. The matrix Γ combines the matrices Γy and Γo and is a quadratic matrix of size (p + 1) for a SISO controller and [n (p + m)] for the multi-variable controller. The raised T indicates a transposed matrix.

Es wurde festgestellt, dass es, weil der Optimierer54 auf Grundlage aller Steuer- und Hilfsvariablen CV und AV optimiert, um einen Zielwerte-Satz von Stellvariablen MVT zu bestimmen, welcher einen eindeutigen optimalen Arbeitspunkt definiert, ohne Bedeutung ist, dass die MPC-Steuereinrichtung52 nur mit einer Teilmenge der Steuer- und Hilfsvariablen CV und AV in ihrer Steuermatrix arbeitet, um daraus den Stellvariablen-(MV-)Ausgang zu produzieren, weil, wenn die Steuereinrichtung52 die ausgewählte Teilmenge von Steuer- und Hilfsvariablen CV und AV gegen ihre zugehörigen Zielwerte treibt, die übrigen des vollständigen Satzes von Steuer- und Hilfsvariablen ebenso auf ihren Zielwerten liegen werden. Infolgedessen wurde festgestellt, dass eine quadratische (M-mal-M-) MPC-Steuereinrichtung mit einer M-mal-M-Steuermatrix mit einem Optimierer, welcher zur Durchführung der Prozessoptimierung ein rechteckiges (N-mal-M-)Prozessmodell verwendet, verwendet werden kann. Dies macht es möglich, Standard-MPC-Steuerverfahren mit Standard-Optimierungsverfahren zu verwenden, ohne eine nichtquadratische Matrix mit den damit verbundenen, mit solchen Umwandlungsverfahren verknüpften Näherungen und Risiken in einer Steuereinrichtung invertieren zu müssen.It was found that because of theoptimizer 54 based on all the control and auxiliary variables CV and AV optimized to determine a target value set of manipulated variable MVT , which defines a unique optimal operating point, without meaning that theMPC controller 52 works with only a subset of the control and auxiliary variables CV and AV in its control matrix to produce therefrom the variable variable (MV) output, because when the control means 52 the selected subset of control and auxiliary variables CV and AV will drive against their associated target values, the remainder of the full set of control and auxiliary variables will also be at their target values. As a result, it has been found that a quadratic (M by M) MPC controller having an M by M control matrix with an optimizer using a rectangular (N by M) process model to perform the process optimization can be. This makes it possible to use standard MPC control methods with standard optimization methods without having to invert a non-quadratic matrix with the associated approximations and risks associated with such conversion methods in a control device.

In einer Ausführungsform kann, wenn die MPC-Steuereinrichtung quadratisch ist, d. h. wenn die Anzahl der Stellvariablen MV gleich der Anzahl der Steuervariablen CV ist, der Steilvariablen-(MV-)Zielwert durch Änderungen in CV-Werten folgendermaßen effektiv erreicht werden:ΔCV = A·ΔMVT (37)wobei:
ΔMVT die optimale Zielwert-Änderung von MV ist; und
ΔCV die CV-Änderung zum Erreichen einer optimalen MV ist.
In one embodiment, when the MPC controller is quadratic, that is, when the number of manipulated variables MV equals the number of control variables CV, the steep variable (MV) target value can be effectively achieved through changes in CV values as follows: ΔCV = A · ΔMVT (37) in which:
ΔMVT is the optimal target value change of MV; and
ΔCV is the CV change to achieve optimum MV.

Natürlich wird eine CV-Änderung durch das Handhaben von CV-Sollwerten implementiert.Of course, a CV change is implemented by handling CV setpoints.

Im Betrieb erstellt und aktualisiert der Optimierer54 die stationären Zielwerte für die unbeschränkte MPC-Steuereinrichtung bei jeder Abfrage. Somit führt die MPC-Steuereinrichtung52 den unbeschränkter Algorithmus aus. Weil die Zielwerte CVT und AVT auf eine Weise eingestellt werden, welche Beschränkungen berücksichtigt, solange es eine realisierbare Losung gibt, arbeitet die Steuereinrichtung innerhalb der Beschränkungsgrenzen. Deshalb ist Optimierung ein integraler Bestandteil der MPC-Steuereinrichtung.In operation, the optimizer creates and updates 54 the stationary target values for the unrestricted MPC controller at each poll. Thus, the MPC controller performs 52 the unbounded algorithm. Because the target values CVT and AVT are set in a way that accommodates constraints as long as there is a viable solution, the controller operates within the constraint limits. Therefore, optimization is an integral part of the MPC controller.

Die3 und4 zeigen ein Flussdiagramm90, welches die zur Durchführung der integrierten Modellvorhersage-Steuerung und Optimierung verwendeten Schritte veranschaulicht. Das Flussdiagramm90 ist in zwei Abschnitte90a (3) und90b (4) unterteilt, welche Funktionen, die vor dem Prozessbetrieb auftreten (90a), und Funktionen, die während des Prozessbetriebs auftreten (90b), z. B. bei jeder Abfrage des Prozessbetriebs, veranschaulichen. Vor dem Prozessbetrieb unternimmt ein Bediener oder Anlagenführer eine Anzahl von Schritten, um den hochentwickelten Steuerblock38 einschließlich einer integrierten MPC-Steuereinrichtung und eines Optimierers zu erzeugen. Insbesondere in einem Block92 kann eine hochentwickelte Steuerschablone zur Verwendung als hochentwickelter Steuerblock38 ausgewählt werden. Die Schablone kann in einer Bibliothek in einer Konfigurationsanwendung auf der Benutzerschnittstelle13 gespeichert und aus dieser kopiert werden, und sie kann die allgemeinen mathematischen und logischen Funktionen der MPC-Steuereinrichtungsroutine52 und des Optimierers54 ohne die jeweilige MPC, Prozessmodelle und stationäre Verstärkungs- oder Steuermatrizen und die jeweilige Zielfunktion enthalten. Diese hochentwickelte Steuerschablone kann in einem andere Blöcke wie zum Kommunizieren mit Einrichtungen innerhalb des Prozesses50 konfigurierte Eingangs- und Ausgangsblöcke oder andere Arten von Funktionsblöcken wie Steuerblöcke einschließlich PID-, Neuronennetz- und Fuzzy-Logic-Regelungsblöcke enthaltenden Modul untergebracht werden. Es versteht sich, dass in einer Ausführungsform sämtliche Blöcke in einem Modul Objekte in einem objektorientierten Programmierparadigma sind, deren Eingänge und Ausgänge untereinander verbunden sind, um die Kommunikation zwischen den Blöcken durchzuführen. Während des Betriebs führt der das Modul ausführende Prozessor unter Verwendung der Eingänge der Blöcke jeden der Blöcke der Reihe nach zu einem anderen Zeitpunkt aus, um die Ausgänge der Blöcke zu produzieren, welche dann an die Eingänge anderer Blöcke geliefert werden wie durch die festgelegten Kommunikationsverbindungen zwischen den Blöcken definiert.The 3 and 4 show a flow chart 90 which illustrates the steps used to perform the model prediction control and optimization. The flowchart 90 is in twosections 90a ( 3 ) and 90b ( 4 ), which functions occur before the process operation ( 90a ), and functions that occur during process operation ( 90b ), z. As in every query of the process operation, illustrate. Prior to process operation, an operator or plant operator takes a number of steps to complete theadvanced control block 38 including an integrated MPC controller and an optimizer. Especially in ablock 92 can be a sophisticated tax template for use as asophisticated control block 38 to be selected. The template may be in a library in a configuration application on theuser interface 13 can be stored and copied from this, and it can perform the general mathematical and logical functions of theMPC controller routine 52 and theoptimizer 54 without the respective MPC, process models and stationary gain or control matrices and the respective target function included. This sophisticated control template can be used in other blocks as to communicate with facilities within theprocess 50 configured input and output blocks or other types of function blocks such as control blocks including PID, neural network and fuzzy logic blocks containing module. It should be understood that in one embodiment, all blocks in a module are objects in an object-oriented programming paradigm whose inputs and outputs are interconnected to perform the communication between the blocks. During operation, the processor executing the module, using the inputs of the blocks, executes each of the blocks in turn at a different time to produce the outputs of the blocks, which are then supplied to the inputs of other blocks as through the established communication links between defined by the blocks.

In einem Block94 definiert der Bediener die im Block38 zu verwendenden einzelnen Stellvariablen, Steuervariablen, beschränkten Variablen und Störvariablen. Falls gewünscht, kann der Benutzer in einem Konfigurationsprogramm wie dem Programm40 aus1 die Steuerschablone ansehen, zu benennende und zu konfigurierende Eingänge und Ausgänge auswählen, mit einem Standardbrowser in der Konfigurationsumgebung stöbern, um die tatsächlichen Eingänge und Ausgänge im Steuerungssystem zu finden, und diese tatsächlichen Steuervariablen als die Eingangs- und Ausgangs-Steuervariablen für die Steuerschablone auswählen. In ablock 94 the operator defines those in theblock 38 individual variable variables to be used, control variables, limited variables and disturbance variables. If desired, the user can in a configuration program such as theprogram 40 out 1 view the control template, select inputs and outputs to designate and configure, browse through the configuration environment using a standard browser to find the actual inputs and outputs in the control system, and select these actual control variables as the input and output control variables for the control template.

Nach Auswählen der Eingänge und Ausgänge des hochentwickelten Steuerungs-Funktionsblocks kann der Benutzer die mit den Steuervariablen verknüpften Sollwerte, die mit den Steuervariablen, den Hilfsvariablen und den Stellvariablen verknüpften Bereiche oder Grenzen sowie die mit jeder der Steuer-, Hilfs- und Stellvariablen verknüpften Gewichte definieren. Natürlich können einige dieser Informationen wie Beschränkungsgrenzen oder Bereiche bereits mit diesen Variablen verknüpft sein, wenn diese Variablen in der Konfigurationsumgebung des Prozesssteuerungssystems ausgewählt oder gefunden werden. In einem Block96 aus3 kann der Bediener, falls gewünscht, die eine oder mehreren im Optimierer zu verwendenden Zielfunktionen konfigurieren, indem er die Einheitskosten und/oder Erlöse für jede der Stellvariablen, der Steuervariablen und der Hilfsvariablen festlegt. Natürlich kann sich der Bediener an dieser Stelle entscheiden, die Vorgabe-Zielfunktion wie oben beschrieben zu verwenden. Überdies kann der Benutzer die mit jeder der Spielraumvariablen oder Strafvariablen S+, S, Soben, Sunten usw. verknüpften Kosten oder Strafen für jede der Steuer-, Hilfs- und Stellvariablen festlegen. Falls gewünscht, kann der Benutzer die genaue Art und Weise festlegen, auf welche der Optimierer nicht realisierbare Lösungen, wie durch die ursprünglichen Beschränkungsgrenzen definiert, handhaben soll oder mit ihnen umgehen soll, wie mittels Spielraumvariablen, mittels des Neudefinierens von Beschränkungsgrenzen oder mittels irgendeiner Kombination dieser beiden Möglichkeiten.After selecting the inputs and outputs of the advanced control function block, the user may define the setpoints associated with the control variables, the ranges or limits associated with the control variables, the auxiliary variables and the manipulated variables, and the weights associated with each of the control, auxiliary, and manipulated variables , Of course, some of these information, such as restriction limits or ranges, may already be associated with these variables when these variables are selected or found in the configuration environment of the process control system. In ablock 96 out 3 For example, if desired, the operator may configure the one or more objective functions to be used in the optimizer by setting the unit cost and / or revenue for each of the manipulated variable, the control variable and the auxiliary variable. Of course, at this point, the operator may decide to use the default objective function as described above. Moreover, the user can with each of the latitude variables or criminal variables S+, S-, Stop, Sbottom, etc. define associated costs or penalties for each of the control, auxiliary and manipulated variables. If desired, the user may specify the exact manner in which the optimizer should handle or handle unrealisable solutions as defined by the original constraint limits, such as by means of travel variables, by redefinition of constraint limits, or by any combination thereof both ways.

Nachdem die Eingänge (Steuer-, Hilfs- und Störvariablen) und die Ausgänge (Stellvariablen) benannt und mit der hochentwickelten Steuerschablone verbunden sind und die Gewichte, Grenzen und Sollwerte mit ihnen verknüpft sind, wird in einem Block98 aus3 die hochentwickelte Steuerschablone als ein zur Steuerung zu verwendender Funktionsblock in eine ausgewählte Steuereinrichtung im Prozess heruntergeladen. Die allgemeine Beschaffenheit des Steuerblocks und die Art und Weise des Konfigurierens dieses Steuerblocks ist imU. S.-Patent Nr. 6,445,963 mit dem Titel ”Integrated Advanced Control Blocks in Process Control Systems” beschrieben, welches auf den Rechtsinhaber der vorliegenden Anmeldung übertragen ist und welches hiermit ausdrücklich durch Bezugnahme hierin eingeschlossen wird. Obwohl dieses Patent die Art und Weise des Erzeugens einer MPC-Steuereinrichtung in einem Prozesssteuerungssystem beschreibt und nicht die Art und Weise erörtert, auf welche ein Optimierer mit dieser Steuereinrichtung verbunden werden kann, versteht es sich, dass die zum Verbinden und Konfigurieren der Steuereinrichtung unternommenen allgemeinen Schritte für den hierin beschriebenen Steuerblock38 verwendet werden können, wobei die Schablone alle hierin für den Steuerblock38 erörterten Logikelemente statt nur der im Bezugspatent beschriebenen enthält.After the inputs (control, auxiliary and disturbance variables) and the outputs (manipulated variable) are named and connected to the advanced control template and the weights, limits and setpoints are linked to them, a block is created 98 out 3 the advanced control template is downloaded as a function block to be used for control into a selected controller in the process. The general nature of the control block and the way in which this control block is configured is shown in FIG U.S. Patent No. 6,445,963 entitled "Integrated Advanced Control Blocks Process Control Systems", which is assigned to the assignee of the present application and which is hereby expressly incorporated herein by reference. Although this patent describes the manner of creating an MPC controller in a process control system and does not discuss the manner in which an optimizer may be connected to that controller, it is to be understood that the general ones used to connect and configure the controller Steps for the control block described herein 38 can be used, with the template all herein for thecontrol block 38 discussed logic elements instead of only the one described in the reference patent.

Auf jeden Fall kann der Bediener, nachdem die hochentwickelte Steuerschablone in die Steuereinrichtung heruntergeladen ist, in einem Block100 entscheiden, eine Testphase der Steuerschablone auszuführen, um die Sprungantworten-Matrix und das Prozessmodell, welche im Algorithmus der MPC-Steuereinrichtung verwendet werden sollen, zu erzeugen. Wie im oben bezeichneten Patent beschrieben, liefert die Steuerlogik im hochentwickelten Steuerblock38 während der Testphase eine Reihe von pseudozufälligen Wellenformen als die Stellvariablen an den Prozess und beobachtet die Änderungen in den Steuer- und Hilfsvariablen (welche von der MPC-Steuereinrichtung im Wesentlichen als Steuervariablen behandelt werden). Falls gewünscht, können sowohl die Stell- und Störvariablen als auch die Steuer- und Hilfsvariablen von der Protokolliereinrichtung12 aus1 erfasst werden und kann der Bediener das Konfigurationsprogramm40 (1) einrichten, um diese Daten von der Protokolliereinrichtung12 zu erhalten und auf irgendeine Weise eine Trendanalyse an diesen Daten durchzuführen, um die Matrix der Sprungantworten zu erhalten oder zu bestimmen, wobei jede Sprungantwort die Antwort über die Zeit einer der Steuer- oder Hilfsvariablen auf eine Einheitsänderung in einer (und nur einer) der Stell- und Steuervariablen kennzeichnet. Diese Einheitsänderung ist in der Regel eine Sprungänderung, könnte aber eine andere Art von Änderung wie eine impuls- oder rampenförmige Änderung sein. Andererseits kann der Steuerblock38, falls gewünscht, die Sprungantworten-Matrix als Antwort auf die beim Anwenden der pseudozufälligen Wellenformen auf den Prozess50 erfaßten Daten erzeugen und dann diese Wellenformen an die Bedienerschnittstelle13 liefern, welche vom den hochentwickelten Steuerblock38 erzeugenden und einrichtenden Bediener oder Benutzer verwendet wird.In any case, after the sophisticated control template is downloaded to the controller, the operator may log in ablock 100 decide to execute a test phase of the control template to generate the step response matrix and the process model to be used in the algorithm of the MPC controller. As described in the above referenced patent, the control logic provides in theadvanced control block 38 During the testing phase, a series of pseudo-random waveforms are used as the manipulated variables to the process and observe the changes in the control and auxiliary variables (which are essentially treated as control variables by the MPC controller). If desired, both the setting and disturbing variables and the control and auxiliary variables may be provided by thelogging device 12 out 1 be captured and the operator can use the configuration program 40 ( 1 ) set up this data from thelogger 12 to obtain and in some way perform a trend analysis on that data to obtain or determine the matrix of the step responses, each step response being the response over time of one of the control or auxiliary variables to a unit change in one (and only one) of the set and control variables. This unit change is usually a jump change, but could be another type of change, such as a pulse or ramp change. On the other hand, thecontrol block 38 if desired, the step response matrix in response to the application of the pseudo-random waveforms to theprocess 50 generate captured data and then send these waveforms to theoperator interface 13 which of theadvanced control block 38 generating and setting up the operator or user.

Nachdem die Sprungantworten-Matrix erzeugt ist, wird im Falle, dass die Steuer- und Hilfsvariablen die Stellvariablen an Zahl übertreffen, die Sprungantworten-Matrix verwendet, um die Teilmenge von Steuer- und Hilfsvariablen auszuwählen, welche im MPC-Algorithmus als das M-mal-M-Prozessmodell oder die M-mal-M-Steuermatrix, welches bzw. welche in der MPC-Steuereinrichtung52 invertiert und benutzt werden soll, verwendet werden wird. Dieser Auswahlprozess kann manuell vom Bediener oder automatisch durch eine Routine zum Beispiel in der Benutzerschnittstelle13, welche Zugriff auf die Sprungantworten-Matrix hat, durchgeführt werden. Allgemein wird eine einzige der Steuer- und Hilfsvariabien als die am engsten mit einer einzigen der Stellvariablen zusammenhängende identifiziert. Also wird eine einzige und eindeutige (d. h. besondere) der Steuer- oder Hilfsvariablen (welche Eingänge der Prozesssteuereinrichtung sind) mit jeder der verschiedenen Stellvariablen (welche die Ausgänge der Prozesssteuereinrichtung sind) verknüpft, so dass der MPC-Algorithmus auf ein aus einem M-mal-M-Satz von Sprungantworten erzeugtes Prozessmodell gegründet werden kann.After the step response matrix is generated, in case the control and auxiliary variables exceed the manipulated variables by number, the step response matrix is used to select the subset of control and auxiliary variables which in the MPC algorithm is called the M times -M process model or the M times M Control matrix, which in theMPC controller 52 inverted and used will be used. This selection process can be done manually by the operator or automatically by a routine, for example, in theuser interface 13 which has access to the step response matrix. Generally, a single one of the control and auxiliary variables is identified as being most closely related to a single one of the variable variables. Thus, a single and unique (ie special) of the control or auxiliary variables (which are inputs to the process controller) is associated with each of the various manipulated variables (which are the outputs of the process controller), such that the MPC algorithm is one on one M times -M set of step responses generated process model can be established.

In einer Ausführungsform, welche zum Herstellen einer Paarung einen heuristischen Ansatz verwendet, wählt die automatische Routine oder der Bediener beim Versuch, die einzige Steuer- oder Hilfsvariable auszuwählen, welche auf eine Einheitsänderung in einer bestimmten der Stellvariablen hin eine Kombination der höchsten Verstärkung und der schnellsten Antwortzeit aufweist, den Satz von M (wobei M gleich der Anzahl von Stellvariablen ist) Steuer- und Hilfsvariablen aus und paart diese zwei Variablen. Natürlich kann in manchen Fällen eine bestimmte Steuer- oder Hilfsvariable bei mehreren Stellvariablen eine hohe Verstärkung und eine schnelle Antwortzeit aufweisen. Hier kann diese Steuer- oder Hilfsvariable mit einer beliebigen der zugehörigen Stellvariablen gepaart werden und kann tatsächlich mit einer Stellvariablen gepaart werden, welche nicht die höchste Verstärkung und die schnellste Antwortzeit produziert, weil die Stellvariable, welche die niedrigere Verstärkung oder langsamere Antwortzeit verursacht, insgesamt möglicherweise keine andere Steuer- oder Hilfsvariable in einem akzeptablen Maß beeinflusst. Mithin werden die Paare von Stellvariablen einerseits und Steuer- oder Hilfsvariablen andererseits ausgewählt, um in einem allgemeinen Sinn die Stellvariablen mit der Teilmenge der Steuer- und Hilfsvariablen, welche die am besten auf die Stellvariablen ansprechenden Steuervariablen darstellen, zu paaren. Überdies ist es ohne Bedeutung, wenn alle Steuervariablen nicht als eine der Teilmengen von M Steuer- und Hilfsvariablen ausgewählt werden und deshalb die MPC-Steuereinrichtung nicht alle Steuervariablen als ihre Eingänge empfängt, weil der Satz von Steuer- und Hilfsvariablen-Zielwerten vom Optimierer so gewählt wird, dass er einen Arbeitspunkt des Prozesses bildet, bei welchem die nicht ausgewählten Steuer-(sowie die nicht ausgewählten Hilfs-)Variablen auf ihrem Sollwert oder innerhalb ihres vorgesehenen Arbeitsbereichs liegen.In an embodiment employing a heuristic approach for establishing a match, the automatic routine or operator selects the single control or auxiliary variable which, upon a unit change in a particular one of the manipulated variables, selects a combination of the highest gain and the fastest Response time, the set of M (where M equals the number of manipulated variables) comprises control and auxiliary variables and pairs these two variables. Of course, in some cases, a particular control or auxiliary variable may have high gain and fast response time for multiple variable variables. Here, this control or auxiliary variable can be paired with any of the associated manipulated variable and can actually be paired with a manipulated variable which does not produce the highest gain and the fastest response time because the manipulated variable causing the lower gain or slower response time may be altogether no other control or auxiliary variable is affected to an acceptable degree. Thus, on the other hand, the pairs of manipulated variables on the one hand and control or auxiliary variables on the other hand are selected to pair in a general sense the manipulated variables with the subset of the control and auxiliary variables which are the control variables most responsive to the manipulated variable. Moreover, it is irrelevant if all the control variables are not selected as one of the subsets of M control and auxiliary variables, and therefore the MPC controller does not receive all the control variables as their inputs because the set of control and auxiliary variable target values chosen by the optimizer will be that it forms an operating point of the process in which the unselected control (as well as non-selected auxiliary) variables are at their setpoint or within their intended working range.

Natürlich kann es, weil es Dutzende oder gar Hunderte von Steuer- und Hilfsvariablen einerseits und Dutzende oder Hunderte von Stellvariablen andererseits geben kann, schwierig sein, den Satz von Steuervariablen und Hilfsvariablen auszuwählen, der die beste Antwort auf jede der verschiedenen Stellvariablen liefert, zumindest vom Standpunkt der Visualisierung her gesehen. Um dieses Problem zu überwinden, kann die Erzeugungsroutine für einen hochentwickelten Steuerblock40 in der Bedienerschnittstelle13 einen Satz von Bildschirmanzeigen für den Benutzer oder Bediener enthalten oder darbieten, um dem Bediener zu helfen und ihn in die Lage zu versetzen, geeignete Auswahlen der Steuer- und Hilfsvariablen, welche als die zur Verwendung während des Betriebs in der MPC-Steuereinrichtung52 vorgesehene Teilmenge von Steuer- und Hilfsvariablen verwendet werden sollten, zu treffen.Of course, because there may be tens or even hundreds of control and auxiliary variables on the one hand, and dozens or hundreds of manipulated variables on the other, it may be difficult to select the set of control variables and auxiliary variables that will provide the best answer to each of the various manipulated variables, at least of Viewpoint of visualization. To overcome this problem, the advanced control block generation routine can be used 40 in theoperator interface 13 include or present a set of on-screen displays to the user or operator to assist and enable the operator to make appropriate selections of the control and auxiliary variables other than those to be used during operation in theMPC controller 52 subset of control and auxiliary variables should be used.

Somit kann der Bediener in einem in3 gezeigten Block120 einen Bildschirm präsentiert bekommen, in welchem der Bediener die Antwort jeder der Steuer- und Hilfsvariablen auf eine bestimmte oder ausgewählte der Stellvariablen ansehen kann. Der Bediener kann die Stellvariablen durchblättern, eine nach der anderen, die Sprungantworten jeder der Steuer- und Hilfsvariablen auf jede der verschiedenen Stellvariablen ansehen und während des Prozesses diejenige Steuer- oder Hilfsvariable auswählen, welche die auf diese Stellvariable am besten ansprechende ist. Üblicherweise wird der Bediener versuchen, die Steuer- oder Stellvariable zu wählen, welche die beste Kombination aus höchster stationärer Verstärkung und schnellster Antwortzeit bei der Stellvariable aufweist.Thus, the operator in an in 3 shownblock 120 presented a screen in which the operator can view the response of each of the control and auxiliary variables to a particular or selected one of the manipulated variables. The operator may scroll through the manipulated variables, one at a time, view the step responses of each of the control and auxiliary variables to each of the various manipulated variables, and during the process, select the control or auxiliary variable that is most responsive to that manipulated variable. Typically, the operator will attempt to select the control or manipulated variable which has the best combination of maximum steady state gain and fastest response time to the manipulated variable.

Es versteht sich, dass solche Anzeigebildschirme dem Bediener ermöglichen, die Teilmenge der M Steuer- und Hilfsvariablen, welche als Eingänge des MPC-Steuerungsalgorithmus verwendet werden, anzuzeigen und auszuwählen, was besonders nützlich ist, wenn es zahlreiche dieser Variablen gibt. Natürlich kann der im Block74 bestimmte Satz von Steuer- und Beschränkungsvariablen auf Grundlage einiger zuvor festgesetzter Kriterien oder einer Auswahlroutine, welche die zu verwendenden Eingangsvariablen auf Grundlage irgendeiner Kombination aus Verstärkungsantwort und Zeitverzögerung wie aus den Sprungantworten für die Steuervariablen und die Stellvariablen bestimmt, auswählen kann, automatisch oder elektronisch ausgewählt werden.It is understood that such display screens allow the operator to display and select the subset of the M control and auxiliary variables used as inputs to the MPC control algorithm, which is particularly useful when there are many of these variables. Of course, in theblock 74 certain set of control and constraint variables may be selected automatically or electronically based on some previously determined criteria or a selection routine that selects the input variables to use based on any combination of gain response and time delay as determined from the step responses for the control variables and the manipulated variable ,

In einer weiteren Ausführungsform kann ein automatischer Auswahlprozess zuerst durch Auswählen einer Eingangs-/Ausgangs-Matrix basierend auf der Zustandszahl der Matrix eine Steuermatrix bestimmen, z. B. durch Minimieren der Zustandszahl bis zu einem gewünschten Betrag und anschließendes Entwickeln einer Steuereinrichtungs-Konfiguration aus der Steuermatrix.In another embodiment, an automatic selection process may first determine a control matrix by selecting an input / output matrix based on the state number of the matrix, e.g. By minimizing the state number to a desired amount and then developing a controller configuration from the control matrix.

In diesem Beispiel kann für eine Prozessverstärkungsmatrix A die Zustandszahl der Matrix AT A bestimmt werden, um die Steuerbarkeit der Matrix zu testen. Eine kleinere Zustandszahl bedeutet in der Regel bessere Steuerbarkeit, wohingegen eine höhere Zustandszahl geringere Steuerbarkeit und mehr Steuerschritte oder -bewegungen während des Arbeitens der dynamischen Steuerung bedeutet. Es gibt keine strengen Kriterien für das Definieren eines akzeptablen Maßes an Steuerbarkeit, und deshalb kann die Zustandszahl als ein relativer Vergleich verschiedener möglicher Steuermatrizen und als ein Test für schlecht beschaffene Matrizen verwendet werden. Bekanntermaßen geht eine Zustandszahl für eine schlecht beschaffene Matrix gegen ”Unendlich”. Mathematisch gesehen, tritt schlechte Beschaffenheit im Falle kallinearer Prozessvariablen auf – das heißt, wegen kollinearer Zeilen oder Spalten in der Steuermatrix. Folglich ist Kreuzkorrelation zwischen Matrixzeilen und -spalten ein bedeutender Faktor, der sich auf Zustandszahl und Steuerbarkeit auswirkt. Durch sorgfältiges Auswählen der Eingangs-/Ausgangsvariablen in der Steuermatrix lassen sich Probleme mit der Beschaffenheit reduzieren. Praktisch besteht Anlass zur Sorge, wenn die Zustandszahl einer Steuermatrix Hunderte beträgt (z. B. 500) oder noch höher ist. Bei einer solchen Matrix ergeben sich äußerst übermäßige Bewegungen der Steuereinrichtungs-Stellvariablen.In this example, for a process gain matrix A, the state number of the matrix AT A can be determined to test the controllability of the matrix. A smaller state number usually means better controllability, whereas a higher state number means less controllability and more control steps or movements during the operation of the dynamic control. There are no strict criteria for defining an acceptable level of controllability, and therefore the state number can be used as a relative comparison of various possible control matrices and as a test for poor matrices. As is known, a condition number for a poorly prepared matrix goes against "infinity." Mathematically speaking, bad texture occurs in the case of kallinear process variables - that is, because of collinear rows or columns in the control matrix. Thus, cross-correlation between matrix rows and columns is a significant factor affecting state number and controllability. By carefully selecting the input / output variables in the control matrix, problems with the nature can be reduced. In practice, there is cause for concern when the state number of a control matrix is hundreds (eg, 500) or even higher. Such a matrix results in extremely excessive movements of the controller set variables.

Wie oben erörtert, löst die Steuermatrix das Problem der dynamischen Steuerung, während der LP-Optimierer das Problem der stationären Optimierung löst, und die Steuermatrix muss eine quadratische Eingangs-/Ausgangs-Matrix sein, selbst wenn der MPC-Steuereinrichtungs-Block eine ungerade Zahl von MVs (einschließlich AVs) und CVs aufweisen kann. Um das Auswählen der Eingänge und Ausgänge für die Steuermatrix zur Verwendung beim Erzeugen der Steuereinrichtung zu beginnen, werden üblicherweise alle verfügbaren MVs als Steuereinrichtungs-Ausgänge einbezogen oder ausgewählt. Nach dem Auswählen der Ausgänge (der MVs) müssen die Prozessausgangsvariablen (d. h. die CVs und AVs), welche in die dynamische Steuermatrix aufgenommen werden, so ausgewählt werden, dass sie eine quadratische Steuermatrix produzieren, welche nicht schlecht beschaffen ist.As discussed above, the control matrix solves the problem of dynamic control while the LP optimizer solves the problem of steady state optimization, and the control matrix must be a quadratic input / output matrix even if the MPC controller block is an odd number of MVs (including AVs) and CVs. To begin selecting the control matrix inputs and outputs for use in generating the controller, usually all available MVs are included or selected as controller outputs. After selecting the outputs (the MVs), the process output variables (i.e., the CVs and AVs) that are included in the dynamic control matrix must be selected to produce a quadratic control matrix that is not poorly designed.

Nun wird ein Verfahren zum automatischen oder manuellen Auswählen der CVs und AVs als Eingänge in der Steuermatrix erörtert, wobei es sich versteht, dass ebenso andere Verfahren verwendet werden können.Now, a method of automatically or manually selecting the CVs and AVs as inputs in the control matrix will be discussed, it being understood that other methods may be used as well.

Schritt 1 – CVs werden ausgewählt, bis, falls möglich, die Anzahl von CVs gleich der Anzahl von MVs (d. h. der Anzahl von Steuereinrichtungs-Ausgängen) ist. Im Falle, dass es mehr CVs als MVs gibt, können die CVs in beliebiger Reihenfolge und auf beliebigen gewünschten Kriterien wie Priorität, Verstärkungs- oder Phasengang, Benutzereingabe usw. beruhend gewählt werden. Wenn die gesamte mögliche Anzahl von CVs gleich der Anzahl von MVs ist, mit Schritt 4 fortfahren, um die resultierende Zustandszahl der quadratischen Steuermatrix auf Eignung zu testen. Wenn die Anzahl von CVs kleiner als die Anzahl von MVs ist, können AVs wie in Schritt 2 beschrieben ausgewählt werden. Wenn keine CVs definiert sind, die AV mit maximaler Verstärkung bezüglich einer MV auswählen und mit Schritt 2 fortfahren.Step 1 - CVs are selected until, if possible, the number of CVs equals the number of MVs (i.e., the number of controller outputs). In the event that there are more CVs than MVs, the CVs can be chosen in any order and on any desired criteria such as priority, gain or phase response, user input, etc. If the total possible number of CVs equals the number of MVs, proceed to step 4 to test the resulting quadratic control matrix state number for fitness. If the number of CVs is less than the number of MVs, AVs can be selected as described in step 2. If no CVs are defined, select the AV with maximum gain relative to MV and proceed to step 2.

Schritt 2 – Eine nach der anderen die Zustandszahl für jede mögliche zur bereits ausgewählten, durch die zuvor ausgewählten CVs und AVs definierten Steuermatrix hinzugefügte AV berechnen. Es versteht sich, dass die durch die ausgewählten CVs definierte Matrix für jede ausgewählte CV und AV eine Zeile enthält, welche die stationäre Verstärkung für diese CV oder AV bei jeder der zuvor ausgewählten MVs definiert.Step 2 - Calculate one by one the state number for each possible AV added to the already selected control matrix defined by the previously selected CVs and AVs. It is understood that the matrix defined by the selected CVs for each selected CV and AV includes a row which defines the steady state gain for that CV or AV at each of the previously selected MVs.

Schritt 3 – Die in Schritt 2 bestimmte AV, welche in der minimalen Zustandszahl für die resultierende Matrix resultiert, auswählen und die Matrix als die vorherige Matrix mit Hinzufügung der ausgewählten AV definieren. Wenn die Anzahl der MVs jetzt gleich der Anzahl der ausgewählten CVs plus der Anzahl der ausgewählten AVs ist (das heißt, wenn die Matrix jetzt quadratisch ist), mit Schritt 4 fortfahren. Andernfalls zu Schritt 2 zurückkehren.Step 3 - Select the AV determined in step 2, which results in the minimum state number for the resulting matrix, and define the matrix as the previous matrix with the addition of the selected AV. If the number of MVs is now equal to the number of selected CVs plus the number of selected AVs (that is, if the matrix is now square), go to step 4. Otherwise, return to step 2.

Schritt 4 – Die Zustandszahl für die erzeugte quadratische Steuermatrix Ac berechnen. Falls gewünscht, kann die Berechnung der Zustandszahl für die Matrix Ac anstelle der Matrix AcTAc verwendet werden, da die Zustandszahlen für diese verschiedenen Matrizen als die Quadratwurzel der anderen in Beziehung miteinander stehen.Step 4 - Calculate the state number for the generated square control matrix Ac . If desired, the calculation of the state number for the matrix Ac may be used instead of the matrix AcT Ac , since the state numbers for these different matrices are related as the square root of the others.

Schritt 5 – Wenn die in Schritt 4 berechnete Zustandszahl akzeptabel ist, durch Auswählen der CV oder AV mit der maximalen Verstärkung bezüglich einer bestimmten MV jede CV und ausgewählte AV mit einer MV verknüpfen, bis die Paarung vollständig ist. An dieser Stelle ist der Auswahlprozess abgeschlossen.Step 5 - If the state number calculated in step 4 is acceptable, by selecting the CV or AV with the maximum gain relative to a given MV, link each CV and selected AV to an MV until the pairing is complete. At this point, the selection process is completed.

Wenn andererseits die Zustandszahl großer als die minimale akzeptable Zustandszahl ist, die letzte zur Steuermatrix hinzugefügte AV/CV entfernen und die Umbruch-Prozedur aus Schritt 6 durchführen. On the other hand, if the state number is greater than the minimum acceptable state number, remove the last AV / CV added to the control matrix and perform the break procedure of step 6.

Schritt 6 – Eine Umbruch-Prozedur für jede der ausgewählten MVs, eine nach der anderen, durchführen und die Zustandszahl der Matrix, welche sich aus jeder Umbruch-Prozedur ergibt, berechnen. Im Wesentlichen wird eine Umbruch-Prozedur durch der Reihe nach erfolgendes Einfügen einer Einheitsantwort für jede der verschiedenen MVs anstelle der entfernten AV (oder CV) durchgeführt. Die Einheitsantwort ist eine Einheit auf einer der Stellen in der Matrixzeile und null überall sonst. Im Wesentlichen wird jede der einzelnen MVs in diesem Fall als ein Eingang und ein Ausgang anstelle der AV verwendet, um eine gut beschaffene quadratische Steuermatrix zu bilden. Als Beispiel für eine 4-mal-4-Matrix werden die Kombinationen 1000, 0100, 0010, und 0001 in die Zeile der entfernten AV in der Verstärkungsmatrix A, eingefügt.Step 6 - Perform a wrap-around procedure for each of the selected MVs, one at a time, and calculate the state number of the matrix resulting from each wrap-around procedure. In essence, a wrap-around procedure is performed by sequentially inserting a unit response for each of the various MVs instead of the remote AV (or CV). The unit response is a unit on one of the locations in the matrix row and zero everywhere else. Essentially, each of the individual MVs in this case is used as an input and an output instead of the AV to form a well-formed quadratic control matrix. As an example of a 4 by 4 matrix, the combinations 1000, 0100, 0010, and 0001 are inserted into the line of the removed AV in the gain matrix A.

Schritt 7 – Nach dem Durchführen einer Umbruch-Prozedur für jede der MVs die Kombination auswählen, welche die minimale Zustandszahl ergibt. Wenn sich keine Verbesserung ergibt, die ursprüngliche Matrix behalten. An dieser Stelle durch Auswählen der CV oder AV mit maximaler Verstärkung bezüglich einer bestimmten MV, ausgenommen die MV, welche zum Steuern ihrer selbst verwendet wird (d. h. die MV, welche umgebrochen wurde), jede ausgewählte CV und jede ausgewählte AV mit einer MV verknüpfen.Step 7 - After performing a wrap-around procedure, for each of the MVs select the combination that gives the minimum state number. If there is no improvement, keep the original matrix. At this point, by selecting the maximum gain CV or AV with respect to a particular MV, except the MV used to control itself (i.e., the MV that has been wrapped), associate each selected CV and each selected AV with an MV.

Natürlich kann sowohl die durch diese Prozedur definierte Steuermatrix als auch die resultierende Zustandszahl dem Benutzer unterbreitet werden und kann der Benutzer die definierte Steuermatrix zur Verwendung beim Erzeugen der Steuereinrichtung akzeptieren oder ablehnen.Of course, both the control matrix defined by this procedure and the resulting state number may be submitted to the user, and the user may accept or reject the defined control matrix for use in generating the control device.

Es ist zu beachten, dass in der oben beschriebenen automatischen Prozedur zum Zwecke des Verbesserns der Steuerbarkeit höchstens nur eine MV zum Steuern ihrer selbst ausgewählt (d. h. umgebrochen) wurde. In der manuellen Prozedur kann die Anzahl der umgebrochenen MVs willkürlich gewählt werden. Die zum Steuern ihrer selbst ausgewählten MVs treten durch das Fehlen einer entsprechenden Ausgangsvariablen-Auswahl in der Steuereinrichtungs-Konfiguration hervor. Man kann auch mehr MVs als Umbrüche zur Steuerung verwenden, wenn die Anzahl der MVs größer ist als die Anzahl sämtlicher CVs plus AVs. Auf diese Weise wird schließlich immer noch eine quadratische Steuermatrix an die Steuereinrichtung geliefert, welche jede einzelne der MVs als Ausgänge hat. Es versteht sich, dass der Prozess des Durchführens und Verwendens von Umbrüchen bedeutet, dass die Anzahl der für die Steuermatrix ausgewählten CVs und AVs kleiner sein kann als die Anzahl der durch die Steuereinrichtung gesteuerten MVs, wobei der Unterschied in der Anzahl von als Eingänge der Steuermatrix umgebrochenen MVs besteht. Außerdem kann diese Umbruch-Prozedur in einem Prozess verwendet werden, in welchem es weniger CVs plus AVs als MVs gibt.It should be noted that in the above-described automatic procedure, for the purpose of improving controllability, at most only one MV has been selected (i.e., wrapped) for controlling itself. In the manual procedure, the number of wrapped MVs can be chosen arbitrarily. The MVs selected to control their own self are evidenced by the lack of a corresponding output variable selection in the controller configuration. You can also use more MVs than controls to control when the number of MVs is greater than the number of CVs plus AVs. In this way, finally, a quadratic control matrix is still supplied to the controller, which has each one of the MVs as outputs. It will be appreciated that the process of performing and using breaks means that the number of CVs and AVs selected for the control matrix may be less than the number of MVs controlled by the controller, with the difference in the number of inputs to the control matrix wrapped MVs exists. In addition, this wrapping procedure can be used in a process where there are fewer CVs plus AVs than MVs.

Natürlich wird die Zustandszahl oben mittels der stationären Verstärkungen berechnet, und deshalb definiert die Steuermatrix die Steuerbarkeit im Wesentlichen für den stationären Zustand. Auch Prozessdynamik (Totzeit, Verzögerung usw.) und Modellunsicherheit wirken sich auf die dynamische Steuerbarkeit aus, und diese Auswirkungen können durch das Ändern der Priorität von Prozessvariablen (z. B. Steuer- und Hilfsvariablen) berücksichtigt werden, welche wegen der Auswirkungen, die sie auf die dynamische Steuerung haben, ihre Einbeziehung in die Steuermatrix gebieten können.Of course, the state number above is calculated by means of the steady state gains, and therefore the control matrix essentially defines controllability for the steady state. Process dynamics (dead time, deceleration, etc.) and model uncertainty also affect dynamic controllability, and these effects can be accounted for by changing the priority of process variables (eg, control and auxiliary variables), which, because of the impact they have to have the dynamic control, their inclusion in the control matrix can command.

Es ist auch möglich, andere zur Verbesserung sowohl der stationären als auch der dynamischen Steuerbarkeit vorgesehene heuristische Prozeduren zu verwenden. Eine solche Prozedur würde üblicherweise eine Anzahl von heuristischen Kriterien, darunter möglicherweise einige, die unvereinbar sind, aufweisen, welche in mehreren Phasen angewendet werden, um eine Steuermatrix zu entwickeln und dadurch einen geeigneten Satz von Steuereinrichtungs-Eingängen auszuwählen, welche einige Verbesserungen der Steuermatrix bewirken. In einer solchen heuristischen Prozedur werden die CVs und die AVs auf Grundlage der Beziehung mit der höchsten Verstärkung nach MV gruppiert. Für jede MV-Gruppierung wird dann der eine Prozessausgang mit der schnellsten Dynamik und beträchtlicher Verstärkung ausgewählt. Dieser Auswahlprozess kann den Vertrauensbereich berücksichtigen und CVs gegenüber AVs den Vorzug geben (wobei alle anderen gleich sind). Die Routine zur Erzeugung des Prozessmodells verwendet dann den während der Erzeugung der MPC-Steuerung aus jeder Gruppe ausgewählten Parameter. Weil für jede MV nur ein Parameter ausgewählt wird, ist die Antworten-Matrix quadratisch und kann invertiert werden.It is also possible to use other heuristic procedures designed to improve both steady state and dynamic controllability. Such a procedure would typically include a number of heuristic criteria, including possibly some that are incompatible, which are applied in multiple phases to develop a control matrix and thereby select an appropriate set of controller inputs which will bring about some improvements to the control matrix , In such a heuristic procedure, the CVs and AVs are grouped into MV based on the highest gain relationship. For each MV grouping, the one process output with the fastest dynamics and significant gain is selected. This selection process can take into account the confidence level and give preference to CVs over AVs (all the others being the same). The process model generation routine then uses the parameter selected from each group during generation of the MPC control. Because only one parameter is selected for each MV, the response matrix is square and can be inverted.

Auf jeden Fall erzeugt ein Block124 aus3 nach Auswählen der Teilmenge von M (oder weniger) Steuer- und Hilfsvariablen-Eingängen der MPC-Steuereinrichtung aus der bestimmten quadratischen Steuermatrix das Prozessmodell oder die Steuereinrichtung, welches bzw. welche im MPC-Steuerungs-Algorithmus86 aus2 zu verwenden ist. Bekanntermaßen ist dieser Schritt zur Erzeugung der Steuereinrichtung eine rechenintensive Prozedur. Ein Block126 lädt dann dieses MPC-Prozessmodell (schon an sich einschließlich der Steuermatrix) oder diese Steuereinrichtung und nötigenfalls die Sprungantworten und die Matrix der stabilen Sprungantwort-Verstärkungen in den Steuerblock38 herunter, und diese Daten werden für den Betrieb in den Steuerblock38 aufgenommen. In diesem Augenblick ist der Steuerblock38 bereit für Online-Betrieb im Prozess50.In any case, generates ablock 124 out 3 after selecting the subset of M (or less) control and auxiliary variable inputs of the MPC controller from the particular quadratic control matrix, the process model or controller using theMPC control algorithm 86 out 2 to use. As is known, this step for generating the control device is a compute-intensive procedure. Ablock 126 then loads this MPC process model (already including itself the control matrix) or this controller and, if necessary, the step responses and the matrix of stable step response gains into thecontrol block 38 down, and these data are for operation in thecontrol block 38 added. Right now is thecontrol block 38 ready for online operation in theprocess 50 ,

Falls gewünscht, können die Prozess-Sprungantworten neu konfiguriert oder auf eine andere Weise als durch die Erzeugung dieser Sprungantworten gebildet werden. Zum Beispiel können die Sprungantworten aus verschiedenen im System gespeicherten Modellen kopiert werden, um die Sprungantwort einer bestimmten Steuer- oder Hilfsvariable auf eine Stell- oder Störvariable festzulegen. Außerdem kann ein Benutzer die Parameter für eine Sprungantwort, wie die stationäre Verstärkung, die Antwortzeit, die Zeitkonstante erster Ordnung und den ins Quadrat erhobenen Fehler, definieren oder festlegen und, falls gewünscht, kann der Benutzer die Eigenschaften einer Sprungantwort anzeigen und ändern, indem er, falls so gewünscht, andere Parameter wie eine andere Verstärkung oder Zeitkonstante festlegt. Wenn der Benutzer eine andere Verstärkung oder andere Parameter festlegt, kann das Sprungantwort-Modell mathematisch neu erzeugt werden, damit es diesen neuen Parameter oder Satz von Parametern enthält. Diese Funktion ist nützlich, wenn der Benutzer die Parameter der Sprungantwort kennt und die erzeugte Sprungantwort ändern muss, um Übereinstimmung mit diesen Parametern zu erzielen oder diese Parameter einzuhalten.If desired, the process step responses may be reconfigured or formed in some other way than by generating these step responses. For example, the step responses may be copied from various models stored in the system to determine the step response of a particular control or auxiliary variable to a set or disturb variable. In addition, a user may define or set the parameters for a step response, such as steady state gain, response time, first order time constant, and squared error, and if desired, the user may view and change the characteristics of a step response by if so desired, set other parameters such as another gain or time constant. If the user specifies a different gain or other parameters, the step response model may be mathematically re-generated to include this new parameter or set of parameters. This function is useful if the user knows the parameters of the step response and must change the generated step response in order to match these parameters or to comply with these parameters.

In4 sind nun die allgemeinen, während jedes Betriebszyklus oder jeder Abfrage des hochentwickelten Steuerblocks38 durchgeführten Schritte, wie mittels des Flussdiagramms90a aus3 erzeugt, dargestellt, während der Prozess50 online arbeitet. In einem Block150 empfängt und verarbeitet die MPC-Steuereinrichtung52 (2) die gemessenen Werte der Steuer- und Hilfsvariablen CV und AV. Insbesondere das Steuerungsvorhersage-Prozessmodell verarbeitet die CV-, AV- und DV-Messungen oder -Eingänge, um den zukünftigen Steuerparameter-Vektor sowie die vorhergesagten stationären Steuer- und Hilfsvariablen CVSS und AVSS zu produzieren.In 4 are now the general, during each cycle of operation or every poll of theadvanced control block 38 performed steps, as by means of theflowchart 90a out 3 generated, displayed during theprocess 50 works online. In ablock 150 receives and processes the MPC controller 52 ( 2 ) the measured values of the control and auxiliary variables CV and AV. In particular, the control prediction process model processes the CV, AV and DV measurements or inputs to produce the future control parameter vector as well as the predicted steady-state control and auxiliary variables CVSS and AVSS .

In einem Block152 verarbeitet oder filtert der Eingangsverarbeitungs-/Filterblock58 (2) dann die von der MPC-Steuereinrichtung52 entwickelten vorhergesagten Steuer- und Hilfs- und Stellvariablen CVSS, AVSS und MVSS und liefert diese gefilterten Werte an den Optimierer54. In einem Block154 führt der Optimierer54 Standard-LP-Verfahren aus, um den Satz von M Stellvariablen-Zielwerten MVT zu bestimmen, welche die ausgewählte Zielfunktion oder die Vorgabe-Zielfunktion maximieren oder minimieren, wobei keine der Grenzen der Hilfs- und Stellvariablen übertreten wird und wobei die Steuervariablen auf ihrem festgelegten Sollwert oder innerhalb der festgelegten Bereiche für diese Variablen gehalten werden. Allgemein berechnet der Optimierer54 eine Zielwert-Stellvariablen-Lösung MVT, indem er jede der Steuervariablen und Hilfsvariablen an ihre Grenzen zwingt. Wie oben erwähnt, gibt es in vielen Fällen eine Lösung, bei welcher jede einzelne der Steuervariablen auf ihrem Sollwert (welcher anfänglich als eine Obergrenze der Steuervariable behandelt werden kann) liegt, während jede einzelne der Hilfsvariablen innerhalb ihrer jeweiligen Beschränkungsgrenzen bleibt. Wenn dies der Fall ist, braucht der Optimierer54 nur die bestimmten Stellvariablen-Zielwerte MVT auszugeben, welche ein optimales Ergebnis für die Zielfunktion produzieren.In ablock 152 the input processing / filtering block processes or filters 58 ( 2 ) then from theMPC controller 52 developed predicted control and auxiliary variables CVSS , AVSS and MVSS and supplies these filtered values to theoptimizer 54 , In ablock 154 leads theoptimizer 54 Standard LP methods to determine the set of M manipulated variable target values MVT that maximize or minimize the selected objective function or objective-objective function, wherein none of the limits of the auxiliary and manipulated variable are transgressed, and wherein the control variables are on their setpoint or within the specified ranges for these variables. In general, the optimizer calculates 54 a target value variable MVT solution by forcing each of the control variables and auxiliary variables to their limits. As mentioned above, in many cases there is a solution in which each one of the control variables is at its setpoint (which may initially be treated as an upper limit of the control variable) while each one of the auxiliary variables remains within their respective restriction limits. If so, the optimizer needs it 54 only output the specific manipulated variables target values MVT , which produce an optimum result for the objective function.

In manchen Fällen aber kann es wegen enger Beschränkungen bei einigen oder allen Hilfs- oder Stellvariablen unmöglich sein, einen Arbeitspunkt zu finden, an welchem alle Steuervariablen auf ihrem Sollwert liegen und alle Hilfsvariablen innerhalb ihrer jeweiligen Beschränkungsgrenzen liegen, weil es keine solche Lösung gibt. In diesen Fällen, unter Verwendung der oben beschriebenen Spielraumvariablen-Verfahren und/oder Verfahren zur Neudefinierung der Grenzen, entwickelt der Optimierer54 eine neue Zielfunktion und/oder wählt einen neuen Satz von Grenzen aus, wie durch den Block155 veranschaulicht. Dann führt der Block154 den Optimierer54 mit der neu entwickelten Zielfunktion und/oder den neu entwickelten Grenzen mit oder ohne Strafvariablen erneut aus, um eine optimale Lösung zu bestimmen. Wenn noch immer keine realisierbare Lösung oder wenn eine anderweitig inakzeptable Lösung gefunden wird, kann der Block155 erneut wirksam werden, um einen neuen Satz von Grenzen oder eine neue Zielfunktion zur Verwendung in einem weiteren Durchgang des Optimierers54 zu definieren. Zum Beispiel kann der Block155 in einem ersten Durchgang mit einer nicht realisierbaren Lösung entscheiden, Spielraumvariablen zu verwenden und dadurch eine neue Zielfunktion zur Verwendung im zweiten Durchgang des Optimierers54 zu liefern. Wenn nach dem zweiten Durchgang eine nicht realisierbare oder anderweitig inakzeptable Lösung gefunden wird, kann der Block155 die Beschränkungsgrenzen entweder mit oder ohne Strafvariablen neu definieren und diese neuen Beschränkungsgrenzen und möglicherweise eine neue Zielfunktion zur Verwendung in einem dritten Durchgang an den Block154 liefern. Natürlich kann der Block155 eine Kombination aus Spielraumvariablen und Grenzen-Neudefinierungen verwenden und eine neue Zielfunktion und neue Grenzen zur Verwendung in irgendeinem Durchgang des Optimierers54 liefern. Der Block155 kann natürlich in der Situation, in welcher mittels der ursprünglichen Zielfunktion keine realisierbare Lösung gefunden wird, irgendeine andere gewünschte Strategie zum Auswählen einer neuen Zielfunktion oder zum Neudefinieren von Beschränkungsgrenzen verwenden. Falls gewünscht, kann die im Block154 ausgeführte ursprüngliche Zielfunktion Spielraumvariablen-Strafen enthalten, die verwendet werden können, um die Prozessvariablen während des ersten Durchgangs (oder irgendeines nachfolgenden Durchgangs) des Optimierers an eine Grenze, an einen Sollwert oder an einen idealen Ruhewert zu treiben. Außerdem kann die im Block154 verwendete ursprüngliche Zielfunktion die Spielraumvariablen-Beschränkungs-Handhabung an erster Stelle einschließen, und diese kann beim ersten Durchgang des Optimierers verwendet werde. In nachfolgenden Läufen, falls diese erforderlich sind, kann dann die Grenzen-Neudefinierung entweder allein oder in Verbindung mit mit Strafen belegten Spielraumvariablen verwendet werden. Desgleichen ist es möglich, Spielraumvariablen oder Grenzen-Neudefinierung oder beides zu verwenden, um während eines nachfolgenden Durchgangs des Optimierers mittels eines der oben beschriebenen Verfahren Prozessvariablen gegen Grenzen, gegen einen Sollwert, gegen einen idealen Ruhewert usw, zu treiben.However, in some cases, because of tight constraints on some or all of the auxiliary or manipulated variables, it may be impossible to find an operating point where all the control variables are at their setpoint and all the auxiliary variables are within their respective constraint limits because there is no such solution. In these cases, using the above described margin variable methods and / or limits redefinition methods, the optimizer develops 54 a new objective function and / or selects a new set of boundaries, such as through theblock 155 illustrated. Then the block leads 154 theoptimizer 54 with the newly developed objective function and / or the newly developed limits with or without penalty variables to determine an optimal solution. If still no viable solution or if an otherwise unacceptable solution is found, theblock 155 again take effect to a new set of limits or a new objective function for use in another pass of theoptimizer 54 define. For example, theblock 155 in a first pass with an unrealizable solution, decide to use travel variables and thereby a new objective function for use in the second pass of theoptimizer 54 to deliver. If after the second pass an unrealizable or otherwise unacceptable solution is found, the block may 155 redefine the bounds of constraint either with or without penalty variables and these new bounds and possibly a new goal function for use in a third pass to theblock 154 deliver. Of course, the block can 155 use a combination of travel variables and bounds redefinitions and a new objective function and new bounds for use in any pass of theoptimizer 54 deliver. Theblock 155 can, of course, in the situation in which no realizable solution is found by the original objective function, any other desired strategy for Select a new objective function or redefine constraint limits. If desired, theblock 154 The original objective function included includes margin variable penalties that may be used to propel the process variables to a limit, setpoint or ideal quiescent value during the first pass (or any subsequent pass) of the optimizer. In addition, the in theblock 154 The original objective function used in the first place would include margin variable constraint handling, and this could be used on the first pass of the optimizer. In subsequent runs, if necessary, then the bounds redefinition can be used either alone or in conjunction with penalty variables assigned to penalties. Likewise, it is possible to use margin variables or boundary redefinition, or both, to drive process variables against boundaries, against a setpoint, against an ideal quiescent value, etc. during a subsequent pass of the optimizer by one of the methods described above.

Auf jeden Fall verwendet ein Block156, nachdem der Block154 eine realisierbare oder akzeptable Lösung gefunden hat, mit Hilfe des Zielwert-Umwandlungsblocks55 (2) die Verstärkungsmatrix der Sprungantworten des stabilen Gleichgewichts, um die Zielwerte der Steuer- und Hilfsvariablen CVT und AVT aus den Zielwerten für die Stellvariablen MVT zu bestimmen, und liefert die ausgewählte Teilmenge von N (wobei N gleich oder kleiner als M ist) dieser Werte als Zielwert-Eingänge an die MPC-Steuereinrichtung52. In einem Block158 verwendet die MPC-Steuereinrichtung52 die Steuermatrix oder die daraus abgeleitete Logik, um als eine unbeschränkte MPC-Steuereinrichtung wie oben beschrieben zu arbeiten, um den zukünftigen CV- und AV-Vektor für diese Zielwerte zu bestimmen, und führt eine Vektorsubtraktion mit dem zukünftigen Steuerparameter-Vektor durch, um den zukünftigen Fehlervektor zu produzieren. Der MPC-Algorithmus arbeitet auf eine bekannte Art und Weise, um die stationäre Stellvariable MVSS auf Grundlage des aus den M mal M Sprungantworten entwickelten Prozessmodells zu bestimmen, und liefert diese Werte MVSS an den Eingangsverarbeitungs-/Filterblock58 (2). In einem Block160 bestimmt der MPC-Algorithmus auch die an den Prozess50 auszugebenden MV-Schritte und gibt die ersten dieser Schritte auf eine geeignete Weise an den Prozess50 aus.Definitely uses ablock 156 after theblock 154 has found a viable or acceptable solution using the target value conversion block 55 ( 2 ) the gain matrix of the stable equilibrium step responses to determine the target values of the control and auxiliary variables CVT and AVT from the target values for the manipulated variable MVT , and provides the selected subset of N (where N is equal to or less than M) these values as target value inputs to theMPC controller 52 , In ablock 158 uses theMPC controller 52 the control matrix or logic derived therefrom to operate as an unrestricted MPC controller as described above to determine the future CV and AV vector for those target values, and performs a vector subtraction on the future control parameter vector to determine the to produce future error vector. The MPC algorithm operates in a known manner to determine the steady state variable MVSS based on the process model developed from the M by M step responses, and supplies these values MVSS to the input processing / filtering block 58 ( 2 ). In ablock 160 The MPC algorithm also determines theprocess 50 to be outputted MV steps and the first of these steps in a suitable manner to theprocess 50 out.

Während des Betriebs können eine oder mehrere in beispielsweise einer der Schnittstellen13 ablaufende Überwachungsanwendungen entweder direkt oder über die Protokolliereinrichtung12 Informationen vom hochentwickelten Steuerblock oder anderen mit diesem kommunikativ verbundenen Funktionsblöcken beziehen und dem Benutzer oder Bediener einen oder mehrere Anzeige- oder Diagnosebildschirme zum Anzeigen des Betriebszustands des hochentwickelten Steuerblocks zur Verfügung stellen. Die Funktionsblock-Technologie weist kaskadierte Eingänge (CAS_IN) und kaskadierte Ferneingänge (RCAS_IN) sowie entsprechende Rückberechnungsausgänge (BKCAL_OUT und RCAS-OUT) sowohl an Steuer- als auch an Ausgangs-Funktionsblöcken auf. Mittels dieser Verbindungseinrichtungen ist es möglich, über der vorhandenen Steuerstrategie eine aufsichtführende optimierte MPC-Steuerstrategie anzubringen, und diese beaufsichtigte Steuerstrategie kann mittels eines bzw. einer oder mehrerer Anzeigebildschirme oder Anzeigen angezeigt werden. Desgleichen können auch Zielwerte für die optimierte MPC-Steuereinrichtung aufgrund einer Strategie verändert werden, falls so gewünscht.During operation, one or more may be in, for example, one of theinterfaces 13 ongoing monitoring applications either directly or through thelogger 12 Obtaining information from the advanced control block or other function blocks communicatively associated with it and providing the user or operator with one or more display or diagnostic screens for displaying the operational state of the advanced control block. Function block technology has cascaded inputs (CAS_IN) and cascaded remote inputs (RCAS_IN) and corresponding backscaling outputs (BKCAL_OUT and RCAS-OUT) on both control and output function blocks. By means of these connection facilities, it is possible to apply a supervisory optimized MPC control strategy over the existing control strategy, and this supervised control strategy can be displayed by means of one or more display screens or displays. Similarly, target values for the optimized MPC controller may also be changed based on a strategy, if so desired.

Obwohl der hochentwickelte Funktionsblock in der hierin gegebenen Darstellung einen Optimierer aufweist, welcher sich im selben Funktionsblocks befindet und deshalb in derselben Einrichtung wie die MPC-Steuereinrichtung ausgeführt wird, ist es auch möglich, den Optimierer in einer separaten Einrichtung zu implementieren. Insbesondere der Optimierer kann sich in einer anderen Einrichtung, beispielsweise in einer der Benutzer-Workstations13, befinden und kann mit der MPC-Steuereinrichtung wie im Zusammenhang mit2 beschrieben während jeder Ausführung oder Abfrage der Steuereinrichtung kommunizieren, um die Zielwert-Stellvariablen (MVT) oder die daraus bestimmte Teilmenge der Steuer- und Hilfsvariablen (CV und AV) zu berechnen und an die MPC-Steuereinrichtung zu liefern. Natürlich kann eine besondere Schnittstelle, beispielsweise eine bekannte OPC-Schnittstelle, verwendet werden, um die Kommunikationsschnittstelle zwischen der Steuereinrichtung oder dem die MPC-Steuereinrichtung enthaltenden Funktionsblock und der Workstation oder einem anderen Computer, welche(r) den Optimierer implementiert oder ausführt, zu bilden. Wie in der bezüglich2 beschriebenen Ausführungsform müssen der Optimierer und die MPC-Steuereinrichtung noch während jedes Abfragezyklus miteinander kommunizieren, um eine integrierte, optimierte MPC-Steuerung zu leisten.Although the sophisticated function block in the present disclosure has an optimizer which is located in the same functional block and is therefore executed in the same device as the MPC controller, it is also possible to implement the optimizer in a separate device. In particular, the optimizer may be in another facility, such as one of theuser workstations 13 , and can be connected with the MPC control device as related to 2 described during each execution or query the controller to calculate the target value manipulated variables (MVT ) or the determined subset of the control and auxiliary variables (CV and AV) and to deliver to the MPC controller. Of course, a particular interface, such as a known OPC interface, may be used to form the communication interface between the controller or the functional block containing the MPC controller and the workstation or other computer implementing or executing the optimizer , As in the re 2 described embodiment, the optimizer and the MPC controller still need to communicate with each other during each polling cycle to provide an integrated, optimized MPC control.

Natürlich können andere gewünschte Arten von Optimierern wie bekannte oder standardgemäße Echtzeit-Optimierer, die schon in einer Prozesssteuerungsumgebung vorhanden sein können, die hierin beschriebenen Verfahren zur Handhabung der Nichtrealisierbarkeit verwenden. Dieses Merkmal kann auch vorteilhaft eingesetzt werden, wenn das Optimierungsproblem nichtlinear ist und die Lösung nichtlineare Programmierverfahren erfordert. Überdies kann der Optimierer54, obwohl er in der hierin gegebenen Beschreibung verwendet wird, um Zielwert-Variablen für eine MPC-Routine zu entwickeln, die hierin beschriebenen Verfahren zur Handhabung der Nichtrealisierbarkeit verwenden, um Zielwerte oder andere Variablen zur Verwendung durch andere Arten von Steuereinrichtungen wie PID-Regelungs-Steuereinrichtungen, Fuzzy-Logic-Regelungs-Steuereinrichtungen usw. zu produzieren.Of course, other desired types of optimizers, such as known or standard real-time optimizers that may already be present in a process control environment, may use the non-feasibility handling methods described herein. This feature can also be used to advantage if the optimization problem is non-linear and the solution requires non-linear programming techniques. Moreover, theoptimizer 54 although used in the description herein to develop target variables for an MPC routine, the non-feasibility management methods described herein are used to provide target values or other variables for use by other types of controllers, such as PID controllers. Control devices, fuzzy logic control control devices, etc. to produce.

Obwohl der hochentwickelte Steuerblock und die anderen hierin beschriebenen Blöcke und Routinen in der hierin gegebenen Beschreibung in Verbindung mit Fieldbus- und standardgemäßen 4–20-mA-Einrichtungen verwendet werden, können sie natürlich unter Verwendung irgendeines anderen Prozesssteuerungs-Kommunikationsprotokolls oder irgendeiner anderen Programmierumgebung implementiert und mit beliebigen anderen Arten von Einrichtungen, Funktionsblöcken oder Steuereinrichtungen verwendet werden. Obwohl die hierin beschriebenen hochentwickelten Steuerblöcke und die zugehörigen Erzeugungs- und Testroutinen vorzugsweise als Software implementiert werden, können sie als Hardware, Firmware usw. implementiert werden und können sie durch jeden anderen mit einem Prozesssteuerungssystem verknüpften Prozessor ausgeführt werden. Mithin kann die hierin beschriebene Routine40 in einer standardgemäßen Mehrzweck-CPU oder auf speziell entwickelter Hardware oder Firmware wie zum Beispiel ASICs implementiert werden, falls gewünscht. Bei einer Implementierung als Software kann die Software in jedem beliebigen computerlesbaren Speicher wie einer Magnetplatte, einer Laserplatte, einer optischen Platte oder einem anderen Speichermedium, in einem RAM oder ROM eines Computers oder Prozessors usw. gespeichert werden. Desgleichen kann diese Software durch jedes bekannte oder gewünschte Lieferverfahren einschliesslich beispielsweise auf einer computerlesbaren Platte oder einem anderen transportablen Computer-Speicherungsmechanismus oder in modulierter Form über einen Kommunikationskanal wie eine Telefonleitung, das Internet usw. (was als das gleiche angesehen wird wie oder als austauschbar angesehen wird gegen das Liefern solcher Software über ein transportables Speichermedium) an einen Benutzer oder an ein Prozesssteuerungssystem geliefert werden.Although the sophisticated control block and the other blocks and routines described herein are used in conjunction with Fieldbus and standard 4-20mA devices in the description herein, they may of course be implemented using any other process control communication protocol or programming environment be used with any other types of devices, function blocks or controllers. Although the sophisticated control blocks and associated generation and testing routines described herein are preferably implemented as software, they may be implemented as hardware, firmware, etc., and may be executed by any other processor associated with a process control system. Thus, the routine described herein 40 can be implemented in a standard multi-purpose CPU or on specially designed hardware or firmware such as ASICs, if desired. When implemented as software, the software may be stored in any computer-readable memory such as a magnetic disk, a laser disk, an optical disk or other storage medium, in a RAM or ROM of a computer or processor, and so on. Likewise, this software may be by any known or desired delivery method including, for example, on a computer readable disk or other portable computer storage mechanism or in modulated form over a communications channel such as a telephone line, the Internet, etc. (which is considered the same as or as interchangeable will be delivered against delivery of such software via a portable storage medium) to a user or to a process control system.

Claims (51)

Translated fromGerman
Verfahren zum Steuern eines Prozesses, enthaltend: das Ausführen eines Optimierers (54), der eine Zielfunktion (64) verwendet, um eine einen Satz von Zielwerten definierende Lösung zu entwickeln; das Bestimmen, ob die Lösung hinsichtlich eines Satzes von Prozessvariablen-Beschränkungen realisierbar ist; falls die Lösung nicht realisierbar ist; (1) das Neudefinieren der Prozessvariablen-Beschränkungen für mindestens eine Prozessvariable, um eine neue obere und untere Prozessvariablen-Beschränkungsgrenze für die eine Prozessvariable zu definieren; (2) das Entwickeln einer neuen Zielfunktion (64) durch Addieren einer Strafvariablen zur Zielfunktion (64) für die eine Prozessvariable, wobei die Strafvariable auf dem Betrag beruht, um welchen die eine Prozessvariable von einer der neuen Prozessvariablen-Beschränkungsgrenzen für die eine Prozessvariable abweicht; und (3) das erneute Ausführen des Optimierers (54) mit der neuen Zielfunktion (64), um eine neue Lösung zu entwickeln, welche einen neuen Satz von Zielwerten mit den neuen Prozessvariablen-Beschränkungsgrenzen für die eine Prozessvariable definiert; das Liefern der Zielwerte oder der neuen Zielwerte an eine Steuereinrichtung (52); und das Ausführen der Steuereinrichtung (52) unter Verwendung der Zielwerte oder der neuen Zielwerte, um einen Satz von Steuersignalen zum Steuern des Prozesses zu entwickeln.A method for controlling a process, comprising: executing an optimizer ( 54 ), which has an objective function ( 64 ) used to develop a solution defining a set of targets; determining if the solution is feasible in terms of a set of process variable constraints; if the solution is not feasible; (1) redefining the process variable constraints for at least one process variable to define a new upper and lower process variable constraint limit for the one process variable; (2) developing a new objective function ( 64 ) by adding a penalty variable to the objective function ( 64 ) for the one process variable, the penalty variable being based on the amount by which the one process variable deviates from one of the new process variable constraint limits for the one process variable; and (3) re-running the optimizer ( 54 ) with the new objective function ( 64 ) to develop a new solution that defines a new set of targets with the new process variable constraint limits for the one process variable; supplying the target values or the new target values to a control device ( 52 ); and the execution of the control device ( 52 ) using the target values or the new target values to develop a set of control signals to control the process.Verfahren nach Anspruch 1, ferner enthaltend das Schaffen eines Satzes von Spielraumvariablen in der Zielfunktion (64), um eine auf dem Betrag, um welchen die mindestens eine der Prozessvariablen eine zugehörige Beschränkung übertritt, beruhende Strafe für mindestens eine der Prozessvariablen zu definieren.The method of claim 1, further comprising creating a set of margin variables in the target function ( 64 ) to define a penalty for at least one of the process variables based on the amount by which the at least one of the process variables overrides an associated constraint.Verfahren nach Anspruch 2, enthaltend das Einstellen einer mit dem Satz von Spielraumvariablen verknüpften Einheitsstrafe, welche grösser ist als die Einheitskosten-Variablen in der Zielfunktion (64), welche einen oder mehrere wirtschaftliche Kostenwerte definieren.The method of claim 2 including setting a unit penalty associated with the set of margin variables which is greater than the unit cost variable in the objective function ( 64 ), which define one or more economic cost values.Verfahren nach Anspruch 1, ferner enthaltend das Schaffen eines Satzes von Spielraumvariablen in der Zielfunktion (64), um eine auf dem Betrag, um welchen die mindestens eine der Prozessvariablen von einem idealen Ruhewert abweicht, beruhende Strafe für mindestens eine der Prozessvariablen zu definieren.The method of claim 1, further comprising creating a set of margin variables in the target function ( 64 ) to define a penalty for at least one of the process variables based on the amount by which the at least one of the process variables deviates from an ideal quiescent value.Verfahren nach Anspruch 4, enthaltend das Einstellen einer mit dem Satz von Spielraumvariablen verknüpften Einheitsstrafe, welche grösser ist als die Einheitskosten-Variablen in der Zielfunktion (64), welche einen oder mehrere wirtschaftliche Kostenwerte definieren.The method of claim 4, including setting a unit penalty associated with the set of margin variables greater than the unit cost variable in the objective function ( 64 ), which define one or more economic cost values.Verfahren nach Anspruch 1, ferner enthaltend das Schaffen eines Satzes von Spielraumvariablen in der Zielfunktion (64), um eine auf dem Betrag, um welchen die mindestens eine der Prozessvariablen von einem Sollwert abweicht, beruhende Strafe für mindestens eine der Prozessvariablen zu definieren. The method of claim 1, further comprising creating a set of margin variables in the target function ( 64 ) to define a penalty based on the amount by which the at least one of the process variables deviates from a setpoint for at least one of the process variables.Verfahren nach Anspruch 6, enthaltend das Einstellen einer mit dem Satz von Spielraumvariablen verknüpften Einheitsstrafe, welche grösser ist als die Einheitskosten-Variablen in der Zielfunktion (64), welche einen oder mehrere wirtschaftliche Kostenwerte definieren.The method of claim 6 including setting a unit penalty associated with the set of margin variables which is greater than the unit cost variable in the objective function ( 64 ), which define one or more economic cost values.Verfahren nach Anspruch 1, enthaltend das Schaffen einer Einheitsstrafe für die Strafvariable, welche grösser ist als eine oder mehrere Einheitskosten-Variablen in der Zielfunktion (64), welche einen oder mehrere wirtschaftliche Kostenwerte definieren.The method of claim 1, including providing a penalty for the penalty variable that is greater than one or more unit cost variables in the objective function ( 64 ), which define one or more economic cost values.Verfahren nach Anspruch 1, enthaltend das Schaffen einer Einheitsstrafe für die Strafvariable, welche grösser ist als alle Einheitskosten-Variablen in der Zielfunktion (64), welche wirtschaftliche Kostenwerte definieren.The method of claim 1, including providing a penalty for the penalty variable that is greater than all unit cost variables in the objective function ( 64 ), which define economic cost values.Verfahren nach Anspruch 1, in welchem das Ausführen der Steuereinrichtung (52) das Ausführen einer Mehreingangs-/Mehrausgangs-Steuereinrichtung (52) einschliesst.Method according to Claim 1, in which the execution of the control device ( 52 ) the execution of a multi-input / multi-output control device ( 52 ) includes.Verfahren nach Anspruch 10, in welchem das Ausführen der Mehreingangs-/Mehrausgangs-Steuereinrichtung (52) das Ausführen einer Steuereinrichtung des Typs Modellvorhersage-Steuerung einschliesst.Method according to claim 10, in which the execution of the multi-input / multi-output control device ( 52 ) includes executing a model predictive control type controller.System zur Verwendung beim Steuern eines Prozesses, welches dafür ausgelegt ist, mit einem Prozessor implementiert zu werden, enthaltend: ein computerlesbares Medium; eine auf dem computerlesbaren Medium gespeicherte Optimiererroutine, welche geeignet ist, auf dem Prozessor ausgeführt zu werden, um eine Zielfunktion (64) zur Entwicklung einer Lösung zu verwenden, welche einen Satz von Zielwerten definiert; eine auf dem computerlesbaren Medium gespeicherte Routine zur Handhabung der Realisierbarkeit, welche geeignet ist, auf dem Prozessor ausgeführt zu werden, um zu bestimmen, ob die Lösung bezüglich eines Satzes von Prozessvariablen-Beschränkungen realisierbar ist, und falls die Lösung nicht realisierbar ist; das Neudefinieren der Prozessvariablen-Beschränkungen für mindestens eine Prozessvariable, um eine neue obere und untere Prozessvariablen-Beschränkungsgrenze für die eine Prozessvariable zu definieren; das Entwickeln einer neuen Zielfunktion (64) durch Hinzuaddieren einer Strafvariable für die eine Prozessvariable zur Zielfunktion (64), wobei die Strafvariable die Zielfunktion (64) mit einer auf dem Betrag, um welchen die eine Prozessvariable von einer der neuen Prozessvariablen-Beschränkungsgrenzen für die eine Prozessvariable abweicht, beruhenden Strafe belegt; und das erneute Ausführen der Optimiererroutine (48) mit der neuen Zielfunktion (64), um eine neue Lösung zu entwickeln, welche einen neuen Satz von Zielwerten mit den neuen Prozessvariablen-Beschränkungsgrenzen für die eine Prozessvariable definiert; und eine auf dem computerlesbaren Medium gespeicherte Steuereinrichtungsroutine, welche geeignet ist, auf dem Prozessor ausgeführt zu werden, um die Zielwerte oder die neuen Zielwerte zu verwenden, um einen Satz von Steuersignalen zum Steuern des Prozesses zu entwickeln.A system for use in controlling a process designed to be implemented with a processor, comprising: a computer-readable medium; an optimizer routine stored on the computer-readable medium and adapted to be executed on the processor to perform an objective function ( 64 ) to develop a solution that defines a set of targets; a feasibility-handling routine stored on the computer readable medium adapted to be executed on the processor to determine if the solution is feasible with respect to a set of process variable constraints and if the solution is unrealizable; redefining the process variable constraints for at least one process variable to define a new upper and lower process variable constraint limit for the one process variable; developing a new objective function ( 64 ) by adding a penalty variable for the one process variable to the objective function ( 64 ), the penalty variable being the objective function ( 64 ) is assigned a penalty based on the amount by which the process variable deviates from one of the new process variable constraint limits for the one process variable; and re-running the optimizer routine ( 48 ) with the new objective function ( 64 ) to develop a new solution that defines a new set of targets with the new process variable constraint limits for the one process variable; and a controller routine stored on the computer readable medium and adapted to be executed on the processor to use the target values or the new target values to develop a set of control signals for controlling the process.System nach Anspruch 12, in welchem die Zielfunktion (64) einen Satz von Spielraumvariablen einschliesst, welche eine auf dem Betrag, um welchen die mindestens eine der Prozessvariablen eine zugehörige Beschränkung übertritt, beruhende Strafe für mindestens eine der Prozessvariablen definieren.System according to claim 12, in which the objective function ( 64 ) includes a set of margin variables defining a penalty based on the amount by which the at least one of the process variables overrides an associated constraint for at least one of the process variables.System nach Anspruch 13, in welchem die Zielfunktion (64) eine mit dem Satz von Spielraumvariablen verknüpfte Einheitsstrafe einschliesst, welche grösser ist als Einheitskosten-Variablen in der Zielfunktion (64), welche einen oder mehrere wirtschaftliche Kostenwerte definieren.System according to claim 13, in which the objective function ( 64 ) includes a unit penalty associated with the set of margin variables, which is greater than unit cost variables in the objective function ( 64 ), which define one or more economic cost values.System nach Anspruch 12, in welchem die Zielfunktion (64) einen Satz von Spielraumvariablen einschliesst, welche eine auf dem Betrag, um welchen die mindestens eine der Prozessvariablen von einem idealen Ruhewert abweicht, beruhende Strafe für mindestens eine der Prozessvariablen definieren.System according to claim 12, in which the objective function ( 64 ) includes a set of margin variables defining a penalty based on the amount by which the at least one of the process variables deviates from an ideal quiescent value for at least one of the process variables.System nach Anspruch 15, in welchem die Zielfunktion (64) eine mit dem Satz von Spielraumvariablen verknüpfte Einheitsstrafe einschliesst, welche grösser ist als Einheitskosten-Variablen in der Zielfunktion (64), welche einen oder mehrere wirtschaftliche Kostenwerte definieren.System according to claim 15, in which the objective function ( 64 ) includes a unit penalty associated with the set of margin variables, which is greater than unit cost variables in the objective function ( 64 ), which define one or more economic cost values.System nach Anspruch 12, in welchem die Zielfunktion (64) einen Satz von Spielraumvariablen einschliesst, welche eine auf dem Betrag, um welchen die mindestens eine der Prozessvariablen von einem Sollwert abweicht, beruhende Strafe für mindestens eine der Prozessvariablen definieren. System according to claim 12, in which the objective function ( 64 ) includes a set of margin variables defining a penalty based on the amount by which the at least one of the process variables deviates from a target value for at least one of the process variables.System nach Anspruch 17, in welchem die Zielfunktion (64) eine mit dem Satz von Spielraumvariablen verknüpfte Einheitsstrafe einschliesst, welche grösser ist als Einheitskosten-Variablen in der Zielfunktion (64), welche einen oder mehrere wirtschaftliche Kostenwerte definieren.System according to claim 17, in which the objective function ( 64 ) includes a unit penalty associated with the set of margin variables, which is greater than unit cost variables in the objective function ( 64 ), which define one or more economic cost values.System nach Anspruch 12, in welchem die Zielfunktion (64) eine Einheitsstrafe für die Strafvariable einschliesst, welche grösser ist als eine oder mehrere Einheitskosten-Variablen in der Zielfunktion (64), welche einen oder mehrere wirtschaftliche Kostenwerte definieren.System according to claim 12, in which the objective function ( 64 ) includes a unit penalty for the penalty variable which is greater than one or more unit cost variables in the objective function ( 64 ), which define one or more economic cost values.System nach Anspruch 12, in welchem die Zielfunktion (64) eine Einheitsstrafe für die Strafvariable einschliesst, welche grösser ist als alle Einheitskosten-Variablen in der Zielfunktion (64), welche wirtschaftliche Kostenwerte definieren.System according to claim 12, in which the objective function ( 64 ) includes a unit penalty for the penalty variable which is greater than all unit cost variables in the objective function ( 64 ), which define economic cost values.System nach Anspruch 12, in welchem die Steuereinrichtungsroutine eine Mehreingangs-/Mehrausgangs-Steuereinrichtungs-Routine einschliesst.The system of claim 12, wherein the controller routine includes a multi-input / multi-output controller routine.System nach Anspruch 21, in welchem die Mehreingangs-/Mehrausgangs-Steuereinrichtungs-Routine eine Steuereinrichtungsroutine des Typs Modellvorhersage-Steuerung einschliesst.The system of claim 21, wherein the multi-input / multi-output controller routine includes a model prediction control type controller routine.Verfahren zum Steuern eines Prozesses, enthaltend: das Definieren mindestens einer mit jeder einzelnen aus einem Satz von Prozessvariablen verknüpften Beschränkung; das Definieren einer Zielfunktion (64), so dass diese einen oder mehrere mit den Prozessvariablen verknüpfte wirtschaftliche Einheitskostenwerte und eine mit einer der Prozessvariablen, welche die Beschränkung für die eine der Prozessvariablen übertritt, verknüpfte Strafvariable einschliesst, wobei die Strafvariable eine Einheitsstrafe aufweist, welche grösser ist als jeder der wirtschaftlichen Einheitskostenwerte; und das Verwenden der Zielfunktion (64), um einen Satz von Prozesssteuersignalen zur Verwendung beim Steuern des Prozesses zu entwickeln.A method for controlling a process, comprising: defining at least one constraint associated with each one of a set of process variables; Defining an objective function ( 64 ) to include one or more economic unit cost values associated with the process variables and a penalty variable associated with one of the process variables that overrides the restriction for the one of the process variables, the penalty variable having a unit penalty greater than each of the economic unit cost values ; and using the objective function ( 64 ) to develop a set of process control signals for use in controlling the process.Verfahren nach Anspruch 23, in welchem das Definieren der mindestens einen Beschränkung das Definieren eines mit der einen der Prozessvariablen verknüpften Satzes von Bereichsgrenzen einschliesst.The method of claim 23, wherein defining the at least one constraint includes defining a set of range bounds associated with the one of the process variables.Verfahren nach Anspruch 23, in welchem das Definieren der mindestens einen Beschränkung das Definieren eines mit der einen der Prozessvariablen verknüpften Sollwerts einschliesst.The method of claim 23, wherein defining the at least one constraint includes defining a setpoint associated with the one of the process variables.Verfahren nach Anspruch 23, in welchem das Definieren der mindestens einen Beschränkung das Definieren eines mit der einen der Prozessvariablen verknüpften idealen Ruhewerts einschliesst.The method of claim 23, wherein defining the at least one constraint includes defining an ideal rest value associated with the one of the process variables.Verfahren nach Anspruch 23, in welchem das Definieren der mindestens einen Beschränkung das Definieren eines mit der einen der Prozessvariablen verknüpften ersten Satzes von Bereichsgrenzen und eines mit der einen der Prozessvariablen verknüpften zweiten Satzes von Bereichsgrenzen einschliesst und in welchem das Definieren einer Zielfunktion (64) das Definieren einer mit dem Übertreten des ersten Satzes von Bereichsgrenzen verknüpften ersten Strafvariablen und einer mit dem Übertreten des zweiten Satzes von Bereichsgrenzen verknüpften zweiten Strafvariablen einschliesst, wobei eine mit der ersten Strafvariablen verknüpfte erste Einheitsstrafe kleiner als eine mit der zweiten Strafvariablen verknüpfte zweite Einheitsstrafe ist.The method of claim 23, wherein defining the at least one constraint includes defining a first set of range bounds associated with the one of the process variables and a second set of range bounds associated with the one of the process variables, and defining a target function. 64 ) defining defining a first penalty variable associated with violating the first set of range limits and a second penalty variable associated with violating the second set of range limits, wherein a first unit penalty associated with the first penalty variable is less than a second unit penalty associated with the second penalty variable ,Verfahren nach Anspruch 23, in welchem das Definieren der mindestens einen Beschränkung das Definieren eines mit der einen der Prozessvariablen verknüpften ersten Werts und eines mit der einen der Prozessvariablen verknüpften Satzes von Bereichsgrenzen einschliesst und in welchem das Definieren einer Zielfunktion (64) das Definieren einer mit der einen der Prozessvariablen, welche vom ersten Wert abweicht, verknüpften ersten Strafvariablen und einer mit der einen der Prozessvariablen, welche den Satz von Bereichsgrenzen übertritt, verknüpften zweiten Strafvariablen einschliesst, wobei eine mit der ersten Strafvariablen verknüpfte erste Einheitsstrafe kleiner als eine mit der zweiten Strafvariablen verknüpfte zweite Einheitsstrafe ist.The method of claim 23, wherein defining the at least one constraint includes defining a first value associated with the one of the process variables and a set of range limits associated with the one of the process variables, and defining a target function. 64 ) defining a first penalty variable associated with the one of the process variables other than the first value, and a second penalty variable associated with the one of the process variables that exceeds the set of range limits, wherein a first unit penalty associated with the first penalty variable is less than is a second unit penalty associated with the second penalty variable.Verfahren nach Anspruch 28, in welchem der erste Wert ein Sollwert ist.The method of claim 28, wherein the first value is a setpoint.Verfahren nach Anspruch 28, in welchem der erste Wert ein idealer Ruhewert ist.The method of claim 28, wherein the first value is an ideal quiescent value.Verfahren nach Anspruch 23, enthaltend das Verwenden der Zielfunktion (64), um einen optimalen Satz von Steuersignalen über einen Zeithorizont zu entwickeln, während dessen eine der Prozessvariablen die Beschränkung für diese Prozessvariable voraussichtlich übertreten wird. A method according to claim 23, comprising using the target function ( 64 ) to develop an optimal set of control signals over a time horizon during which one of the process variables is likely to exceed the constraint for that process variable.Verfahren nach Anspruch 23, enthaltend das Ermitteln, wann die eine der Prozessvariablen die mit der einen der Prozessvariablen verknüpfte Beschränkung voraussichtlich übertreten wird, und das Neudefinieren der Beschränkung für die eine der Prozessvariablen, das Neudefinieren der Zielfunktion (64) und das Verwenden der neu definierten Zielfunktion (64), um den Satz von Prozesssteuersignalen zu bestimmen, wenn die eine der Prozessvariablen die mit der einen der Prozessvariablen verknüpfte Beschränkung voraussichtlich übertreten wird.The method of claim 23, including determining when the one of the process variables is likely to transgress the constraint associated with the one of the process variables, and redefining the constraint for the one of the process variables, redefining the objective function ( 64 ) and using the newly defined objective function ( 64 ) to determine the set of process control signals when the one of the process variables is likely to transgress the constraint associated with the one of the process variables.Verfahren nach Anspruch 32, in welchem das Neudefinieren der Zielfunktion (64) das Hinzuaddieren einer weiteren Strafvariablen zur Zielfunktion (64) für die eine der Prozessvariablen einschliesst, wobei die weitere Strafvariable die Zielfunktion (64) mit einer auf dem Betrag, um welchen die eine der Prozessvariablen von der neu definierten Beschränkung für die eine der Prozessvariablen abweicht, beruhenden Strafe belegt.Method according to Claim 32, in which the redefinition of the objective function ( 64 ) the addition of another penalty variable to the objective function ( 64 ) for which one of the process variables includes, the further penalty variable being the objective function ( 64 ) with a penalty based on the amount by which the one of the process variables deviates from the newly defined constraint for the one of the process variables.Verfahren nach Anspruch 33, in welchem das Hinzuaddieren der weiteren Strafvariablen das Einstellen einer mit der weiteren Strafvariablen verknüpften weiteren Einheitsstrafe, welche grösser ist als die wirtschaftlichen Einheitskostenwerte in der Zielfunktion (64), welche einen oder mehrere wirtschaftliche Kostenwerte definieren, einschliesst.The method of claim 33, wherein adding the further penalty variables sets a further unit penalty associated with the further penalty variable which is greater than the economic unit cost values in the objective function ( 64 ), which define one or more economic cost values.Verfahren nach Anspruch 33, in welchem das Hinzuaddieren der weiteren Strafvariablen das Einstellen einer mit der weiteren Strafe verknüpften weiteren Einheitsstrafe einschliesst, welche grösser ist als die mit der Strafvariablen verknüpfte Einheitsstrafe in der Zielfunktion (64).The method of claim 33, wherein adding the further penalty variables includes setting a further unit penalty associated with the further penalty which is greater than the unit penalty associated with the penalty variable in the objective function ( 64 ).System zur Steuerung eines Prozesses zur Verwendung mit einem Prozessor, enthaltend: ein computerlesbares Medium; eine erste auf dem computerlesbaren Medium gespeicherte Routine, welche geeignet ist, auf dem Prozessor ausgeführt zu werden, um mindestens eine mit jeder einzelnen aus einem Satz von Prozessvariablen verknüpfte Beschränkung zu speichern; eine zweite auf dem computerlesbaren Medium gespeicherte Routine, welche geeignet ist, auf dem Prozessor ausgeführt zu werden, um eine Zielfunktion (64) zu speichern, welche eine oder mehrere mit den Prozessvariablen verknüpfte wirtschaftliche Einheitskostenwerte und eine mit mindestens einer der Prozessvariablen, welche die Beschränkung für die eine der Prozessvariablen übertreten, verknüpfte Strafvariable definiert, wobei die Strafvariable eine Einheitsstrafe aufweist, welche grösser ist als die wirtschaftlichen Einheitskostenwerte; und eine dritte auf dem computerlesbaren Medium gespeicherte Routine, welche geeignet ist, auf dem Prozessor ausgeführt zu werden, um die Zielfunktion (64) zu verwenden, um einen Satz von Prozesssteuersignalen zur Verwendung beim Steuern des Prozesses zu entwickeln.A system for controlling a process for use with a processor, comprising: a computer-readable medium; a first routine stored on the computer readable medium adapted to be executed on the processor to store at least one constraint associated with each one of a set of process variables; a second routine stored on the computer readable medium adapted to be executed on the processor to perform a target function ( 64 ) defining one or more economic unit cost values associated with the process variables and a penalty variable associated with at least one of the process variables that violates the constraint for the one of the process variables, the penalty variable having a unit penalty greater than the economic unit cost values ; and a third routine stored on the computer readable medium adapted to be executed on the processor to perform the objective function ( 64 ) to develop a set of process control signals for use in controlling the process.System nach Anspruch 36, in welchem die mindestens eine Beschränkung für die eine der Prozessvariablen einen mit einer der Prozessvariablen verknüpften Satz von Bereichsgrenzen einschliesst.The system of claim 36, wherein the at least one constraint for the one of the process variables includes a set of range limits associated with one of the process variables.System nach Anspruch 36, in welchem die mindestens eine Beschränkung für die eine der Prozessvariablen einen mit einer der Prozessvariablen verknüpften Sollwert einschliesst.The system of claim 36, wherein the at least one constraint for the one of the process variables includes a setpoint associated with one of the process variables.System nach Anspruch 36, in welchem die mindestens eine Beschränkung für die eine der Prozessvariablen einen mit einer der Prozessvariablen verknüpften idealen Ruhewert einschliesst.The system of claim 36, wherein the at least one constraint for the one of the process variables includes an ideal quiescent value associated with one of the process variables.System nach Anspruch 36, in welchem die mindestens eine Beschränkung für die eine der Prozessvariablen einen mit einer der Prozessvariablen verknüpften ersten Satz von Bereichsgrenzen und einen mit der einen der Prozessvariablen verknüpften zweiten Satz von Bereichsgrenzen einschliesst und in welchem die Zielfunktion (64) eine mit dem ersten Satz von Bereichsgrenzen verknüpfte erste Strafvariable und eine mit dem zweiten Satz von Bereichsgrenzen verknüpfte zweite Strafvariable einschliesst, wobei eine mit der ersten Strafvariable verknüpfte erste Einheitsstrafe kleiner als eine mit der zweiten Strafvariable verknüpfte zweite Einheitsstrafe ist.The system of claim 36, wherein the at least one constraint for the one of the process variables includes a first set of range bounds associated with one of the process variables and a second set of range bounds associated with the one of the process variables, and wherein the objective function ( 64 ) includes a first penalty variable associated with the first set of range limits and a second penalty variable associated with the second set of range limits, wherein a first unit penalty associated with the first penalty variable is less than a second unit penalty associated with the second penalty variable.System nach Anspruch 36, in welchem die mindestens eine Beschränkung für die eine der Prozessvariablen einen mit der einen der Prozessvariablen verknüpften ersten Wert und einen mit der einen der Prozessvariablen verknüpften Satz von Bereichsgrenzen einschliesst und in welchem die Zielfunktion (64) eine mit der vom ersten Wert abweichenden einen der Prozessvariablen verknüpfte erste Strafvariable und eine mit der den Satz von Bereichsgrenzen übertretenden einen der Prozessvariablen verknüpfte zweite Strafvariable einschliesst, wobei eine mit der ersten Strafvariablen verknüpfte erste Einheitsstrafe kleiner als eine mit der zweiten Strafvariablen verknüpfte zweite Einheitsstrafe ist.The system of claim 36, wherein the at least one constraint for the one of the process variables includes a first value associated with the one of the process variables and a set of range limits associated with the one of the process variables, and in which the objective function ( 64 ) one with the first penalty variable associated with the one of the process variables different from the first value and a second penalty variable associated with the set of range limits, wherein a first unit penalty associated with the first penalty variable is less than a second unit penalty associated with the second penalty variable.System nach Anspruch 41, in welchem der erste Wert ein Sollwert ist.The system of claim 41, wherein the first value is a setpoint.System nach Anspruch 41, in welchem der erste Wert ein idealer Ruhewert ist.The system of claim 41, wherein the first value is an ideal quiescent value.System nach Anspruch 36, in welchem die dritte Routine geeignet ist, die Zielfunktion (64) zu vewenden, um einen optimalen Satz von Prozesssteuersignalen über einen Zeithorizont zu entwickeln, in welchem die eine der Prozessvariablen die Beschränkung für die eine der Prozessvariablen voraussichtlich übertreten wird.The system of claim 36, wherein the third routine is adapted to perform the objective function ( 64 ) to develop an optimal set of process control signals over a time horizon in which the one of the process variables is likely to exceed the constraint for the one of the process variables.System nach Anspruch 36, enthaltend eine vierte auf dem computerlesbaren Medium gespeicherte Routine, welche geeignet ist, auf dem Prozessor ausgeführt zu werden, um zu ermitteln, wann eine der Prozessvariablen die mit der einen der Prozessvariablen verknüpfte Beschränkung voraussichtlich übertreten wird, und um die Beschränkung für die eine der Prozessvariablen neu zu definieren, um die Zielfunktion (64) neu zu definieren und um die dritte Routine zu veranlassen, die neu definierte Zielfunktion (64) zu verwenden, um den Satz von Prozesssteuersignalen zu bestimmen, wenn die eine der Prozessvariablen die mit der einen der Prozessvariablen verknüpfte Beschränkung voraussichtlich übertreten wird.The system of claim 36 including a fourth routine stored on the computer-readable medium adapted to be executed on the processor to determine when one of the process variables is likely to violate the constraint associated with the one of the process variables and the constraint for the one of the process variables to redefine the objective function ( 64 ) and to initiate the third routine, the newly defined objective function ( 64 ) to determine the set of process control signals when the one of the process variables is likely to transgress the constraint associated with the one of the process variables.System nach Anspruch 45, in welchem die vierte Routine geeignet ist, die Zielfunktion (64) durch Hinzuaddieren einer weiteren Strafvariable zur Zielfunktion (64) für die eine der Prozessvariablen neu zu definieren, wobei die weitere Strafvariable die Zielfunktion (64) mit einer auf dem Betrag, um welchen die eine der Prozessvariablen von der neu definierten Beschränkung für die eine der Prozessvariablen abweicht, beruhenden Strafe belegt.The system of claim 45, wherein the fourth routine is adapted to perform the objective function ( 64 ) by adding another penalty variable to the objective function ( 64 ) for the one of the process variables, the further penalty variable being the objective function ( 64 ) with a penalty based on the amount by which the one of the process variables deviates from the newly defined constraint for the one of the process variables.System nach Anspruch 46, in welchem die vierte Routine geeignet ist, eine mit der weiteren Strafvariablen verknüpfte weitere Einheitsstrafe einzustellen, welche grösser ist als die wirtschaftlichen Einheitskostenwerte in der Zielfunktion (64).The system of claim 46, wherein the fourth routine is adapted to set a further unit penalty associated with the further penalty variable which is greater than the economic unit cost values in the objective function ( 64 ).System nach Anspruch 46, in welchem die vierte Routine geeignet ist, eine mit der weiteren Strafe verknüpfte weitere Einheitsstrafe einzustellen, welche grösser ist als die mit der Strafvariablen verknüpfte Einheitsstrafe in der Zielfunktion (64).The system of claim 46, wherein the fourth routine is adapted to set a further unit penalty associated with the further penalty which is greater than the unit penalty associated with the penalty variable in the objective function ( 64 ).System nach Anspruch 36, in welchem die dritte Routine eine Optimierer-Routine (48) ist, welche geeignet ist, einen Satz von Zielwerten für eine Steuereinrichtung zu entwickeln.The system of claim 36, wherein the third routine comprises an optimizer routine ( 48 ), which is adapted to develop a set of target values for a controller.System nach Anspruch 36, in welchem die dritte Routine eine Steuereinrichtungsroutine ist.The system of claim 36, wherein the third routine is a controller routine.System nach Anspruch 36, in welchem die dritte Routine eine Steuereinrichtungsroutine des Typs Modellvorhersage-Steuerung ist.The system of claim 36, wherein the third routine is a model predictive control type of controller routine.
DE10341762.1A2002-09-112003-09-10 Managing the realizability of constraints and limitations in an optimizer for process control systemsExpired - LifetimeDE10341762B4 (en)

Applications Claiming Priority (4)

Application NumberPriority DateFiling DateTitle
US10/241,350US7376472B2 (en)2002-09-112002-09-11Integrated model predictive control and optimization within a process control system
US10/2413502002-09-11
US10/4651532003-06-19
US10/465,153US7337022B2 (en)2002-09-112003-06-19Constraint and limit feasibility handling in a process control system optimizer

Publications (2)

Publication NumberPublication Date
DE10341762A1 DE10341762A1 (en)2004-04-15
DE10341762B4true DE10341762B4 (en)2014-05-15

Family

ID=31980987

Family Applications (1)

Application NumberTitlePriority DateFiling Date
DE10341762.1AExpired - LifetimeDE10341762B4 (en)2002-09-112003-09-10 Managing the realizability of constraints and limitations in an optimizer for process control systems

Country Status (4)

CountryLink
JP (1)JP4079369B2 (en)
CN (1)CN1300651C (en)
DE (1)DE10341762B4 (en)
GB (2)GB2394564B (en)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US7376472B2 (en)*2002-09-112008-05-20Fisher-Rosemount Systems, Inc.Integrated model predictive control and optimization within a process control system
US7444191B2 (en)2005-10-042008-10-28Fisher-Rosemount Systems, Inc.Process model identification in a process control system
US7738975B2 (en)*2005-10-042010-06-15Fisher-Rosemount Systems, Inc.Analytical server integrated in a process control network
CN104834294A (en)*2005-12-052015-08-12费舍-柔斯芒特系统股份有限公司Muti-objective predictive process optimization with concurrent process simulation
CN100461037C (en)*2007-05-112009-02-11浙江大学 A system and method for dynamic optimization of industrial process based on IDP
DE102008028777A1 (en)*2008-06-172009-12-24Siemens Aktiengesellschaft Control system of a plant with multi-level model optimization
WO2011080547A1 (en)*2009-12-312011-07-07Abb Research LtdProcess optimization method and system for a power plant
EP2560062A1 (en)*2011-08-162013-02-20ABB Research Ltd.Methods and control systems for controlling an industrial system
JP5858080B2 (en)*2013-08-232016-02-10横河電機株式会社 Operation planning method and operation planning system
JP6653153B2 (en)*2015-10-012020-02-26株式会社日立製作所 Power demand adjustment plan management device
DE102016108053A1 (en)*2016-04-292017-11-02Khs Gmbh Method for optimizing the filling of a container
DE102017206299A1 (en)*2017-04-122018-10-18Siemens Schweiz Ag Method for controlling an operating device of a building and building automation system
JP6901448B2 (en)*2018-09-142021-07-14株式会社東芝 Arithmetic logic unit, calculation program, recording medium and calculation method
US11934159B2 (en)*2018-10-302024-03-19Aspentech CorporationApparatus and methods for non-invasive closed loop step testing with controllable optimization relaxation
EP3966641A1 (en)2019-05-092022-03-16Aspen Technology, Inc.Combining machine learning with domain knowledge and first principles for modeling in the process industries
US11782401B2 (en)2019-08-022023-10-10Aspentech CorporationApparatus and methods to build deep learning controller using non-invasive closed loop exploration
WO2021076760A1 (en)2019-10-182021-04-22Aspen Technology, Inc.System and methods for automated model development from plant historical data for advanced process control
US11467545B2 (en)*2020-02-282022-10-11Fisher-Rosemount Systems, Inc.Dual-mode model-based control of a process
EP3910428A1 (en)*2020-05-152021-11-17L'air Liquide, Société Anonyme Pour L'Étude Et L'exploitation Des Procédés Georges ClaudeMethod to control a gasifier by means of a multivariate model predictive controller
US11630446B2 (en)2021-02-162023-04-18Aspentech CorporationReluctant first principles models
DE102022201207A1 (en)*2022-02-042023-08-10Glatt Ingenieurtechnik Gesellschaft mit beschränkter Haftung Method for controlling a particle-forming fluidization process running in a fluidization apparatus

Citations (2)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
WO1995028666A1 (en)*1994-04-131995-10-26The M.W. Kellogg CompanyMaximizing process production rates using permanent constraints
US6032106A (en)*1993-12-142000-02-29Ishii; MasaharuApparatus and method for selecting parameters corresponding to physical characteristics

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US3828171A (en)*1972-08-141974-08-06Phillips Petroleum CoProcess apparatus control system for optimizing objective variable quality
US5315521A (en)*1992-07-291994-05-24Praxair Technology, Inc.Chemical process optimization method
DE59409683D1 (en)*1993-07-052001-04-19Siemens Ag METHOD FOR DETERMINING OPTIMAL VALUES FOR CONTROL VALUES OF A TECHNICAL SYSTEM
US5630070A (en)*1993-08-161997-05-13International Business Machines CorporationOptimization of manufacturing resource planning
JP2001273278A (en)*1993-12-142001-10-05Masaharu IshiiDevice and method for optimization
CN1187888A (en)*1995-06-141998-07-15霍尼韦尔公司 Process controller optimization method in multivariable predictive controller
US6278899B1 (en)*1996-05-062001-08-21Pavilion Technologies, Inc.Method for on-line optimization of a plant
JPH11259450A (en)*1998-03-091999-09-24Hitachi Ltd Optimal output determination method and device
US6330483B1 (en)*1999-05-072001-12-11The Boeing CompanyOptimal control system
CA2382523C (en)*1999-09-032006-07-25Quantis Formulation Inc.Method of optimizing parameter values in a process of producing a product
DE10341764B4 (en)*2002-09-112019-01-10Fisher-Rosemount Systems, Inc. Integrated model prediction control and optimization within a process control system
US7376472B2 (en)*2002-09-112008-05-20Fisher-Rosemount Systems, Inc.Integrated model predictive control and optimization within a process control system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US6032106A (en)*1993-12-142000-02-29Ishii; MasaharuApparatus and method for selecting parameters corresponding to physical characteristics
WO1995028666A1 (en)*1994-04-131995-10-26The M.W. Kellogg CompanyMaximizing process production rates using permanent constraints

Also Published As

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

Similar Documents

PublicationPublication DateTitle
DE10341762B4 (en) Managing the realizability of constraints and limitations in an optimizer for process control systems
DE10127788B4 (en) Integrated optimal model predictive control in a process control system
DE10362408B3 (en) Integrated model-based predicative control and optimization within a process control system
DE10341764B4 (en) Integrated model prediction 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
DE102006045429B4 (en) Adaptive, Model Predictive Online control in a process control system
DE10304902B4 (en) Adaptation of extended process control blocks depending on changing process delays
DE69823049T2 (en) MODEL-FREE ADAPTIVE PROCESS CONTROL
DE102004058238B4 (en) Adaptive, multivariable process control that uses model switching and attribute interpolation
DE102006045428B4 (en) Method and system for controlling a batch process
DE10048360B4 (en) Integrated, advanced control blocks in process control systems
DE69420703T2 (en) METHOD FOR PREDICTIVE MULTI-SIZE CONTROL BY MEASURING A RANGE CONTROL
DE112009000224T5 (en) Robust and adaptive model predictive controller with tuning to compensate for model mismatch
DE602005002839T2 (en) PROCESSING OF INDUSTRIAL PRODUCTION PROCESSES
DE69608796T2 (en) FEEDBACK METHOD FOR CONTROL
DE60016459T2 (en) METHOD AND DEVICE FOR LIMITING THE INTEGRAL PART IN PID REGULATORS
DE60308143T2 (en) PROCESS FOR REMOVING PID DYNAMICS FROM MPC MODELS
DE60103037T2 (en) PROCESS CONTROL SYSTEM
DE102004019352B4 (en) State-based adaptive feedback / feedforward PID controller (PID control unit)
DE102007063915B4 (en) Process control and optimization technology using immunological concepts
DE10012258A1 (en)Auto-tuner for process control system, especially for performing auto-tuning on control elements distributed throughout process control environment
DE102006049832A1 (en) Non-periodic control communications in wireless and other process control systems
DE102013100434A1 (en) Compensating for setpoint changes in a non-periodically updated controller
WO2011032918A1 (en)Two-degree-of-freedom control having an explicit switching for controlling chemical engineering processes

Legal Events

DateCodeTitleDescription
8110Request for examination paragraph 44
R016Response to examination communication
R018Grant decision by examination section/examining division
R020Patent grant now final
R020Patent grant now final

Effective date:20150217

R071Expiry of right

[8]ページ先頭

©2009-2025 Movatter.jp