47
TECHNISCHE UNIVERSITÄT DRESDEN Institut für Verfahrenstechnik und Umwelttechnik Professur für Verfahrensautomatisierung Simulation und Optimierung Verfahrenstechnischer Systeme ( Unter Anwendung des integrierten Werkzeuges Aspen Custom Modeler 11.1 ) Zum Gebrauch in der Lehrveranstaltung “SIMULATION UND OPTIMIERUNG” Prof. Dr.-Ing. habil. Klöden Dresden, April 2006 Dieses Handbuch darf nur für die Ausbildung an der TU Dresden eingesetzt werden!

Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

  • Upload
    dothu

  • View
    217

  • Download
    3

Embed Size (px)

Citation preview

Page 1: Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

TECHNISCHE UNIVERSITÄT DRESDENInstitut für Verfahrenstechnik und UmwelttechnikProfessur für Verfahrensautomatisierung

Simulation und Optimierung Verfahrenstechnischer Systeme

( Unter Anwendung des integrierten Werkzeuges Aspen Custom Modeler 11.1 )

Zum Gebrauch in der Lehrveranstaltung

“SIMULATION UND OPTIMIERUNG”

Prof. Dr.-Ing. habil. Klöden Dresden, April 2006Dieses Handbuch darf nur für die Ausbildung an der TU Dresden eingesetzt werden!

Page 2: Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

ASPEN CUSTOM MODELER - Einleitung 1 - 1

1. Einführung1.1. Vorbemerkungen

Das Programm ASPEN CUSTOM MODELER (ACM) stellt ein integriertes Simulations-werkzeug dar, das es dem Anwender erlaubt, seine spezifischen Probleme formulieren zukönnen, ohne auf vorgefertigte Modelle zurückgreifen zu müssen. Am Institut für Verfahrens-technik und Umwelttechnik ist die Version 11.1 verfügbar.

Das Werkzeug unterstützt folgende Problemtypen:S Simulation des statischen Verhaltens,S Simulation des dynamischen Verhaltens,S Optimierung des statischen Verhaltens,S Parameterschätzung in stationären Modellen,S Parameterschätzung in dynamischen Modellen.

Mit der Freiheit der Modellvorgabe wachsen aber auch die Anforderungen an den Nutzerbezüglich der Erstellung der Problembeschreibung. Konkret heißt das, dass der Nutzer eineProgrammiersprache erlernen muss, die die notwendigen Ausdrucksmittel für die Beschreibungder oben genannten Probleme bereitstellt. Das Werkzeug stellt daneben eine leistungsfähigeEntwicklungsoberfläche bereit, die eine interaktive Programmentwicklung unterstützt.

1.2. Dokumentation und Online-Hilfe

Die Originaldokumentation (im PDF-Format) ist über folgenden Pfad zu erreichen:

W:\AspenDoc\AES 11. Documentation\Aspen Custom Modeler\

Die folgenden Handbücher sind dort zu finden:

Modeling Language Reference Guide.pdf In diesem Handbuch wird die ACM-Program-miersprache beschrieben (s. Abschnitt 3).

Library Reference Guide.pdf In diesem Handbuch werden die Unterprogrammebeschrieben, die in der Systembibliothek enthal-ten sind (s. Anhang II und Anhang III).

Aspen Modeler Reference.pdf Referenzhandbuch für die Anwendung von VisualBasic zur Skript-Programmierung (Automatisie-rung der Problembearbeitung, s. Abschnitt 5.5.2).

Getting Started Guide.pdf In diesem Handbuch wird die Bedienung des Sys-tems an ausgewählten Beispielen beschrieben.

Die Online-Hilfe ist so wie in Aspen Plus bzw. Aspen Dynamics über die Menüleiste desHauptfensters zu erreichen.

Page 3: Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

ASPEN CUSTOM MODELER - Einleitung1 - 2

1.3. Zur Beschreibung der Sprachelemente

Die Entwicklung eines ACM-Programms vollzieht sich auf zwei Ebenen:S Die Programmierung der Elemente ( Typen, Modelle, Fließschemata) wird interaktiv

über die Symbole des Explorer eingeleitet. Pflege und Verwaltung der erzeugten Ele-mente werden ebenfalls auf diesem Weg interaktiv unterstützt.

S Die einzelnen Elemente sind in der ACM-Programmiersprache zu schreiben. Dafür wirdein (kontextsensitiver) Editor bereitgestellt, der immer dann aktiviert wird, wenn einneues Element dem Programm hinzugefügt bzw. editiert werden soll.

Bei der Beschreibung der Syntax der ACM-Programmiersprache gelten folgende Regeln:S Schlüsselwörter werden groß geschrieben und in Fettdruck dargestellt.S Konstrukte, die optional sind, werden in Kursivschrift dargestellt.S Alternative Konstrukte stehen in geschweiften Klammern { }. Die alternativen Möglich-

keiten werden durch den Operator | getrennt.S Wenn ein bestimmtes Konstrukt mehrfach aufeinanderfolgen darf, wird das durch drei

Punkte ... angezeigt.S Die syntaktischen (metasprachlichen) Begriffe werden klein geschrieben. Ein Unter-

strich ist wie ein Bindestrich zu lesen.S Die Zuweisung eines metasprachlichen Begriffs zu einem Ausdruck wird durch den

Operator 6 gekennzeichnet.S Grundsymbole der Sprache sind Buchstaben (ohne Unterscheidung der Groß-/Klein-

schreibung), Ziffern, Schlüsselwörter und Operatoren. Nicht alle Sonderzeichen sindauch Operatoren.

Die ACM-Programmtexte werden zeilenorientiert geschrieben. Fortsetzung einer Programm-zeile über mehrere Textzeilen ist möglich.

Die Zeichenfolge // deklariert den Rest einer Programmzeile zum Kommentar. Kommentare, diesich über mehrere Zeilen erstrecken, werden durch die Kommentarklammern

/* .... */ eingeschlossen.

Page 4: Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

ASPEN CUSTOM MODELER - Systemoberfläche 2 - 1

s. Handbuch zu ASPEN DYNAMICS , Abschnitt 3.1

2. Die Entwicklungsoberfläche2.1. Das Arbeitsfenster

Nach dem Aktivieren des Programms erscheint das folgende Fenster, das den Arbeitsbereichenthält:

Dieses Fenster besitzt die gleiche Struktur wie das entsprechende Fenster von ASPENDYNAMICS . Die einzelnen Teilfenster dienen vergleichbaren Funktionen. Die Menü- und die1

Werkzeugleiste stellen ebenfalls vergleichbare Funktionen bereit. Die entscheidenden Unter-schiede zu ASPEN DYNAMICS bestehen in den Funktionen, die über den Ordner CustomModeling (s. All Items Teilfenster des Explorer) bereitgestellt werden.

2.2. Der Explorer

Der Explorer ist das Navigationswerkzeug des ACM-Entwicklungssystems. Das Explorer-Fenster zerfällt in zwei Teilfenster (All Items pane und Contents of ... pane). Im oberen Fensterwerden die Ordner (in Baumstruktur) angezeigt, in denen die Elemente des Entwicklungs-systems (Bibliotheken, Modelle, Typen, Fließschema-Struktur usw.) abgelegt werden. Nachdem Markieren eines Eintrags (Ordner, Unterordner, Element des Ordners) werden im unterenFenster die Inhaltselemente dieses Eintrags in symbolischer Form angezeigt.

Page 5: Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

ASPEN CUSTOM MODELER - Systemoberfläche2 - 2

Der Zugriff auf einen Eintrag erfolgt durch Doppelklick auf die Symbole im unteren Fensteroder über das Markieren eines Eintrages und nachfolgender Auswahl eines Menüpunktes imPopup-Menü, das zum ausgewählten Eintrag über die rechte Maustaste angezeigt werden kann.Im folgenden Bild ist die Grundstruktur des Ordnerbaums angezeigt. In der nebenstehendenTabelle sind die einzelnen Einträge erläutert:

Ordner Bedeutung

Flowsheet Ordner, in dem alle Informationen zur Sys-temstruktur und zum System als Ganzes ab-gelegt werden.

Custom Modeling Ordner, der die nutzerspezifischen Elementeeiner Anwendung aufnimmt.

System Library Ordner, in dem allgemeine Basistypen fürVariable, Ports, Parameter usw. bereitgestelltwerden.

Modeler Ordner, in dem außer weiteren Typen auchModelle (z.B. PID-Regler, Totzeitglied usw.)bereitgestellt werden

Component Lists Ordner für Komponentenlisten.

Komponentenlisten sind Strukturen, die für den Import von Berech-nungsverfahren für die Eigenschaften der Stoffsysteme über dieSchnittstelle PROPERTIES PLUS erforderlich sind. Schnappschüsse

sind Ergebnisdarstellungen für ausgewählte Zeitpunkte.

# Custom ModelingIm Ordner Custom Modeling werden als Einträge alle Elemente einer Anwendung abgelegt, dieder Anwender selbst entwickelt. Im nebenstehenden Bild ist die Struktur der Einträge desOrdners zu erkennen. Die Einträge Models und Stream Types sind Unterordner, die weitereEinträge enthalten. Der Unterordner Models enthält im dargestellten Beispiel das Modell

behaelter.In den Einträgen Parameter Types, Port Types, Stream Types undVariable Types werden die anwenderdefinierten Typen zusammen-gefasst. Wird eine dieser Typklassen markiert, so erscheint im unte-ren Explorerfenster eine Liste von Symbolen, wobei jeweils einSymbol einen Anwendertyp darstellt.Über den Eintrag Tasks werden die für die Steuerung einer Simulati-on programmierten Abschnitte erreichbar.Der Eintrag Procedures gestattet den Zugriff auf Abschnitte, die denZugriff auf Programme ermöglichen, die in einer anderen Program-miersprache (FORTRAN oder C++) geschrieben worden sind.

Page 6: Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

ASPEN CUSTOM MODELER - Systemoberfläche 2 - 3

Zur Beschreibung der Modelle s. a. ACM - Library Reference Guide, Abschn.1.1

Im nebenstehenden Bild ist der untere Abschnitt des Explorerfensters für dieAuswahl des Eintrags Variable Types zu sehen. Es sind Symbole für dieTypen vpunkt (Volumenstrom) und Tempera (Temperatur) zu erkennen.Wenn ein neuer Typ hinzugefügt werden soll, so ist das Symbol Add Varia-ble Type doppelt anzuklicken. Es erscheint dann ein Eingabefenster für denNamen des neuen Typs. Der weitere Ablauf, der sich für die anwenderspezi-fischen Elemente einer ACM-Anwendung vereinheitlichend darstellen lässt,wird im Abschnitt 2.3 beschrieben. Wenn ein Symbol mit Klick der linkenMaustaste markiert worden ist, kann anschließend mit der rechten Maustasteein Popup-Menü aufgerufen werden, das es gestattet, bestimmte Funktionenzu wählen, die sich auf das ausgewählte Symbol beziehen. Diese Funktionenwerden ebenfalls im Abschnitt 2.3 ausführlich behandelt.

# Modeler und System Library

In den Ordnern Modeler und System Library befinden sich alle Einträgebzw. Unterordner, die das ACM-Programmiersystem dem Anwender bereit-stellt, die er also in seine Anwendung ohne vorherige Deklaration einbezie-hen kann. Im nebenstehenden Bild ist der Ordner Modeler, wie er im Ex-plorerfenster erscheint, dargestellt. Im ersten Unterordner sind die Modellezusammengestellt, die das System dem Anwender bereitstellt. DieseModelle können aus dem Ordner heraus mit in das Fließschema gezogen1

werden (s. hierzu Abschnitt 2.4). In den Einträgen Parameter Types, PortTypes, Stream Types und Variable Types sind vordefinierte Typdefinitionenabgelegt. Eine Anwendung kann diese Typen verwenden, ohne sie zu de-finieren. Im Eintrag Procedures befinden sich die Schnittstellen der Proze-duren, die für einen externen Zugriff auf Stoffwertberechnungsprogrammedefiniert worden sind. Eine Sonderstellung hat der Unterordner System Library, der nicht nur inModeler enthalten ist, sondern auch als eigenständiger Ordner eine Ebenehöher im Explorer angeboten wird. In diesem Ordner finden sich weiterevordefinierte Typen, die aber eher allgemeiner Natur (generische Typen)sind.

# Flowsheet

Im nebenstehenden Bild ist die Struktur des Ordners Flowsheet im Explorerfenster dargestellt. Dieser Ordner enthält die Blöcke und die Strömeder konkreten Systemstruktur. Im angezeigten Beispiel sind das die BlöckeWUE1 und WUE2, die durch die Ströme HEISS_EIN, HEISS_AUS usw.miteinander verbunden sind. Der Inhalt des Ordners entspricht dem im Arbeitsbereich erzeugten Flie-ßschema der Anwendung.

Page 7: Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

ASPEN CUSTOM MODELER - Systemoberfläche2 - 4

2.3. Aufnahme anwendungsspezifischer Elemente

Die vom Nutzer zu entwickelnden Elemente der Anwendung werden durch den Explorerverwaltet. Diese Elemente werden in den Ordnern Custom Modeling, Flowsheet undComponent Lists abgelegt. Im folgenden werden die funktionellen Abläufe allgemein behandelt;am Beispiel der Modelle als ausgewählter Objektklasse werden diese Abläufe illustriert.

# Aufnahme eines neuen Elementes einer Objektklasse in die Anwendung

Soll ein neues Element einer bestimmten Objektklasse (Model, Port, Stream, Task, Script, usw)in die Anwendung aufgenommen werden, ist wie folgt zu verfahren:

S Die betreffende Objektgruppe im Ordner Custom Modeling desExplorers ist auszuwählen. Im unteren Abschnitt des Explorerfens-ters erscheinen Symbole für die bereits aufgenommenen Elemente;als letztes Symbol erscheint das Add ... Symbol ( im Beispiel dasAdd Model Symbol).

S Auf das Add ... Symbol ist ein Doppelklick auszuführen. Es er-scheint ein Eingabefenster, in das der Name des neuen Elementseinzugeben ist. Anschließend ist die Eingabe durch Anklicken desOK-Buttons zu quittieren.

S Nach dem Abschluss der Eingabe des Namens wird der Texteditoraktiviert. Dieser stellt in Kommentarform die Syntax der Objekt-gruppe dar. Die Kommentare werden in grüner Schrift dargestellt,der Programmtext in schwarzer Schrift , wobei Schlüsselwörter blauhervorgehoben werden. Im folgenden Bild ist der Editorbereich fürein Modell dargestellt.

Page 8: Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

ASPEN CUSTOM MODELER - Systemoberfläche 2 - 5

S Der erforderliche Programmtext kann nun eingegeben werden. Die Bedienung desTexteditors folgt den üblichen Regeln. Nach Beendigung der Texteingabe wird über denMenüpunkt File ein Pulldown-Menü aktiviert. In diesem Menü wird der MenüpunktClose ausgewählt. Der Text ist abzuspeichern.

S Nach Abschluss der Speicheroperation erscheint für das neu erstellte Objekt ein Symbolim Ordner Models. Das Symbol ist mit zwei roten Strichen markiert. Das bedeutet, dasses noch nicht in übersetzter Form vorliegt. Solange dieser Schritt nicht ausgeführtworden ist, existiert das Objekt auch noch nicht in den Systemlisten. Die Compilierungwird über das Popup-Menü des Symbols erreicht. Dieses Menü wird angezeigt, wenn,nach vorheriger Markierung des Symbols, die rechte Maustaste aktiviert wird. Es erlaubtden Zugriff auf die in der folgenden Tabelle zusammengestellten Funktionen, die abernicht bei jeder Objektklasse alle erscheinen:

Bezeichnung Bedeutung

Explore Es wird ein neues Explorerfenster speziell für das ausgewählte Ele-ment erzeugt.

Export Der Programmtext für das Element kann als Datei abgelegt werden.

Edit Der Editor wird aktiviert.

Rename Das Element kann umbenannt werden.

Delete Das Element wird gelöscht.

Copy Der Programmtext wird in die Zwischenablage kopiert. Über denMenüpunkt Paste im Edit-Menü der Kopfzeile kann das Elementunter neuem Namen erneut in die Anwendung eingefügt werden.

Compile Der Programmtext für das Element wird übersetzt. Mögliche Syn-taxfehler werden im SimulationMessage-Fenster angezeigt.

Properties Es erscheint ein Formular mit den Eigenschaften des Elementes.

Wenn die Übersetzung erfolgreich war, verschwinden die roten Markierungen; dasElement ist nun voll in die Anwendung integriert. Andere Elemente können auf das neueElement von jetzt an Bezug nehmen.

# Veränderung eines bereits existierenden Elementes

Für die Veränderung eines bereits abgelegten Objektes ist wie folgt vorzugehen:S Ordner Custom Modeling öffnen.S Objektklasse markieren oder öffnen, die das gewünschte Element enthält.S Element im unteren Abschnitt des Explorerfensters markieren.S Popup-Menü über die rechte Maustaste aktivieren und anschließend die gewünschte

Funktion (Edit, Rename, Delete usw.) auswählen.

Page 9: Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

ASPEN CUSTOM MODELER - Systemoberfläche2 - 6

2.4. Die interaktive Erzeugung eines Fließschemas

Für die interaktive Erzeugung des Fließschemas kann der Nutzer auf die Modellblöcke in denOrdnern Custom Modeling und Modeler zugreifen. Die im folgenden beschriebenen Abläufesind unabhängig davon, aus welchem Ordner ein Modellblock ausgewählt wird.

# Auswahl eines Blockes aus der Bibliothek

Soll ein Element aus der Bibliothek in das Fließschema eingefügt werden, so ist wie folgt zuverfahren:

S Im Explorerfenster ist einer der Ordner Custom Modeling oder Modeler zu öffnen.S Der Unterordner Models ist zu öffnen. Es erscheinen die in diesen Unterordnern verfüg-

baren Modellblöcke. Diese Blöcke können in das Fließschema eingefügt werden.S Der einzufügende Block ist anzuklicken und damit auszuwählen.S Der markierte Block ist in den Arbeitsbereich zu ziehen und an die gewünschte Stelle zu

positionieren (drag & drop). Der Block erhält automatisch einen Namen zugewiesen.Dieser kann später geändert werden. Wenn über den Menüpunkt Tools der Kopfzeile derUnterpunkt Settings aktiviert wird, kann die automatische Namensgenerierung für dieBlöcke abgeschaltet werden; der Nutzer wird dann aufgefordert, einen Namen ein-zugeben. Für die Namen der Ströme gilt eine analoge Regelung.

# Verbinden eines eingefügten Blocks mit anderen Blöcken

Für die Verbindung des eingefügten Blocks mit anderen Blöcken müssen belegbare Ports anden Blöcken existieren. Unter dieser Voraussetzung erfolgt die Herstellung der Verbindungenzwischen den Blöcken in folgenden Schritten:

S Im Ordner Custom Modeler ist der Unterordner Stream Types zu öffnen. Es erscheinenalle verfügbaren Stromtypen (Standardtypen Connection und ControlSignal sowie dienutzerdefinierten Typen).

S Der gewünschte Typ ist zu markieren. Der Mauszeiger ist in das Fenster, das das Flie-ßschema enthält, zu ziehen.

S Wenn der Mauszeiger sich im Fließschemabereich befindet, werden alle freien Ports, diemit dem Stromtyp kompatibel sind, als blaue Pfeile hervorgehoben.

S Der Mauszeiger ist auf einen Port zu bewegen; ob auch ein bereits belegter Port genutztwerden kann, hängt vom Charakter des einzufügenden Blocks ab. Die linke Maustaste istzu lösen.

S Der Mauszeiger wechselt die Gestalt; er nimmt die Form der Pfeilspitze an. DieserMauszeiger ist nun auf einen zweiten Port zu positionieren.

S Wird die linke Maustaste losgelassen, erscheint i.a. eine Liste mit Variablen, die überden angeklickten Port zu erreichen sind. In dieser Liste ist die Variable zu markieren, aufdie sich der neu einzufügende Block beziehen soll. Das Formular ist über den SchalterOK zu schließen.

Page 10: Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

ASPEN CUSTOM MODELER - Programmiersprache 3 - 1

3. Die Elemente der Programmiersprache3.1. Grundelemente

3.1.1. Namen und Schlüsselwörter

Alle Objekte eines ACM-Programms (Typen, Variable, Parameter, Modelle usw.) erhaltenBezeichner, die ihre eindeutige Identifikation ermöglichen. Ein bestimmter Name darf in derRegel nur einmal vergeben werden. Für die Namensbildung sind folgende (auch in anderenProgrammiersprachen übliche) Regeln zu beachten:S Das erste Zeichen eines Namens muss stets ein Buchstabe sein.S Vom zweiten Zeichen an können Buchstaben und Ziffern verwendet werden.S Der Unterstrich _ wird wie ein Buchstabe behandelt.S Groß-/Kleinschreibung für Buchstaben ist ohne Bedeutung für die Identifikation.Schlüsselwörter (wie z.B. MODEL, END, AS ) sind geschützte Bezeichner und dürfen dem-zufolge nicht als Namen für Objekte eines ACM-Programms verwendet werden.

3.1.2. Konstanten

Numerische Konstanten werden nach den auch in anderen Programmiersprachen üblichenRegeln gebildet. Ganzzahlige Konstanten besitzen keinen Dezimalteil. Bei reellen Konstantenkann ein Exponententeil die Darstellung ergänzen.Zeichenketten (Strings) sind Folgen beliebiger Zeichen (Buchstaben, Ziffern, Sonderzeichen),die in die Zeichenkettenklammern eingeschlossen sind. Es gilt folglich:

“ zeichen ... “

3.1.3. Typen, Variablen und Parameter

In ACM wird ein strenges Typkonzept verfolgt, d.h., jede Variable und jeder Parameter müssenin einer Vereinbarung typisiert werden. Ein Typ definiert eine bestimmte Menge von Eigen-schaften. Alle Variablen bzw. Parameter, die einem deklarierten Typ angehören, weisen diegleichen Eigenschaften auf (s. Abschnitt 3.2). Im Verlauf der Programmabarbeitung werden den Eigenschaften Werte zugewiesen. DieseWerte gehören in der Regel elementaren Typen (reell, ganzzahlig, usw.) an.Variablen sind Größen, die während der Simulation unterschiedliche Werte annehmen können.Die Eigenschaft value einer Variablen ist damit eine echte Veränderliche. Bei Parametern wirddiese Eigenschaft dagegen wie eine Konstante interpretiert.

Soll einer Eigenschaft einer Variablen oder eines Parameters ein Wert zugewiesen werden, soerfolgt das nach folgender Formel:

Der Name kennzeichnet das konkrete Objekt. Für eigenschaft gibt es definierte Bezeichner. Die

zuweisung 6 name.eigenschaft : wert_der_eigenschaft ; ...

Page 11: Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

ASPEN CUSTOM MODELER - Programmiersprache3 - 2

wichtigsten Eigenschaftsbezeichner und ihre Bedeutungen sind in der folgenden Tabelleangegeben.

Eigenschaft Bedeutung

Value Wert der Variablen / des Parameters

Upper Obere Grenze für die Eigenschaft value.

Lower Untere Grenze für die Eigenschaft value.

Scale Skalierungsfaktor für reelle Variable.

IsConnected Diese Eigenschaft (logischer Typ) zeigt an, ob die Variableim Fließschema „verbunden“ ist.

Description Beschreibung der Bedeutung in Form einer Zeichenkette

PhysicalQuantity Diese Eigenschaft kann zur Zuweisung einer Maßeinheitgenutzt werden; es handelt sich um eine Zeichenkette.

Spec Spezifikation des Charakters einer Variablen im Kontext derSimulationsaufgabe.

Die Zuweisung einer Variablen bzw. eines Parameters zu einem Typ ( wird auch als Verein-barung bezeichnet) folgt der syntaktischen Regel:

Die Namensliste auf der linken Seite vom Schlüsselwort AS führt die Variablen bzw. Parameterauf, die dem durch typbezeichner gekennzeichneten Typ angehören. Wenn mehrere Eigenschaften einer Variablen mit Werten belegt werden sollen, führt diefolgende Konstruktion zu einer verkürzenden Notation:

< Beispiele

T1, T2 AS Temperature;k, cp, A AS RealParameter;T1.value: 350;k.value: 981.3;

// Im Block behaelter werden die Eigenschaften der Variablen// tx wie folgt belegt:

name , name ... AS typbezeichner ;

WITHIN blockname.variablenname eigenschaft : wert; ...ENDWITH

Page 12: Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

ASPEN CUSTOM MODELER - Programmiersprache 3 - 3

WITHIN behaelter.tx value : 25; Spec : Fixed;ENDWITH

3.1.4. Mengen und Felder

Mengen stellen unstrukturierte Ansammlungen von ganzzahligen Konstanten oder von Zeichen-ketten dar. Folgende syntaktische Regeln beschreiben die Vereinbarung einer Menge:

Eine Menge kann demzufolge auf unterschiedlichen Wegen definiert werden. Einmal kann siedurch Aufzählung ganzzahliger Konstanten oder durch Angabe eines ganzzahligen Bereichsdefiniert werden; zum anderen kann sie aber als Elemente auch Zeichenketten enthalten.

< Beispiele:

Index AS IntegerSet([1:10]);Auswahl AS IntegerSet ( 1,3,5,7 );Stoffliste AS StringSet ( “co2“,“wasser“);

Ein Feld ist eine geordnete Menge von Elementen, die alle dem gleichen Basistyp angehören.Die Vereinbarung eines Feldes wird durch die folgende syntaktische Regel beschrieben:

Der Name des Feldes wird nach den bekannten Regeln gebildet. Ein Feld kann mehrere Indizesbesitzen. Der Bereich, den ein Index durchlaufen kann, wird durch eine Indexmenge beschrie-ben. Die Indexmenge kann als Menge vorher vereinbart worden sein; sie kann aber auch durchBeschreibung des Mengeninhalts (s. Syntaxformel für Mengen) angegeben werden. Der Basis-typ ist der gemeinsame Typ, dem alle Feldelemente angehören (zu Typen s. Abschnitt 3.2). DerBasistyp kann auch ein Modelltyp sein.

< Beispiele:

Komponenten AS StringSet ( [ “CO2“ , “Wasser“ , “O2“, “N2“ ] );Molanteile(Komponenten) AS MolFraction;// Definition der Indexmenge in der Feldvereinbarung.Molanteil_Boden( [“Wasser“,“Ethanol“] , [1:10] ) AS MolFraction;

name_der_menge AS mengen_typ (inhalt_der_menge);mengen_typ 6 {IntegerSet | StringSet}inhalt_der_menge 6 {[ganze_zahl , ...] | [ganze_zahl : ganze_zahl] | [zeichenkette , ...]}

name_des_feldes (indexmenge , ... ) AS basistyp

Page 13: Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

ASPEN CUSTOM MODELER - Programmiersprache3 - 4

3.2. Typen3.2.1. Das Typkonzept von ACM

Es wurde bereits darauf verwiesen, dass in ACM strenge Deklarationspflicht für alle Objektebesteht. Ausgenommen sind lediglich die Konstanten, deren Typen aus der jeweiligen Dar-stellung abgeleitet werden.Neben den allgemeinen (generischen) Typen ( real, integer, string usw.) unterstützt ACM dieDefinition problemnaher Typen für Variable und Parameter. Das sind Typen, deren Eigen-schaften so gewählt werden, dass sie eine bestimmte Klasse von Objekten der jeweiligenAnwendung beschreiben. Die Variablen, Parameter, Modelle usw. gehören dann diesen Typenan, sind somit Instanzen dieser Typen.Bezüglich der Typen ist in ACM ein Vererbungskonzept verfügbar. Ein neu eingeführter Typkann die Eigenschaften eines bereits existierenden Typs erben.Die allgemeine Form einer Typdeklaration lässt sich durch die folgende syntaktische Formelbeschreiben:

Der Bezeichner für den Typ (typname in der Formel) wird nach den Regeln für Namen gebildet.Wenn die Typdeklaration eine USES-Klausel enthält, so verweist der in dieser Klausel enthalte-ne Typname auf den Typ, dessen Eigenschaften geerbt werden.Der Inhalt des Deklarationsabschnitts richtet sich nach der Bedeutung der jeweiligen Objekt-klasse. Im folgenden werden die in der Aufzählung enthaltenen Objektklassen behandelt, wobeidie Modellklasse im Unterabschnitt 3.3. ausführlich dargestellt wird.

3.2.2. Variablentypen

Die Deklaration eines Variablentyps erfolgt nach der folgenden syntaktischen Formel:

objektklasse typnameUSES typname

deklarations_abschnitt

END

objektklasse 6 {MODEL | STREAM | VARIABLE | PORT | TYPE | PARAMETER | PROPERTIES | PROCEDURE |

FOLDER }

VARIABLE variablentyp_name USES variablentyp_name eigenschaft : eigenschafts_wert; ...ENDeigenschaft 6 { Value | Upper | Lower | IsConnected | Description | PhysicalQuantity | Spec | Scale}

Page 14: Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

ASPEN CUSTOM MODELER - Programmiersprache 3 - 5

Die Typnamen werden nach den Namensregeln gebildet. Die USES-Klausel, sofern vorhanden,verweist auf einen Typ, dessen Eigenschaften geerbt werden sollen.Der Deklarationsabschnitt besteht bei der Variablen-Typdeklaration aus einer Auflistung vonEigenschaften, die den Typ charakterisieren und der Zuweisung von Werten zu diesen Eigen-schaften (s. Abschnitt 3.1.3). Dieser Abschnitt kann auch leer sein. Die Werte der EigenschaftSpec sowie deren Bedeutungen sind in der folgenden Tabelle angegeben:

Wert von Spec Bedeutung

Fixed Der Wert der Variablen wird vorgegeben; der Wert ist kein Ergebnis desLösungsprozesses.

Initial Die Variable ist Zustandsvariable in einem Differentialgleichungssys-tem; der Anfangswert ist bekannt.

Rateinitial Die Variable ist Zustandsvariable in einem Differentialgleichungssys-tem; die zeitliche Ableitung zum Anfangszeitpunkt ist bekannt.

Free Der Wert der Variablen ist das Ergebnis des Lösungsprozesses.

Das Entwicklungssystem stellt den vordefinierten Variablentyp RealVariable bereit. DieTypdefinition bezieht sich auf Variable, die sich als Lösung eines Simulationsproblems ergeben.Die wesentlichen Abschnitte der Definition sind im folgenden aufgeführt:

VARIABLE RealVariableValue AS Real(1.0);Upper AS Real(1.0E37);Lower AS Real(-1.0E37);Scale AS Real(1.0);Derivative AS Real;IsConnected AS Logical(“FALSE“);Description AS String(““);PhysicalQuantity AS String(““);Spec AS SpecType(“FREE“);Tag AS String(““);

END

< Beispiele

/* Die folgende Deklaration fuehrt einen Typ ein, der zum Grundtyp RealVariable aequivalent ist */

VARIABLE DruckEND// Dafuer koennte auch stehen:VARIABLE Druck USES RealVariableEND

Page 15: Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

ASPEN CUSTOM MODELER - Programmiersprache3 - 6

VARIABLE Abs_Tempvalue: 300.15;

Lower: 150.0;Upper: 500.0;

END

3.2.3. Parametertypen

Parameter sind Größen, die unabhängig von den Modellgleichungen vorgegeben werden können.In ACM wird davon ausgegangen, dass Parameter einem Standardtyp angehören, bzw. einemanwendungsspezifischen Typ, der von einem Standardtyp abgeleitet worden ist. Die folgendenStandardtypen sind vordefiniert:

� Zeichenketten Standard-Parametertyp

PARAMETER StringParameterDescription AS String(“ “);Value AS String(“ “);

END

� Ganzzahliger Standard-Parametertyp

PARAMETER IntegerParameterDescription AS String(“ “);Value AS Integer(0);Upper AS Integer(32767);Lower AS Integer(-32767);

END

� Reeller Standard-Parametertyp

PARAMETER RealParameterDescription AS String(“ “);Value AS Real(0.0);Upper AS Real(1.0E37);Lower AS Real(-1.0E37);

END

� Logischer Standard-Parametertyp

PARAMETER LogicalParameterDescription AS String(“ “);Value AS Logical(“TRUE“);

END

Für die anwendungsorientierte Deklaration eines Parametertyps gilt die folgende syntaktischeFormel:

Page 16: Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

ASPEN CUSTOM MODELER - Programmiersprache 3 - 7

Die anwendungsorientierte Deklaration eines Parametertyps muss auf einem Standardtypberuhen. Der Deklarationsabschnitt kann teilweise oder auch als Ganzes entfallen. Nur dieEigenschaft value ist für Parametertypen definiert. Durch die valid-Klausel kann der Werte-bereich eines Parameters durch einen Mengentyp festgelegt werden. Die Parameter, die diesemTyp angehören, können dann nur Werte annehmen, die in der Liste der zulässigen Werteaufgeführt sind. Außerdem müssen diese Parametertypen Nachfolger von Integer- oder String-Typen sein.

< Beispiel

PARAMETER stromrichtung USES StringParameterValid AS StringSet( [“Gleichstrom“ , “Gegenstrom“, “Kreuzstrom“] );Value: “Gegenstrom“;END

3.2.4. Port-Typen

Ports definieren die Schnittstellen der Modelle; sie beschreiben damit die Struktur der Stromvek-toren für die ein- und austretenden Ströme. Die Deklaration eines Port-Typs hat die Form einerListe von Variablendeklarationen. Es gilt die folgende syntaktische Formel:

In der Liste der Variablendeklarationen stehen die Schnittstellenvariablen, die entweder vonanderen Blöcken übernommen werden oder von anderen Blöcken bereitgestellt werden. DieseListe kann auch leer sein. Auf diese Variablen wird in den Modellen Bezug genommen. Durchdie Verknüpfung im Fließschema erfolgt die Zuordnung auf der Ebene der konkreten Bloc-kvariablen.

< Beispiel

PORT in_out_genvp AS Flow ;t AS Temperature ;

END

PARAMETER typ_name USES standardtyp_name value : standard_wert; valid AS mengen_typ(liste_der_zulässigen_werte);END

PORT typ_name USES typ_name port_variable AS variablen_typ; ...END

Page 17: Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

ASPEN CUSTOM MODELER - Programmiersprache3 - 8

3.2.5. Strom-Typen

Ströme verbinden die Ports unterschiedlicher Prozesseinheiten. Dabei ist zwischen Stoff-/Energieströmen (Standardtyp CONNECTION) und Informationsströmen (Standardtyp: ControlSignal) zu unterscheiden. Die beiden genannten Standardtypen sind im Ordner Custom Modeling verfügbar. Für die allermeisten Anwendungen werden diese Standardtypen ausrei-chen. Es wird bei der Einführung eines Standardstroms als Kopplung von Prozesseinheiten nurvorausgesetzt, dass die zu verbindenden Ports kompatibel zueinander sind. Der Nutzer kann darüber hinaus auch eigene Stromtypen einführen, die die Eigenschaften derStandardtypen erben können und denen daneben auch eigene Eigenschaften in Form vonBerechnungsvorschriften zugewiesen werden können. Ein Strom kann damit Modellfunktionenübernehmen. Die folgende syntaktische Formel beschreibt die Deklaration eines Stromtyps:

Auf die Syntax der Stromanweisungen soll hier nicht näher eingegangen werden.

3.2.6. Komponentenlisten und Eigenschaftsberechnung

ACM unterstützt die Schnittstelle PROPERTIES PLUS (PP), die es erlaubt, aus ASPEN PLUSheraus Eigenschaftsberechnungsverfahren zu exportieren. ACM-Anwendungen können damitdiese Berechnungsverfahren importieren. Im Anhang ist die Vorbereitung einer PP-Anwendungunter ASPEN PLUS beschrieben. Im folgenden wird dargestellt, wie auf diese Schnittstelle unterACM zugegriffen werden kann.Der Zugriff auf die PP-Berechnungsverfahren erfolgt über spezielle Funktionsaufrufe (s. An-hang). Bei diesen Berechnungen muss die Zusammensetzung des Stoffsystems komponentenge-recht vorgegeben werden. Diese stofflichen Komponenten werden in einer definierten Folge ineinem speziellen Konstrukt, der Komponentenliste, geführt. Diese Liste wird über den Explorerangelegt und verwaltet. Die Elemente der Anwendung (Modelle, Port, Ströme), die auf dieEigenschaftsberechnung Bezug nehmen, müssen die Komponentenliste importieren. Das wirdüber die Eigenschaft ComponentList , über die die genannten Elemente verfügen, erreicht.

# Aufnahme einer neuen Komponentenliste in die Anwendung

Es sind folgende Schritte erforderlich:Im Explorerfenster ist der Ordner Component List zu markieren. unteren Teil des Explorerfens-ters erscheint der Inhalt desOrdners. Auf das Symbol Add Component List ist ein Doppelklickauszuführen.S Es erscheint ein Eingabefeld; der Name der neuen Komponentenliste ist anzugeben. Die

neue Liste erscheint als Symbol im Inhaltsfenster des Ordners.S Auf das Symbol der neuen Liste ist ein Doppelklick auszuführen. Wenn die PP-Schnitt-

stelle noch nicht installiert ist, erfolgt die Aufforderung, diese Installation jetzt vor-zunehmen. Die Frage, ob die Installation jetzt erfolgen soll, ist unbedingt mit „Ja“ zu

PRIVATE STREAM strom_typ USES strom_typ strom_anweisung , ...END

Page 18: Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

ASPEN CUSTOM MODELER - Programmiersprache 3 - 9

beantworten; ansonsten wird die weitere Bearbeitung der Komponentenliste abgebro-chen. Danach erscheint das folgende Eingabeformular:

S Im Feld Definition file ist der Name der Datei einzutragen (Extension: .appdf), die diePP-Schnittstelle für dasStoffsystem bereitstellt.Diese Datei muss vorhermit ASPEN PLUS (imPP-Modus) erzeugt wor-den sein. Mit dem Schal-ter Browse kann dieseDatei in den Verzeich-nissen gesucht werden.Mit dem OK-Schalter istdie Festlegung derSchnittstelle abzuschlie-ßen.

S Nach der Installation der Schnittstelle wird das folgende Auswahlformular angezeigt.In diesem Formular werdenim Abschnitt AvailableComponents die durch diePP-Schnittstelle zu behan-delnden stofflichen Kompo-nenten angezeigt. DurchMarkieren der Namen undKlick auf den Auswahlschal-ter > können die Komponen-ten ausgewählt werden, dieder konkreten Komponenten-liste angehören sollen. Dieausgewählten Stoffe erschei-nen im FormularabschnittComponents. Das Formularwird mit dem OK-Schaltergeschlossen.

Page 19: Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

ASPEN CUSTOM MODELER - Programmiersprache3 - 10

S Wird der Schalter Edit Physical Properties betätigt, erscheint das folgende Formular.In diesem Formular werden diebezüglich der PP-Schnittstellebereitgestellten Optionen ange-zeigt. Durch Markieren einesEintrags im Feld Property Op-tion erscheinen im rechtenFeld ( Select Value ...) diemöglichen Werte für die Opti-on. Der Nutzer kann durchMarkieren eines Wertes dieVorgaben verändern. NachBetätigung des OK-Schalterswird die neue Einstellung ak-tiv.

# Veränderung einer Komponentenliste

Wenn die Definition abgeschlossen wurde, ist die neue Komponentenliste als Symbol im OrdnerComponent List verfügbar. Durch Klick mit der rechten Maustaste auf das Symbol wird einPopup-Menü sichtbar, das die Funktionen bereitstellt, die für die Modifikation der Liste er-forderlich sind. Der Menüpunkt Edit führt zur erneuten Anzeige des Komponenten-Auswahlfor-mulars; der Menüpunkt Physical Properties Option erlaubt die erneute Modifikation derOptionen für die Berechnungsverfahren. Die anderen Menüpunkte erklären sich selbst.

# Import einer Komponentenliste in ein Objekt der Anwendung

Innerhalb einer ACM-Anwendung wird auf eine Komponentenliste in der Regel in einemModelltyp Bezug genommen; prinzipiell ist das aber auch in Port- und Stromtypen möglich.Diese Sprachelemente besitzen die Eigenschaft ComponentList, der der Name der Komponen-tenliste als Zeichenkette zuzuweisen ist:

Diese Eigenschaft ist wie eine Größe des Typs StringSet zu interpretieren. Damit lassen sichFeldvariablen definieren, die, indexiert mit der Zeichenkette für die jeweilige Komponente,komponentenspezifische Merkmale enthalten. Die entsprechende Deklarationsanweisung hatdann die Form:

ComponentList : “ name_der_komponentenliste“ ;

variablen_name (ComponentList) AS variablen_typ

Page 20: Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

ASPEN CUSTOM MODELER - Programmiersprache 3 - 11

In der Regel handelt es sich hierbei um Felder, die die Zusammensetzung des Stoffsystemskennzeichnen.

< Beispiel

// Es ist der Siedepunkt eines Gemisches aus Wasser und // Ethanol zu bestimmen.// Dafuer ist die Funktion pBubt heranzuziehen, die die // Stoffwerte aus der PP-Schnittstelle nutzt.

MODEL dampfComponentList: "wasser_alk";x(ComponentList) AS MoleFraction;t AS Temperature;p AS Pressure;p.value: 1;call(t) = pBubt(p,x);sigma(x)=1;END

3.2.7 Definition nutzerspezifischer Modell-Ordner

Für die Definition von Ordnern, in die der Nutzer die von ihm entwickelten Modelle ablegenkann, ist wie folgt vorzugehen:S Im All Items - Fenster ist der Ordner Custom Modeling auszuwählen.S Im Fenster Contents of Custom Modeling erscheint unter Anderem ein Symbol mit dem

Namen Add Model Folder.S Das Symbol Add Model Folder ist anzuklicken. Es erscheint

ein Eingabefeld (mit der Bezeichnung Creat Folder); es istder Name des neuen Ordners anzugeben.

S Nach Abschluss der Eingabe erscheint im Fenster Contentsof Custom Modeling ein neues Symbol mit dem Namen desneuen Ordners.

Wenn man den neu angelegten Ordner durch Doppelklick öffnet,erscheinen im Contents .. - Fenster die Symbole für das Hinzufügeneines Modells oder eines weiteren Modell-Ordners. Damit könnenauch hierarchische Verzeichnisstrukturen erzeugt werden.

Der neue Ordner wird (evt. einschließlich seiner Unterordner) in denVerzeichnisbaum von Custom Modeling eingeordnet.

Im nebenstehenden Beispiel ist der Modellordner user1 neu erzeugtworden. In diesem Ordner könnten nun über den Schalter Add Modelneue Modelle eingeordnet werden oder über den Schalter Add ModelFolder könnten weitere Unterordner erzeugt werden.

Page 21: Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

ASPEN CUSTOM MODELER - Programmiersprache3 - 12

3.3. Modelle3.3.1. Der Typ Model

Die Modelle stellen die Modellgleichungen für die Prozesseinheiten in einer definierten syntakti-schen Form bereit. Das Modell einer konkreten Prozesseinheit ist dabei eine Instanz einesabstrakten Modelltyps, der in allgemeiner Form die Prozesseinheit als Klasse beschreibt. DieEinrichtung einer Instanz wird im Augenblick der Aufnahme einer Prozesseinheit in das Flie-ßschema (s. Abschnitt 3.4.) vollzogen.Damit werden die Modelle durch die Deklarationen von Modelltypen in eine Anwendungeingeführt. Die syntaktische Form der Modell-Deklaration lässt sich wie folgt definieren:

Der Name des Modelltyps wird nach den üblichen Regeln gebildet. Die einzelnen Konstruktesind alle optional; ein völlig leeres Modell ist aber kaum sinnvoll. Der folgende Standard-Modelltyp ist in ACM verfügbar:

Dieser Typ ist der Basistyp für alle nutzerdefinierten Modelltypen. Damit sind auch die Basis-eigenschaften, die jeder Modelltyp besitzt, definiert.

3.3.2. Variablenvereinbarung

Die in 3.1.3. eingeführte syntaktische Formel für die Variablenvereinbarung muss für dieseVereinbarungsform innerhalb von Modelltypen wie folgt ergänzt werden:

MODEL modelltyp_name USES modell_namevariablen_vereinbarung;...port_vereinbarung;...modellgleichung;...zuweisung;...bedingte_anweisung;...laufanweisung;...verteileranweisung;...pp_funktions_aufruf;...modellvereinbarung;...

END

MODEL GenericModelDescripion AS String(“ “);Default_Form AS String(“ “);Current_Icon AS String(“ “);InputSignal AS INPUT ControlPort;OutputSignal AS OUTPUT ControlPort;ComponentList AS ComponentListName(“Default“);

END

variablen_name (menge,...),.. AS indikator,.. variablen_typ (spezifikation,...)

Page 22: Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

ASPEN CUSTOM MODELER - Programmiersprache 3 - 13

Die nachfolgenden Punkte sind zu beachten:S Alle Namen werden nach den bekannten Regeln gebildet.S In einer Vereinbarungsanweisung können mehrere Variablen des gleichen Basistyps

deklariert werden. Feldvereinbarungen werden durch eine Mengenliste (die Mengendefinieren den Indexbereich) deklariert.

S Als Indikatoren sind folgende Schlüsselwörter zugelassen:

Indikator Bedeutung

INPUTOUTPUT

Variablen, die einen dieser beiden oder beide Indikatorenaufweisen, können mittels Verbindungen des Standard-Stromtyps ControlSignal als Ein- bzw. Ausgangsgrößenangesehen werden. Die Richtung der Übertragung folgt ausdem Schlüsselwort. Bei der Aufnahme eines Elements desTyps in das Fließschema werden diese Variablen ähnlichwie Ports angezeigt, wenn eine Verbindung des TypsControlSignal in das Fließschema gezogen wird.

HIDDEN Variablen mit diesem Indikator werden in Ergebnistabellenund -graphiken nicht angezeigt.

S Der Variablentyp muss vor seiner ersten Verwendung deklariert worden sein.S Als Spezifikationen können die in 3.2.2. eingeführten Werte der Eigenschaft Spec

angegeben werden. Es können aber in Spezifikationslisten auch andere Eigenschaftenmit Werten belegt werden. Das erfolgt nach der bekannten Form:

Sname_der_eigenschaft : wert

< Beispiele

bodenzahl AS IntegerParameter(10);

// Value-Attribut wird angenommen.t_boden([1:bodenzahl]) AS Temperature (value: 350, upper: 600);

// Die folgenden Variablen werden fuer eine Regelung // eingefuehrt.stell AS INPUT RealVariable; // Wird vom Regler geliefert.h AS OUTPUT RealVariable;// Wird an den Regler uebergeben;

// Die folgende Variable kann nicht angezeigt werden.p AS INPUT , HIDDEN Pressure(3);

3.3.3. Portvereinbarung

In der Regel lassen sich Prozesseinheiten im Rahmen von Fließschemata miteinander koppeln;die die Prozesseinheiten beschreibenden Modelle müssen die Koppelstellen in Form von Portsdefinieren. Die entsprechende Portvereinbarung hat die folgende syntaktische Form:

Page 23: Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

ASPEN CUSTOM MODELER - Programmiersprache3 - 14

Folgende Punkte sind zu beachten:S Der Name des Ports wird nach den bekannten Regeln gebildet.S Als Richtungsindikatoren werden die Schlüsselwörter INPUT und OUTPUT herangezo-

gen. Bei der Herstellung der Verbindungen zwischen Prozesseinheiten im Fließschemadurch Ströme eines bestimmten Typs (in der Regel der Standardtyp Connection) werdendie Richtungen durch Pfeile angezeigt.

S Der Porttyp muss vor seiner ersten Verwendung vereinbart worden sein.

Der Zugriff auf eine Portvariable in den Modellgleichungen folgt der Syntax:

Die Variablen, die zu einem Porttyp gehören, werden in der Porttyp-Deklaration (s. Abschnitt3.2.4) festgelegt.

Wenn in einen Port mehrere Ströme einmünden können, so entsteht ein Multiport. Dafür gibtes in ACM eine spezielle Syntax:

Die den Schlüsselwörtern MAX_CONNECTION bzw. MIN_CONNECTION folgendenganzzahligen Konstanten geben die Höchst- bzw. Mindestgrenze der Anzahl der Ströme an, diein den Multiport einmünden. Ihre Angabe ist optional.

Multiportvariable besitzen zwei zusätzliche Eigenschaften, über die auf die unterschiedlichenTeilströme in den Modellgleichungen zugegriffen werden kann. Diese werden in der folgendenTabelle erläutert:

Eigenschaft Erläuterung

Connection Hierbei handelt es sich um ein Feld, das die Variablen der einzel-nen Ports bereitstellt. Der Indextyp ist StringSet. Die Indexmengeist die Menge der Bezeichner der Teilströme.

Connection Set Eine Variable des Typs StringSet, die die Bezeichner der Teilströ-me als Zeichenketten enthält.

port_name AS richtungsindikator port_typ;

port_name AS richtungsindikator MULTIPORT OF port_typ (MAX_CONNECTION: ganze_zahl,

MIN_CONNECTION: ganze_zahl) ;

port_name.variablen_name

Page 24: Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

ASPEN CUSTOM MODELER - Programmiersprache 3 - 15

1

Der Zugriff auf eine Variable eines Stromes, die über einen Multiport in das Modell eingeführtwird, hat dann die Form:

< Beispiele

// Ein Port des Typs I_O_P besteht aus einer Variablen T // vom Typ Temperature und einer Variablen mf vom Typ MoleFlow.Eingang1 AS INPUT I_O_P;Eingang2 AS INPUT I_O_P;Ausgang AS OUTPUT I_O_P;Ausgang.mf = Eingang1.mf + Eingang2.mf ;

// Im folgenden Beispiel wird der Multiport Eingang von den drei// Strömen S1, S2 und S3 belegt.Eingang AS INPUT MULTIPORT OF I_O_P;Ausgang AS OUTPUT I_O_P;

Ausgang.mf = Eingang.Connection(“S1“).mf+ Eingang.Connection(“S2“).mf+ Eingang.Connection(“S3“).mf;

3.3.4. Die Modellgleichungen

Die Modellgleichungen beschreiben das statische oder das dynamische Verhalten einer Prozess-einheit. Das statische Verhalten kann auch auf der Basis der Gleichungen für das dynamischeVerhalten ermittelt werden; hierbei werden alle zeitlichen Ableitungen zu Null gesetzt. DieKodierung der Modellgleichungen in ACM folgt der Syntax:

Die Bezeichnung einer Gleichung durch einen speziellen Namen ist optional. Bezüglich derAusdrücke, die auf der linken und der rechten Seite einer Gleichung auftreten, sind folgendePunkte zu beachten:S Die Syntax der Ausdrücke entspricht weitgehend der Syntax arithmetischer Ausdrücke

in höheren Programmiersprachen (Pascal, C++, FORTRAN usw.).S Eine Gleichung in ACM ist mehr als eine reine Wertzuweisung. Sowohl auf der rechten

als auch auf der linken Seite können Ausdrücke stehen. In ACM wird eine gleichungs-orientierte Simulation realisiert; darum ist die Schreibweise der Modellgleichungen fürdie Gestaltung des Lösungsprozesses ohne Bedeutung.

S Soll in eine Gleichung die zeitliche Ableitung einer Variablen aufgenommen werden, soist der Variablen das Zeichen $ voranzustellen. Die so entstehende Differentialglei-1

gleichung 6 name_der_gleichung: ausdruck = ausdruck;

multiport_name.connection(index).variablen_name

Page 25: Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

ASPEN CUSTOM MODELER - Programmiersprache3 - 16

chung muss nicht in irgendeiner Standardform angegeben werden.S In den Modellgleichungen kann auf Elemente von Feldern zugegriffen werden.S Innerhalb eines Ausdrucks können Standardfunktionen aufgerufen werden.S Auf Feldelemente kann im Rahmen von Ausdrücken auf unterschiedliche Weise zu-

gegriffen werden. Folgende Formen sind möglich:

Wenn der Zugriff sich auf mehr als ein Feldelement bezieht, muss der Kontext berücks-ichtigt werden (s. Beispiele am Ende des Abschnitts).

S In der folgenden Tabelle sind die verfügbaren Standardfunktionen aufgeführt:

ACM-Notation Mathematische Notation Bedeutung

SIN sin(x)

COS cos(x)

TAN tan(x)

ASIN Arc sin(x)

ACOS Arc cos(x)

ATAN Arc tan(x)

SQRT Quadratwurzel

SQR x²

EXP e x

LOGe ln (x) Natürlicher Logarithmus

LOG10 log (x) Dekadischer Logarithmus

ABS | x | Absoluter Betrag

iSIGMA ' x Summe der Variablen

iPRODUCT ( x Produkt der Variablen

iMAX max ( x ) Maximaler Wert

iMIN min ( x ) Minimaler Wert

feldelement_zugriff 6{ feld_variable | feld_variable( index ) |

feld_variable([ index, ...] ) |feld_variable( [index : index] ) |feld_variable( menge ) }

index 6 { ganze_zahl | zeichenkette }

Page 26: Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

ASPEN CUSTOM MODELER - Programmiersprache 3 - 17

TIME Aktuelle Simulationszeit

DELAY Erzeugung einer Verzögerung

< Beispiele

MODEL behaelter

h AS OUTPUT RealVariable;stell AS INPUT RealVariable;A,hv AS RealParameter;eingang AS INPUT iop;ausgang AS OUTPUT iop;

// Es folgt die Differentialgleichung fuer die Hoehe // im Behaelter.

$h=(eingang.vp*stell-ausgang.vp)/A;ausgang.vp=hv*sqrt(h);

END

MODEL mischern_kompo AS IntegerParameter(4);index AS IntegerSet([1:n_komp]);eingang(index) , ausgang(index) , mfk AS MolFlow;

// Die folgende Zuweisung weist alle Elemente von eingang // den entsprechenden Elementen von ausgang zu.

ausgang = eingang;

// Folgende Anweisungen beziehen sich nur auf die ersten // drei Teilströme.

ausgang([1,2,3]) = eingang([ 1:3 ]);

// Im folgenden Fall wird den Komponentenströmen 1,3,4 von // ausgang der konstante Wert mfk zugewiesen.

ausgang( [ 1,3,4 ] ) = mfk;

//....

END

3.3.5. Bedingte Anweisungen

Bedingte Anweisungen dienen der Berücksichtigung von alternativen Zweigen in der Programm-abarbeitung. Die Verzweigung wird durch den Wert eines logischen Ausdrucks gesteuert. Ein

Page 27: Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

ASPEN CUSTOM MODELER - Programmiersprache3 - 18

solcher Ausdruck kann nur die Werte TRUE oder FALSE annehmen. In den meisten Fällen hatder logische Ausdruck die Form einer Bedingung. Für eine Bedingung gilt die nachfolgendeSyntax:

Der Vergleichsoperator IN ist nur sinnvoll, wenn der linke Ausdruck des Vergleichs ein Men-genparameter und der rechte eine Menge ist. Durch IN wird getestet, ob ein Element in einerMenge enthalten ist oder nicht.

Mit dieser vorbereitenden Definition der Bedingung lässt sich die Syntax der bedingten An-weisung wie folgt definieren:

Durch den Wert der Bedingung wird bestimmt, wie die bedingte Anweisung abgearbeitet wird:S Hat die erste Bedingung den Wert TRUE, so wird der Programmabschnitt zwischen

THEN und ELSE bzw. - falls vorhanden - ELSEIF abgearbeitet.S Hat die Bedingung den Wert FALSE, so wird der Programmabschnitt zwischen ELSE

und ENDIF abgearbeitet. Es ist zu beachten, dass dieser Abschnitt zwingend notwendigist, auch wenn er leer sein sollte!

S Trifft die erste Bedingung nicht zu und folgen vor dem ELSE-Abschnitt ELSEIF-Abschnitte, so werden deren Bedingungen getestet, die nachfolgenden Abschnitte werdendann gegebenenfalls ausgeführt.

S In den Abschnitten einer bedingten Anweisung werden in der Regel Gleichungen undZuweisungen von Eigenschaften stehen. Es können aber auch „eingeschachtelte“ struktu-rierte Anweisungen auftreten. Bei diesen Schachtelungen ist zu beachten, dass sich dieGültigkeitsbereiche nicht überschneiden dürfen. Es ist in diesem Zusammenhang zuberücksichtigen, dass ein Modelltyp keinen Berechnungsalgorithmus definiert, sondernein Gleichungssystem, das zu lösen ist. Die bedingte Anweisung beschreibt also alternati-ve Formulierungen eines Gleichungssystems!

bedingung 6logischer_operator vergleich logischer_operator bedingungvergleich 6 ausdruck vergleichsoperator ausdruck

logischer_operator 6 { NOT | AND | OR }vergleichsoperator 6 { == | < | > | <= | >= |<> | IN}

IF bedingung THEN{ anweisung | gleichung;... zuweisung;...}; ELSEIF bedingung THEN { anweisung | gleichung;... zuweisung;...} ; ......ELSE { anweisung | gleichung;... zuweisung;...}; ...ENDIF

anweisung 6 { bedingte_anweisung | laufanweisung }

Page 28: Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

ASPEN CUSTOM MODELER - Programmiersprache 3 - 19

< Beispiele

// Bestimmung der Stromrichtung fuer Modellgleichung//IF Input1.pressure >= Output1.pressure THEN

$H = ( Input1.flow - Output1.flow) / AF;ELSE

$H = (Output1.flow - Input1.flow) / AF;ENDIF

// Bestimmung des Druckverlustes//IF ventil_vorhanden THEN

Output1.pressure = Input1.pressure - cv*Output1.flow ;cv : 10.0 , Fixed;

ELSEOutput1.pressure=Input1.pressure;

ENDIF

// Steuerung des Berechnungsablaufs in Abhaengigkeit von derZugehörigkeit zu einer Menge.//

comp AS StringSet(“H2O“,“C2H6“,“C2H6O“);kc AS StringVariable;....IF kc IN comp THEN....ENDIF

3.3.6. Laufanweisung

Mit Hilfe von Laufanweisungen lassen sich zyklische Abläufe beschreiben, wobei die Anzahl derZyklen bekannt ist. Es gilt folgende syntaktische Formel:

Es gelten folgende Festlegungen:S Der Laufindex gehört automatisch dem Basistyp (ganzzahliger Typ, Zeichenkettentyp)

der Menge an; er muss nicht explizit vereinbart werden.S Der Laufindex nimmt in jedem Zyklus genau einen Wert aus der Menge an; er durchläuft

also alle Werte der Menge. Damit ist die Anzahl der Zyklen durch die Anzahl der Men-genelemente festgelegt.

FOR laufindex IN menge DO { anweisung | gleichung;... zuweisung;... }; ENDFOR

Page 29: Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

ASPEN CUSTOM MODELER - Programmiersprache3 - 20

S Im Gültigkeitsbereich einer Laufanweisung werden in der Regel Gleichungen und Zu-weisungen von Eigenschaften stehen. Es können aber auch „eingeschachtelte“ strukturier-te Anweisungen auftreten. Bei diesen Schachtelungen ist zu beachten, dass sich dieGültigkeitsbereiche nicht überschneiden dürfen. Bezüglich des Gleichungssystems geltendie gleichen Feststellungen wie für die bedingte Anweisung (s. Abschnitt 3.2.5.)

< Beispiele

// Durch die folgende Laufanweisung wird eine Verteilung be-schrieben.//

verteil AS IntegerParameter(3);flow_in(["O2" , "H2", "N2"]),flow_out(["O2" , "H2", "N2"]) AS flow_mol;

// Die Verteilung wird vom Wert eines Parameters verteil// gesteuert.// Es entstehen zwei Gleichungssysteme, die je nach dem Wert// von verteil geloest werden.//

IF verteil == 3 THEN FOR p IN ["O2" , "H2", "N2"] DO flow_in(p)=flow_out(p)*0.33; flow_in(p).value : 20; flow_in(p).spec : Fixed; ENDFOR; ELSE FOR p IN ["O2" , "H2", "N2"] DO flow_in(p)=flow_out(p)*0.44; flow_in(p).value : 20; flow_in(p).spec : Fixed; ENDFOR; ENDIF;.........

3.3.7. Verteileranweisung

Die Form des Prozessmodells ändert sich mitunter in Abhängigkeit von den sich veränderndenProzessbedingungen. Die Verteileranweisung erlaubt es, die so entstehenden Fälle zu unter-scheiden. Es gilt die folgende Syntaxformel:

Page 30: Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

ASPEN CUSTOM MODELER - Programmiersprache 3 - 21

Es gelten folgende Festlegungen:S Alle Namen werden nach den bekannten Regeln gebildet.S Die Verteileranweisung wird durch das Schlüsselwort SWITCH eröffnet und durch das

Schlüsselwort ENDSWITCH abgeschlossen. S Ein Zustandsblock beschreibt dasjenige Modellgleichungssystem, das einem bestimmten

Zustand zugeordnet ist. Ein Block wird durch das Schlüsselwort STATE eröffnet unddurch das Schlüsselwort ENDSTATE abgeschlossen. Jeder Zustandsblock muss daskomplette Gleichungssystem enthalten.

S Der Zustandsname ist der Identifikator des Zustandsblocks. Jeder Verteileranweisung isteine implizite Variable (der Zustandsidentifikator) zugeordnet, die als Wert die Zustands-namen annehmen kann.

S Da der Zustandsidentifikator zunächst keinen Wert besitzt, muss ein Zustandsblock denqualifizierenden Zusatz INITIAL besitzen. Dieser Block wird als erster abgearbeitet, undder Zustandsidentifikator wird auf diesen Block gesetzt.

S Das „Weiterschalten“ des Zustandsidentifikators auf einen anderen Zustandsblock erfolgtdurch eine IF-Klausel. Diese hat einen ähnlichen Aufbau wie die bedingte Anweisung:Wenn die Bedingung den Wert TRUE liefert, so wird der Zustandsidentifikator auf denBlocknamen gesetzt, der dem Schlüsselwort STATE folgt. Im folgenden wird dann dasGleichungssystem des Zustandsblocks herangezogen, der diesen Namen trägt. EinZustandsblock kann mehr als eine IF-Klausel enthalten.

< Beispiel:

MODEL tankH AS RealVariable(Initial);ve AS RealParameter;Aunten,Amitte,hv AS RealParameter;

//// Zuweisung der Werte zu den Parametern://hv : 0.5;ve : 3.6;Aunten : 1;Amitte : 2;

verteiler_name: SWITCHINITIAL zustandsblock zustandsblock ...

ENDSWITCHzustandsblock 6 STATE zustands_name

gleichung;...IF bedingung STATE : zustands_name;

ENDSTATE

Page 31: Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

ASPEN CUSTOM MODELER - Programmiersprache3 - 22

SWITCH// Erster Behaelter-Abschnitt

INITIAL STATE unten$H = (ve - hv*sqrt(H))/Aunten;

IF H> 2 STATE: Mitte;ENDSTATE

// Zweiter Behaelter-AbschnittSTATE Mitte

$H = (ve - hv*sqrt(H))/Amitte;IF H<=2 STATE: unten;IF H> 4 STATE: oben;ENDSTATE

// Ueberlauf des Behaelters!STATE oben

$H = 0;IF H<=4 STATE: Mitte;ENDSTATE

ENDSWITCH

END

3.3.8. Aufruf einer Prozedur (für Zugriff auf PROPERTIES PLUS - Funktionen)

Im folgenden wird vorausgesetzt, dass der Prozeduraufruf das Ziel verfolgt, eine überPROPERTIES PLUS bereitgestellte Funktion zu aktivieren. Die Prozeduraufrufe können anbeliebiger Stelle im Modell stehen. Es gilt folgende Syntax:

Es gelten folgende Festlegungen:S Die Folgen der Ergebnis- und Eingangs-Argumente sind durch die Definition der Proze-

dur festgelegt (s. Anhang).S Der Prozedurname ist ebenfalls an die jeweilige Funktion gebunden (s. Anhang).S Wird eine Komponentenliste im Aufruf angegeben, so wird diese bei der aktuellen

Berechnung berücksichtigt; sonst wird die bei der ursprünglichen Definition (s. Abschnitt3.2.6) eingeführte Komponentenliste angenommen.

< Beispiel

MODEL siede// Berechnung der Siedetemperatur fuer ein Wasser-Ethanol-Gemisch// ueber die PP-Funktion pBubt.

ComponentList: "wasser_alk";x(ComponentList) AS MoleFraction;t AS Temperature;p AS Pressure;

CALL (ergebnis_argument; ...) = prozedurname(eingangs_argument, ...) komponentenliste;

Page 32: Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

ASPEN CUSTOM MODELER - Programmiersprache 3 - 23

p.value: 1;call(t) = pBubt(p,x);sigma(x)=1;END

3.3.9. Modellvereinbarung

Ein Modelltyp kann auf Instanzen anderer Modelltypen Bezug nehmen. Diese Instanzen müssenin der Modelltyp-Deklaration vereinbart werden. Diese Vereinbarung hat folgende Syntax:

Es gelten folgende Festlegungen:S Die Modellinstanz ist im aktuellen Modelltyp wie eine Variable oder ein Parameter

verfügbar. S Auf die internen Größen der Modellinstanz kann auf zwei Wegen zugegriffen werden:

Zum einen können die internen Größen der Modellinstanz über eine Substitutionsliste (s.obige Syntaxformel) durch die Umgebungsgrößen ersetzt werden, zum anderen kann aufdie internen Größen gemäß der folgenden Syntax zugegriffen werden:

S Die für Variable angegebenen Beziehungen zwischen Instanz und Umgebung geltenvöllig analog auch für die Parameter.

< Beispiel

// Berechnung der stationaeren Hoehe in einem // durchstroemten Behaelter//MODEL volumen

Vol AS Volume;R,h AS Length;Pi AS RealParameter;

Vol = Pi * R^2 * h;

R: Fixed;h: Initial;

END

MODEL Tank_st_statehv AS RealParameter;Hoehe AS Length;Rad AS Length;

modellinstanz_name AS modelltyp_name(modellinstanz_variable=modell_variable,...

modellinstanz_eigenschaft: modell_eigenschaft, ... );

instanz_zugriff 6 instanz_name.variablen_name

Page 33: Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

ASPEN CUSTOM MODELER - Programmiersprache3 - 24

Pi_val AS RealParameter(3.14159);Fl_in AS INPUT Fluid;Fl_out AS OUTPUT Fluid;

// Es folgt die Instanz eines Modells des Typs volumen.vc AS volumen(R = Rad, h = Hoehe , Pi = Pi_val);

// Stationaere Bilanzgleichungen: // Bestimmung des stationaeren Niveaus//

vc.Vol = Fl_in.flow - Fl_out.flow;vc.h*hv*hv = Fl_out.flow * Fl_out.flow;

hv: Fixed;

END

Page 34: Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

ASPEN CUSTOM MODELER - Programmiersprache 3 - 25

3.3.10 Modelle für verteilte Zustandsgrößen (PDE Solver)3.3.10.1 Schritte zur Definition eines Modells mit verteilten Zustandsgrößen

Um ein ACM-Modell mit verteilten Zustandsgrößen zu definieren, sind folgende Schrittenotwendig:S Es ist ein Modelltyp zu erzeugen. Alle nachfolgenden Schritte beziehen sich auf diesen

Rahmen. S Eine / mehrere Ortskoordinate(n) ( domain(s) ) ist /sind zu deklarieren. Es sind sowohl

Längen- als auch Winkelkoordinaten anwendbar. Für jede Koordinate muss folgendeSpezifikation getroffen werden:< Die höchste Ordnung der Ableitung, die in der Koordinatenrichtung zu berücks-

ichtigen ist, ist anzugeben.< Die Diskretisierungsmethode ist auszuwählen.< Anzahl und Lokalisierung der Abschnitte, die in der gewählten Richtung zu

berücksichtigen sind, können spezifiziert werden.< Die (Vorzugs-)Diskretisierungsschrittweite ist anzugeben..

S Die Abhängigkeit der Zustandsvariablen von den Ortskoordinaten ist zu deklarieren.Gegebenenfalls ist die Ordnung der höchsten Ableitung neu festzulegen, wenn sie mit derStandardfestlegung der Ortskoordinate nicht übereinstimmt.

S Die partiellen Differentialgleichungen sind auf der Basis der getroffenen Deklarationenzu kodieren.

S Die Randbedingungen sind zu kodieren.S Für die Anfangs-/Randwertprobleme sind die Anfangsbedingungen zu kodieren.Im folgenden werden diese Schritte im einzelnen behandelt.

3.3.10.2. Deklaration der Ortskoordinaten (unabhängige Veränderliche)

Die Ortskoordinaten werden als Instanzen von deklarierten Ortskoordinatentypen eingeführt. Esgilt die folgende Syntax:

Folgende Punkte sind zu beachten:

S Für die Ortskoordinaten sind Namen zu wählen, die den üblichen Regeln entsprechen.S Der Koordinatentyp DOMAIN definiert dimensionslose Ortskoordinaten, der Typ

LENGTHDOMAIN definiert Längenkoordinaten, für die die Maßeinheit m angenom-men wird, der Typ ANGLEDOMAIN definiert Winkelkoordinaten, die in der Maß-einheit rad angenommen werden.

S Die Koordinatentypen besitzen eine Reihe von Eigenschaften. Durch die Zuweisung vonWerten zu diesen Eigenschaften wird ein konkreter Typ spezifiziert. Die Namen derEigenschaften sind festgelegt (s. folgende Tabelle); alle Eigenschaften besitzen Standard-werte, die ohne besondere Zuweisung verfügbar sind.

ortskoordinaten_deklaration 6 name , ... AS ortskoordinaten_typortskoordinaten_typ 6 koordinaten_typ ( eigenschafts_name: wert ,... )koordinaten_typ 6 DOMAIN | LENGTHDOMAIN | ANGLEDOMAIN

Page 35: Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

ASPEN CUSTOM MODELER - Programmiersprache3 - 26

Eigenschaft Bedeutung

DiscretizationMethod Diese Eigenschaft bestimmt die Methode zur Diskretisie-rung der partiellen Ableitungen in Richtung der Ortskoordi-naten. Der Wert ist eine Zeichenkette; die möglichen Wertesind der folgenden Tabelle zu entnehmen.Standardeinstellung: “BFD1“.

HighestOrderDerivative Die Eigenschaft kann die ganzzahligen Werte 0,1,2annehmen. Standard: 1.

Length Die Eigenschaft bestimmt die Länge des Integrationsgebie-tes. Standard: 1.0.

NumSection Die Eigenschaft bestimmt die Anzahl der Unterabschnitteim Integrationsgebiet. Standard: 1.

SpacingPreference Die Eigenschaft gibt die Vorzugs-Schrittweite für die Dis-kretisierung an. Standard: Length/NumSection/8.

Section(*).Location Diese Eigenschaft definiert den absoluten Wert der Koordi-nate des linken Randes im Abschnitt (*). Der * ist durchden Index des Abschnittes zu ersetzen.

Section(*),SpacingPreference Die Eigenschaft definiert die Vorzugs-Schrittweite für dieDiskretisierung im Abschnitt (*). Standard: GlobaleSchrittweite für das Integrationsgebiet.

S Folgende Diskretisierungsmethoden sind für die partiellen Ableitungen wählbar (Werteder Eigenschaft DiscretizationMethod )

Wert der Ei-genschaft

Ordnung derApproximation

Typ der Approximation der Differentialquotienten

BFD1 1. Ordnung Rückwärtige Differenzenquotienten (Standard)

CFD4 4. Ordnung Zentrale Differenzenquotienten

UBFD4 4. Ordnung Upwind biased finite difference

OCFE2 2. Ordnung Orthogonale Kollokation über finiten Elementen

OCFE4 4. Ordnung Orthogonale Kollokation über finiten Elementen

Sowohl die Diskretisierungsmethode als auch die anderen Parameter einer Ortsvariablen-Deklaration können über die interaktive Bedienoberfläche in folgenden Schritten ver-ändert werden:< Im AllItems-Fenster ist Flowsheet auszuwählen.< Im Contents - Fenster ist ein Doppelklick auf das Symbol Blocks auszuführen.

Page 36: Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

ASPEN CUSTOM MODELER - Programmiersprache 3 - 27

< Doppelklick auf den Block ausführen, der die zu modifizierende Deklarationenthält.

< Doppelklick auf das Symbol Blocks; es erscheinen die Ortskoordinaten als Sym-bole.

< Die Ortskoordinate, die modifiziert werden soll, ist doppelt anzuklicken.< Das Symbol Configure ist doppelt anzuklicken. Es erscheint das folgende Formu-

lar mit den Parametern, die jetzt geändert werden können:

S Durch die Zerlegung des Dikretisierungsbereichs der Ortskoordinaten in Abschnittekönnen unterschiedlich feine Netze definiert werden; damit lässt sich die Genauigkeit derLösung zielgerichtet steuern. Auch die Abschnittsparameter lassen sich über die obengezeigte Tabelle modifizieren.

S Die bei der Koordinaten-Deklaration getroffenen Voraussetzungen definieren die Gitter-punkte, für die die Lösung des PDGL‘s ermittelt wird. Die Gitterpunkte werden zunächstüber eine Indexmenge adressiert, die sich wie folgt schreiben lässt:

[ 0 : EndNode ]Über den festgelegten Bezeichner EndNode wird der „rechte Rand“ indexiert. Der „linkeRand“ hat den Index Null.Auf die konkreten Koordinatenwerte der Gitterpunkte in einer bestimmten Richtung kannüber die Eigenschaft Value der Ortskoordinate zugegriffen werden. Value erwartet alsParameter den Gitterindex und liefert die absolute Koordinate zurück. Wird die Index-menge als Parameter übergeben, so wird als Ergebnis das zugehörige Feld von Koordina-tenwerten erzeugt:

name_koordinate.Value( [0:name_koordinate.EndNode])oder äquivalent

name_koordinate.( [0:name_koordinate.EndNode])

liefert das Feld der Koordinatenwerte für die über name_koordinate adressierte Variable.

< BeispielX as LengthDomain(DiscretizationMethod:"BFD1", HighestOrderDerivative: 2, Length:1, SpacingPreference:0.1);Y as LengthDomain(DiscretizationMethod:"BFD1", HighestOrderDerivative: 2, Length:1, SpacingPreference:0.1);

Page 37: Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

ASPEN CUSTOM MODELER - Programmiersprache3 - 28

3.3.10.3. Deklaration der ortsabhängigen Zustandsgrößen (abhängige Veränderliche)

Die Deklaration ortsabhängiger Zustandsgrößen gehorcht folgender Syntax:

Folgende Punkte sind zu beachten:

S In einer Deklaration lassen sich beliebig viele Zustandsgrößen zusammenfassen, die inihrer Abhängigkeit von den Ortskoordinaten übereinstimmen und für die das gleicheDiskretisierungsverfahren in den Ortskoordinaten herangezogen werden soll. Die jeweili-ge Variable kann auch als Feld deklariert werden; in diesem Fall sind die entsprechendenIndexmengen anzugeben.

S Die Angabe der Dimension des Problems erfolgt über vordefinierte Bezeichner.S Die Angaben, die in Klammern der Dimensions-Festlegung folgen sind optional. Wenn

sie fehlen, werden Standardfestlegungen angenommen. In Abhängigkeit von der gewähl-ten Dimension können ein, zwei oder drei Ortskoordinaten mit den vom Anwenderdeklarierten Diskretisierungs-Typen verbunden werden. Die Standard-OrtskoordinatenXDOMAIN, YDOMAIN, ZDOMAIN werden dann gemäß den jeweils dem Schlüssel-wort IS folgenden spezifischen Typen diskretisiert. Die für die vordeklarierten Typendefinierten Eigenschaften können an dieser Stelle ebenfalls modifiziert werden. So kanndie höchste Ordnung des örtlichen Differentialquotienten an dieser Stelle über die Eigen-schaften HighestOrderXDerivative, HighestOrderYDerivative, HighestOrderZDerivative,die jeweils die Werte 0, 1, 2 annehmen können, modifiziert werden; Standard ist der Wert1.

S Alle ortsabhängigen Zustandsgrößen, die in einer Deklaration zusammengefasst werden,müssen einem gemeinsamen Variablentyp angehören, der dem Schlüsselwort OF folgt.

< Beispiel

// Deklarationen der Ortskoordinaten X AS LengthDomain(DiscretizationMethod:"BFD1", HighestOrderDerivative: 2, Length:1, SpacingPreference:0.1); Y AS LengthDomain(DiscretizationMethod:"BFD1", HighestOrderDerivative: 2, Length:1, SpacingPreference:0.1);// In der folgenden Deklaration werden diese Deklarationen genutzt t1,t2 AS Distribution2D (XDomain is X, YDomain is Y) of Temperature(10);

// Die nachfolgende Deklaration nutzt die Standardeinstellungen t3 AS Distribution2D of Temperature;

deklaration_ortsabhängiger_zustandsgrößen 6name_zustandsgröße(menge, ...) ,... AS dimension ( standard_koordinate IS ortskoordinate ,..., eigenschaft : wert ,... ) OF variablentyp_namedimension 6 DISTRIBUTION1D | DISTRIBUTION2D | DISTRIBUTION3Dstandard_koordinate 6 XDOMAIN | YDOMAIN | ZDOMAIN

Page 38: Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

ASPEN CUSTOM MODELER - Programmiersprache 3 - 29

Welche Form sich ergibt, hängt von der gewählten Diskretisierungsmethode für die zeitlichen1

Ableitungen ab. S. hierzu Lehrveranstaltung „Dynamik & Identifikation“.

3.3.10.4. Kodierung der PDGL‘s

! Die Indexmenge Interior

Durch die Diskretisierung wird aus dem System von PDGL‘s ein System algebraischer Glei-chungen oder ein System gewöhnlicher Differentialgleichungen . Dieser Umstand muss bei der1

Notation der partiellen Differentialgleichungen durch die Einführung einer geeigneten Indexie-rung Berücksichtigung finden. In ACM wird für jede Ortskoordinate die Indexmenge Interiorvordefiniert, die die für das Problem relevanten Gitterpunkte repräsentiert. Die Differentialglei-chungen werden nun als lokale Gleichungen für dieses Gitterpunkte formuliert.Bezüglich der Verwendung von Interior sind folgende Hinweise zu beachten:� Im allgemeinen enthält Interior alle Gitterpunkte, die dadurch entstehen, dass die diskrete

Ortskoordinate den Bereich 1 bis EndNode-1 durchläuft. Dadurch wird eine zusammen-hängende Menge von Gitterpunkten definiert, vorausgesetzt es handelt sich um einProblem, das nur erste Ableitungen nach den Ortskoordinaten enthält oder um ein Pro-blem zweiter Ordnung, das für die Diskretisierung der Ortsvariablen aber nur einenAbschnitt verwendet (homogene Diskretisierung).

� Bei der Notation der Differentialgleichungen (s. unten) und der Anfangsbedingungensollte über Interior auf die Gitterpunkte zugegriffen werden.

� Wenn das Diskretisierungsverfahren (Übergang von finiten Differenzen zu finitenElementen oder umgekehrt) geändert wird, müssen die Notationen für die PDGL‘s nichtverändert werden, sofern man für die Kodierung Interior verwendet hat. Die internenVeränderungen werden dann automatisch vorgenommen.

� Bei der Notation der Randbedingungen ist eine explizite Indexierung notwendig, da dieseBedingungen sich i. a. auf Gitterpunkte beziehen, die außerhalb der automatisch gener-ierten Indexmenge Interior liegen.

! Die Notation der PDGL‘s

Die PDGL‘s werden durch die Diskretisierung in ein System gewöhnlicher DGL bzw. algebrai-scher Gleichungen umgeformt. In ACM werden die diskretisierten Gleichungen analog zu denursprünglichen PDGL‘s kodiert, wobei die kontinuierlichen Differentialquotienten durch diegemäß dem gewählten Verfahren diskretisierten Differenzenquotienten zu ersetzen sind. Damitergeben sich folgende Regeln:� Die ursprüngliche PDGL wird zum Grundmuster einer für alle Gitterpunkte zu formulie-

renden gewöhnlichen Differentialgleichung bzw. algebraischen Gleichung. Die dis-kretisierte PDGL muss so notiert werden, dass sie für alle Gitterpunkte der IndexmengeInterior gilt.

� Die örtlichen Differentialquotienten sind durch die für jede Zustandsvariable definiertenFelder für die Differenzenquotienten zu ersetzen.

� Für den zeitlichen Differentialquotienten ist die übliche Notation für die zeitliche Ablei-tung (hier: einer Zustandsvariable an einem Gitterpunkt ) zu verwenden.

� Auf die Felder für die örtlichen Differentialquotienten kann über folgende Bezeichnerzugegriffen werden:

Page 39: Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

ASPEN CUSTOM MODELER - Programmiersprache3 - 30

Q steht für eine beliebige ortsabhängige Zustandsgröße. Die Dimension des Problemsbestimmt, wie viele und welche Indizes anzugeben sind. Die Feldbezeichner für dieAbleitungen ergeben sich aus der Ordnung der Ableitung und aus der internen Bezeich-nung der Ortskoordinaten (x, y, z).

< Beispiel

Die zweidimensionale Gleichung für die Wärmeleitung

ist zu kodieren. Der Programmkode hat dann die Gestalt:

D = lambda/rho / cp;

$T(X.Interior, Y.Interior) = D ( T(X.Interior, Y.Interior).d2dx2 + T(X.Interior, Y.Interior).d2dy2 );

Für den stationären Fall folgt die Potential-(LAPLACE-)Gleichung:

Der Programmkode hat dann die Gestalt:

T(X.Interior, Y.Interior).d2dx2+T(X.Interior, Y.Interior).d2dy2 = 0.0

! Die Notation der Anfangsbedingungen

Handelt es sich beim zu lösenden Problem um ein Anfangswert/Randwert-Problem, so ist für dieNotation der Anfangsbedingungen zu beachten, � dass diese für alle Zustandsgrößen entsprechend der Dimension des Problems und� dass diese für alle Gitterpunkte der diskretisierten Ortsvariablen, die durch das Überstrei-

chen der vordefinierten Indexmengen ( name.Interior) entstehen,vorgegeben werden.

Page 40: Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

ASPEN CUSTOM MODELER - Programmiersprache 3 - 31

< Beispiel

// Anfangszustand für 2D-Wärmeleitung - Stationärer Zustand T(X.Interior, Y.Interior): RateInitial,0;

! Die Notation der Randbedingungen

Für die Notation der Randbedingungen kann auf die vordefinierten Indexmengen (name.Interior)nicht zurückgegriffen werden. Die Indexierung der Randbedingungen muss explizit erfolgen.Dabei ist zu beachten, dass die Bedingungen die Gitterpunkte mit den Indizes 0 und EndNodeerfassen müssen.Die Anzahl der Randbedingungen hängt von der Anzahl der Ortsvariablen und von der Ordnungdes Problems ab.Die für Probleme zweiter Ordnung ( Wärmeleitung, Diffusion, reibungsbehaftete Strömungen)typischen Randbedingungen lassen sich in folgender allgemeinen Form darstellen:

Es lassen sich nun folgende drei Fälle unterscheiden:

� b = 0 : DIRICHLET-Randbedingung - die Zustandsgrößen auf dem Randdes Integrationsgebietes werden spezifiziert

� a = 0 : NEUMANN-Randbedingung - die molekularen Ströme der Bilanz-größen über die Grenzen des Integrationsgebietes werden spezifi-ziert.

� a,b � 0 : CAUCHY-Randbedingung - sowohl molekulare als auchkonvektive Ströme, die die Grenzen des Integrationsgebie-tes überschreiten, werden spezifiziert.

< Beispiel<// Randbedingungen für 2D-Wärmeleitung// Spezifikation fester Temperaturen am linken und rechten// Rand (x=0, x= L) T(0, [0:Y.EndNode]): Fixed, 31; T(X.EndNode, [0:Y.EndNode]): Fixed, 15;// Kein Energietransport durch die Frontflächen (vorn, hinten) T([1:X.EndNode-1], 0 ).ddy = 0; T([1:X.EndNode-1], Y.EndNode).ddy = 0;

Page 41: Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

ASPEN CUSTOM MODELER - Programmiersprache3 - 32

Nähere Angaben zum Prozess sind folgender Literaturstelle zu entnehmen:1

A. Constantinides, N. Mostoufi „Numerical Methods for Chemical Engineers with MATLAB Applications“,

Prentice Hall, 2000, S. 403 ff.

3.3.10.5. Zusammenfassendes Beispiel1

� Problembeschreibung

Ein Gas A diffundiert in eine Flüssigkeit B und reagiert dabei mit der Flüssigkeit. Die Reaktionist von erster Ordnung und irreversibel. Die Flüssigkeitssäule hat die Länge L und der Diffusions-

ABkoeffizient sei D . Damit ergibt sich als Transportbilanzgleichung für die Komponente A:

Nach Einführung dimensionsloser Koordinaten folgt:

Die Anfangs- und Randbedingungen sind wie folgt gegeben:

Für die Konstanten können folgende Werte angenommen werden:

ABD = 2 10 m s L = 0.1 m k = 2 10 s-9 2 -1 -7 -1

� ACM-Modell

Das ACM-Modell besitzt dann folgende Form:

Model diffusion// Definition der Ortskoordinate xsi xsi as Domain(DiscretizationMethod:"BFD1", HighestOrderDerivative: 2, Length:1, SpacingPreference:0.1);// Definition der ortsabhängigen Zustandsgröße c. c as Distribution1D (XDomain is xsi) of RealVariable;// Vereinbarung von Parametern und Hilfsvariablen. D as RealParameter (2.0E-9); k as RealParameter (2.0E-7); L as RealParameter (0.1); A as RealVariable;

Page 42: Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

ASPEN CUSTOM MODELER - Programmiersprache 3 - 33

// Berechnung des Parameters für die dimensionslose // Form der PDGL A=k*L*L/D;

// Diffusionsgleichung $c(xsi.Interior) = c(xsi.Interior).d2dx2 - A*c(xsi.Interior);

// Anfangsprofil c(xsi.Interior):initial, 0;

// Randbedingung für xsi=0; c(0): Fixed, 0.02; // Randbedingung für xsi=1 c(xsi.EndNode).ddx = 0;

End

� Lösung - Profildarstellung

Im folgenden Bild ist das Konzentrationsprofil für einen ausgewählten Zeitpunkt dargestellt:

Page 43: Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

ASPEN CUSTOM MODELER - Programmiersprache3 - 34

3.4. Definition eines Fließschemas3.4.1. Die Möglichkeiten zur Erzeugung eines Fließschemas

In ACM gibt es zwei Wege, ein Fließschema zu generieren. Im Abschnitt 2.4. wurde bereits dieinteraktive Erzeugung eines Fließschemas beschrieben. Diese Form wird vom Nutzer in denmeisten Fällen anzuwenden sein. ACM bietet aber auch die Möglichkeit, die Definition desFließschemas in einem Programmabschnitt als Programmtext zu formulieren. Diese Form erlaubtes dem Nutzer, von weitergehenden Möglichkeiten für die Problemformulierung Gebrauch zumachen. Da im Flowsheet-Abschnitt Zugriff auf die konkreten Modellinstanzen besteht, könnenhier die Eigenschaften von Variablen und Konstanten für die konkreten Prozesseinheiten mitWerten belegt werden, und es lassen sich Gleichungen formulieren, die die Eigenschaften derkonkreten Prozesseinheiten miteinander verknüpfen. Letzteres ist immer dann notwendig, wennOptimierungsprobleme mit Nebenbedingungen zu lösen sind.Auch die Kombination beider Wege ist möglich. Allerdings ist dabei eine Reihe von zusätzlichenRandbedingungen zu beachten. Im folgenden soll lediglich die Ergänzung eines interaktiverzeugten Fließschemas um einen Gleichungsabschnitt (Nebenbedingungen) behandelt werden.

3.4.2. Definition eines Constraints-Abschnittes

� Erzeugung des Constraints-Abschnittes

Wenn das Fließschema bereits erzeugt wurde, so muss über den Editor nur noch der Constraints-Abschnitt im Flowsheet-Abschnitt ergänzt werden, sofern er für das Problem notwendig ist. Fürdie Formulierung des Programmtextes stellt die ACM-Entwicklungsumgebung den Texteditorbereit, der auch für die anderen Elemente angeboten wird. Dieser Editor lässt sich in folgendenSchritten für die Generierung des Constraints-Abschnittes aktivieren:S Im Explorer wird der Ordner Flowsheet markiert. Im unteren Explorerfenster erscheint

eine Menge von Symbolen; auf das Symbol mit dem Namen Flowsheet ist ein Doppel-klick auszuführen. Es erscheint der Editor.

S Es gibt eine zweite Möglichkeit, den Editor zu aktivieren. Zunächst ist wiederum derOrdner Flowsheet zu markieren. Über die rechte Maustaste kann ein Popup-Menüaktiviert werden. In diesem ist der Menüpunkt Edit anzuklicken. Anschließend erscheintebenfalls der Editor.

Im Erscheinungsbild des Editors wird auf die Syntax des Constraints-Abschnittes bereitseingegangen, so wie das bei anderen Abschnitten auch der Fall ist.Soll ein bereits existierender Constraints-Abschnitt verändert werden ist analog vorzugehen.Wenn ein Constraints-Abschnitt erzeugt worden ist, muss er anschließend übersetzt werden.Dafür ist ebenfalls analog vorzugehen, nur dass im Popup-Menü der Punkt Compile zu akti-vieren ist.

� Syntax des Constraints-Abschnittes

Im Constraints-Abschnitt besteht Zugriff auf die Modellinstanzen. Demzufolge können hierGleichungen formuliert werden, die auf die Variablen und Parameter der Modellinstanzen Bezugnehmen. Das ist vor allem für die Formulierung der Nebenbedingungen in Optimierungsproble-

Page 44: Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

ASPEN CUSTOM MODELER - Programmiersprache 3 - 35

men von Bedeutung (daher hat der Abschnitt auch seine Bezeichnung erhalten). Es gilt folgendeSyntax

Folgende Festlegungen sind zu beachten:S Im Constraints-Abschnitt können neue Variablen und Parameter vereinbart werden;

deren Gültigkeitsbereich ist dieser Abschnitt. Den Eigenschaften dieser Größen könnenWerte zugewiesen werden (s. Abschnitt 3.1.3.).

S Die Gleichungen des Abschnittes können die neu eingeführten Variablen und Parametermit den Variablen und Parametern der Modellinstanzen verknüpfen, bzw. sie verknüpfenGrößen der einen oder der anderen Kategorie. Die Bezugnahme auf eine Größe einerModellinstanz wird durch folgende Syntaxformel beschrieben:

Der Instanzname wird bei der Aufnahme eines Modells in das Fließschema vergeben.Der Objektname ist der modellinterne Name einer Variablen oder eines Parameters.

< Beispiel:

// Die Summe der Volumenstroeme, die aus den drei Reaktoren R1, R2, R3 austreten,// ist konstant.

CONSTRAINTSvp AS Flow_mol;vp: Fixed;vp: 10;R1.flow+R2.flow+R3.flow = vp;

END

3.4.3. Verändern des Flowsheet-Abschnittes im Programmtext

Es wurde bereits mehrfach betont, dass das Fließschema interaktiv erzeugt werden sollte. Für dieGrundstruktur ist das auf jeden Fall zu empfehlen. Bei umfangreichen Fließschemata kann esaber nützlich sein, den Flowsheet-Abschnitt über einen Texteditor direkt zu manipulieren. Dafürsind mehrere Schritte erforderlich, die im folgenden beschrieben werden.

CONSTRAINTS

vereinbarung; ...zuweisung; ...gleichung; ...

END

bezugnahme_auf_instanzgröße 6 instanz_name.objekt_name

Page 45: Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

ASPEN CUSTOM MODELER - Programmiersprache3 - 36

� Erzeugen des Programmtextes

Wenn ein Problem auf der Platte abgelegt werden soll, erzeugt ACM eine binär kodierte Datei,die nur von ACM wieder gelesen werden kann. Dieser Darstellung ist im Regelfall unbedingt derVorzug zu geben, da beim erneuten Laden dieser Datei die graphische Darstellung des Flie-ßschemas korrekt reproduziert wird. Alle Dateien dieses Typs haben die Erweiterung .acmd(Aspen Custom Modeler Document).Soll dagegen der Programmtext eingesehen oder verändert werden, ist eine andere Darstellungbeim Auslagern zu wählen, die das Problem als ACM-Programmtext im ASCII-Format bereit-stellt. Dateien dieses Typs tragen die Erweiterung .acmf (Aspen Custom Modeler Language).Um diese Textdatei zu erzeugen, ist wie folgt vorzugehen:S Im Pulldown-Menü des Menüpunktes File (Kopfleiste) ist der Menüpunkt Save As

anzuklicken. Es erscheint das übliche Fenster für den Speicherdialog.S Im Feld Dateiname ist der gewünschte Name einzusetzen. Im Feld Dateityp ist aus der

Pickliste der Eintrag Aspen Custom Modeler Language (.acmf) zu wählen.S Anschließend ist der Speicherdialog mit der Taste Speichern abzuschließen.

Damit steht der Programmtext im ASCII-Format bereit und kann mit jedem Texteditor bearbeitetwerden. Wenn dieser ACM-Programmtext verändert worden ist, kann er über den MenüpunktOpen des File-Menüs wieder geladen werden. Werden dabei Syntaxfehler festgestellt, wird einQuelltexteditor geöffnet; die Fehler werden im Message-Fenster angezeigt.

� Syntax des Flowsheet-Abschnittes

Der Flowsheet-Abschnitt besitzt folgende syntaktische Struktur:

Die in dieser Syntaxformel noch nicht erklärten syntaktischen Terme lassen sich wie folgtdefinieren:

FLOWSHEETmodell_instantiierung; ...strom_instantiierung;...zuweisung;...verbindungs_anweisung;...kontroll_anweisung;...CONSTRAINTS

vereinbarung; ...zuweisung ; ...gleichung; ...

ENDEND

Page 46: Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

ASPEN CUSTOM MODELER - Programmiersprache 3 - 37

Folgende Festlegungen sind zu beachten:S Modellinstanzen und Strominstanzen stellen die konkreten Elemente und Verbindungen

im Fließschema dar. Die Namen werden bei der Erstellung des Fließschemas erzeugt; siekönnen später beliebig oft geändert werden.

S Die Richtungen der Ports müssen komplementär sein.S Außerhalb eines Constraints-Unterabschnittes können keine neuen Variablen oder

Parameter vereinbart werden; Zuweisungen von Werten zu Eigenschaften der Modell-und/oder Strominstanzvariablen und -parameter sind möglich.

S Durch die Verbindungsanweisungen (Schlüsselwort CONNECT) werden die konkretenKopplungen der Prozesseinheiten im Fließschema beschrieben. Wenn zwei Ports mitein-ander verbunden werden, so ist die AND - Klausel notwendig. Wenn ein Strom, dereinem definierten Stromtyp angehört, die Verbindung herstellt, so wird die Strom-instanzin der abschließenden WITH-Klausel angegeben. Wenn AND- und WITH-Klauselnfehlen, so ist der Port mit keinem anderen gekoppelt (Verbindungen zur Umgebung).

S Durch die Kontrollanweisung werden Instanzvariablen einander im Sinne von Ein-Ausgangsgrößen zugeordnet, die nicht durch Portvariable festgelegt wurden. DieseVariablen müssen dann in der Vereinbarung die Indikatoren INPUT bzw. OUTPUTaufweisen (s. Abschnitt 3.3.2.). Hierbei ist auch auf die komplementären Richtungen zuachten. Diese Form der Kopplung ist für die Simulation der Signalübertragung zwischenden Prozesseinheiten von Bedeutung. Eine der beiden gekoppelten Einheiten ist dann einÜbertragungsglied im Sinne der Automatisierungstechnik (z.B ein PID-Regler). In derVIA-Klausel wird angegeben, ob es sich um ein Ein- oder ein Ausgangssignal handelt.Die WITH-Klausel spezifiziert die Signalverbindung.

Wird das Fließschema interaktiv erzeugt, so wird die Beschreibung von dessen Struktur in derangegebenen Weise generiert. Wie oben beschrieben wurde, kann diese Beschreibung durch denNutzer modifiziert werden. Es ist aber unbedingt darauf hinzuweisen, dass vorher die ursprüng-liche Datei gesichert werden sollte!

modell_instantiierung 6instanz_name AS modell_typ

strom_instantiierung 6instanz_name AS strom_typ

verbindungs_anweisung 6CONNECT instanz_name.port_name AND instanz_name.port_name

WITH strom_instanzkontroll_anweisung 6

CONNECT instanz_name.variablen_name VIA instanz_name.{InputSignal | OutputSignal}

AND instanz_name.variablen_name VIA instanz_name.{InputSignal | OutputSignal}

WITH strom_instanz

Page 47: Simulation und Optimierung Verfahrenstechnischer Systeme · PDF fileDie Online-Hilfe ist so wie in Aspen Plus bzw. ... Die Einträg e Models und Stream Types sind Unterordne r, die

ASPEN CUSTOM MODELER - Programmiersprache3 - 38

< Beispiel

// Die Verbindung zwischen einem Behaelter und einem PID-Regler// fuer die Fuellstandsregelung wird beschrieben.FLOWSHEET

B1 as behaelter; B2 as PID; S2 as ControlSignal; S3 as ControlSignal; Eingang as Connection; Ausgang as Connection;

// Die folgenden Kontroll-Anweisungen beschreiben die // Kopplung zwischen Behaelter und PID-Regler.

Connect B2.OP via B2.OutputSignal and B1.stell via B1.InputSignal with S2;

Connect B1.h via B1.OutputSignal and B2.PV via B2.InputSignal with S3;

Connect B1.eingang with Eingang;Connect B1.ausgang with Ausgang;

END

3.4.4. Beschreibung von Kopplungen zwischen Instanzen innerhalb eines Modells

Werden innerhalb einer Modelltyp-Deklaration Modellinstanzen erzeugt (s. Abschnitt 3.3.9), sokönnen zwischen diesen internen Instanzen ebenfalls Kopplungsrelationen definiert werden.Hierfür ist die Syntax für die Verbindungsanweisung und die Kontrollanweisung voll zu über-tragen. Anders liegen die Verhältnisse, wenn ein Port einer internen Modellinstanz einem Port,der durch den Modelltyp definiert wird, zugeordnet werden soll. Für diese Zuweisung gibt es inACM die Portzuordnung. Es ist zu beachten, dass dabei, im Gegensatz zur Verbindungsanwei-sung, gleichsinnige Ports einander zugeordnet werden. Es gilt die folgende Syntax:

Der Portname nach dem Schlüsselwort LINK bezeichnet einen Port der Modelltyp-Deklaration,während die zweite Angabe sich auf den Port in der Modellinstanz bezieht.

< Beispiel

MODEL Drei_TankTank1, Tank2, Tank3 AS Tank;Input1 AS INPUT Flow;Output1 AS Output Flow;LINK Tank1.Input1 AND Input1;LINK Tank3.Output1 AND Output1;CONNECT Tank1.Output1 AND Tank2.Input1;CONNECT Tank2.Output1 AND Tank3.Input1;END

LINK port_name AND modell_instanz.port_name