Der Versuch

Wie wollen nun versuchen, die Weg-Zeit-Funktion für die Bewegung auf der schiefen Ebene zu berechnen. Wir nehmen an, dass ein Körper auf der Anfangshöhe \(h\) die Geschwindigkeit \(v=0\) hat und losgelassen wird. Die Gesamtlänge der schiefen Ebene sei \(L\), der Neigungswinkel sei \(\alpha\). Wir müssen beachten, dass \(v=ds/dt\) ist, wobei \(s\) die auf der Schräge zurückgelegte Stecke ist.


Energiesatz

Die Summe aus potentieller und kinetischer Energie bleibt zu jedem Zeitpunkt konstant. Wir können also schreiben:

\[ E_{kin} + E_{pot} = E \hspace{2cm} (1) \] wobei \(E\) eine frei wählbare Konstante ist, da die potentielle Energie von einem beliebigen Punkt aus gemessen werden kann. Es ist praktisch, die Konstante auf \(E=m \cdot g \cdot h\) zu setzen. Dies ist die potentielle Energie zum Anfangszeitpunkt, wenn \(v=0\) ist. Diese Vereinbarung hatte wir bereits in diesem Beitrag getroffen.

Die momentane potentielle Energie während der Abwärtsbewegung ist von der momentanen Höhe \(y\) des Körpers abhängig:

\[ E_{pot} = m \cdot g \cdot y \] Die Höhe \(y\) kann mit Hilfe der auf der Schräge zurückgelegten Strecke \(s\) ausgedrückt werden:

\[ y = (L-s) \cdot \sin{\alpha} = (L-s) \cdot \frac{h}{L} \]

Das ist günstiger, da in der kinetischen Energie die Geschwindigkeit \(v=ds/dt\) vorkommt, also ebenfalls \(s\) als Weglänge.

Damit ist die potentielle Energie:

\[ E_{pot} = E_{pot}(s) = m \cdot g \cdot h \cdot \frac{ (L-s)}{L} \] \(E_{pot}\) ist nur von \(s\) abhängig, alle anderen Größen sind (bekannte) Konstanten.

Die einzig verbleibende zu bestimmende Größe in Gleichung (1) ist jetzt die kinetische Energie \(E_{kin}\). Diese ist für jeden Körper verschieden. Wir werden im Folgenden die kinetische Energie für einen Vollzylinder, eine Vollkugel und einen (reibungslos gleitenden) Quader verwenden, um die Funktion \(s(t)\) (numerisch) zu bestimmen.


Weg-Zeit-Funktion für den rollenden Vollzylinder

Wir hatten bereits in einem anderen Beitrag gesehen, dass die kinetische Energie aus Translations- und Rotationsenergie zusammengesetzt ist:

\[ E_{kin} = \frac{m}{2} \cdot v^2 + \frac{J}{2} \cdot \omega^2 = = \frac{m}{2} \cdot v^2 + \frac{1}{2} \cdot \frac{1}{2} \cdot m \cdot r^2 \cdot \frac{v^2}{r^2} = \frac{m}{2} \cdot v^2 + \frac{m}{4} \cdot v^2 = \frac{3}{4} \cdot m \cdot v^2 \]

wobei \(\omega = v/r\) benutzt wurde. Das Trägheitsmoment für den Vollzylinder ist \(J = \frac{1}{2} \cdot m \cdot r^2\), siehe die Tabelle auf dieser Webseite.

Damit haben wir für den Energiesatz nach Gleichung (1):

\[ \frac{3}{4} \cdot m \cdot v^2 + E_{pot}(s) = E \hspace{2cm} (2) \] Wir stellen die obige Gleichung nun nach \(v\) um und setzen gleichzeitig \(v=ds/dt\):

\[ \frac{ds}{dt} = \sqrt{ \frac{4}{3m} \left( E- E_{pot}(s)\right) } \]

Anschließend stellen wir diese Beziehung formal nach \(dt\) um:

\[ dt = \frac{1}{\sqrt{ \frac{4}{3m} \left( E- E_{pot}(s)\right)}} \cdot ds \]

Die linke Seite ist nur von \(t\) abhängig, die rechte Seite nur von \(s\). Wir können daher links über \(\int_0^t\) und rechts über \(\int_0^s\) integrieren (um nicht mit der oberen Grenze in Konflikt zu kommen, ändern wir die Variablenbezeichung im Integranden: \(s \rightarrow s^{\prime}\)):

\[ \int_0^t dt = \int_0^s \frac{1}{\sqrt{ \frac{4}{3m} \left( E- E_{pot}(s^\prime)\right)}} \cdot ds^\prime \]

Die linke Seite ergibt einfach \(t\):

\[ t = \int_0^s \frac{1}{\sqrt{ \frac{4}{3m} \left( E - E_{pot}(s^\prime)\right)}} \cdot ds^\prime \]

Diese Gleichung stellt die grundlegende Beziehung zwischen der Zeit \(t\) und der zurückgelegten Strecke \(s\) dar. Die rechte Seite ist nur über die obere Integrationsgrenze von \(s\) abhängig. Die Ausdrücke für \(E\) und \(E_{pot}(s^\prime)\) sind bekannt. Wir können nun das Integral mit Hilfe der R-Funktion integrate numerisch lösen.

Wir wollen zunächst an einem einfachen Beispiel ausprobieren, wie mit dieser Funktion integriert wird. Versuchen wir es mit \(\int_0^1 x^3 dx\):

f <- function(x) {x^3}   # define the integrand 
res = integrate(f, lower = 0, upper = 1)
res
## 0.25 with absolute error < 2.8e-15

Dies scheint zu klappen.

Um eine Kurve \(s(t)\) zu erhalten, muss das obige Integral für viele Werte von \(s\) gelöst werden. Wir variieren \(s\) in \(100\) Schritten von \(L/100\) bis \(L\):

L = 10     # m   
h = 2      # m 
g = 9.81   # m/s^2
m = 1      # kg

E = m*g*h  # total energy  
E
## [1] 19.62
E_pot <- function(s) { E = m*g*h*(L-s)/L }  # potential energy 

K = 4/3/m  # constant, for cylinder

f <- function(sprime) {  # integrand 
  temp = sqrt(K*(E-E_pot(sprime)))
  integrand = 1/temp
}

df.cyl = data.frame(t = 0, s = 0)      # frame to store results, known values for t=0 already included 

for (s in seq(L/100, L, len = 100)) {  # do not include s=0 because of infinite integrand   
  t = integrate(f, lower = 0, upper = s)$value 
  new.row = data.frame(t = t, s = s) 
  df.cyl = rbind(df.cyl, new.row)
}

dim(df.cyl)
## [1] 101   2
head(df.cyl)
##           t   s
## 1 0.0000000 0.0
## 2 0.3910309 0.1
## 3 0.5530013 0.2
## 4 0.6772855 0.3
## 5 0.7820619 0.4
## 6 0.8743718 0.5

Wir können im Loop nicht mit \(s=0\) starten, da dann \(E = E_{pot}(0)\) und der Integrand unendlich wird. Dies ist auch nicht nötig, da wir wissen, dass \(s=0\) bei \(t=0\) ist. Die Resultate sind im data.frame “df.cyl” gespeichert. Wir werden diese später zusammen mit den Ergebnissen für die anderen Körper plotten.


Weg-Zeit-Funktion für die rollende Vollkugel

Die Gesamtenergie \(E\) und die potentielle Energie \(E_{pot}(s)\) sind die gleichen wie für den Zylinder. Wir hatten bereits in einem anderen Beitrag gesehen, dass die kinetische Energie aus Translations- und Rotationsenergie zusammengesetzt ist. Für die Vollkugel ergibt sich mit dem Trägheitsmoment \(J = \frac{2}{5} \cdot m \cdot r^2\) (siehe Tabelle) folgender Ausdruck:

\[ E_{kin} = \frac{m}{2} \cdot v^2 + \frac{1}{2} \cdot \frac{2}{5} \cdot m \cdot r^2 \cdot \frac{v^2}{r^2} = \frac{m}{2} \cdot v^2 + \frac{m}{5} \cdot v^2 = \frac{7}{10} \cdot m \cdot v^2 \] wobei wieder \(\omega = v/r\) benutzt wurde (Abrollen ohne Schlupf).

Damit haben wir für den Energiesatz nach Gleichung (1):

\[ \frac{7}{10} \cdot m \cdot v^2 + E_{pot}(s) = E \hspace{2cm} (3) \] Wir stellen die obige Gleichung nun nach \(v\) um und setzen gleichzeitig \(v=ds/dt\):

\[ \frac{ds}{dt} = \sqrt{ \frac{10}{7m} \left( E- E_{pot}(s)\right) } \]

Anschließend stellen wir diese Beziehung formal nach \(dt\) um:

\[ dt = \frac{1}{\sqrt{ \frac{10}{7m} \left( E- E_{pot}(s)\right)}} \cdot ds \] Die linke Seite ist nur von \(t\) abhängig, die rechte Seite nur von \(s\). Wir können daher links über \(\int_0^t\) und rechts über \(\int_0^s\) integrieren (um nicht mit der oberen Grenze in Konflikt zu kommen, ändern wir die Variablenbezeichung im Integranden: \(s \rightarrow s^{\prime}\)):

\[ \int_0^t dt = \int_0^s \frac{1}{\sqrt{ \frac{10}{7m} \left( E- E_{pot}(s^\prime)\right)}} \cdot ds^\prime \]

Die linke Seite ergibt einfach \(t\):

\[ t = \int_0^s \frac{1}{\sqrt{ \frac{10}{7m} \left( E - E_{pot}(s^\prime)\right)}} \cdot ds^\prime \]

Diese Gleichung stellt die grundlegende Beziehung zwischen der Zeit \(t\) und der zurückgelegten Strecke \(s\) dar. Die rechte Seite ist nur über die obere Integrationsgrenze von \(s\) abhängig. Die Ausdrücke für \(E\) und \(E_{pot}(s^\prime)\) sind bekannt. Wir können das Integral nun wieder numerisch lösen. Um eine Kurve \(s(t)\) zu erhalten, muss das obige Integral für viele Werte von \(s\) gelöst werden. Wir variieren \(s\) in \(100\) Schritten von \(L/100\) bis \(L\):

K = 10/7/m  # constant, for sphere

f <- function(sprime) {  # integrand 
  temp = sqrt(K*(E-E_pot(sprime)))
  integrand = 1/temp
}

df.sphere = data.frame(t = 0, s = 0)     # frame to store results, known values for t=0 already included

for (s in seq(L/100, L, len = 100)) {    # do not include s=0 because of infinite integrand 
  t = integrate(f, lower = 0, upper = s)$value 
  new.row = data.frame(t = t, s = s) 
  df.sphere = rbind(df.sphere, new.row)
}

dim(df.sphere)
## [1] 101   2
head(df.sphere)
##           t   s
## 1 0.0000000 0.0
## 2 0.3777718 0.1
## 3 0.5342500 0.2
## 4 0.6543199 0.3
## 5 0.7555436 0.4
## 6 0.8447234 0.5

Die Resultate sind im data.frame “df.sphere” gespeichert.


Weg-Zeit-Funktion für den gleitenden Quader

Der Quader rollt nicht, daher ist die kinetische Energie einfach:

\[ E_{kin} = \frac{m}{2} \cdot v^2 \] Damit haben wir für den Energiesatz nach Gleichung (1):

\[ \frac{1}{2} \cdot m \cdot v^2 + E_{pot}(s) = E \hspace{2cm} (4) \]

Wir stellen die obige Gleichung nun nach \(v\) um und setzen gleichzeitig \(v=ds/dt\):

\[ \frac{ds}{dt} = \sqrt{ \frac{2}{m} \left( E- E_{pot}(s)\right) } \] Anschließend stellen wir diese Beziehung formal nach \(dt\) um:

\[ dt = \frac{1}{\sqrt{ \frac{2}{m} \left( E- E_{pot}(s)\right)}} \cdot ds \]

Die linke Seite ist nur von \(t\) abhängig, die rechte Seite nur von \(s\). Wir können daher links über \(\int_0^t\) und rechts über \(\int_0^s\) integrieren (um nicht mit der oberen Grenze in Konflikt zu kommen, ändern wir die Variablenbezeichung im Integranden: \(s \rightarrow s^{\prime}\)):

\[ \int_0^t dt = \int_0^s \frac{1}{\sqrt{ \frac{2}{m} \left( E- E_{pot}(s^\prime)\right)}} \cdot ds^\prime \]

Die linke Seite ergibt einfach \(t\):

\[ t = \int_0^s \frac{1}{\sqrt{ \frac{2}{m} \left( E - E_{pot}(s^\prime)\right)}} \cdot ds^\prime \]

Diese Gleichung stellt die grundlegende Beziehung zwischen der Zeit \(t\) und der zurückgelegten Strecke \(s\) dar. Die rechte Seite ist nur über die obere Integrationsgrenze von \(s\) abhängig. Die Ausdrücke für \(E\) und \(E_{pot}(s^\prime)\) sind bekannt. Wir können nun das Integral wieder numerisch lösen.

Um einen Kurve \(s(t)\) zu erhalten, muss das obige Integral für viele Werte von \(s\) gelöst werden. Wir variieren \(s\) in \(100\) Schritten von \(L/100\) bis \(L\):

K = 2/m  # constant, for cuboid

f <- function(sprime) {  # integrand 
  temp = sqrt(K*(E-E_pot(sprime)))
  integrand = 1/temp
}

df.cube = data.frame(t = 0, s = 0)      # frame to store results, known values for t=0 already included

for (s in seq(L/100, L, len = 100)) {  # do not include s=0 because of infinite integrand 
  t = integrate(f, lower = 0, upper = s)$value 
  new.row = data.frame(t = t, s = s) 
  df.cube = rbind(df.cube, new.row)
}

dim(df.cube)
## [1] 101   2
head(df.cube)
##           t   s
## 1 0.0000000 0.0
## 2 0.3192754 0.1
## 3 0.4515236 0.2
## 4 0.5530013 0.3
## 5 0.6385509 0.4
## 6 0.7139216 0.5

Die Resultate sind im data.frame “df.cube” gespeichert.


Plotten

Wir haben für die drei Kurven nicht die gleichen \(t\)-Werte, daher müssen wir anders vorgehen als in diesem Beitrag, wo wir matplot benutzt hatten. Wir ermitteln zunächst die Limits für die \(t\)-Achse, d.h. die absolut kleinsten und größten Werte auf dieser Achse. Danach plotten wir die erste Kurve mit plot und fügen die anderen Kurven mit lines hinzu:

tmin = min(c(df.cyl$t, df.sphere$t, df.cube$t))
tmax = max(c(df.cyl$t, df.sphere$t, df.cube$t))

mtext = "Distance vs. time"
plot(df.cyl$t, df.cyl$s, type = "l", xlab = "t", ylab = "s", col = "red", lty = 1, lwd = 1.5, xlim = c(tmin, tmax), main = mtext, font.main = 1)
lines(df.sphere$t, df.sphere$s, col = "blue", lty = 1, lwd = 1.5)
lines(df.cube$t, df.cube$s, col = "green", lty = 1, lwd = 1.5)
legend("topleft", c("cylinder", "sphere", "cube"), col=c("red", "blue", "green"), lwd =2 )

Der Quader benötigt die kürzeste Zeit, um am Fuße der schiefen Ebene (\(s=10\)) anzukommen. Danach kommt die Kugel an, zum Schluss der Zylinder. Dies hatten wir bereits zuvor festgestellt. Der Quader rollt nicht, die gesamte potentielle Energie kann also in Vorwärtsbewegung verwandelt werden. Daher kommt er zuerst an. Danach kommt die Vollkugel an, denn sie hat ein geringeres Trägheitsmoment als der Vollzylinder, kann somit leichter in Rollbewegung gebracht werden als der Vollzylinder.

Die genaue zum Durchlaufen der schiefen Ebene benötigte Zeit kann aus den drei data.frames extrahiert werden:

df.cyl[nrow(df.cyl), 1]  
## [1] 3.910309
df.sphere[nrow(df.sphere), 1]
## [1] 3.777718
df.cube[nrow(df.cube), 1]
## [1] 3.192754

Die Durchlaufzeiten betragen also:

Körper Durchlaufzeit
Quader \(3.19\)
Vollkugel \(3.78\)
Vollzylinder \(3.91\)


uwe.menzel@matstat.org