Modelica: Konnektoren
Eine objektorientierte Modellierungsmethode, bei der einzelne Komponenten nach dem Lego-Prinzip zu grossen Modellen zusammengefügt werden können, benötigt vordefinierte Verbindungsstücke (Konnektoren), die festlegen, wie die einzelnen Komponenten miteinander wechselwirken. Mit dem Energieträgerkonzept des Karlsruher Physikkurses bietet die Sytstemphysik eine effiziente Methode an, um das Verhalten solcher Verbindungsstücke zu beschreiben. Eine ähnliche Idee liegt der Modellierungsmethode mit Bondgraphen zugrunde.
Energieträgermodell der Systemphysik
In der Systemphysik geht man von sieben mengenartigen Grössen und den zugehörigen Potentialen aus. Multipliziert man die Stärke des Mengenstromes mit dem jeweiligen Potential, erhält man den zugeordneten Energiestrom IW
- [math]I_W=\varphi_{Menge}I_{Menge}[/math]
Die untenstehende Tabelle zeigt die sieben bilanzierfähigen Mengen der Physik
Menge | Zeichen | Einheit | Potenzial | Zeichen | Einheit | Bemerkung |
---|---|---|---|---|---|---|
Volumen | V | m3 | Druck | p | Pa | keine Erhaltungsgrösse |
Masse | m | kg | Gravitationspotential | φG | J/kg | schwere Masse |
Stoffmenge | n | mol | chemisches Potential | μ | J/mol | keine Erhaltungsgrösse, viele Komponenten |
elektrische Ladung | Q | Coulomb C | elektrisches Potential | φ | Volt V | auch negative Werte möglich |
Impuls | px | 1 Ns = 1 kgm/s | Geschwindigkeit | vx | m/s | drei "Sorten" |
Drehimpuls | Lx | 1 Nms = 1 kgm2/s | Winkelgeschwindigkeit | ωx | rad/s | drei "Sorten" |
Entropie | S | J/K | Temperatur | T | Kelvin (K) | nur Produktion |
Die ersten beiden Grössen können nur konvektiv, also mittels Bewegung transportiert werden. Stoffmenge, Impuls und Entropie lassen sich sowohl leitungsartig als auch konvektiv transportieren. Die elektrische Ladung strömt meist nur leitungsartig durch das Material hindurch und der Drehimpuls nimmt insofern eine Sonderstellung ein, als dessen Transport nicht lokalisiert werden kann. Diese Unterschiede wirkt sich auf die Definition der Konnektorgrössen aus.
konvektive Transporte
Volumen, Masse und meist auch Stoffmenge werden konvektiv, also mittels Bewegung transportiert. An einem konvektiven Transport sind ein ganzes Bündel von Mengen beteiligt. Strömt zum Beispiel Wasser durch ein Rohr, wird Masse, Eigenvolumen der Flüssigkeit, Impuls, Stoffmenge und Energie mittransportiert. Meist beachtet man die Stoffmenge nicht und bezieht den Impulstransport nur dann mit ein, wenn er für die entsprechende Modellbildung von Bedeutung ist.
Wenden wir uns nun dem Energietransport zu. Energie kann als hydraulisch zugeordneter Energiestrom (Druck mal Volumenstromstärke), als gravitativ zugeordneter Energiestrom (Gravitationspotential mal Massenstromstärke), als kinetischer Energiestrom (Energiedichte mal Volumenstromstärke) und als Strom von innerer Energie (spezifische innere Energie mal Massenstromstärke) transportiert werden
- [math]I_W=pI_V+\varphi_G I_m+\varrho_{W_{kin}}I_V+w I_m=\left(p+\varrho g z+\frac{\varrho}{2}v^2+w\varrho\right)I_V=\left(\frac{p}{\varrho}+ gz+\frac{v^2}{2}+w\right)I_m[/math]
w steht hier für die spezifische innere Energie, also die innere Energie pro Masse. Solange man nur inkompressible Fluide modellieren will, kann man das Eigenvolumen als Bilanzmenge nehmen. Im allgemeinen Fall zieht man primär die Bilanzgrösse Masse bei. Nun kann man den ersten und den letzten Term in der Klammer zur spezifischen Enthalpie h zusammenfassen.
- [math]I_W=\left(h+gz+\frac{v^2}{2}\right)I_m[/math]
Wie man daraus die Fluss- und Potentialgrössen für die Konnektoren bildet, ist mit einer gewissen Willkür behaftet.
Video: Energietransport
feldartiger Transporte
Entropie, Impuls und Drehimpuls können zwischen Körper und elektromagnetischem oder gravitativem Feld ausgetauscht werden. Statt von Stromstärke spricht man dann von Quellenstärke. Oft ist eine Unterscheidung zwischen Strom- und Quellenstärke nicht relevant und kann weggelassen werden. Eine wichtige Ausnahem ist die Gravitationskraft, die Quellenstärke des Impulses bezüglich des Gravitationsfeldes. Solange man sich auf der Erdoberfläche befindet, darf in guter Näherung eine fixe Feldstärke (g = 9,81 N/kg) verwendet werden. Um Modelle zu entwickeln, die in verschieden starken Gravitationsfeldern funktionieren, stehen die Schlüsselwörter outer
und inner
zur Verfügung. Wird das Schlüsselwort outer
vor einer Funktion oder einer Variablen platziert, bezieht sich der nachfolgende Ausdruck nicht auf etwas, was innerhalb dieses Modells definiert oder deklariert ist, sondern irgendwo in der übergeordneten Struktur.
Konnektoren der Standard-Bibliothek
Die folgenden Konnektoren werden in der Standard-Biblothek verwendet
domain | potential variables | flow variables | stream variables |
---|---|---|---|
electrical analog | electrical potential | electrical current | |
electrical multi-phase | vector of electrical pins | ||
electrical space phasor | 2 electrical potentials | 2 electrical currents | |
stationaray single phase | complex electrical potential | complex electrical current | |
quasi stationary multi-phase | vector of quasi stationary single phase pins | ||
electrical digital | Integer (1..9) | ||
magnetic flux tubes | magnetic potential | magnetic flux | |
magnetic fundamental wave | complex magnetic potential | complex magnetic flux | |
translational | distance | cut-force | |
rotational | angle | cut-torque | |
3-dim. mechanics | position vector orientation object | cut-force vector cut-torque vector | |
simple fluid flow | pressure, specific enthalpy | mass flow rate, enthalpy flow rate | |
thermo fluid flow | pressure | mass flow rate | specific enthalpy, mass fractions |
heat transfer | temperature | heat flow rate | |
blocks | Real variable, Integer variable, Boolean variable | ||
complex blocks | Complex variable | ||
state machine | Boolean variables (occupied, set,available, reset) | ||
hydraulic | pressure | volume flow rate | |
pneumatic | pressure | mass flow rate |
Üblicherweise werden pro Domain zwei Konnektoren definiert, die identisch sind, aber unterschiedlich bezeichnet werden. Die beiden Konnektoren dienen der Orientierung der Stromrichtung der beteiligten Mengen. Die Definition der Potentiale und Grundmengen in der Standardbibliothek entspricht nicht überall der Philosophie der Systemphysik. Abweichungen ergeben sich unter anderem in der Translationsmechanik (Ort statt Geschwindigkeit), der Rotationsmechanik (Winkel statt Winkelgeschwindigkeit) und der Thermodynamik (Energie statt Entropie).
Konnektoren der Systemphysik-Bibliothek
Die Konnektoren der Systemphysik-Bibliothek sind so gewählt,dass das Produkt aus Potential und Mengenstromstärke einen zugeordneten Energiestrom ergibt. Einzig Ausnahme ist die Pneumatik, weil hier konvektive Transporte beschrieben werden.
Domain | Potential | Stromgrösse | stream-Variable |
---|---|---|---|
Hydrodynamik | Druck | Volumenstromstärke | |
Elektrodynamik | elektrisches Potential | Stärke des elektrischen Stromes | |
Translationsmechanik | Geschwindigkeit | Kraft | |
Rotationsmechanik | Winkelgeschwindigkeit | Drehmoment | |
Thermodynamik | absolute Temperatur | Entropiestromstärke | |
Chemie | chemisches Potential | Stoffmenge | |
Pneumatik | Druck | Massenstromstärke | spezifische Enthalpie? |
Beispiele
Das erste Beispiel, ein Konnektor der Bibliothek electrical analog, zeigt beispielhaft die Definition eines einfachen Konnektors:
connector Pin "Pin of an electrical component"
- Modelica.SIunits.Voltage v "Potential at the pin";
- flow Modelica.SIunits.Current i "Current flowing into the pin";
end Pin;
Der Konnektor der Bibliothek fluid enthält eine Potentialvariable (Druck), eine Stromstärke (Massenstromstärke) und drei konvektive Stromvariablen (stream):
connector FluidPort
- "Interface for quasi one-dimensional fluid flow in a piping network (incompressible or compressible, one or more phases, one or more substances)"
- replaceable package Medium = Modelica.Media.Interfaces.PartialMedium "Medium model" annotation (choicesAllMatching=true);
- flow Medium.MassFlowRate m_flow "Mass flow rate from the connection point into the component";
- Medium.AbsolutePressure p "Thermodynamic pressure in the connection point";
- stream Medium.SpecificEnthalpy h_outflow "Specific thermodynamic enthalpy close to the connection point if m_flow < 0";
- stream Medium.MassFraction Xi_outflow[Medium.nXi] "Independent mixture mass fractions m_i/m close to the connection point if m_flow < 0";
- stream Medium.ExtraProperty C_outflow[Medium.nC] "Properties c_i/m close to the connection point if m_flow < 0";
end FluidPort;
Der Konnektor der Bibliothek fluid heat flow enthält zwei Paare von Potential- und Stromstärke, wobei das zweite Paar, bestehend aus spezifischer Enthalpie als Potentialvariable und Enthapiestromstärke als Stromvariable etwas konstruiert ist:
connector FlowPort "Connector flow port"
- parameter FluidHeatFlow.Media.Medium medium "Medium in the connector";
- Modelica.SIunits.Pressure p;
- flow Modelica.SIunits.MassFlowRate m_flow;
- Modelica.SIunits.SpecificEnthalpy h;
- flow Modelica.SIunits.EnthalpyFlowRate H_flow;
end FlowPort;
Die Konnektoreen der Bibliothek Systemphysik orientieren sich am Energieträgerkonzept des Karlsruher Physikkurses. Die beiden unten aufgeführten Beispiele gehören zur Teilbibliothek Translation und Thermodynamik:
connector TransFl_pos "Flansch fuer die Translation"
- SI.Velocity v "Geschwindigkeit des Flansch";
- flow SI.Force F "Impulsstromstaerke durch den Flansch";
end TransFl_pos;
connector ThermKont_pos "Thermischer Anschluss"
- SI.Temperature T "thermodynamische Temperatur";
- flow SI.ThermalConductance IS "Entropiestromstaerke";
end ThermKont_pos;
Stromglieder
Etwas vereinfacht gesagt, kann eine mengenartige Grösse gespeichert oder transportiert werden. Folglich braucht es Bauteile, die als Speicher wirken, und andere, die als Leiter den Transport der Mengen modellieren. Speicherelemente berechnen aus der resultierenden Stromstärke die Inhaltsänderungsrate, integrieren über die Zeit und berechnen daraus die entsprechende Potentialgrösse. Leiterelement können als Widerstand oder als Induktivität wirken.
Reine Leiter besitzen zwei Konnektoren, wobei der eine oft mit positiv und der andere mit negativ bezeichnet wird. Bei Erhaltungsgrössen werden die Stromstärken der beiden Konnektoren entgegen gestetzt gleich gesetzt (Summe der beiden Stromstärken gleich null). Bei Nichterhaltungsgrössen muss die Produktionsrate mit einbezogen werden.
In der Systemphysik-Bibliothek ist die Grundmenge in fünf der sieben Teilbibliotheken erhalten. Die Entropie kann nur produziert (irreversibler Prozess) und die Stoffmenge infolge chemischer Reaktionen entweder produziert (Produkte) oder vernichtet (Edukte) werden. Den Unterschied zwischen den beiden Modellstukturen lässt sich sehr schön am Beispiel der Thermodynamik zeigen. Im Teilmodell Entropiestromglied bleibt die Entropie erhalten und die Energie wird wie bei den andern Erhaltungsgrössen als Prozessleistung umgesetzt
partial model ThermEntrStrom "Element mit den Anschluessen th_p und th_n, Entropiestrom von th_p nach th_n"
- SI.Temperature dT "Temperaturdifferenz ueber dem Element";
- SI.ThermalConductance IS "Entropiestromstaerke durch Element";
- SI.Power P "Prozessleistung ueber Element";
- Systemphysik.Konnektoren.ThermKont_pos th_p;
- Systemphysik.Konnektoren.ThermKont_neg th_n;
equation
- dT = th_p.T - th_n.T "Temperaturdifferenz über dem Stromglied";
- 0 = th_p.IS + th_n.IS "Energieerhaltung bei reversibler Prozessfuehrung";
- IS = th_p.IS "Staerke des Entropiestromes durch das Stromglied";
- P = dT*IS "Prozessleistung";
end ThermEntrStrom;
Im Teilmodell Energiestromglied bleibt die Energie erhalten und es wird maximal Entropie produziert
partial model ThermEnerStrom "Element mit den Anschluessen th_p und th_n, Energieerhaltung"
- SI.Temperature dT "Temperaturdifferenz ueber dem Element";
- SI.HeatFlowRate IW "Energiestromstaerke durch Element";
- SI.ThermalConductance PiS "Entropieproduktionsrate";
equation
- dT = th_p.T - th_n.T "Temperaturdifferenz über dem Stromglied";
- 0 = th_p.T*th_p.IS + th_n.T*th_n.IS "Energieerhaltung";
- IW = th_p.T*th_p.IS "Staerke des Energiestromes durch das Stromglied";
- PiS = th_p.IS+th_n.IS "Entropieproduktionsrate";
end ThermEnerStrom;
In beiden Konnektoren berechnet sich die Energiestromstärke aus dem Produkt von absoluter Temperatur (Potentialvariable) und Entropiestromstärke (Stromvariable). Die Entropieproduktionsrate ist dann gleich der Summe der beiden Entropiestromstärken. Teilmodel werden in den einzelnen Modellen aufgerufen extends
und bilden so einen Teil des Gesamtcodes.
Video: Zweimassenschwinger mit Modelica