Odpowiedź 
Skrypt dziurawych poduszek.
Autor Wiadomość

Neoplan fan:)
Użytkownicy
Liczba postów: 63
Dołączył: 02-2013
Podziękowań: 16
Post: #1
Skrypt dziurawych poduszek.
Witam wszystkich,
mam pytanie do osób znających się na skryptach. A mianowicie mam sobie skrypt hamulców do N4016. Chciałbym zrobić coś, jak w Mercu z Hamburga, czyli, jeśli stoimy np. na światłach autobus lekko przysiada, i po pewnym czasie wraca do pierwotnego położenia. Nie musi być jakiś super skomplikowany, ale niestety moje próby kończyły się zawsze fiaskiem. Wiem, że za wys. zawieszenia odpowiada axle_springfactor, ale niestety nie wiem do końca jak go użyć. Mam też problem, ponieważ chciałbym zrobić, żeby to działo się np. co 30 sekund, ale nie umiem korzystać z (L.S.Timegap)... Wstawiam skrypt hamulców- to co najlepiej działało z moich testów. Działałoby dobrze, gdyby nie to, że cała operacja działa się parę razy na sekundę:D Mam nadzieję, że jest na to sposób, oraz, że zapewniłem wystarczającą ilość materiałów. Z góry dziękuje za zainteresowanie. Dodam, że w skryptach jestem początkujący, ale szybko się uczę i całkiem sporo rozumiem;)
Kod:
'##############
'Brake Script
'##############

'Controls Brakes and includes air system (compressor)

'(c) 2007-2011 Rüdiger Hülsmann, Marcel Kuhnt

'Script Version: 1.0
'Omsi release: 1.0

'Needs:
'- Engine (for compressor)

'Revision History:
'- Rüdiger Hülsmann    11.05.2009    Last Change
'- Rüdiger Hülsmann    15.03.2010    Brake squeak
'- Marcel Kuhnt        15.04.2010    Pressure Calculation Stabilized
'- Rüdiger Hülsmann    06.11.2010    Automatic level control
'- Marcel Kuhnt        28.12.2010    Added wheel separated brake force variables
'- Rüdiger Hülsmann    01.01.2011    Added ABS function
'- Rüdiger Hülsmann    06.01.2011    separated brake force debugged (pipe diameter)
'- Rüdiger Hülsmann    23.01.2011    ABS relais sound
'- Rüdiger Hülsmann    31.01.2011    Random initial pressure, nonreturn valves for air suspension
'- Rüdiger Hülsmann    03.02.2011    Random squeak sound volume

'--------------------------------------------------------------


{trigger:parking_brake_toggle}
    (L.L.bremse_feststell) ! (S.L.bremse_feststell) (S.L.bremse_feststell_sw)
    {if}
        (T.L.ev_bremse_feststell_ein)
    {else}
        (T.L.ev_bremse_feststell_aus)
    {endif}
{end}


{trigger:parking_brake_set}
    (L.L.bremse_feststell) !
    {if}
        (S.L.bremse_feststell)
        (T.L.ev_bremse_feststell_ein)
        1 (S.L.bremse_feststell_sw)
    {endif}
{end}

{trigger:parking_brake_release}
    (L.L.bremse_feststell)
    {if}
        ! (S.L.bremse_feststell)
        (T.L.ev_bremse_feststell_aus)
        0 (S.L.bremse_feststell_sw)
    {endif}
{end}

{trigger:parking_brake_mouse_drag}
    (L.S.mouse_y) 200 / (L.L.bremse_feststell_sw) + (S.L.bremse_feststell_sw) s0
    l0 0 <
    {if}
        0 (S.L.bremse_feststell_sw)
    {endif}
    l0 1 >
    {if}
        1 (S.L.bremse_feststell_sw)
    {endif}
    l0 0.6 > (L.L.bremse_feststell) 0 = &&
    {if}
        1 (S.L.bremse_feststell)
        (T.L.ev_bremse_feststell_ein)
    {endif}
    l0 0.4 < (L.L.bremse_feststell) 1 = &&
    {if}
        0 (S.L.bremse_feststell)
        (T.L.ev_bremse_feststell_aus)
    {endif}

    1 (S.L.bremse_feststell_klinke)
{end}

{trigger:parking_brake_mouse_off}
    0 (S.L.bremse_feststell_klinke)
{end}



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

{macro:bremse_init}
    1 (S.L.bremse_feststell_sw) (S.L.bremse_feststell) (S.L.bremse_UeVentil_1) (S.L.bremse_UeVentil_2)

'    900000 (S.L.bremse_p_tank01) (S.L.bremse_p_tank02) (S.L.bremse_p_tank03) (S.L.bremse_p_tank04) (S.L.bremse_p_leitung01) (S.L.bremse_p_leitung02)


'Kreis 1 zufällig befüllen
    500000 random 400000 + (S.L.bremse_p_tank01) (S.L.bremse_p_leitung01) (S.L.bremse_p_leitung02) s0

'Kreis 2 in Abhängigkeit vom Druck in Kreis 1 befüllen: Wenn Druckausgleich vorhanden, dann p2=p1 ansonsten Zufallswert unterhalb des Sicherungsdrucks (5 bar)
    (C.L.bremse_UeVentil_1_schliessdruck) >
    {if}
        l0 (S.L.bremse_p_tank02)
    {else}
        300000 random 300000 + (S.L.bremse_p_tank02)
    {endif}

'Kreis 3 zufällig befüllen, aber mindestens Druck wie in Kreis
    500000 random 400000 + l0 max (S.L.bremse_p_tank03) s0

'Kreis 4 in Abhängigkeit vom Druck in Kreis 3 befüllen: Wenn Druckausgleich vorhanden, dann p4=p3 ansonsten Zufallswert unterhalb des Sicherungsdrucks (5 bar)
    (C.L.bremse_UeVentil_2_schliessdruck) >
    {if}
        l0 (S.L.bremse_p_tank04)
    {else}
        300000 random 300000 + (S.L.bremse_p_tank04) s0
    {endif}

'Setzen der Luftfederbalgdrücke

    300000 random 100000 + (S.L.bremse_p_balg_0_R)
    300000 random 100000 + (S.L.bremse_p_balg_0_L)
    300000 random 100000 + (S.L.bremse_p_balg_1_R)
    300000 random 100000 + (S.L.bremse_p_balg_1_L)


'Setzen der Bremszylinderdrücke    
    100000 (S.L.bremse_p_luft) (S.L.bremse_p_brzyl_VA) (S.L.bremse_p_brzyl_VA_R) (S.L.bremse_p_brzyl_VA_L) (S.L.bremse_p_brzyl_HA) (S.L.bremse_p_brzyl_HA_R) (S.L.bremse_p_brzyl_HA_L) (S.L.bremse_p_Brzyl_FBA)


    0 (S.L.bremse_loesezischbereitschaft) (S.L.bremse_bremszischbereitschaft) (S.L.bremse_zieldruckdifferenz)
    
    0 (L.L.bremse_loesezischzeit)
    
' Setzen des Initial-Hup/Quietschvolumes

    -2 (S.L.bremse_quietsch_volume)
{end}

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

{macro:bremse_frame}
    

'Bremskraftberechnung Vorderachse
'Rechte Seite
    (L.L.bremse_p_brzyl_VA_R) 100000 - 20000 - 850000 / (C.L.max_bremskraft) * s0

'    Luftwiderstand:
    (L.L.Velocity) 3.6 / (L.L.Velocity) 3.6 / * 9.5 0.8 0.6 * * * +
'    Gesamtbremskraft auf 4 Räder aufteilen
    4 /
    (S.L.Axle_Brakeforce_0_R)

'Linke Seite
    (L.L.bremse_p_brzyl_VA_L) 100000 - 20000 - 850000 / (C.L.max_bremskraft) * s0

'    Luftwiderstand:
    (L.L.Velocity) 3.6 / (L.L.Velocity) 3.6 / * 9.5 0.8 0.6 * * * +
'    Gesamtbremskraft auf 4 Räder aufteilen
    4 /
    (S.L.Axle_Brakeforce_0_L)


'Bremskraftberechnung Hinterachse
'Rechte Seite
    (L.L.bremse_p_brzyl_HA_R) 100000 - 20000 - 850000 / (C.L.max_bremskraft) * s0

'    Luftwiderstand:
    (L.L.Velocity) 3.6 / (L.L.Velocity) 3.6 / * 9.5 0.8 0.6 * * * +
'    Gesamtbremskraft auf 4 Räder aufteilen
    4 /
'    Feststellbremse obendrauf
    (L.L.bremse_p_Brzyl_FBA) (F.L.Bremskraft_FBA) 2 / +
    (S.L.Axle_Brakeforce_1_R)

'Linke Seite
    (L.L.bremse_p_brzyl_HA_L) 100000 - 20000 - 850000 / (C.L.max_bremskraft) * s0

'    Luftwiderstand:
    (L.L.Velocity) 3.6 / (L.L.Velocity) 3.6 / * 9.5 0.8 0.6 * * * +
'    Gesamtbremskraft auf 4 Räder aufteilen
    4 /
'    Feststellbremse obendrauf
    (L.L.bremse_p_Brzyl_FBA) (F.L.Bremskraft_FBA) 2 / +
    (S.L.Axle_Brakeforce_1_L)



    (M.L.bremse_kompressor)
    
    (M.L.bremse_druckluftsound)

    (M.L.bremse_levelcontrol)

    (M.L.kneel)


'    Setzen des Bremssollwertes (Pedalbetätigungen bis 0.1 bleiben unberücksichtigt => Rasten für Retarder)
    
    (L.L.Brake) 0.1 - 1.1 * s0 0 <
    {if}
        0 (S.L.bremse_luft)
    {else}
        l0 (S.L.bremse_luft)
    {endif}
    

{end}

{macro:kneel}

    (L.L.kneel_direction_ist) 0 =
    (L.L.kneel_direction_sound) 1 = &&
    {if}
        (T.L.ev_kneel_auf)
    {endif}

    (L.L.kneel_direction_ist) 1 =
    (L.L.kneel_direction_sound) 0 = &&
    {if}
        (T.L.ev_kneel_ab)
    {endif}

    (L.L.kneel_direction_ist) (S.L.kneel_direction_sound)

'Kneeling Speed
   (L.L.kneel_speed) 0 =
   {if}
      (C.L.kneel_all_right_wheels)
      {if}
         (L.L.bremse_p_balg_0_R) (L.L.bremse_p_balg_1_R) + 2 / (C.L.kneel_target_pressure) - (C.L.kneel_time) / abs (S.L.kneel_speed)
      {else}
         (L.L.bremse_p_balg_0_R) (C.L.kneel_target_pressure) - (C.L.kneel_time) / abs (S.L.kneel_speed)
      {endif}
   {endif}

   (L.L.elec_busbar_main)
   {if}
      (L.L.door_20h_sw)
      (L.L.bremse_halte_sw) ||
      (L.L.bremse_halte) ||
      (L.L.kneel_allowed) &&
    (L.L.elec_busbar_main) &&
      {if}
         (C.L.kneel_all_right_wheels)
         {if}

            (L.L.kneel_old_F_pressure) 0 =
            (L.L.kneel_old_B_pressure) 0 = &&
            {if}
               (L.L.bremse_p_balg_0_R) (S.L.kneel_old_F_pressure)
               (L.L.bremse_p_balg_1_R) (S.L.kneel_old_B_pressure)
            {endif}

            (L.L.bremse_p_balg_0_R) (C.L.kneel_target_pressure) >
            {if}
               (L.L.bremse_p_balg_0_R) (L.L.kneel_speed) (L.S.Timegap) * - (C.L.kneel_target_pressure) max (S.L.bremse_p_balg_0_R)
        1 (S.L.kneel_direction_ist)
            {endif}

            (L.L.bremse_p_balg_1_R) (C.L.kneel_target_pressure) >
            {if}
               (L.L.bremse_p_balg_1_R) (L.L.kneel_speed) (L.S.Timegap) * - (C.L.kneel_target_pressure) max (S.L.bremse_p_balg_1_R)
        1 (S.L.kneel_direction_ist)
            {endif}

            (L.L.bremse_p_balg_0_R) (C.L.kneel_target_pressure) =
            (L.L.bremse_p_balg_1_R) (C.L.kneel_target_pressure) = &&
            {if}
               (L.L.kneel_old_F_pressure) (L.L.bremse_p_balg_0_R) - (L.L.kneel_old_B_pressure) (L.L.bremse_p_balg_1_R) - + 2 / (C.L.kneel_time) / abs (S.L.kneel_speed)
            {endif}
        
         {else}
            (L.L.kneel_old_F_pressure) 0 =
            {if}
               (L.L.bremse_p_balg_0_R) (S.L.kneel_old_F_pressure)
            {endif}

            (L.L.bremse_p_balg_0_R) (C.L.kneel_target_pressure) >
            {if}
               (L.L.bremse_p_balg_0_R) (L.L.kneel_speed) (L.S.Timegap) * - (C.L.kneel_target_pressure) max (S.L.bremse_p_balg_0_R)
        1 (S.L.kneel_direction_ist)
            {endif}

            (L.L.bremse_p_balg_0_R) (C.L.kneel_target_pressure) =
            {if}
               (L.L.kneel_old_F_pressure) (L.L.bremse_p_balg_0_R) - (C.L.kneel_time) / abs (S.L.kneel_speed)
            {endif}
         {endif}
      {endif}

      (L.L.door_20h_sw) !
      (L.L.bremse_halte_sw) ! &&
      (L.L.bremse_halte) ! &&
      (L.L.kneel_allowed) ! ||
    (L.L.elec_busbar_main) &&
      {if}
         (C.L.kneel_all_right_wheels)
         {if}

            (L.L.kneel_old_F_pressure) ! 0 =
            {if}
               (L.L.bremse_p_balg_0_R) (L.L.kneel_old_F_pressure) <
               {if}
                  (L.L.bremse_p_balg_0_R) (L.L.kneel_speed) (L.S.Timegap) * + (L.L.kneel_old_F_pressure) min (S.L.bremse_p_balg_0_R)
        0 (S.L.kneel_direction_ist)
               {endif}
            {endif}
            
            (L.L.kneel_old_B_pressure) ! 0 =
            {if}
               (L.L.bremse_p_balg_1_R) (L.L.kneel_old_B_pressure) <
               {if}
                  (L.L.bremse_p_balg_1_R) (L.L.kneel_speed) (L.S.Timegap) * + (L.L.kneel_old_B_pressure) min (S.L.bremse_p_balg_1_R)
        0 (S.L.kneel_direction_ist)
               {endif}
            {endif}

            (L.L.bremse_p_balg_0_R) (L.L.kneel_old_F_pressure) =
            (L.L.bremse_p_balg_0_R) (L.L.kneel_old_F_pressure) > ||
            (L.L.bremse_p_balg_1_R) (L.L.kneel_old_B_pressure) =
            (L.L.bremse_p_balg_1_R) (L.L.kneel_old_B_pressure) > || &&
            {if}
               0 (S.L.kneel_old_F_pressure)
               0 (S.L.kneel_old_B_pressure)
               0 (S.L.kneel_speed)
            {endif}
            
         {else}
            (L.L.kneel_old_F_pressure) ! 0 =
            {if}
               (L.L.bremse_p_balg_0_R) (L.L.kneel_old_F_pressure) <
               {if}
                  (L.L.bremse_p_balg_0_R) (L.L.kneel_speed) (L.S.Timegap) * + (L.L.kneel_old_F_pressure) min (S.L.bremse_p_balg_0_R)
        0 (S.L.kneel_direction_ist)
               {endif}
            {endif}
  
            (L.L.bremse_p_balg_0_R) (L.L.kneel_old_F_pressure) =
            (L.L.bremse_p_balg_0_R) (L.L.kneel_old_F_pressure) > ||
            {if}
               0 (S.L.kneel_old_F_pressure)
               0 (S.L.kneel_speed)
            {endif}
         {endif}
      {endif}
   {endif}
{end}

{macro:bremse_kompressor}

'    Berechnung des Massenstroms vom Kompressor in die Füllleitung zum Vierkreisschutzventil:

    (L.L.bremse_kompressor) 1 =
    {if}
        (L.L.engine_n) (L.S.Timegap) * 60 / (C.L.bremse_m_kompressor) *
        (C.L.RT_Luft) * (C.L.bremse_V_leitung01) / (L.L.bremse_p_leitung01) + (S.L.bremse_p_leitung01)
    {endif}


'#################################################################
'    Vierkreisschutzventil

'    Berechnung der Querschnittsfläche der Überströmventile in Abhängigkeit der anliegenden Drücke von Bremskreis und Füllleitung:

    
    (C.L.bremse_UeVentil_1_oeffnungsdruck) (C.L.bremse_UeVentil_1_schliessdruck) - (C.L.bremse_UeVentil_1_schliessdruck) / (L.L.bremse_p_Tank01) * (L.L.bremse_p_leitung01) + (C.L.bremse_UeVentil_1_oeffnungsdruck) - 200000000000000 / 0 max sqrt (S.L.bremse_A_UeVentil_1)

    (C.L.bremse_UeVentil_2_oeffnungsdruck) (C.L.bremse_UeVentil_2_schliessdruck) - (C.L.bremse_UeVentil_2_schliessdruck) / (L.L.bremse_p_Tank02) * (L.L.bremse_p_leitung01) + (C.L.bremse_UeVentil_2_oeffnungsdruck) - 200000000000000 / 0 max sqrt (S.L.bremse_A_UeVentil_2)

    (C.L.bremse_UeVentil_3_oeffnungsdruck) (C.L.bremse_UeVentil_3_schliessdruck) - (C.L.bremse_UeVentil_3_schliessdruck) / (L.L.bremse_p_Tank03) * (L.L.bremse_p_leitung02) + (C.L.bremse_UeVentil_3_oeffnungsdruck) - 200000000000000 / 0 max sqrt (S.L.bremse_A_UeVentil_3)

    (C.L.bremse_UeVentil_4_oeffnungsdruck) (C.L.bremse_UeVentil_4_schliessdruck) - (C.L.bremse_UeVentil_4_schliessdruck) / (L.L.bremse_p_Tank04) * (L.L.bremse_p_leitung02) + (C.L.bremse_UeVentil_4_oeffnungsdruck) - 200000000000000 / 0 max sqrt (S.L.bremse_A_UeVentil_4)

'#################################################################
'    Testleck in Kreis 2 beim Betätigen des Warnblinkers:

'    (L.L.lights_sw_warnblinker)
'    {if}
'        (L.L.bremse_p_Tank02) s1
'        (L.L.bremse_p_luft) s2
'        (C.L.bremse_V_Tank02) s3
'        1000000 s4
'        (C.L.bremse_A_Leck) s5
'
'        (M.L.bremse_druckausgleich)
'
'        l1 (S.L.bremse_p_Tank02)
'    {endif}
'
'    Testleck in Kreis 3 beim Betätigen der Hupe:
'
'    (L.L.cockpit_hupe)
'    {if}
'        (L.L.bremse_p_Tank03) s1
'        (L.L.bremse_p_luft) s2
'        (C.L.bremse_V_Tank03) s3
'        1000000 s4
'        (C.L.bremse_A_Leck) s5
'
'        (M.L.bremse_druckausgleich)
'
'        l1 (S.L.bremse_p_Tank03)
'    {endif}

'#################################################################    
'Kreise 1+2
'#################################################################    

'    Druckausgleich in Bremskreis 1 und 2 bei geöffneten Überstromventilen 1 und 2:

    (L.L.bremse_A_UeVentil_1) 0 > (L.L.bremse_A_UeVentil_2) 0 > &&
    {if}
    
        (L.L.bremse_p_Tank01) s1
        (L.L.bremse_p_Tank02) s2
        (C.L.bremse_V_Tank01) s3
        (C.L.bremse_V_Tank02) s4
        (L.L.bremse_A_UeVentil_1) (L.L.bremse_A_UeVentil_2) min s5    
        
        (M.L.bremse_druckausgleich)

        l1 (S.L.bremse_p_Tank01)
        l2 (S.L.bremse_p_Tank02)

    {endif}


'    Befüllen von Bremskreis 1, mit Rückschlagventil gesichert

    (L.L.bremse_A_UeVentil_1) 0 > (L.L.bremse_p_leitung01) (L.L.bremse_p_Tank01) > &&

    {if}

'        Druckausgleich Füllleitung - Bremskreis 1:
        
        (L.L.bremse_p_leitung01) s1
        (L.L.bremse_p_Tank01) s2
        (C.L.bremse_V_leitung01) s3
        (C.L.bremse_V_Tank01) s4
        (L.L.bremse_A_UeVentil_1) s5    
        
        (M.L.bremse_druckausgleich)

        l1 (S.L.bremse_p_leitung01)
        l2 (S.L.bremse_p_Tank01)


    {endif}    

'    Befüllen von Bremskreis 2, mit Rückschlagventil gesichert

    (L.L.bremse_A_UeVentil_2) 0 > (L.L.bremse_p_leitung01) (L.L.bremse_p_Tank02) > &&
    {if}

'        Druckausgleich Füllleitung - Bremskreis 2:

        (L.L.bremse_p_leitung01) s1
        (L.L.bremse_p_Tank02) s2
        (C.L.bremse_V_leitung01) s3
        (C.L.bremse_V_Tank02) s4
        (L.L.bremse_A_UeVentil_2) s5    
        
        (M.L.bremse_druckausgleich)

        l1 (S.L.bremse_p_leitung01)
        l2 (S.L.bremse_p_Tank02)
        

    {endif}

'#################################################################    
'Kreise 3+4
'#################################################################    

'Füllen der Fülleitung für die Kreise 3+4 aus den Behältern 1 und 2 (jeweils dem mit dem höheren Druck), mit Rückschlagventil gesichert:


    (L.L.bremse_p_Tank01) (L.L.bremse_p_Tank02) >
    {if}
        
        (L.L.bremse_p_Tank01) (L.L.bremse_p_leitung02) >
        {if}
'            Druckausgleich Bremskreis 1 - Füllleitung Kreis 3+4

            (L.L.bremse_p_Tank01) s1
            (L.L.bremse_p_leitung02) s2
            (C.L.bremse_V_Tank01) s3
            (C.L.bremse_V_leitung02) s4
            (C.L.bremse_A_Rueckschlagventil_1) s5    
        
            (M.L.bremse_druckausgleich)

            l1 (S.L.bremse_p_Tank01)
            l2 (S.L.bremse_p_leitung02)
        {endif}
    {else}    
        (L.L.bremse_p_Tank02) (L.L.bremse_p_leitung02) >
        {if}

'            Druckausgleich Bremskreis 2 - Füllleitung Kreis 3+4
        
            (L.L.bremse_p_Tank02) s1
            (L.L.bremse_p_leitung02) s2
            (C.L.bremse_V_Tank02) s3
            (C.L.bremse_V_leitung02) s4
            (C.L.bremse_A_Rueckschlagventil_1) s5    
        
            (M.L.bremse_druckausgleich)

            l1 (S.L.bremse_p_Tank02)
            l2 (S.L.bremse_p_leitung02)
        {endif}
    {endif}


    
'    Druckausgleich in Bremskreis 3 und 4 bei geöffneten Überstromventilen 3 und 4:

    (L.L.bremse_A_UeVentil_3) 0 > (L.L.bremse_A_UeVentil_4) 0 > &&
    {if}
    
        (L.L.bremse_p_Tank03) s1
        (L.L.bremse_p_Tank04) s2
        (C.L.bremse_V_Tank03) s3
        (C.L.bremse_V_Tank04) s4
        (L.L.bremse_A_UeVentil_3) (L.L.bremse_A_UeVentil_4) min s5    
        
        (M.L.bremse_druckausgleich)

        l1 (S.L.bremse_p_Tank03)
        l2 (S.L.bremse_p_Tank04)

    {endif}



'    Befüllen von Bremskreis 3, mit Rückschlagventil gesichert

    (L.L.bremse_A_UeVentil_3) 0 > (L.L.bremse_p_leitung02) (L.L.bremse_p_Tank03) > &&

    {if}

'        Druckausgleich Füllleitung - Bremskreis 1:
        
        (L.L.bremse_p_leitung02) s1
        (L.L.bremse_p_Tank03) s2
        (C.L.bremse_V_leitung02) s3
        (C.L.bremse_V_Tank03) s4
        (L.L.bremse_A_UeVentil_3) s5    
        
        (M.L.bremse_druckausgleich)

        l1 (S.L.bremse_p_leitung02)
        l2 (S.L.bremse_p_Tank03)


    {endif}    

'    Befüllen von Bremskreis 4, mit Rückschlagventil gesichert

    (L.L.bremse_A_UeVentil_4) 0 > (L.L.bremse_p_leitung02) (L.L.bremse_p_Tank04) > &&
    {if}

'        Druckausgleich Füllleitung - Bremskreis 2:

        (L.L.bremse_p_leitung02) s1
        (L.L.bremse_p_Tank04) s2
        (C.L.bremse_V_leitung02) s3
        (C.L.bremse_V_Tank04) s4
        (L.L.bremse_A_UeVentil_4) s5    
        
        (M.L.bremse_druckausgleich)

        l1 (S.L.bremse_p_leitung02)
        l2 (S.L.bremse_p_Tank04)
        

    {endif}
'#########################################################################


'    Haltestellenbremse
'    Setzen des Zieldruckes

    (L.L.bremse_halte)
    {if}
        (C.L.bremse_pmax_halte) (L.L.bremse_p_Tank01) min (S.L.bremse_zieldruck_halte)
    {else}
        100000 (S.L.bremse_zieldruck_halte)
    {endif}    


'    Setzen des Zieldrucks der Betriebsbremse für Kreis 1 (HA)

    (L.L.bremse_luft) (L.L.bremse_p_tank01) * 1.1 * 100000 + (S.L.bremse_zieldruck_BBA)


'    Setzen des Bremszylinderzieldruckes HA (Fuß- und Haltestellenbremse):
    
    (L.L.bremse_zieldruck_BBA) (L.L.bremse_zieldruck_halte) max (S.L.bremse_zieldruck_HA) (S.L.bremse_zieldruck_HA_R) (S.L.bremse_zieldruck_HA_L)

'    Setzen des Zustands des Wechselventils Fußbremse <> Haltestellenbremse
'    0 = Fußbremse, 1= Haltestellenbremse
    
    (L.L.bremse_zieldruck_BBA) (L.L.bremse_p_brzyl_HA) >
    {if}
        0 (S.L.bremse_wechselventil_HA)
    {endif}
    
        (L.L.bremse_zieldruck_halte) (L.L.bremse_zieldruck_BBA) >
    {if}
        1 (S.L.bremse_wechselventil_HA)
    {endif}



'    Setzen des Bremszylinderzieldruckes VA:
    
    (L.L.bremse_luft) (L.L.bremse_p_tank02) * 1.1 * 100000 +  (S.L.bremse_zieldruck_VA) (S.L.bremse_zieldruck_VA_R) (S.L.bremse_zieldruck_VA_L)


'    Setzen des Bremszylinderzieldruckes FBA (mit Überlastschutz)


    1 (L.L.bremse_feststell_sw) - (L.L.bremse_p_tank03) * 1.1 * 100000 + s1
    
    (L.L.bremse_zieldruck_HA) l1 max (S.L.bremse_zieldruck_FBA)



'    ABS-Regelung

'    Ist ABS überhaupt vorhanden und aktiv?


    (C.L.bremse_ABS) (L.L.elec_busbar_main) &&
    
    {if}
'        Berechnen der Referenzdrehzahl
'        Umrechnungsfaktor Geschwindigkeit (km/h) auf Raddrehzahl (1/min) = 5.64 bei Raddurchmesser 94cm

        (L.L.Velocity_Ground) 5.64 * (S.L.bremse_ABS_referenzdrehzahl) s0

'        Übersteigt die Drehzahldifferenz einen kritischen Wret, dann den entsprechenden Bremszylinder entlüften
        
        l0 (L.L.Wheel_RotationSpeed_0_R) - 10 >
        (L.L.Velocity_Ground) 6 > &&
        {if}
            (L.L.bremse_ABS_eingriff_0R) !
            {if}
                (T.L.ev_bremse_ABS_0R_on)
            {endif}
            100000 (S.L.bremse_zieldruck_VA_R)
            1 (S.L.bremse_ABS_eingriff_0R)
        {else}
            (L.L.bremse_ABS_eingriff_0R)
            {if}
                (T.L.ev_bremse_ABS_0R_off)
            {endif}
            0 (S.L.bremse_ABS_eingriff_0R)
        {endif}

        l0 (L.L.Wheel_RotationSpeed_0_L) - 10 >
        (L.L.Velocity_Ground) 6 > &&
        {if}
            (L.L.bremse_ABS_eingriff_0L) !
            {if}
                (T.L.ev_bremse_ABS_0L_on)
            {endif}
            100000 (S.L.bremse_zieldruck_VA_L)
            1 (S.L.bremse_ABS_eingriff_0L)
        {else}
            (L.L.bremse_ABS_eingriff_0L)
            {if}
                (T.L.ev_bremse_ABS_0L_off)
            {endif}
            0 (S.L.bremse_ABS_eingriff_0L)
        {endif}

        l0 (L.L.Wheel_RotationSpeed_1_R) - 10 >
        (L.L.Velocity_Ground) 6 > &&
        {if}
            (L.L.bremse_ABS_eingriff_1R) !
            {if}
                (T.L.ev_bremse_ABS_1R_on)
            {endif}
            100000 (S.L.bremse_zieldruck_HA_R)
            1 (S.L.bremse_ABS_eingriff_1R)
        {else}
            (L.L.bremse_ABS_eingriff_1R)
            {if}
                (T.L.ev_bremse_ABS_1R_off)
            {endif}
            0 (S.L.bremse_ABS_eingriff_1R)
        {endif}

        l0 (L.L.Wheel_RotationSpeed_1_L) - 10 >
        (L.L.Velocity_Ground) 6 > &&
        {if}
            (L.L.bremse_ABS_eingriff_1L) !
            {if}
                (T.L.ev_bremse_ABS_1L_on)
            {endif}
            100000 (S.L.bremse_zieldruck_HA_L)
            1 (S.L.bremse_ABS_eingriff_1L)
        {else}
            (L.L.bremse_ABS_eingriff_1L)
            {if}
                (T.L.ev_bremse_ABS_1L_off)
            {endif}
            0 (S.L.bremse_ABS_eingriff_1L)
        {endif}

        (L.L.bremse_ABS_eingriff_0R)
        (L.L.bremse_ABS_eingriff_0L) ||
        (L.L.bremse_ABS_eingriff_1R) ||
        (L.L.bremse_ABS_eingriff_1L) ||
        (L.L.bremse_ABS_selftest) ||
        (S.L.bremse_ABS_eingriff)

    {else}
        0 (S.L.bremse_ABS_eingriff)

    {endif}

'    ABS-Selbsttest erfolgreich bei V>6km/h
    (L.L.velocity) 6 > (L.L.bremse_ABS_selftest) &&
    {if}
        0 (S.L.bremse_ABS_selftest)
    {endif}

'    a1) Hinterachse rechts

'    Ist geforderter Bremsdruck höher als der aktuelle?
    (L.L.bremse_zieldruck_HA_R) (L.L.bremse_p_brzyl_HA_R) >
    {if}
        (L.L.bremse_zieldruck_HA_R) (L.L.bremse_p_brzyl_HA_R) - 20000000000 / (S.L.bremse_A_BrVentil_HA_R)

'        Berechnung des Massenstroms aus Behälter 1 zum Bremszylinder HA

        (L.L.bremse_p_Tank01) s1
        (L.L.bremse_p_Brzyl_HA_R) s2
        (C.L.bremse_V_tank01) s3
        (C.L.bremse_V_Brzyl_HA_R) s4

'        Ventilwahl abhängig von der Stellung des Wechselventils
        (L.L.bremse_wechselventil_HA)
        {if}
            (L.L.bremse_A_BrVentil_HA_R) 2 * s5
        {else}
            (L.L.bremse_A_BrVentil_HA_R) s5
        {endif}

        (M.L.bremse_druckausgleich)
        l1 (S.L.bremse_p_Tank01)
        l2 (S.L.bremse_p_Brzyl_HA_R)

    {else}
        (L.L.bremse_p_brzyl_HA_R) (L.L.bremse_zieldruck_HA_R) - sqrt 20000000 / (S.L.bremse_A_BrVentil_HA_R)

'        Berechnung des Massenstroms aus Bremszylinder HA ins Freie

        (L.L.bremse_p_Brzyl_HA_R) s1
        (L.L.bremse_p_luft) s2
        (C.L.bremse_V_brzyl_HA_R) s3
        1 s4

'        Ventilwahl abhängig von der Stellung des Wechselventils
        (L.L.bremse_wechselventil_HA)
        {if}
            (L.L.bremse_A_BrVentil_HA_R) 2 * s5
        {else}
            (L.L.bremse_A_BrVentil_HA_R) s5
        {endif}

        (M.L.bremse_druckausgleich)

        l1 (S.L.bremse_p_Brzyl_HA_R)
        
    {endif}

'    a2) Hinterachse links

'    Ist geforderter Bremsdruck höher als der aktuelle?
    (L.L.bremse_zieldruck_HA_L) (L.L.bremse_p_brzyl_HA_L) >
    {if}
        (L.L.bremse_zieldruck_HA_L) (L.L.bremse_p_brzyl_HA_L) - 20000000000 / (S.L.bremse_A_BrVentil_HA_L)

'        Berechnung des Massenstroms aus Behälter 1 zum Bremszylinder HA

        (L.L.bremse_p_Tank01) s1
        (L.L.bremse_p_Brzyl_HA_L) s2
        (C.L.bremse_V_tank01) s3
        (C.L.bremse_V_Brzyl_HA_L) s4

'        Ventilwahl abhängig von der Stellung des Wechselventils
        (L.L.bremse_wechselventil_HA)
        {if}
            (L.L.bremse_A_BrVentil_HA_L) 2 * s5
        {else}
            (L.L.bremse_A_BrVentil_HA_L) s5
        {endif}

        (M.L.bremse_druckausgleich)
        l1 (S.L.bremse_p_Tank01)
        l2 (S.L.bremse_p_Brzyl_HA_L)

    {else}
        (L.L.bremse_p_brzyl_HA_L) (L.L.bremse_zieldruck_HA_L) - sqrt 20000000 / (S.L.bremse_A_BrVentil_HA_L)

'        Berechnung des Massenstroms aus Bremszylinder HA ins Freie

        (L.L.bremse_p_Brzyl_HA_L) s1
        (L.L.bremse_p_luft) s2
        (C.L.bremse_V_brzyl_HA_L) s3
        1 s4

'        Ventilwahl abhängig von der Stellung des Wechselventils
        (L.L.bremse_wechselventil_HA)
        {if}
            (L.L.bremse_A_BrVentil_HA_L) 2 * s5
        {else}
            (L.L.bremse_A_BrVentil_HA_L) s5
        {endif}

        (M.L.bremse_druckausgleich)

        l1 (S.L.bremse_p_Brzyl_HA_L)
        
    {endif}

'    Bildung des Mittelwertes für weitere Berechnungen
    (L.L.bremse_p_Brzyl_HA_R) (L.L.bremse_p_Brzyl_HA_L) + 2 / (S.L.bremse_p_Brzyl_HA)

'    b1) Vorderachse rechts
'    Ist geforderter Bremsdruck höher als der aktuelle?

    (L.L.bremse_zieldruck_VA_R) (L.L.bremse_p_brzyl_VA_R) >
    {if}
        (L.L.bremse_zieldruck_VA_R) (L.L.bremse_p_brzyl_VA_R) - 20000000000 / (S.L.bremse_A_BrVentil_VA_R)

'        Berechnung des Massenstroms aus Behälter 2 zum Bremszylinder VA

        (L.L.bremse_p_Tank02) s1
        (L.L.bremse_p_Brzyl_VA_R) s2
        (C.L.bremse_V_tank02) s3
        (C.L.bremse_V_Brzyl_VA_R) s4
        (L.L.bremse_A_BrVentil_VA_R) s5

        (M.L.bremse_druckausgleich)

        l1 (S.L.bremse_p_Tank02)
        l2 (S.L.bremse_p_Brzyl_VA_R)

    {else}
        (L.L.bremse_p_brzyl_VA_R) (L.L.bremse_zieldruck_VA_R) - sqrt 20000000 / (S.L.bremse_A_BrVentil_VA_R)

'        Berechnung des Massenstroms aus Bremszylinder VA ins Freie
    
        (L.L.bremse_p_Brzyl_VA_R) s1
        (L.L.bremse_p_luft) s2
        (C.L.bremse_V_brzyl_VA_R) s3
        1000000 s4
        (L.L.bremse_A_BrVentil_VA_R) s5

        (M.L.bremse_druckausgleich)

        l1 (S.L.bremse_p_Brzyl_VA_R)
        
    {endif}

'    b2) Vorderachse links
'    Ist geforderter Bremsdruck höher als der aktuelle?

    (L.L.bremse_zieldruck_VA_L) (L.L.bremse_p_brzyl_VA_L) >
    {if}
        (L.L.bremse_zieldruck_VA_L) (L.L.bremse_p_brzyl_VA_L) - 20000000000 / (S.L.bremse_A_BrVentil_VA_L)

'        Berechnung des Massenstroms aus Behälter 2 zum Bremszylinder VA

        (L.L.bremse_p_Tank02) s1
        (L.L.bremse_p_Brzyl_VA_L) s2
        (C.L.bremse_V_tank02) s3
        (C.L.bremse_V_Brzyl_VA_L) s4
        (L.L.bremse_A_BrVentil_VA_L) s5

        (M.L.bremse_druckausgleich)

        l1 (S.L.bremse_p_Tank02)
        l2 (S.L.bremse_p_Brzyl_VA_L)

    {else}
        (L.L.bremse_p_brzyl_VA_L) (L.L.bremse_zieldruck_VA_L) - sqrt 20000000 / (S.L.bremse_A_BrVentil_VA_L)

'        Berechnung des Massenstroms aus Bremszylinder VA ins Freie
    
        (L.L.bremse_p_Brzyl_VA_L) s1
        (L.L.bremse_p_luft) s2
        (C.L.bremse_V_brzyl_VA_L) s3
        1000000 s4
        (L.L.bremse_A_BrVentil_VA_L) s5

        (M.L.bremse_druckausgleich)

        l1 (S.L.bremse_p_Brzyl_VA_L)
        
    {endif}

'    Bildung des Mittelwertes für weitere Berechnungen
    (L.L.bremse_p_Brzyl_VA_R) (L.L.bremse_p_Brzyl_VA_L) + 2 / (S.L.bremse_p_Brzyl_VA)

'    c) Federspeicherbremse
'    Ist geforderter Lösedruck höher als der aktuelle?

    (L.L.bremse_zieldruck_FBA) (L.L.bremse_p_brzyl_FBA) >
    {if}
        (L.L.bremse_zieldruck_FBA) (L.L.bremse_p_brzyl_FBA) - 10000000000 / (S.L.bremse_A_BrVentil_FBA)

'        Berechnung des Massenstroms aus Behälter 2 zum Bremszylinder FBA

        (L.L.bremse_p_Tank03) s1
        (L.L.bremse_p_Brzyl_FBA) s2
        (C.L.bremse_V_tank03) s3
        (C.L.bremse_V_Brzyl_FBA) s4
        (L.L.bremse_A_BrVentil_FBA) s5

        (M.L.bremse_druckausgleich)

        l1 (S.L.bremse_p_Tank03)
        l2 (S.L.bremse_p_Brzyl_FBA)

    {else}
        (L.L.bremse_p_brzyl_FBA) (L.L.bremse_zieldruck_FBA) - sqrt 10000000 / (S.L.bremse_A_BrVentil_FBA)

'        Berechnung des Massenstroms aus Bremszylinder FBA ins Freie
    
        (L.L.bremse_p_Brzyl_FBA) s1
        (L.L.bremse_p_luft) s2
        (C.L.bremse_V_brzyl_FBA) s3
        1000000 s4
        (L.L.bremse_A_BrVentil_FBA) s5

        (M.L.bremse_druckausgleich)

        l1 (S.L.bremse_p_Brzyl_FBA)
        
    {endif}






'    Überströmventile im Vierkreisschutzventil:


    (L.L.bremse_p_Tank01) (C.L.bremse_UeVentil_1_schliessdruck) < (L.L.bremse_UeVentil_1) &&
    {if}
        0 (S.L.bremse_UeVentil_1)
    {endif}
    (L.L.bremse_p_leitung01) (C.L.bremse_UeVentil_1_oeffnungsdruck) >
    {if}
        1 (S.L.bremse_UeVentil_1)
    {endif}


    (L.L.bremse_p_Tank02) (C.L.bremse_UeVentil_2_schliessdruck) < (L.L.bremse_UeVentil_2) &&
    {if}
        0 (S.L.bremse_UeVentil_2)
    {endif}    
    (L.L.bremse_p_leitung01) (C.L.bremse_UeVentil_2_oeffnungsdruck) >
    {if}
        1 (S.L.bremse_UeVentil_2)
    {endif}




'    Ein- und Abschaltdrücke des Druckreglers:

    (L.L.bremse_p_leitung01) 950000 > (L.L.bremse_kompressor) 1 = &&
    {if}
        (T.L.ev_kompressor_aus)
        0 (S.L.bremse_kompressor)
    {endif}

    (L.L.bremse_p_leitung01) 800000 <  (L.L.bremse_kompressor) 0 = &&
    {if}
        (T.L.ev_kompressor_ein)
        1 (S.L.bremse_kompressor)
    {endif}


'**************************************************
'zawieszenie_dziury
'**************************************************

(L.L.antrieb_getr_gangwahl) 0 =
(L.L.throttle) 0.2 > &&

{if}

  (L.L.Axle_Springfactor_0_R) (L.S.Timegap) 2 * - 0.1125 max (S.L.Axle_Springfactor_0_R)
  (L.L.Axle_Springfactor_1_R) (L.S.Timegap) 2 * - 0.1125 max (S.L.Axle_Springfactor_1_R)
  (L.L.Axle_Springfactor_0_L) (L.S.Timegap) 2 * - 0.1125 max (S.L.Axle_Springfactor_0_L)
  (L.L.Axle_Springfactor_1_L) (L.S.Timegap) 2 * - 0.1125 max (S.L.Axle_Springfactor_1_L)  
  (L.S.Timegap) 3 *
  (L.L.Axle_Springfactor_0_R) (L.S.Timegap) 2 * - 0.1125 max (S.L.Axle_Springfactor_0_R)
  (L.L.Axle_Springfactor_1_R) (L.S.Timegap) 2 * - 0.1125 max (S.L.Axle_Springfactor_1_R)
  (L.L.Axle_Springfactor_0_L) (L.S.Timegap) 2 * - 0.1125 max (S.L.Axle_Springfactor_0_L)
  (L.L.Axle_Springfactor_1_L) (L.S.Timegap) 2 * - 0.1125 max (S.L.Axle_Springfactor_1_L)  
  (L.S.Timegap) 3 *
  (L.L.Axle_Springfactor_0_R) (L.S.Timegap) 2 * - 0.1125 max (S.L.Axle_Springfactor_0_R)
  (L.L.Axle_Springfactor_1_R) (L.S.Timegap) 2 * - 0.1125 max (S.L.Axle_Springfactor_1_R)
  (L.L.Axle_Springfactor_0_L) (L.S.Timegap) 2 * - 0.1125 max (S.L.Axle_Springfactor_0_L)
  (L.L.Axle_Springfactor_1_L) (L.S.Timegap) 2 * - 0.1125 max (S.L.Axle_Springfactor_1_L)  
  (L.S.Timegap) 10 * + 0.5 min
  (L.L.Axle_Springfactor_0_R) (L.S.Timegap) 2 * + 0.350 max (S.L.Axle_Springfactor_0_R)
  (L.L.Axle_Springfactor_1_R) (L.S.Timegap) 2 * + 0.350 max (S.L.Axle_Springfactor_1_R)
  (L.L.Axle_Springfactor_0_L) (L.S.Timegap) 2 * + 0.350 max (S.L.Axle_Springfactor_0_L)
  (L.L.Axle_Springfactor_1_L) (L.S.Timegap) 2 * + 0.350 max (S.L.Axle_Springfactor_1_L)  
  {endif}
{end}



{macro:bremse_levelcontrol}

'    Federweg Neutralposition: -0.105

'Vorne rechts

    (C.L.bremse_level_setpoint) (L.L.Axle_Suspension_0_R) >
    {if}
'        Rückschlagventil der Luftfederung:
        (L.L.bremse_p_Tank04) (L.L.bremse_p_balg_0_R) >
        {if}
'            Berechnung des Massenstroms aus Behälter 4 zum Federbalg 0 R

            (L.L.bremse_p_Tank04) s1
            (L.L.bremse_p_balg_0_R) s2
            (C.L.bremse_V_tank04) s3
            (C.L.bremse_V_balg_0_R) s4
            (L.L.Axle_Suspension_0_R) (C.L.bremse_level_setpoint) - 70000 / abs s5

            (M.L.bremse_druckausgleich)

            l1 (S.L.bremse_p_Tank04)
            l2 (S.L.bremse_p_balg_0_R) 460000 / 0.5 max (S.L.Axle_Springfactor_0_R)
        {endif}
    {else}
'        Berechnung des Massenstroms aus Federbalg 0 R ins Freie

        (L.L.bremse_p_balg_0_R) s1
        (L.L.bremse_p_luft) s2
        (C.L.bremse_V_balg_0_R) s3
        1000000 s4
        (L.L.Axle_Suspension_0_R) (C.L.bremse_level_setpoint) - 70000 / abs s5

        (M.L.bremse_druckausgleich)

        l1 (S.L.bremse_p_balg_0_R) 460000 / 0.5 max (S.L.Axle_Springfactor_0_R)
    {endif}

'Vorne links

    (C.L.bremse_level_setpoint) (L.L.Axle_Suspension_0_L) >
    {if}    
'        Rückschlagventil der Luftfederung:
        (L.L.bremse_p_Tank04) (L.L.bremse_p_balg_0_L) >
        {if}    
'            Berechnung des Massenstroms aus Behälter 4 zum Federbalg 0 L

            (L.L.bremse_p_Tank04) s1
            (L.L.bremse_p_balg_0_L) s2
            (C.L.bremse_V_tank04) s3
            (C.L.bremse_V_balg_0_L) s4
            (L.L.Axle_Suspension_0_L) (C.L.bremse_level_setpoint) - 70000 / abs s5

            (M.L.bremse_druckausgleich)

            l1 (S.L.bremse_p_Tank04)
            l2 (S.L.bremse_p_balg_0_L) 460000 / 0.5 max (S.L.Axle_Springfactor_0_L)
        {endif}
    {else}
'        Berechnung des Massenstroms aus Federbalg 0 L ins Freie

        (L.L.bremse_p_balg_0_L) s1
        (L.L.bremse_p_luft) s2
        (C.L.bremse_V_balg_0_L) s3
        1000000 s4
        (L.L.Axle_Suspension_0_L) (C.L.bremse_level_setpoint) - 70000 / abs s5

        (M.L.bremse_druckausgleich)

        l1 (S.L.bremse_p_balg_0_L) 460000 / 0.5 max (S.L.Axle_Springfactor_0_L)
    {endif}


'Hinten rechts

    (C.L.bremse_level_setpoint) (L.L.Axle_Suspension_1_R) >
    {if}
'        Rückschlagventil der Luftfederung:
        (L.L.bremse_p_Tank04) (L.L.bremse_p_balg_1_R) >
        {if}
'            Berechnung des Massenstroms aus Behälter 4 zum Federbalg 1 R

            (L.L.bremse_p_Tank04) s1
            (L.L.bremse_p_balg_1_R) s2
            (C.L.bremse_V_tank04) s3
            (C.L.bremse_V_balg_1_R) s4
            (L.L.Axle_Suspension_1_R) (C.L.bremse_level_setpoint) - 70000 / abs s5

            (M.L.bremse_druckausgleich)

            l1 (S.L.bremse_p_Tank04)
            l2 (S.L.bremse_p_balg_1_R) 460000 / 0.5 max (S.L.Axle_Springfactor_1_R)
        {endif}
    {else}
'        Berechnung des Massenstroms aus Federbalg 0 R ins Freie

        (L.L.bremse_p_balg_1_R) s1
        (L.L.bremse_p_luft) s2
        (C.L.bremse_V_balg_1_R) s3
        1000000 s4
        (L.L.Axle_Suspension_1_R) (C.L.bremse_level_setpoint) - 70000 / abs s5

        (M.L.bremse_druckausgleich)

        l1 (S.L.bremse_p_balg_1_R) 460000 / 0.5 max (S.L.Axle_Springfactor_1_R)
    {endif}

'Vorne links

    (C.L.bremse_level_setpoint) (L.L.Axle_Suspension_1_L) >
    {if}    
'        Rückschlagventil der Luftfederung:
        (L.L.bremse_p_Tank04) (L.L.bremse_p_balg_1_L) >
        {if}    
'            Berechnung des Massenstroms aus Behälter 4 zum Federbalg 1 L

            (L.L.bremse_p_Tank04) s1
            (L.L.bremse_p_balg_1_L) s2
            (C.L.bremse_V_tank04) s3
            (C.L.bremse_V_balg_1_L) s4
            (L.L.Axle_Suspension_1_L) (C.L.bremse_level_setpoint) - 70000 / abs s5

            (M.L.bremse_druckausgleich)

            l1 (S.L.bremse_p_Tank04)
            l2 (S.L.bremse_p_balg_1_L) 460000 / 0.5 max (S.L.Axle_Springfactor_1_L)
        {endif}
    {else}
'        Berechnung des Massenstroms aus Federbalg 0 L ins Freie

        (L.L.bremse_p_balg_1_L) s1
        (L.L.bremse_p_luft) s2
        (C.L.bremse_V_balg_1_L) s3
        1000000 s4
        (L.L.Axle_Suspension_1_L) (C.L.bremse_level_setpoint) - 70000 / abs s5

        (M.L.bremse_druckausgleich)

        l1 (S.L.bremse_p_balg_1_L) 460000 / 0.5 max (S.L.Axle_Springfactor_1_L)
    {endif}

'##################TESTKRAM####################################

'    (L.L.cockpit_hupe)
'    {if}
'        100000 (S.L.bremse_p_balg_0_R) (S.L.bremse_p_balg_0_L) (S.L.bremse_p_balg_1_R) (S.L.bremse_p_balg_1_L)
'    {endif}
'
'    (L.L.Axle_Springfactor_0_R) 10.97 * (S.L.gesamtmasse)

'##################/TESTKRAM####################################


{end}


{macro:bremse_druckausgleich}
    
'    l1    Druck im Behälter 1
'    l2    Druck im Behälter 2
'    l3    Volumen Behälter 1
'    l4    Volumen Behälter 2
'    l5    Querschnittsfläche Verbindungsleitung
'...
'    l6    temporäre Variable, die die maximale Zeitkonstante enthält

    l1 l2 + 2 / l1 l2 - s0 * (C.L.RT_Luft) / abs sqrt l0 sgn * l5 * (C.L.RT_Luft) * s0

    l1 l2 - 1 l3 / 1 l4 / + l0 * / s6

    (L.S.Timegap) l6 min   l0     * l4 / l2 + s2
    (L.S.Timegap) l6 min   l0 /-/ * l3 / l1 + s1
{end}

{macro:bremse_druckluftsound}

'    Setzen der Druckdifferenz zur entsprechenden Sounduntermalung:

    (L.L.bremse_zieldruck_VA) (L.L.bremse_p_brzyl_VA) - s1
    (L.L.bremse_wechselventil_HA) !
    {if}
        (L.L.bremse_zieldruck_HA) (L.L.bremse_p_brzyl_HA) - s2
    {else}
        0 s2
    {endif}
    l1 l2 min (S.L.bremse_zieldruckdifferenz)


    (L.L.bremse_p_brzyl_VA) (L.L.bremse_last_p_Brzyl) max s1
    (L.L.bremse_wechselventil_HA) !
    {if}
        (L.L.bremse_p_brzyl_HA) (L.L.bremse_last_p_brzyl) max s2
    {else}
        0 s2
    {endif}
    l1 l2 max (S.L.bremse_last_p_Brzyl)




    (L.L.bremse_zieldruckdifferenz) -40000 <
    {if}
        (L.L.bremse_loesezischbereitschaft) (L.L.bremse_loesezischzeit) 0.6 > &&
        {if}
            (L.L.bremse_last_p_Brzyl) (S.L.bremse_zischvolume)
            (T.L.ev_loesezischen)
            0 (S.L.bremse_loesezischzeit)
        {endif}
        0 (S.L.bremse_loesezischbereitschaft)
    {else}
        (L.L.bremse_loesezischbereitschaft) !
        {if}
            1 (S.L.bremse_loesezischbereitschaft)
            (L.L.bremse_p_brzyl_VA) s1
            (L.L.bremse_wechselventil_HA) !
            {if}
                (L.L.bremse_p_brzyl_HA) s2
            {endif}
                l1 l2 max (S.L.bremse_last_p_Brzyl)
        {endif}
'        Inkrementierung der vergangenen Zeit seit letztem Lösezischen:
        (L.L.bremse_loesezischzeit) (L.S.Timegap) + (S.L.bremse_loesezischzeit)
    {endif}


    (L.L.bremse_zieldruckdifferenz) 100000 >
    {if}
        (L.L.bremse_bremszischbereitschaft)
        {if}
            (T.L.ev_bremszischen)
        {endif}
        0 (S.L.bremse_bremszischbereitschaft)
    {else}
        1 (S.L.bremse_bremszischbereitschaft)
    {endif}


'    Bremshupen Hinterachse
'    Bestimmen der Gesamtlautstärke je nach Wagennummer:
    (L.L.bremse_quietsch_volume) -1.5 <
    {if}
        (L.$.number) $StrToFloat 1000 * sin (S.L.bremse_quietsch_volume)
    {endif}

'    Triggern des Sounds jach Radumdrehung:
    (L.L.Wheel_Rotation_1_R) 6.28318 / (L.L.Wheel_Rotation_1_R) 6.28318 / trunc - 0.5 >
    {if}
        (L.L.bremse_hupsound) !
        {if}    
            (T.L.ev_bremse_hup)
            1 (S.L.bremse_hupsound)
        {endif}
    {else}
        0 (S.L.bremse_hupsound)
    {endif}


{end}

(Ten post był ostatnio modyfikowany: 05.09.2013 19:28 przez Nick™.)
05.09.2013 18:10
Szukaj postów Cytat
Odpowiedź 




Użytkownicy przeglądający ten wątek: 1 gości

Forum Strefa-OMSI.pl

Tematyczne Forum dotyczące najpopularniejszego symulatora autobusu - OMSI. Zapraszamy do rejestracji i aktywnego udziału w Społeczności.

Strona wykorzystuje pliki cookies. Korzystanie z witryny oznacza zgodę na ich zapis lub odczyt wg ustawień przeglądarki.

Współpracujemy z:

Polecamy także: