Fahrradleistung berechnet
Steigung, Rollwiderstand und Windwiderstand sind die Krafte die der Geschwindigkkeit entgegenwirken. Wie stark das jeweils ist lässt sich mit gnuplot berechnen und visualisieren.
#!/usr/bin/bash # Berechnung der Antriebsleistung eines Fahrrades # getrennt nach den Einzelkomponenten Steigung, Luftwiderstand, Rollreibung. # (c) 2015, Joachim Schwender # BN='fahrrad_leistung' PDF=BN.'.pdf' set decimalsign locale; set decimal ","; dt = 0.001; # Die Schrittweiter für die Berechnung [s] m_fahrrad = 24.0; # Masse des Fahhrades m_fahrer = 84.0; # Masse des Fahrers Ages = 0.7; # Gesamtfläche des Fahrers + Fahrrad, was sehr schwierig zu ermitteln ist, # 0.5 entspricht Rennrad, in Aufrechter Position eher 0.7 cw = 0.5; # 0.5 entspricht Rennrad cr = 0.007; # 0.004 entspricht einem optimal laufenden Rennrad, # 0,01 bei einfachen Reifen, biz zu 0.0002 bei schmalen Hochdruckreifen v_wind = 2; Steigung = 0.01; SteigWinkel(Steigung) = atan(Steigung); # ------ Konstanten ------ dichte_luft = 1.234; # Dichte der Luft [kg/m³] g = 9.81; # Erdbeschleunigung #------------------------ P_wind(v,cwx) = cwx * Ages * dichte_luft/2 * (v + v_wind)**2.0 * v; P_roll(v,Steigung,m_fahrrad,m_fahrer) = v * g * (m_fahrrad + m_fahrer) * cr * cos(SteigWinkel(Steigung)); P_steig(v,Steigung,m_fahrrad,m_fahrer) = v * g * (m_fahrrad + m_fahrer) * sin(SteigWinkel(Steigung)); # Farbe der Kurve repräsentiert die Geschwindigkeit set palette defined (0 'blue', 0.5 'red', 1 'yellow') set style line 40 lc palette set style line 51 lc rgb 'blue' dt 3 lt 1 set style line 52 lc rgb 'green' dt 3 lt 1 set size 0.95,0.88 set origin 0.03,0.06 set terminal pdf size 29.7cm,21.0cm set output PDF set ylabel "Leistung in W" set xlabel "v in m/s" set x2label "v in km/h" set label "Die Antriebsleistung beim Fahrrad" font ",26" textcolor rgb 'red' at 2,833 set label sprintf("Beispiel mit Fläche=%1.1f m^2, c_r=%1.4f, m_{Rad}=%1.0f kg",Ages,cr,m_fahrrad) \ font ",12" at 2,793 set xrange [0:50/3.6] set yrange [0:700] set xtics 10/3.6 set mxtics 2 set mytics 10 set grid xtics ytics mxtics mytics ls 51, ls 52 set key left set samples 26 set format x "%2.1f" # set multiplot layout 1,3 set origin 0.03,0.03 set size 0.3,0.85 set x2tics('0' 0, '10' 2.77, '20' 5.55 , '30' 8.33 , '40' 11.11, '50' 13.888) # set title "Steigung" font ",16" textcolor rgb 'red' plot for [i=1:5] Steigung=i*0.01 \ P_steig(x,Steigung,m_fahrrad,m_fahrer) with lines lw 2 title sprintf("%d %%",i),\ 250 with lines title "ges. Limit" unset label # set title "Luftwiderstand" font ",16" textcolor rgb 'red' set origin 0.33,0.03 set size 0.33,0.85 set key top center plot for [i=0:4] CW=0.30+i*0.1 \ P_wind(x,CW) title sprintf("cw=%0.1f",CW) dt 4 lw 2,\ 250 with lines title "ges. Limit" # set title "Rollreibung" font ",16" textcolor rgb 'red' set origin 0.66,0.03 set size 0.3,0.85 set key center left plot for [i=0:5] m=70+i*5 \ P_roll(x,Steigung,m_fahrrad,m) with lines lw 2 title sprintf("%d kg Fahrer", m),\ 250 with lines title "ges. Limit" # load 'opensource_logo.inc' unset multiplot # reset everything and then restore, because the logo.inc changes most settings reset set decimalsign locale; set decimal ","; set format x "%2.1f" set size 0.95,0.88 set origin 0.03,0.06 set xlabel "v in m/s" set x2label "v in km/h" # Farbe der Kurve repräsentiert die Geschwindigkeit set palette defined (0 'blue', 0.5 'red', 1 'yellow') set style line 40 lc palette set style line 51 lc rgb 'blue' dt 3 lt 1 set style line 52 lc rgb 'green' dt 3 lt 1 set key top center set multiplot set autoscale set xtics 10/3.6 set ytics 50 set x2tics('0' 0, '10' 2.77, '20' 5.55 , '30' 8.33 , '40' 11.11, '50' 13.888) set mxtics 5 set mytics 5 set grid xtics ytics mxtics mytics ls 51, ls 52 set title "Rollreibung und Luftwiderstand in der Ebene" font ",26" textcolor rgb 'red' set xrange [0:25/3.6] plot for [i=0:5] m=70+i*5 P_roll(x,Steigung,m_fahrrad,m) title sprintf("%d kg Fahrer", m), \ for [i=0:4] CW=0.30+i*0.1 P_wind(x,CW) dt 4 title sprintf("cw=%0.1f",CW) # for [i=1:5] Steigung=i*0.01 P_steig(x,Steigung,m_fahrrad,m_fahrer) \ # with lines lw 2 title sprintf("Steigung %d %%",i) load 'opensource_logo.inc' unset multiplot