========== Berechnung ========== .. role:: red .. _timeCalc-Speed: Geschwindigkeit ^^^^^^^^^^^^^^^ .. admonition:: Command: set_speed (*speed, acceleration*) Setzen der Geschwindigkeit, der Beschleunigung und des Anfangswinkels. **Parameter** | :red:`speed` Drehzahl [1/min] | :red:`acceleration` Beschleunigung [1/s2] .. _timeCalc-Extern: Externe Belastung ^^^^^^^^^^^^^^^^^ .. admonition:: Command: set_ext_torque (*inertia, m0, m1, m2, m3, m4*) Definieren einer externe Last **Parameter** | :red:`inertia` Massenträgheitsmoment [kg/m2] | :red:`m0` Konstanter Anteil des Lastmoment [Nm] | :red:`m1` Zur Drehzahl proportionaler Anteil des Lastmoments [Nm/(rad/s)] | :red:`m2` Zum Quadrat der Drehzahl proportionaler Anteil des Lastmoments [Nm/(rad/s)2] | :red:`m3` Zur dritten Potenz der Drehzahl proportionaler Anteil des Lastmoments [Nm/(rad/s)3] | :red:`m4` Zur vierten Potenz der Drehzahl proportionaler Anteil des Lastmoments [Nm/(rad/s)4] Mit den Parametern m0 ... m4 wird die externe Last berechnet. T(extern) = m0 + m1*ω + m2*ω2 + m3*ω3 + m4*ω4 .. add exponents Aus der Differenz zwischen dem aus der FE-Berechnung resultierenden Drehmoment und der externen Last wird, zusammen mit dem Massenträgheitsmoment die Beschleunigung bestimmt. a = (TFE - Textern)/inertia Damit wird dann die Geschwindigkeit für nächsten Zeitschritt bestimmen. Diese Verfahren wird angewandt, wenn beim :any:`timeCalc-Calculation` speed_cont = 1 gesetzt wird. Die Werte, welche gemäss der :any:`timeCalc-Speed` - Funktion gesetzt wurden, dienen als Startwerte. .. _timeCalc-Calculation: Berechnungsmodus ^^^^^^^^^^^^^^^^ .. admonition:: Command: set_calc_mode (*speed_cont, rho, beta*) Setzen der Kontrollparameter für die Zeitschrittrechnung. **Parameter** | :red:`speed_cont` Drehzahl auf Grund externer Belastung (0 = Nein / 1 = Ja) | :red:`rho` Startwert des Läuferwinkels [°] | :red:`beta` Phasenoffset der Quellen [°] | Bei :red:`speed_cont = 0` wird die aktuelle Rotorposition anhand den mit :any:`timeCalc-Speed` gesetzten Parametern berechnet. | Bei :red:`speed_cont = 1` wird aus dem resulierenden Moment und dem Lastmoment (:any:`timeCalc-Extern`) die Beschleunigung und damit die neue Rotorposition berechnet. .. admonition:: Command: set_store_mode (*mode*) Setzt den Kontrollparameter für die Steuerung der Datenspeicherung. **Parameter** | :red:`mode` Steuerparameter für die Datenspeicherung | :red:`mode = "stx+vtu"` sowohl stx- als auch vtu-Files werden geschrieben | :red:`mode = "stx"` nur stx-Files werden geschrieben | :red:`mode = "vtu"` nur vtu-Files werden geschrieben | :red:`mode = "no_vtu"` es werden keine vtu-Files geschrieben (Einzelschrittrechnung) Fortlaufende Berechnung ^^^^^^^^^^^^^^^^^^^^^^^ .. admonition:: Funktion: *t_end* = calc_field_ts (*mode, sim_time, store_time, dtmin, dtmax, resmin, resmax*) Ausführen einer fortlaufenden Zeitschrittrechnung. **Parameter** | :red:`mode` Berechnungsmodus | 0 = init model/init calculation/restart time buffer | 1 = init calculation/restart time buffer | 2 = init calculation/continue time buffer | 3 = continue calculation/restart time buffer | 4 = continue calculation/continue time buffer | 5 = continue calculation/continue time buffer/new results directory | :red:`sim_time` Totale Simulationszeit [s] | :red:`store_time` Zeit zwischen Ergebnisausgabe [s] in Resultat-Files | :red:`dt_min` Minimale Zeitschrittlänge [s] | :red:`dt_max` Maximale zeitschrittlänge [s] | :red:`res_min` Minimalwert des Residuums | :red:`res_max` Maximalwert des Residuums **Return value** | :red:`t_end` Endzeit der Simulation [s] | Ist :red:`store_time < dt_min`, so werden die Resultatdaten bei jedem Rechenschritt gespeichert. | Ist :red:`store_time > sim_time` werden keine Resultatdaten gespeichert. Einzelschrittrechnung --------------------- Initialisierung ^^^^^^^^^^^^^^^ .. admonition:: Command: calc_field_ts_init (*dtmin, dtmax, resmin, resmax*) Initialisieren der Einzelzeitschrittrechnung. **Parameter** | :red:`dt_min` Minimale Zeitschrittlänge [s] | :red:`dt_max` Maximale zeitschrittlänge [s] | :red:`res_min` Minimalwert des Residuums | :red:`res_max` Maximalwert des Residuums Berechnung ^^^^^^^^^^ .. admonition:: Funktion: *n_steps* = calc_field_ts_step (*mode, dtmin, dtmax, resmin, resmax*) Ausführen einer Einzelzeitschrittrechnung. **Parameter** | :red:`mode` Berechnungsmode | 0 = Nächster Schritt | 1 = Rückschritt, letztes Resultat-File wird überschrieben | 2 = Rückschritt, letztes Resultat-File wird beibehalten | :red:`dt_min` Minimale Zeitschrittlänge [s] | :red:`dt_max` Maximale zeitschrittlänge [s] = Schrittweite | :red:`res_min` Minimalwert des Residuums | :red:`res_max` Maximalwert des Residuums **Return value** | :red:`n_steps` Anzahl Rechenschritte | Im Falle dass das Residuum grösser als :red:`res_min` ist, wird die Schrittweite halbiert bis minimal :red:`dt_min`. | Mit :red:`mode = 1` kann der letzte Rechenschritt mit anderen Parametern (z.B. Schrittweite) wiederholt werden. Abschluss ^^^^^^^^^ .. admonition:: Command: calc_field_ts_finish ( ) Abschluss der Einzelzeitschrittrechnung. Muss am Ende ausgeführt werden, ansonsten gehen die Modelldaten verloren. Speichern und laden von Zuständen --------------------------------- Bei FEMAG-TS werden die Daten des letzten Berechnungsschritts für die Berechnung der Spannungen im akuellen Schritt benötigt. Diese Daten werden intern in mehreren Arrays mitgeführt. Damit man später wieder zu einem beliebig früheren Zustand zurückkehren kann besteht die Möglichkeit einen Zustand in ein File zu speichern. Später kann dieser Zustand wieder eingelesen und die Berechnung dort wieder fortsgesetzt werden. Speichern eines Zustand ^^^^^^^^^^^^^^^^^^^^^^^ .. admonition:: Command: save_ts_state(*file*) Speichert den aktuellen Zustand in ein File **Parameter** | :red:`file` Name des Files (optinal) | Der Filename ist optional. | Wird kein Filename angegeben, so wird ein File mit dem Modelnamen und der Extension "sst" erzeugt. | Wird ein Filename ohne Extension angegeben, so wird die Extension "sst" angehängt. Laden eines Zustand ^^^^^^^^^^^^^^^^^^^ .. admonition:: Command: restore_ts_state(*file*) Liest die Zustandsdaten aus einem File **Parameter** | :red:`file` Name des Files (optional) | Der Filename ist optional. | Wird kein Filename angegeben, so wird das File mit dem Modelnamen und der Extension "sst" eingelesen. | Wird ein Filename ohne Extension angegeben, so wird das File mit der Extension "sst" eingelesen.