ehem. OMSI - Forum

Dieses Forum wurde geschlossen. Das neue Forum befindet sich auf www.omnibussimulator.de/forum !
 
StartseiteStartseite  FAQFAQ  SuchenSuchen  MitgliederMitglieder  NutzergruppenNutzergruppen  AnmeldenAnmelden  LoginLogin  

Teilen | 
 

 Zf ecolife transmission script

Nach unten 
AutorNachricht
krtz07



Anzahl der Beiträge : 413
Anmeldedatum : 10.09.09
Alter : 32
Ort : Philadelphia PA

BeitragThema: Zf ecolife transmission script   Di 21 Jun - 4:04

Decided to create a thread on yet another possible transmission mod, not too sure if I am going to developed it yet, but any changes which I have made to the script, I will update this thread. Going to aim at having a more decent form of topodyn working. Hopefully this will help to clarified somethings about how the whole scripting routine works in OMSI eg. If statements, consist file linking, function graphs, etc.


Here is the script and the consist file
Script
Code:

'Build Date 11.6.2011
'##############
'Getriebe-Script
'##############

'ZF Ecomat II

'(c) 2008-2010 Rüdiger Hülsmann

'Script Version: 1.0
'Omsi release: 1.0

'Needs:
'- engine
'- bremse

'Revision History:
'- Kyle Ortiz          20.06.2011      Script based off of the Ecomat script

'----------------------
'   Init
'----------------------

{macro:antrieb_init}
   1 (S.L.antrieb_getr_gangwahl) (S.L.antrieb_getr_gangvorwahl)
   1 (S.L.antrieb_getr_aktugang)
   
   0 (S.L.antrieb_wandler_moment)
{end}

'----------------------
'   Frame
'----------------------

{macro:antrieb_frame}

'Berechnen der Abtriebsdrehzahl
   (L.L.Wheel_RotationSpeed_1_L) (L.L.Wheel_RotationSpeed_1_R) + 2 / (C.L.antrieb_i_achse) * (S.L.antrieb_n_kardanwelle)

'Einlegen der Fahrstufe Loading the gear

   (L.S.GetTime) (L.L.antrieb_getr_gangwahlzeitpunkt) - (C.L.antrieb_gangwahlzeit) >
   (L.L.antrieb_getr_gangvorwahl) (L.L.antrieb_getr_gangwahl) = ! &&
   (L.L.antrieb_failure_general) ! &&
   {if}
         
      (L.L.antrieb_getr_gangwahl) 1 =
      {if}
         (L.L.engine_on) 1 =
         {if}
            (L.L.engine_n) (S.L.antrieb_rucksoundvol)
            (C.L.antrieb_kuppl_M_dn_min) (S.L.antrieb_schaltmoment_soll)

            (L.L.antrieb_getr_gangvorwahl) 1 >

            {if}
               (L.L.antrieb_n_kardanwelle) (C.L.antrieb_getr_autoSwDnMinSpd8) > (C.L.antrieb_ecomat_gears) 5 > &&
               
               {if}
                  8 (S.L.antrieb_getr_aktugang)
                  (T.L.ev_schaltruck)
               {else}
                  (L.L.antrieb_n_kardanwelle) (C.L.antrieb_getr_autoSwDnMinSpd7) > (C.L.antrieb_ecomat_gears) 4 > &&
               
               {if}
                  7 (S.L.antrieb_getr_aktugang)
                  (T.L.ev_schaltruck)
               {else}
               (L.L.antrieb_n_kardanwelle) (C.L.antrieb_getr_autoSwDnMinSpd6) > (C.L.antrieb_ecomat_gears) 3 > &&
               
               {if}
                  6 (S.L.antrieb_getr_aktugang)
                  (T.L.ev_schaltruck)
               {else}
               (L.L.antrieb_n_kardanwelle) (C.L.antrieb_getr_autoSwDnMinSpd5) >
               
               {if}
                  5 (S.L.antrieb_getr_aktugang)
                  (T.L.ev_schaltruck)
               {else}
               (L.L.antrieb_n_kardanwelle) (C.L.antrieb_getr_autoSwDnMinSpd4) >
               
               {if}
                  4 (S.L.antrieb_getr_aktugang)
                  (T.L.ev_schaltruck)
               {else}

               (L.L.antrieb_n_kardanwelle) (C.L.antrieb_getr_autoSwDnMinSpd3) >
               
               {if}
                  3 (S.L.antrieb_getr_aktugang)
                  (T.L.ev_schaltruck)
               {else}
                 
               
                     1 (S.L.antrieb_getr_aktugang)
                     0 (S.L.antrieb_gear_engaged_timer)
                     (T.L.ev_schaltruck)
                                 
                              {endif}
                           {endif}
                        {endif}
                     {endif}
                  {endif}
               {endif}
            {else}
               (L.L.velocity) 5 <
               {if}
                  1 (S.L.antrieb_getr_aktugang)
                  0 (S.L.antrieb_gear_engaged_timer)
                  (T.L.ev_schaltruck)
               {endif}
            {endif}
         {endif}
      {endif}   
      (L.L.antrieb_getr_gangvorwahl) (S.L.antrieb_getr_gangwahl)
   {endif}

'Gang rausnehmen, wenn Neutral angefordert

   (L.L.antrieb_getr_gangwahl) 1 =
   {if}
      0 (S.L.antrieb_getr_aktugang)
   {endif}
'Verhindern, dass der Rückwärtsgang oberhalb von 5 km/h eingelegt werden kann

   (L.L.antrieb_getr_gangvorwahl) 0 =
   (L.L.velocity) 5 >= &&
   {if}
      1 (S.L.antrieb_getr_gangwahl)
   {endif}







'Prüfen, ob Gang gewechselt wird - aber nur, wenn Getriebe heil ist:

   (L.L.antrieb_failure_general) !
   {if}
      (M.L.antrieb_getr_chkNxtGear)
   {endif}

'Berechnung des aktuellen Motordrehmoments:

   (M.L.engine_moment)



'Berechnung des dynamischen Schaltmoments

   (L.L.antrieb_getr_fest) !
   {if}
      (L.L.antrieb_schaltmoment) (L.S.Timegap) 1000 * + (L.L.antrieb_schaltmoment_soll) min (S.L.antrieb_schaltmoment)
   {endif}





'Fallunterscheidung, ob Getriebe reibt oder wandelt oder nicht:

   (L.L.antrieb_getr_fest)
   {if}

'#################################################################################
'   Berechnung der Beschleunigung des Antriebsstrangs (am Motorflansch)
'    Calculate the acceleration of the drive train (on 'the flange)
'#################################################################################


      (L.L.n_Wheel) (L.L.antrieb_getr_ratio) * (L.L.engine_n) - 2 * pi * 60 / (L.S.Timegap) /

'   Berechnung des Momentes am Motor durch Trägheit:

      (C.L.engine_J) * s0

'   Berechnung des vom Antriebsstrang durchgeleiteten Momentes

      l0 /-/ (L.L.engine_M) (L.L.engine_M_additional_load) - + s1


'   Wenn das Antriebsmoment zu groß ist oder ein Wandlergang eingelegt wird, rutscht die Kupplung durch:
'   If the torque is too large or a converter gear is engaged, the clutch slips:

      l1 abs (L.L.antrieb_schaltmoment) > (L.L.antrieb_getr_gangwahl) 1 <= || (L.L.antrieb_getr_aktugang) 1 = || (L.L.antrieb_getr_aktugang) 3 = ||


      {if}

         0 (S.L.antrieb_getr_fest)

      {else}

'      Setzen des Momentes
'      Setting the torque

         l1 (S.L.antrieb_getr_M_an)


'      Berechnung des Getriebeabtriebmomentes:
'      Calculation of the transmission output torque:

         (L.L.antrieb_getr_M_an) (L.L.antrieb_getr_ratio) * (C.L.gear_efficiency) * (S.L.M_Wheel)

'      Drehzahl des Motors ergibt sich aus der Getriebeabtriebswelle:
'      Speed of the engine is obtained from the transmission output shaft:


         (L.L.antrieb_getr_ratio) (L.L.n_Wheel) * (S.L.engine_n)      
      {endif}


      0 (S.L.antrieb_wandler_moment)

   {else}

'#################################################################################
'   Bestimmen, ob Leerlauf ist...: Determine if idle ...:
'#################################################################################

      (L.L.antrieb_getr_gangwahl) 1 = (L.L.antrieb_getr_aktugang) 0 = ||

      {if}

'      ... Antriebs- und Getriebeantriebsmoment sind 0:
         0 (S.L.M_Wheel) (S.L.antrieb_getr_M_an)

         (M.L.engine_acceleration)
         0 (S.L.antrieb_wandler_moment)

'         Wenn Neutralgang beim Bremsen eingelegt wird
         (L.L.antrieb_getr_gangwahl) 1 =
         {if}
            0 (S.L.antrieb_retarder_wasrunning) (S.L.antrieb_gear_engaged_timer)
         {endif}

      {else}

'#################################################################################
'      Bestimmen, ob ein Wandlergang eingelegt ist...: Determine whether a converter gear is engaged
'#################################################################################

   (L.L.antrieb_getr_aktugang) 1 = || (L.L.antrieb_getr_aktugang) 3 = ||
      

         
         {if}

            (L.L.antrieb_wandler_moment) abs (L.L.antrieb_getr_M_an) abs >
            {if}
               (L.L.antrieb_wandler_moment) 0 >
               {if}
                  (L.L.antrieb_getr_M_an) (C.L.antrieb_wandler_fillrate) (L.S.Timegap) * + (S.L.antrieb_getr_M_an)
                  (L.L.antrieb_wandler_moment) (L.L.antrieb_getr_M_an) <
                  {if}
                     (L.L.antrieb_wandler_moment) (S.L.antrieb_getr_M_an)
                  {endif}
               {else}
                  (L.L.antrieb_getr_M_an) (C.L.antrieb_wandler_fillrate) (L.S.Timegap) * - (S.L.antrieb_getr_M_an)
                  (L.L.antrieb_wandler_moment) (L.L.antrieb_getr_M_an) >
                  {if}
                     (L.L.antrieb_wandler_moment) (S.L.antrieb_getr_M_an)
                  {endif}
               {endif}
            {else}
               (L.L.antrieb_wandler_moment) (S.L.antrieb_getr_M_an)
            {endif}
   
         
         

'#################################################################################
'         Wandler Rückwärtsgang: Reverse for Torque Conventer
'#################################################################################

            (L.L.antrieb_getr_gangwahl) 0 =
            {if}
               (L.L.antrieb_n_kardanwelle) 2 * (S.L.antrieb_getr_n_ab) /-/ (L.L.engine_n) / (S.L.antrieb_wandler_ny)



                     

'               Berechnung des Motor-Antriebsmomentes
'               Calculation of the motor drive torque

                  (L.L.engine_n) 2 * 3.14 * 60 / (L.L.engine_n) 2 * 3.14 * 60 / * s1
                  0.0042 (L.L.antrieb_wandler_ny) (F.L.antrieb_wandler_lambda) * l1 * (L.L.engine_n) (F.L.antrieb_wandler_lowrpmsoftness) * (S.L.antrieb_wandler_moment)


'               Berechnung des Rad-Abtriebsmomentes
'               Calculation of the wheel output torque
      
                  (L.L.antrieb_wandler_ny) (F.L.antrieb_wandler_my) (L.L.antrieb_getr_M_an) * (C.L.antrieb_i_achse) * 0.9 * /-/ (L.L.engine_n) (F.L.antrieb_wandler_lowrpmsoftness) * (C.L.gear_efficiency) *
                   (L.L.antrieb_n_kardanwelle) (F.L.antrieb_reverse_torque_reduction) *
                  (S.L.M_Wheel)
               

'#################################################################################
'         Wandler Vorwärtsgang:   Tweak
'#################################################################################

            {else}
               (L.L.n_Wheel) (L.L.antrieb_getr_ratio) * (S.L.antrieb_getr_n_ab) (L.L.engine_n) / (S.L.antrieb_wandler_ny)

               (L.L.antrieb_wandler_ny) 0.98 <
               {if}      

'               Berechnung des Motor-Antriebsmomentes

                  (L.L.engine_n) 2 * 3.14 * 60 / (L.L.engine_n) 2 * 3.14 * 60 / * s1
                  0.0042 (L.L.antrieb_wandler_ny) (F.L.antrieb_wandler_lambda) * l1 * (L.L.engine_n) (F.L.antrieb_wandler_lowrpmsoftness) * (S.L.antrieb_wandler_moment)


'               Berechnung des Rad-Abtriebsmomentes
      
                  (L.L.antrieb_wandler_ny) (F.L.antrieb_wandler_my) (L.L.antrieb_getr_M_an) * (L.L.antrieb_getr_ratio)  * 0.77 * (L.L.engine_n) (F.L.antrieb_wandler_lowrpmsoftness) * (C.L.gear_efficiency) * (S.L.M_Wheel)
               {else}
   
'               Berechnung des Motor-Antriebsmomentes
         
                  (L.L.engine_n) (L.L.antrieb_getr_n_ab) / (S.L.antrieb_wandler_ny_r)

                  (L.L.engine_n) 2 * 3.14 * 60 / (L.L.engine_n) 2 * 3.14 * 60 / * s1
                  0.0042 (L.L.antrieb_wandler_ny_r) (F.L.antrieb_wandler_lambda_r) * l1 * (L.L.engine_n) (F.L.antrieb_wandler_lowrpmsoftness) * (S.L.antrieb_wandler_moment)


'               Berechnung des Rad-Abtriebsmomentes
      
                  (L.L.antrieb_wandler_ny_r) (F.L.antrieb_wandler_my_r) (L.L.antrieb_getr_M_an) * (L.L.antrieb_getr_ratio) * 0.77 * (L.L.engine_n) (F.L.antrieb_wandler_lowrpmsoftness) * (C.L.gear_efficiency) * (S.L.M_Wheel)
               {endif}
            {endif}
      

'         Vergleich der Ein- und Ausgangsleistungen:
            (L.L.M_Wheel) (L.L.n_Wheel) * 3.14 * 30000 / (S.L.antrieb_gesamtleistung)
            (L.L.antrieb_gesamtleistung) (L.L.antrieb_motorleistung) / (S.L.antrieb_eta)

   
            (M.L.engine_acceleration)

         



'#################################################################################
'         Sonst ist ein normaler Gang eingelegt:
'         Otherwise, a normal gear is engaged:
'#################################################################################

         {else}


'         Berechnung der Drehzahldifferenz:

            (L.L.antrieb_getr_ratio) (L.L.n_Wheel) * (L.L.engine_n) - s0



'         An dieser Stelle muss ggf. noch das unterschiedliche Kupplungsmoment eingesetzt werden:

            l0 0 <
            {if}
               (L.L.antrieb_schaltmoment)
            {else}
               (L.L.antrieb_schaltmoment) /-/
            {endif}
            (S.L.antrieb_getr_M_an)
            (L.L.antrieb_getr_ratio) *
            (C.L.gear_efficiency) * (S.L.M_Wheel)

            (M.L.engine_acceleration)

'         Prüfen, ob sich das Vorzeichen der Drehzahldifferenz umgekehrt hat:

            (L.L.antrieb_getr_ratio) (L.L.n_Wheel) * (L.L.engine_n) - l0 * 0 <= (L.L.engine_n) 560 > &&
            {if}
               (L.L.antrieb_getr_ratio) (L.L.n_Wheel) * (S.L.engine_n)
               (L.L.n_Wheel) (L.L.antrieb_getr_ratio) * (L.L.engine_n) - 2 * pi * 60 / (L.S.Timegap) /

'               Berechnung des Momentes am Motor durch Trägheit:

               (C.L.engine_J) * s0

'               Berechnung des vom Antriebsstrang durchgeleiteten Momentes

               l0 /-/ (L.L.engine_M) (L.L.engine_M_additional_load) - + (S.L.antrieb_getr_M_an)


'               Berechnung des Getriebeabtriebmomentes:
'               Calculation of the transmission output torque:

               (L.L.antrieb_getr_M_an) abs (L.L.antrieb_schaltmoment) abs <
               {if}
                  (L.L.antrieb_getr_M_an) (L.L.antrieb_getr_ratio) * (C.L.gear_efficiency) * (S.L.M_Wheel)
                  1 (S.L.antrieb_getr_fest)
                  (M.L.input_torque_M_up_max) (S.L.antrieb_schaltmoment)
               {else}
                  (L.L.antrieb_schaltmoment) /-/ (S.L.antrieb_getr_M_an) (L.L.antrieb_getr_ratio) * (C.L.gear_efficiency) * (S.L.M_Wheel)
               {endif}
               


            {endif}

            0 (S.L.antrieb_wandler_moment)

         {endif}
      {endif}

   {endif}







'#################################################################################
'   Retarder
'#################################################################################


   (L.L.brake) 0.01 >
   (L.L.antrieb_retarder_sw) &&
   (L.L.antrieb_retarder_sw_direkt) ||
   (L.L.antrieb_getr_gangwahl) 1 > &&
   (L.L.Throttle) 0.1 < &&
   (L.L.antrieb_n_kardanwelle) 0.1 > &&
   (L.L.antrieb_failure_general) ! &&
   (L.L.bremse_ABS_eingriff) ! &&
   {if}   

      (L.L.antrieb_retarder_armed) !
      {if}
         1 (S.L.antrieb_retarder_armed)
         0 (S.L.antrieb_retarder_armtime_elapsed)
      {endif}

'      Das Hochschalten aus dem 1. Gang (Antriebsstrang nicht fest eingekuppelt) zählt nicht zur Latenzzeit, solange also Armtime auf 0 halten:
      (L.L.antrieb_getr_fest) ! (L.L.antrieb_retarder) ! &&
      {if}
         0 (S.L.antrieb_retarder_armtime_elapsed)
      {endif}
   

      (L.L.antrieb_n_kardanwelle) (C.L.retarder_min_einschaltspeed) > (L.L.antrieb_retarder_armtime_elapsed) (C.L.antrieb_retarder_startdelay) > && (L.L.antrieb_retarder) ! &&
      {if}
         1 (S.L.antrieb_retarder)
         0 (S.L.antrieb_retarder_time_elapsed)
      {endif}


      (L.L.antrieb_retarder_sw_direkt)
      {if}
         2 (S.L.antrieb_retarderstufe)
      {else}
         1 (S.L.antrieb_retarderstufe)
      {endif}

'Verhaltensweise des Retarders beim Erreichen der Drehzahluntergrenze im 2. Gang:

      (L.L.antrieb_n_kardanwelle) (C.L.antrieb_getr_autoSwDnMinSpd2) <
      (L.L.antrieb_retarder) 1 = &&
      {if}
         (C.L.antrieb_getr_version) s0 1 = l0 3 = ||
         {if}
            0 (S.L.antrieb_retarder) (S.L.antrieb_wendesatz)
            (L.L.engine_n) (S.L.antrieb_rucksoundvol)
            (T.L.ev_schaltruck)
         {else}
            0 (S.L.antrieb_getr_aktugang)
         {endif}
      {endif}
   

      (L.L.antrieb_retarder_armed)
      {if}
         (L.L.antrieb_retarder_armtime_elapsed) (L.S.Timegap) + (S.L.antrieb_retarder_armtime_elapsed)
         (L.L.antrieb_retarder_time_elapsed) (L.S.Timegap) + (S.L.antrieb_retarder_time_elapsed)
      {endif}

' Ausschalten des Retarders:

   {else}
      (L.L.antrieb_retarder) (L.L.antrieb_n_kardanwelle) (C.L.antrieb_getr_autoSwDnMinSpd2) < &&
      {if}
         0 (S.L.antrieb_retarder_offtime) (S.L.antrieb_wendesatz)
         1 (S.L.antrieb_retarder_wasrunning)
      {endif}
      0 (S.L.antrieb_retarder) (S.L.antrieb_retarder_armed) (S.L.antrieb_retarder_armtime_elapsed) (S.L.antrieb_retarder_time_elapsed)   
   {endif}

'Umschaltverzögerung zwischen Bremsen und Traktion:

   (L.L.antrieb_retarder_wasrunning)
   {if}
      (L.L.antrieb_retarder_offtime) (L.S.Timegap) + (S.L.antrieb_retarder_offtime)
      (C.L.antrieb_retarder_changetime) >
      (L.L.antrieb_getr_gangwahl) 1 > &&
      {if}
         (T.L.ev_retarder_aus)

'3424 soll hier laut rucken!
         (L.$.number) "3424" $=
         {if}
            900
         {else}
            (L.L.engine_n)
         {endif}
         (S.L.antrieb_rucksoundvol)
         (T.L.ev_schaltruck)
         1 (S.L.antrieb_getr_aktugang)
         0 (S.L.antrieb_retarder_wasrunning) (S.L.antrieb_gear_engaged_timer)
      {endif}
   {endif}

   

'Bremsmoment des Retarders:

   (L.L.antrieb_retarder) 1 =
   {if}
      (L.L.antrieb_retarderstufe) 1 =
      {if}
         (L.L.antrieb_n_kardanwelle) 29.3 / (F.L.retarder_stufe1) 0.7 * (C.L.antrieb_i_achse) /-/ * (L.L.antrieb_retarder_time_elapsed) (F.L.retarder_fadein) * (S.L.antrieb_retardermoment) (L.L.M_Wheel) + (S.L.M_Wheel)
      {else}
         (L.L.antrieb_retarderstufe) 2 =
         {if}
            (L.L.antrieb_retardermoment) (L.S.Timegap) 10000 * - s1
            (L.L.antrieb_n_kardanwelle) 29.3 / (F.L.retarder_stufe2) 0.7 * (C.L.antrieb_i_achse) /-/ * (L.L.antrieb_retarder_time_elapsed) (F.L.retarder_fadein) * s2
            l1 l2 max (S.L.antrieb_retardermoment) (L.L.M_Wheel) + (S.L.M_Wheel)
         {else}
         (L.L.antrieb_retarderstufe) 3 =
         {if}   
            (L.L.antrieb_retardermoment) (L.S.Timegap) 10000 * - s1
            (L.L.antrieb_n_kardanwelle) 29.3 / (F.L.retarder_stufe3) 0.7 * (C.L.antrieb_i_achse) /-/ * (L.L.antrieb_retarder_time_elapsed) (F.L.retarder_fadein) * s2
            l1 l2 max (S.L.antrieb_retardermoment) (L.L.M_Wheel) + (S.L.M_Wheel)
            {else}
         (L.L.antrieb_retarderstufe) 4 =
         {if}   
            (L.L.antrieb_retardermoment) (L.S.Timegap) 10000 * - s1
            (L.L.antrieb_n_kardanwelle) 29.3 / (F.L.retarder_stufe4) 0.7 * (C.L.antrieb_i_achse) /-/ * (L.L.antrieb_retarder_time_elapsed) (F.L.retarder_fadein) * s2
            l1 l2 max (S.L.antrieb_retardermoment) (L.L.M_Wheel) + (S.L.M_Wheel)


         {endif}
         {endif}
         {endif}
      {endif}
   {else}
'      Ausfaden der Retarder-Bremsstärke
      (L.L.antrieb_retardermoment) (L.S.Timegap) 10000 * + 0 min (S.L.antrieb_retardermoment) (L.L.M_Wheel) + (S.L.M_Wheel)
      (L.L.antrieb_retarder_volume) (L.S.Timegap) 2 * - 0 max (S.L.antrieb_retarder_volume) s0
      l0 0 =
      {if}
         0 (S.L.antrieb_wendesatz)
      {endif}
   
   {endif}



'#################################################################################
'   Automatische Neutralschaltung bei Stillstand
'#################################################################################

(C.L.antrieb_getr_version) 1 >
{if}
   (L.L.antrieb_gear_engaged_timer) (L.S.Timegap) + (S.L.antrieb_gear_engaged_timer)
   
   (L.L.antrieb_n_kardanwelle) (C.L.antrieb_neutral_maxspeed) <
   (L.L.antrieb_getr_gangwahl) 1 > &&
   (L.L.antrieb_retarder) ! &&
   (L.L.antrieb_retarder_wasrunning) ! &&   
   {if}
      (L.L.bremse_p_Brzyl_HA) (C.L.antrieb_neutral_brakepressure) >
      {if}
         (L.L.antrieb_neutral_requested) !
         {if}
            1 (S.L.antrieb_neutral_requested)

            (C.L.antrieb_getr_version) 2 = !
            (C.L.antrieb_getr_version) 2 = (L.L.antrieb_gear_engaged_timer) (C.L.antrieb_gear_engaged_mintime) < && ||
            {if}
               0 (S.L.antrieb_gear_engaged_timer)
            {endif}
         {endif}
         
         (L.L.antrieb_neutral_requested)
         (L.L.antrieb_gear_engaged_timer) (C.L.antrieb_gear_engaged_mintime) >= &&
         {if}
            0 (S.L.antrieb_getr_aktugang)
         {endif}

      {else}      
         1 (S.L.antrieb_getr_aktugang)
         0 (S.L.antrieb_neutral_requested) (S.L.antrieb_gear_engaged_timer)
      {endif}
      
   {endif}
{endif}










'#################################################################################
'   Planetengetriebe-Wendesatz (Fjü-Sound)
'#################################################################################
   
   (L.L.antrieb_retarder) 
   (L.L.antrieb_getr_gangwahl) 0 = ||
   {if}
      1 (S.L.antrieb_wendesatz) (S.L.antrieb_retarder_volume)
'      Rücksetzen auf 0 erfolgt beim Fadeout des Retarderbremsmoments
   {endif}
{end}



'#################################################################################
'   Bestimmung der Schaltgeschwindigkeiten
'#################################################################################

{macro:antrieb_getr_chkNxtGear}

'   Höchster Gang: s0!

'   Verzögerung der Kickdown-Schaltung:

   (L.L.throttle) 1 =
   {if}
      (L.L.antrieb_kickdown_stellglied) (L.S.Timegap) 2 * + 1 min (S.L.antrieb_kickdown_stellglied)
      1 =
      {if}
         1 (S.L.antrieb_kickdown)
         (L.L.Throttle) 0.1 = &&
      {endif}
   {else}
      (L.L.antrieb_kickdown_stellglied) (L.S.Timegap) 1 * - 0 max (S.L.antrieb_kickdown_stellglied)
      0 =
      {if}
         0 (S.L.antrieb_kickdown)
      {endif}
   {endif}

'   Verzögerung der gaspedalabhängigen Schaltschwelle:

   
   (L.L.throttle) (L.L.antrieb_throttle_stellglied) >
   {if}
      (L.L.antrieb_throttle_stellglied) (L.S.Timegap) 1 * + (L.L.throttle) min (S.L.antrieb_throttle_stellglied)
   {else}
      (L.L.antrieb_throttle_stellglied) (L.S.Timegap) 0.5 * - (L.L.throttle) max (S.L.antrieb_throttle_stellglied)
   {endif}
   
'   Berechnen der aktuellen Beschleunigung:
   
   (L.L.Velocity) (L.L.antrieb_last_geschwindigkeit) - 3.6 / (L.S.Timegap) / (S.L.antrieb_beschleunigung)
   (L.L.Velocity) (S.L.antrieb_last_geschwindigkeit)




   

' Brake base earlier kick down into prior gear
            (L.L.brake) 0.25 >=
               {if}
               1300 (L.L.antrieb_current_ratio) / (S.L.antrieb_load_point)
                {else}
                1100 (L.L.antrieb_current_ratio) / (S.L.antrieb_load_point)
                    {endif}
                {endif}


(C.L.is_gearchange) (S.L.antrieb_is_gearchange)   

   
'#################################################################################
'   Topodyno settings
'#################################################################################

'   Calculate change in Throttle per second:
   
   (L.L.engine_throttle_injection) (L.L.antrieb_last_throttle) - 1 / (L.S.Timegap) / (S.L.antrieb_delta_throttle)
   (L.L.engine_throttle_injection) (S.L.antrieb_last_throttle)



      
      


 (L.L.antrieb_getr_aktugang) 2 >=
 {if}
 (L.L.Velocity) (F.L.antrieb_resistance) (S.L.antrieb_resistance)
 (L.L.antrieb_beschleunigung) (L.L.antrieb_current_ratio) * (L.L.antrieb_resistance) * (F.L.topodyn_Range) * (S.L.antrieb_topodyn)
 (L.L.antrieb_topodyn) (L.L.antrieb_current_ratio) / (S.L.antrieb_topodyn_Up)

{else}

 (L.L.antrieb_getr_aktugang) 1 = 
{if}
(L.L.antrieb_beschleunigung) (L.L.antrieb_current_ratio) / (F.L.topodyn_Range_1) (S.L.antrieb_topodyn)
(L.L.antrieb_topodyn) (C.L.antrieb_getr_ratio1) / (S.L.antrieb_topodyn_Up)
{endif}
{endif}


'#################################################################################
'   Gearbox Controls
'#################################################################################

   (L.L.antrieb_getr_gangwahl) 0 =
   {if}
      
   {else}
   (L.L.antrieb_getr_gangwahl) 1 =
   {if}
      
   {else}
      (L.L.antrieb_getr_gangwahl) 2 =
      {if}
         (L.L.antrieb_retarder_armed) 0 =
         {if}
            1 s0
         {else}
            2 s0
         {else}
            3 s0
         {else}
            4 s0
         {endif}
      
      {else}
      (L.L.antrieb_getr_gangwahl) 3 =
      {if}
         2 s0
      {else}
         3 s0
      {else}
         4 s0
      {endif}
         
   {endif}


         (L.L.antrieb_getr_aktugang) s1

         1 =
         {if}
            (C.L.antrieb_getr_ratio1) (S.L.antrieb_current_ratio) (C.L.antrieb_i_achse) * (S.L.antrieb_getr_ratio)
            (L.L.antrieb_kickdown)
            {if}
                  (C.L.antrieb_topodyn_enable) 1 =
               {if}
                  (L.L.antrieb_topodyn_Up) s3 s4
                  {else}
                  (C.L.antrieb_getr_autoSwUpkickdnSpd1) s3 s4
                  {endif}
            {else}
               (C.L.antrieb_getr_autoSwUpMinSpd1) s4
               (C.L.antrieb_getr_autoSwUpMaxSpd1) s3
            {endif}
      
            
            (M.L.antrieb_getr_chkCh) (L.L.antrieb_n_kardanwelle) < (L.L.antrieb_beschleunigung) 0.2 >= &&
            {if}
               (M.L.antrieb_throttlelimitor_1)

                (C.L.lock_up_type) 1 =
               {if}   
               2 (S.L.antrieb_getr_aktugang)
               {else}
                  (C.L.lock_up_type) 2 =
                  {if}
                  3 (S.L.antrieb_getr_aktugang)
                  (T.L.ev_gear_upshift1C2C)
                  {endif}
               {endif}
               
               (M.L.input_torque_M_up_max) s6
               (M.L.input_torque_M_up_min) s7
               
               
               (M.L.antrieb_getr_schaltmoment) (S.L.antrieb_schaltmoment_soll)   (S.L.antrieb_schaltmoment)
               
               {endif}
            

            {endif}
         
         
         
         (M.L.antrieb_kickdown_time)
         (M.L.antrieb_throttlegovernor)
      
         {endif}


         l1 2 =
         {if}
            (C.L.antrieb_getr_ratio1) (S.L.antrieb_current_ratio) (C.L.antrieb_i_achse) * (S.L.antrieb_getr_ratio)
            (L.L.antrieb_kickdown)
            {if}
               (C.L.antrieb_getr_autoSwUpkickdnSpd2) s3 s4

            {else}
               (C.L.antrieb_getr_autoSwUpMinSpd2) s4
               (C.L.antrieb_getr_autoSwUpMaxSpd2) s3
            {endif}

            (M.L.antrieb_getr_chkCh) (L.L.antrieb_n_kardanwelle) < l0 3 >= && (L.L.antrieb_beschleunigung) 0.1 > && (L.L.antrieb_kickdown_sense) 1 > && (L.L.throttle) 0.25 > &&
            {if}
               (M.L.antrieb_throttlelimitor)
               3 (S.L.antrieb_getr_aktugang)
               (M.L.input_torque_M_up_max) s6
               (M.L.input_torque_M_up_min) s7
               (M.L.antrieb_getr_schaltmoment) (S.L.antrieb_schaltmoment_soll) (S.L.antrieb_schaltmoment)
               (T.L.ev_gear_upshift1)         
            {endif}
            (L.L.antrieb_kickdown)
            {if}
               (C.L.antrieb_getr_autoSwDnkickdnSpd2) s3 s4
            {else}
               (C.L.antrieb_getr_autoSwDnMinSpd2) s4
               (C.L.antrieb_getr_autoSwDnMaxSpd2) s3
            {endif}
            (M.L.antrieb_getr_chkCh) (L.L.antrieb_n_kardanwelle) > (L.L.antrieb_retarder_armed) ! &&
            (L.L.antrieb_n_kardanwelle) (C.L.antrieb_getr_autoSwDnMinSpd2) < ||
            {if}
               1 (S.L.antrieb_getr_aktugang)
               (M.L.input_torque_M_dn_max) s6
               (M.L.input_torque_M_dn_min) s7
               0 (S.L.antrieb_schaltmoment)
               (T.L.ev_gear_downshift2)
            {endif}
         (M.L.antrieb_throttlegovernor)
         (M.L.antrieb_kickdown_time)
         {endif}
'Add gear here
l1 3 =
         {if}
            (C.L.antrieb_getr_ratio2) (S.L.antrieb_current_ratio) (C.L.antrieb_i_achse) * (S.L.antrieb_getr_ratio)
            (L.L.antrieb_kickdown)
            {if}
               (C.L.antrieb_getr_autoSwUpkickdnSpd3) s3 s4
            {else}
               (C.L.antrieb_getr_autoSwUpMinSpd3) s4
               (C.L.antrieb_getr_autoSwUpMaxSpd3) s3
            {endif}
            (M.L.antrieb_getr_chkCh) (L.L.antrieb_n_kardanwelle) < l0 3 >= && 
            {if}
               (M.L.antrieb_throttlelimitor)
               4 (S.L.antrieb_getr_aktugang)
               (M.L.input_torque_M_up_max) s6
               (M.L.input_torque_M_up_min) s7
               (M.L.antrieb_getr_schaltmoment) (S.L.antrieb_schaltmoment_soll) (S.L.antrieb_schaltmoment)
               (T.L.ev_gear_upshift2C)         
            {endif}
            (L.L.antrieb_kickdown)
            {if}
               (C.L.antrieb_getr_autoSwDnkickdnSpd3) s3 s4
            {else}
               (C.L.antrieb_getr_autoSwDnMinSpd3) s4
               (C.L.antrieb_getr_autoSwDnMaxSpd3) s3
            {endif}
            (M.L.antrieb_getr_chkCh) (L.L.antrieb_n_kardanwelle) > (L.L.antrieb_retarder_armed) ! &&
            (L.L.antrieb_n_kardanwelle) (C.L.antrieb_getr_autoSwDnMinSpd3) < ||
            {if}
               1 (S.L.antrieb_getr_aktugang)
               0 (S.L.antrieb_schaltmoment)
               (M.L.input_torque_M_dn_max) s6
               (M.L.input_torque_M_dn_min) s7
               (T.L.ev_gear_downshift2C1C)   
            {endif}
         (M.L.antrieb_throttlegovernor_2)
         (M.L.antrieb_kickdown_time)
         {endif}




l1 4 =
         {if}
            (C.L.antrieb_getr_ratio2) (S.L.antrieb_current_ratio) (C.L.antrieb_i_achse) * (S.L.antrieb_getr_ratio)
            
            (L.L.antrieb_kickdown)
            {if}
               (C.L.antrieb_topodyn_enable) 1 =
               {if}
                  (L.L.antrieb_topodyn_Up) s3 s4
                  {else}
                  (C.L.antrieb_getr_autoSwUpkickdnSpd4) s3 s4
                  {endif}
            {else}
               (C.L.antrieb_getr_autoSwUpMinSpd4) s4
               (C.L.antrieb_getr_autoSwUpMaxSpd4) s3
            {endif}


            (M.L.antrieb_getr_chkCh) (L.L.antrieb_n_kardanwelle) < (L.L.antrieb_beschleunigung) 0 > && l0 3 >= && (L.L.antrieb_kickdown_sense) (C.L.antrieb_hold_gear) > &&
            {if}
               (M.L.antrieb_throttlelimitor)
               
               
               5 (S.L.antrieb_getr_aktugang)
               (M.L.input_torque_M_up_max) s6
               (M.L.input_torque_M_up_min) s7
               (M.L.antrieb_getr_schaltmoment) (S.L.antrieb_schaltmoment_soll) (S.L.antrieb_schaltmoment)
               (T.L.ev_gear_upshift4)
         

            {endif}
            l0 3 < (L.L.antrieb_n_kardanwelle) (C.L.antrieb_getr_manualMaxSpd1) < &&
            {if}
               (M.L.antrieb_throttlelimitor_1)
               2 (S.L.antrieb_getr_aktugang)
               
               (M.L.input_torque_M_dn_max) s6
               (M.L.input_torque_M_dn_min) s7
               0 (S.L.antrieb_schaltmoment)
               (T.L.ev_gear_downshift4)
            {else}
            
            (L.L.antrieb_kickdown)
            {if}
               (C.L.antrieb_getr_autoSwDnkickdnSpd4) s3 s4
            {else}
               (C.L.antrieb_getr_autoSwDnMinSpd4) s4
               (C.L.antrieb_getr_autoSwDnMaxSpd4) s3
            {endif}
            {endif}
            (M.L.antrieb_getr_chkCh) (L.L.antrieb_n_kardanwelle) > (L.L.antrieb_retarder_armed) ! &&
            (L.L.antrieb_n_kardanwelle) (C.L.antrieb_getr_autoSwDnMinSpd4) <  ||
            {if}
               (M.L.antrieb_throttlelimitor_1)
               3 (S.L.antrieb_getr_aktugang)
               (M.L.input_torque_M_dn_max) s6
               (M.L.input_torque_M_dn_min) s7
               0 (S.L.antrieb_schaltmoment)
               
            {endif}
            (M.L.antrieb_throttlegovernor_2)
            (M.L.antrieb_kickdown_time)
         {endif}
      

l1 5 =
         {if}
            (C.L.antrieb_getr_ratio3) (S.L.antrieb_current_ratio) (C.L.antrieb_i_achse) * (S.L.antrieb_getr_ratio)
         
            (L.L.antrieb_kickdown)
            {if}
               (C.L.antrieb_topodyn_enable) 1 =
               {if}
                  (L.L.antrieb_topodyn_Up) s3 s4
                  {else}
                  (C.L.antrieb_getr_autoSwUpkickdnSpd5) s3 s4
                  {endif}
            {else}
               (C.L.antrieb_getr_autoSwUpMinSpd5) s4
               (C.L.antrieb_getr_autoSwUpMaxSpd5) s3
            {endif}

            (M.L.antrieb_getr_chkCh) (L.L.antrieb_n_kardanwelle) <  (L.L.antrieb_beschleunigung) 0 > && l0 3 >= && (L.L.antrieb_n_kardanwelle) (C.L.antrieb_getr_autoSwUpMinSpd5) >= && (L.L.antrieb_kickdown_sense) (C.L.antrieb_hold_gear) > &&
            {if}
      
               (M.L.antrieb_throttlelimitor)
               6 (S.L.antrieb_getr_aktugang)
               (M.L.input_torque_M_up_max) s6
               (M.L.input_torque_M_up_min) s7
               (M.L.antrieb_getr_schaltmoment) (S.L.antrieb_schaltmoment_soll) (S.L.antrieb_schaltmoment)                  
               (T.L.ev_gear_upshift4)
               
               
            {endif}



            (L.L.antrieb_kickdown)
            {if}
               (C.L.antrieb_getr_autoSwDnkickdnSpd5) s3 s4
            {else}
               (C.L.antrieb_getr_autoSwDnMinSpd5) s4
               (C.L.antrieb_getr_autoSwDnMaxSpd5) s3
            
            {endif}
            
            (L.L.antrieb_n_kardanwelle) (C.L.antrieb_ecomat_kickdownspd5) < (L.L.throttle) 0.2 > && (L.L.throttle) 0.95 < &&  (L.L.antrieb_beschleunigung) 0 < &&      (L.L.antrieb_delta_throttle) (C.L.kickdownthrottlesensitivity) > && (M.L.antrieb_getr_chkCh) (L.L.antrieb_n_kardanwelle) > || (L.L.antrieb_retarder_armed) ! &&
            (L.L.antrieb_n_kardanwelle) (C.L.antrieb_getr_autoSwDnMinSpd5) < || (L.L.antrieb_kickdown_sense) (C.L.antrieb_hold_gear) > &&
            {if}
               (M.L.antrieb_throttlelimitor_1)
               3 (S.L.antrieb_getr_aktugang)
               (M.L.input_torque_M_dn_max) s6
               (M.L.input_torque_M_dn_min) s7
                650 (S.L.antrieb_schaltmoment_soll)
                1100 (S.L.antrieb_schaltmoment)
               (T.L.ev_gear_downshift3L2L)
            {endif}
         (M.L.antrieb_throttlegovernor_3)
         (M.L.antrieb_kickdown_time)
      
         {endif}




         l1 6 =
         {if}
            (C.L.antrieb_getr_ratio4) (S.L.antrieb_current_ratio) (C.L.antrieb_i_achse) * (S.L.antrieb_getr_ratio)
            
            (L.L.antrieb_kickdown)
            {if}
               (L.L.antrieb_kickdown_timer) 3 =
               {if}
                  (L.L.antrieb_topodyn_Up) s3 s4
                  {else}
                  (C.L.antrieb_getr_autoSwUpkickdnSpd6) s3 s4
                  {endif}
            {else}
               (C.L.antrieb_getr_autoSwUpMinSpd6) s4
               (C.L.antrieb_getr_autoSwUpMaxSpd6) s3
            {endif}
            (M.L.antrieb_getr_chkCh) (L.L.antrieb_n_kardanwelle) <  (L.L.antrieb_beschleunigung) 0 > && (C.L.antrieb_ecomat_gears) 4 > && (L.L.antrieb_kickdown_sense) (C.L.antrieb_hold_gear) > && l0 3 >= && (L.L.antrieb_n_kardanwelle) (C.L.antrieb_getr_autoSwUpMinSpd6) >= &&
            {if}
               (M.L.antrieb_throttlelimitor)
               7 (S.L.antrieb_getr_aktugang)
               (M.L.input_torque_M_up_max) s6
               (M.L.input_torque_M_up_min) s7
               (M.L.antrieb_getr_schaltmoment) (S.L.antrieb_schaltmoment_soll) (S.L.antrieb_schaltmoment)
               (T.L.ev_gear_upshift5)         
            {endif}

            

         
            (L.L.antrieb_kickdown)
            {if}
            (C.L.antrieb_getr_autoSwDnkickdnSpd6) s3 s4
               
            {else}
               (C.L.antrieb_getr_autoSwDnMinSpd6) s4
               (C.L.antrieb_getr_autoSwDnMaxSpd6) s3
            {endif}
            
            (M.L.antrieb_getr_chkCh) (L.L.antrieb_n_kardanwelle) > (L.L.antrieb_kickdown_sense) 3 > &&
            {if}
               (M.L.antrieb_throttlelimitor_1)
               5 (S.L.antrieb_getr_aktugang)
               (M.L.input_torque_M_dn_max) s6
               (M.L.input_torque_M_dn_min) s7
               650 (S.L.antrieb_schaltmoment_soll)
                    1100 (S.L.antrieb_schaltmoment)
               (T.L.ev_gear_downshift3)
               
            {endif}
         (M.L.antrieb_kickdown_time)
         (M.L.antrieb_kickdown_timer)
         (M.L.antrieb_throttlegovernor_4)   

         {endif}




         l1 7 =
         {if}
            (C.L.antrieb_getr_ratio5) (S.L.antrieb_current_ratio) (C.L.antrieb_i_achse) * (S.L.antrieb_getr_ratio)
            (L.L.antrieb_kickdown)
            {if}
               (C.L.antrieb_topodyn_enable) 1 =
               {if}
                  (L.L.antrieb_topodyn_Up) s3 s4
                  {else}
                  (C.L.antrieb_getr_autoSwUpkickdnSpd7) s3 s4
                  {endif}
            {else}
               (C.L.antrieb_getr_autoSwUpMinSpd7) s4
               (C.L.antrieb_getr_autoSwUpMaxSpd7) s3
            {endif}
            (M.L.antrieb_getr_chkCh) (L.L.antrieb_n_kardanwelle) <  (L.L.antrieb_beschleunigung) 0 > && (C.L.antrieb_ecomat_gears) 5 > && l0 3 >= && (L.L.antrieb_kickdown_sense) (C.L.antrieb_hold_gear) > && (L.L.antrieb_n_kardanwelle) (C.L.antrieb_getr_autoSwUpMinSpd7) >= &&
            {if}
               (M.L.antrieb_throttlelimitor)
               8 (S.L.antrieb_getr_aktugang)
               (M.L.input_torque_M_up_max) s6
               (M.L.input_torque_M_up_min) s7
               (M.L.antrieb_getr_schaltmoment) (S.L.antrieb_schaltmoment_soll) (S.L.antrieb_schaltmoment)
               (T.L.ev_gear_upshift5)         
            {endif}

            
            (L.L.antrieb_kickdown)
            {if}
               (C.L.antrieb_getr_autoSwDnkickdnSpd7) s3 s4
            {else}
               (C.L.antrieb_getr_autoSwDnMinSpd7) s4
               (C.L.antrieb_getr_autoSwDnMaxSpd7) s3
            {endif}
            
            (M.L.antrieb_getr_chkCh) (L.L.antrieb_n_kardanwelle) > (L.L.antrieb_kickdown_sense) (C.L.antrieb_hold_gear) > &&
            {if}
               (M.L.antrieb_throttlelimitor_1)
               6 (S.L.antrieb_getr_aktugang)
               (M.L.input_torque_M_dn_max) s6
               (M.L.input_torque_M_dn_min) s7
               0 (S.L.antrieb_schaltmoment)
               (T.L.ev_gear_downshift4)
            {endif}
         (M.L.antrieb_kickdown_time)
         (M.L.antrieb_throttlegovernor_5)
         {endif}
'end add
         l1 8 =
         {if}
            (C.L.antrieb_getr_ratio6) (S.L.antrieb_current_ratio) (C.L.antrieb_i_achse) * (S.L.antrieb_getr_ratio)
            
            (L.L.antrieb_kickdown)
            {if}
               (C.L.antrieb_getr_autoSwDnkickdnSpd8) s3 s4
            {else}
               (C.L.antrieb_getr_autoSwDnMinSpd8) s4
               (C.L.antrieb_getr_autoSwDnMaxSpd8) s3
            {endif}
            




         (M.L.antrieb_getr_chkCh) (L.L.antrieb_n_kardanwelle) > (L.L.antrieb_kickdown_sense) (C.L.antrieb_hold_gear) > &&
            {if}
               (M.L.antrieb_throttlelimitor_1)
               7 (S.L.antrieb_getr_aktugang)
               (M.L.input_torque_M_dn_max) s6
               (M.L.input_torque_M_dn_min) s7
               650 (S.L.antrieb_schaltmoment_soll)
                    1100 (S.L.antrieb_schaltmoment)
               (T.L.ev_gear_downshift3)
               
            {endif}
         (M.L.antrieb_kickdown_time)
         (M.L.antrieb_throttlegovernor_6)
         {endif}


   {endif}
   {endif}



               

'   Testweise: Differenzialdrehzahlpfeifen

   (L.L.engine_n) (L.L.antrieb_n_kardanwelle) 2 * - (S.L.antrieb_n_differenz)





{end}

{macro:antrieb_getr_chkCh}
'   Berechnung der aktuellen Hochschaltschwelle: (l3 = bei Vollgas, l4 = bei Leergas)
   (L.L.antrieb_throttle_stellglied) s2 l3 * 1 l2 - l4 * +
{end}

{macro:antrieb_getr_schaltmoment}
'   Berechnung des Schaltmomentes (l6 = bei Vollgas, l7 = bei Leergas)
   (L.L.antrieb_throttle_stellglied) s5 l6 * 1 l5 - l7 * +
{end}

{macro:antrieb_throttlelimitor}
(L.L.throttle) (C.L.partialthrottle_rate) * (S.L.engine_throttle_injection)
 0 (S.L.antrieb_kickdown_sense)
 0 (S.L.antrieb_kickdown_timer)
{end}

{macro:antrieb_throttlelimitor_1}

(L.L.throttle) 0 * (S.L.engine_throttle_injection)
0 (S.L.antrieb_kickdown_sense)
 0 (S.L.antrieb_kickdown_timer)
{end}


{macro:antrieb_throttlegovernor}
(L.L.throttle) (C.L.throttleinjection_governor) * (S.L.engine_throttle_injection)
               
{end}

{macro:antrieb_throttlegovernor_2}
(L.L.throttle) (C.L.throttleinjection_governor_2) * (S.L.engine_throttle_injection)               
{end}


{macro:antrieb_throttlegovernor_3}
(L.L.throttle) (C.L.throttleinjection_governor_3) * (S.L.engine_throttle_injection)
{end}

{macro:antrieb_throttlegovernor_4}
(L.L.throttle) (C.L.throttleinjection_governor_4) * (S.L.engine_throttle_injection)
{end}


{macro:antrieb_throttlegovernor_5}
(L.L.throttle) (C.L.throttleinjection_governor_5) * (S.L.engine_throttle_injection)             
{end}


{macro:antrieb_throttlegovernor_6}
(L.L.throttle) (C.L.throttleinjection_governor_6) * (S.L.engine_throttle_injection)
{end}

{macro:input_torque_M_up_max}
            (C.L.antrieb_ecomat_class) 1 =
               {if}
               (C.L.antrieb_kuppl_M_up_max)
               {else}
             (C.L.antrieb_ecomat_class) 2 =
             {if}
                (C.L.antrieb_kuppl_M_up_max_1)

                {else}
                   (C.L.antrieb_ecomat_class) 3 =
              {if}
               (C.L.antrieb_kuppl_M_up_max_2)
                {endif}
                {endif}
                {endif}

{end}


{macro:input_torque_M_up_min}
            (C.L.antrieb_ecomat_class) 1 =
               {if}
               (C.L.antrieb_kuppl_M_up_min)
               {else}
             (C.L.antrieb_ecomat_class) 2 =
             {if}
                (C.L.antrieb_kuppl_M_up_min_1)

                {else}
                   (C.L.antrieb_ecomat_class) 3 =
              {if}
               (C.L.antrieb_kuppl_M_up_min_2)
                {endif}
                {endif}
                {endif}

{end}

{macro:input_torque_M_dn_max}
            (C.L.antrieb_ecomat_class) 1 =
               {if}
               (C.L.antrieb_kuppl_M_dn_max)
               {else}
             (C.L.antrieb_ecomat_class) 2 =
             {if}
                (C.L.antrieb_kuppl_M_dn_max_1)

                {else}
                   (C.L.antrieb_ecomat_class) 3 =
              {if}
               (C.L.antrieb_kuppl_M_dn_max_2)
                {endif}
                {endif}
                {endif}

{end}

{macro:input_torque_M_dn_min}
            (C.L.antrieb_ecomat_class) 1 =
               {if}
               (C.L.antrieb_kuppl_M_dn_min)
               {else}
             (C.L.antrieb_ecomat_class) 2 =
             {if}
                (C.L.antrieb_kuppl_M_dn_min_1)

                {else}
                   (C.L.antrieb_ecomat_class) 3 =
              {if}
               (C.L.antrieb_kuppl_M_dn_min_2)
                {endif}
                {endif}
                {endif}

{end}




{macro:antrieb_kickdown_time}

       
' calculatation of current ratio
1100 (L.L.antrieb_current_ratio) / (S.L.antrieb_holdgear_stall_prevention)

(L.L.antrieb_n_kardanwelle) (L.L.antrieb_holdgear_stall_prevention) >
   {if}

   (L.L.antrieb_kickdown_sense) (L.S.Timegap) 1 * + 5 min (S.L.antrieb_kickdown_sense)

   {else}
   (L.L.antrieb_getr_aktugang) 4 < 
      {if}
      (L.L.antrieb_kickdown_sense) (L.S.Timegap) 1 * + 5 min (S.L.antrieb_kickdown_sense)
      {else}
      5 (S.L.antrieb_kickdown_sense)
   
      
    {endif}
     {endif}

   
{end}


{macro:antrieb_kickdown_timer}
(L.L.antrieb_beschleunigung) 0 <=
   {if}
   
(L.L.antrieb_kickdown_timer) (L.S.Timegap) 1 * + 2 min (S.L.antrieb_kickdown_timer)
    
   
   
      
    {endif}
    (L.L.antrieb_beschleunigung) 0 >
   {if}
   
(L.L.antrieb_kickdown_timer) (L.S.Timegap) 1 * - 0 max (S.L.antrieb_kickdown_timer)
    
   
   
      
    {endif}

   
{end}












consist file:

Code:

Build Date 4.22.2011
Getriebeversion:
1: Retarder nicht im 1. Gang, keine Neutralschaltung
2: Retarder im 1. Gang, Neutralschaltung
3: Retarder nicht im 1. Gang, Neutralschaltung

[const]
antrieb_getr_version
3


4 to 6 gears; designated as 4HP, 5HP, 6HP

[const]
antrieb_ecomat_gears
6

1: Torque converter will lock up in first gear
2: Torque converter will lock up in second gear


Not Implemented Yet
[const]
lock_up_type
1



[const]
kickdownthrottlesensitivity
8

[const]
antrieb_ecomat_class
2

Zeit für den Wechsel zwischen Retarder und Traktion (nur bei Getriebeversion 2)
[const]
antrieb_retarder_changetime
0.6

Mindestzeit, die eingekuppelt sein muss, bevor Neutralschaltung greift
[const]
antrieb_gear_engaged_mintime
20

Geschwindigkeit, unterhalb der die Neutralschaltung greift
[const]
antrieb_neutral_maxspeed
120

Bremsdruck in Pa, ab dem Neutralschaltung greift
[const]
antrieb_neutral_brakepressure
170000


[const]
antrieb_kuppl_M_up_max
1100

[const]
antrieb_kuppl_M_up_min
400

[const]
antrieb_kuppl_M_dn_max
1100

[const]
antrieb_kuppl_M_dn_min
500


[const]
antrieb_kuppl_M_up_max_1
1200

[const]
antrieb_kuppl_M_up_min_1
550

[const]
antrieb_kuppl_M_dn_max_1
1200

[const]
antrieb_kuppl_M_dn_min_1
650


[const]
antrieb_kuppl_M_up_max_2
5600

[const]
antrieb_kuppl_M_up_min_2
900

[const]
antrieb_kuppl_M_dn_max_2
1600

[const]
antrieb_kuppl_M_dn_min_2
950


[const]
antrieb_getr_ratio1
3.364


[const]
antrieb_getr_ratio2
1.909

[const]
antrieb_getr_ratio3
1.421

[const]
antrieb_getr_ratio4
1.00

[const]
antrieb_getr_ratio5
0.72

[const]
antrieb_getr_ratio6
0.615

[const]
antrieb_i_achse
5.22

Die folgenden Werte beziehen sich auf die Drehzahl der Kardanwelle und sind somit unabhängig von Achsübersetzung und Reifengröße!
km/h zu Wellendrehzahl (Raddurchmesser=1.03, i_achse=5.74 =>Faktor 29.56

[const]
antrieb_getr_autoSwUpMinSpd1
146

[const]
antrieb_getr_autoSwUpMaxSpd1
200

[const]
antrieb_getr_autoSwUpkickdnSpd1
365

[const]
antrieb_ecomat_kickdownspd1
365


Gears for 1L

[const]
antrieb_getr_autoSwDnMinSpd2
120

[const]
antrieb_getr_autoSwDnMaxSpd2
120

[const]
antrieb_getr_autoSwDnkickdnSpd2
130

[const]
antrieb_ecomat_kickdownspd2
365


[const]
antrieb_getr_autoSwUpMinSpd2
450

[const]
antrieb_getr_autoSwUpMaxSpd2
500

[const]
antrieb_getr_autoSwUpkickdnSpd2
573.090379




Shift Points for 2C
Shifts down into 1C to avoid stalling

[const]
antrieb_getr_autoSwDnMinSpd3
100

[const]
antrieb_getr_autoSwDnMaxSpd3
100

[const]
antrieb_getr_autoSwDnkickdnSpd3
340

[const]
antrieb_getr_autoSwUpMinSpd3
870

[const]
antrieb_getr_autoSwUpMaxSpd3
556.0248756

[const]
antrieb_getr_autoSwUpkickdnSpd3
621


Shift Points for 2L Shifts down into 2C




[const]
antrieb_getr_autoSwDnMinSpd4
472
[const]
antrieb_getr_autoSwDnMaxSpd4
472

[const]
antrieb_getr_autoSwDnkickdnSpd4
520

[const]
antrieb_getr_autoSwUpMinSpd4
775.0248756


[const]
antrieb_getr_autoSwUpMaxSpd4
750


[const]
antrieb_getr_autoSwUpkickdnSpd4
815




shift Points for 3


[const]
antrieb_getr_autoSwDnMinSpd5
500

[const]
antrieb_getr_autoSwDnMaxSpd5
650

[const]
antrieb_getr_autoSwDnkickdnSpd5
675



[const]
antrieb_getr_autoSwUpMinSpd5
800


[const]
antrieb_getr_autoSwUpMaxSpd5
800


[const]
antrieb_getr_autoSwUpkickdnSpd5
985



shift Points for 3


[const]
antrieb_getr_autoSwDnMinSpd6
700

[const]
antrieb_getr_autoSwDnMaxSpd6
700

[const]
antrieb_getr_autoSwDnkickdnSpd6
900


[const]
antrieb_getr_autoSwUpMinSpd6
1100


[const]
antrieb_getr_autoSwUpMaxSpd6
1100


[const]
antrieb_getr_autoSwUpkickdnSpd6
1450




shift Points for 3


[const]
antrieb_getr_autoSwDnMinSpd7
972


[const]
antrieb_getr_autoSwDnMaxSpd7
972

[const]
antrieb_getr_autoSwDnkickdnSpd7
1350

[const]
antrieb_getr_autoSwUpMinSpd7
1530


[const]
antrieb_getr_autoSwUpMaxSpd7
1730


[const]
antrieb_getr_autoSwUpkickdnSpd7
1900




[const]
antrieb_getr_autoSwDnMinSpd8
1230

[const]
antrieb_getr_autoSwDnMaxSpd8
1530

[const]
antrieb_getr_autoSwDnkickdnSpd8
1830




[const]
antrieb_getr_manualMaxSpd1
584

[const]
antrieb_getr_manualMaxSpd2
1044.278607

[const]
antrieb_getr_manualMaxSpd3
1450.391608

[const]
antrieb_getr_manualMaxSpd4
1900


[const]
antrieb_getr_manualMaxSpd5
2290.391608


[const]
antrieb_ecomat_kickdownspd5
1100

[const]
antrieb_ecomat_kickdownspd6
1500

[const]
antrieb_ecomat_kickdownspd7
2300

[const]
antrieb_ecomat_kickdownspd8
2300



In m/s^2
[const]
antrieb_kickdown_activation_acceleration
0.2







[const]
antrieb_wandler_fillrate
3000



[const]
retarder_min_einschaltspeed
502

[const]
antrieb_retarder_startdelay
0.2

[newcurve]
retarder_stufe1
[pnt]
0
0
[pnt]
10
194
[pnt]
20
388
[pnt]
30
407
[pnt]
40
485
[pnt]
50
641
[pnt]
60
854
[pnt]
70
990
[pnt]
80
1165

[newcurve]
retarder_stufe2
[pnt]
0
0
[pnt]
10
291
[pnt]
20
582
[pnt]
30
874
[pnt]
40
1019
[pnt]
50
1165
[pnt]
60
1262
[pnt]
70
1359
[pnt]
80
1456

[newcurve]
retarder_stufe3
[pnt]
0
0
[pnt]
10
291
[pnt]
20
582
[pnt]
30
1068
[pnt]
40
1554
[pnt]
50
1845
[pnt]
60
1942
[pnt]
70
1991
[pnt]
80
2039

[newcurve]
retarder_stufe4
[pnt]
0
0
[pnt]
10
291
[pnt]
20
582
[pnt]
30
968
[pnt]
40
1854
[pnt]
50
2600
[pnt]
60
2885
[pnt]
70
3011
[pnt]
80
3142

Load base Shifting Schedule
First number represents engine rpm
second number represents acceleration (^2)

[newcurve]
topodyn
[pnt]
0
3.3
[pnt]
1800
3.3
[pnt]
2050
2.1
[pnt]
2300
0
[pnt]
3100
0







[const]
antrieb_gangwahlzeit
0.5

[const]
antrieb_neutralwahlzeit
0.1

[newcurve]
antrieb_wandler_lambda

[pnt]
-2
100

[pnt]
0
8.5

[pnt]
0.66
3.1

[pnt]
1
0

[newcurve]
antrieb_wandler_my

[pnt]
0
2.36

[pnt]
 0.25
 2.15

[pnt]
 0.5
 2.01

[pnt]
 0.6
 1.5

[pnt]
0.9
1

[pnt]
0.95
0.5

[pnt]
1.0
0






[newcurve]
antrieb_reverse_torque_reduction

[pnt]
-220
0

[pnt]
0
1



[newcurve]
antrieb_wandler_lambda_r

[pnt]
0.2
-12

[pnt]
0.5
-8

[pnt]
1
-4

[pnt]
1.42857
0


[newcurve]
antrieb_wandler_my_r

[pnt]
0.2
5

[pnt]
0.5
3

[pnt]
1.42857
0


[newcurve]
antrieb_wandler_lowrpmsoftness

[pnt]
0
0.6

[pnt]
1000
1



[newcurve]
retarder_fadein

[pnt]
0
0.2


[pnt]
5
0.5

[const]
gear_efficiency
0.95


'Actuator rate in 1/n per second (total range 0..1)

[const]
kickdown_stellglied_inc_rate
2

[const]
kickdown_stellglied_dec_rate
1

[const]
throttle_stellglied_inc_rate
1

[const]
throttle_stellglied_dec_rate
0.3

'minimum acceleration for upshift (m/s^2)

[const]
min_upshift_acceleration
-0.2

0.6 = 20% throttle if lock up is engaged , 0.5 is Null , <0.5 is engine braking > 0.5 is throttle

[const]
partialthrottle_rate
0.80


For extremely powerful engines

Gear 1 torque restrictor
[const]
throttleinjection_governor
0.85

Gear 2 torque restrictor
[const]
throttleinjection_governor_2
1

Gear 3 torque restrictor
[const]
throttleinjection_governor_3
1

[const]
throttleinjection_governor_4
1

[const]
throttleinjection_governor_5
1

[const]
throttleinjection_governor_6
1



[const]
is_gearchange
0

[const]
topodyn_Enabled
1

[const]
antrieb_hold_gear
1.8

[const]
antrieb_hold_gear_partial_throttle
2

[const]
antrieb_topodyn_Sensitivity
2.3

[const]
antrieb_topodyn_enable
0

Topodyn for Upshift
Acceleration which gets mutiplied by gear ratio, so 0.76 on 1:1 is 0.76, yet 0.76 on 1.36 gets mutiplied by 1.36

[newcurve]
topodyn_Range

[pnt]
0
2400

[pnt]
0.76
1800


[newcurve]
topodyn_Range_1

[pnt]
0
1350

[pnt]
1
1050


[newcurve]
antrieb_resistance

[pnt]
0
1

[pnt]
200
0.8

[newcurve]
topodyn_Kickdown_throttle_dec

[pnt]
0
2250

[pnt]
0.8
1750
Nach oben Nach unten
Benutzerprofil anzeigen http://www.philadelphiatransitvehicles.info
Thiago

avatar

Anzahl der Beiträge : 252
Anmeldedatum : 18.02.11
Ort : Brazil

BeitragThema: Re: Zf ecolife transmission script   So 26 Jun - 23:00

I really appreciate your talent for scrpiting.
Looking forward to this. Smile
Nach oben Nach unten
Benutzerprofil anzeigen http://www.tooo.com.br/omsi
 
Zf ecolife transmission script
Nach oben 
Seite 1 von 1

Befugnisse in diesem ForumSie können in diesem Forum nicht antworten
ehem. OMSI - Forum :: OMSI-Design (english) :: Script programming-
Gehe zu: