C Schwerlastmodell SW/0: Unterschied zwischen den Versionen

Aus ITP
Zur Navigation springen Zur Suche springen
Zeile 23: Zeile 23:


== Block SW0 ==
== Block SW0 ==
<nowiki>#define sw0</nowiki>
!*!Label SW/0
let#pv  133    $ kN/m
let#ph  23.27/#alpha  $ kN/m
let#ez  -2.558


let#x   #dx
let#c   5.3
let#a  15
let#l  #l1+#l2 $ 37m
let#n  40      $ Anzahl der Laststellungen
let#dx (#l+#c+2*#a-1)/#n  $ 1.78m


loop#i 49
let#x  #dx    $ Startwert
        if (#x<#a) $ nur erster Teil und der auch nur teilweise drauf
 
                 let#lfnr #lfnr+1
!*!Label SW0 Vertikallast e_min
                 lf nr #lfnr typ SW0 bez 'SW0 #text_v #text_y LF #lfnr'
let#ey  0.156-0.083
                 let#l1 #x
let#text 'V: SW/0 e=min'
                 #include last1
let#lf  301
                 let#x #x+#dx
let#ph  0 $ ohne Fliehkräfte
        elseif ((#x<=(#a+#c))&(#x>#a)) $ erster Teil komplett drauf, zweiter Teil noch vollkommen außerhalb
#define sw0
                let#lfnr #lfnr+1
loop#1 #n
                 lf nr #lfnr typ SW0 bez 'SW0 #text_v #text_y LF #lfnr'
if     (#x<#a)     $ nur der erste Teil und dieser auch nicht ganz vollständig
                 let#l1 #a
        lf nr #lf typ 'SW0' bez #text
                 #include last1
                let#aa  0
                 let#x #x+#dx
                 let#ll  #x
        elseif ((#x<=(2*#a+#c))&(#x>#a+#c)) $ zweiter Teil teilweise drauf
                txa Fall 1: x<a
                let#lfnr #lfnr+1
                 txa lf #(#lf,4.0)
                 lf nr #lfnr typ SW0 bez 'SW0 #text_v #text_y LF #lfnr'
                 txa x #(#x,7.3)
                 let#l1 #a
                 stab von 'grp' bis 1    typ 'pzz' pa #pv        a #aa    l #ll    eya #ey[m] eza #ez[m] mess 'S'
                 let#l2 #x-#a-#c
                 stab von 'grp' bis 1    typ 'py'  pa -#ph      a #aa    l #ll    eya #ey[m] eza #ez[m] mess 'S'
                 #include last1
elseif ((#x>#a) & (#x<=(#a+#c))) $ der erste Teil schon komplett drauf, der zweite noch nicht
                 #include last2
        lf nr #lf typ 'SW0' bez #text
                 let#x #x+#dx
                txa Fall 2: x>a & x<=a+c
        elseif ((#x>(2*#a+#c))&(#x<#l)) $ zweiter Teil vollständig  drauf
                 txa lf #(#lf,4.0)
                 $ hier nur theoretisch; diese Bedingung ist hier niemlas erfüllt,
                txa x #(#x,7.3)
                 $ da #l<2*#a+#c
                let#aa  #x-#a
                 let#lfnr #lfnr+1
                 let#ll  #a
                 lf nr #lfnr typ SW0 bez 'SW0 #text_v #text_y LF #lfnr'
                 stab von 'grp' bis 1    typ 'pzz' pa #pv        a #aa    l #ll    eya #ey[m] eza #ez[m] mess 'S'
                 let#l1 #a
                 stab von 'grp' bis 1    typ 'py'  pa -#ph      a #aa    l #ll    eya #ey[m] eza #ez[m] mess 'S'
                 let#l2 #a
elseif ((#x<(2*#a+#c)) & (#x>=(#a+#c))) $ der erste Teil schon komplett drauf, der zweite nur teilweise
                 #include last1
        lf nr #lf typ 'SW0' bez #text
                 #include last2
                txa Fall 3: x>a+c & x<=2a+c
                let#x #x+#dx
                 txa lf #(#lf,4.0)
        elseif ((#x<=(#l+#a))&(#x>#l)) $ erster Teil bereits teilweise wieder runter
                txa x #(#x,7.3)
                 let#lfnr #lfnr+1
                 let#aa  #x-#a
                 lf nr #lfnr typ SW0 bez 'SW0 #text_v #text_y LF #lfnr'
                 let#ll  #a
                 let#l1 #a-(#x-#l)
                stab von 'grp' bis 1    typ 'pzz' pa #pv        a #aa    l #ll    eya #ey[m] eza #ez[m] mess 'S'
                 let#l2 #a
                 stab von 'grp' bis 1    typ 'py'  pa -#ph      a #aa    l #ll    eya #ey[m] eza #ez[m] mess 'S'
                 #include last1ue
                 let#aa  0
                 #include last2
                 let#ll  #x-(#a+#c)
                let#x #x+#dx
                stab von 'grp' bis 1    typ 'pzz' pa #pv        a #aa    l #ll    eya #ey[m] eza #ez[m] mess 'S'
        elseif ((#x<=(#l+#a+#c))&(#x>#l+#a)) $ erster Teil vollkommen drüber, zweiter Teil noch nicht am Ende
                stab von 'grp' bis 1    typ 'py'  pa -#ph      a #aa    l #ll    eya #ey[m] eza #ez[m] mess 'S'
                let#lfnr #lfnr+1
elseif ((#x<#l) & (#x>=(2*#a+#c))) $ beide Teile komplett drauf
                 lf nr #lfnr typ SW0 bez 'SW0 #text_v #text_y LF #lfnr'
        lf nr #lf typ 'SW0' bez #text
                 let#l2 #a
                txa Fall 4: x>=l+2a+c & x<l
                 #include last2
                txa lf #(#lf,4.0)
                 let#x #x+#dx
                 txa x #(#x,7.3)
        else    ((#x<=(#l+#a+#c+#a))&(#x>#l+#a+#c)) $ zweiter Teil nur noch teilweise drauf
                 let#aa  #x-#a
                let#lfnr #lfnr+1
                 let#ll  #a
                 lf nr #lfnr typ SW0 bez 'SW0 #text_v #text_y LF #lfnr'
                stab von 'grp' bis 1   typ 'pzz' pa #pv        a #aa    l #ll    eya #ey[m] eza #ez[m] mess 'S'
                 let#l2 (#a+#c+#a)-(#x-#l)
                 stab von 'grp' bis 1    typ 'py'  pa -#ph      a #aa    l #ll    eya #ey[m] eza #ez[m] mess 'S'
                #include last2ue
                 let#aa  #x-(2*#a+#c)
                let#x #x+#dx
                 let#ll  #a
        endif
                 stab von 'grp' bis 1    typ 'pzz' pa #pv        a #aa    l #ll    eya #ey[m] eza #ez[m] mess 'S'
                 stab von 'grp' bis 1    typ 'py'  pa -#ph      a #aa    l #ll    eya #ey[m] eza #ez[m] mess 'S'
elseif ((#x<(#l+#a)) & (#x>=#l)) $ vorderer Teil nur noch teilweise drauf
        lf nr #lf typ 'SW0' bez #text
                txa Fall 5: x>l & x<=l+a
                txa lf #(#lf,4.0)
                txa x #(#x,7.3)
                let#aa  #x-#a
                 let#ll  #l-#aa
                stab von 'grp' bis 1   typ 'pzz' pa #pv        a #aa    l #ll    eya #ey[m] eza #ez[m] mess 'S'
                 stab von 'grp' bis 1    typ 'py'  pa -#ph      a #aa    l #ll    eya #ey[m] eza #ez[m] mess 'S'
                 let#aa  #x-(2*#a+#c)
                 let#ll  #a
                 stab von 'grp' bis 1    typ 'pzz' pa #pv        a #aa    l #ll    eya #ey[m] eza #ez[m] mess 'S'
                 stab von 'grp' bis 1    typ 'py'  pa -#ph      a #aa    l #ll    eya #ey[m] eza #ez[m] mess 'S'
elseif ((#x<(#l+#a+#c)) & (#x>=#l+#a)) $ nur noch hinterer Teil, der aber komplett
        lf nr #lf typ 'SW0' bez #text
                txa Fall 6: x>l+a+c & x<=l+a
                 txa lf #(#lf,4.0)
                txa x #(#x,7.3)
                 let#aa  #x-(2*#a+#c)
                 let#ll  #aa
                stab von 'grp' bis 1    typ 'pzz' pa #pv        a #aa    l #ll    eya #ey[m] eza #ez[m] mess 'S'
                 stab von 'grp' bis 1    typ 'py'  pa -#ph      a #aa    l #ll    eya #ey[m] eza #ez[m] mess 'S'
else    ((#x<(#l+2*#a+#c)) & (#x>=#l+#a+#c)) $ hinterer Teil nur noch teilweise
        lf nr #lf typ 'SW0' bez #text
                txa Fall 7: x>l+a+c & x<=l+2a+c
                 txa lf #(#lf,4.0)
                txa x #(#x,7.3)
                 let#aa  #x-(2*#a+#c)
                let#ll  #l-#aa
                stab von 'grp' bis 1    typ 'pzz' pa #pv        a #aa    l #ll    eya #ey[m] eza #ez[m] mess 'S'
                stab von 'grp' bis 1    typ 'py'  pa -#ph      a #aa    l #ll    eya #ey[m] eza #ez[m] mess 'S'
endif
        let#lf  #lf+1
        let#x   #x+#dx
endloop
endloop
#enddef
#include sw0


<nowiki>#enddef</nowiki>
<nowiki>#include sw0</nowiki>


[[Kategorie:Bahn]]
[[Kategorie:Bahn]]
[[Kategorie:SOFiLOAD]]
[[Kategorie:SOFiLOAD]]

Version vom 13. Februar 2020, 08:28 Uhr

Allgemeines

Für die meisten Bahnbrücken muss neben dem LM71 auch das Lastmodell SW/0 nachgewiesen werden. Dabei sind je Gleis die zwei möglichen Exzentrizitäten sowie die zwei möglichen Geschwindigkeiten zu untersuchen.

Die nachstehende Grafik zeigt die 7 "Grenzstellungen" der beiden Streckenlasten. Hier kommen die Werkzeuge:

loop

    if
    elseif
    elseif
    ...
    else
    endif

endloop

zum Einsatz.

Bei den logischen Vergleichen muss ganz streng "geklammert" werden!

Grafik

Laststellungen SW/0

Die Phase 1 und 7 muss man üblicherweise nicht so unterteilen. Da sollte es genügen, die volle Länge "a" zu belasten.

Block SW0

!*!Label SW/0 let#pv 133 $ kN/m let#ph 23.27/#alpha $ kN/m let#ez -2.558

let#c 5.3 let#a 15 let#l #l1+#l2 $ 37m let#n 40 $ Anzahl der Laststellungen let#dx (#l+#c+2*#a-1)/#n $ 1.78m

let#x #dx $ Startwert

!*!Label SW0 Vertikallast e_min let#ey 0.156-0.083 let#text 'V: SW/0 e=min' let#lf 301 let#ph 0 $ ohne Fliehkräfte

  1. define sw0

loop#1 #n if (#x<#a) $ nur der erste Teil und dieser auch nicht ganz vollständig

       lf nr #lf typ 'SW0' bez #text
               let#aa  0
               let#ll  #x
               txa Fall 1: x<a
               txa lf #(#lf,4.0)
               txa x #(#x,7.3)
               stab von 'grp' bis 1    typ 'pzz' pa #pv        a #aa    l #ll    eya #ey[m] eza #ez[m] mess 'S'
               stab von 'grp' bis 1    typ 'py'  pa -#ph       a #aa    l #ll    eya #ey[m] eza #ez[m] mess 'S'

elseif ((#x>#a) & (#x<=(#a+#c))) $ der erste Teil schon komplett drauf, der zweite noch nicht

       lf nr #lf typ 'SW0' bez #text
               txa Fall 2: x>a & x<=a+c
               txa lf #(#lf,4.0)
               txa x #(#x,7.3)
               let#aa   #x-#a
               let#ll   #a
               stab von 'grp' bis 1    typ 'pzz' pa #pv        a #aa    l #ll    eya #ey[m] eza #ez[m] mess 'S'
               stab von 'grp' bis 1    typ 'py'  pa -#ph       a #aa    l #ll    eya #ey[m] eza #ez[m] mess 'S'

elseif ((#x<(2*#a+#c)) & (#x>=(#a+#c))) $ der erste Teil schon komplett drauf, der zweite nur teilweise

       lf nr #lf typ 'SW0' bez #text
               txa Fall 3: x>a+c & x<=2a+c
               txa lf #(#lf,4.0)
               txa x #(#x,7.3)
               let#aa   #x-#a
               let#ll   #a
               stab von 'grp' bis 1    typ 'pzz' pa #pv        a #aa    l #ll    eya #ey[m] eza #ez[m] mess 'S'
               stab von 'grp' bis 1    typ 'py'  pa -#ph       a #aa    l #ll    eya #ey[m] eza #ez[m] mess 'S'
               let#aa   0
               let#ll   #x-(#a+#c)
               stab von 'grp' bis 1    typ 'pzz' pa #pv        a #aa    l #ll    eya #ey[m] eza #ez[m] mess 'S'
               stab von 'grp' bis 1    typ 'py'  pa -#ph       a #aa    l #ll    eya #ey[m] eza #ez[m] mess 'S'

elseif ((#x<#l) & (#x>=(2*#a+#c))) $ beide Teile komplett drauf

       lf nr #lf typ 'SW0' bez #text
               txa Fall 4: x>=l+2a+c & x<l
               txa lf #(#lf,4.0)
               txa x #(#x,7.3)
               let#aa   #x-#a
               let#ll   #a
               stab von 'grp' bis 1    typ 'pzz' pa #pv        a #aa    l #ll    eya #ey[m] eza #ez[m] mess 'S'
               stab von 'grp' bis 1    typ 'py'  pa -#ph       a #aa    l #ll    eya #ey[m] eza #ez[m] mess 'S'
               let#aa   #x-(2*#a+#c)
               let#ll   #a
               stab von 'grp' bis 1    typ 'pzz' pa #pv        a #aa    l #ll    eya #ey[m] eza #ez[m] mess 'S'
               stab von 'grp' bis 1    typ 'py'  pa -#ph       a #aa    l #ll    eya #ey[m] eza #ez[m] mess 'S'

elseif ((#x<(#l+#a)) & (#x>=#l)) $ vorderer Teil nur noch teilweise drauf

       lf nr #lf typ 'SW0' bez #text
               txa Fall 5: x>l & x<=l+a
               txa lf #(#lf,4.0)
               txa x #(#x,7.3)
               let#aa   #x-#a
               let#ll   #l-#aa
               stab von 'grp' bis 1    typ 'pzz' pa #pv        a #aa    l #ll    eya #ey[m] eza #ez[m] mess 'S'
               stab von 'grp' bis 1    typ 'py'  pa -#ph       a #aa    l #ll    eya #ey[m] eza #ez[m] mess 'S'
               let#aa   #x-(2*#a+#c)
               let#ll   #a
               stab von 'grp' bis 1    typ 'pzz' pa #pv        a #aa    l #ll    eya #ey[m] eza #ez[m] mess 'S'
               stab von 'grp' bis 1    typ 'py'  pa -#ph       a #aa    l #ll    eya #ey[m] eza #ez[m] mess 'S'

elseif ((#x<(#l+#a+#c)) & (#x>=#l+#a)) $ nur noch hinterer Teil, der aber komplett

       lf nr #lf typ 'SW0' bez #text
               txa Fall 6: x>l+a+c & x<=l+a
               txa lf #(#lf,4.0)
               txa x #(#x,7.3)
               let#aa   #x-(2*#a+#c)
               let#ll   #aa
               stab von 'grp' bis 1    typ 'pzz' pa #pv        a #aa    l #ll    eya #ey[m] eza #ez[m] mess 'S'
               stab von 'grp' bis 1    typ 'py'  pa -#ph       a #aa    l #ll    eya #ey[m] eza #ez[m] mess 'S'

else ((#x<(#l+2*#a+#c)) & (#x>=#l+#a+#c)) $ hinterer Teil nur noch teilweise

       lf nr #lf typ 'SW0' bez #text
               txa Fall 7: x>l+a+c & x<=l+2a+c
               txa lf #(#lf,4.0)
               txa x #(#x,7.3)
               let#aa   #x-(2*#a+#c)
               let#ll   #l-#aa
               stab von 'grp' bis 1    typ 'pzz' pa #pv        a #aa    l #ll    eya #ey[m] eza #ez[m] mess 'S'
               stab von 'grp' bis 1    typ 'py'  pa -#ph       a #aa    l #ll    eya #ey[m] eza #ez[m] mess 'S'

endif

       let#lf  #lf+1
       let#x   #x+#dx

endloop

  1. enddef
  2. include sw0