Modelica: Basismodelle: Unterschied zwischen den Versionen
Admin (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Admin (Diskussion | Beiträge) |
||
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 4: | Zeile 4: | ||
Einfache Speicher nehmen über einen Konnektor eine Menge auf. Das zugehörige Potentil berechnet sich dann über das zugehörige Kapazitivgesetz. |
Einfache Speicher nehmen über einen Konnektor eine Menge auf. Das zugehörige Potentil berechnet sich dann über das zugehörige Kapazitivgesetz. |
||
{|class="wikitable" |
|||
{| |
|||
!Speicher |
!style ="width:12em"|Speicher |
||
!Menge |
!style ="width:10em"|Menge |
||
!Potential |
!style ="width:12em"|Potential |
||
!Kapazität |
!style ="width:8em"|Kapazität |
||
!Bemerkung |
!style ="width:20em"|Bemerkung |
||
|- |
|- |
||
|zylindrisches Gefäss |
|zylindrisches Gefäss |
||
Zeile 18: | Zeile 18: | ||
|- |
|- |
||
|Plattenkondensator |
|Plattenkondensator |
||
|elektrische Ladung |
|[[elektrische Ladung]] |
||
|Spannung |
|Spannung |
||
|<math>C=\epsilon_0\frac{A}{d}</math> |
|<math>C=\epsilon_0\frac{A}{d}</math> |
||
Zeile 24: | Zeile 24: | ||
|- |
|- |
||
|bewegter Körper |
|bewegter Körper |
||
|Impuls |
|[[Impuls]] |
||
|Geschwindigkeit |
|Geschwindigkeit |
||
|<math>m=\frac{p_x}{v_x}</math> |
|<math>m=\frac{p_x}{v_x}</math> |
||
Zeile 30: | Zeile 30: | ||
|- |
|- |
||
|Schwungrad |
|Schwungrad |
||
|Drehimpuls |
|[[Drehimpuls]] |
||
|Winkelgeschwindigkeit |
|Winkelgeschwindigkeit |
||
|<math>J_{xx}=\frac{L_x}{\omega_x}</math> |
|<math>J_{xx}=\frac{L_x}{\omega_x}</math> |
||
|bezüglich [[Hauptachse]] |
|||
|für alle drei Impulskomponenten |
|||
|} |
|} |
||
Bei Speichern mit konstanter Kapazität nimmt das Potential (bei Kondensatoren die Potentialdifferenz oder Spannung) proportional zur gespeicherten Menge zu. Infolge dem Fundamentalzusammenhang mit der Energie (zugeordneter Energie gleich Stromstärke mal Potential) ist die zugeführte Menge immer stärker mit Energie beladen und die gespeicherte Energie nimmt quadratisch mit der Menge oder dem Potential zu |
|||
:<math>W_{Speicher}=Menge\frac{Potential}{2}=\frac{C}{2}(Potential)^2=\frac{(Menge)^2}{2C}</math> |
|||
Nachfolgend das Modell eines Schwungrades aus der [[Systemphysik]]-Bibliothek |
|||
<code>model Traegheit "Koerper auf einer Achse" |
|||
:parameter SI.MomentOfInertia J = 1; |
|||
:parameter SI.AngularVelocity wa = 0 "Anfangswinkelgeschwindigkeit"; |
|||
:SI.AngularMomentum L(start = La, fixed = true) "Drehimpulsinhalt"; |
|||
:SI.AngularVelocity w "Winkelgeschwindigkeit"; |
|||
:SI.Power IW "zugeordneter Energiestrom"; |
|||
:SI.Energy Wrot(start = Wrota, fixed = true) "Rotationsenergie"; |
|||
protected |
|||
:parameter SI.AngularMomentum La = J * wa "Anfangsdrehimpuls"; |
|||
:parameter SI.Energy Wrota = 0.5 * wa * La "Anfangsenergie"; |
|||
public |
|||
:Systemphysik.Konnektoren.RotFl_pos ro_p; |
|||
equation |
|||
:ro_p.M = der(L); |
|||
:ro_p.w = w; |
|||
:w = L / J; |
|||
:IW = ro_p.w * ro_p.M; |
|||
:IW = der(Wrot); |
|||
end Traegheit; |
|||
</code> |
|||
Mit dem Schlüsselwort <code>protected</code> wird verhindert, dass diese Grössen später beim Instanzieren überschrieben werden können. Dem positiven Flansch aus der Teilbibliothek Konnektor <code>Systemphysik.Konnektoren.RotFl_pos</code> wird der Name <code>ro_p</code> zugewiesen. Die in diesem Konnektor enthaltene Grössen w und M (Winkelgeschwindigkeit und Drehmoment oder Drehimpulsstromstärke) werden ensprechend der Hierarchie mit Punkten getrenn aufgerufen <code>ro_p.w</code> bzw. <code>ro_p.M</code>. |
|||
==Wärmespeicher== |
==Wärmespeicher== |
||
Wärmespeicher nehmen [[Energie]] und [[Entropie]] meist bei konstantem Druck auf. Die gespeicherte Energie (inklusive Expansionsarbeit) heisst [[Enthalpie]]. Weil bei Umgegungstemperatur die Energiekapazität praktisch konstant ist, nimmt die Entropie logarithmisch mit der absoluten Temperatur zu. Sowohl Enthalpie (Einheit J) als auch Entropie (Einheit J/K) müssen bei einem Referenzzustand gleich null gesetzt werden. Das nachfolgende Modell ist für Wasser parametrisiert |
|||
<code>model Waermespeicher "Festkoerper oder Fl?ssigkeit bei konstantem Druck" |
|||
:parameter SI.Mass m = 1 "Masse als Hilfsgroesse"; |
|||
:parameter SI.SpecificHeatCapacity c = 4186 "spezifische Enthalpiekapazitaet"; |
|||
:parameter SI.Temperature Ta = 293.15 "Anfangstemperatur"; |
|||
:parameter SI.Temperature Tamb = 273.15 "Bezugstemperatur fuer Enthalpie und Entropie"; |
|||
:SI.Temperature T(start = Ta, fixed = true); |
|||
:SI.Power IW "zugeordneter Energiestrom"; |
|||
:SI.Enthalpy H; |
|||
:SI.Entropy S(start = C * log(Ta / Tamb), fixed = true); |
|||
protected |
|||
:parameter SI.HeatCapacity C = m * c "Enthalpiekapazitaet"; |
|||
:parameter SI.Enthalpy Ha = C * (Ta - Tamb) "Enthalpie am Anfang"; |
|||
:parameter SI.Entropy Sa = C * log(Ta / Tamb) "Entropie am Anfang"; |
|||
public |
|||
:Systemphysik.Konnektoren.ThermKont_pos th_p; |
|||
equation |
|||
:th_p.T = T; |
|||
:IW = th_p.IS * th_p.T; |
|||
:IW = der(H); |
|||
:H = C * (T - Ta); |
|||
:th_p.IS = der(S); |
|||
end Waermespeicher;</code> |
|||
==Widerstände== |
==Widerstände== |
||
Zeile 47: | Zeile 100: | ||
==Antworten zu den Kontrollfragen== |
==Antworten zu den Kontrollfragen== |
||
'''[[Modelica Kurs|zurück zum Inhalt]]''' |
Aktuelle Version vom 23. April 2015, 09:06 Uhr
Eine Modelica-Bibliothek umfasst in der Regel einen Satz Konnektoren, einige wenige Teilmodelle, Basismodelle, Sensoren, Aktoren und darauf aufbauend weitere Modelle von häufig gebrauchten Bauteilen. Einfache Modelle lassen sich in zwei Kategorien einteilen, in die Speicher und in die Stromglieder. Speicher sammeln, wie der Name sagt, eine mengenartige Grösse wie Volumen, Masse, elektrische Ladung, Impuls, Drehimpuls, Entropie oder Stoffmenge und besitzen in der Regel einen einzigen Konnektor. Die zugehörige Potentialgrösse Druck, Gravitationspotential, elektrisches Potential, Geschwindigkeit, Winkelgeschwindigkeit, Temperatur und chemisches Potential sind dann ein Funktion des Inhalts an Menge. Stromglieder können resistiv oder induktiv wirken. Bei Widerständen ist die Potentialdifferenz eine Funktion der Stromstärke, bei induktiv wirkenden Stromgliedern hängt die Potentialdifferenz mit der Änderungsrate des Stromes zusammen. Speicher und induktiv wirkende Stromglieder sind gleichzeitig auch Energiespeicher. Widerständselemente dissipieren Energie, erzeugen also Entropie.
einfache Speicher
Einfache Speicher nehmen über einen Konnektor eine Menge auf. Das zugehörige Potentil berechnet sich dann über das zugehörige Kapazitivgesetz.
Speicher | Menge | Potential | Kapazität | Bemerkung |
---|---|---|---|---|
zylindrisches Gefäss | Volumen | Druck | [math]C_V=\frac{A}{\varrho g}[/math] | schwer Masse und Gravitationspotential als Atlernative |
Plattenkondensator | elektrische Ladung | Spannung | [math]C=\epsilon_0\frac{A}{d}[/math] | modellmässig ein Stromglied mit zwei Konnektoren |
bewegter Körper | Impuls | Geschwindigkeit | [math]m=\frac{p_x}{v_x}[/math] | für alle drei Impulskomponenten |
Schwungrad | Drehimpuls | Winkelgeschwindigkeit | [math]J_{xx}=\frac{L_x}{\omega_x}[/math] | bezüglich Hauptachse |
Bei Speichern mit konstanter Kapazität nimmt das Potential (bei Kondensatoren die Potentialdifferenz oder Spannung) proportional zur gespeicherten Menge zu. Infolge dem Fundamentalzusammenhang mit der Energie (zugeordneter Energie gleich Stromstärke mal Potential) ist die zugeführte Menge immer stärker mit Energie beladen und die gespeicherte Energie nimmt quadratisch mit der Menge oder dem Potential zu
- [math]W_{Speicher}=Menge\frac{Potential}{2}=\frac{C}{2}(Potential)^2=\frac{(Menge)^2}{2C}[/math]
Nachfolgend das Modell eines Schwungrades aus der Systemphysik-Bibliothek
model Traegheit "Koerper auf einer Achse"
- parameter SI.MomentOfInertia J = 1;
- parameter SI.AngularVelocity wa = 0 "Anfangswinkelgeschwindigkeit";
- SI.AngularMomentum L(start = La, fixed = true) "Drehimpulsinhalt";
- SI.AngularVelocity w "Winkelgeschwindigkeit";
- SI.Power IW "zugeordneter Energiestrom";
- SI.Energy Wrot(start = Wrota, fixed = true) "Rotationsenergie";
protected
- parameter SI.AngularMomentum La = J * wa "Anfangsdrehimpuls";
- parameter SI.Energy Wrota = 0.5 * wa * La "Anfangsenergie";
public
- Systemphysik.Konnektoren.RotFl_pos ro_p;
equation
- ro_p.M = der(L);
- ro_p.w = w;
- w = L / J;
- IW = ro_p.w * ro_p.M;
- IW = der(Wrot);
end Traegheit;
Mit dem Schlüsselwort protected
wird verhindert, dass diese Grössen später beim Instanzieren überschrieben werden können. Dem positiven Flansch aus der Teilbibliothek Konnektor Systemphysik.Konnektoren.RotFl_pos
wird der Name ro_p
zugewiesen. Die in diesem Konnektor enthaltene Grössen w und M (Winkelgeschwindigkeit und Drehmoment oder Drehimpulsstromstärke) werden ensprechend der Hierarchie mit Punkten getrenn aufgerufen ro_p.w
bzw. ro_p.M
.
Wärmespeicher
Wärmespeicher nehmen Energie und Entropie meist bei konstantem Druck auf. Die gespeicherte Energie (inklusive Expansionsarbeit) heisst Enthalpie. Weil bei Umgegungstemperatur die Energiekapazität praktisch konstant ist, nimmt die Entropie logarithmisch mit der absoluten Temperatur zu. Sowohl Enthalpie (Einheit J) als auch Entropie (Einheit J/K) müssen bei einem Referenzzustand gleich null gesetzt werden. Das nachfolgende Modell ist für Wasser parametrisiert
model Waermespeicher "Festkoerper oder Fl?ssigkeit bei konstantem Druck"
- parameter SI.Mass m = 1 "Masse als Hilfsgroesse";
- parameter SI.SpecificHeatCapacity c = 4186 "spezifische Enthalpiekapazitaet";
- parameter SI.Temperature Ta = 293.15 "Anfangstemperatur";
- parameter SI.Temperature Tamb = 273.15 "Bezugstemperatur fuer Enthalpie und Entropie";
- SI.Temperature T(start = Ta, fixed = true);
- SI.Power IW "zugeordneter Energiestrom";
- SI.Enthalpy H;
- SI.Entropy S(start = C * log(Ta / Tamb), fixed = true);
protected
- parameter SI.HeatCapacity C = m * c "Enthalpiekapazitaet";
- parameter SI.Enthalpy Ha = C * (Ta - Tamb) "Enthalpie am Anfang";
- parameter SI.Entropy Sa = C * log(Ta / Tamb) "Entropie am Anfang";
public
- Systemphysik.Konnektoren.ThermKont_pos th_p;
equation
- th_p.T = T;
- IW = th_p.IS * th_p.T;
- IW = der(H);
- H = C * (T - Ta);
- th_p.IS = der(S);
end Waermespeicher;