-
Technisches Gebiet
-
Die vorliegende Erfindung betrifft allgemein Prozesssteuersysteme/Prozeßregelelemente und insbesondere die Verwendung von hochentwickelten Steuerblöcken wie Modellvorhersage-Steuerblöcken oder Optimierern in Prozeßsteuersystemen mit nichtlinearem Ansprechverhalten.
-
Beschreibung verwandter Fachgebiete
-
Prozeßsteuersysteme, beispielsweise verteilte oder skalierbare Prozeßsteuersysteme wie die in chemischen, petrochemischen oder anderen Prozessen verwendeten, enthalten üblicherweise eine oder mehrere Prozeßsteuereinrichtungen, welche über analoge, digitale oder kombinierte analoge/digitale Busse kommunikativ miteinander, mit mindestens einer Host- oder Bediener-Workstation und mit einem oder mehreren Feldgeräten gekoppelt sind. Die Feldgeräte, welche zum Beispiel Ventile, Ventilstelleinrichtungen, Schalter und Geber (z. B. Temperatur-, Druck- und Durchflusssensoren) sein können, führen im Prozeß Funktionen wie das Öffnen oder Schließen von Ventilen und das Messen von Prozeßparametern durch. Die Prozeßsteuereinrichtung empfängt Signale, welche über Prozeßmessungen Aufschluss geben, die von den Feldgeräten gemacht wurden, und/oder andere Informationen, welche die Feldgeräte betreffen, verwendet diese Informationen zur Implementierung einer Steuerroutine und erzeugt dann Steuersignale, welche über die Busse an die Feldgeräte gesendet werden, um den Betrieb des Prozesses zu steuern. Informationen von den Feldgeräten und der Steuereinrichtung werden üblicherweise einer oder mehreren von der Bediener-Workstation ausgeführten Anwendungen verfügbar gemacht, um einen Bediener in die Lage zu versetzen, jede gewünschte Funktion bezüglich des Prozesses, beispielsweise das Anzeigen des aktuellen Zustands des Prozesses, das Verändern des Prozeßbetriebs usw., durchzuführen.
-
In der Vergangenheit wurden herkömmliche Feldgeräte verwendet, um analoge(z. B. 4-bis-20-Milliampere-)Signale über einen Analogbus oder Analogleitungen zur Prozeßsteuereinrichtung zu senden und von dieser zu empfangen. Diese 4–20-mA-Signale waren hinsichtlich ihrer Eigenschaften beschränkt, und zwar insoweit, als sie über zur Steuerung des Betriebs der Einrichtung erforderliche, von der Einrichtung vorgenommene Messungen oder von der Steuereinrichtung erzeugte Steuersignale Aufschluss gaben. Etwa in den letzten zehn Jahren aber setzten sich in der Prozeßsteuerindustrie intelligente Feldgeräte durch, welche einen Mikroprozessor und einen Speicher enthalten. Abgesehen davon, dass sie eine elementare Funktion im Prozeß ausführen, speichern intelligente Feldgeräte die Einrichtung betreffende Daten, kommunizieren in einem digitalen oder kombinierten digitalen und analogen Format mit der Steuereinrichtung und/oder anderen Einrichtungen und führen untergeordnete Aufgaben wie Selbstkalibrierung, Identifizierung, Diagnose usw. aus. Eine Reihe von standardisierten und offenen intelligenten Gerätekommunikationsprotokollen wie HART®-, PROFIBUS®-, WORLDFIP®-, Device-Net®- und CAN-Protokoll wurden entwickelt, um die gemeinsame Verwendung von verschiedenen Herstellern gebauter intelligenter Feldgeräte innerhalb desselben Prozeßsteuernetzwerks zu ermöglichen. Außerdem verwendet das von der Fieldbus Foundation verbreitete volldigitale Zweidrahtbus-Protokoll, welches als ”FoundationTM Fieldbus”-(im folgenden ”Fieldbus”-)Protokoll bekannt ist, Funktionsblöcke, welche sich in verschiedenen Feldgeräten befinden, um Steueroperationen auszuführen, die früher in einer zentralisierten Steuereinrichtung ausgeführt wurden. In diesem Fall sind die Fieldbus-Feldgeräte in der Lage, einen oder mehrere Funktionsblöcke zu speichern und auszuführen, von denen jeder Eingaben von anderen Funktionsblöcken empfängt und/oder Ausgaben an andere Funktionsblöcke liefert (entweder innerhalb derselben Einrichtung oder innerhalb verschiedener Einrichtungen) und eine beliebige Prozeßsteueroperation wie das Messen oder Erfassen eines Prozeßparameters, das Steuern einer Einrichtung oder das Ausführen einer Steueroperation wie das Implementieren einer Proportional-Integrier-Differenzier-(PID-)Steuerroutine ausführt. Die verschiedenen Funktionsblöcke in einem Prozeßsteuersystem sind so konfiguriert, dass sie (z. B. über einen Bus) miteinander kommunizieren, um eine oder mehrere Prozeßsteuerschleifen zu bilden, deren einzelne Funktionen über den ganzen Prozeß verteilt und somit dezentralisiert sind.
-
Auf jeden Fall sind die Prozeßsteuereinrichtungen (oder Feldgeräte) üblicherweise dafür programmiert, für jede einer Anzahl von verschiedenen, für einen Prozeß definierten oder in einem Prozeß enthaltenen Schleifen, beispielsweise Durchfluss-Steuerschleifen, Temperatur-Steuerschleifen, Druck-Steuerschleifen usw., einen anderen Algorithmus, eine andere Subroutine oder eine andere Steuerschleife (welche allesamt Steuerroutinen sind) auszuführen. Allgemein umfasst jede solche Steuerschleife einen oder mehrere Eingabeblöcke wie z. B. einen Analogeingabe-(AI-)-Funktionsblock, einen Einzelausgabe-Steuerblock wie z. B. einen Proportional-Integrier-Differenzier-(PID-) oder einen Fuzzy-Logic-Steuerungs-Funktionsblock und einen Einzelausgabe-Block, wie z. B. einen Analogausgabe-(AO-)Funktionsblock. Diese Steuerschleifen führen üblicherweise eine Einzeleingabe-/Einzelausgabe-Steuerung durch, weil der Steuerblock eine einzige Ausgabe erzeugt, die zum Steuern einer einzigen Prozeßeingabe wie einer Ventilstellung usw. verwendet wird. In bestimmten Fällen aber ist die Verwendung einer Anzahl von unabhängig arbeitenden Einzeleingabe-/Einzelausgabe-Steuerschleifen nicht sehr effektiv, weil die gesteuerten Prozeßvariablen oder Prozeßausgaben von mehr als einer einzigen Prozeßeingabe beeinflusst werden und sich tatsächlich jede Prozeßeingabe auf den Zustand vieler Prozeßausgaben auswirken kann. Ein Beispiel hierfür könnte zum Beispiel in einem Prozeß mit einem Behälter auftreten, welcher durch zwei Eingangsleitungen gefüllt und durch eine einzige Ausgangsleitung entleert wird, wobei jede Leitung von einem anderen Ventil gesteuert wird und in welchem Temperatur, Druck und Durchsatz des Behälters so gesteuert werden, dass sie auf oder nahe bei gewünschten Werten liegen. Wie oben angedeutet, kann die Steuerung des Durchsatzes, der Temperatur und des Drucks des Behälters mittels einer separaten Durchsatz-Steuerschleife, einer separaten Temperatur-Steuerschleife und einer separaten Druck-Steuerschleife durchgeführt werden. In dieser Situation kann jedoch der Betrieb der Temperatur-Steuerschleife durch Ändern der Einstellung eines der Eingangsventile zwecks Steuern der Temperatur im Behälter bewirken, dass der Druck im Behälter steigt, was zum Beispiel die Druck-Steuerschleife veranlasst, das Auslassventil zu öffnen, um den Druck zu senken. Diese Maßnahme kann dann die Durchsatz-Steuerschleife veranlassen, eines der Eingangsventile zu schließen, was sich auf die Temperatur auswirkt und die Temperatur-Steuerschleife veranlasst, irgendeine andere Maßnahme zu ergreifen. In diesem Beispiel versteht es sich, dass die Einzeleingabe-/Einzelausgabe-Steuerschleifen die Prozeßausgaben (in diesem Fall Durchsatz, Temperatur und Druck) veranlassen können, zu schwingen, ohne jemals einen stationären Zustand zu erreichen, was nicht wünschenswert ist.
-
Modellvorhersage-Steuerung (MPC – Model Predictive Control) oder andere Arten von hochentwickelten Steuerungen wurden in der Vergangenheit verwendet, um in derartigen Situationen eine Steuerung durchzuführen. Allgemein ist Modellvorhersage-Steuerung eine Vielfacheingabe-Vielfachausgabe-Steuerstrategie, in welcher die Auswirkungen des Änderns jeder einzelnen einer Anzahl von Prozeßeingaben auf jede einzelne einer Anzahl von Prozeßausgaben gemessen werden und diese gemessenen Antworten dann verwendet werden, um ein typisches lineares Modell des Prozesses zu erzeugen. Das lineare Modell des Prozesses wird mathematisch invertiert und dann als eine Vielfacheingabe-Vielfachausgabe-Steuereinrichtung verwendet, um auf Grundlage von an den Prozeßeingaben vorgenommenen Änderungen die Prozeßausgaben zu steuern. In manchen Fällen umfasst das Prozeßmodell eine Prozeßausgabe-Ansprechkennlinie für jede der Prozeßeingaben, und diese Kennlinien können auf Grundlage einer an jeder einzelnen der Prozeßeingaben gelieferten Reihe von beispielsweise pseudozufälligen Sprungänderungen erzeugt werden. Diese Ansprechkennlinien können verwendet werden, um den Prozeß auf bekannte Weisen zu modellieren. Modellvorhersage-Steuerung ist nach dem Stand der Technik bekannt, und deshalb werden ihre Eigenschaften hierin nicht beschrieben. Allgemein beschrieben wird Modellvorhersage-Steuerung indes in Qin, S. Joe und Thomas A. Badgwell, ”An Overview of Industrial Model Predictive Control Technology”, AIChE Conference, 1996. Überdies offenbart das
U.S.-Patent Nr. 6,445,963 , dessen Offenbarung hiermit ausdrücklich durch Bezugnahme hierin eingeschlossen wird, ein Verfahren zum Integrieren eines Modellvorhersage-Steuerblocks in ein Prozeßsteuersystem zur Verwendung beim Steuern eines Prozesses.
-
Während Modellvorhersage-Steuerblöcke in Standardprozessen mit Verhaltensweisen, die gewöhnlich mittels linearer Verfahren modelliert werden können, gut funktionieren, ist es schwierig, Modellvorhersage-Steuerblöcke zum Steuern von Prozessen (oder unter Verwendung von Prozeßausgaben), welche nichtlineare Verhaltensweisen aufweisen oder welche eine nichtlineare Beziehung bezüglich der an den Prozeß gelieferten Steuereingaben haben, zu verwenden. Im allgemeinen geht man davon aus, dass MPC-Anwendungen für nichtlineare Prozesse angepasst werden müssen, um im MPC-Block eine nichtlineare Optimierung durchzuführen, eine Erzeugung nichtlinearer Steuereinrichtungen einzuschließen und nichtlineare Modelle anstelle linearer Modelle zu verwenden. Zum Beispiel ist bekannt, dass nichtlineare Modellierung und ein lineares MPC-Verfahren nacheinander durchgeführt werden, um dadurch die Eingaben des MPC-Blocks oder die Steuerausgaben des MPC-Blocks für nichtlineare Prozesse anzupassen. Eine solche nichtlineare Modellierung kann die Form von Erstprinzipmodellen, einer High-Fidelity-Simulation, einer Mischung aus nichtlinearen Verstärkungen und linearer Dynamik (Wiener- oder Hammerstein-Modellen) oder Neuronennetz-Modellen annehmen. Außerdem ist bekannt, dass ein MPC-Verfahren so angepasst wird, dass es nichtlineare Fähigkeiten besitzt, indem ein Neuronennetz verwendet wird, um die Prozeßmodell-Verstärkungen bei jeder Abtastung der Prozeßsteuerroutine neu zu berechnen. Die Neuberechnung der Verstärkungen ist jedoch komplex, bringt die Berechnung von Differentialen aus dem Prozeßmodell und damit zusätzliche Modellierungsfehler mit sich, kann rechentechnisch kostspielig und ziemlich zeitaufwendig zu implementieren sein. Diese Verfahren der MPC-Anpassung sind folglich in der MPC-Logik nur schwierig und komplex zu implementieren und in den meisten Prozeßanlagen-Situationen möglicherweise nicht wirklich gerechtfertigt oder praktisch.
-
Während diese Probleme für Modellvorhersage-Steuereinrichtungen existieren, existieren die gleichen oder ähnliche Probleme bei Entwicklung und Verwendung anderer hochentwickelter Vielfacheingabe-Vielfachausgabe-Steuerblöcke oder -Systeme wie Neuronennetz-Steuereinrichtungen, Mehrvariablen-Fuzzy-Logic-Steuereinrichtungen, Echtzeit-Optimierer usw.
-
US 6 487 459 B1 beschreibt ein Verfahren zur Bereitstellung von unabhängigen statischen und dynamischen Modellen in einer Vorhersage-, Steuerungs- und Optimierungsumgebung, das ein unabhängiges statisches Modell und ein unabhängiges dynamisches Modell nutzt. Das statische Modell ist ein rigoroses Vorhersagemodell, das über einen weiten Bereich von Daten trainiert wird, während das dynamische Modell über einen engen Bereich von Daten trainiert wird. Die Verstärkung K des statischen Modells wird verwendet, um die Verstärkung k des dynamischen Modells zu skalieren.
-
US 6 445 963 B1 bezieht sich auf einen Steuerblock, der eine Mehrfacheingabe-/Mehrfachausgangssteuerung implementiert, wie z. B. eine Modellvorhersagesteuerung innerhalb eines Prozeßsteuersystems. Der Steuerblock wird initiiert, indem ein anfänglicher Steuerblock mit einer generischen Steuerlogik und gewünschten Steuereingängen und Steuerausgängen erzeugt wird, die kommunikativ mit Prozeßausgängen und Prozesseingaben innerhalb einer Prozesssteuerungsroutine verbunden sind. Ein Wellenformgenerator innerhalb des Steuerblocks strukturiert systematisch jeden der Prozesseingänge über die Steuerblockausgänge unter Verwendung von Erregungswellenformen, die für die Verwendung bei der Entwicklung eines Prozessmodells ausgelegt sind.
-
Zusammenfassung der Offenbarung
-
Es werden ein Prozesssteuerelement/Prozeßregelelement gemäß Patentanspruch 1, ein Verfahren zum Steuern eines Prozess gemäß Patentanspruch 5 sowie eine Prozeßsteuereinrichtung gemäß Patentanspruch 10 bereitgestellt.
-
Eine Vielfacheingabe-Vielfachausgabe-Steuerroutine, wie z. B. eine Modellvorhersage-Steuerroutine umfasst ein gewöhnlich lineares Prozessmodell (linear process model), das einen Vorhersagevektor für einen oder mehrere Prozeßausgaben produziert, und ein nichtlineares Prozeßmodell, das ein Vorhersagesignal produziert, welches ein Vorhersagevektor oder ein stationärer Vorhersagewert zum Korrigieren des Vorhersagevektors für die eine oder mehrere der Prozeßausgaben sein kann. Der korrigierte Vorhersagevektor wird dann auf eine normale Weise verwendet, um einen Satz von Steuersignalen zum Steuern des Prozesses zu produzieren. Das nichtlineare Prozeßmodell und die hochentwickelte Steuerroutine, wie beispielsweise die Modellvorhersage-Steuerroutine, können auf bekannte und relativ einfache Weisen, welche dieses System beim Steuern eines Prozesses mit nichtlinearen Eigenschaften einfach implementierbar und verwendbar machen, entwickelt und eingesetzt werden. Ferner braucht dieses System nicht geändert zu werden, um ein nichtlineares Modell in einen Vielfacheingabe-Vielfachausgabe-Steuerblock zu integrieren oder um die vom Vielfacheingabe-Vielfachausgabe-Steuerblock verwendeten Steuereinrichtungs-Verstärkungen neu zu berechnen. Das nichtlineare Prozeßmodell ist überdies einfach zu entwickeln (da es gewöhnlich den nichtlinearen Charakter von einer Ausgabe zu einer oder mehreren Eingaben widerspiegelt oder modelliert) und kann gewöhnlich über den ganzen Betrieb des Prozesses unverändert bleiben.
-
Insbesondere umfasst eine Prozeßsteuereinrichtung, die dafür ausgelegt ist, zum Steuern eines Prozesses mit einem durch einen Satz von Prozeßsteuerungs-Eingangssignalen beeinflussten Satz von Prozeßausgaben verwendet zu werden, eine Vielfacheingabe-Vielfachausgabe-Steuereinrichtung, die dafür ausgelegt ist, eine Angabe der Prozeßausgaben zu empfangen, um den Satz von Prozeßsteuerungs-Eingangssignalen zu entwickeln, und ein Prozeßmodell, welches ein nichtlineares Prozeßmodell sein kann, das dafür ausgelegt ist, den Satz von Prozeßsteuerungs-Eingangssignalen zu empfangen, um ein Vorhersagesignal für eine der Prozeßausgaben zu produzieren. Das Vielfacheingabe-Vielfachausgabe-Steuerelement, welches eine Steuereinrichtung, ein Optimierer usw. sein kann, umfasst ein weiteres Prozeßmodell, welches ein lineares Standard-Prozeßmodell sein kann, das für jede der Prozeßausgaben einen Vorhersagevektor entwickelt, und eine Korrektureinheit, die dafür ausgelegt ist, den Vorhersagevektor für die eine der Prozeßausgaben unter Verwendung des Vorhersagesignals für die eine der Prozeßausgaben zu ändern, um dadurch die Nichtlinearitäten des Prozesses auszugleichen.
-
Kurzbeschreibung der Figuren
-
1 ist ein Block-/Prinzipschaltbild eines Prozeßsteuersystems, welches ein hochentwickeltes Steuersystem mit einem Vielfacheingabe-Vielfachausgabe-Steuerblock umfasst, der so ausgelegt ist, dass er über nichtlineare Vorhersagefähigkeiten verfügt;
-
2 ist ein Blockschaltbild einer Ausführungsform des hochentwickelten Steuersystems aus 1, bei welcher ein Modellvorhersage-Steuerblock und ein Neuronennetz-Prozeßmodell innerhalb einer Prozeßsteuerroutine verbunden sind, um einen Prozeß zu steuern, der nichtlineare Eingabe-/Ausgabeeigenschaften aufweist;
-
3 ist ein detailliertes Blockschaltbild des hochentwickelten Steuersystems aus 2;
-
4 ist ein Diagramm, welches einen vom Modellvorhersage-Steuerblock aus 3 entwickelten Vorhersagevektor in verschiedenen Phasen der Erzeugung und der Kompensierung durch ein von einem nichtlinearen Prozeßmodell entwickeltes Vorhersagesignal veranschaulicht;
-
5 ist ein Blockschaltbild eines hochentwickelten Steuersystems, bei welchem ein Modellvorhersage-Steuerblock und mehrere Neuronennetz-Prozeßmodelle innerhalb einer Prozeßsteuerroutine verbunden sind, um einen Prozeß zu steuern;
-
6 ist ein Blockschaltbild eines hochentwickelten Steuersystems, bei welchem ein Modellvorhersage-Steuerblock und ein hochentwickeltes oder High-Fidelity-Prozeßmodell innerhalb einer Prozeßsteuerroutine verbunden sind, um einen Prozeß zu steuern; und
-
7 ist ein Blockschaltbild eines hochentwickelten Steuersystems, bei welchem ein Optimierer-Block, eine Steuereinrichtung und ein Neuronennetz-Prozeßmodell innerhalb einer Prozeßsteuerroutine verbunden sind, um einen Prozeß zu steuern.
-
Ausführliche Beschreibung
-
Wie 1 zeigt, umfasst ein Prozeßsteuersystem 10 eine Prozeßsteuereinrichtung 12, welche über ein Kommunikationsnetz 18 mit einer Datenprotokolliereinrichtung 14 und einer oder mehreren Host-Workstations oder Computern 16 (welche Personalcomputer, Workstations usw. jeder beliebigen Art sein können, die jeweils über einen Anzeigebildschirm 17 verfügen) verbunden ist. Die Steuereinrichtung 12 ist über Eingangs-/Ausgangs(E/A-)Karten 28 und 29 auch mit Feldgeräten 20–27 verbunden. Das Kommunikationsnetz 18 kann zum Beispiel ein Ethernet-Kommunikationsnetz oder ein beliebiges anderes geeignetes oder gewünschtes Kommunikationsnetz sein, während die Datenprotokolliereinrichtung 14 jede beliebige gewünschte Art von Datenerfassungseinheit mit jeder beliebigen gewünschten Art von Speicher und jeder beliebigen gewünschten oder bekannten Software, Hardware oder Firmware zum Speichern von Daten sein kann. Die Steuereinrichtung 12, welche beispielhalber der von Fisher-Rosemount Systems, Inc. vertriebene DeltaVTM-Controller sein kann, ist mittels einer beliebigen gewünschten, zum Beispiel mit standardisierten 4–20-mA-Einrichtungen verknüpften Hardware und Software und/oder eines beliebigen intelligenten Kommunikationsprotokolls wie des Fieldbus-Protokolls, des HART-Protokolls usw. mit den Feldgeräten 20–27 kommunikativ verbunden.
-
Die Feldgeräte 20–27 können irgendwelche Arten von Einrichtungen wie Sensoren, wie z. B. Ventile, Geber, Stelleinrichtungen usw. sein, während die E/A-Karten 28 und 29 irgendwelche Arten von zu irgendeinem gewünschten Kommunikations- oder Steuereinrichtungsprotokoll kompatiblen E/A-Einrichtungen sein können. Bei der in 1 dargestellten Ausführungsform sind die Feldgeräte 20–23 standardisierte 4–20-mA-Einrichtungen, die über Analogleitungen mit der E/A-Karte 28 kommunizieren, oder HART-Einrichtungen, die über kombinierte analoge und digitale Leitungen mit der E/A-Karte 28 kommunizieren, während die Feldgeräte 24–27 intelligente Einrichtungen wie Fieldbus-Feldgeräte sind, die mittels Fieldbus-Protokoll-Kommunikation über einen digitalen Bus mit der E/A-Karte 29 kommunizieren. Allgemein ist das Fieldbus-Protokoll ein volldigitales, serielles, Zweiweg-Kommunikationsprotokoll, das eine standardisierte physische Schnittstelle für eine Zweidraht-Schleife oder einen Zweidraht-Bus schafft, die bzw. der Feldgeräte miteinander verbindet. Das Fieldbus-Protokoll schafft im wesentlichen ein lokales Netzwerk für Feldgeräte innerhalb eines Prozesses, was diese Feldgeräte befähigt, Prozeßsteuerfunktionen (unter Verwendung von gemäß dem Fieldbus-Protokoll definierten Funktionsblöcken) an über eine Prozeßanlage verteilten Orten auszuführen und vor und nach Ausführung dieser Prozeßsteuerfunktionen miteinander zu kommunizieren, um eine Gesamt-Steuerstrategie zu implementieren. Natürlich könnten die Feldgeräte 20–27 zu irgendwelchen anderen gewünschten Standards oder Protokollen, einschließlich etwaiger in der Zukunft entwickelter Standards oder Protokolle, kompatibel sein.
-
Die Steuereinrichtung 12 umfasst einen Prozessor 12a, der eine oder mehrere Prozeßsteuerroutinen, welche in einem computerlesbaren Speicher 12b darin gespeicherte oder anderweitig damit verknüpfte Steuerschleifen enthalten können, implementiert oder ausführt und mit den Einrichtungen 20–27, den Host-Computern 16 und der Datenprotokolliereinrichtung 14 kommuniziert, um einen Prozeß auf eine beliebige gewünschte Weise zu steuern. Es ist zu beachten, dass hierin beschriebene Steuerroutinen oder -elemente Teile haben können, welche, falls so gewünscht, von Prozessoren in andersartigen Steuereinrichtungen oder anderen Einrichtungen, wie einer oder mehreren der Feldgeräte 24–27, implementiert oder ausgeführt werden. Desgleichen können die hierin beschriebenen, im Prozeßsteuerungssystem 10 zu implementierenden Steuerroutinen oder -elemente jede beliebige Form einschließlich Software, Firmware, Hardware usw. annehmen. Zum Zweck dieser Erfindung kann ein Prozeßsteuerungselement ein beliebiger Teil eines Prozeßsteuerungssystems einschließlich zum Beispiel einer bzw. eines auf irgendeinem computerlesbaren Medium gespeicherten Routine, Blocks oder Moduls sein. Steuerroutinen, welche Module oder ein beliebiger Teil einer Steuerprozedur wie eine Subroutine, Teile einer Subroutine (wie z. B. Codezeilen) usw. sein können, können in jedem beliebigen gewünschten Softwareformat wie mittels Kontaktplan-Logik (ladder logic), Ablaufsprachen (sequential function charts), Blockschaltbildern oder einer anderen Software-Programmiersprache oder eines anderen Softwareentwicklungs-Paradigmas implementiert werden. Desgleichen können die Steuerroutinen in beispielsweise einen oder mehrere EPROMs, EEPROMs, anwendungsspezifische integrierte Schaltungen (ASICs) oder irgendwelche anderen Hardware- oder Firmware-Elemente hart codiert werden. Überdies können die Steuerroutinen unter Verwendung irgendwelcher Entwicklungs-Tools einschließlich grafischer Entwicklungs-Tools oder irgendeiner anderen Art von Software-/Hardware-/Firmware-Programmier- oder Entwicklungs-Tools entwickelt werden. Somit versteht es sich, dass die Steuereinrichtung 12 so konfiguriert werden kann, dass sie eine Steuerstrategie oder Steuerroutine auf eine beliebige gewünschte Art implementiert.
-
Bei einer Ausführungsform implementiert die Steuereinrichtung 12 eine Steuerstrategie unter Verwendung von gewöhnlich als Funktionsblöcke bezeichneten Elementen, wobei jeder Funktionsblock ein Teil (z. B. eine Subroutine) einer Gesamt-Steuerroutine ist und (über eine als Verbindungen bezeichnete Kommunikation) in Verbindung mit anderen Funktionsblöcken arbeitet, um Prozeßsteuerschleifen im Prozeßsteuersystem 10 zu implementieren. Funktionsblöcke führen üblicherweise entweder eine Eingabefunktion, wie die mit einem Geber, einem Sensor oder einer anderen Prozeßparameter-Messeinrichtung verknüpfte, oder eine Steuerfunktion, wie die mit einer Steuerroutine, welche PID-, Fuzzy-Logik-Steuerung usw. ausführt, verknüpfte, oder eine Ausgabefunktion, welche den Betrieb irgendeiner Einrichtung wie eines Ventils steuert, aus, um irgendeine physische Funktion im Prozeßsteuersystem 10 auszuführen. Natürlich gibt es hybride und andere Arten von Funktionsblöcken. Funktionsblöcke können in der Steuereinrichtung 12 gespeichert und durch diese ausgeführt werden, was üblicherweise der Fall ist, wenn diese Funktionsblöcke für standardisierte 4–20-mA-Einrichtungen und einige Arten von intelligenten Feldgeräten wie z. B. HART-Einrichtungen verwendet werden oder mit solchen verknüpft sind, oder können in den Feldgeräten selbst gespeichert und durch diese selbst implementiert werden, was bei Fieldbus-Einrichtungen der Fall sein kann. Obwohl die Beschreibung des Steuerungssystems hierin mittels einer Funktionsblock-Steuerstrategie erfolgt, könnten die Steuerstrategie oder die Steuerschleifen oder die Module auch unter Verwendung anderer Konventionen wie Kontaktplan-Logik, Ablaufsprachen usw. oder unter Verwendung irgendeiner anderen gewünschten Programmiersprache oder irgendeines anderen gewünschten Programmierparadigmas implementiert oder entwickelt werden.
-
Wie der auseinandergezogen dargestellte Block 30 in 1 zeigt, kann die Steuereinrichtung 12 eine Anzahl von Einzelschleifen-Steuerroutinen enthalten, die hier als Routinen 32 und 34 dargestellt sind, und, wenn gewünscht, eine oder mehrere hochentwickelte Steuerschleifen implementieren, die hier als Steuerschleife 36 dargestellt sind. Jede solche Schleife wird üblicherweise als ein Steuermodul bezeichnet. Die dargestellten Einzelschleifen-Steuerroutinen 32 und 34 führen Einzelschleifen-Steuerung mittels eines Einzeleingabe-/Einzelausgabe-Fuzzy-Logic-Steuerungs-Steuerblocks beziehungsweise eines Einzeleingabe-/Einzelausgabe-PID-Steuerblocks durch, welche mit geeigneten Analogeingabe-(AI-) und Analogausgabe-(AO-)Funktionsblöcken verbunden sind, die mit Prozeßsteuerungseinrichtungen wie z. B. Ventilen, mit Messeinrichtungen wie z. B. Temperatur- und Druckgebern oder mit irgendeiner anderen Einrichtung im Prozeßsteuerungssystem 10 verknüpft sein können. Die dargestellte hochentwickelte Steuerschleife 36 umfasst ein hochentwickeltes Steuersystem 38, dessen Eingänge mit zahlreichen AI-Funktionsblöcken und dessen Ausgänge mit zahlreichen AO-Funktionsblöcken kommunikativ verbunden sind, obwohl die Eingänge und Ausgänge des hochentwickelten Steuersystems 38 mit beliebigen anderen gewünschten Funktionsblöcken oder Steuerelementen verbunden sein können, um andere Arten von Eingaben zu empfangen und andere Arten von Steuerausgaben zu liefern. Das hochentwickelte Steuersystem 38, welches dafür ausgelegt ist, Prozesse zu steuern, die nichtlineare Eingabe-/Ausgabeeigenschaften aufweisen wie hierin ausführlicher beschrieben, umfasst gewöhnlich eine beliebige Art von Vielfacheingabe-Vielfachausgabe-Steuerroutine (welche üblicherweise verwendet wird, um zwei oder mehrere Prozeßausgaben durch Liefern von Steuersignalen an zwei oder mehrere Prozeßeingänge zu steuern) und ein oder mehrere nichtlineare oder kochentwickelte Prozeßmodelle, welche entwickelt wurden, um die nichtlinearen Eigenschaften des Prozesses genau zu modellieren. Obwohl das hochentwickelte Steuersystem 38 hierin als einen Modellvorhersage-Steuerblock (MPC-Block) verwendend beschrieben wird, könnte mithin das hochentwickelte Steuersystem 38 jeden beliebigen anderen Vielfacheingabe-Vielfachausgabe-Block wie z. B. einen Neuronennetz-Steuerblock, einen Mehrvariablen-Fuzzy-Logic-Steuerblock, einen Echtzeit-Optimierer-Block usw. enthalten oder verwenden.
-
Es versteht sich, dass die in 1 dargestellten Funktionsblöcke einschließlich des hochentwickelten Steuersystems 38, welche als ein oder mehrere miteinander verbundene Funktionsblöcke implementiert werden können, von der Steuereinrichtung 12 ausgeführt werden können oder alternativ in einer beliebigen anderen Prozesseinrichtung wie z. B. in einer der Workstations 16 oder sogar in einem der Feldgeräte 24–27 untergebracht und durch diese ausgeführt werden können.
-
Wie in
1 gezeigt, umfasst eine der Workstations
16 eine Routine
40 zur Erzeugung eines hochentwickelten Steuerblocks, die zum Erzeugen, Herunterladen und Implementieren des hochentwickelten Steuersystems
38 im wesentlichen auf eine Weise verwendet werden kann, die im
U.S.-Patent Nr. 6,445,963 , welches dem Inhaber hiervon übertragen ist und welches hiermit ausdrücklich durch Bezugnahme hierin eingeschlossen wird, beschrieben ist. Der einzige Unterschied ist, dass bei der Erzeugung des hochentwickelten Steuersystems
38 die Routine
40 auch verwendet werden kann, um ein oder mehrere nichtlineare Prozeßmodelle, wie z. B. ein oder mehrere Neuronennetz-Prozeßmodelle, welche als Teil des hochentwickelten Steuersystems
38 mit einem MPC-Steuerblock kommunikativ verbunden sind, wie hierin ausführlich anhand der
2–
6 beschrieben, zu erzeugen und herunterzuladen. Während die Routine
40 zur Erzeugung eines kochentwickelten Steuerblocks in einem Speicher in der Workstation
16 gespeichert und von einem Prozessor darin ausgeführt werden kann, kann diese Routine (oder ein beliebiger Teil derselben), wenn gewünscht, zusätzlich oder alternativ von einer beliebigen anderen Einrichtung innerhalb des Prozeßsteuersystems
10 gespeichert und ausgeführt werden.
-
2 ist ein Blockschaltbild, welches eine Ausführungsform des mit einem Prozeß kommunikativ verbundenen hochentwickelten Steuersystems 38 zeigt. Allgemein umfasst das hochentwickelte Steuersystem 38 aus 2 ein nichtlineares Prozeßmodell 42, welches ein stationäres nichtlineares Prozeßmodell sein kann, das mit einem Vielfacheingabe-Vielfachausgabe-Steuerblock kommunikativ gekoppelt ist, welcher in diesem Fall als ein MPC-Steuerblock 44 dargestellt ist. Prozeßausgaben 48 (welche Steuer- und Randbedingungsmessungen oder -Parameter sein können) einer Prozeßanlage 50 werden zum Eingang des MPC-Blocks 44 zurückgeführt, was für eine MPC-Steuerung typisch ist. Desgleichen wird ein Satz von gemessenen oder bekannten Prozeßstörungseingaben 52 sowohl an die Prozeßanlage 50 als auch an den Eingang des MPC-Blocks 44 geliefert, was ebenfalls für bekannte MPC-Verfahren typisch ist. Der MPC-Steuerblock 44 kann eine Standard-MPC-Logik mit einem linearen Prozeßmodell darin enthalten und kann gewöhnlich auf eine typische oder bekannte Weise arbeiten, um einen Satz von Prozeßsteuersignalen oder Stellvariablen-Steuersignalen 54 zu entwickeln, außer, dass der MPC-Block 44 ein oder mehrere vom nichtlinearen Prozeßmodell 42 entwickelte Vorhersagesignale verwendet, um den nichtlinearen Charakter des Prozesses 50 zu kompensieren. Wie in 2 gezeigt, empfängt das nichtlineare Prozeßmodell 42 als Eingaben einen Satz von verschiedenen Eingaben 56 der Prozeßanlage 50 einschließlich der vom MPC-Block 44 entwickelten Stellvariablen-Steuersignale 54 und der an den Prozeß 50 gelieferten Störungseingaben 52. Das Prozeßmodell 42 kann auch die Prozeßausgaben 48 empfangen, welche das Prozeßmodell 42 verwenden kann, um auf Grundlage der aktuellen Ausgaben des Prozesses 50 eine Modellausgabe-Anpassung durchzuführen. Das nichtlineare Prozeßmodell 42, welches zum Beispiel ein Neuronennetz-Prozeßmodell sein kann, verwendet die Eingänge 56 und ein Prozeßmodell, das die nichtlinearen Eingabe-/Ausgabeeigenschaften des Prozesses 50 genauer modelliert, um ein oder mehrere Vorhersagesignale 60 zu produzieren, und liefert diese Vorhersagesignale 60 an den MPC-Block 44. Der MPC-Block 44 verwendet eine Standard-MPC-Logik in Verbindung mit den Vorhersagesignalen 60, welche stationäre Vorhersagesignale oder Vorhersagevektoren sein können, welche die mehreren zukünftigen Werte für einen oder mehrere der Prozeßausgaben 48 vorhersagen, um einen genaueren oder brauchbareren Satz von Stellvariablen-Steuersignalen 54 zum Steuern des Prozesses trotz Vorliegen nichtlinearer Prozeßeigenschaften zu entwickeln.
-
Während das nichtlineare Prozeßmodell 42 in 2 so dargestellt ist, dass es drei Vorhersagesignale 60 an den MPC-Block 44 liefert, könnte das Prozeßmodell 42 jede beliebige andere Anzahl von Vorhersagesignalen, einschließlich nur eines Vorhersagesignals 60, an den MPC-Block 44 liefern. Natürlich wird die tatsächliche Anzahl von Ausgaben des nichtlinearen Modells 42, die an den MPC-Block 44 geliefert und von diesem verwendet werden, vom nichtlinearen Charakter des Prozesses 50 oder, genauer, von der nichtlinearen Beziehung zwischen einem oder mehreren der Prozeßeingaben 52 und 54 und den Prozeßausgaben 48 abhängen.
-
3 ist eine detailliertere Darstellung des MPC-Blocks 44 in mit dem nichtlinearen Prozeßmodell 42 und dem Prozeß 50 verbundenem Zustand. Der in 3 dargestellte MPC-Block 44 kann zum Beispiel eine beliebige quadratische M-mal-M-MPC-Standardroutine oder Standardprozedur (wobei M eine beliebige Zahl größer oder gleich eins sein kann) mit der gleichen Anzahl von Eingaben und Ausgaben sein. Wenn gewünscht, könnte der MPC-Block 44 jedoch nicht-quadratisch sein, d. h. unterschiedliche Anzahlen von Eingaben und Ausgaben haben. Der MPC-Block 44 aus 3 empfängt als Eingaben einen Satz von N Steuer- und Hilfsvariablen CV (Control Variables) und AV (Auxiliary Variables) (welche Vektoren von Werten sind) wie im Prozeß 50 gemessen, einen Satz von Störvariablen DV (Disturbance Variables), welche bekannte oder erwartete, zu irgendeinem Zeitpunkt in der Zukunft auf den Prozeß 50 einwirkende Änderungen oder Störungen sind, und einen Satz von stationären Zielwert-Steuer- und Hilfsvariablen CV, und AVT (z. B. Sollwerten), welche von einer beliebigen gewünschten Quelle wie einem Bediener, einem Optimierer usw. stammen. Der MPC-Block 44 verwendet diese Eingaben, um den Satz von M Stellvariablen MV (Manipulated Variables) (in Form von Steuersignalen) zu erzeugen, und liefert die Stellvariablen-Signale MV zum Steuern des Prozesses 50 als Prozeßeingaben, wobei es sich versteht, dass der MPC-Block 44 den Satz von Stellvariablen-Signalen MV in jeder beliebigen gewünschten Form produzieren kann und dass die Stellvariablen-Signale MV, die an andere Funktionsblöcke geliefert werden können, welche wiederum auf jede beliebige gewünschte Weise mit Steuereingaben des Prozesses 50 verbunden sein können.
-
Bekanntermaßen umfasst der MPC-Block 44 ein Steuerungsvorhersage-Prozeßmodell 70, welches eine N-mal-M+D-Sprungantworten-Matrix sein kann (wobei N die Anzahl der Steuervariablen CV (Prozeßausgaben) plus die Anzahl der Hilfsvariablen AV ist, M die Anzahl der Stellvariablen MV ist und D die Anzahl der Störvariablen DV ist). Das Steuerungsvorhersage-Prozeßmodell 70 produziert an einer Ausgangsleitung 72 eine zuvor berechnete Vorhersage für jede einzelne der Steuer- und Hilfsvariablen CV und AV, und ein Vektorsummierer 74 subtrahiert diese vorhergesagten Werte für den aktuellen Zeitpunkt von den tatsächlich gemessenen Werten der Steuer- und Hilfsvariablen CV und AV, um an einer Eingabe 76 einen Fehler- oder Korrekturvektor zu produzieren.
-
Das Steuerungsvorhersage-Prozeßmodell 70 verwendet dann eine N-mal-M+D-Sprungantworten-Matrix (welche ein Zeitverhalten jedes einzelnen der N Prozeßausgaben bezüglich jedes einzelnen der M+D Prozeßeingaben in Reaktion auf eine Sprungänderung in den Prozeßeingaben enthalten kann), um auf Grundlage der an andere Eingaben des Steuerungsvorhersage-Prozeßmodells 70 gelieferten Stör- und Stellvariablen für jeden einzelnen der Prozeßausgaben einen zukünftigen Steuerparameter über den Vorhersagehorizont vorherzusagen. Das Steuerungsvorhersage-Prozeßmodell 70, welches gewöhnlich ein lineares Prozeßmodell mit einer Übertragungsfunktion ist, welche die Antwort jeder Prozeßausgabe auf jede der Prozeßeingaben definiert, produziert außerdem vorhergesagte stationäre Werte der Prozeßausgaben am Ende des Vorhersagehorizonts. Der Satz von vorhergesagten Werten für jeden der Prozeßausgaben bis einschließlich zum Vorhersagehorizont ist ein Vorhersagevektor für diese Prozeßausgabe. Weil diese Vorhersagevektoren aber auf einem linearen oder Sprungantwort-Modell beruhen, berücksichtigt oder modelliert dieser Vorhersagevektor keine nichtlinearen Eigenschaften oder Beziehungen zwischen einzelnen Prozeßausgaben und Prozeßeingaben. Insbesondere die Beziehung zwischen einer der Prozeßeingaben und den Prozeßausgaben kann unter Verwendung einer linearen oder Sprungantwort-Kurve, wie üblicherweise durch den Prozessmodell-Block 70 ausgeführt, möglicherweise nicht genau modelliert werden. Wenn einer oder mehrere der Prozeßausgaben eine nichtlineare Beziehung zu einem oder mehreren der Prozeßeingaben aufweisen, ist somit der vom Prozeßmodell-Block 70 entwickelte Vorhersagevektor aufgrund dieser unmodellierten Nichtlinearitäten ungenau.
-
Um solche Nichtlinearitäten zu kompensieren, empfängt und verwendet eine Korrektur- oder Kompensierungseinheit 78 die vom nichtlinearen Prozeßmodell 42 entwickelten Vorhersagesignale 60 (welche jeweils ein einzelner stationärer Vorhersagewert oder ein Vorhersagevektor mit mehreren Vorhersagewerten zu verschiedenen Zeitpunkten in der Zukunft sein können) und produziert sie einen kompensierten Vorhersagevektor, der die Prozeß-Nichtlinearitäten für jede der nichtlinearen Steuer- und Hilfsvariablen (Prozeßausgaben) umfasst oder berücksichtigt. Es versteht sich, dass die Korrektureinheit 78 jeden Steuer- oder Hilfsvariablen-Vorhersagevektor (d. h. jeden Prozeßausgabe-Vorhersagevektor) separat mittels eines anderen vom nichtlinearen Prozeßmodell 42 entwickelten Vorhersagesignals 60 korrigieren kann. Außerdem braucht die Korrektureinheit 78 nur die Vorhersagevektoren für Prozeßausgaben, die eine nichtlineare Beziehung zu einem oder mehreren der Prozeßeingaben aufweisen, zu kompensieren, während sie die Vorhersagevektoren wie vom linearen Vorhersage-Prozeßmodell 70 entwickelt für jeden der anderen linearen Prozeßausgaben unverändert lässt. In diesem Fall kann zum Beispiel das nichtlineare Prozeßmodell 42 für jede aus einer Teilmenge von vom MPC-Block 44 verwendeten Steuer- und Hilfsvariablen (Prozeßausgaben), welche eine nichtlineare Beziehung zu einer oder mehreren der Prozeßeingaben (Stell- oder Störvariablen) aufweisen, ein separates oder anderes Vorhersagesignal 60 entwickeln und kann die Korrektureinheit 78 jeden der Vorhersagevektoren für die Prozeßausgaben innerhalb der Teilmenge separat kompensieren, während sie die anderen Prozeßausgabe-Vorhersagevektoren wie vom Steuerungsvorhersage-Prozeßmodell 70 entwickelt unverändert lässt.
-
Der MPC-Block 44 umfasst außerdem einen Steuerungszielwertblock 80, der unter Verwendung eines für den Block 38 zuvor eingerichteten Trajektorienfilters 82 einen Steuerungszielwerte-Vektor für jede der an ihn gelieferten N Zielwert-Steuer- und Hilfsvariablen CVT und AVT (die Zielwert-Prozeßausgaben) bestimmt. Insbesondere kann der Trajektorienfilter 82 einen Einheitsvektor, welcher die Art und Weise definiert, auf welche Steuer- und Hilfsvariablen über die Zeit gegen ihre Zielwerte zu treiben sind, liefern. Der Steuerungszielwertblock 80 verwendet diesen Einheitsvektor und die Zielwert-Variablen CVT und AVT, um für jede der Steuer- und Hilfsvariablen (Prozeßausgaben) einen Zielwerte-Vektor zu produzieren, welcher die Änderungen in den Zielwert-Variablen CVT und AVT über die durch die Vorhersagehorizont-Zeit definierte Zeitspanne definiert. Ein Vektorsummierer 84 subtrahiert dann für jede der Steuer- und Hilfsvariablen CV und AV (die Prozeßausgaben) den kompensierten Vorhersagevektor von den Zielwerte-Vektoren, um für jede der Steuer- und Hilfsvariablen CV und AV (die Prozeßausgaben) einen Fehlervektor zu definieren. Der Fehlervektor für jede der Steuer- und Hilfsvariablen CV und AV wird dann an einen MPC-Algorithmus in einem Block 86 geliefert, welcher auf standardgemäße Weise arbeitet, um die Stellvariablen-(MV-)Schritte auszuwählen, welche zum Beispiel den kleinsten ins Quadrat erhobenen Fehler über den Vorhersagehorizont minimieren. Natürlich kann der MPC-Algorithmus-Block 86 ein M-mal-M-Prozeßmodell oder eine Steuermatrix, entwickelt aus Beziehungen zwischen den in den MPC-Block 44 eingegebenen N Steuer- und Hilfsvariablen und den vom MPC-Block 44 ausgegebenen M Stellvariablen, verwenden. Diese Beziehungen werden gewöhnlich durch Invertieren der vom Block 70 verwendeten Steuermatrix bestimmt, welcher Invertiervorgang zeitaufwendig und während des Betriebs des Prozesses 50 schwierig neu zu erzeugen ist.
-
Natürlich kann der MPC-Algorithmus-Block 86 auf jede beliebige bekannte Weise arbeiten, um einen Satz von Stellvariablen zu bestimmen, welche an den Prozeß 50 zu liefern sind, um die Prozeßausgaben (Steuer- und Hilfsvariablen CV und AV) gegen die gewünschten Sollwerte CVT und AVT zu treiben. Obwohl der Steuerblock 86 so dargestellt ist, dass er eine aus einem quadratischen Prozeßmodell (square process model) entwickelte quadratische Steuermatrix umfasst, braucht dies nicht der Fall zu sein, und tatsächlich kann, wenn gewünscht, eine nicht-quadratische Steuermatrix verwendet werden, wobei es sich versteht, dass eine solche nicht-quadratische Steuermatrix wegen der zum Entwickeln einer solchen nicht-quadratischen Steuermatrix erforderlichen komplexen mathematischen Prozeduren gewöhnlich schwieriger zu bestimmen ist. Die vom Block 86 verwendete Steuermatrix wird jedoch gewöhnlich aus einem linearen Prozeßmodell, d. h. aus dem im Block 70 verwendeten, entwickelt und produziert mithin nicht die exakten Stellvariablen- oder Steuersignale, welche die Prozeßausgaben des Prozesses 50 auf die schnellste Weise gegen die gewünschten Sollwerte treiben werden. Weil aber die entwickelten und an den MPC-Algorithmus-Block 86 gelieferten Fehlersignale wegen der Korrektureinheit 78 den nichtlinearen Charakter der Prozeßausgaben berücksichtigen, treibt der MPC-Algorithmus-Block 86 die Prozeßausgaben auf eine gewöhnlich akzeptable Weise gegen die gewünschten Sollwerte.
-
Überdies kann der MPC-Block
44, wenn gewünscht, einen Optimierer enthalten oder mit einem Optimierer betrieben werden, welcher den Betrieb des MPC-Blocks
44 optimiert. Ein solcher Optimierer ist in der U.S.-Patentanmeldung mit der Seriennummer 10/241,350 und dem Titel ”Integrated Model Predictive Control and Optimization in a Process Control System”, welche am 11. September 2002 eingereicht und unter
US 2004/0049299 A1 veröffentlicht wurde, welche dem Inhaber hiervon übertragen ist und deren Offenbarung hiermit ausdrücklich durch Bezugnahme hierin eingeschlossen wird, ausführlich beschrieben. Demgemäß ist zu beachten, dass der MPC-Block
44 auf jede beliebige gewünschte oder bekannte Weise arbeiten oder funktionieren, aber die Korrektureinheit
78 enthalten kann, um einen mittels eines linearen Prozeßmodells mit einem durch ein nichtlineares Prozeßmodell oder anderweitig hochgenaues Prozeßmodell entwickelten Vorhersagesignal entwickelten vorhergesagten Prozeßausgangsvektor zu korrigieren, bevor ein solcher Vorhersagevektor verwendet wird, um ein oder mehrere Stellvariablen-(Steuer-)Signale zur Verwendung beim Steuern des Prozesses
50 zu erzeugen.
-
4 zeigt ein Diagramm 90, in welchem der Vorhersagevektor (Größe in Abhängigkeit von der Zeit) für eine der Prozeßausgaben CV aufgetragen ist, da dieser Vorhersagevektor im linearen Prozeßmodell 70 und in der Korrektureinheit 78 erzeugt und korrigiert wird. Allgemein stellt die Linie 92 des Diagramms 90 den Vorhersagevektor für die Prozeßausgabe CV über die Zeit bis zum Vorhersage-Zeithorizont (k + p) dar, wie während der letzten Abtastung des Prozesses (d. h. für die Zeit k – 1) entwickelt. Bei jeder Steuereinrichtungsabtastungs- oder Ausführungszeit k wird der Vorhersagevektor 92 für die Zeit k – 1 in drei Schritten aktualisiert, um einen Vorhersagevektor für die Zeit k, wie durch die Linie 94 dargestellt, zu produzieren. Insbesondere wird der (zur Zeit k – 1 erstellte) Vorhersagevektor 92 um eine Abtastung nach links verschoben, um die Zeitänderung von k – 1 nach k zu berücksichtigen. Dann wird eine durch die aktuelle Änderung an den Prozeßeingaben, welche die Prozeßausgabe CV beeinflussen, skalierte Sprungantwort zum verschobenen Vorhersagevektor 92 hinzuaddiert, um den Vorhersagevektor 94 zu produzieren. Dann wird der gesamte Vorhersagevektor 94 zum Punkt bei der aktuellen Zeit k hin verschoben oder bewegt, um die aktuell gemessene Prozeßausgabe zur Zeit k anzupassen (für einen Filterkoeffizienten gleich 1, oder wird im allgemeinen eine Vorhersage-Verschiebung als eine Funktion Fwk auf den Vorhersagevektor 94 angewendet), um den Vorhersagevektor 96 zu produzieren. Normalerweise werden diese Schritte mittels des linearen Prozeßmodells durch den MPC-Vorhersageblock 70 ausgeführt. Wenn aber der Prozeß 50 nichtlinear ist und ein auf den aktuellen Prozeßeingaben beruhendes Vorhersagesignal für die Prozeßausgabe CV zur Verfügung steht, wird der Vorhersagevektor 96 unter Verwendung des verfügbaren nichtlinearen Vorhersagesignals durch die Korrektureinheit 78 geändert, um den korrigierten Vorhersagevektor 98 zu produzieren.
-
Insbesondere wenn das Vorhersagesignal 60 aus dem nichtlinearen Prozeßmodell 42 ein Vorhersagevektor ist, kann die Korrektureinheit 78 einfach den durch lineare Modellierung entwickelten Vorhersagevektor 96 durch das Vorhersagesignal 60 ersetzen, so dass der Vorhersagevektor 98 im wesentlichen das vom nichtlinearen Prozeßmodell 42 entwickelte Vorhersagesignal 60 ist. Ein solcher nichtlinearer Vorhersagevektor kann mit einem dynamischen Neuronennetz-Prozeßmodell (d. h. einem nichtlinearen Prozeßmodell) produziert werden. Dynamische Neuronennetz-Modellierung ist jedoch schwierig zu entwickeln und wird gewöhnlich nicht angewendet. Wenn andererseits das Vorhersagesignal 60 aus dem nichtlinearen Prozeßmodell 42 ein stationäres Signal ist, welches unter der Annahme, dass die aktuellen Eingaben des Prozesses 50 unverändert bleiben, den vorhergesagten stationären Zustand der Prozeßausgabe CV über den Steuerungs-Zeithorizont angibt, kann das nichtlineare Prozeßmodell-Vorhersagesignal 60 zum Anpassen des Vorhersagevektors 96 verwendet werden, um mittels eines beliebigen gewünschten Verfahrens den Vorhersagevektor 98 zu produzieren. Es ist zu beachten, dass, wenn das nichtlineare Prozeßmodell 42 ein Neuronennetz-Prozeßmodell ist, der stationäre Wert der Prozeßausgabe CV durch Einfrieren der aktuellen Neuronennetz-Modell-Eingänge und Entwickeln der Neuronennetz-Modell-Ausgabe am Ende der Prozeßzeit bis zum stationären Zustand (z. B. Steuerungs-Zeithorizont) produziert oder entwickelt werden kann.
-
Ein Verfahren zum Ändern des vom linearen Prozeßmodell
70 entwickelten Vorhersagevektors
96, welches das vom nichtlinearen Prozeßmodell
42 entwickelte Vorhersagesignal
60 verwendet, besteht darin, den Wert des Vorhersagevektors
96 am Ende des Vorhersagehorizonts gleich dem vorhergesagten stationären Wert
60 zu setzen und dann jeden der anderen Werte des Vorhersagevektors
96 auf Grundlage der Zeit jedes einzelnen solchen Punkts proportional zu ändern. Wenn ASS eine Korrektur am Ende des Vorhersagehorizonts bei der Abtastung k + 1 ist, kann eine Korrektur an einem beliebigen Punkt i in der Zukunft ausgedrückt werden als:
wobei:
- s
- das Abtastintervall ist;
- i
- die Abtastungsnummer in der Zukunft ist (i ist gleich oder zwischen 0 und p – 1); und
- τ
- ist die angenommene Prozeßausgabe-Zeitkonstante, welche als die größte Sprungantwort-Zeitkonstante für die korrigierte Ausgabe genommen werden kann. Wenn gewünscht, kann τ ein Bruchteil der Zeit bis zum stationären Zustand, beispielsweise die Zeit bis zum stationären Zustand geteilt durch 3 oder 4, sein.
-
Auf Grundlage dieser Gleichung ist Δn k+1 = [Δnk+1(0), Δnk+1(1), ..., Δnk-1(i), ..., Δnk+1(p – 1)]T ein Vektor mit der gleichen Dimension wie (unten definierter) x k-1, welcher die Korrektur aus dem nichtlinearen Prozeßmodell berücksichtigt. Somit gilt ΔSSk+1 = Δnnk+1(p – 1) = nnk-1(p – 1) – yk-1(p – 1), wobei ΔSSk-1 die Korrektur am Ende des Vorhersagehorizonts ist. Für diese Gleichungen versteht es sich, dass nnk+1(p – 1) der vom nichtlinearen Prozeßmodell bei der Abtastung k + 1 entwickelte zukünftige (stationäre) Ausgabewert ist;
yk+1(p – 1) der vorhergesagte Wert der Prozeßausgabe p – 1 Abtastungen in der Zukunft, wie vom linearen Prozeßmodell bei der Abtastung k + 1 entwickelt, ist; und
x k+1 der bei der Abtastung k + 1 entwickelte Vorhersagevektor für lineare Modellierung ist, wobei gewöhnlich x k = [yk(0), yk(1), ..., yk(i), ..., yk(p – 1)]T ein Vektor der Prozeßausgabe-Vorhersage zu einer Zeit k für 0, 1, 2, ..., p – 1 Schritte voraus ist.
-
Der Vorhersagevektor x n / k+1 ist der korrigierte Vorhersagevektor 98 (4), welcher gleich x k-1 + Δn k-1 ist. Die Korrektur zum gegenwärtigen Zeitpunkt kann als Δnk-1(0) = 0 gesetzt werden, um die aktuelle Messung der Prozeßausgabe CV und den vorhergesagten Wert zu dieser Zeit anzugleichen.
-
Es versteht sich aufgrund dieser Gleichungen, dass der für jeden der Prozeßausgaben zu korrigierende Vorhersagevektor einen stationären Wert über einen Zeithorizont umfasst und dass die Korrektur den vom linearen Prozeßmodell (wie im MPC-Steuereinrichtungs-Block) produzierten Vorhersagevektor durch Hinzuaddieren einer mit einer Exponentialfunktion erster oder höherer Ordnung multiplizierten Differenz zwischen den vom linearen und vom nichtlinearen Modell entwickelten Vorhersagen am Ende des Zeithorizonts zu diesem Vorhersagevektor ändert. Bei manchen Ausführungsformen kann die Exponentialfunktion erster oder höherer Ordnung Zeitkonstanten gleich der Prozeßausgabe-Zeit bis zum stationären Zustand verwenden oder kann sie alternativ Zeitkonstanten gleich einem Bruchteil der Prozeßausgabe-Zeit bis zum stationären Zustand verwenden.
-
Alternativ kann der Vorhersagevektor
96, wenn Prozeß-Zeitkonstanten mit einem signifikanten Fehler identifiziert werden, unter Verwendung der Prozeßzeit bis zum stationären Zustand korrigiert werden:
wobei TSS die Zeit für den stationären Zustand des Prozesses und 3 ≤ α ≤ 5 ist.
-
Im allgemeinen können zum Entwickeln einer Korrektur über den Vorhersagehorizont Funktionen höherer Ordnung verwendet werden: Δnk+1(i) = Δnnk+1(p – 1)f(i, s, TSS) wobei f(i, s, TSS) eine allgemeine Exponentialfunktion einer höheren als der ersten Ordnung ist, die zur Vorhersage-Korrektur verwendet wird. Als allgemeine Regel empfiehlt es sich, dass für die Vorhersage-Korrektur eine Funktion der gleichen Ordnung verwendet wird wie die für lineare Sprungantworten für die betrachtete Ausgabe verwendete.
-
Jedes dieser Verfahren setzt die Zwischen-Vorhersagewerte (zwischen der gegenwärtigen Zeit k und dem Zeithorizont k + p) auf eine Weise, welche die Dynamik des Ansprechverhaltens bewahrt, welche wiederum die Modellierungsergebnisse kompatibel mit Wiener- und Hammerstein-Modellierung macht. Wenn gewünscht, können natürlich andere Arten der Korrektur des vom linearen Prozessmodell 70 entwickelten Vorhersagevektors mit dem vom nichtlinearen Prozessmodell 42 entwickelten Vorhersagesignal 60 verwendet oder anstelle der hier beschriebenen verwendet werden.
-
Es versteht sich, dass das Verfahren zum Korrigieren eines unter Verwendung eines linearen Prozeßmodells entwickelten Modellvorhersagevektors mit der Ausgabe eines nichtlinearen Prozeßmodells zwecks Kompensierens von Nichtlinearitäten in einem Prozeß, wie hierin beschrieben, relativ leicht und einfach während des Prozeßbetriebs zu implementieren ist, ohne dass eine aufwendige Rechenverarbeitung zum erneuten Erzeugen von Steuereinrichtungs-Verstärkungen oder nichtlinearen Modellvariablen erforderlich wird. Und weil der MPC-Block 44 nach wie vor ein lineares Prozeßmodell verwendet, versteht es sich außerdem, dass die Steuerausgaben nicht exakt so konfiguriert sind, dass sie den Prozeß 50 im Hinblick darauf, dass die Prozeßausgaben die gewünschten Zielwerte erreichen, optimal steuern. Weil aber die Prozeßausgangs-Vorhersagevektoren nach jeder Abtastung oder in regelmäßigen Abständen während des Prozeßbetriebs, d. h. nach jeweils n Abtastungen (wobei n jede beliebige gewünschte Zahl sein kann) unter Verwendung des nichtlinearen Prozeßmodells 42 aktualisiert werden, produziert die MPC-Steuermatrix 86 Steuersignale, welche die Prozeßausgaben veranlassen, sich trotz der Nichtlinearitäten im Prozeß 50 relativ schnell an die gewünschten Werte oder Zielwerte anzunähern.
-
Außerdem versteht es sich, dass, damit das vom nichtlinearen Prozeßmodell 42 entwickelte Vorhersagesignal 60 korrekt verwendet wird, dieses Vorhersagesignal für denselben Satz von Eingaben wie den zum Entwickeln des Vorhersagevektors an der Ausgabe des linearen Modellblocks 70 verwendeten entwickelt werden sollte. Eine wichtige Einzelheit ist, sicherzustellen, dass das nichtlineare Prozeßmodell 42 und der MPC-Block im Betrieb synchronisiert sind, und es ist darauf zu achten, dass die zukünftigen oder vorhergesagten Ausgaben dieser Blöcke in Bezug aufeinander nicht um eine Abtastung verschoben sind. Folglich ist es zu bevorzugen, dass die Blockausführungsreihenfolge das Ausführen des nichtlinearen Prozeßmodells 42 vor dem Ausführen des MPC-Blocks 44 beinhaltet, damit das Vorhersagesignal 60 zur Verfügung steht, wenn das Prozeßmodell 70 für den MPC-Block 44 ausgeführt wird.
-
Wenn das nichtlineare Prozeßmodell 42 ein Neuronennetz-Prozeßmodell ist, kann die Filterung für die Neuronennetz-Zukunftsvorhersage auf eine ähnliche Weise wie für die Vorhersage-Verschiebung verwendet werden. Insbesondere könnte die lineare Gleichung der Modellierung auf folgende Weise verändert werden: x n / k+1 = Ax k + BΔu k + Fw k + fΔn k y0 = Cx n / k+1 oder x n / k+1 = x k+1 + fΔn k y0 = Cx n / k+1 wobei:
A, B, C Prozeßmodell-Matrizen sind,
0 ≤ F ≤ 1 der Filter zur Korrektur ungemessener Störungen ist und
0 ≤ f ≤ 1 der Filter zur Neuronennetz-Korrektur ist.
-
Natürlich können Modifikationen der obigen Gleichungen ebenso verwendet werden.
-
5 zeigt ein weiteres hochentwickeltes Steuersystem 100, das mit dem Prozeß 50 gekoppelt ist. Das hochentwickelte Steuersystem 100 umfasst einen MPC-Block 44 und zwei Neuronennetz-Prozeßmodelle 102 und 104, von welchen jedes ein Vorhersagesignal 106 bzw. 108 produziert, welche an den MPC-Block 44 geliefert werden. Ähnlich dem MPC-Block 44 aus 2 empfängt der MPC-Block 44 die Prozeßausgaben 48 und die Stör- und Randbedingungsvariablen 52 als Eingaben und arbeitet gewöhnlich wie oben bezüglich der Konfiguration aus 3 erörtert. Desgleichen empfängt jedes der Neuronennetz-Prozeßmodelle 102 und 104 die Steuer- und Stellvariablen-Eingangssignale 54 und die Stör- und Randbedingungsvariablen 52 als Eingaben 56. Die Neuronennetz-Prozeßmodelle 102 und 104 sind auf jede beliebige standardgemäße oder bekannte Weise eingelernt und weisen einen Neuronennetz-Standardaufbau zum Modellieren oder Vorhersagen einer der Ausgaben des Prozesses 50 auf Grundlage seiner Eingaben auf. Allgemein können die Ausgaben 106 und 108 Vorhersagevektoren für die jeweilige Prozeßausgaben sein oder können sie stationäre Vorhersagewerte sein, welche den stationären Wert der Prozeßausgabe unter der Annahme, dass die Eingaben des Prozeßmodells 102 oder 104 unverändert bleiben, vorhersagen.
-
Es versteht sich, dass der MPC-Block 44 jedes der Vorhersagesignale 106 und 108 verwendet, um verschiedene Vorhersagevektoren im MPC-Block 44 auf die oben bezüglich des Signals 60 bei der Ausführungsform der 3 und 4 allgemein beschriebene Weise separat zu korrigieren oder zu kompensieren. Überdies könnte, obwohl in 5 zwei Neuronennetz-Prozeßmodelle dargestellt sind, jede beliebige andere Anzahl von Neuronennetz-Prozeßmodellen verwendet werden, um eine beliebige Anzahl von Vorhersagesignalen für die verschiedenen Prozeßausgaben, welche Nichtlinearitäten bezüglich einer oder mehrerer Prozeßeingaben aufweisen, zu produzieren. Allgemein ist für jede einzelne Prozeßausgabe, welche nichtlineare Eigenschaften aufweist, ein separates Neuronennetz-Prozeßmodell vorzusehen. Dies muss aber nicht unbedingt der Fall sein.
-
6 zeigt eine weitere Ausführungsform eines hochentwickelten Steuersystems 109, welches einen MPC-Block 44 und ein High-Fidelity-Prozeßmodell oder eine Simulation 110 wie das durch HYSYSTM, CapeTM oder ein anderes High-Fidelity-Prozeßmodell bereitgestellte umfasst. Ein solches High-Fidelity-Prozeßmodell 110 kann ein Vielfacheingabe-Vielfachausgabe-Prozeßmodell, ein auf Erstprinzipien beruhendes (lineares oder nichtlineares) Vielfacheingabe-Vielfachausgabe-Prozeßmodell, eine Neuronennetz-Logik, eine Fuzzy Logic oder eine beliebige andere Logik sein, die auf Grundlage der Prozeßeingaben ein Vorhersagesignal für eine oder mehrere der Prozeßausgaben produziert. Es versteht sich, dass der MPC-Block 44 jedes der verschiedenen Vorhersagesignale verwendet, um verschiedene Vorhersagevektoren für die Prozeßausgaben, wie durch den MPC-Vorhersageblock 70 aus 3 entwickelt, zu korrigieren oder zu kompensieren. Außerdem könnte das High-Fidelity-Prozeßmodell 110, obwohl 6 zeigt, dass das High-Fidelity-Prozeßmodell 110 drei Vorhersagesignale produziert, jede beliebige andere Anzahl von Vorhersagesignalen zur Verwendung durch den MPC-Block 44 produzieren, wobei die genaue Anzahl gewöhnlich von der Anzahl der Prozeßausgaben, welche ein nichtlineare Antwort auf eine oder mehrere der Prozeßeingaben aufweisen, abhängt.
-
7 zeigt eine weitere Ausführungsform eines hochentwickelten Steuersystems 120, bei welchem ein nichtlineares Prozeßmodell 122 ein Vorhersagesignal 124 für eine Prozeßausgabe produziert und das Vorhersagesignal 124 an einen Optimierer 126 liefert, welcher wiederum ein internes lineares Prozeßmodell und das Vorhersagesignal 124 verwendet, um einen oder mehrere Steuerungszielwert-Ausgaben zu produzieren, die an eine Steuereinrichtung 128, welche eine MPC-Steuereinrichtung sein kann, geliefert werden und von dieser verwendet werden, um einen Satz von Steuersignalen zur Verwendung beim Steuern der Prozeßanlage 50 zu entwickeln. Es versteht sich, dass der Optimierer 126 ein lineares Prozeßmodell 130 umfasst, das den Prozeß 50 modelliert und das auf eine beliebige standardgemäße oder bekannte Weise verwendet wird, um einen oder mehrere Prozeßausgabe-Vorhersagevektoren zu produzieren, welche dann unter Verwendung des Vorhersagesignals 124 in einer Korrektureinheit 132 korrigiert oder kompensiert werden, und dass solche korrigierten Vorhersagevektoren dann verwendet werden, um die Steuerungszielwert-Signale (gewünschten Steuersignale) zur Verwendung beim Steuern der Steuereinrichtung 128 zu erzeugen oder zu entwickeln. Eine solche Korrektur oder Kompensierung kann auf eine Weise ähnlich einer beliebigen der oben bezüglich der 3 und 4 beschriebenen Weisen oder auf eine beliebige andere gewünschte Weise durchgeführt werden. Der Optimierer 126 kann eine beliebige gewünschte Art von Optimierer einschließlich zum Beispiel des in der oben erörterten U.S.-Patentanmeldung 10/241,350 offenbarten Optimierers sein. Es versteht sich, dass der Optimierer 126 Teil der Vielfacheingabe-Vielfachausgabe-Steuerroutine ist, welche über eine zusätzliche Steuereinrichtung 128 verfügt, die Angaben der von der Prozeßanlage 50 entwickelten Prozeßausgaben empfängt.
-
Überdies versteht es sich, dass das Verfahren des Verwendens eines von einem hochgenauen oder nichtlinearen Prozeßmodell entwickelten Vorhersagesignals zum Korrigieren oder Kompensieren eines von einem linearen Prozeßmodell zur Kompensierung von Prozeß-Nichtlinearitäten produzierten Vorhersagevektors, außer in einer Steuereinrichtungs-Routine und in einer Optimierer-Routine, wie hierin speziell beschrieben, in jeder beliebigen anderen Steuereinrichtungs-Komponente verwendet werden kann.
-
Obwohl die hochentwickelten Steuerblöcke 38, 100, 109 und 120 hierin als separater Funktionsblock mit einem MPC-Block 44 oder 128 und einem oder mehreren separaten Prozeßmodell-Blöcken 42, 102, 104, 110, 122 dargestellt wurden, kann der hochentwickelte Steuerblock 38 einfach durch kommunikatives Verbinden eines MPC-Blocks und eines oder mehrerer Prozeßmodell-Blöcke, von welchen jeder ein separater Funktionsblock sein kann, implementiert werden. Alternativ können, wenn gewünscht, die hierin beschriebenen Prozeßmodelle 42, 102, 104, 110 und 122 in den MPC-Block 44 oder 128 integriert werden oder ein Teil desselben sein. Überdies können, obwohl die hochentwickelten Steuerblöcke oder -systeme 38, 100, 109 und 120 hierin als einen MPC-Block als Vielfacheingabe-Vielfachausgabe-Steuerblock enthaltend beschrieben sind, stattdessen Vielfacheingabe-Vielfachausgabe-Steuerblöcke wie Fuzzy-Logic-Steuerblöcke, Optimierer-Blöcke oder beliebige andere Steuerroutinen oder Teile von Steuerroutinen, die ein lineares Prozeßmodell verwenden, um Steuersignale für einen Prozeß zu entwickeln, verwendet werden.
-
Es versteht sich, dass die hierin beschriebenen MPC- oder hochentwickelten Steuerlogik-Routinen und -Verfahren einen Benutzer befähigen, hochentwickelte Steuerblöcke wie MPC-Steuerblöcke zu erzeugen, die in Prozessen mit nichtlinearen Eigenschaften verwendet werden können, ohne dass ein nichtlineares Prozeßmodell in die standardgemäße lineare MPC-Logik integriert werden muss. Somit ermöglicht dieses System, bekannte und relativ einfach zu implementierende nichtlineare Prozeßmodelle wie Neuronennetz-Prozeßmodelle zu verwenden, um eine lineare MPC-Funktion zu korrigieren, um in nichtlinearen Prozessen mit relativ geringem Aufwand, einfacher Implementierung in einer Prozeßsteuerroutine, Flexibilität und minimalen Eingriffen in die MPC-Steuerlogik eine bessere Steuerung zu schaffen.
-
Obwohl die hochentwickelten Steuerblöcke hierin als in Verbindung mit Fieldbus- und Standard-4–20-mA-Einrichtungen verwendet beschrieben wurden, können sie natürlich unter Verwendung irgendeines anderen Prozeßsteuerungs-Kommunikationsprotokolls oder irgendeiner anderen Programmierumgebung implementiert und mit beliebigen anderen Arten von Einrichtungen, Funktionsblöcken oder Steuereinrichtungen verwendet werden. Überdies ist zu beachten, dass die Verwendung des Ausdrucks ”Funktionsblock” hierin nicht auf das, was das Fieldbus-Protokoll oder das DeltaV-Controller-Protokoll als einen Funktionsblock identifiziert, begrenzt ist, sondern vielmehr jede beliebige andere gewünschte Art von Block, Programm, Hardware, Firmware usw. einschließt, welche mit einer beliebigen Art von Steuersystem und/oder Kommunikationsprotokoll, die zum Implementieren einer Prozeßsteuerfunktion verwendet werden kann, verknüpft ist. Außerdem braucht, obwohl Funktionsblöcke üblicherweise die Form von Objekten in einer objektorientierten Programmierumgebung annehmen, dies nicht der Fall zu sein.
-
Obwohl die hierin beschriebenen hochentwickelten Steuerblöcke und zugehörigen MPC-Blöcke und nichtlinearen Prozeßmodelle vorzugsweise in Software implementiert werden, können sie in Hardware, Firmware usw. implementiert werden und können sie durch jeden anderen mit einem Prozeßsteuersystem verknüpften Prozessor ausgeführt werden. Mithin können die hierin beschriebenen Routinen 38, 42, 44, 100, 102, 104, 109 und 110 in einer Standard-Mehrzweck-CPU oder auf speziell entwickelter Hardware oder Firmware wie zum Beispiel ASICs implementiert werden, falls gewünscht. Bei einer Implementierung als Software kann die Software in jedem beliebigen computerlesbaren Speicher wie einer Magnetplatte, einer Laserplatte, einer optischen Platte oder einem anderen Speichermedium, in einem RAM oder ROM eines Computers oder Prozessors usw. gespeichert werden. Desgleichen kann diese Software durch jedes bekannte oder gewünschte Lieferverfahren einschließlich beispielsweise auf einer computerlesbaren Platte oder einem anderen transportablen Computer-Speicherungsmechanismus oder in modulierter Form über einen Kommunikationskanal wie eine Telefonleitung, das Internet usw. (was als das gleiche angesehen wird wie oder als austauschbar angesehen wird gegen das Liefern solcher Software über ein transportables Speichermedium) an einen Benutzer oder an ein Prozeßsteuerungssystem geliefert werden. Außerdem können verschiedene Teile dieser Software separat auf verschiedenen Prozessoren und/oder in verschiedenen Einrichtungen implementiert werden, wenn gewünscht.
-
Obwohl die vorliegende Erfindung mit Bezug auf bestimmte Beispiele beschrieben wurde, die nur illustrierend sind und die Erfindung nicht einschränken, ist es für den gewöhnlichen Fachmann offensichtlich, dass Abänderungen, Zusätze oder Weglassungen bei den Ausführungsbeispielen gemacht werden können, ohne den Anwendungsbereich der Erfindung zu verlassen.