============== **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 speed_cont = 0 wird die aktuelle Rotorposition anhand den mit :any:`timeCalc-Speed` gesetzten Parametern berechnet. Bei speed_cont = 1 wird aus dem resulierenden Moment und dem Lastmoment (:any:`timeCalc-Extern`) die Beschleunigung und damit die neue Rotorposition berechnet. **Fortlaufende Berechnung** ^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. admonition:: Funktion: *t_end* = calc_field_ts (*mode, sim_time, store_time, dtmin, dtmax, resmin, resmax*) Rev. 3790 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] **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*) Rev. 3795 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 res_min ist, wird die Schrittweite halbiert bis minimal dt_min. Mit 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.