Die Anmeldung ist eine Teilweiterverfolgung
von und beansprucht Priorität
aus der US-Patentanmeldung Nr. 10/310,416 mit dem Titel „Configuration
and Viewing Display for an Integrated Model Predictive Control and
Optimizer Function Block",
eingereicht am 5. Dezember 2002, welche eine Weiterverfolgung der US-Patentanmeldung
Nr. 10/241,350 mit dem Titel „Integrated
Model Predictive Control and Optimization within a Process Control
System", eingereicht
am 11. September 2002, ist und Priorität aus dieser beansprucht. Diese
Anmeldungen werden hier universal in ihrer Gänze durch Bezug aufgenommen.The login is a partial tracking
from and claims priority
from U.S. Patent Application No. 10 / 310,416 entitled "Configuration
and Viewing Display for Integrated Model Predictive Control and
Optimizer Function Block ",
filed on December 5, 2002, which is a follow-up to the US patent application
No. 10 / 241,350 entitled "Integrated
Model Predictive Control and Optimization within a Process Control
System ", filed
on September 11, 2002, and priority is claimed from this. This
Registrations are universally included in their entirety by reference.
Die vorliegende Erfindung bezieht
sich allgemein auf Prozesssteuerungssysteme und insbesondere auf
einen optimierten Modellvorhersage-Controller im Rahmen eines Prozesssteuerungssystems.The present invention relates
generally on process control systems and in particular on
an optimized model prediction controller as part of a process control system.
Prozesssteuerungssysteme wie verteilte
oder skalierbare Prozesssteuerungssysteme wie diejenigen, die in
Chemie-, Erdöl-
oder anderen Prozessen verwendet werden, umfassen typischerweise
einen oder mehrere, kommunikativ miteinander, mit mindestens einem
Haupt- oder Bedienerarbeitsplatzrechner und mit einem oder mehreren
Feldgeräten über analoge,
digitale oder kombinierte analoge/digitale Busse gekoppelte/n Controller.
Die Feldgeräte,
bei denen es sich beispielsweise um Ventile, Ventilsteller, Schalter
und Messwertgeber (z.B. Temperatur-, Druck- und Fließratensensoren)
handeln kann, erfüllen
Funktionen im Rahmen des Prozesses wie Öffnen und Schließen von
Ventilen und Messen von Pro zessparametern. Der Prozesscontroller empfängt Signale,
die für
Prozessmessungen stehen, die von den Feldgeräten durchgeführt werden,
und/oder andere, die Feldgeräte
betreffende Daten, verwendet diese Daten, um ein Steuerprogramm
in Gang zu setzen, und erzeugt dann Steuersignale, die über die
Busse an die Feldgeräte
geschickt werden, um den Ablauf des Prozesses zu steuern. Daten
aus den Feldgeräten
und dem Controller werden typischerweise einer oder mehreren Anwendung/en
zur Verfügung
gestellt, die vom Bedienerarbeitsplatzrechner ausgeführt wird/werden,
um einen Bediener jede gewünschte
Funktion hinsichtlich des Prozesses wie Überwachung des augenblicklichen Prozessstadiums,
Abändern
des Prozessablaufs, etc. durchführen
zu lassen.Process control systems such as distributed
or scalable process control systems such as those in
Chemical, petroleum
or other processes typically include
one or more communicatively with each other, with at least one
Home or server workstation and with one or more
Field devices via analog,
digital or combined analog / digital buses coupled controller.
The field devices,
These are, for example, valves, valve actuators, switches
and transducers (e.g., temperature, pressure and flow rate sensors)
can act, fulfill
Functions within the process such as opening and closing of
Valves and measuring process parameters. The process controller receives signals
the for
Process measurements carried out by the field devices,
and / or others, the field devices
related data, uses this data to a control program
to initiate, and then generates control signals over the
Buses to the field devices
be sent to control the flow of the process. dates
from the field devices
and the controller will typically be one or more applications
to disposal
set up by the operator workstation,
around an operator any desired
Function regarding the process such as monitoring the current process stage,
amend
of the process flow, etc.
allow.
Prozess-Controller sind typischerweise
so programmiert, dass sie verschiedene Algorithmen, Unterprogramme
oder Steuer-/Regelkreise (die alle Steuerroutinen sind) für jede einer
Anzahl unterschiedlicher Kreise durchführen, die für einen Prozess bestimmt oder
darin enthalten sind, wie Durchflussregelkreise, Temperaturregelkreise,
Druckregelkreise, etc. Allgemein ausgedrückt umfasst jeder solche Steuer-/Regelkreis
einen oder mehrere Eingabeblöcke
wie einen Funktionsblock analoge Eingabe (AI), einen Einzelausgabe-Regelblock,
wie einen Proportional-, Integral-, Differential-(PID)-Regelblock
oder einen Fuzzy-Regelfunktionsblock, und einen einzelnen Ausgabeblock,
wie einen Funktionsblock analoger Ausgang (AO). Diese Steuer-/Regelkreise
führen
typischerweise eine Einzeleingabe-/Einzelausgabesteuerung durch,
weil der Steuer-/Regelblock eine einzelne Steuerausgabe erzeugt,
die dazu verwendet wird, eine einzelne Prozesseingabe wie eine Ventilposition,
etc. zu steuern. In manchen Fällen
ist jedoch die Verwendung mehrerer unabhängig arbeitender Einzeleingabe-/Einzelausgabesteuerkreise
nicht sinnvoll, weil die zu steuernden Prozessgrößen von mehr als einer einzelnen
Prozesseingabe betroffen werden und sich jede Prozesseingabe auf
den Status vieler Prozessausgaben auswirken kann. Ein Beispiel dafür könnte beispielsweise
in einem Prozess auftreten, bei dem ein Tank durch zwei Zufuhrleitungen
befüllt
und über
eine einzige Auslassleitung geleert werden soll, wobei jede Leitung
von einem anderen Ventil gesteuert wird, und bei dem Temperatur,
Druck und Durchsatz des Tanks so geregelt werden, dass sie sich
auf oder nahe an Sollwerten befinden. Wie oben angegeben, kann die
Regelung des Durchsatzes, der Temperatur und des Drucks des Tanks
unter Verwendung eines separaten Durchsatzregelkreises, eines separaten
Temperaturregelkreises und eines separaten Druckregelkreises durchgeführt werden.
In dieser Situation kann jedoch der Betrieb des Temperaturregelkreises
beim Ändern
der Einstellung eines der Zufuhrventile, um die Temperatur im Tank
zu regeln, dazu führen,
dass der Druck im Tank ansteigt, was beispielsweise den Druckkreis
dazu veranlasst, das Auslassventil zu öffnen, um den Druck zu senken.
Dieser Vorgang kann dann den Durchsatzregelkreis dazu bringen, eines
der Einlassventile zu schließen,
wodurch die Temperatur beeinflusst und der Temperaturregelkreis
dazu veranlasst wird, irgendeine weitere Maßnahme zu ergreifen. Wie aus
diesem Beispiel klar wird, bringen die Einzeleingabe-/Einzelausgabe-Steuer-/Regelkreise
die Prozessausgaben (in diesem Fall Durchsatz, Temperatur und Druck)
dazu, sich auf eine inakzeptable Weise zu verhalten, bei der die
Ausgaben schwanken ohne jemals einen Beharrungszustand zu erreichen.Process controllers are typical
programmed to use different algorithms, subroutines
or control loops (which are all control routines) for each one
Number of different circles that determines for a process or
are included, such as flow control loops, temperature control loops,
Pressure control loops, etc. Generally speaking, each includes such control loop
one or more input blocks
such as a function block analog input (AI), a single output control block,
such as a proportional, integral, derivative (PID) rule block
or a fuzzy rule function block, and a single output block,
like a function block analog output (AO). These control circuits
to lead
typically a single input / single output control,
because the control block generates a single control output,
used to process a single process input, such as a valve position,
etc. to control. In some cases
however, is the use of multiple independently operating single-input / single-output control circuits
not useful, because the process variables to be controlled by more than a single
Process input are affected and each process input on
can affect the status of many process outputs. An example of this could be, for example
occur in a process in which a tank passes through two supply lines
filled
and over
a single outlet conduit is to be emptied, each conduit
controlled by another valve, and at the temperature,
Pressure and flow rate of the tank are regulated so that they are
are at or near target values. As stated above, the
Control of the flow rate, the temperature and the pressure of the tank
using a separate throughput loop, a separate one
Temperature control circuit and a separate pressure control loop are performed.
In this situation, however, the operation of the temperature control loop
when changing
adjusting one of the supply valves to the temperature in the tank
to regulate, cause
that the pressure in the tank rises, which, for example, the pressure circuit
caused the exhaust valve to open to lower the pressure.
This process can then cause the throughput loop to one
close the inlet valves,
which affects the temperature and the temperature control loop
is prompted to take any further action. How out
In this example, the single input / single output control loops bring
the process outputs (in this case throughput, temperature and pressure)
to act in an unacceptable manner in which the
Expenditures fluctuate without ever achieving a steady state.
Modellvorhersagesteuerung (MPC – Model
Predictive Control) oder andere Arten von fortgeschrittener Steuerung
wurden eingesetzt, um eine Prozesssteuerung in Situationen durchzuführen, bei
denen Änderungen
an einer bestimmten gesteuerten Prozessgröße sich auf mehr als eine Prozessgröße oder
Prozessausgabe auswirken. Seit den späten 70er Jahren des zwanzigsten
Jahrhunderts wurde über
viele erfolgreiche Implementierungen von Modellvorhersagesteuerung
berichtet, und MPC wurde zur primären Form der fortgeschrittenen
multivariablen Steuerung in der Prozessindustrie. Darüber hinaus
wurde die MPC-Steuerung in verteilten Steuersystemen als verteilte
Steuersystem-Mehrschichtensoftware implementiert. Die US-Patente Nr.
4,616,308 und 4,349,869 beschreiben allgemein MPC-Steuergeräte, die
in einem Prozesssteuerungssystem verwendet werden können.Model Prediction Control (MPC Model
Predictive Control) or other types of advanced control
were used to perform process control in situations
which changes
At a given controlled process size, more than one process variable or
Affect process output. Since the late 70s of the twentieth
Century was over
many successful implementations of model prediction control
reported, and MPC became the primary form of advanced
multivariable control in the process industry. Furthermore
MPC control has become distributed in distributed control systems
Control system multi-layer software implemented. US Pat.
4,616,308 and 4,349,869 generally describe MPC controllers that
can be used in a process control system.
Allgemein gesprochen ist MPC eine
Mehrfacheingabe-/Mehrfachausgabe-Steuerstrategie,
bei der die Auswirkungen des Änderns
jeweils mehrerer Prozesseingaben auf jeweils mehrere Prozessausgaben
gemessen werden, und diese gemessenen Antworten dann dazu verwendet
werden, um eine Steuermatrix oder ein Modell des Prozesses zu erzeugen.
Das Prozessmodell oder die Steuermatrix (die im Allgemeinen den
Beharrungszustand des Prozesses definiert), wird mathematisch invertiert
und dann in einer oder als eine Mehrfacheingabe-/Mehrfachausgabe-Steuerung
zur Steuerung der Prozessausgaben basierend auf Änderungen verwendet, die an
den Prozesseingaben vorgenommen werden. In manchen Fällen wird
das Prozessmodell als eine Prozessausgabeansprechkurve (typischerweise
eine Schrittantwortkurve) für
jede der Prozesseingaben dargestellt, und diese Kurven können basierend
auf einer Reihe von beispielsweise Pseudozufallsschrittveränderungen
erzeugt werden, die zu jeder der Prozesseingaben geliefert werden.
Diese Ansprechkurven können
dazu verwendet werden, den Prozess auf bekannte Weise modellhaft
darzustellen. Modellvorhersagesteuerung ist im Stand der Technik
bekannt, und deshalb werden ihre spezifischen Eigenheiten hier nicht beschrieben.
MPC ist jedoch allgemein in Qin, S. Joe und Thomas A. Badgweil, „An Overview
of Industrial Model Predictive Control Technology, AIChE Conference,
1996 beschrieben.Generally speaking, MPC is one
Multiple input / multiple output control strategy
when the effects of changing
several process inputs each to several process outputs
measured and then uses these measured responses
to create a control matrix or model of the process.
The process model or the control matrix (which in general is the
Steady state of the process defined), is mathematically inverted
and then in one or more than one multiple input / multiple output controller
used to control the process outputs based on changes made to
the process inputs are made. In some cases
the process model as a process output response curve (typically
a step response curve) for
Each of the process inputs is represented, and these curves can be based on
on a series of, for example, pseudo-random step changes
generated, which are delivered to each of the process inputs.
These response curves can
be used to model the process in a known manner
display. Model prediction control is in the art
and therefore their specific characteristics are not described here.
However, MPC is generally in Qin, S. Joe and Thomas A. Badgweil, "An Overview
of Industrial Model Predictive Control Technology, AIChE Conference,
1996 described.
MPC stellte sich als eine sehr effektive
und nützliche
Steuertechnik heraus und wurde im Zusammenhang mit Prozessoptimierung
eingesetzt. Um einen Prozess zu optimieren, welcher MPC einsetzt,
minimiert oder maximiert ein Optimierer bestimmt durch das MPC-Programm
eine oder mehrere Prozesseingabegrößen, um den Prozess an einem
optimalen Operationspunkt ablaufen zu lassen. Während diese Technik vom Rechnerischen
her möglich
ist, müssen
die Prozessgrößen ausgewählt werden,
die beispielsweise einen signifikanten Einfluss auf die Verbesserung
des wirtschaftlichen Ablaufs des Prozesses (z.B. Prozessdurchsatz oder
Qualität)
haben, um den Prozess von einem ökonomischen
Standpunkt her zu optimieren. Um den Prozess von einem finanziellen
oder wirtschaftlichen Standpunkt her an einem optimalen Operationspunkt
ablaufen zu lassen, müssen
viele Prozessgrößen, und
nicht nur eine einzige Prozessgröße, zusammengenommen gesteuert
werden.MPC turned out to be a very effective one
and useful
Control technology out and was related to process optimization
used. To optimize a process that uses MPC,
An optimizer determined by the MPC program minimizes or maximizes
One or more process input variables to complete the process
to run optimal operation point. While this technique of the Computational
possible
is, must
the process variables are selected
for example, a significant impact on the improvement
the economic flow of the process (e.g., process throughput or
Quality)
have to do the process of an economic
Point of view to optimize. To the process of a financial
or economic point of view at an optimal operation point
have to expire
many process variables, and
not just a single process variable, taken together
become.
Eine Optimierung mittels quadratischer
Programmiertechniken oder geläufigerer
Techniken wie Gleitkommaverfahren wurden als eine Lösung vorgeschlagen,
um mit MPC eine dynamische Optimierung bereitzustellen. Mit diesen
Verfahren wird eine Optimierungslösung bestimmt, und der Optimieren
liefert dem Controller Umsetzungen in den Controllerausgaben (d.h.
die Stellgrößen des
Prozesses), berücksichtigt
die Prozessdynamik, bestehende Randbedingungen und Optimierungsziele.
Dennoch weist dieser Lösungsweg
eine gewaltige rechnerische Belastung auf und ist mit dem gegenwärtigen Stand
der Technologie nicht machbar.An optimization by means of quadratic
Programming techniques or more common
Techniques such as floating-point techniques have been proposed as a solution
to provide dynamic optimization with MPC. With these
Method, an optimization solution is determined, and the optimization
provides the controller with conversions in the controller outputs (i.e.
the manipulated variables of the
Process)
the process dynamics, existing boundary conditions and optimization goals.
Nevertheless, this solution shows
a huge computational burden on and is with the current state
the technology is not feasible.
In den meisten Fällen ist bei der Verwendung
von MPC die Anzahl van Prozessstellgrößen, die im Rahmen des Prozesses
zur Verfügung
stehen (d.h. die Steuerausgaben des MPC-Programms), größer als
die Zahl der Steuergrößen des Prozesses
(d.h. die Anzahl von Prozessgrößen, die
gesteuert werden müssen,
um sich an einem bestimmten Sollwert zu befinden). Im Ergebnis bestehen
für gewöhnlich mehrere
Freiheitsgrade, die zur Abwicklung von Optimierung und Randbedingungen
verfügbar
sind. Theoretisch sollten zur Durchführung einer solchen Optimierung
Werte berechnet werden, die durch Prozessgröße, Randbedingungen, Grenzen
und ökonomische
Faktoren ausgedrückt
werden, die einen optimalen Operationspunkt des Prozesses bestimmen.
In vielen Fällen
sind diese Prozessgrößen zwangsweise
vorgegebene Größen, weil
ihnen Grenzen in Bezug auf die physikalischen Eigenschaften des
Prozesses, den sie betreffen, gesetzt sind, innerhalb derer sie
gehalten werden müssen.
Beispielsweise ist eine Prozessgröße, die den Tankfüllstand
darstellt, auf den physikalisch erreichbaren maximalen und minimalen
Füllstand
des jeweiligen Tanks beschränkt.
Eine Optimierungsfunktion kann Kosten und/oder Nutzen berechnen,
die mit jeder der zwangsweise vorgegebenen oder Hilfsgrößen verbunden
sind, um mit einem Füllstand
zu arbeiten, bei dem der Nutzen maximiert, die Kosten minimiert
sind, etc. Die Messungen dieser Hilfsgrößen können dann dem MPC-Programm
als Eingaben zu Verfügung
gestellt und vom MPC-Programm als Steuergrößen mit einem Sollwert gleich
dem Operationspunkt für
die Hilfsgröße, der
durch das Optimierungsprogramm definiert ist, zu verarbeiten.In most cases it is in use
of MPC the number of process variables that are in the process
to disposal
are greater than (i.e., the control outputs of the MPC program)
the number of control variables of the process
(i.e., the number of process variables that
need to be controlled
to be at a specific setpoint). In the result exist
usually several
Degrees of freedom, to the execution of optimization and boundary conditions
available
are. Theoretically, to carry out such optimization
Values are calculated by process size, constraints, limits
and economic
Factors expressed
which determine an optimal operation point of the process.
In many cases
are these process variables compulsory
given sizes, because
them limits in terms of the physical properties of the
Process they concern, within which they are placed
must be kept.
For example, a process variable is the tank level
represents, on the physically achievable maximum and minimum
level
limited to the respective tank.
An optimization function can calculate costs and / or benefits
associated with each of the forcibly given or auxiliary sizes
are to fill a level
to work, maximizing benefits, minimizing costs
are, etc. The measurements of these auxiliary quantities can then the MPC program
as inputs available
provided by the MPC program as control variables with a setpoint equal
the operation point for
the auxiliary size, the
is defined by the optimizer to process.
MPC liefert die beste Leistung, die
oft von der Anwendung nur für
die quadratische Steuerung benötigt wird,
bei der die Anzahl von Steuereingaben in den Prozess (d.h. die vom
Steuerprogramm bildeten Stellgrößen) gleich
der Anzahl von zu steuernden Steuergrößen ist (d.h. den Eingaben
in den Controller). In den meisten Fällen jedoch ist die Anzahl
an zwangsweise vorgegebenen Hilfsgrößen plus die Anzahl an Prozesssteuerungsgrößen größer als
die Anzahl von Stellgrößen. Eine
Implementierung von MPC für
solche nicht quadratischen Konfigurationen führt zu einer unannehmbar schlechten
Leistung.MPC delivers the best performance that
often by the application only for
the square control is needed
where the number of control inputs into the process (i.e.
Control program formed manipulated variables)
the number of control variables to be controlled (i.e., the inputs
in the controller). In most cases, however, the number is
at forcibly specified auxiliary quantities plus the number of process control variables greater than
the number of manipulated variables. A
Implementation of MPC for
Such non-square configurations result in an unacceptably bad configuration
Power.
Man geht davon aus, dass Andere versucht
haben, dieses Problem zu bewältigen,
indem ein Satz von Steuer- und zwangsweise vorgegebenen Größen gleich
der Anzahl von Stellgrößen ausgewählt und
der Controller online oder während
des Prozessablaufs generiert wird, um die nächsten Bewegungen bei den Stellgrößen zu bestimmen.
Diese Technik ist jedoch rechnerisch aufwändig, weil sie eine Matrixinversion
anwendet und in manchen Fällen
wie MPC, die als ein Funktionsblock in einem Prozesssteuerungsgerät eingebaut
ist, nicht verwendet werden kann. Genauso wichtig ist, dass manche
Kombinationen von Ein- und Ausgaben des generierten Controllers
zu einem schlecht bedingten Controller führen können, was zu einem unannehmbaren Betrieb
führt.
Während
der Zustand des Controllers überprüft und verbessert
werden kann, wenn die Controllerkonfiguration offline installiert
wird, ist diese Aufgabe für
den Online-Betrieb eine übermäßige Belastung
und auf Controllerniveau praktisch unmöglich zu bewerkstelligen.It is believed that others have attempted to overcome this problem by selecting a set of control and forced sizes equal to the number of manipulated variables and generating the controller online or during the process to estimate the next movements in the manipulated variables determine. However, this technique is computationally expensive because it employs a matrix inversion and, in some cases, can not be used like MPC, which is incorporated as a functional block in a process control device. Equally important, some combinations of inputs and outputs of the generated controller can result in a badly-conditional controller, resulting in unacceptable operation. While the state of the controller can be checked and improved when the Control When the offline configuration is installed offline, this task is too much for on-line operation and virtually impossible at the controller level.
Es wird ein Prozesssteuerungskonfigurationssystem
zur Verwendung bei der Erzeugung oder Sichtung eines integrierten
Optimierungs- und Steuer-/Regelblocks bereitgestellt, der ein Optimierungsprogramm und
ein Mehrfacheingabe/Mehrfachausgabesteuerprogramm ablaufen lässt. Das
Konfigurationssystem kann es einem Benutzer ermöglichen, den Optimieren oder
das Steuerprogramm anzuzeigen oder zu konfigurieren. Beispielsweise
kann ein Speicherprogramm Daten bezüglich mehrerer Steuer- und
Hilfsgrößen und
mehrerer Stellgrößen speichern,
die vom Optimieren und/oder dem Steuerprogramm verwendet werden
sollen, und ein Anzeigeprogramm kann einem Benutzer eine Anzeige
darbieten, die die Daten bezüglich
der mehreren Steuer- und Hilfsgrößen und
der mehreren Stellgrößen betreffen.It becomes a process control configuration system
for use in creating or viewing an integrated
Optimization and control blocks provided an optimization program and
Run a multiple input / multiple output control program. The
Configuration system may allow a user to optimize or
to view or configure the control program. For example
a memory program can store data regarding multiple control and data
Auxiliary sizes and
store several manipulated variables,
which are used by the optimizer and / or the control program
and a viewer can give an ad to a user
presenting the data concerning
the multiple control and auxiliary sizes and
relate to several variables.
In einer Ausführungsform speichert das Speicherprogramm
Ansprechverhaltensdaten oder Antwortdaten für jede von mindestens einigen
der Steuer- und
Hilfsgrößen. Die
Ansprechverhaltensdaten für
eine Steuer- oder Hilfsgröße können Daten
umfassen, die für
ein jeweiliges Ansprechverhalten der Steuer- oder Hilfsgrößen auf
jeweilige Stellgrößen stehen.
Dieses Ansprechverhalten kann beispielsweise Schrittverhalten, Pulsverhalten,
Anstiegsverhalten etc. sein. Das Displayprogramm kann dem Benutzer
Ansprechverhaltensdaten anzeigen. Zum Beispiel kann der Benutzer
eine Stellgröße festlegen,
und das Anzeigeprogramm kann das Ansprechverhalten einer oder mehrerer
der Steuer- und Hilfsgrößen auf
die festgelegte Stellgröße anzeigen.In one embodiment, the memory program stores
Response data or response data for each of at least some
the tax and
Auxiliary variables. The
Response data for
a control or auxiliary size can be data
include that for
a respective response of the control or auxiliary variables
respective manipulated variables are available.
This response can be, for example, step behavior, pulse behavior,
Rise behavior, etc. The display program can be the user
Show response data. For example, the user
define a manipulated variable,
and the viewer may have the responsiveness of one or more
the tax and auxiliary sizes
show the specified manipulated variable.
In einem weiteren Aspekt umfasst
ein Prozesssteuerungssystem zum Steuern eines Prozesses einen Mehrfacheingabe-/Mehrfachausgabe-Controller
und einen Optimierer. Der Mehrfacheingabe-/Mehrfachausgabe-Controller
erzeugt während
jedem Operationszyklus des Prozesssteuerungssystems Mehrfachsteuer ausgaben,
die so konfiguriert sind, dass sie den Prozess basierend auf Mehrfachmesseingaben
aus dem Prozess und basierend auf einem Satz von Zielwerten steuern,
die dem Mehrfacheingabe-/Mehrfachausgabe-Controller während jedem
Operationszyklus des Prozesssteuerungssystems bereitgestellt werden.
Der Optimierer bildet den Satz von Zielwerten zur Verwendung durch
den Mehrfacheingabe-/Mehrfachausgabe-Controller während jedem
Operationszyklus des Prozesssteuerungssystems. Der Optimierer versucht, eine
Zielfunktion zu minimieren oder zu maximieren und gleichzeitig einen
Satz von Steuergrößen innerhalb vorbestimmter
Sollwertgrenzen, einen Satz von Hilfsgrößen innerhalb eines Satzes
vorbestimmter Hilfsgrößengrenzen
und einen Satz von Stellgrößen innerhalb
eines Satzes vorbestimmter Stellgrößengrenzen zu halten. Wenn
der Optimieren keine Lösung
bestimmen kann, versucht der Optimieren, die Zielfunktion zu minimieren
oder zu maximieren und erlaubt gleichzeitig, dass mindestens eine
der Sollwertgrenzen verletzt wird.In another aspect
a process control system for controlling a process of a multiple input / multiple output controller
and an optimizer. The multi-input / multi-output controller
generated during
multi-tax expenditures for each cycle of the process control system,
which are configured to run the process based on multiple measurement inputs
control from the process and based on a set of target values,
the multi-input / multi-output controller during each
Operation cycle of the process control system are provided.
The optimizer makes the set of targets for use
the multi-input / multi-output controller during each
Operation cycle of the process control system. The optimizer tries to do a
Goal function to minimize or maximize and at the same time one
Set of control variables within predetermined
Setpoint limits, a set of auxiliary quantities within a set
predetermined auxiliary size limits
and a set of manipulated variables within
to keep a set of predetermined manipulated variable limits. If
optimizing no solution
Optimize attempts to minimize the objective function
or to maximize while allowing at least one
the setpoint limits are violated.
In noch einem anderen Aspekt umfasst
ein Prozesssteuerungsverfahren zum Steuern eines Prozesses mit mehreren
Stellgrößen und
mehreren Steuer- und Hilfsgrößen das
Auswählen
einer Teilmenge von Steuer- und Hilfsgrößen zur Verwendung bei der
Durchführung
der Prozesssteuerung, wobei mindestens eine der ausgewählten Steuer-
und Hilfsgrößen basierend
darauf ausgewählt
wird, dass sie auf eine der Stellgrößen am stärksten anspricht. Eine Steuermatrix
wird unter Verwendung der ausgewählten
Steuer- und Hilfsgrößen und
der Stellgrößen erzeugt,
und aus der Steuermatrix wird eine Controllermatrix generiert. Eingaben
in den Controller umfassen die ausgewählten Steuer- und Hilfsgrößen, und
Ausgaben des Controllers umfassen die Stellgrößen. Eine Optimierung wird
durchgeführt,
indem ein Prozessoperationspunkt ausgewählt wird, der Prozessoperationspunkt
durch einen Satz von Zielwerten für die ausgewählten Steuer-
und Hilfsgrößen bestimmt
wird, um eine Zielfunktion zu minimieren oder zu maximieren. Der
Controller wird verwendet, um ein Mehrfacheingabe-/Mehrfachausgabesteuerungsverfahren
durchzuführen,
um aus den Zielwerten einen Satz von Stellgrößenwerten zu bilden.In yet another aspect
a process control method for controlling a process with multiple
Manipulated variables and
several control and auxiliary sizes the
Choose
a subset of control and auxiliary quantities for use in the
execution
process control, whereby at least one of the selected control
and auxiliary sizes based
selected on it
is that it responds the most to one of the manipulated variables. A tax matrix
is using the selected
Tax and auxiliary sizes and
generates the manipulated variables,
and a controller matrix is generated from the control matrix. entries
in the controller include the selected control and auxiliary quantities, and
Outputs of the controller include the manipulated variables. An optimization becomes
carried out,
by selecting a process operation point, the process operation point
through a set of target values for the selected tax
and auxiliary sizes determined
is used to minimize or maximize an objective function. Of the
Controller is used to multi-input / multiple output control method
perform,
to form a set of manipulated variable values from the target values.
Im Folgenden werden bevorzugte Ausführungsformen
anhand der Zeichnungen beschrieben. Es zeigen:The following are preferred embodiments
described with reference to the drawings. Show it:
1 ist
ein Blockschema eines Prozesssteuerungssystems einschließlich eines
Steuermoduls mit einem fortgeschrittenen Controller-Funktionsblock,
der einen Optimierer mit einem MPC-Controller beinhaltet; 1 FIG. 12 is a block diagram of a process control system including a control module having an advanced controller functional block including an optimizer with an MPC controller; FIG.
2 ist
ein Blockschema des fortgeschrittenen Controller-Funktionsblocks
von 1 mit integriertem
Optimierer und MPC-Controller; 2 is a block diagram of the advanced controller functional block of 1 with integrated optimizer and MPC controller;
3 ist
ein Ablaufdiagramm, das eine Art und Weise darstellt, den integrierten
Optimierer und den MPC-Controller-Funktionsblock von 2 festzulegen und zu installieren; 3 FIG. 10 is a flowchart illustrating one way of using the integrated optimizer and the MPC controller functional block of FIG 2 to set and install;
4 ist
ein Ablaufdiagramm, das den Betrieb des integrierten Optimiereres
und MPC-Controllers von 2 während eines
Online-Prozessablaufs darstellt; 4 is a flow chart illustrating the operation of the integrated optimizer and MPC controller of 2 during an online process flow;
5 ist
eine Bildschirmanzeige eines Konfigurationsprogramms, die einen
fortgeschrittenen Steuer-/Regelblock in einem Steuermodul darstellt,
das eine Prozesssteuerung durchführt; 5 Fig. 11 is a screen of a configuration program illustrating an advanced control block in a control module that performs process control;
6 ist
eine Bildschirmanzeige einer Konfigurationsprogramms, die ein Dialogfeld
darstellt, das die Eigenschaften des fortgeschrittenen Steuer/Regelblocks
von 5 anzeigt; 6 is a screen of a configuration utility that displays a dialog box showing the properties of the advanced control block of 5 displays;
7 ist
eine Bildschirmanzeige eines Konfigurationsprogramms, das eine Art
und Weise darstellt, Eingaben in einen oder Ausgaben aus einem in
der Anzeige von 5 gezeigten
fortgeschrittenen Steuerfunktionsblock auszuwählen oder einzugeben; 7 is a screen display of a configuration program that provides a way of inputting to or outputting from one in the display of 5 to select or input the advanced control function block shown;
8 ist
eine Bildschirmanzeige, die von einem Konfigurationsprogramm bereitgestellt
wird, das es einem Benutzer oder Bediener ermöglicht, eine aus einem Satz
von Zielfunktionen zur Verwendung bei der Festlegung eines fortgeschrittenen
Steuer-/Regelblocks auszuwählen; 8th is a screen display provided by a configuration utility that does it allows a user or operator to select one of a set of target functions for use in determining an advanced control block;
9 ist
eine Bildschirmanzeige eines Testbildschirms, der dazu verwendet
werden kann, es einem Benutzer zu ermöglichen, ein Prozessmodell
während
des Festlegens eines fortgeschrittenen Steuer-/Regelblocks zu testen
und zu erzeugen; 9 Fig. 10 is a screen display of a test screen that may be used to enable a user to test and generate a process model while setting an advanced control block;
10 ist
eine Bildschirmanzeige eines Konfigurationsprogramms, das mehrere
Schrittantworten darstellt, die das Ansprechverhalten verschiedener
Steuer- und Hilfsgrößen auf
eine bestimmte Stellgröße anzeigen; 10 Fig. 11 is a screen of a configuration program illustrating multiple step responses indicating the response of various control and auxiliary quantities to a particular manipulated variable;
11 ist
eine Bildschirmanzeige eines Konfigurationsprogramms, das eine Art
und Weise des Auswählens
der Steuer- oder Hilfsgrößen von 9 darstellt, die zuvor der
Stellgröße zugeordnet
wurden; 11 is a screen of a configuration program that shows a way of selecting the control or auxiliary quantities from 9 represents that were previously assigned to the manipulated variable;
12 ist
eine Bildschirmanzeige eines Konfigurationsprogramms, das mehrere
Schrittantworten darstellt, die das Ansprechen derselben Steuer-
oder Hilfsgröße auf andere
der Stellgrößen anzeigt; 12 Fig. 11 is a screen of a configuration program illustrating multiple step responses indicating the response of the same control or auxiliary variable to other ones of the manipulated variables;
13 ist
eine Bildschirmanzeige eines Konfigurationsprogramms, das eine andere
Art und Weise darstellt, Steuer- oder Hilfsgrößen auszuwählen, die Stellgrößen zugeordnet
werden sollen; 13 Fig. 12 is a screen of a configuration program illustrating another way of selecting control or auxiliary variables to be associated with manipulated variables;
14 ist
eine Bildschirmanzeige eines Konfigurationsprogramms, das eine andere
Art und Weise darstellte, Steuer- oder Hilfsgrößen auszuwählen, die Stellgrößen zugeordnet
werden sollen; 14 Figure 12 is a screen of a configuration program that was another way of selecting control or auxiliary quantities to be assigned to manipulated variables;
15 ist
eine Bildschirmanzeige, die die Art und Weise darstellt, eine der
Schrittantworten eines Modells zu kopieren, die zur Verwendung in
einem anderen Modell kopiert werden soll; 15 is a screen display which is the way to copy one of the step responses of a model to be copied for use in another model;
16 ist
eine Bildschirmanzeige, die die Art und Weise darstellt, eine Schrittantwortkurve
zu sichten und zu ändern; 16 is a screen display that represents the way to view and change a step response curve;
17 ist
eine Bildschirmanzeige, die einen Dialogbildschirm darstellt, welcher
dem Bediener während
des Betriebs des fortgeschrittenen Steuer/Regelblocks Daten zur
Verfügung
stellt; und 17 Fig. 11 is a screen displaying a dialog screen which provides data to the operator during operation of the advanced control block; and
18 ist
eine Bildschirmanzeige, die einen Diagnosebildschirm darstellt,
der einem Benutzer oder Bediener zur Verfügung gestellt werden kann,
um am fortgeschrittenen Steuer-/Regelblock eine Diagnose vorzunehmen. 18 is a screen that displays a diagnostic screen that may be provided to a user or operator to diagnose the advanced control block.
Nunmehr umfasst mit Bezug auf 1 ein Prozesssteuerungssystem 10 einen
Prozess-Controller 11, der kommunikativ mit einer Datensammlung 12 und
einem oder mehreren Hauptarbeitsplatzrechnern oder Computern 13 verbunden
ist (die von irgendeiner Art von PC, Arbeitsplatzrechner, etc. sein
können),
wovon jeder einen Anzeigebildschirm 14 aufweist. Der Controller 11 ist über Eingabe/Ausgabekarten
(I/O-Karten) 26 und 28 mit Feldgeräten 15 – 22 verbunden.
Die Datensammlung 12 kann von irgendeiner gewünschten
Art von Datensammeleinheit mit irgendeiner gewünschten Art von Speicher und
irgendeiner gewünschten
oder bekannten Software, Hardware oder Firmware zum Speichern von
Daten sein, und kann getrennt (wie in 1 gezeigt)
oder ein Teil von einem der Arbeitsplatzrechner 13 sein.
Der Controller 11, der beispielsweise der Controller DeltaVTM sein kann, der von Fisher-Rosemount Systems,
Inc. vertrieben wird, ist an die Hauptrechner 13 und die
Datensammlung 12 beispielsweise über einen Ethernet-Anschluss oder irgendein
anderes Kommunikationsnetz 29 angeschlossen. Bei dem Kommunikationsnetz 29 kann
es sich um eines lokalen Datennetzes (LAN), ein überregionales Netz (WAN), ein
Telekommunikationsnetzes, etc. handeln, und es kann unter Verwendung
festverdrahteter oder drahtloser Technologie implementiert sein.
Der Controller 11 ist mittels irgendeiner gewünschten
Hard- und Software, die beispielsweise standardmäßigen 4 – 20 ma-Geräten zugeordnet ist und/oder
irgendeinem intelligenten Kommunikationsprotokoll wie dem FOUNDATION-Feldbusprotokoll
(Fieldbus), dem HART-Protokoll, etc., kommunikativ mit den Feldgeräten 15 – 22 verbunden.Now comprising with respect to 1 a process control system 10 a process controller 11 who is communicative with a data collection 12 and one or more major workstations or computers 13 (which may be of any type of PC, workstation, etc.), each of which has a display screen 14 having. The controller 11 is via input / output cards (I / O cards) 26 and 28 with field devices 15 - 22 connected. The data collection 12 may be of any desired type of data collection unit with any desired type of memory and any desired or known software, hardware or firmware for storing data, and may be separate (as in 1 shown) or a part of one of the workstations 13 his. The controller 11 which may, for example, be the DeltaV ™ controller marketed by Fisher-Rosemount Systems, Inc., is the host 13 and the data collection 12 for example via an Ethernet connection or any other communication network 29 connected. In the communication network 29 it may be a local area network (LAN), a supra-regional network (WAN), a telecommunications network, etc., and it may be implemented using hardwired or wireless technology. The controller 11 is communicative with the field devices by any desired hardware and software associated, for example, with standard 4-20 ma devices and / or any intelligent communication protocol such as FOUNDATION fieldbus protocol (Fieldbus), HART protocol, etc. 15 - 22 connected.
Bei den Feldgeräten 15 – 22 kann
es sich um irgendwelche Arten von Geräten handeln, wie Sensoren, Ventile,
Messwertgeber, Steller, etc., während
es sich bei den I/O-Karten 26 und 28 um irgendwelche
Arten von I/O-Geräten
handeln kann, die irgendeinem gewünschten Kommunikations- oder
Controllerprotokoll entsprechen. In der in 1 dargestellten Ausführungsform sind die Feldgeräte 15 – 18 standardmäßige 4-20 ma-Geräte, die über analoge
Leitungen mit der I/O-Karte 26 kommunizieren, während die
Feldgeräte 19 – 22 intelligente
Geräte
sind, wie Fieldbus-Feldgeräte,
die über
einen digitalen Bus mit der I/O-Karte 28 unter Verwendung
von Fieldbusprotokollkommunikation kommunizieren. Selbstverständlich könnten die
Feldgeräte 15 – 22 auch
irgendeinem anderen Standard oder irgendwelchen anderen Standards
oder Protokollen entsprechen, einschließlich derer, die zukünftig noch
entwickelt werden.With the field devices 15 - 22 These can be any type of devices, such as sensors, valves, transducers, actuators, etc., while the I / O cards 26 and 28 can be any type of I / O device that meets any desired communication or controller protocol. In the in 1 illustrated embodiment, the field devices 15 - 18 standard 4-20 ma devices that have analog lines with the I / O card 26 communicate while the field devices 19 - 22 Smart devices are, like fieldbus field devices, that have a digital bus with the I / O card 28 communicate using Fieldbus protocol communication. Of course, the field devices could 15 - 22 also comply with any other standard or any other standards or protocols, including those that will be developed in the future.
Der Controller 11, welcher
einer von vielen verteilten Controllern innerhalb der Anlage 10 sein
kann, weist in sich mindestens einen Prozessor auf, implementiert
oder wacht über
ein oder mehrere Prozesssteuerungsprogramm/e, die darin gespeicherte
oder sonstwie damit verbundene Steuerkreise umfassen kann/können. Der
Controller 11 kommuniziert auch mit den Geräten 15 – 22,
den Hauptcomputern 13 und der Datensammlung 12,
um einen Prozess in irgendeiner gewünschten Weise zu steuern. Es
wäre festzuhalten,
dass irgendwelche hier beschriebenen Steuerprogramme oder -elemente
Teile davon aufweisen können,
die, falls gewünscht,
von anderen Controllern oder Geräten
implementiert oder ausgeführt
werden. Gleichermaßen
können
die hier beschriebenen Steuerprogramme oder -elemente, die im Prozesssteuerungssystem 10 implementiert
werden sollen, irgendeine Form annehmen, die Soft-, Firm- und Hardware,
etc. umfasst. Zu Zwecken dieser Erläuterung kann ein Prozesssteuerungselement
irgendein Teil oder Abschnitt eines Prozesssteuerungssystems sein,
der/das beispielsweise ein Programm, einen Block oder ein Modul
umfasst, die auf irgendeinem computerlesbaren Medium gespeichert
sind. Steuerprogramme, welche Module oder irgendein Teil eines Steuervorgangs
sein können,
wie ein Unterprogramm, Teile eines Unterprogramms (wie Befehlszeilen),
etc., können
in jedem gewünschten
Softwareformat implementiert werden, wie demjenigen, das KOP-Logik,
Sequenzfunktionskurven, Funktionsblockdiagramme, objektorientierte
Programmierung oder irgendeine andere Software-Programmiersprache
oder irgendein anderes Software-Entwurfsparadigma verwendet. Genauso können die
Steuerprogramme beispielsweise in einem oder mehreren EPROM/s, EEPROM/s,
anwendungsspezifischen integrierten Schaltungen (ASICs) oder irgendwelchen
anderen Hard- oder Firmwarelementen festcodiert sein. Überdies
können
die Steuerprogramme mittels irgendwelcher Entwurfs-Tools einschließlich graphischer
Entwurfs-Tools oder irgendeiner anderen Art von Software-/Hardware-/Firmware-Programmier- oder
Entwurfstools festlegt werden. Auf diese Weise kann der Controller 11 so
konfiguriert werden, dass er auf irgendeine gewünschte Weise eine Steuerstrategie
oder ein Steuerprogramm implementiert.The controller 11 which is one of many distributed controllers within the plant 10 may include at least one processor, implementing or monitoring one or more process control programs that may include control circuits stored therein or otherwise associated therewith. The controller 11 also communicates with the devices 15 - 22 , the main computers 13 and the data collection 12 to control a process in any desired way. It should be noted that any control programs or elements described herein may include portions thereof implemented or executed by other controllers or devices if desired. Likewise, the control programs or elements described herein may be used in the process control system 10 be implemented, take any form that includes software, firmware and hardware, etc. For purposes of this discussion, a process control element may be any part or portion of a process control A system comprising, for example, a program, a block or a module stored on any computer-readable medium. Control programs, which may be modules or any part of a control process, such as a subroutine, subprogram parts (such as command lines), etc., may be implemented in any desired software format, such as LAD logic, sequence function curves, function block diagrams, object oriented programming or use any other software programming language or any other software design paradigm. Likewise, the control programs may, for example, be hard-coded into one or more EPROMs, EEPROMs, application specific integrated circuits (ASICs), or any other hardware or firmware elements. Moreover, the control programs may be defined by any design tools including graphical design tools or any other type of software / hardware / firmware programming or design tools. That way, the controller can 11 be configured to implement a control strategy or program in any desired manner.
In einer Ausführungsform implementiert der
Controller 11 eine Steuerstrategie, die einsetzt, was im
Allgemeinen als Funktionsblöcke
bezeichnet wird, wobei jeder Funktionsblock ein Teil oder Gegenstand
eines übergeordneten
Steuerprogramms ist und zusammen mit anderen Funktionsblöcken (über Kommunika tion, die
Verknüpfungen
oder „Links" genannt werden)
arbeitet, um Prozesssteuerkreise innerhalb des Prozesssteuerungssystems 10 zu
implementieren. Die Funktionsblöcke üben typischerweise
eine Eingabefunktion aus, wie diejenige, die mit einem Messwertgeber,
einem Sensor oder einem anderen Messgerät für Prozessparameter zusammenhängt, eine
Steuerfunktion wie derjenigen, die mit einem Steuerprogramm zusammenhängt, das
PID-, Fuzzy-Regelung etc. durchführt,
oder eine Ausgabefunktion, welche den Betrieb irgendeines Geräts wie einem
Ventil steuert, um irgendeine physikalische Funktion innerhalb des
Prozesssteuerungssystems 10 zu erfüllen. Natürlich gibt es hybride und andere
Arten von Funktionsblöcken.
Funktionsblöcke
können im
Controller 11 gespeichert und von ihm ablaufen gelassen
werden, was typischerweise der Fall ist, wenn diese Funktionsblöcke für oder in
Verbindung mit standardmäßigen 4 – 20 ma-Geräten und
manchen Arten von intelligenten Feldgeräten wie HART-Geräten verwendet
werden, oder können
in den Feldgeräten
selbst gespeichert und durch diese implementiert werden, was bei
FieldbusGeräten
der Fall sein kann. Während
die Beschreibung des Steuersystems hier unter Verwendung einer Funktionsblocksteuerstrategie
beschrieben wird, welche ein objektorientiertes Programmierparadigma
einsetzt, könnten
die Steuerstrategie oder Steuerkreise oder -module auch unter Verwendung
anderer Programmkonventionen implementiert oder entworfen werden,
wie KOP-Logik, Sequenzfunktionskurven, etc., oder unter Verwendung
irgendeiner anderen Programmiersprache oder irgendeines anderen
Programmierparadigmas.In one embodiment, the controller implements 11 a control strategy that employs what are generally referred to as function blocks, where each function block is a part or subject of a parent control program and works with other function blocks (via communications called links or "links") to control process circuits within the system process control Systems 10 to implement. The functional blocks typically perform 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 program that performs PID, fuzzy control, etc., or one Output function that controls the operation of any device, such as a valve, to perform any physical function within the process control system 10 to fulfill. Of course, there are hybrid and other types of function blocks. Function blocks can be in the controller 11 stored and drained, which is typically the case when these functional blocks are used for or in conjunction with standard 4-20 ma devices and some types of smart field devices such as HART devices, or may be stored in the field devices themselves and can be implemented by them, which can be the case with Fieldbus devices. While the description of the control system is described herein using a functional block control strategy employing an object-oriented programming paradigm, the control strategy or control circuits or modules could also be implemented or designed using other programming conventions, such as ladder logic, sequence function curves, etc., or using any other programming language or programming paradigm.
Wie durch den erweiterten Block 30 von 1 dargestellt ist, kann
der Controller 11 mehrere Einzelkreis-Steuerprogramme umfassen,
die als Programme 32 und 34 dargestellt sind,
und kann einen oder mehrere fortgeschrittene Regel/Steuerkreise
implementieren, der/die als Regel-/Steuerkreis 36 dargestellt
ist/sind. Jeder derartige Kreis wird typischerweise als Regel-/Steuermodul
bezeichnet. Die Einzelkreis-Steuerprogramme 32 und 34 sind
so dargestellt, dass sie eine Einzelkreissteuerung unter Verwendung
eines Einzeleingabe-/Einzelausgabe-Fuzzy-Regelblocks bzw. eines Einzeleingabe-/Einzelausgabe-PID-Regelblocks
durchführen,
die an passende Funktionsblöcke
analoger Eingang (AI) und analoger Ausgang (AO) angeschlossen sind, welche
Prozesssteuergeräten
wie Ventilen, Messgeräten
wie Temperatur- und Druckmesswertgebern oder irgendeinem anderen
Gerät innerhalb
des Prozesssteuerungssystems 10 zugeordnet sein können. Der
fortgeschrittene Steuer-/Regelkreis 36 ist so dargestellt,
dass er einen fortge schrittenen Steuer-/Regelblock 38 umfasst,
dessen Eingänge
kommunikativ mit zahlreichen AI-Funktionsblöcken und Ausgänge kommunikativ
mit zahlreichen AO-Funktionsblöcken verbunden
sind, obwohl die Eingänge
und Ausgänge
des fortgeschrittenen Steuer-/Regelblocks 38 auch kommunikativ
mit irgendwelchen anderen gewünschten
Funktionsblöcken
oder Steuerelementen verbunden sein können, um andere Arten von Eingaben
zu empfangen und andere Arten von Steuerausgaben bereitzustellen.
Wie weiter noch beschrieben wird, kann der fortgeschrittene Steuer-/Regelblock 38 ein
Steuer-/Regelblock sein, der ein Modellvorhersagesteuerprogramm
mit einem Optimierer beinhaltet, um eine optimierte Steuerung des
Prozesses oder eines Teils des Prozesses durchzuführen. Während der
fortgeschrittene Steuer-/Regelblock 38 hier so beschrieben
ist, dass er einen Modellvorhersage-Steuer-/Regelblock (MPC-Block)
umfasst, könnte
der fortgeschrittene Steuer/Regelblock 38 auch irgendein/e
andere/s Mehrfacheingabe-/Mehrfachausgabe-Steuerprogramm oder -prozedur umfassen
wie ein Programm für neuronale
Netzmodellierung oder -steuerung, ein multivariables Steuerprogramm
in Fuzzy-Programmlogik, etc.
Es wird klar, dass die in 1 dargestellten
Funktionsblöcke,
die den fortgeschrittenen Steuer-/Regelblock 38 umfassen,
vom Controller 11 ausgeführt werden können, oder
alternativ in irgendeinem anderen Verarbeitungsgerät angeordnet
und von diesem ausgeführt
werden können,
wie einem der Arbeitsplatzrechner 13 oder sogar einem der
Feldgeräte 19 – 22.As by the extended block 30 from 1 is shown, the controller can 11 Several single-circuit control programs include programs 32 and 34 and may implement one or more advanced rule / control circuits acting as a control circuit 36 is shown / are. Each such circuit is typically referred to as a control module. The single-circuit control programs 32 and 34 are shown performing a single loop control using a single input / single output fuzzy control block or a single input / single output PID control block connected to appropriate analog input (AI) and analog output (AO) function blocks; which process control devices such as valves, gauges such as temperature and pressure transducers or any other device within the process control system 10 can be assigned. The advanced control loop 36 is shown as having a progressed control block 38 whose inputs are communicatively connected to numerous AI function blocks and outputs communicatively connected to numerous AO function blocks, although the inputs and outputs of the advanced control block 38 also communicatively connected to any other desired functional blocks or controls to receive other types of inputs and to provide other types of control outputs. As will be further described, the advanced control block 38 a control block that includes a model prediction control program with an optimizer to perform optimized control of the process or part of the process. While the advanced control block 38 Described here as including a model prediction control block (MPC block) could be the advanced control block 38 Also, any other multiple input / multiple output control program or procedure, such as a neural network modeling or control program, a multivariable control program in fuzzy program logic, etc. It will be appreciated that the in 1 displayed function blocks that the advanced control block 38 include, from the controller 11 can be performed, or alternatively can be arranged in and executed by any other processing device, such as one of the workstation 13 or even one of the field devices 19 - 22 ,
Wie in 1 dargestellt,
umfasst einer der Arbeitsplatzrechner 13 ein Generatorprogramm 40 für einen
fortgeschrittenen Steuer-/Regelblock, das dazu verwendet wird, den
fortgeschrittenen Steuer-/Regelblock 38 festzulegen, herunterzuladen
und zu implementieren. Während
das Generatorprogramm 40 für den fortgeschrittenen Steuer-/Regelblock
in einem Speicher innerhalb des Arbeitsplatzrechners 13 gespeichert
und darin von einem Prozessor ausgeführt werden kann, kann dieses
Programm (oder irgendein Teil davon) zusätzlich oder alternativ in irgendeinem
anderen Gerät
innerhalb des Prozesssteuerungssystems 10, falls das so
gewünscht
wird, gespeichert und von diesem ausgeführt werden. Allgemein ausgedrückt umfasst
das Generatorprogramm 40 für den fortgeschrittenen Steuer/Regelblock
ein Steuer-/Regelblockfestlegungsprogramm 42, das einen
fortgeschrittenen Steuer-/Regelblock festlegt, wie später hier
noch beschrieben wird, und das diesen fortgeschrittenen Steuer-/Regelblock
in das Prozesssteuerungssystem einbindet, ein Prozessmodellierungsprogramm 44,
das ein Prozessmodell für
den Prozess oder einen Teil davon erzeugt, basierend auf Daten,
die durch den fortgeschrittenen Steuer-/Regelblock erfasst werden,
ein Steuerlogikparameterfestlegungsprogramm 46, das Steuerlogikparameter
für den
fortgeschrittenen Steuer-/Regelblock aus dem Prozessmodell erzeugt,
und das diese Steuerlogikparameter im fortgeschrittenen Steuer-/Regelblock
zur Verwendung bei der Prozesssteuerung speichert und herunterlädt, und
einen Optimierer 48, der ein Optimierungsprogramm zur Verwendung
mit dem fortgeschrittenen Steuer-/Regelblock festlegt. Selbstverständlich können die
Programme 42, 44, 46 und 48 aus
einer Reihe unterschiedlicher Programme bestehen, wie einem ersten
Programm, das ein fortgeschrittenes Steuerelement festlegt, dessen
Steuereingänge
dazu ausgelegt sind, Prozessausgaben zu empfangen, und dessen Steuerausgänge dazu
ausgelegt sind, Steuersignale an die Prozesseingänge zu schicken, einem zweiten
Programm, das es einem Benutzer ermöglicht, das fortgeschrittene
Steuerelement innerhalb des Prozesssteuerungsprogramms (welches
irgendein gewünschtes
Konfigurationsprogramm sein kann) herunterzuladen und kommunikativ
einzubinden, einem dritten Programm, das das fortgeschrittene Steuerelement
dazu verwendet, jeder der Prozesseingaben Erregersignalformen zu
verleihen, einem vierten Programm, das das fortgeschrittene Steuerelement
dazu verwendet, um Daten zu erfassen, die das Ansprechen jeder der
Prozessausgaben auf die Erregersignalformen wiederspiegelt, einem
fünften
Programm, das selbst auswählt
oder es einem Benutzer ermöglicht,
einen Satz Eingaben für
den fortgeschrittenen Steuer-/Regelblock auszuwählen, einem sechsten Programm,
das ein Prozessmodell festlegt, einem siebten Programm, das fortgeschrittene
Steuerlogikparameter aus dem Prozessmodell bildet, einem achten
Programm, das die fortgeschrittene Steuerlogik und, falls nötig, das
Prozessmodell in das fortgeschrittene Steuerelement einbringt, um
es dem fortgeschrittenen Steuerelement zu ermöglichen, den Prozess zu steuern,
und einem neunten Programm, das selbst auswählt oder es einem Benutzer
ermöglicht,
einen Optimierer zu Verwendung im fortgeschrittenen Steuer-/Regelblock 38 auszuwählen.As in 1 illustrated includes one of the workstations 13 a generator program 40 for an advanced control block used to control the advanced control block 38 set, download and implement. While the generator program 40 for the advanced control block in a memory within the workstation 13 stored and in it may be executed by a processor, this program (or any part thereof) may additionally or alternatively be in any other device within the process control system 10 if so desired, stored and executed by it. Generally speaking, the generator program includes 40 for the advanced control block, a control block setting program 42 setting an advanced control block, as will be described later herein, and incorporating this advanced control block into the process control system, a process modeling program 44 generating a process model for the process or a part thereof, based on data acquired by the advanced control block, a control logic parameter setting program 46 , which generates control logic parameters for the advanced control block from the process model, and stores and downloads those control logic parameters in the advanced control block for use in process control, and an optimizer 48 setting an optimization program for use with the advanced control block. Of course, the programs can 42 . 44 . 46 and 48 consist of a number of different programs, such as a first program defining an advanced control, whose control inputs are designed to receive process outputs, and whose control outputs are adapted to send control signals to the process inputs, a second program to a user allows the advanced control within the process control program (which may be any desired configuration program) to be downloaded and communicated, a third program using the advanced control to give each of the process inputs energizing waveforms, a fourth program using the advanced control to do so; to capture data that reflects the response of each of the process outputs to the excitation waveforms, a fifth program that selects itself or allows a user to make a set of entries for the advanced waveform ridden control block, a sixth program defining a process model, a seventh program forming advanced control logic parameters from the process model, an eighth program introducing the advanced control logic and, if necessary, the process model into the advanced control allowing the advanced control to control the process and a ninth program choosing itself or allowing a user to use an optimizer in the advanced control block 38 select.
2 stellt
ein detaillierteres Blockschema einer Ausführungsform des fortgeschrittenen
Steuer-/Regelblocks 38 dar, der kommunikativ mit einem
Prozess 50 gekoppelt ist, wobei klar ist, dass der Steuer-/Regelblock
38 einen Satz von Stellgrößen MVs
erzeugt, die anderen Funktionsblöcken
zur Verfügung
gestellt werden, die wiederum an Steuereingänge des Prozesses 50 angeschlossen
sind. Wie in 2 FIG. 12 illustrates a more detailed block diagram of one embodiment of the advanced control block. FIG 38 communicating with a process 50 It will be appreciated that it will be understood that the control block 38 generates a set of manipulated variables MVs that are provided to other function blocks, in turn, to control inputs of the process 50 are connected. As in
2 dargestellt
ist, umfasst der fortgeschrittene Steuer-/Regelblock 38 einen
MPC-Controllerblock 52, einen Optimieren 54, einen
Zielumsetzungsblock 55, ein Schrittantwortmodell oder eine
Steuermatrix 56 und einen Eingabebearbeitungs/Filterblock 58.
Bei dem MPC-Controller 52 kann es sich um irgendeinen Standard
handeln, ein/e M-mal-M-MPC-Programm oder -prozedur (wobei M irgendeine
Zahl größer Eins
sein kann) mit derselben Anzahl von Ein- und Ausgaben. Der MPC-Controller 52 empfängt als
Eingaben einen Satz von N Steuer- und Hilfsgrößen CV und AV (welche Vektoren
von Werten sind), wie sie im Prozess 50 gemessen werden,
einen Satz von Störgrößen DV,
welche bekannte oder erwartete Änderungen
oder Störungen
sind, mit denen der Prozess 50 zu irgendeiner Zeit in der
Zukunft beaufschlagt wird, und einen Satz von Beharrungszustandsziel-
und -hilfsgrößen CVT und AVT, die vom
Zielumsetzungsblock 55 bereitgestellt werden. Der MPC-Controller 52 verwendet
diese Eingaben, um den Satz von M Stellgrößen MV (in Form von Steuersignalen)
festzulegen, und liefert die Signale der Stellgröße MV, um den Prozess 50 zu
steuern. 2 is shown, includes the advanced control block 38 an MPC controller block 52 , an optimization 54 , a target conversion block 55 , a step response model or a control matrix 56 and an input processing / filtering block 58 , In the MPC controller 52 may be any standard, an M times M MPC program or procedure (where M can be any number greater than one) with the same number of inputs and outputs. The MPC controller 52 receives as inputs a set of N control and auxiliary quantities CV and AV (which are vectors of values) as they are in the process 50 be measured, a set of disturbances DV, which are known or expected changes or disturbances with which the process 50 at any time in the future, and a set of steady state target and auxiliary variables CV T and AV T generated by the target conversion block 55 to be provided. The MPC controller 52 uses these inputs to set the set of M manipulated variables MV (in the form of control signals) and supplies the signals of the manipulated variable MV to the process 50 to control.
Darüber hinaus berechnet der MPC-Controller 52 noch
einen Satz von Vorhersagebeharrungszustandssteuergrößen CVSS und Vorhersagebeharrungszustandshilfsgrößen AVSS und stellt sie, zusammen mit einem Satz
von Vorhersagebeharrungszustandsstellgrößen MVSS,
die die Vorhersagewerte der Steuergrößen CV, der Hilfsgrößen AV bzw.
der Stellgrößen MV darstellen,
mit dem Vorhersagehorizont dem Eingabeverarbeitungs-/Filterblock 58 zur
Verfügung.
Der Eingabeverarbeitungs-/Filterblock 58 verarbeitet die
bestimmten Vorhersagebeharrungszustandswerte der Steuer-, Hilfs-
und Steilgrößen CVSS, AVSS und MVSS, um die Auswirkungen von Rauschen und
nicht vorhergesagten Störungen
auf diese Größen zu reduzieren.
Selbstverständlich
kann der Eingabeverarbeitungs-/Filterblock 58 ein Tiefpassfilter
oder irgendeine andere Eingabeverarbeitung umfassen, die die Auswirkungen
von Rauschen, Modellierungsfehler und Störungen auf diese Werte reduziert,
und liefert die gefilterten Steuer-, Hilfs- und Stellgrößen CVSSfil, AVSSfil und
MVSSfil an den Optimieren 54.In addition, the MPC controller calculates 52 even a set of prediction steady state control variables CV SS and forecast steady state auxiliary variables AV SS and provides, along with a set of prediction steady state manipulated variables MV SS representing the prediction values of the control variables CV, the auxiliary variables AV and the manipulated variables MV, the prediction horizon the Eingabeverarbeitungs- / filter block 58 to disposal. The input processing / filter block 58 processes the determined prediction steady-state values of the control, auxiliary, and rapid variables CV SS , AV SS, and MV SS to reduce the effects of noise and unpredicted noise on these quantities. Of course, the input processing / filter block 58 include a low pass filter or any other input processing that reduces the effects of noise, modeling errors, and noise on these values, and provides the filtered control, auxiliary, and manipulated variables CV SSfil , AV SSfil, and MV SSfil to the optimizers 54 ,
Der Optimierer 54 ist in
diesem Beispiel ein linear programmierender (LP) Optimierer, der
eine Zielfunktion (OF), die von einem Auswahlblock 62 bereitgestellt
werden kann, verwendet, um eine Prozessoptimierung durchzuführen. Alternativ
könnte
der Optimierer 54 ein quadratisch programmierender Optimierer sein, welcher
ein Optimierer mit einem linearen Modell und einer quadratischen
Zielfunktion ist. Allgemein ausgedrückt, legt die Zielfunktion
OF Kosten und Nutzen fest, die jeder von einer Anzahl von Steuer-,
Hilfs- und Stellgrößen zugeordnet
sind, und der Optimierer 54 stellt Zielwerte für diese
Größen ein,
indem er die Zielfunktion maximiert oder minimiert. Der Auswahlblock 62 kann
die Zielfunktion OF auswählen,
die dem Optimierer 54 als eine eines Satzes von vorabgespeicherten
Zielfunktionen 64 zur Verfügung gestellt wird, welche
auf mathematische Weise verschiedene Arten und Weisen zur Definition
des optimalen Ablaufs des Prozesses 50 darstellen. Beispielsweise
kann eine der vorabgespeicherten Zielfunktionen 64 so konfiguriert
sein, dass sie den Gewinn der Anlage maximiert, eine andere der
Zielfunktionen 64 kann so konfiguriert sein, dass sie den Einsatz
eines bestimmten Rohmaterials, bei dem Lieferknappheit herrscht,
minimiert, während
noch eine andere der Zielfunktionen 64 so konfiguriert
sein kann, dass sie die Qualität
des im Rahmen des Prozesses 50 herzustellenden Produkts
maximiert. Allgemein ausgedrückt
verwendet die Zielfunktion Kosten oder Nutzen, die mit jeder Bewegung
einer Steuer-, Hilfs- und Stellgröße zusammenhängen, um
den optimalsten Prozessoperationspunkt innerhalb eines Satzes annehmbarer
Punke zu bestimmen, wie sie durch die Sollwerte oder -bereiche der
Steuergrößen CV und
die Grenzen der Hilfs- und Stellgrößen AV und MV definiert sind.
Selbstverständlich
kann jede gewünschte
Zielfunktion anstelle der oder zusätzlich zu denjenigen verwendet
werden, die hier beschrieben sind, einschließlich von Zielfunktionen, die
jeweils mehrere Angelegenheiten wie Einsatz von Rohmaterial, Profitabilität, etc.
in gewisser Weise optimieren.The optimizer 54 in this example, is a linear programming (LP) optimizer that has an objective function (OF) that is derived from a selection block 62 can be provided used to perform a 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 speaking, the objective function OF determines costs and benefits associated with each of a number of control, auxiliaries and manipulated variables, and the optimizer 54 sets target values for these quantities by maximizing or minimizing the objective function. The selection block 62 can select the objective function OF, which is the optimizer 54 as one of a set of pre-stored objective functions 64 which mathematically provides various ways of defining the optimal course of the process 50 represent. For example, one of the pre-stored objective functions 64 be configured to maximize the asset's return, another of the objective functions 64 can be configured to minimize the use of a particular raw material that is short of supply while still another of the objective functions 64 can be configured to match the quality of the process 50 product to be maximized. Generally speaking, the objective function uses costs or benefits associated with each movement of a control, aux and manipulated variable to determine the most optimal process operation point within a set of acceptable points, as determined by the set values or ranges of the control variables CV and the limits of the control variables Auxiliary and manipulated variables AV and MV are defined. Of course, any desired objective function may be used in place of or in addition to those described herein, including objective functions, each of which optimizes several issues such as raw material usage, profitability, etc. in some way.
Um eine der Zielfunktionen 64 auszuwählen, kann
ein Benutzer oder Bediener eine Angabe zu der zu verwendenden Zielfunktion 64 machen,
indem er diese Zielfunktion auf einem Bediener- oder Nutzerterminal (wie
einem der Arbeitsplatzrechner 13 von 1) auswählt, welche Auswahl über eine
Eingabe 66 dem Auswahlblock 62 zur Verfügung gestellt
wird. Im Ansprechen auf die Eingabe 66 stellt der Auswahlblock 62 die ausgewählte Zielfunktion
OF dem Optimierer 54 zur Verfügung. Selbstverständlich kann
der Benutzer oder Bediener die Zielfunktion ändern, die während des
Prozessablaufs verwendet wird. Falls gewünscht kann eine Standardzielfunktion
in Fällen
verwendet werden, bei denen der Benutzer keine Zielfunktion bereitstellt
oder auswählt.
Eine mögliche
Standardzielfunktion wird nachstehend ausführlicher erläutert. Obwohl
sie als Teil des fortgeschrittenen Steuer-/Regelblocks 38 dargestellt
sind, können
die verschiedenen Zielfunktionen auch im Bedienerterminal 13 von 1 gespeichert sein, und
eine dieser Zielfunktionen kann dem fortgeschrittenen Steuer-/Regelblock 38 während des
Festlegens oder der Generierung dieses Blocks zur Verfügung gestellt werden.To one of the objective functions 64 a user or operator may provide an indication of the objective function to be used 64 by performing this target function on an operator or user terminal (such as one of the workstations 13 from 1 ) selects which selection via an input 66 the selection block 62 is made available. In response to the input 66 represents the selection block 62 the selected objective function OF the optimizer 54 to disposal. Of course, the user or operator may change the objective function used during the process. If desired, a default target function may be used in cases where the user does not provide or select a target function. One possible standard objective function will be explained in more detail below. Although as part of the advanced control block 38 The various target functions can also be displayed in the operator terminal 13 from 1 stored, and one of these objective functions can the advanced control block 38 be provided during the setting or generation of this block.
Zusätzlich zur Zielfunktion OF
erhält
der Optimierer 54 als Eingaben einen Satz Steuergrößensollwerte
(welche typischerweise vom Bediener festgelegte Sollwerte für die Steuergrößen CV des
Prozesses 50 sind und vom Bediener oder einem anderen Benutzer
geändert
werden können)
und einen Bereich und eine Gewichtung oder Priorität, der/die
den Steuergrößen CV jeweils
zugeordnet ist. Der Optimierer 54 erhält darüber hinaus einen Satz Bereichs-
oder Zwangsgrenzen und einen Satz Gewichtungen oder Prioritäten für die Hilfsgrößen AV und
einen Grenzensatz für
die Stellgrößen MV,
die zur Steuerung des Prozesses 50 verwendet werden. Allgemein
ausgedrückt
definieren die Bereiche für
die Hilfs- und Stellgrößen die
Grenzen (typischerweise basierend auf den physikalischen Eigenschaften
der Anlage) für
die Hilfs- und Stellgrößen, während die
Bereiche für
die Steuergrößen einen
Bereich bereitstellen, in welchem die Steuergrößen für eine zufriedenstellende Steuerung
des Prozesses wirken können.
Die Gewichtungen für
die Steuer- und Hilfsgrößen legen
die relative Wichtigkeit der Steuer- und der Hilfsgrößen im Optimierungsprozess
in Bezug aufeinander fest und können unter
gewissen Umständen
dazu verwendet werden, es dem Optimierer 54 zu ermöglichen,
eine Steuerziellösung
zu generieren, falls einige der Zwangsgrenzen verletzt werden.In addition to the objective function OF receives the optimizer 54 as inputs, a set of control variable setpoints (which are typically operator set setpoint values for the control variables CV of the process 50 and can be changed by the operator or another user) and a range and weighting or priority associated with each of the control quantities CV. The optimizer 54 also obtains a set of range or constraints and a set of weights or priorities for the auxiliary quantities AV and a set of limits for the manipulated variables MV used to control the process 50 be used. Generally speaking, the ranges for the auxiliaries and manipulated variables define the limits (typically based on the physical properties of the system) for the auxiliary and manipulated variables, while the ranges for the control variables provide a range in which the control variables for a satisfactory control of the process can act. The weights for the control and auxiliary quantities determine the relative importance of the control and auxiliary quantities in the optimization process with respect to each other, and can under some circumstances be used by the optimizer 54 to enable a control target solution to be generated if some of the constraints are violated.
Während
des Betriebs kann der Optimierer 54 eine lineare Programmiertechnik
(LP-Programmiertechnik) zur Durchführung der Optimierung verwenden.
Bekanntlich ist die lineare Programmierung ein mathematisches Verfahren
zum Lösen
eines Satzes linearer Gleichungen oder Ungleichheiten, die eine
bestimmte zusätzliche
Funktion, Zielfunktion genannt, maximiert oder minimiert. Wie zuvor
erläutert,
kann die Zielfunktion einen wirtschaftlichen Wert wie Kosten oder
Nutzen ausdrücken,
kann aber statt dessen auch andere Ziele ausdrücken. Darüber hinaus definiert, wie vorausgesetzt
wird, die Beharrungszustandsverstärkungsmatrix die Beharrungszustandsverstärkung für jedes
mögliche
Paar der Stellgrößen und
der Steuer- und Hilfsgrößen. Mit anderen
Worten definiert die Beharrungszustandsverstärkungsmatrix die Beharrungszustandsverstärkung in jeder
Steuer- und Hilfsgröße für eine Änderungseinheit
in jeder der Stell- und Störgrößen. Diese
Beharrungszustandsverstärkungsmatrix
ist im Allgemeinen eine N-mal-M-Matrix, worin N die Anzahl von Steuer-
und Hilfsgrößen und
M die Anzahl von Stellgrößen ist,
die in der Optimierungsroutine verwendet werden. Im Allgemeinen
kann N größer, gleich
oder kleiner M sein, wobei der allgemeinste Fall ist, dass N größer M ist.During operation, the optimizer can 54 use a linear programming technique (LP programming technique) to perform the optimization. As is well known, linear programming is a mathematical method for solving a set of linear equations or inequalities that maximizes or minimizes a particular additional function called the objective function. As previously explained, the objective function may express an economic value such as cost or benefit, but may instead express other goals. Moreover, as is assumed, the steady state gain matrix defines the steady state gain for each possible pair of manipulated variables and the control and auxiliary quantities. In other words, the steady state gain matrix defines the steady state gain in each control and auxiliary variable for a change unit in each of the set and disturbances. This steady state gain matrix is generally an N by M matrix, where N is the number of control and auxiliary quantities and M is the number of manipulated variables used in the optimization routine. In general, N may be greater than, equal to, or less than M, the most common case being that N is greater than M.
Unter Verwendung irgendeines bekannten
oder standardmäßigen LP-Algorithmus oder
-Verfahrens wiederholt der Optimierer 54 die Bestimmung
des Satzes von Zielstellgrößen MVT (wie sie von der Beharrungszustandsverstärkungsmatrix
bestimmt sind), welche die ausgewählte Zielfunktion OF maximieren
oder minimieren und gleichzeitig zu einem Prozessablauf führen, der
die Sollwertbereichsgrenzen der Steuergröße CV, die Zwangsgrenzen der
Hilfsgröße AV und
die Grenzen der Stellgröße MV erfüllt oder
sich innerhalb dieser befindet. In einer Ausführungsform bestimmt der Optimierer 54 sogar
die Veränderung
der Stellgrößen und
verwendet die Angabe der Vorhersagebeharrungszustandssteuergrößen, -hilfsgrößen und
-stellgrößen CVSSfil, AVSSfil und
MVSSfil, um die Veränderungen im Prozessablauf
von seinem gegenwärtigen
Ablauf zu bestimmen, d.h., den dynamischen Ablauf des MPC-Steuerprogramms
während
des Erreichungsprozesses des Ziel- oder optimalen Prozessoperationspunktes
zu bestimmen. Dieser dynamische Ablauf ist wichtig, weil sichergestellt werden
muss, dass während
der Bewegung aus dem gegenwärtigen
Operationspunkt zum Zieloperationspunkt keine der Zwangsgrenzen
verletzt wird.Using any known or standard LP algorithm or method, the optimizer repeats 54 the determination of the set of target manipulated variables MV T (as determined by the steady state gain matrix) which maximize or minimize the selected objective function OF and at the same time lead to a process flow comprising the setpoint range limits of the control variable CV, the constraints of the auxiliary variable AV and the limits of the manipulated variable MV meets or is located within this. In one embodiment, the optimizer determines 54 even the change of the manipulated variables and uses the indication of the prediction steady state control quantities, auxiliary quantities and manipulated variables CV SSfil , AV SSfil and MV SSfil to determine the changes in the process flow from its present process, ie the dynamic flow of the MPC control program during the reaching process of the target or optimal process operation point. This dynamic process is important because it ensures must be that during the movement from the current operation point to the target operating point none of the constraints is violated.
In einer Ausführungsform kann der LP-Optimierer 54 so
ausgelegt sein, dass er eine Zielfunktion der folgenden Form minimiert: Q = Pt·A·ΔMV + CtΔMVworin
Q
= Gesamtkosten/-nutzen
P = Nutzenvektor im Zusammenhang mit
den AVs und CVs
C = Kostenvektor im Zusammenhang mit MVs
A
= Verstärkungsmatrix
ΔMV = Vektor
für die
berechnete Veränderung
bei den MVsIn one embodiment, the LP optimizer 54 be designed to minimize an objective function of the following form: Q = P t · A · ΔMV + C t delta MV wherein
Q = total cost / benefit
P = utility vector in the context of the AVs and CVs
C = cost vector associated with MVs
A = gain matrix
ΔMV = vector for the calculated change in MVs
Die Nutzenwerte sind positive Zahlen
und die Kostenwerte sind negative Zahlen, um ihren Einfluss auf das
Ziel anzugeben. Unter Verwendung dieser Zielfunktion berechnet der
LP-Optimierer 54 die Veränderungen bei den Stellgrößen MV,
die die Zielfunktion minimieren, während sichergestellt wird,
dass die Steuergrößen CV innerhalb
eines Bereichs von ihrem Zielsollwert bleiben, dass sich die Hilfsgrößen AV sich
innerhalb ihrer unteren und oberen Zwangsgrenzen befinden, und dass
die Stellgrößen MV innerhalb
ihrer oberen und unteren Grenzen liegen.The utility values are positive numbers and the cost values are negative numbers to indicate their impact on the goal. Using this objective function, the LP optimizer computes 54 the changes in the manipulated variables MV that minimize the objective function while ensuring that the control variables CV remain within a range of their target setpoint, that the auxiliary variables AV are within their upper and lower constraints, and that the manipulated variables MV are within their upper limits and lower limits.
Bei einem Verfahren zur Optimierung,
das verwendet werden kann, werden Inkrementalwerte von Stellgrößen zur
momentanen Zeit (t) verwendet, und es wird eine Summe von Stellgrößen über den
Steuerhorizont verwendet, wobei die Inkrementalwerte der Steuer-
und Hilfsgrößen am Ende
des Vorhersagehorizonts und keine momentanen Stellenwerte bestimmt
werden, wie dies in LP-Anwendungen typisch ist. Selbstverständlich kann
der LP-Algorithmus für
diese Variante angemessen abgeändert
werden. Der LP-Optimierer 54 kann auf jeden Fall ein Beharrungszustandsmodell
verwenden, und im Ergebnis ist eine Beharrungszustandsbedingung
für diese
Anwendung erforderlich. Mit einem Vorhersagehorizont, wie er normalerweise
in der MPC-Entwicklung verwendet wird, ist ein zukünftiger
Beharrungszustand für
einen Selbstregelungsprozess garantiert. Eine mögliche Prozessvorhersagebeharrungszustandsgleichung
für einen
m-mal-n-Eingabe-Ausgabe-Prozess
mit einem Vorhersagehorizont p, einem Steuerhorizont c, in Inkrementalform
ausgedrückt,
ist: ΔCV(t
+ p) = A·ΔMV(t + c)worin: vorhergesagte Änderungen
in Ausgaben am Ende des Vorhersagehorizonts (t + p) bezeichnet,
der Prozessbeharrungszustand
m mal n Verstärkungsmatrix
ist, Veränderungen bei den Stellgrößen am Ende
des Steuerhorizonts (t + c) bezeichnet.In an optimization method that can be used, incremental values of manipulated variables at the current time (t) are used and a sum of manipulated variables over the control horizon is used, with the incremental values of the control and auxiliary variables at the end of the prediction horizon and no current ones As typical in LP applications. Of course, the LP algorithm for this variant can be modified appropriately. The LP optimizer 54 can definitely use a steady state model, and as a result, a steady state condition is required for this application. With a predictive horizon normally used in MPC development, a future steady state for a self-regulation process is guaranteed. One possible process prediction steady state equation for an m-by-n input-output process with a prediction horizon p, a control horizon c, expressed in incremental form, is: ΔCV (t + p) = A · ΔMV (t + c) wherein: predicted changes in outputs at the end of the forecast horizon (t + p), the process steady state is m times n gain matrix, Changes in the manipulated variables at the end of the tax horizon (t + c).
Der Vektor ΔMV(t + c) stellt die Summe der
Veränderungen über den
Steuerhorizont dar, die durch jede Controllerausgabe mvi erfolgt
ist, so dass The vector ΔMV (t + c) represents the sum of the changes over the control horizon made by each controller output mv i such that
Die Veränderungen sollten Grenzen sowohl
bei den Stellgrößen MV als
auch den Steuergrößen CV entsprechen
(hier werden die Hilfsgrößen als
Steuergrößen behandelt): MVmi
n ≤ MVmomentan + ΔMV (t + c) ≤ MVmax CVmi
n ≤ CVvorhergesagt + ΔCV(t + p) ≤ CVmax The changes should have limits both for the manipulated variables MV and the control variables CV correspond (here the auxiliary quantities are treated as control variables): MV Wed. n ≤ MV currently + ΔMV (t + c) ≤ MV Max CV Wed. n ≤ CV predicted + ΔCV (t + p) ≤ CV Max
In diesem Fall kann die Zielfunktion
zur Maximierung des Produktwerts und Minimierung der Rohmaterialkosten
gemeinsam definiert werden als: worin:
UCV
der Kostenvektor für
eine Änderungseinheit
beim Prozesswert der Steuergröße CV ist;
und
UMV der Kostenvektor für
eine Änderungseinheit
beim Prozesswert der Stellgrößen MV ist.In this case, the objective function of maximizing product value and minimizing raw material costs can be defined together as: wherein:
UCV is the cost vector for a change unit in the process value of the control variable CV; and
UMV is the cost vector for a change unit in the process value of the manipulated variables MV.
Unter Anwendung der obigen ersten
Gleichung kann die Zielfunktion in Form von Stellgrößen MV ausgedrückt werden
als: Using the above first equation, the objective function can be expressed in the form of manipulated variables MV as:
Um eine optimale Lösung zu
finden, berechnet der LP-Algorithmus die Zielfunktion für einen
anfänglichen
Scheitelpunkt in dem durch diese Gleichung definierten Bereich und
verbessert die Lösung
bei jedem nächsten
Schritt, bis der Algorithmus den Scheitelpunkt mit dem höchsten (oder
niedrigsten) Wert der Zielfunktion als optimale Lösung bestimmt.
Die bestimmten optimalen Stellgrößenwerte
werden als die Zielstellgrößen MVT, die innerhalb des Steuerhorizonts erzielt
werden sollen, angewandt.To find an optimal solution, the LP algorithm calculates the objective function for an initial vertex in the range defined by this equation, and improves the solution at each next step until the algorithm reaches the vertex with the highest (or lowest) value of the objective function optimal solution determined. The determined optimal manipulated variable values are applied as the target manipulated variables MV T to be achieved within the control horizon.
Allgemein ausgedrückt ergibt das Ablaufenlassen
des LP-Algorithmus auf der vorbereiteten Matrix drei mögliche Ergebnisse.
Erstens, es gibt eine einzige Lösung
für die
Zielstellgrößen MVT. Zweitens, die Lösung ist unbegrenzt, was nicht
der Fall sein sollte, wenn die Steuer- bzw. Hilfsgröße eine
hohe und eine niedrige Grenze hat. Drittens, es gibt keine Lösung, was
bedeutet, dass die den Hilfsgrößen auferlegten
Grenzen oder Randbedingungen zu eng sind. Um den dritten Fall zu
behandeln, können
die Randbedingungen gelockert werden, um eine Lösung zu erhalten. Die Grundannahme
besteht darin, dass die den Stellgrößen gesetzten Grenzen (hohe/niedrige
Grenzen) nicht durch den Optimierer verändert werden können. Selbiges
trifft auf die Randbedingungen oder Grenzen der Hilfsgrößen zu (hohe/niedrige
Grenzen). Dennoch kann der Optimierer davon abrücken, die Steuergröße CV auf
die festgelegten Sollwerte (CV-Sollwertsteuerung) und die Steuergrößen auf
irgendwelche anderen Werte innerhalb eines Bereichs von dem oder
um den Sollwert (CV-Bereichssteuerung) zu fahren. In diesem Fall
können
die Werte der Steuergrößen eher
in einem Bereich als an einem spezifischen Sollwert angesiedelt
werden. Gibt es mehrere Hilfsgrößen AV,
die ihre Randbedingungen verletzen und von der CV-Sollwertsteuerung
zur CV-Bereichssteuerung überspringen,
ist es auch möglich,
die Randbedingungen der Hilfsgrößen basierend
auf den vorgesehenen Gewichtungs- oder Prioritätszuweisungen zu lockern oder
zu ignorieren. In einer Ausführungsform
könnte
eine Lösung
dadurch bestimmt werden, dass der ins Quadrat umgesetzte Fehler
der Hilfsgrößen minimiert
wird, wodurch es jeder von ihnen möglich ist, ihre jeweilige Randbedingung
zu verletzen, oder durch sequentielles Aufgeben der Randbedingungen
der Hilfsgrößen mit
der niedrigsten Priorität.Generally speaking, running the LP algorithm on the prepared matrix gives three possible results. First, there is a single solution for the target manipulated variables MV T. Second, the solution is unlimited, which should not be the case if the helper size has a high and a low limit. Third, there is no solution, which means that the limits or constraints imposed on the auxiliary quantities are too narrow. To handle the third case, the constraints can be relaxed to get a solution. The basic assumption is that the limits set for the manipulated variables (high / low limits) can not be changed by the optimizer. The same applies to the boundary conditions or limits of the auxiliary quantities (high / low limits). Nevertheless, the optimizer may refrain from driving the control quantity CV to the setpoint values (CV setpoint control) and the control quantities to any other values within a range of or around the setpoint value (CV range control). In this case, the values of the control variables can be settled in a range rather than a specific setpoint. If there are several auxiliary quantities AV that violate their constraints and skip from CV setpoint control to CV range control, it is also possible to relax or ignore the constraints of the auxiliary sizes based on the provided weighting or priority assignments. In one embodiment, a solution could be determined by minimizing the squared error of the auxiliary quantities, thereby allowing each of them to violate their respective constraints, or by sequentially relinquishing the constraints of the lowest priority auxiliary variables.
Wie vorstehend festgestellt wurde,
kann die Zielfunktion OF durch das Steuer-/Regelblockgeneratorprogramm 40 ausgewählt werden
oder standardmäßig eingestellt
sein. Ein Verfahren zum Festlegen einer solchen Standardeinstellung
ist nachstehend wiedergegeben. Während
es wünschenswert
ist, die Optimierungsfähigkeit
bereitzustellen, können
es insbesondere viele Situationen erforderlich machen, dass nur
Sollwerte für die
Steuergrößen auf
eine Weise beibehalten werden, die die Ablaufrandbedingungen der
Hilfs- und Stellgrößen noch
berücksichtigt.
Für diese
Anwendungen kann der Block 38 so konfiguriert sein, dass
er einzig als MPC-Funktionsblock
wirkt. Um diese einfache Verwendung vorzusehen, kann eine standardmäßige Zielfunktion „Operate" automatisch erzeugt
werden, wobei Standardkosten den verschiedenen darin vorkommenden Größen zusammen
mit Standardgewichtungen für
die Hilfsgrößen AV zugeordnet
werden. Diese Standards können
alle Kosten für
die Hilfsgrößen AV und
die Stellgrößen MV gleich
festsetzen oder können
irgendeine andere Kostenzuordnung zu den Hilfs- und Stellgrößen AV und
MV vorsehen. Wird eine fachmännische
Option gewählt,
kann der Benutzer zusätzliche
Optimierungsselektionen festlegen und deren zugeordnete Kosten für unterschiedliche
Zielfunktionen 64 definieren. Der fachmännische Benutzer hat dann auch
die Möglichkeit,
die Gewichtungen der standardmäßigen Hilfs-
und Steuergröße AV und
CV der Standardzielfunktion abzuändern.As stated above, the objective function OF may be controlled by the control block generator program 40 be selected or set by default. A method for specifying such a default is shown below. In particular, while it is desirable to provide the optimization capability, many situations may require that only setpoint values for the control quantities be maintained in a manner that still takes into account the outflow constraints of the auxiliaries and manipulated variables. For these applications, the block 38 be configured to act solely as an MPC function block. To provide for this ease of use, a standard objective function "Operate" can be generated automatically, with standard costs being assigned to the various variables occurring therein together with standard weights for the auxiliary quantities AV These standards can set all the costs for the auxiliary quantities AV and the manipulated variables MV equal or can provide any other cost allocation to the auxiliary and manipulated variables AV and MV If a professional option is selected, the user can specify additional optimization selections and their associated costs for different objective functions 64 define. The expert user then also has the possibility to change the weights of the standard auxiliary and control variables AV and CV of the standard target function.
In einer Ausführungsform kann, wenn beispielsweise
keine wirtschaftlichen Vorgaben für die Prozesskonfiguration
definiert sind, die Zielfunktion automatisch aus der MPC-Konfiguration
aufgebaut werden. Im Allgemeinen kann die Zielfunktion unter Verwendung
der folgenden Formel aufgebaut werden:
In one embodiment, if, for example, no economic constraints for the process configuration are defined, the target function is automatically built from the MPC configuration. In general, the objective function can be built using the following formula:
Die Größen Cj und
pj können
aus den Konfigurationseinstellungen definiert werden. Insbesondere
unter der Annahme, dass der Sollwert der Steuergröße CV nur
auf LL (Low Limit) oder HL (High Limit) festgelegt werden kann,
wird der Wert pj folgendermaßen definiert:
pj = –1,
wenn der Sollwert auf niedrige Grenze festgelegt oder Minimieren
ausgewählt
wurde; und
pj = 1, wenn der Sollwert
auf hohe Grenze festgelegt oder Maximieren gewählt wurde.The sizes C j and p j can be defined from the configuration settings. In particular, assuming that the target value of the control variable CV can only be set to LL (Low Limit) or HL (High Limit), the value p j is defined as follows:
p j = -1 if the setpoint has been set to low limit or minimization has been selected; and
p j = 1 if the setpoint has been set to High Limit or Maximize has been selected.
Angenommen, es werden keine Konfigurationsdaten
für die
Hilfsgrößen AV eingegeben,
dann gilt für alle
Hilfsgrößen pj = 0. Ähnlich
hängt bei
den Stellgrößen MV der
Wert Cj davon ab, ob die bevorzugte Zielstellgröße MVT definiert ist oder nicht. Steht die bevorzugte
Zielstellgröße MVT fest, gilt:
Cj =
1, wenn MVT auf die hohe Grenze festgelegt
oder Maximieren gewählt
wurde;
Cj = –1, wenn MVT auf
die niedrige Grenze festgelegt oder Minimieren gewählt wurde,
und
Cj = 0, wenn MVT nicht
definiert ist.Assuming that no configuration data is input for the auxiliary quantities AV, then for all auxiliary quantities p j = 0. Similarly, for the manipulated variables MV, the value C j depends on whether the preferred target manipulated variable MV T is defined or not. If the preferred target manipulated variable MV T is fixed, the following applies:
C j = 1 if MV T was set to the high limit or Maximize was selected;
C j = -1, if MV T was set to the low limit or Minimize was selected, and
C j = 0 if MV T is not defined.
Falls gewünscht, kann die Auswahl der
Verwendung des Optimiereres 54 in Zusammenhang mit dem MPC-Controller 52 einstellbar
sein, um dadurch einen Optimierungsgrad bereitzustellen. Um diese
Funktion zu vollziehen, kann die Änderung bei den vom Controller 52 verwendeten
Stellgrößen MV dadurch
geändert werden,
dass auf die durch den MPC-Controller 52 und den Optimierer 54 bestimmten Änderung
bei den Stellgrößen MV unterschiedliche
Gewichtungen gelegt werden. Solch eine gewichtete Kombination der
Stellgrößen MV wird
hier als effektive MV(MVeff) bezeichnet.
Die effektive MVeff kann bestimmt werden
als: ΔMVeff = MVmpc(α/S) + ΔMVopt(1 – α)0 ≤ α ≤ 1, worin
S willkürlich
oder heuristisch ausgewählt
ist. Typischerweise ist 5 größer als
Eins und kann sich im Bereich von Zehn befinden.If desired, the choice of using the optimizer 54 in connection with the MPC controller 52 be adjustable to thereby provide an optimization level. To perform this function, the change may be made by the controller 52 used manipulated variables MV changed by that on the by the MPC controller 52 and the optimizer 54 certain changes in the manipulated variables MV different weights are placed. Such a weighted combination of the manipulated variables MV is referred to here as effective MV (MV eff ). The effective MV eff can be determined as: delta MV eff = MV mpc (α / S) + ΔMV opt (1 - α) 0 ≦ α ≦ 1, where S is selected arbitrarily or heuristically. Typically, 5 is greater than one and may be in the region of ten.
Hier trägt der Optimierer mit α = 0 zur
effektiven Ausgabe bei, wie sie bei der Festlegung eingestellt wurde.
Mit α =
1 trägt
der Controller nur eine dynamische MPC-Steuerung bei. Natürlich liefert
der Bereich zwischen 0 und 1 unterschiedliche Optimierer- und MPC-Steuerungsbeiträge.Here the optimizer increases with α = 0
effective output at how it was set when setting.
With α =
1 carries
the controller only adds a dynamic MPC control. Of course supplies
the range between 0 and 1 different optimizer and MPC control contributions.
Die vorstehend beschriebene Standardzielfunktion
kann dazu eingesetzt werden, den Ablauf des Optimierers in verschiedenen
möglichen
Betriebsarten von diesem herzustellen. Insbesondere wenn die Anzahl der
Steuergrößen CV zur
Anzahl der Stellgrößen MV passt,
ist das erwartete Verhalten bei der Standardeinstellung, dass die
Sollwerte der Steuergröße CV so
lange beibehalten werden, solange die Hilfsgrößen AV und Stellgrößen MV voraussichtlich
innerhalb ihrer Grenzen liegen. Wird vorausgesagt, dass eine Hilfsgröße oder eine
Stellgröße ihre
Grenze verletzen wird, werden die Steuergrößenarbeitssollwerte innerhalb
ihres Bereichs verändert,
um zu verhindern, dass diese Grenzen verletzt werden. Falls in diesem
Fall der Optimierer 54 keine Lösung finden kann, die die Hilfs-
und Stellgrößengrenzen
einhält,
während
gleichzeitig die Steuergrößen innerhalb
ihres Bereichs gehalten werden, werden die Steuergrößen in ihrem
Bereich gehalten, während
die Hilfsgrößen von
ihren Zwangsgrenzen abweichen dürfen.
Beim Finden der besten Lösung
werden dann diejenigen Hilfsgrößen AV,
die voraussichtlich eine Grenze verletzen, gleich behandelt und
ihre durchschnittliche Grenzabweichung wird minimiert.The standard objective function described above can be used to produce the optimizer's operation in various possible modes of operation. In particular, if the number of control variables CV matches the number of manipulated variables MV, the expected behavior in the default setting is that the setpoint values of the control variable CV are maintained as long as the auxiliary variables AV and manipulated variables MV are expected to be within their limits. If it is predicted that an auxiliary quantity or manipulated variable will violate its limit, the control variable work setpoints will be changed within their range to prevent these limits from being violated. If in this case the optimizer 54 can find no solution that adheres to the auxiliary and manipulated variable limits, while at the same time the control variables are kept within their range, the control variables are kept within their range, while the auxiliary variables may deviate from their constraints. In finding the best solution, then those auxiliary quantities AV likely to violate a boundary are treated equally and their average limit deviation is minimized.
Um dieses Verhalten zu erreichen,
werden die von der Zielfunktion verwendeten standardmäßigen Kosten/Nutzen
automatisch derart eingestellt, dass die Steuergrößen CV einen
Nutzen von 1 zugeteilt bekommen, wenn der Bereich so definiert ist,
dass er ein Abweichung unter den Sollwert zulässt, und einen Nutzen von –1, wenn
der Bereich so definiert ist, dass er eine Abweichung über den
Sollwert zulässt.
Die innerhalb der Grenzen befindlichen Hilfsgrößen AV bekommen einen Nutzen
von 0 und die Stellgrößen Kosten
von 0 zugeteilt.To achieve this behavior,
become the standard costs / benefits used by the objective function
automatically adjusted so that the control variables CV a
Get assigned benefits of 1 if the area is defined as
that it allows a deviation below the set point, and a benefit of -1 if
the area is defined as having a deviation over the
Setpoint permits.
The auxiliary quantities AV within the limits are used
from 0 and the manipulated variables cost
allocated from 0.
Ist die Anzahl der Steuergrößen CV geringer
als die Anzahl der Stellgrößen MV,
dann können
die zusätzlichen
Freiheitsgrade genutzt werden, um sich der Erfordernisse anzunehmen,
die mit der endgültigen
Ruheposition der konfigurierten Stellgröße MV zusammenhängen. Hier
werden die Steuergrößensollwerte
(falls Steuergrößen CV definiert
sind) solange beibehalten, wie die Hilfs- und Stellwerte voraussichtlich
innerhalb ihrer Grenzen bleiben werden. Die Durchschnittsabweichung
der Stellgrößen von
der konfigurierten endgültigen Ruheposition
wird minimiert. Wird vorausgesagt, dass eine oder mehrere der Hilfs-
und Stellgrößen ihre
Grenze verletzen wird/werden, dann werden die Steuergrößenarbeitssollwerte
innerhalb ihrer Bereiche geändert, um
zu verhindern, dass diese Grenzen verletzt werden. Falls es unter
dieser Bedingung-mehrere Lösungen gibt,
dann wird diejenige, die zur Steuerung verwendet wird, die Durchschnittsabweichung
der Stellgrößen von der
konfigurierten endgültigen
Ruheposition minimieren.Is the number of control variables CV lower
as the number of manipulated variables MV,
then can
the additional
Degrees of freedom are used to meet the requirements,
with the final
Rest position of the configured manipulated variable MV related. Here
become the control variable setpoints
(if control variables CV defined
are retained as long as the auxiliary and control values are expected
stay within their limits. The average deviation
the manipulated variables of
the configured final resting position
is minimized. It is predicted that one or more of the auxiliary
and their manipulated variables
Limit will / will violate, then the control variable work setpoints
changed within their areas to
to prevent these limits from being violated. If it is under
this condition gives several solutions,
then the one used for the control becomes the average deviation
the manipulated variables of the
configured final
Minimize resting position.
Kann der Optimierer 54 keine
Lösung
finden (d.h. es gibt keine Lösung),
die die Hilfs- und Stellgrößengrenzen
einhält
und gleichzeitig die Steuergrenzen innerhalb ihres Bereichs hält, dann
werden die Steuergrößen innerhalb
des Bereichs gehalten, während
die Hilfsgrößen von
ihren Zwangsgrenzen abweichen dürfen. Beim
Finden der besten Lösung
werden dann diejenigen Hilfsgrößen, die
voraussichtlich eine Grenze verletzen, gleich behandelt und ihre
durchschnittliche Grenzabweichung wird minimiert. Um dieses Verhalten
zu erreichen, werden die von der Zielfunktion verwendeten standardmäßigen Kosten/Nutzen
automatisch derart eingestellt, dass die Steuergrößen einen
Nutzen von 1 zugeteilt bekommen, wenn der Bereich so definiert ist, dass
er eine Abweichung unter den Sollwert zulässt, und einen Nutzen von –1, wenn
der Bereich so definiert ist, dass er eine Abweichung über den
Sollwert zulässt.
Die Hilfsgrößen bekommen
einen Nutzen von 1 oder –1
und die Stellgrößen Kosten
von 0,1 zugeteilt.Can the optimizer 54 find no solution (ie there is no solution), the auxiliary and manipulated variables adherence to limits and at the same time keeps the tax limits within its range, then the control variables are kept within the range, while the auxiliary quantities may deviate from their constraints. When finding the best solution, then those helper sizes likely to violate a boundary are treated equally and their average limit deviation is minimized. To accomplish this behavior, the standard cost / benefits used by the objective function are automatically adjusted such that the control values are assigned a benefit of 1, if the range is defined to allow deviation below the setpoint, and a benefit of -1 if the range is defined to allow deviation from the setpoint. The auxiliary quantities get a benefit of 1 or -1 and the manipulated variables are allocated costs of 0.1.
Jedenfalls stellt nach dem Ablauf
der Optimierer 54 dem Zielumsetzungsblock 55 einen
Satz optimaler oder Zielstellgrößen MVT zur Verfügung, der die Beharrungszustandsverstärkungsmatrix
verwendet, um die Zielbeharrungszustandssteuergrößen und -hilfsgrößen zu bestimmen,
die sich aus den Zielstellgrößen MVT ergeben. Diese Umsetzung ist rechnerisch
problemlos, da die Beharrungszustandsverstärkungsmatrix die Wechselwirkungen
zwischen den Stellgrößen und
den Steuer- und Hilfsgrößen definiert
und dadurch dazu eingesetzt werden kann, einzig die Zielsteuergrößen und
-hilfsgrößen CVT und AVT aus den
definierten Ziel(beharrungszustands)stellgrößen MVT zu
bestimmen.Anyway, after the expiration of the optimizer 54 the target conversion block 55 provides a set of optimal or target manipulated variables MV T which uses the steady state gain matrix to determine the target steady state control quantities and auxiliaries resulting from the target manipulated variables MV T. This implementation is computationally straightforward, since the steady state gain matrix defines the interactions between the manipulated variables and the control and auxiliary quantities and thereby can be used to only the target control variables and auxiliary variables CV T and AV T from the defined target (steady state) variables MV T determine.
Wenn sie erst bestimmt sind, wird
mindestens eine Teilmenge N der Zielsteuergrößen und -hilfsgrößen CVT und AVT dem MPC-Controller 52 als
Eingaben zu Verfügung
gestellt, welcher, wie zuvor festgestellt, diese Zielwerte CVT und AVT dazu verwendet,
um einen neuen Satz von Beharrungszustandsstellgrößen MVss
(über den
Steuerhorizont) zu bestimmen, welcher die gegenwärtigen Steuer- und Hilfsgrößen CV und
AV am Ende des Vorhersagehorizonts auf die Zielwerte CVT und
AVT fährt.
Natürlich
verändert
der MPC-Controller bekanntlich die Stellgrößen in Schritten, in einem
Versuch, die Beharrungszustandswerte für diese Größen MVss zu erreichen, die
theoretisch die vom Optimierer 54 bestimmten Zielstellgrößen MVT sein werden. Da der Optimierer 54 und
MPC-Controller 52 wie zuvor beschrieben während jeder
Prozessabtastung in Betrieb sind, können sich die Zielwerte der
Stellgrößen MVT von Abtastung zu Abtastung ändern, und
im Ergebnis kann der MPC-Controller niemals einen bestimmten dieser
Sätze von
Zielstellgrößen MVT wirklich erreichen, insbesondere dann nicht,
wenn Rauschen, unerwartete Störungen, Änderungen
im Prozess 50, etc. hinzukommen. Dennoch treibt der Optimierer 54 den
Controller 52 immer dazu an, die Stellgrößen MV zu
einer optimalen Lösung
hin zu bewegen.Once determined, at least a subset N of the target control quantities and auxiliary variables CV T and AV T become the MPC controller 52 As previously stated, these target values CV T and AV T are used to determine a new set of steady state manipulated variables MVss (over the control horizon) which matches the current control and auxiliary quantities CV and AV at the end of the Prediction horizon on the target values CV T and AV T drives. Of course, the MPC controller is known to alter the manipulated variables in steps, in an attempt to achieve the steady state values for these MVsss, theoretically those of the optimizer 54 certain target variables MV T be. Because the optimizer 54 and MPC controllers 52 are as described above during each process scan in operation, the target values of the manipulated variables MV T of scanning can change to sampling, as a result of the MPC controller can never really reach a certain of these sets of target manipulated variables MV T, especially not if noise , unexpected errors, changes in the process 50 , etc. are added. Nevertheless, the optimizer is driving 54 the controller 52 always to move the manipulated variables MV to an optimal solution.
Der MPC-Controller 52 umfasst
bekanntermaßen
ein Steuerprozessvorhersagemodell 70, welches eine N mal
M+D-Schrittantwortmatrix sein kann (in der N die Anzahl der Steuergrößen CV zuzüglich der
Anzahl der Hilfsgrößen AV ist,
M die Anzahl der Stellgrößen MV und
D die Anzahl der Störgrößen DV ist).
Das Steuerprozessvorhersagemodell 70 erzeugt in einer Ausgabe 72 eine
zuvor berechnete Vorhersage für
jede der Steuer- und Hilfsgrößen CV und
AV, und ein Vektorsummierer 74 subtrahiert diese Vorhersagewerte
für die aktuelle
Zeit von den tatsächlich
gemessenen Werten der Steuer- und Hilfsgrößen, um in der Eingabe 76 einen Fehler-
oder Korrekturvektor zu erzeugen.The MPC controller 52 As is known, it includes a control process prediction model 70 which may be an N by M + D step response matrix (where N is the number of control variables CV plus the number of auxiliary quantities AV, M is the number of manipulated variables MV and D is the number of disturbances DV). The control process prediction model 70 generated in an output 72 a previously calculated prediction for each of the control and auxiliary quantities CV and AV, and a vector summer 74 subtracts these current time prediction values from the actual measured values of the control and auxiliary quantities to input 76 to generate an error or correction vector.
Das Steuerprozessvorhersagemodell 70 verwendet
dann die N mal M+D-Schrittantwortmatrix,
um für jede
der Steuer- und Hilfsgrößen CV und
AV einen zukünftigen
Steuerparameter über
den Vorhersagehorizont basierend auf den Stör- und Stellgrößen vorherzusagen, die anderen
Eingaben des Steuerprozessvorhersa gemodells 70 bereitgestellt
werden. Das Steuerprozessvorhersagemodell 70 liefert auch
die Vorhersagebeharrungszustandswerte der Steuer- und Hilfsgrößen CVSS und AVSS an den
Eingabeverarbeitungs-/Filterblock 58.The control process prediction model 70 then uses the N by M + D step response matrix to predict, for each of the control and auxiliary quantities CV and AV, a future control parameter over the prediction horizon based on the disturbance and manipulated variables, the other inputs of the control process prediction model 70 to be provided. The control process prediction model 70 also provides the prediction values of the steady state control and auxiliary variables CV and AV SS SS on the Eingabeverarbeitungs- / filter block 58 ,
Ein Zielsteuer-/Regelblock 80 bestimmt
einen Zielsteuervektor für
jede der N ihm vom Zielumsetzungsblock 55 unter Verwendung
eines zuvor für
den Block 38 erstellten Trajektorienfilters 82 zur
Verfügung gestellten
Zielsteuergrößen und
-hilfsgrößen CVT und AVT. Das Trajektorienfilter
liefert insbesondere einen Einheitsvektor, der die Art und Weise
festlegt, mit der die Steuer- und Hilfsgrößen mit der Zeit auf ihre Zielwerte gefahren
werden sollen. Der Zielsteuer-/Regelblock 80 verwendet
diesen Einheitsvektor und die Zielgrößen CVT und
AVT, um einen dynamischen Zielsteuervektor
für jede
der Steuer- und Hilfsgrößen zu erzeugen,
der die Veränderungen
bei den Zielgrößen CVT und AVT über den
Zeitraum definiert, der durch die Zeit des Vorhersagehorizonts festgelegt
ist. Ein Vektorsummierer 84 subtrahiert dann den zukünftigen
Steuerparametervektor für
jede der Steuer- und Hilfsgrößen CV und
AV von den dynamischen Steuervektoren, um einen Fehlervektor für jede der
Steuer- und Hilfsgrößen CV und
AV zu definieren. Der zukünftige
Fehlervektor für
jede der Steuer- und Hilfsgrößen CV und
AV wird dann dem MPC-Algorithmus zur Verfügung gestellt, der so wirkt, dass
er die Schritte der Stellgröße MV auswählt, die
beispielsweise den kleinsten ins Quadrat umgesetzten Fehler über den
Steuerhorizont für
die Stellgrößen MV und
den Vorhersagehorizont für
die Steuer- und Hilfsgrößen CV und
AV minimiert. Selbstverständlich
verwendet der MPC-Algorithmus oder -Controller ein M-mal-M-Prozessmodell
oder eine Mmal-M-Steuermatrix, das/die aus den Verhältnissen
zwischen den N in den MPC-Controller 52 eingegebenen
Steuer- und Hilfsgrößen und
den M vom MPC-Controller 52 ausgegebenen
Stellgrößen gebildet
wird.A destination control block 80 determines a target control vector for each of the N from the target conversion block 55 using one previously for the block 38 created trajectory filter 82 provided target control variables and auxiliary variables CV T and AV T. In particular, the trajectory filter provides a unit vector that determines the manner in which the control and auxiliary variables are to be driven to their target values over time. The destination control block 80 uses this unit vector and the target values CV T and AV T to generate a dynamic target control vector for each of the control and auxiliary quantities that defines the changes in the target values CV T and AV T over the period of time determined by the time of the prediction horizon , A vector sizer 84 then subtracts the future control parameter vector for each of the control and auxiliary quantities CV and AV from the dynamic control vectors to define an error vector for each of the control and auxiliary quantities CV and AV. The future error vector for each of the control and auxiliary quantities CV and AV is then provided to the MPC algorithm, which acts to select the steps of the manipulated variable MV, such as the least squared error over the control horizon for the manipulated variables MV and the prediction horizon for the control and auxiliary variables CV and AV minimized. Of course, the MPC algorithm or controller uses an M by M process model or a Mmal M control matrix, which is the ratio between the N in the MPC controller 52 entered control and auxiliary quantities and the M from the MPC controller 52 output manipulated variables is formed.
Genauer ausgedrückt hat der mit dem Optimierer
arbeitende MPC-Algorithmus zwei Hauptziele. Erstens versucht der
MPC-Algorithmus, den Steuergrößensteuerfehler
mit minimalen Stellgrößenbewegungen
innerhalb von Opeationsrandbedingungen zu minimieren, und versucht
zweitens, optimale Beharrungszustandsstellgrößenwerte, die vom Optimierer
eingestellt werden und die Zielsteuergrößenwerte zu erzielen, die direkt
aus den optimalen Beharrungszustandsstellgrößenwerten berechnet werden.More specifically, the optimizer MPC algorithm has two main goals. First, the MPC algorithm attempts to reduce the control size control error with minimal manipulated variable movements in secondly, to minimize optimum steady state setpoint values set by the optimizer and the target control size values calculated directly from the optimal steady state setpoint values.
Um diesen Zielen Genüge zu tun,
kann der ursprüngliche
unbeschränkte
MPC-Algorithmus so erweitert werden, dass er die MV-Ziele in der
kleinsten Quadratlösung
einschließt.
Die Zielfunktion für
diesen MPC-Controller ist: worin:
CV(k) der gesteuerte,
ausgegebene Vorhersagevektor ist, der um einen p-Schritt voraus ist;
R(k) der Referenztrajektorien(sollwert)vektor
ist, der um einen p-Schritt voraus ist;
ΔMV(k) der inkrementale Steuerbewegungsvektor
ist, der um einen c-Schritt voraus ist;
Γy =
diag{Γy
1, ..., Γy
p} eine Penalty-Matrix für den gesteuerten Ausgabefehler
ist, Γu = diag{Γu
1, ..., Γu
c} eine Penalty-Matrix für die Steuerbewegungen ist,
p
der Vorhersagehorizont (Schrittanzahl) ist;
c der Steuerhorizont
(Schrittanzahl) ist; und Γ0 eine Penalty für den Fehler der Controllerausgabenbewegungen über den
Steuerhorizont in Relation zur optimalen Zielveränderung von MV, die vom Optimierer
definiert wurde. Der einfacheren Darstellung halber ist die Zielfunktion
für eine
Einzeleingabe-/Einzelausgabesteuerung (SISO-Steuerung) gezeigt.To satisfy these goals, the original unrestricted MPC algorithm can be extended to include the MV targets in the least square solution. The objective function for this MPC controller is: wherein:
CV (k) is the controlled output prediction vector that is one p-step ahead;
R (k) of the reference trajectories (setpoint) is vector ahead of a p-step;
ΔMV (k) is the incremental control motion vector ahead by one c-step;
Γ y = diag {Γ y 1 , ..., Γ y p } is a penalty matrix for the controlled output error, Γ u = diag {Γ u 1 , ..., Γ u c } is a penalty matrix for the Tax movements is,
p is the forecast horizon (number of steps);
c is the tax horizon (number of steps); and Γ 0 a penalty for the controller output movement error over the control horizon in relation to the optimal target change of MV defined by the optimizer. For ease of illustration, the objective function for single input / single output (SISO) control is shown.
Wie klar wird, sind die ersten beiden
Terme die Zielfunktion für
den unbeschränkten
MPC-Controller, während
der dritte Term eine zusätzliche
Bedingung aufstellt, die die Summe der Controllerausgabenbewegungen
den Optimalzielen gleich setzt. Mit anderen Worten stellen die ersten
beiden Terme Ziele für
einen dynamischen Controllerbetrieb auf, während der dritte Term Beharrungszustandsoptimierungsziele
aufstellt.As it becomes clear, the first two
Terme the objective function for
the unrestricted
MPC controller while
the third term is an additional one
Condition that sets the sum of the controller output movements
equals the optimal goals. In other words, the first
both terms goals for
a dynamic controller operation on, while the third term steady state optimization goals
sets up.
Es ist festzuhalten, dass die allgemeine
Lösung
für diesen
Controller, ähnlich
derjenigen für
den unbeschränkten
MPC-Controller, folgendermaßen
ausgedrückt
werden kann: worin:
ΔMV(k) die
Veränderung
bei der MPC-Controllerausgabe zu einem Zeitpunkt k ist;
Kompc die optimierte MPC-Controllerverstärkung ist;
Su ist die Prozessdynamikmatrix, die aus den
Schrittantworten der Dimension p × c für ein SISO-Modell und p*n × c*m für ein Mehrfacheingabe-/Mehrfachausgabe-MIMO-Modell
mit m gestellten Eingaben und n gesteuerten Ausgaben aufgebaut ist.It should be noted that the general solution for this controller, similar to that for the unrestricted MPC controller, can be expressed as follows: wherein:
ΔMV (k) is the change in the MPC controller output at a time k;
K ompc is the optimized MPC controller gain ;
S u is the process dynamics matrix made up of the step responses of the dimension p × c for a SISO model and p * n × c * m for a multi-input / multi-output MIMO model with m inputs and n controlled outputs.
Für
eine optimierte MPC wird die Dynamikmatrix auf die Größe (p +
1) × m
für das
SISO-Modell und (p + m)*n × c*
für das
MIMO-Modell erweitert, um den MV-Fehler unterzubringen. Ep+1(k) ist der CV-Fehlervektor über den
Vorhersagehorizont und der Fehler der Summe der Controllerausgabenbewegungen über den Steuerhorizont
bezogen auf die optimale Zielveränderung
von MV. Die Matrix T fasst die Matrix Γy und Γ0 zusammen
und ist eine Quadratmatrix der Dimension (p + 1) für einen
SISO-Controller und [n(p + m)] für
den multivariablen Controller. Das hochgestellte T bezeichnet eine
transponierte Matrix.For an optimized MPC, the dynamics matrix is extended to the size (p + 1) × m for the SISO model and (p + m) * n × c * for the MIMO model to accommodate the MV error. E p + 1 (k) is the CV error vector over the forecast horizon and the error of the sum of the controller output movements over the control horizon related to the optimal target change of MV. The matrix T summarizes the matrix Γ y and Γ 0 and is a square matrix of the dimension (p + 1) for a SISO controller and [n (p + m)] for the multivariable controller. The superscript T denotes a transposed matrix.
Es wurde bestimmt, dass, da der Optimierer 54 basierend
auf allen Steuer- und
Hilfsgrößen CV und AV
optimiert, um einen Zielsatz von Stellgrößen MVT zu
bestimmen, die einen einzigen optimalen Operationspunkt definieren,
es nichts ausmacht, dass der MPC-Controller 52 nur unter
Verwendung einer Teilmenge der Steuer- und Hilfsgrößen CV und
AV in seiner Steuermatrix arbeitet, um die daraus ausgegebenen Stellgrößen tatsächlich herzustellen,
weil, wenn der Controller 52 die ausgewählte Teilmenge von Steuer-
und Hilfsgrößen CV und
AV auf ihre zugeordneten Ziele fährt,
die anderen des kompletten Satzes der Steuer- und Hilfsgrößen sich
auch auf ihren Zielwerten befinden werden. Im Ergebnis wurde festgestellt,
dass ein quadratischer (M mal M) MPC-Controller mit einer M-mal-M- Steuermatrix mit
einem Optimierer verwendet werden kann, der ein rechteckiges (N
mal M) Prozessmodell zur Durchführung
von Prozessoptimierung verwendet. Dies macht es möglich, dass
standardmäßige MPC-Steuerverfahren
mit standardmäßigen Optimierungsverfahren
verwendet werden können,
ohne eine nicht quadratische Matrix mit den damit einhergehenden
Approximationen und den Gefahren, die mit solchen Umsetzungsverfahren
bei einem Controller verbunden sind, invertieren zu müssen.It was determined that, since the optimizer 54 based on all control and auxiliary quantities CV and AV optimized to determine a target set of manipulated variables MV T , which define a single optimal operation point, it does not matter that the MPC controller 52 only using a subset of the control and auxiliary variables CV and AV in its control matrix to actually produce the manipulated variables output therefrom, because if the controller 52 the selected subset of control and auxiliary quantities CV and AV will travel to their assigned destinations, the others of the complete set of control and auxiliary quantities will also be at their target values. As a result, it was found that a quadratic (M by M) MPC controller with an M by M control matrix can be used with an optimizer using a rectangular (N by M) process model to perform process optimization. This allows standard MPC control methods to be used with standard optimization techniques without having to invert a non-square matrix with the concomitant approximations and hazards associated with such controller conversion techniques.
In einer Ausführungsform kann die Zielstellgröße MV, wenn
der MPC-Controller
quadriert ist, d.h. die Anzahl der Stellgrößen MV gleich der Anzahl der
Steuergrößen CV ist,
wirksam durch Änderungen
bei den CV-Werten wie folgt erzielt werden: ΔCV = A*ΔMVTΔMVT - optimale
Zielveränderung
von MV
ΔCV – CV-Veränderung
zur Erlangung einer optimalen MV. CV-Veränderung wird implementiert,
indem CV-Sollwerte verwendet werden.In one embodiment, when the MPC controller is squared, ie, the number of manipulated variables MV is equal to the number of control variables CV, the target manipulated variable MV can be effectively achieved by changing the CV values as follows: ΔCV = A * ΔMVT ΔMVT - optimal target change of MV
ΔCV - CV change to obtain optimal MV. CV modification is implemented using CV setpoints.
Im Betrieb stellt der Optimierer 54 Beharrungszustandsziele
für den
unbeschränkten
MPC-Controller bei jeder Abtastung auf und aktualisiert sie. Somit
führt der
MPC-Controller 52 den unbeschränkten Algorithmus durch. Da
die Ziele CVT und AVT auf
eine Weise festgelegt werden, die Randbedingungen so lange berücksichtigt,
wie eine machbare Lösung
besteht, arbeitet der Controller innerhalb von Zwangsgrenzen. Deshalb
ist Optimierung ein integraler Bestandteil des MPC-Controllers.In operation, the optimizer provides 54 Steady state targets for the unrestricted MPC controller at each scan and update them. Thus, the MPC controller performs 52 the unrestricted algorithm. Since the targets CV T and AV T are determined in a way that considers constraints as long as a feasible solution exists, the controller operates within constraints. Therefore, optimization is an integral part of the MPC controller.
Die 3 und 4 stellen ein Ablaufdiagramm 90 dar,
das die Schritte zeigt, die zu Durchführung einer integrierter Modellvorhersagesteuerung
und -optimierung erfolgen. Das Ablaufdiagramm 90 ist allgemein
in zwei Abschnitte 90a (3)
und 90b (4)
aufgeteilt, die Funktionen zeigen, die vor dem Prozessablauf in Erscheinung
treten (90a), und Funktionen, die während des Prozessablaufs in
Erscheinung treten (90b), z.B. während jedes Abtastens des Prozessablaufs.
Vor dem Prozessablauf ergreift ein Bediener oder Techniker eine
Anzahl von Schritten, um den fortgeschrittenen Steuer-/Regelblock 38 einschließlich eines
integrierten MPC-Controllers und Optimierers herzustellen. Insbesondere
kann bei einem Block 92 eine fortgeschrittene Steuervorlage
zu Verwendung als fortgeschrittener Steuer-/Regelblock 38 ausgewählt werden.
Die Vorlage kann in einer Bibliothek in einer Konfigurationsanwendung
auf der Benutzeroberfläche 13 gespeichert
oder daraus kopiert werden, und kann die allgemeinen mathematischen
und logischen Funktionen des MPC-Controllerprogramms 52 und
des Optimiereres 54 enthalten, ohne die speziellen MPC-,
Prozessmodelle und Beharrungszustandsverstärkungs- oder Steuermatrizes
und die spezielle Zielfunktion. Diese fortgeschrittene Steuervorlage
kann in einem Modul mit anderen Blöcken hinterlegt werden, wie
Eingabe- und Ausgabeblöcken,
die so konfiguriert sind, dass sie mit Geräten innerhalb des Prozesses 50,
sowie anderen Typen von Funktionsblöcken wie Steuer-/Regelblöcken, einschließlich PID-,
neuronalen Netz- und Fuzzy-Regelblöcken kommunizieren. Es wird
klar, dass in einer Ausführungsform
die Blöcke
innerhalb eines Moduls jeweils Gegenstände in einem objektorientierten
Programmierparadigma sind, deren Einund Ausgaben miteinander verbunden
sind, um eine Kommunikation zwischen den Blöcken zu bewerkstelligen. Während des
Ablaufs führt
der Prozessor, der das Modul bearbeitet, jeden der Blöcke der
Reihe nach zu einer anderen Zeit durch, und verwendet die Eingaben
in die Blöcke,
um Ausgaben aus den Blöcken
zu erzeugen, die dann den Eingaben anderer Blöcke wie durch die festgelegten
Kommunikationsverbindungen zwischen den Blöcken definiert zur Verfügung gestellt
werden.The 3 and 4 set a flowchart 90 which shows the steps taken to perform integrated model prediction control and optimization. The flowchart 90 is generally in two sections 90a ( 3 ) and 90b ( 4 ), which show functions that appear before the process flow ( 90a ), and functions that appear during the process ( 90b ), eg during each sampling of the process sequence. Prior to the process flow, an operator or technician takes a number of steps to complete the advanced control block 38 including an integrated MPC controller and optimizer. In particular, at a block 92 an advanced control template may be selected for use as advanced control block 38. The template may be in a library in a configuration application in the UI 13 can be stored or copied from it, and the general mathematical and logical functions of the MPC controller program 52 and the optimizer 54 without the special MPC, process models and steady state boost or control matrices and special target function. This advanced control template can be stored in a module with other blocks, such as input and output blocks, that are configured to interface with devices within the process 50 , as well as other types of functional blocks such as control blocks, including PID, neural network and fuzzy control blocks. It will be appreciated that in one embodiment, the blocks within a module are each objects in an object-oriented programming paradigm whose in and outputs are interconnected to accomplish communication between the blocks. During the process, the processor that processes the module performs each of the blocks in turn at a different time, and uses the inputs to the blocks to produce outputs from the blocks, which are then input to other blocks as determined by the blocks Communication links defined between the blocks are provided.
Bei einem Block 94 legt
der Bediener die speziellen Stellgrößen, Steuergrößen, Randbedingungsgrößen und
Störgrößen fest,
die im Block 38 verwendet werden sollen. Falls gewünscht, kann
der Benutzer in einem Konfigurationsprogramm wie dem Programm 40 von 1, die Steuervorlage sichten,
Ein- und Ausgaben, die benannt und konfiguriert werden sollen, auswählen, irgendwelche
Standardbrowser in der Konfigurationsumgebung durchsuchen, um die
aktuellen Eingabenund Ausgaben innerhalb des Steuersystems zu finden
und diese aktuellen Steuergrößen als
Eingabe- und Ausgabesteuergrößen für die Steuervorlage
auszuwählen. 5 stellt eine Bildschirmanzeige
dar, die von einem Konfigurationsprogramm erzeugt wurde, die ein Steuermodul
DEB_MPC mit mehreren untereinander verbundenen Funktionsblöcken einschließlich mehrerer Funktionsblöcke mit
analogem Eingang (AI) und analogem Ausgang (AO) zeigt, mehrere PID-Regelfunktionsblöcke und
einen MPC-PRO-Funktionsblock, welcher ein fortgeschrittener Funkti onsblock
ist. Die Baumstruktur auf der linken Seite der Anzeige von 5 stellt die Funktionsblöcke innerhalb
des DEB_MPC-Moduls dar, die beispielsweise den Block 1,
C4_AI, C4_DGEN, etc. umfassen.At a block 94 The operator specifies the special manipulated variables, control variables, boundary conditions and disturbance variables that are displayed in the block 38 should be used. If desired, the user can in a configuration program such as the program 40 from 1 , sift through the control template, select inputs and outputs to be named and configured, browse any standard browsers in the configuration environment to find the current inputs and outputs within the control system, and select these current control values as control template input and output controls. 5 Fig. 11 is a screen generated by a configuration program showing a DEB_MPC control module with several interconnected functional blocks including multiple analog input (AI) and analog output (AO) function blocks, multiple PID control function blocks, and one MPC PRO function block. which is an advanced function block. The tree structure on the left side of the display of 5 represents the function blocks within the DEB_MPC module, for example the block 1 , C4_AI, C4_DGEN, etc.
Wie klar wird, kann der Benutzer
die Eingaben in und Ausgaben aus dem MPC-PRO-Funktionsblock festlegen,
indem er zwischen diesen Ein- und Ausgaben und den Ein- und Ausgaben
anderer Funktionsblöcke Linien
zieht. Alternativ kann der Benutzer den MPC-PRO-Block auswählen, um
Zugriff auf die Eigenschaften des MPC-PRO-Blocks zu erhalten. Ein
Dialogfeld wie dasjenige von 6,
kann angezeigt werden, um es einem Benutzer zu ermöglichen,
die Eigenschaften des MPC-PRO-Blocks
anzuschauen. Wie in 6 dargestellt
ist, kann für
jede der Steuer-, Stell-, Stör-
und Randbedingungsgrößen (Hilfsgrößen) eine
andere Tabelle vorgesehen sein, um diese Größen zu ordnen, was insbesondere
dann notwendig ist, wenn zahlreiche Größen wie 20 oder mehr von jeder,
dem fortschrittlichen Steuer/Regelblock 38 zugeordnet sind.
Innerhalb der Tabelle für
eine bestimmte Art von Größe kann
eine Beschreibung, eine niedrige und hohe Grenze (Randbedingungen)
und eine Pfadbezeichnung vorgesehen sein. Zusätzlich kann der Benutzer oder
Bediener festlegen, was der Block im Falle einer verfehlten Bedingung
mit der Größe machen
soll, wie beispielsweise keine Maßnahme zu ergreifen, den simulierten
Wert der Größe anstatt
des gemessenen Werts zu verwenden oder eine manuelle Eingabe zuzulassen. Überdies
kann der Bediener auch noch festlegen, ob diese Größe zur Optimierung
minimiert oder maximiert werden soll, und kann die Priorität oder Gewichtung
und die mit dieser Größe zusammenhängenden
Nutzwerte festlegen. Diese Felder müssen ausgefüllt werden, wenn keine Standardzielfunktion verwendet
wird. Selbstverständlich
kann der Benutzer unter Verwendung der geeigneten Tasten auf der
rechten Seite des Dialogfelds Daten oder Größen hinzufügen, verschieben, abändern oder
löschen.As will be appreciated, the user may specify the inputs to and outputs from the MPC PRO function block by drawing lines between these inputs and outputs and the inputs and outputs of other function blocks. Alternatively, the user can select the MPC-PRO block to gain access to the properties of the MPC-PRO block. A dialog like the one from 6 , can be displayed to allow a user to view the properties of the MPC-PRO block. As in 6 For each of the control, setting, disturbing, and constraining quantities (auxiliary quantities), another table may be provided to order these quantities, which is particularly necessary when numerous quantities such as 20 or more of each, the advanced one control / control block 38 assigned. Within the table for a particular type of size, a description, a low and high limit (boundary conditions), and a path name may be provided. In addition, the user or operator may determine what the block should do in the event of a missed condition, such as taking no action, using the simulated value of size rather than the measured value, or allowing manual entry. In addition, the operator may also decide whether to minimize or maximize this size for optimization, and may specify the priority or weight and the utility values associated with that size. These fields must be completed if no default target function is used. Of course, the user can add, move, modify or delete data or sizes using the appropriate buttons on the right side of the dialog box.
Der Benutzer kann die Daten einer
oder mehrerer der Größen festlegen
oder ändern,
indem er die Größe auswählt. In
diesem Fall kann dem Benutzer ein Dialogfeld wie dasjenige von 7 für die RÜCKFLUSS-Stellgröße (REFLUX
FLOW) präsentiert
werden. Der Benutzer kann die Daten in ihren unterschiedlichen Feldern ändern und
Daten wie den Pfadnamen der Größe (d.h.
ihre Eingabe- und Ausgabeverbindung) durch Browsen festlegen. Mittels
des Bildschirms von 7 kann
der Benutzer eine interne Suchtaste oder eine externe Suchtaste
auswählen, um
innerhalb des Moduls oder außerhalb
des Moduls zu suchen, in dem der MPC-PRO-Block untergebracht ist. Natürlich kann
der Bediener oder Benutzer, falls gewünscht, manuell eine Adresse,
einen Pfad- oder Etikettnamen, etc. bereitstellen, der die Verbindungen
zu und aus den Ein- und Ausgaben des fortgeschrittenen Steuer-/Regelblocks
definiert, falls das so gewünscht
wird.The user can set or change the data of one or more of the sizes by using the Size selects. In this case, the user can see a dialog box like that of 7 for the REFLUX command value (REFLUX FLOW). The user can change the data in their various fields and set data such as the pathname of the size (ie their input and output connection) by browsing. By means of the screen of 7 For example, the user may select an internal search button or an external search button to search within the module or outside the module in which the MPC-PRO block is housed. Of course, if desired, the operator or user may manually provide an address, path or label name, etc. defining the connections to and from the inputs and outputs of the advanced control block, if so desired.
Nach der Auswahl der Ein- und Ausgaben
in und aus dem fortgeschrittenen Steuerfunktionsblock, kann der
Benutzer die mit den Steuergrößen zusammenhängenden
Sollwerte definieren, die mit den Steuer-, Hilfs- und Stellgrößen zusammenhängenden
Bereiche oder Grenzen, und die mit jeder der Steuer-, Hilfs- und Stellgrößen zusammenhängenden
Gewichtungen. Natürlich
können
einige dieser Daten wie Zwangsgrenzen oder -bereiche schon mit diesen
Größen assoziiert
sein, weil diese Größen aus
der Konfigurationsumgebung des Prozesssteuerungssystems ausgewählt oder
darin aufgefunden wurden. Falls gewünscht, kann der Bediener bei
einem Block 96 von 3 die
eine oder die mehreren Funktion/en, die im Optimierer verwendet
werden sollen, dadurch konfigurieren, dass er die Einheitskosten
und/oder den Einheitsnutzen für
die Stellgrößen, Steuergrößen bzw.
Hilfsgrößen festlegt.
Selbstverständlich
kann der Bediener dabei auswählen,
die Standardzielfunktion, wie zuvor beschrieben, zu verwenden. 8 ist eine Bildschirmanzeige,
die von einem Konfigurationsprogramm bereitgestellt wird, das es
einem Benutzer oder Bediener ermöglicht,
eine aus einem Satz von Zielfunktionen zum Herstellen eines fortgeschrittenen
Steuer-/Regelblocks auszuwählen.
Es versteht sich, dass der Benutzer die Bildschirmanzeige wie diejenige,
die in 8 vorgesehen
ist, zur Auswahl eines Satzes von zuvor gespeicherten Zielfunktionen
verwenden kann, hier als Standardzielfunktion und Zielfunktionen 2-5 dargestellt.After selecting the inputs and outputs to and from the advanced control function block, the user may define the setpoints associated with the control quantities, the ranges or limits associated with the control, auxiliaries and manipulated variables, and those associated with each of the control and auxiliary functions - and manipulated variables related weights. Of course, some of these data, such as constraints or ranges, may already be associated with these quantities because these quantities have been selected from or found in the configuration environment of the process control system. If desired, the operator at a block 96 from 3 Configure the one or more functions to be used in the optimizer by specifying the unit cost and / or unit benefit for the manipulated variables, control quantities, and auxiliary quantities, respectively. Of course, the operator may choose to use the default target function as previously described. 8th FIG. 10 is a screen display provided by a configuration program that allows a user or operator to select one of a set of targeting functions to produce an advanced control block. It is understood that the user can see the screen like the one in 8th is intended to use for selecting a set of previously stored target functions, here as the default target function and target functions 2-5 shown.
Nachdem die Eingaben (Steuer-, Hilfs-
und Störgrößen) benannt
und mit der fortgeschrittenen Steuervorlage verknüpft, und
die Gewichtungen, Grenzen und Sollwerte bei einem Block 98 von 3 damit assoziiert wurden,
wird die fortgeschrittene Steuervorlage in einen ausgewählten Controller
innerhalb des Prozesses als Funktionsblock heruntergeladen, der
zur Steuerung verwendet werden soll. Die allgemeine Natur dieses
Steuer-/Regelblocks und die Art und Weise, diesen Steuer-/Regelblock
zu konfigurieren, ist im U.S.-Patent Nr. 6,445,963 mit dem Titel „Integrated
Advanced Control Blocks in Process Control Systems" beschrieben, das
auf den Inhaber der vorliegenden Anmeldung übertragen wurde und hier ausdrücklich durch
Bezugnahme aufgenommen ist. Während
dieses Patent die Art beschreibt, einen MPC-Controller in einem
Prozesssteuerungssystems herzustellen und die Art und Weise nicht
beschreibt, in der ein Optimierer mit diesem Controller verbunden
werden kann, wird klar, dass die allgemeinen Schritte, die unternommen
werden, um den Controller zu verbinden und zu konfigurieren, für den hier
beschriebenen Steuer-/Regelblock 38 verwendet werden können, wobei
die Vorlage alle der hier erörterten
logischen Elemente für
den Steuer/Regelblock 38 umfasst und nicht nur diejenigen,
die in diesem Patent beschrieben sind.After the inputs (control, auxiliary and disturbance variables) are named and linked to the advanced control template, and the weights, limits and setpoints in a block 98 from 3 have been associated with, the advanced control template is downloaded to a selected controller within the process as a functional block to be used for control. The general nature of this control block and the manner of configuring this control block is described in U.S. Patent No. 6,445,963 entitled "Integrated Advanced Control Blocks in Process Control Systems", assigned to the assignee of While this patent describes the manner of making an MPC controller in a process control system and does not describe the manner in which an optimizer can be connected to that controller, it will be understood that the present application is hereby incorporated by reference the general steps taken to connect and configure the controller for the control block described here 38 can be used, the template all of the logic elements discussed here for the control block 38 and not just those described in this patent.
Jedenfalls kann der Bediener bei
einem Block 100, nachdem die fortgeschrittene Steuervorlage
in den Controller heruntergeladen wurde, auswählen, eine Testphase der Steuervorlage
ablaufen zu lassen, um die Schrittantwortmatrix und das Prozessmodell
herzustellen, das im MPC-Controlleralgorithmus Verwendung finden
soll. Wie in dem oben angegebenen Patent beschrieben, stellt während der
Testphase die Steuerlogik im fortgeschrittenen Steuer-/Regelblock 38 dem
Prozess eine Reihe von Pseudozufallswellenformen als Stellgrößen zur
Verfügung
und beobachtet die Veränderungen
bei den Steuer- und Hilfsgrößen (die
vom MPC-Controller im Wesentlichen als Steuergrößen behandelt werden). Falls
gewünscht,
können
die Stell- und Störgrößen sowie
die Steuer- und Hilfsgrößen von
der Datensammlung 12 von 1 gesammelt
werden, und der Bediener kann das Konfigurationsprogramm 40 (1) aufbauen, um diese Daten
von der Datensammlung 12 abzurufen und auf irgendeine Weise
eine Trenduntersuchung an diesen Daten vorzunehmen, um die Schrittantwortmatrix
zu erhalten oder zu bestimmen, wobei jede Schrittantwort das zeitliche
Ansprechen einer der Steuer- oder
Hilfsgrößen auf
eine Einheitsveränderung
bei einer (und nur einer) der Stell- und Steuergrößen kennzeichnet. Diese Einheitsveränderung
ist im Allgemeinen eine Schrittveränderung, könnte aber auch eine andere
Art von Veränderung
wie eine Puls- oder Anstiegsänderung
sein. Andererseits kann der Steuer-/Regelblock 38, falls
gewünscht,
die Schrittantwortmatrix im Ansprechen auf die Daten erzeugen, die
erfasst werden, wenn die Pseudozufallswellenformen auf den Prozess 50 angewandt
werden, und stellt dann diese Wellenformen der Bedieneroberfläche 13 zur
Verfügung,
die vom Bediener oder Benutzer verwendet wird, um den fortgeschrittenen
Steuer-/Regelblock 38 herzustellen und zu installieren.Anyway, the operator at a block 100 After the advanced control template has been downloaded to the controller, select to run a trial phase of the control template to create the step response matrix and the process model to be used in the MPC controller algorithm. As described in the above referenced patent, during the test phase, the control logic is in the advanced control block 38 provide the process with a series of pseudorandom waveforms as manipulated variables and observe the changes in the control and auxiliary quantities (which are essentially treated as control variables by the MPC controller). If desired, the control and disturbance variables as well as the control and auxiliary variables can be obtained from the data collection 12 from 1 be collected, and the operator can configure the configuration 40 ( 1 ) to build this data from the data collection 12 retrieve and somehow trend-examine these data to obtain or determine the step response matrix, each step response identifying the timing of one of the control or auxiliary quantities to a unit change at one (and only one) of the control and manipulated variables. This unit change is generally a step change, but could be another type of change, such as a pulse or slope change. On the other hand, the control block 38 if desired, generate the step response matrix in response to the data detected when the pseudo-random waveforms on the process 50 be applied, and then provides these operator interface waveforms 13 which is used by the operator or user to the advanced control block 38 manufacture and install.
9 stellt
eine Bildschirmanzeige dar, die vom Testprogramm bereitgestellt
werden kann, um dem Bediener graphische Darstellungen der gesammelten
und auf ihren Trend hin untersuchten Daten zu liefern, um es dem
Bediener zu ermöglichen,
die Erstellung der Schrittantwortkurven und damit der Prozessmodell- oder
Steuermatrix anzuleiten, die im MPC-Controller des fortgeschrittenen
Steuer-/Regelblocks verwendet werden soll. Insbesondere stellt ein
Graphikdarstellungsbereich 101 die Daten für mehrere
Ein- oder Ausgaben oder andere Daten (wie zuvor vom Bediener festgelegt)
im Ansprechen auf die Testwellenformen dar. Ein Balkendiagrammbereich 102 liefert
ein Balkendiagramm für
jede der auf ihren Trend hin untersuchten Größendaten, das für jede der
Größen, die
auf ihren Trend hin untersucht werden, den Namen der Größe, den
momentanen Wert der Größe in Balkendiagrammform
darstellt, gegebenenfalls einen Sollwert (angezeigt durch ein größeres Dreieck über dem
Balkendiagramm) und gegebenenfalls Grenzen (angezeigt durch kleinere
Dreiecke über
dem Balkendiagramm). Andere Bereiche der Anzeige stellen andere
Angaben über
den fortgeschrittenen Steuer-/Regelblock dar, wie die Ziel- und
aktuelle Betriebsart des Blocks (104) und die konfigurierte
Zeit bis Beharrungszustand (106). 9 FIG. 12 illustrates a screen display that may be provided by the test program to provide the operator with graphical representations of the data collected and trend-examined to enable the operator to guide the creation of the step response curves, and thus the process model or control matrix to be used in the MPC controller of the advanced control block. In particular, provides a graphics rendering area 101 the data for multiple inputs or outputs or other data (as previously determined by the operator) in response to the test waveforms Bar chart area 102 provides a bar graph for each of the size data examined for its trend, representing, for each of the quantities examined for its trend, the name of the size, the current value of the size in bar graph form, optionally a setpoint (indicated by a larger triangle above the bar chart) and possibly boundaries (indicated by smaller triangles above the bar chart). Other areas of the display represent other information about the advanced control block, such as the target and current mode of operation of the block ( 104 ) and the configured time to steady state ( 106 ).
Vor der Erstellung eines Prozessmodells
für den
fortgeschrittenen Steuer/Regelblock kann der Bediener graphisch
die Daten festlegen, die aus den trendanzeigenden graphischen Darstellungen 101 verwendet werden
sollen. Insbesondere kann der Bediener Beginn- und Endpunkte 108 und 110 der
graphischen Darstellung 102 als die Daten festlegen, die
zur Herstellung der Schrittantwortkurve verwendet werden sollen.
Die Daten in diesem Bereich können
in einer anderen Farbe, wie Grün,
schraffiert sein, um die ausgewählten
Daten visuell anzuzeigen. Genauso kann der Bediener Bereiche innerhalb
des schraffierten Bereichs festlegen, die ausgeschlossen werden
sollen (weil sie nicht repräsentativ,
eine Auswirkung von Rauschen oder eine ungewollte Störung, etc.
sind). Dieser Bereich ist zwischen den Linien 112 und 114 dargestellt
und kann beispielsweise rot schraffiert sein, um anzuzeigen, dass
diese Daten bei der Erstellung der Schrittantworten nicht mit aufgenommen
werden sollen. Natürlich
könnte
der Benutzer irgendwelche gewünschte
Daten ein- oder ausschließen
und kann diese Funktionen für
jede von mehreren graphischen Trenddarstellungen durchführen (9 stellt dar, dass in diesem
Falle acht graphische Trenddarstellungen zur Verfügung stehen), wobei
die unterschiedlichen graphischen Trenddarstellungen beispielsweise
mit unterschiedlichen Stell-, Steuer-, Hilfsgrößen etc. assoziiert werden.Before creating a process model for the advanced control block, the operator can graphically specify the data resulting from the trend-indicating graphs 101 should be used. In particular, the operator can start and end points 108 and 110 the graphic representation 102 as the data to be used to make the step response curve. The data in this area may be hatched in another color, such as green, to visually display the selected data. Likewise, the operator may specify areas within the hatched area that are to be excluded (because they are not representative, an effect of noise or an unwanted disturbance, etc.). This area is between the lines 112 and 114 and, for example, may be hatched in red to indicate that these data should not be included in the creation of the step responses. Of course, the user could include or exclude any desired data and can perform these functions for each of several graphical trend representations ( 9 illustrates that there are eight graphical trend plots available in this case), where the different graphical trend plots are associated, for example, with different control, pilot, auxiliary, and so on.
Um einen Satz von Schrittantworten
herzustellen, kann der Bediener auf der Bildschirmanzeige von 9 die Modellherstellungstaste 116 wählen, und
das Herstellungsprogramm verwendet die aus den graphischen Trenddarstellungen
ausgewählten
Daten, um einen Satz von Schrittantworten herzustellen, wobei jede Schrittantwort
das Ansprechen einer der Steuer- oder Hilfsgrößen auf eine der Stell- oder
Störgrößen anzeigt. Dieser
Herstellungsprozess ist hinlänglich
bekannt und wird hier nicht mehr ausführlicher beschrieben.To make a set of step responses, the operator can see on the screen of 9 the model making button 116 and the manufacturing program uses the data selected from the graphical trend plots to produce a set of step responses, each step response indicating the response of one of the control or auxiliary quantities to one of the manipulated variables. This manufacturing process is well known and will not be described in more detail here.
Wieder mit Bezug auf 3 wird, nachdem die Schrittantwortmatrix
(oder Puls-, Anstiegsantwortmatrix, etc.) hergestellt wurde, in
dem Fall, bei dem die Steuer- und Hilfsgrößen die Stellgrößen zahlenmäßig übertreffen,
die Schrittantwortmatrix (oder Puls-, Anstiegsantwortmatrix, etc.)
dazu verwendet, um die Teilmenge von Steuer- und Hilfsgrößen auszuwählen, die
im MPC-Algorithmus als das M-mal-M-Prozessmodell oder die Steuermatrix
verwendet wird, die invertiert und im MPC-Controller 52 verwendet
werden soll. Dieser Auswahlvorgang kann manuell durch den Bediener
oder automatisch durch ein Programm, beispielsweise in der Bedieneroberfläche 13 erfolgen,
die Zugriff auf die Schrittantwortmatrix hat. Allgemein ausgedrückt wird
eine einzelne der Steuer- und Hilfsgrößen als einer einzelnen der
Stellgrößen am nächsten verwandt
identifiziert. Somit wird eine einzelne und einzige (d.h. andere)
der Steuer- oder Hilfsgrößen (welche
Eingaben in den Prozesscontroller sind) mit jeder der anderen Stellgrößen (welche
Ausgaben aus dem Prozesscontroller sind) assoziiert (z.B. paarweise
zusammengefasst), so dass sich der MPC-Algorithmus auf ein Prozessmodell
stützen kann,
das aus einem Satz von M-mal-M Schrittantworten hergestellt wurde.Again with respect to 3 After the step response matrix (or pulse, slope response matrix, etc.) has been established, in the case where the control and auxiliary quantities outnumber the manipulated variables, the step response matrix (or pulse, slope response matrix, etc.) is used to select the subset of control and auxiliary variables used in the MPC algorithm as the M by M process model or the control matrix inverted and in the MPC controller 52 should be used. This selection process can be done manually by the operator or automatically by a program, for example in the user interface 13 which has access to the step response matrix. Generally speaking, a single one of the control and auxiliary quantities is identified as being most closely related to a single one of the manipulated variables. Thus, a single and unique (ie other) of the control or auxiliary variables (which are inputs to the process controller) is associated with each of the other manipulated variables (which are outputs from the process controller) (eg, paired together), so that the MPC algorithm can rely on a process model made from a set of M-by-M step responses.
In einer Ausführungsform, welche einen heuristischen
Lösungsansatz
durch Vorsehen von Paarbildung verwendet, wählt das automatische Programm
oder der Bediener den Satz von M Steuer- und Hilfsgrößen (bei
dem M gleich der Anzahl von Stellgrößen ist) in einem Versuch aus,
die einzelne Steuer- oder Hilfsgröße auszuwählen, die eine gewisse Kombination
aus größter Verstärkung und
schnellster Ansprechzeit auf eine Einheitsveränderung bei einer einzelnen
der Stellgrößen aufweist,
und aus diesen beiden Größen ein Paar
zu bilden. Natürlich
kann in manchen Fällen
eine einzelne Steuer- oder Hilfsgröße eine große Verstärkung und schnelle Ansprechzeit
auf mehrere Stellgrößen aufweisen.
Hier kann diejenige Steuer- oder Hilfsgröße mit irgendeiner der dazugehörigen Stellgrößen zu einem
Paar zusammengefasst werden und kann auch mit einer Stellgröße ein Paar
bilden, die nicht die größte Verstärkung und
Ansprechzeit hervorbringt, weil in der Gruppe die Stellgröße, die
die geringere Verstärkung
oder langsamere Ansprechzeit verursacht, keine andere Steuer- oder
Hilfsgröße in einem
annehmbaren Ausmaß beeinflussen
kann. Somit werden die Paare von Stellgrößen einerseits und die Steuer- oder Hilfsgrößen andererseits
alles in allem so ausgewählt,
dass die Stellgrößen mit
der Teilmenge von Steuer- und Hilfsgrößen, die die Steuergrößen darstellen,
die auf die Stellgrößen am stärksten ansprechen,
zu Paaren zusammengefasst werden.In one embodiment, which is a heuristic
approach
used by providing pairing, the automatic program selects
or the operator the set of M control and auxiliary quantities (at
M is equal to the number of manipulated variables) in an attempt,
to select the single control or auxiliary size that a certain combination
from greatest reinforcement and
fastest response time to a unit change for a single
having the manipulated variables,
and from these two sizes a pair
to build. Naturally
can in some cases
a single control or auxiliary size a large gain and fast response time
to have several manipulated variables.
Here, the control or auxiliary variable with any of the associated control variables to a
Pair can be summarized and can also with a manipulated variable a pair
form, which is not the biggest reinforcement and
Response time produces, because in the group the manipulated variable, the
the lower gain
or slower response time, no other control or
Auxiliary size in one
influence the acceptable level
can. Thus, the pairs of manipulated variables on the one hand and the control or auxiliary variables on the other
all in all so selected
that the manipulated variables with
the subset of control and auxiliary quantities that represent the control variables,
which are the most responsive to the manipulated variables,
be combined into pairs.
Das automatische Programm oder der
Bediener kann auch versuchen, Steuer- und Hilfsgrößen CV und
AV mit aufzunehmen, die nicht korreliert, stark korreliert, minimal
korreliert, etc. sind. Außerdem
macht es auch nichts aus, wenn nicht alle der Steuergrößen als
eine der Teilmenge der M Steuer- und Hilfsgrößen ausgewählt werden und deshalb der
MPC-Controller nicht alle der Steuergrößen als Eingaben in ihn erhält, weil der
Satz von Zielsteuer- und Hilfsgrößen vom
Optimierer ausgewählt
wird, um einen Operationspunkt des Prozesses darzustellen, bei dem
die nicht ausgewählten
Steuergrößen (wie
auch die nicht ausgewählten
Hilfsgrößen) sich
auf ihrem Sollwert oder innerhalb ihres vorgesehenen Operationsbereichs
befinden.The automatic program or the
Operator can also try control and auxiliary variables CV and
Include AV that is uncorrelated, highly correlated, minimal
correlated, etc. are. In addition
it does not matter, if not all of the control variables as
one of the subset of M control and auxiliary variables are selected and therefore the
MPC controller does not receive all of the control variables as inputs to it because of the
Set of target tax and auxiliary sizes of
Optimizer selected
is to represent an operation point of the process in which
the unselected
Control variables (such as
also the unselected
Auxiliary quantities) themselves
at their target value or within their intended operating range
are located.
Da es Dutzende und sogar Hunderte
von Steuer- und Hilfsgrößen einerseits
und Dutzende oder Hunderte von Stellgrößen andererseits gibt, kann
es natürlich
zumindest vom Visualisierungsstandpunkt her schwierig sein, den
Satz von Steuer- und
Hilfsgrößen auszuwählen, die
das beste Ansprechen auf die verschiedenen Stellgrößen haben.
Um dieses Problem zu bewältigen
kann das Generatorprogramm 40 für den fortgeschrittenen Steuer-/Regelblock
in der Bedienerarbeitsoberfläche 13 einen
Satz von Bildschirmanzeigen umfassen oder dem Benutzer oder Bediener
darbieten, um es dem Bediener zu ermöglichen, eine angemessene Auswahl
der Steuer- und Hilfsgrößen zu treffen,
die als Teilmenge der im MPC-Controller 52 während des
Betriebs zu verwendenden Steuer- und Hilfsgrößen verwendet werden sollen.Since there are tens and even hundreds of tax and auxiliary sizes on the one hand and dozens or hun On the other hand, given the manipulated variables on the other hand, it may of course be difficult, at least from the point of view of visualization, to select the set of control and auxiliary variables which have the best response to the various manipulated variables. To tackle this problem can be the generator program 40 for the advanced control block in the server work surface 13 comprise a set of on-screen displays or to present to the user or operator to allow the operator to make an appropriate selection of the control and auxiliary sizes, as a subset of those in the MPC controller 52 to be used during operation control and auxiliary variables.
Auf diese Weise kann bei einem in 3 dargestellten Block 120
dem Bediener eine Bildschirmmaske geboten werden, in der der Bediener
das Ansprechen jeder der Steuer- und Hilfsgrößen auf eine bestimmte oder
ausgewählte
der Stellgrößen anschauen
kann. Solch eine Bildschirmmaske ist in 10 dargestellt, die das Ansprechen jeder
von mehreren Steuer- und Hilfsgrößen (als
Randbedingung bezeichnet) auf eine Stellgröße zeigt, die TOP_DRAW genannt
wird. Der Bediener kann die Stellgrößen durch Bildverschiebung
(Scrollen) eine nach der anderen durchlaufen und die Schrittantworten
jeder der Steuer- und Hilfsgrößen auf
jede der unterschiedlichen Stellgrößen anschauen und während des
Prozesses die eine Steuer- oder Hilfsgröße auswählen, die am besten auf diese
Stellgröße anspricht.
Typischerweise wird der Bediener versuchen, die Steuer- oder Hilfsgröße auszuwählen, die
die beste Kombination aus höchster
Beharrungszustandsverstärkung
und schnellster Ansprechzeit auf die Stellgröße aufweist. Wie in 11 dargestellt ist, kann
eine der Steuer- und Hilfsgrößen unter
Verwendung des Dialogfelds als die für diese Stellgröße Signifikanteste
ausgewählt
werden. Falls gewünscht,
kann, wie in 11 dargestellt,
die aus den Steuer- und Hilfsgrößen ausgewählte Größe in einer
anderen Farbe, wie Rot, hervorgehoben werden (während die zuvor ausgewählten, d.h. Steuer-
und Hilfsgrößen, die
für andere
Stellgrößen ausgewählt wurden,
in einer anderen Farbe, wie Gelb, hervorgehoben werden können). In
dieser Ausführungsform
kann das Steuerprogramm 40, das natürlich die zuvor ausgewählten Steuer-
und Hilfsgrößen in einem
Speicher hinterlegt, eine Prüfung
durchführen,
um sicherzustellen, dass der Bediener nicht dieselbe Steuer- oder
Hilfsgröße als mit
zwei unterschiedlichen Stellgrößen assoziierte
Größe auswählt. Falls
der Benutzer oder Bediener eine Steuer- oder Hilfsgröße auswählt, die
bereits für
eine andere Stellgröße ausgewählt wurde,
kann das Programm 40 dem Benutzer oder Bediener eine Fehlermeldung
zukommen lassen, um den Benutzer oder Bediener über die Auswahl einer zuvor
bereits ausgewählten
Steuer- oder Hilfsgröße zu informieren.
Auf diese Weise verhindert das Programm 40 die Auswahl derselben
Steuer- oder Hilfsgröße für zwei oder
mehr unterschiedliche Stellgrößen.In this way, at an in 3 block 120, the operator is presented with a screen in which the operator can view the response of each of the control and auxiliary quantities to a specific or selected one of the control variables. Such a screen is in 10 representing the response of each of a plurality of control and auxiliary quantities (referred to as constraints) to a manipulated variable called TOP_DRAW. The operator can scroll through the manipulated variables one by one and look at the step responses of each of the control and auxiliary quantities to each of the different manipulated variables, and during the process select the one control or auxiliary variable that best responds to that manipulated variable. Typically, the operator will attempt to select the control or auxiliary size that has the best combination of highest steady state gain and fastest response time to the manipulated variable. As in 11 1, one of the control and auxiliary quantities can be selected using the dialog box as the most significant for that manipulated variable. If desired, as in 11 4, highlighting the size selected from the control and auxiliary sizes in another color, such as red (while highlighting the previously selected, ie, control and auxiliary sizes selected for other manipulated variables, in a different color, such as yellow can). In this embodiment, the control program 40 , which of course stores the previously selected control and auxiliary quantities in a memory, perform a check to ensure that the operator does not select the same control or auxiliary size as the variable associated with two different control variables. If the user or operator selects a control or auxiliary size that has already been selected for another manipulated variable, the program can 40 provide the user or operator with an error message to inform the user or operator of the selection of a previously selected control or auxiliary size. In this way the program prevents 40 the selection of the same control or auxiliary variable for two or more different control variables.
Wie in 12 dargestellt
ist, kann der Bediener oder Benutzer die Wahl treffen, die verschiedenen Schrittantworten
für jede
der unterschiedlichen Stell- und
Störgrößen anzusehen. 12 stellt die Schrittantworten
des TOP_END_-POINT
auf jede der Stell- und Störgrößen dar,
die zuvor für
den zu schaffenden fortgeschrittenen Steuer-/Regelblock festgelegt
wurden. Natürlich
kann der Bedie ner die Bildschirmmaske von 12 verwenden, um eine der Stellgrößen auszuwählen, die
mit der Steuergröße TOP_END_POINT
assoziiert wird.As in 12 is shown, the operator or user may choose to view the various step responses for each of the different set and disturbances. 12 Represents the step responses of the TOP_END_-POINT to each of the manipulated and disturbing variables previously set for the advanced control block to be created. Of course, the operator the screen of 12 Use to select one of the manipulated variables that is associated with the control variable TOP_END_POINT.
Die mit Bezug auf die 10 – 12 beschriebene
Auswahlprozedur basiert auf graphischen Anzeigen, bei denen eine
Steuer- oder Hilfsgröße aus einer
Anzeige als die Signifikanteste ausgewählt werden kann. Dem Bediener
können
die Daten zusätzlich
oder alternativ auf eine andere Weise dargeboten werden, wie in Tabellenform,
um zur Vervollständigung
einer M-mal-M-Controllerkonfiguration beizutragen. Ein Beispiel
einer Bildschirmanzeige, die zur Vervollständigung einer M-mal-M-Controllerkonfiguration
beiträgt
und die Daten in Tabellenform bietet, ist in 13 gezeigt. In diesem Beispiel sind die
Größen, die
der Steuermatrix (Steuer- CV, Hilfs- AV und Stellgrößen MV)
zur Verfügung
stehen, die Bedingungsanzahlen der Matrixkonfiguration, etc. in
Tabellenform bereitgestellt. In einem Abschnitt 204 der
Bildschirmanzeige 200 sind Angaben von Steuer- und Hilfsgrößen, die
noch nicht Teil einer Steuermatrixkonfiguration sind, zusammen mit
Ansprechparametern, die mit den Steuer- und Hilfsgrößen zusammenhängen (z.B.
Verstärkung,
Totzeit, Priorität,
Zeitkonstante, etc.) zu jeder der Prozessstellgrößen aufgelistet. In einem Abschnitt 208 ist
eine Angabe der aktuellen Konfiguration des MPC-Controllers angezeigt.
Eine Spalte 212 liefert Angaben über verfügbare Stellgrößen, und
eine Spalte 216 liefert Angaben über Ausgabengrößen (z.B.
Steueroder Hilfsgrößen), die
aktuell in der MPC-Steuermatrix enthalten sind.The referring to the 10 - 12 The selection procedure described is based on graphical displays in which a control or auxiliary variable can be selected from a display as the most significant. Additionally or alternatively, the data may be presented to the operator in a different manner, such as in tabular form, to assist in completing an M-by-M controller configuration. An example of a screen display that helps complete an M-by-M controller configuration and provides the data in tabular form is shown in FIG 13 shown. In this example, the sizes available to the control matrix (control CV, auxiliary AV and manipulated variables MV), the condition numbers of the matrix configuration, etc. are provided in tabular form. In a section 204 the screen 200 are indications of control and auxiliary quantities that are not yet part of a control matrix configuration, along with response parameters associated with the control and auxiliary quantities (eg, gain, dead time, priority, time constant, etc.) listed for each of the process manipulated variables. In a section 208 an indication of the current configuration of the MPC controller is displayed. A column 212 provides information about available manipulated variables, and a column 216 provides information about output quantities (eg, control or auxiliary quantities) currently included in the MPC control matrix.
Das Anzeigebeispiel 200 zeigt
einen Quadratcontroller mit den Steilgrößen MV TOP_DRAW, SIDE_DRAW
und BOT_REFLUX und Controllereingaben einschließlich der Steuer- und Hilfsgrößen BOT_TEMP,
SIDE_END_POINT, TOP_END_POINT. Wählt
ein Benutzer eine der Stellgrößen unter
Verwendung einer Eingabevorrichtung wie einer Maus, einer Rollkugel,
eines Berührungsbildschirms,
etc., kann die ausgewählte
Stellgröße hervorgehoben
werden. Beispielsweise ist in der beispielhaften Bildschirmanzeige 200 die
Stellgröße TOP_DRAW
hervorgehoben. Zusätzlich
sind Ansprechparameter, die mit den verfügbaren, im Abschnitt 204 angezeigten
Steuer- und Hilfsgrößen zusammenhängen und
der ausgewählten
Stellgröße entsprechen,
angezeigt. Beispielsweise sind in der beispielhaften Bildschirmanzeige 200 Verstärkungen 220 und
Totzeiten 224 angezeigt, die der Stellgröße TOP_-DRAW entsprechen
und den verfügbaren
Steuer- und Hilfsgrößen 228 zugeordnet
sind.The display example 200 shows a square controller with the steepnesses MV TOP_DRAW, SIDE_DRAW and BOT_REFLUX and controller inputs including the control and auxiliary quantities BOT_TEMP, SIDE_END_POINT, TOP_END_POINT. If a user selects one of the manipulated variables using an input device such as a mouse, a trackball, a touchscreen, etc., the selected manipulated variable can be highlighted. For example, in the example screen 200 the manipulated variable TOP_DRAW is highlighted. Additionally, response parameters are available with the ones available in the section 204 The displayed control and auxiliary variables are related and correspond to the selected manipulated variable. For example, in the example screen 200 reinforcements 220 and dead times 224 displayed, which correspond to the manipulated variable TOP_DRAW and the available control and auxiliary variables 228 assigned.
Die Anzeige 200 umfasst
auch eine Hinzufügetaste 232a und
eine Löschtaste 232b,
um Steuer- und Hilfsgrößen (Randbedingungsgrößen) zwischen
den Abschnitten 204 und 208 zu bewegen. Die Figur
zeigt auch die Bedingungsanzahl von Matrixkonfigurationen mit verschiedener
Verstärkung:
- – Prozessmatrix:
eine vollständige
N-mal-M-Prozessmatrix mit Steuerund Randbedingungsgrößen entlang einer
ersten Achse und den Stellgrößen entlang
einer zweiten Achse;
- – Aktuelle
Konfiguration: die M-mal-M-Konfiguration, die aktuell vom Bediener
ausgewählt
wurde und in der Tabelle „MPC
Controller Input-Otput Configuration" angezeigt wird;
- – Automatische
Konfiguration: die automatisch von einem Auswahlprogramm in der
MPC-Anwendung ausgewählte
M-mal-M-Konfiguration.
The ad 200 also includes an add button 232a and a delete key 232b to control and Auxiliary quantities (boundary conditions) between the sections 204 and 208 to move. The figure also shows the number of condition of matrix configurations with different gain: - Process matrix: a complete N-by-M process matrix with control and constraint quantities along a first axis and the manipulated variables along a second axis;
- - Current configuration: the M by M configuration currently selected by the operator and displayed in the "MPC Controller Input-Otput Configuration"table;
- - Automatic configuration: the M-by-M configuration automatically selected by a selection program in the MPC application.
Die Anzeige 200 umfasst
auch eine Taste 236 zum Rücksetzen zu einer Konfiguration,
die automatisch bestimmt wurde. Somit kann ein Bediener, nachdem
er Änderungen
an einer automatischen Konfiguration vorgenommen hat und zur automatischen
Konfiguration zurückkehren
möchte,
die Taste 236 wählen.The ad 200 also includes a button 236 to reset to a configuration that has been determined automatically. Thus, after making changes to an automatic configuration and wanting to return to automatic configuration, an operator may press the key 236 choose.
Unter Verwendung der Daten in einer
Anzeige wie sie in der Anzeige 200 angezeigt werden, und
unter Kenntnis des Prozesses, kann ein Bediener auf jede gewünschte Weise
eine Quadratmatrix aufbauen.Using the data in an ad as shown in the ad 200 and knowing the process, an operator can construct a square matrix in any desired manner.
Wie klar wird, ermöglichen
es die Bildschirmanzeigen der 10 – 13 dem Bediener, die Teilmenge von
M Steuer- und Hilfsgrößen zu visualisieren
und auszuwählen,
die als Eingaben in den MPC-Steueralgorithmus (Block 120 von 3) verwendet werden, was
besonders nützlich
ist, wenn es zahlreiche dieser Größen gibt. Auch kann der Satz
Steuer- und Randbedingungsgrößen, die
bei Block 120 bestimmt werden, basierend auf gewissen vorher
festgelegten Kriterien oder einem Auswahlprogramm automatisch oder
elektronisch ausgewählt
werden. In einer Ausführungsform
kann ein Auswahlprogramm die Eingabegrößen auswählen, die, basierend auf irgendeiner
Kombination von Ansprechparametern (eine oder mehrere Verstärkungen,
Totzeit, Priorität,
Zeitkonstante, etc.), wie sie aus den Schrittantworten (oder Puls-,
Anstiegsantworten, etc.) bestimmt wurden, für die Steuerrandbedingungs-
und die Stellgrößen verwendet
werden sollen. In einer anderen Ausführungsform kann ein Auswahlprogramm
irgendeine Form von Zeitreihenanalyse der Werte der Eingabe- und
Ausgabeparameter des Controllers nutzen. Beispielsweise kann eine
Kreuzkorrelation zwischen den Stell- und Steueroder Hilfsgrößen verwendet
werden, um die am stärksten
ansprechende Steueroder Hilfsgröße als Controllereingabe
zu verwenden. Als weiteres Beispiel kann eine Kreuzkorrelation zwischen
den Steuer- und Hilfsgrößen verwendet
werden, um kolineare (d.h. korrelierte) Controllereingaben aus der
Matrix zu entfernen. Ein Programm kann auch jeden Heuristiksatz
umfassen, der aus der Modellanalyse oder der Prozesskenntnis gebildet
wurde.As you can see, the screen displays of the 10 - 13 allow the operator to visualize and select the subset of M control and auxiliary quantities that are used as inputs to the MPC control algorithm (Block 120 from 3 ), which is particularly useful when there are many of these sizes. Also, the set of control and constraint sizes used in block 120 be determined automatically or electronically based on certain predetermined criteria or a selection program. In one embodiment, a selection program may select the input quantities that may be determined based on any combination of response parameters (one or more gains, dead time, priority, time constant, etc.) as determined from the step responses (or pulse, slope responses, etc.) were to be used for the control boundary conditions and the manipulated variables. In another embodiment, a selection program may use some form of time series analysis of the values of the input and output parameters of the controller. For example, a cross-correlation between the control and auxiliary quantities may be used to use the most responsive control or auxiliary size as the controller input. As another example, a cross-correlation between the control and auxiliary quantities may be used to remove co-linear (ie, correlated) controller inputs from the matrix. A program may also include any heuristic set formed from model analysis or process knowledge.
In einer anderen Ausführungsform
kann ein automatisches Auswahlprogramm zuerst eine Steuermatrix
bestimmen, indem eine Eingabe-/Ausgabematrix basierend auf der Bedingungsanzahl
der Matrix ausgewählt
wird, d.h. durch Minimieren der Anzahl an Bedingungen auf irgendein
gewünschtes
Maß, und
dann eine Controllerkonfiguration aus der Steuermatrix gebildet
werden.In another embodiment
An automatic selection program may first create a control matrix
determine by an input / output matrix based on the number of conditions
the matrix selected
is, i. by minimizing the number of conditions to either
desired
Measure, and
then a controller configuration is formed from the control matrix
become.
In diesem Beispiel kann für eine Prozessverstärkungsmatrix
A die Bedingungsanzahl der Matrix ATA bestimmt
werden, um die Steuerbarkeit der Matrix zu prüfen. Eine kleine Anzahl an
Bedingungen bedeutet im Allgemeinen eine bessere Steuerbarkeit,
während
eine größere Anzahl
an Bedingungen eine geringere Steuerbarkeit und mehr Steuerschritte
oder größere Bewegungen
während
des dynamischen Steuervorgangs bedeuten. Es gibt keine strikten
Kriterien, um einen annehmbaren Grad an Steuerbarkeit festzulegen,
und deshalb kann die Anzahl an Bedingungen als relativer Vergleich
verschiedener potentieller Steuermatrizes und als Prüfung für schlecht
bedingte Matrizes verwendet werden. Bekanntlich nähert sich
eine Bedingungsanzahl für eine
schlecht bedingte Matrix der Unendlichkeit. Mathematisch tritt eine
schlechte Bedingtheit im Fall kolinearer Prozessgrößen auf,
d.h. aufgrund kolinearer Reihen oder Spalten in der Steuermatrix.
Somit ist ein wichtiger Faktor, der die Bedingungsanzahl und Steuerbarkeit
betrifft, die Kreuzkorrelation zwischen Matrixreihen und -spalten.
Eine sorgfältige
Auswahl der Eingabe-/Ausgabegrößen bei
der Steuermatrix kann Bedingungsprobleme reduzieren. In der Praxis
sollte von Belang sein, ob die Bedingungsanzahl einer Steuermatrix in
den Hunderten (z.B. 500) oder darüber liegt. Mit einer solchen
Matrix können
die Bewegungen der Controllerstellgrößen höchst exzessiv sein.In this example, for a process gain matrix A, the condition number of the matrix A T A can be determined to check the controllability of the matrix. A small number of conditions generally means better controllability, while a larger number of conditions mean less controllability and more control steps or larger movements during the dynamic control process. There are no strict criteria to establish an acceptable level of controllability, and therefore the number of conditions can be used as a relative comparison of various potential tax matrices and as a test for mismatched matrices. As we know, a number of conditions for a bad matrix of infinity approaches. Mathematically, poor conditionality occurs in the case of colinear process variables, ie, due to co-linear rows or columns in the control matrix. Thus, an important factor affecting the number of conditions and controllability is the cross-correlation between matrix rows and columns. Careful selection of the input / output variables in the control matrix can reduce condition problems. In practice, it should be relevant whether the number of conditions of a control matrix is in the hundreds (eg 500) or above. With such a matrix, the movements of the controller control variables can be extremely excessive.
Wie zuvor erläutert löst die Steuermatrix das Problem
der dynamischen Steuerung, während
der LP-Optimierer das Problem der Beharrungszustandsoptimierung
löst, und
die Steuermatrix muss eine quadratische Eingabe-/Ausgabematrix sein,
selbst wenn der MPC-Controllerblock eine ungleiche Anzahl an MVs
und CVs (einschließlich
AVs) aufweist. Um mit der Auswahl der Ein- und Ausgaben für die Steuermatrix
zu beginnen, die bei der Herstellung des Controllers verwendet werden
soll, werden alle verfügbaren
MVs typischerweise als Controllerausgaben aufgenommen oder ausgewählt. Nach
der Auswahl der Ausgaben (der MVs), müssen die Prozessausgabegrößen (d.h.
die CVs und AVs), die zu einem Teil der dynamischen Steuermatrix geworden
sind, so ausgewählt
werden, dass eine quadratische Steuermatrix entsteht, die nicht
schlecht bedingt ist.As discussed previously, the control matrix solves the problem
the dynamic control while
the LP optimizer solves the problem of steady state optimization
triggers, and
the control matrix must be a quadratic input / output matrix,
even if the MPC controller block has an unequal number of MVs
and CVs (including
AVs). To deal with the selection of inputs and outputs for the control matrix
to begin with, which are used in the manufacture of the controller
should be, all available
MVs typically recorded or selected as controller outputs. After
the selection of outputs (of the MVs), the process output sizes (i.e.
the CVs and AVs) that have become part of the dynamic control matrix
are, so selected
be that a square control matrix is created, not
bad condition.
Ein Verfahren, um CVs und AVs als
Eingaben in die Steuermatrix automatisch oder manuell auszuwählen, wird
nun erörtert,
wobei vorausgesetzt wird, dass auch andere Verfahren verwendet werden
können. Diese
Ausführungsform
verstärkt
die Robustheit des sich ergebenden Controllers, indem sie eine Technik
anwendet, die „MV-Umlauf" (MV wrap arounod)
(oder selbststeuernde MVs) genannt wird, und automatisch den Penalty-Faktor
auf Bewegungsfaktoren für
die MVs des MPC-Controllers schätzt.A method to automatically or manually select CVs and AVs as inputs to the control matrix will now be discussed, assuming that other methods may be used as well. This embodiment enhances the robustness of the resulting controller by adopting a technique called "MV wrap arounod" (or self-controlling MVs) and automatically estimates the penalty factor on motion factors for the MVs of the MPC controller.
Schritt 1 – Die CVs werden ausgewählt, bis,
falls möglich,
die Anzahl von CVs gleich der Anzahl von MVs ist (d.h. der Anzahl
von Controllerausgaben). Falls es mehr CVs als MVs gibt, können die
CVs in beliebiger Reihenfolge basierend auf irgendwelchen gewünschten
Kriterien wie Priorität,
Verstärkung
oder Phasenansprechempfindlichkeit, Benutzereingabe, Korrelation,
Analyse etc. ausgewählt
werden. Ist die gesamte mögliche
Anzahl an CVs gleich der Anzahl an MVs, wird zu Schritt 4 übergegangen,
um die sich ergebende Bedingungsanzahl der Quadratsteuermatrix auf
Annehmbarkeit hin zu überprüfen. Ist
die Anzahl an CVs geringer als die Anzahl von MVs, können AVs
ausgewählt
werden, wie in Schritt 2 beschrieben ist. Gibt es keine definierten
CVs, wird die AV mit der höchsten
Verstärkung
in Relation zu einer MV ausgewählt
und dann zu Schritt 2 übergegangen.Step 1 - The CVs are selected until,
if possible,
the number of CVs is equal to the number of MVs (i.e., the number
of controller outputs). If there are more CVs than MVs, the
CVs in any order based on any desired
Criteria such as priority,
reinforcement
or phase response, user input, correlation,
Analysis etc. selected
become. Is the entire possible
Number of CVs equal to the number of MVs, proceed to step 4,
around the resulting condition number of the square control matrix
Acceptability. is
the number of CVs less than the number of MVs, AVs can
selected
as described in step 2. There are no defined ones
CVs, the AV with the highest
reinforcement
selected in relation to a MV
and then proceeded to step 2.
Schritt 2 – Es wird die Anzahl der Bedingungen,
eine nach der anderen, für
jede mögliche
AV berechnet, die zur bereits ausgewählten Steuermatrix, die durch
die zuvor ausgewählten
CVs und AVs festgelegt wurde, hinzugefügt wird. Wie klar wird, enthält die durch
die ausgewählten
CVs festgelegte Matrix eine Reihe für jede ausgewählte CV
und AV, die die Beharrungszustandsverstärkung für diese CV oder AV zu jeder
der zuvor ausgewählten
MVs festlegt.Step 2 - It will determine the number of conditions
one after the other, for
every possible one
AV computes the already selected control matrix by
the previously selected
CVs and AVs has been added. As it becomes clear, that contains
the selected ones
CVs set a row for each selected CV
and AV, which gives the steady state gain for that CV or AV to each
the previously selected
MVs sets.
Schritt 3 – Die in Schritt 2 festgelegte
AV wird bestimmt, die die Mindestbedingungsanzahl für die sich ergebende
Matrix ergibt, und die Matrix wird wie die vorherige Matrix unter
Hinzufügung
der ausgewählten
AV festgelegt. Ist die Anzahl an MVs nun gleich der Anzahl an ausgewählten CVs,
zuzüglich
der Anzahl an ausgewählten
AVs (d.h. die Matrix ist nun quadratisch), dann wird zu Schritt
4 übergegangen.
Andernfalls wird zu Schritt 2 zurückgekehrt.Step 3 - The procedure defined in step 2
AV is determined, which is the minimum condition number for the resulting
Matrix yields, and the matrix becomes underneath like the previous matrix
addition
the selected one
AV set. If the number of MVs is now equal to the number of selected CVs,
plus
the number of selected ones
AVs (that is, the matrix is now square), then go to step
4 passed.
Otherwise, return to step 2.
Schritt 4 – Die Bedingungsanzahl für die hergestellte
quadratische Steuermatrix Ac wird berechnet. Falls
gewünscht,
kann die Bedingungsanzahlberechnung für die Matrix Ac anstelle
der Matrix Ac
TAc verwendet werden, weil die Anzahl an Bedingungen
für diese
unterschiedlichen Matrizes als Quadratwurzel der anderen in Beziehung
stehen. Ist die Bedingungsanzahl akzeptabel, werden die Schritte
5 und 6 übersprungen
und es wird zu Schritt 7 übergegangen.Step 4 - The number of conditions for the established square control matrix A c is calculated. If desired, the condition number calculation for the matrix A c may be used in place of the matrix A c T A c because the number of conditions for these different matrices are related as the square root of the others. If the number of conditions is acceptable, skip steps 5 and 6 and move to step 7.
Schritt 5 – Eine Umlaufprozedur wird
für jede
der ausgewählten
MVs durchgeführt
und die Bedingungsanzahl der Matrix berechnet, die sich aus jeder
Umlaufprozedur ergibt. Im Wesentlichen kann eine Umlaufprozedur
durchgeführt
werden, indem nacheinander eine Einheitsantwort (Verstärkung =
1,0; Totzeit = 0, Zeitkonstante = 0) für jede der unterschiedlichen
MVs an die Stelle der beseitigten AV (oder CV) gesetzt wird. Die
Einheitsantwort wird an einer der Stellen in der Reihe der Matrix
Eins sein und irgendwo anders Null. Im Wesentlichen wird jede der
einzelnen MVs in diesem Fall anstelle der AV (oder CV) als eine
Eingabe und eine Ausgabe verwendet, um eine gut bedingte, quadratische
Steuermatrix zu bilden. Als Beispiel werden für eine Vier-mal-Vier-Matrix
die Kombinationen 1000, 0100, 0010 und 0001 in
die Reihe der beseitigten AV-Zeile in der Verstärkungsmatrix Ac gesetzt.Step 5 - A recirculation procedure is performed for each of the selected MVs and the number of conditions of the matrix calculated from each recirculation procedure is calculated. In essence, a wrap-around procedure can be performed by successively setting a unit response (Gain = 1.0, Dead Time = 0, Time Constant = 0) for each of the different MVs to the location of the eliminated AV (or CV). The unit response will be at one of the locations in the array's row and zero elsewhere. In essence, each of the individual MVs in this case is used instead of the AV (or CV) as an input and an output to form a well-conditioned quadratic control matrix. As an example, for a four by four matrix, the combinations 1000 . 0100 . 0010 and 0001 is set in the row of the eliminated AV line in the gain matrix A c .
Schritt 6 – Nach dem Durchführen einer
Umlaufprozedur für
jede der MVs wird die Kombination ausgewählt, die die Mindestbedingungsanzahl
ergibt. Falls es keine Verbesserung im Vergleich zur Bedingungsanzahl
gibt, die im Schritt 4 erhalten wurde, wird die ursprüngliche
Matrix beibehalten.Step 6 - After performing a
Circulation procedure for
Each of the MVs is selected the combination that the minimum condition number
results. If there is no improvement compared to the number of conditions
which was obtained in step 4, becomes the original one
Retain matrix.
Schritt 7 – An diesem Punkt wird jede
ausgewählte
CV und ausgewählte
AV mit einer MV assoziiert, indem die CV oder AV mit dem besten
Ansprechen (Maximalverstärkung,
schnelle Ansprechzeit) in Bezug auf eine bestimmte MV ausgewählt wird,
ausschließlich
der MV, die zur Selbststeuerung verwendet wird (d.h. der MV, die
den Umlauf durchgemacht hat). Es ist sicherzustellen, dass jede
MV mit einer einzigen CV (oder AV) zu einem Paar zusammengefasst
wird, im Falle dass mehr als eine MV eine hohes Verstärkungs-
und schnelles Ansprechverhältnis
mit einer einzelnen CV (oder AV) oder umgekehrt für die CV-(AV-)Parameter
hat. Die umgelaufene MV wird mit sich selbst assoziiert. Wenn die
Paarbildung aller Parameter erfolgt ist, ist der Auswahlprozess
abgeschlossen.Step 7 - At this point, each one will
selected
CV and selected
AV associated with an MV by the CV or AV with the best
Response (maximum gain,
fast response time) with respect to a particular MV is selected,
exclusively
the MV used for self-control (i.e., the MV, the
went through the round). It is to ensure that each one
MV combined with a single CV (or AV) to a pair
in case more than one MV has a high amplification
and fast response
with a single CV (or AV) or vice versa for the CV (AV) parameters
Has. The bypassed MV is associated with itself. If the
Pairing of all parameters is done is the selection process
completed.
Selbstverständlich kann die durch diese
Prozedur gebildete Steuermatrix sowie die sich ergebende Bedingungsanzahl
dem Benutzer vorgelegt werden, und der Benutzer kann die gebildete
Steuermatrix zur Anwendung bei der Herstellung des Controllers annehmen
oder ablehnen.Of course, the through this
Procedure formed control matrix and the resulting condition number
presented to the user, and the user can be educated
Adopt control matrix for use in the manufacture of the controller
or reject.
Es wäre anzumerken, dass bei der
oben beschriebenen automatischen Prozedur höchstens nur eine (d.h. umgelaufene)
MV zur Selbststeuerung ausgewählt
wurde, um die Steuerbarkeit zu verbessern. Beim manuellen Vorgang
kann die Anzahl von umgelaufenen MVs willkürlich sein. Beispielsweise
kann mit Bezug auf 11 die
Wahl der höchstwertigen
(„Most
Significant") CVs
oder AVs wieder aufgehoben werden. Mit Bezug auf 13 können
CVs oder AVs unter Verwendung der Löschtaste 232b entfernt
werden. In diesen Beispielen fallen die zur Selbststeuerung ausgewählten MVs
durch das Nichtvorhandensein einer entsprechenden Ausgabengrößenauswahl
in der Controllerkonfiguration auf. Beispielsweise stellt 14 die Anzeige 200 von 13 dar, in der aber die
Stellgrößen TOP_DRAW
und SIDE_DRAW keine entsprechende Steuervariable CV enthalten. Auf
diese Weise lässt
man die Stellgrößen TOP_DRAW
und SIDE_DRAW umlaufen. Die Anzeige 200 von 13 könnte auf die in 14 dargestellte abgeändert werden,
indem zuerst das Paar BOT_TEMP und TOP_DRAW in der Anzeige 200 ausgewählt und
dann die Löschtaste 232b gewählt wird.
Als Nächstes
könnte
das Paar SIDE_END_POINT und SIDE_DRAW in der Anzeige 200 ausgewählt und
dann die Löschtaste 232b gewählt werden.
In der Anzeige 200 von 14 werden
dann die Größen BOT_TEMP
und SIDE_END_POINT in die Spalte 228 der verfügbaren Größen gesetzt.
Zusätzlich
unterscheidet sich die Bedingungsanzahl der aktuellen, in 14 dargestellten Konfiguration
von der Bedingungsanzahl der automatischen Konfiguration.It should be noted that in the automatic procedure described above, at most only one (ie, recirculating) MV was selected for self-control to improve controllability. In the manual process, the number of recirculating MVs can be arbitrary. For example, with reference to 11 the selection of the most significant ("Most Significant") CVs or AVs will be repealed 13 Can CVs or AVs using the delete key 232b be removed. In these examples, the self-selected MVs are unaffected by the absence of a corresponding output size selection in the controller configuration. For example 14 the ad 200 from 13 but in which the manipulated variables TOP_DRAW and SIDE_DRAW do not contain a corresponding control variable CV. In this way, the manipulated variables TOP_DRAW and SIDE_DRAW are circulated. The ad 200 from 13 could be on the in 14 Modified by first the pair BOT_TEMP and TOP_DRAW in the display 200 and then the delete key 232b is selected. As Next could be the pair SIDE_END_POINT and SIDE_DRAW in the ad 200 and then the delete key 232b to get voted. In the advertising 200 from 14 then the sizes BOT_TEMP and SIDE_END_POINT are placed in the column 228 set of available sizes. In addition, the condition number of the current, in 14 illustrated configuration of the number of conditions of the automatic configuration.
Auch können mehr MVs als Umlaufgrößen zur
Steuerung verwendet werden, falls die Anzahl an MVs größer ist
als die Anzahl der gesamten CVs zuzüglich AVs. Auf diese Weise
steht dem Controller am Ende immer noch eine quadratische Steuermatrix
mit jeder der MVs als Ausgaben zur Verfügung. Es wird klar, dass das
Verfahren, Umläufe
durchzuführen
und zu verwendet, bedeutet, dass die Anzahl an für die Steuermatrix ausgewählten CVs
und AVs kleiner sein kann als die Anzahl der vom Controller gesteuerten
MVs, wobei der Unterschied in der Umlaufanzahl der MVs als Eingaben
in die Steuermatrix besteht. Darüber
hinaus kann diese Umlaufprozedur in einem Prozess eingesetzt werden,
der weniger CVs zuzüglich
AVs als MVs hat.Also, more MVs than recirculation variables can
Control be used if the number of MVs is greater
as the number of total CVs plus AVs. In this way
the controller still has a square control matrix at the end
with each of the MVs as expenditures available. It becomes clear that that
Procedure, circulations
perform
and used means that the number of CVs selected for the control matrix
and AVs can be less than the number of controllers controlled by the controller
MVs, with the difference in the number of cycles of the MVs as inputs
exists in the control matrix. About that
In addition, this orbital procedure can be used in a process
the less CVs plus
AVs as MVs has.
Natürlich wird die obige Bedingungsanzahl
unter Verwendung der Beharrungszustandsverstärkungen berechnet, und deshalb
definiert die Steuermatrix die Steuerbarkeit auch im Wesentlichen
für den
Beharrungszustand. Die Prozessdynamik (Totzeit, Nachlauf, etc.)
und Modellungewissheit haben auch eine Auswirkung auf die dynamische
Steuerbarkeit, und diese Auswirkungen können dadurch berücksichtigt
werden, dass die Priorität
von Prozessgrößen (z.B.
Steuer- und Hilfsgrößen) geändert wird,
was ihre Mitaufnahme in die Steuermatrix aufgrund der Auswirkungen,
die sie auf die dynamische Steuerung haben, gebieten kann.Of course, the above condition number becomes
calculated using the steady state gains, and therefore
The control matrix also essentially defines the controllability
for the
Steady state. The process dynamics (dead time, caster, etc.)
and modeling uncertainty also have an impact on the dynamic
Controllability, and this impact can be taken into account
be that priority
of process variables (e.g.
Control and auxiliary variables) is changed,
what their inclusion in the control matrix due to the effects,
that they have on the dynamic control can command.
Es ist auch möglich, andere heuristische
Verfahren zu verwenden, die sowohl den Beharrungszustand als auch
die dynamische Steuerbarkeit verbessern sollen. Solch ein Verfahren
würde typischerweise
eine Anzahl von heuristischen Kriterien, möglicherweise einige, die widersprüchlich sind,
aufweisen, die in mehreren Phasen angewandt werden, um eine Steuermatrix
zu bilden und dadurch einen angemessenen Satz von Controllereingaben
auszuwählen,
die gewisse Verbesserungen der Steuermatrix bereitstellen. In einem
solchen heuristischen Ver fahren werden die CVs und die AVs durch
MV basierend auf dem höchsten
Verstärkungsverhältnis gruppiert.
Dann wird für
jede MV-Gruppierung die eine Prozessausgabe mit der schnellsten
Dynamik und signifikanter Verstärkung
ausgewählt.
Dieser Auswahlprozess kann einen Konfidenzintervall berücksichtigen
und den CVs den Vorzug vor den AVs geben (wobei sonst alle gleich
sind). Das Prozessmodellgeneratorprogramm verwendet dann die Parameter,
die während
der Herstellung der MPC-Steuerung aus jeder Gruppe ausgewählt wurden.
Da nur ein Parameter für
jede MV ausgewählt
wird, ist die Antwortmatrix quadratisch und kann invertiert werden.It is also possible other heuristic
To use methods that both the steady state and
to improve dynamic controllability. Such a procedure
would typically
a number of heuristic criteria, possibly some that are contradictory,
which are applied in multiple phases to a control matrix
and thereby form an appropriate set of controller inputs
select
which provide some improvements to the control matrix. In one
such heuristic procedures are the CVs and AVs
MV based on the highest
Reinforcement ratio grouped.
Then it will be for
each MV grouping the one process output with the fastest
Dynamics and significant amplification
selected.
This selection process can take into account a confidence interval
and the CVs in preference to the AVs (otherwise all the same
are). The process model generator program then uses the parameters
the while
the production of MPC control from each group.
As only one parameter for
each MV selected
is, the response matrix is square and can be inverted.
Jedenfalls erzeugt nach der Auswahl
der Teilmenge von M (oder weniger) Steuer- und Hilfsgrößeneingaben
in den MPC-Controller ein Block 124 von 3 aus der bestimmten quadratischen Steuermatrix
das Prozessmodell oder den Controller, das/der im MPC-Steueralgorithmus 86 von 2 verwendet werden soll. Bekanntlich
ist dieser Controllerherstellungsschritt eine rechenintensive Prozedur.
Primäre
Abstimmungsfaktoren für
die Controllerherstellung sind „Penalty on Move"-Parameter (PM-Parameter)
der Controller-Stellgrößen. Eine
Analyse hat gezeigt, dass Totzeit ein wichtiger Faktor bei der Berechnung
von PM ist, während
Verstärkung
sich natürlich
stark auf die Controllerbewegungen auswirkt. Die folgende Experimentalformel
trägt sowohl
der Totzeit als auch der Verstärkung
beim Schätzen
eines PM-Faktors Rechnung, der für
einen stabilen und reaktionsschnellen MPC-Ablauf für Modellfehler
von bis zu 50% sorgt: worin DTi die
Totzeit in MPC-Abtastungen für
ein MVi-CVj-Paar ist, Gi die Verstärkung (dimensionslos)
für das MVi-CVj-Paar
ist, und die Paarbildung diejenige ist, die während der quadratischen Controllerkonfiguration
aufgebaut wird. Die Quadratmatrixpaarbildung liefert deshalb PM-Werte,
die dazu beitragen, die miteinander in Konflikt stehenden Controllerbedürfnisse
nach Leistung und Robustheit zu erfüllen.In any case, after selecting the subset of M (or less) control and auxiliary size inputs into the MPC controller, a block is generated 124 from 3 from the particular quadratic control matrix, the process model or controller that is in the MPC control algorithm 86 from 2 should be used. As is known, this controller manufacturing step is a computationally intensive procedure. Primary tuning factors for controller manufacturing are "Penalty on Move" (PM) parameters of the controller manipulated variables An analysis has shown that dead time is an important factor in the calculation of PM, while amplification naturally has a major impact on controller movements. The following experimental formula accounts for both dead time and gain in estimating a PM factor, which provides a stable and responsive MPC flow for model errors of up to 50%: where DT i is the dead time in MPC samples for an MVi-CVj pair, G i is the gain (dimensionless) for the MVi-CVj pair, and pairing is the one established during the quadratic controller configuration. Square matrix pairing therefore provides PM values that help meet the conflicting controller needs for performance and robustness.
Ein Block 126 lädt dann
dieses MPC-Prozessmodell (mit der inhärenten Steuermatrix) oder den
Controller und nötigenfalls
die Schrittantworten und die Beharrungszustandsschrittantwortverstärkungsmatrix
auf den Steuer-/Regelblock 38 herunter, und diese Daten
werden in den Steuer-/Regelblock 38 für den Betrieb eingegliedert.
Zu diesem Zeitpunkt ist der Steuer-/Regelblock 38 bereit
für den
Online-Betrieb im Rahmen des Prozesses 50.A block 126 then loads this MPC process model (with the inherent control matrix) or the controller and, if necessary, the step responses and the steady state step response gain matrix onto the control block 38 down, and these data will be in the control block 38 integrated for the operation. At this time, the control block is 38 ready for online operation as part of the process 50 ,
Falls gewünscht können die Prozessschrittantworten
rekonfiguriert oder auf eine andere Weise bereitgestellt werden,
als diese Schrittantworten generiert wurden. Zum Beispiel kann eine
der Schrittantworten aus verschiedenen Modellen herauskopiert und
in die Bildschirmmasken beispielsweise der 10 – 12 gestellt werden, um die
Schrittantworten einer bestimmten Steuer- oder Hilfsgröße auf eine
Stell- oder Störgröße festzulegen. 15 stellt eine Bildschirmanzeige
dar, bei der der Benutzer eine der Schrittantworten eines bestimmten
Prozesses oder Modells auswählen
und kopieren und dann selbige Antwort in ein anderes Modell ziehen
oder einfügen
und diese Schrittantwort in das neue Modell einfügen kann, um es dadurch dem
Benutzer zu ermöglichen,
manuell ein Schrittantwortmodell zu spezifizieren. Natürlich kann
der Benutzer als Teil dieses Vorgangs eines oder mehrere der automatisch
generierten Schrittantwortmodelle wie zuvor beschrieben löschen.If desired, the process step responses may be reconfigured or provided in some other way than these step responses were generated. For example, one of the step responses may be copied out of different models and into the screen masks, for example, the 10 - 12 to set the step responses of a particular control or auxiliary quantity to a manipulated or disturbing variable. 15 FIG. 12 illustrates a screen display where the user can select and copy one of the step responses of a particular process or model and then drag or paste the same response into another model and manually insert that step response into the new model, thereby enabling the user to specify a step response model. Of course, the user can be part of this Delete one or more of the automatically generated step response models as described above.
16 stellt
eine Bildschirmanzeige dar, bei der der Benutzer im Besonderen eine
der Schrittantworten anschauen kann (hier für die Schrittantwort TOP_END_POINT
im Gegensatz zu TOP_DRAW). Die Parameter für diese Schrittantwort wie
Beharrungszustandsverstärkung,
Ansprechzeit, erstrangige Zeitkonstante und Quadratfehler werden
dem Benutzer oder Bediener zur bequemen Bezugnahme auf der Anzeige
dargestellt. Falls gewünscht
kann der Benutzer die Eigenschaften dieser Schrittantwort anschauen
oder ändern,
indem er andere Parameter spezifiziert, wie eine andere Verstärkung oder
Zeitkonstante, falls das so gewünscht wird.
Falls der Benutzer eine unterschiedliche Verstärkung oder einen anderen Parameter
festlegt, kann das Schrittantwortmodell mathematisch so regeneriert
werden, dass es diesen neuen Parameter oder Parametersatz aufweist.
Dieser Vorgang ist dann von Nutzen, wenn der Benutzer die Parameter
der Schrittantwort kennt und die generierte Schrittantwort ändern muss,
damit sie mit diesen Parametern übereinstimmt
oder sie erfüllt. Änderungen
am Schrittantwortmodell werden wiederum in der Paarbildung und Herstellung
der Quadratsteuermatrix reflektiert, da die Verstärkungs-
und Ansprechdynamik verwendet wird. 16 represents a screen display in which the user can in particular view one of the step responses (here for the step response TOP_END_POINT as opposed to TOP_DRAW). The parameters for this step response, such as steady state gain, response time, first order time constant, and squared errors are presented to the user or operator for convenient reference to the display. If desired, the user may view or change the properties of this step response by specifying other parameters, such as another gain or time constant, if so desired. If the user sets a different gain or other parameter, the step response model may be mathematically regenerated to include this new parameter or parameter set. This process is useful when the user knows the parameters of the step response and must change the generated step response to match or meet these parameters. Changes to the step response model are in turn reflected in the pairing and production of the square control matrix because the gain and response dynamics are used.
Nun sind mit Bezug auf 4 die allgemeinen Schritte
dargestellt, die während
jedes Operationszyklus oder jeder Abtastung des fortgeschrittenen
Steuer/Regelblocks 38, wie unter Verwendung des Ablaufdiagramms 90a von 3 hergestellt, durchgeführt werden,
während
der Prozess 50 online abläuft. Bei einem Block 150 erhält und verarbeitet
der MPC-Controller 52 (2)
die Messwerte der Steuer- und Hilfsgrößen CV und AV. Insbesondere
verarbeitet das Steuervorhersageprozessmodell die CV-, AV- und DV-Messungen
oder -Eingaben, um den zukünftigen
Steuerparametervektor sowie die vorhergesagten Beharrungszustandssteuergrößen und
-hilfsgrößen CVSS und AVSS herzustellen.Well, with respect to 4 the general steps shown during each cycle of operation or each scan of the advanced control block 38 as using the flowchart 90a from 3 produced, performed during the process 50 runs online. At a block 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 variables and auxiliary variables CV SS and AV SS .
Als Nächstes verarbeitet oder filtert
bei einem Block 152 der Eingabeverarbeitungs-/Filterblock 58 (2) die vorhergesagten, vom
MPC-Controller 52 gebildeten Steuer-, Hilfs- und Stellgrößen CVSS, AVSS und MVSS und stellt dem Optimierer 54 diese
gefilterten Werte zur Verfügung.
Bei einem Block 154 führt
der Optimierer 54 standardmäßige LP-Verfahren durch, um
den Satz von M Zielstellgrößen MVT bereitzustellen, welche die ausgewählte oder
standardmäßige Zielfunktion
maximieren oder minimieren, während
keine der Grenzen der Hilfs- und Stellgrößen verletzt wird und während die
Steuergrößen auf
ihrem festgelegten Sollwert oder innerhalb der für diese Größen festgesetzten Bereichen
gehalten werden. Allgemein ausgedrückt berechnet der Optimierer 54 eine
Zielstellgrößenlösung MVT, indem er die Steuer- und die Hilfsgrößen jeweils
in ihre Grenzen zwingt. Wie vorstehend festgestellt, wird in vielen
Fällen
eine Lösung
bestehen, bei der sich die Steuergrößen jeweils auf ihrem Sollwert
befinden (der anfänglich
als eine, der Steuergröße gesetzte
Obergrenze behandelt wird), während
die Hilfsgrößen jeweils
innerhalb ihrer jeweiligen Zwangsgrenzen bleiben. Ist das der Fall,
muss der Optimierer 54 nur die bestimmten Zielstellgrößen MVT ausgeben, die ein optimales Ergebnis für die Zielfunktion
erbringen.Next, it processes or filters on a block 152 the input processing / filter block 58 ( 2 ) the predicted, from the MPC controller 52 formed control, auxiliary and manipulated variables CV SS , AV SS and MV SS and provides the optimizer 54 these filtered values are available. At a block 154 leads the optimizer 54 standard LP techniques to provide the set of M target manipulated variables MV T that maximize or minimize the selected or default objective function while not violating any of the limits of the auxiliaries and manipulated variables, and while the control variables are at or within their setpoint Sizes fixed areas. Generally speaking, the optimizer calculates 54 a target size solution MV T , by forcing the control and auxiliary variables in each case. As stated above, in many cases there will be a solution where the control quantities are each at their setpoint (which is initially treated as an upper limit set to the control amount) while the auxiliary quantities each remain within their respective constraints. If that's the case, the optimizer needs to 54 only the specific target manipulated variables MV T spend that provide an optimal result for the objective function.
In machen Fällen jedoch kann es aufgrund
von Randbedingungen, die für
einige oder alle der Hilfs- oder Stellgrößen zu eng gesteckt sind, unmöglich sein,
einen Operationspunkt zu finden, bei dem sich alle Steuergrößen auf
ihrem Sollwert und alle Hilfsgrößen innerhalb
ihrer jeweiligen Zwangsgrenzen befinden, weil eine solche Lösung nicht
existiert. In diesen Fällen
kann, wie zuvor angemerkt, der Optimierer 54 eine Lockerung
der festgelegten Sollwertbereiche der Steuergrößen zulassen, um zu versuchen,
einen Operationspunkt zu finden, bei dem die Hilfsgrößen innerhalb
ihrer jeweiligen Grenzen wirken. Besteht in diesem Falle keine Lösung, kann
der Optimierer eine oder mehrere der Hilfsgrößenzwangsgrenzen als Grenze
im Rahmen der Lösung
fallen lassen und/oder kann den Steuergrößensollwertbereich im Rahmen
der Lösung
fallen lassen und statt dessen den optimalen Prozessoperationspunkt
bestimmen und die fallengelassenen Hilfsgrößenzwangsgrenzen und/oder den
fallengelassenen Steuergrößensollwertbereich
ignorieren. Hier wählt
der Optimierer, welche Hilfs- oder Steuergröße fallengelassen werden soll,
basierend auf den jeweiligen Gewichtungen, die für die Steuer- und Hilfsgrößen jeweils
vorgesehen sind (wobei beispielsweise die unterste Gewichtung oder
höchste
Priorität
zuerst fallengelassen wird). Der Optimierer 54 fährt fort,
Hilfs- oder Steuergrößen basierend
auf ihren vorgesehenen Gewichtungen und Prioritäten fallen zu lassen, bis er
eine Zielstellgrößenlösung (MVT-Lösung)
findet, bei der für
die übrigen
Steuer- oder Hilfsgrößen mit
höherer
Priorität,
alle Sollwertbereiche für
die Steuergrößen und
die Grenzen für
die Hilfsgrößen eingehalten
werden.In some cases, however, due to constraints that are too narrow for some or all of the auxiliaries or manipulated variables, it may be impossible to find an operation point where all the control variables are at their setpoint and all the auxiliary variables are within their respective constraints. because such a solution does not exist. In these cases, as previously noted, the optimizer 54 allow relaxation of the setpoint setpoint ranges of the control variables to attempt to find an operation point where the auxiliary variables operate within their respective limits. If there is no solution in this case, the optimizer may drop one or more of the auxiliary force constraint limits as a solution and / or may drop the control setpoint range within the solution and instead determine the optimal process operation point and the dropped auxiliary force constraints and / or ignore the dropped control value setpoint range. Here, the optimizer chooses which auxiliary or control quantity to drop based on the respective weights provided for the control and auxiliary quantities, respectively (for example, the lowest weighting or highest priority being dropped first). The optimizer 54 Continues to drop helper or control quantities based on their intended weights and priorities until it finds a target size solution (MV T solution) for which the other higher priority control or auxiliary quantities, all setpoint ranges for the control quantities, and the Limits for the auxiliary sizes are met.
Als Nächstes verwendet bei einem
Block 156 der Zielumsetzungsblock 55 (2) die Beharrungszustandsschrittantwortverstärkungsmatrix,
um die Zielwerte der Steuer- und Hilfsgrößen CVT und AVT aus den Zielwerten für die Stellgrößen MVT zu bestimmen, und stellt die ausgewählte N (wobei
N kleiner oder gleich M ist) Teilmenge dieser Werte dem MPC-Controller 52 als
Zieleingaben zur Verfügung.
Bei einem Block 158 verwendet der MPC-Controller 52 die
daraus abgeleitete Steuermatrix oder -logik, um wie zuvor beschrieben
als unbeschränkter
MPC-Controller zu
arbeiten, um den zukünftigen
CV- und AV-Vektor für
diese Zielwerte zu bestimmen, führt
eine Vektorsubtraktion mit dem zukünftigen Steuerparametervektor
durch, um den zukünftigen
Fehlervektor herzustellen. Der MPC-Algorithmus wirkt auf eine bekannte
Weise, um die Beharrungszustandsstellgröße MVSS basierend
auf dem Prozessmodell zu bestimmen, das aus den M-mal-M-Schrittantworten
gebildet wurde, und stellt diese MVSS-Werte
dem Eingabeverarbeitungs/Filterblock 58 (2) zur Verfügung. Bei einem Block 160 bestimmt
der MPC-Algorithmus
auch die MV-Schritte, die an den Prozess 50 ausgegeben
werden sollen, und gibt den ersten dieser Schritte auf irgendeine
angemessene Weise an den Prozess 50 aus.Next used in a block 156 the target conversion block 55 ( 2 ) the steady state step response gain matrix to determine the target values of the control and auxiliary quantities CV T and AV T from the target values for the manipulated variables MV T , and sets the selected N (where N is less than or equal to M) subset of these values to the MPC controller 52 as destination input available. At a block 158 uses the MPC controller 52 the derived control matrix or logic to operate as an unrestricted MPC controller as previously described to determine the future CV and AV vector for those target values performs vector subtraction on the future control parameter vector to produce the future error vector. The MPC algorithm operates in a known manner to determine the steady state manipulated variable MV SS based on the process model formed from the M by M step responses, and places these MV SS values into the input processing / filtering block 58 ( 2 ) to disposal. At a block 160 The MPC algorithm also determines the MV steps involved in the process 50 and gives the first of these steps to the process in some appropriate way 50 out.
Während
des Ablaufs laufen eine oder mehrere Überwachungsanwendungen beispielsweise
in einem der Arbeitsplatzrechner 13 ab, können Daten
aus dem fortgeschrittenen Steuer-/Regelblock oder anderen damit
verbundenen Funktionsblöcken
entweder direkt oder indirekt über
die Datensammlung 12 abgerufen werden, und dem Benutzer
oder Bediener eine oder mehrere Sicht- oder Diagnosebildschirmmasken
zur Verfügung
gestellt werden, um den Betriebszustand des fortgeschrittenen Steuer-/Regelblocks
anzuzeigen. Die Funktionsblocktechnologie weist Kaskadeneingaben
(CAS_IN) und Kaskadenferneingaben (RCAS_IN) sowie entsprechende
Rückberechnungsausgaben
(BCAL_OUT und RCAS_OUT) auf sowohl den Steuer- als auch Ausgabefunktionsblöcken auf.
Unter Verwendung dieser Verknüpfungen
ist es möglich,
eine optimierte MPC-Überwachungssteuerungsstrategie über die
bestehende Steuerungsstrategie zu legen, und diese überwachte
Steuerungsstrategie kann unter Verwendung eines oder mehrerer Sichtbildschirme
oder einer oder mehrerer Anzeigen dargestellt werden. Gleichermaßen können auch
Ziele für
den optimierten MPC-Controller aus einer Strategie abgeändert werden,
wenn das so gewünscht
wird.During the process, one or more monitoring applications are running, for example, in one of the workstations 13 from, data from the advanced control block or other associated function blocks may be either directly or indirectly via the data collection 12 one or more visual or diagnostic screens are provided to the user or operator to indicate the operating status of the advanced control block. Function block technology includes cascade inputs (CAS_IN) and cascade remote inputs (RCAS_IN), as well as corresponding backscaling outputs (BCAL_OUT and RCAS_OUT) on both the control and output function blocks. Using these links, it is possible to lay an optimized MPC supervisory control strategy over the existing control strategy, and this monitored control strategy can be presented using one or more visual screens or one or more displays. Likewise, targets for the optimized MPC controller may be changed from a strategy if so desired.
17 ist
eine beispielhafte Bildschirmanzeige, die von einer oder mehreren
Sichtanwendungen erzeugt werden können, die einen Optimiererdialogbildschirm
darstellen, welcher dem Bediener Daten liefert, die den Betrieb
des fortgeschrittenen Steuer-/Regelblocks während dessen Ablauf betreffen.
Insbesondere sind die Eingaben in den Prozess (die Stellgrößen MV)
und die Ausgaben (die Steuer- und Hilfsgrößen CV und AV) gesondert dargestellt.
Für jede
dieser Größen stellt
die Bildschirmanzeige den Namen (Deskriptor) der Größe, den
aktuellen Wert, wie er gemessen wurde, gegebenenfalls einen Sollwert,
den Zielwert, wie er vom Optimierer berechnet wurde, die Einheiten
und Einheitswerte der Größenänderung
und eine Angabe der aktuellen Größenwerte
dar. Für
die Ausgabegrößen ist
auch eine Angabe, ob diese Größe eine
der ausgewählten
Größen ist,
die im MPC-Controller verwendet werden, der Vorhersagewert dieser
Größe, wie
er vom MPC-Controller bestimmt wurde, und die voreingestellte Priorität für diese
Größe angegeben.
Diese Bildschirmmaske ermöglicht
es dem Bediener, den gegenwärtigen
Betriebszustand des fortgeschrittenen Steuer-/Regelblocks zu sichten
und die Art und Weise, mit der der fortgeschrittene Steuer-/Regelblock
die Steuerung durchführt.
Darüber
hinaus kann der Benutzer einige Steuerparameter für Fern sollwertfähigkeit
konfigurieren, so dass externe Anwendungen Betriebsziele für die Durchsatzkoordination
einstellen können. 17 FIG. 10 is an exemplary screen display that may be generated by one or more visual applications that represent an optimizer dialog screen that provides the operator with data pertaining to the operation of the advanced control block during its expiration. In particular, the inputs to the process (the manipulated variables MV) and the outputs (the control and auxiliary variables CV and AV) are shown separately. For each of these sizes, the screen displays the name (descriptor) of the size, the current value as measured, optionally a setpoint, the target value as calculated by the optimizer, the units and unit values of resizing, and an indication of the actual size values The output sizes also include an indication of whether this size is one of the selected sizes used in the MPC controller, the predicted value of that size as determined by the MPC controller, and the default priority for that size. This screen allows the operator to view the current operating state of the advanced control block and the manner in which the advanced control block performs the control. In addition, the user can configure some remote remediation capability control parameters so that external applications can set throughput goals for throughput coordination.
18 ist
eine Bildschirmanzeige, die von einer Diagnoseanwendung generiert
werden kann, die eine Diagnosebildschirmmaske darstellt, die einem
Benutzer oder Bediener bereitgestellt werden kann, um eine Diagnose
am fortgeschrittenen Steuer-/Regelblock vorzunehmen. Insbesondere
stellt die Diagnosebildschirmmaske von 18 die Steuer- und Randbedingungs(hilfs)größen, die
Stellgrößen und
die Störgrößen separat dar.
Für jede
wird der Name oder Deskriptor zusammen mit einer Angabe (in der
ersten Spalte) geliefert, ob ein Fehler- oder Warnzustand für diese
Größe existiert.
Solch ein Fehler bzw. solch eine Warnung kann graphisch unter Verwendung
beispielsweise eines grünen
Hakens oder eines roten „x" oder auf irgendeine
andere gewünschte
Weise angezeigt werden. Es ist auch ein Wert oder Status für jede dieser
Größen angegeben.
Für die
Stellgrößen ist
der Wert und Status der Back Cal-Größe (rückberechnete oder rückgeführte Größe) für diese
Signale dargestellt. Wie klar wird, kann diese Bildschirmmaske dazu
verwendet werden, eine Diagnose am fortgeschrittenen Steuer-/Regelblock
vorzunehmen, indem der Bediener mit den nötigen Daten versorgt wird, um
Probleme innerhalb des Steuersystems zu bestimmen. Natürlich können dem
Bediener auch andere Arten von Bildschirmmasken und Daten bereitgestellt
werden, um ihn in die Lage zu versetzen, den Betrieb des fortgeschrittenen
Steuer-/Regelblocks und des Moduls, in dem er implementiert ist,
zu sichten und eine Diagnose daran durchzuführen. 18 is a screen display that may be generated by a diagnostic application that represents a diagnostic screen mask that may be provided to a user or operator to make a diagnosis on the advanced control block. In particular, the diagnostic screen of 18 For each, the name or descriptor is supplied with an indication (in the first column) of whether an error or warning condition exists for that quantity. Such an error or warning may be displayed graphically using, for example, a green tick or a red "x" or in any other desired manner, and a value or status is also given for each of these quantities It will be appreciated that this screen can be used to diagnose the advanced control block by providing the operator with the necessary data to Of course, the operator may be provided with other types of screens and data to enable him to view the operation of the advanced control block and the module in which it is implemented to make a diagnosis on it.
Während
der fortgeschrittene Steuer-/Regelblock hier als ein Optimierer
umfassend dargestellt ist, der im selben Funktionsblock angeordnet
und deshalb in derselben Vorrichtung ausgeführt ist wie der MPC-Controller,
ist es auch möglich,
den Optimierer in einer gesonderten Vorrichtung unterzubringen.
Insbesondere kann der Optimierer in einer anderen Vorrichtung wie
beispielsweise einem der Benutzerarbeitsplatzrechner 13 untergebracht
werden und mit dem MPC-Controller wie im Zusammenhang mit 2 beschrieben während jeder
Ausführung
oder Abtastung kommunizieren, um die Zielstellgrößen (MVT)
oder die Teilmenge der Steuer- und Hilfsgrößen (CV und AV) zu berechnen
und dem MPC-Controller zur Verfügung
zu stellen, die daraus berechnet wurden. Selbstverständlich kann
eine spezielle Schnittstelle, wie eine bekannte OPC-Schnittstelle
verwendet werden, um die Kommunikationsschnittstelle zwischen dem
Controller und dem Funktionsblock, der den MPC-Controller beinhaltet,
und dem Arbeitsplatzrechner oder einem anderen Computer bereitzustellen, der
den Optimierer eingebaut hat oder ihn ausführt. Wie in der im Hinblick
auf 2 beschriebenen
Ausführungsform,
müssen
der Optimierer und der MPC-Controller während jedes Abtastzyklus noch
miteinander kommunizieren, um eine integrierte, optimierte MPC-Steuerung
durchzuführen.
In diesem Fall aber können auch
andere gewünschte
Arten von Optimiereren verwendet werden, wie bekannte oder EchtzeitOptimierere, die
in einer Prozesssteuerungsumgebung bereits vorhanden sein können. Dieses
Merkmal kann auch zum Vorteil genutzt werden, wenn das Optimierungsproblem
nicht linear ist und die Lösung
nichtlineare Programmierungstechniken erfordert.While the advanced control block is shown here as an optimizer located in the same functional block and therefore embodied in the same device as the MPC controller, it is also possible to accommodate the optimizer in a separate device. In particular, the optimizer may be in another device, such as one of the user workstations 13 be accommodated and connected with the MPC controller as related to 2 described during each execution or sampling to calculate the target manipulated variables (MV T ) or the subset of the control and auxiliary variables (CV and AV) and to provide the MPC controller, which were calculated therefrom. Of course, a special interface, such as a known OPC interface, may be used to provide the communications interface between the controller and the functional block including the MPC controller and the workstation or other computer that has installed or is running the optimizer. As for in terms of 2 described embodiment, the optimizer and the MPC controller during each scanning cycle still need to communicate with each other to perform an integrated, optimized MPC control. In this case, however, other desired types of optimizers may be used, such as known or real-time optimizers, which may already be present in a process control environment. This feature can also be used to advantage if the optimization problem is not linear and the solution is non-linear tioning techniques.
Während
der fortgeschrittene Steuer-/Regelblock und andere hier beschriebenen
Blöcke
und Programme hier so beschrieben wurden, dass sie zusammen mit
Fieldbus- und standardmäßigen 4-20
ma-Geräten
verwendet werden, können
sie natürlich
auch unter Verwendung irgendeines anderen Prozesssteuerungskommunikationsprotokolls
oder irgendeiner anderen Programmierumgebung implementiert sein,
und können mit
irgendwelchen anderen Arten von Geräten, Funktionsblöcken oder
Controllern verwendet werden. Obwohl die fortgeschrittenen Steuerblöcke und
die dazugehörigen,
hier beschriebenen Generierungs- und Testprogramme vorzugsweise
in Software implementiert sind, können sie auch in Hardware,
Firmware, etc. implementiert werden, und können von irgendeinem anderen
Prozessor ausgeführt
werden, der einem Prozesssteuerungssystem zugeordnet ist. Somit
kann das hier beschriebene Programm 40 in einer standardmäßigen Universal-CPU
oder einer speziell entwickelten Hard- oder Firmware, wie beispielsweise
ASICs implementiert werden, wenn das so gewünscht wird. Wenn sie in Software
implementiert sind, kann die Software in jedem computerlesbaren
Speicher wie einer Magnetplatte, Laserplatte, Bildplatte oder einem
anderen Speichermedium, auf einen RAM oder ROM eines Computers oder
Prozessors, etc. hinterlegt werden. Gleichermaßen kann diese Software einem
Benutzer oder einem Prozesssteuerungssystem über jedes bekannte oder gewünschte Übergabeverfahren übergeben
werden, wie beispielsweise auf einer computerlesbaren Diskette oder
irgendeinem tragbaren Computerspeichermechanismus oder kann über einen
Kommunikationskanal wie eine Telefonleitung, das Internet, etc.
moduliert werden (was als äqui valent
oder austauschbar mit der Bereitstellung einer solchen Software über ein
tragbares Speichermedium angesehen wird).Of course, while the advanced control block and other blocks and programs described herein have been described as being used with Fieldbus and standard 4-20 ma devices, they may also be implemented using any other process control communication protocol or programming environment and can be used with any other types of devices, function blocks or controllers. Although the advanced control blocks and associated generation and testing programs described herein are preferably implemented in software, they may also be implemented in hardware, firmware, etc., and may be executed by any other processor associated with a process control system. Thus, the program described here 40 can be implemented in a standard general-purpose CPU or custom hardware or firmware, such as ASICs, if so desired. When implemented in software, the software may be stored in any computer-readable memory such as a magnetic disk, laser disk, optical disk or other storage medium, RAM or ROM of a computer or processor, etc. Likewise, this software may be provided to a user or process control system via any known or desired handover method, such as on a computer readable floppy disk or any portable computer storage mechanism, or modulated over a communication channel such as a telephone line, the Internet, etc. (which may be considered equivalent or is considered interchangeable with the provision of such software via a portable storage medium).
Während
somit die vorliegende Erfindung mit Bezug auf spezielle Beispiele
beschrieben wurde, die die Erfindung nur veranschaulichen und nicht
einschränken
sollen, wird dem Fachmann klar sein, dass Änderungen, Hinzufügungen oder
Weglassungen an den offenbarten Ausführungsformen vorgenommen werden können, ohne
dass dabei vom Aussagegehalt und Umfang der Erfindung abgewichen
würde.While
thus the present invention with reference to specific examples
has been described, which illustrate the invention and not
restrict
should be clear to the skilled person that changes, additions or
Leaks to the disclosed embodiments can be made without
that deviated from the content and scope of the invention
would.
Bezugszeichenliste LIST OF REFERENCE NUMBERS