Hans Walser, [20071003a]
Die Klothoide
Es wird
ein Programm (MuPAD) vorgestellt, mit welchem jede durch die so genannte
natźrliche Gleichung gegebene Kurve approximativ gezeichnet werden kann.
Insbesondere kann damit auch die Klothoide gezeichnet werden.
Unter der
Krźmmung verstehen wir
die momentane RichtungsŠnderung der Kurve beim Parameterwert s. Dabei soll s die KurvenlŠnge sein (so
genannter natźrlicher Parameter). Das Integral
gibt die
gesamte RichtungsŠnderung beim Durchlauf des Intervalls . Der Kehrwert von
ist der lokale
Krźmmungskreisradius.
Die
Gleichung legt eine Kurve
im Wesentlichen, das hei§t bis auf Anfangspunkt und Anfangsrichtung fest. Diese
Gleichung hei§t deshalb die natźrliche Gleichung
der Kurve.
Wir
arbeiten in der komplexen Zahlenebene und bezeichnen den Anfangspunkt mit a und die Anfangsrichtung mit ,
Wir
wŠhlen eine SchrittlŠnge und definieren
eine Folge
komplexer Zahlen
mit den Startwerten
und
rekursiv:
Wir
verbinden die Punkte dieser folge mit einem Polygonzug; das gibt eine Approximation
der gesuchten Kurve.
Beispiel:
Die konstante Krźmmung gibt einen Kreis
mit dem Radius
.
Laenge:=2:
p:=1+1/2*I:
phi:=PI/6:
deltas:=0.01:
kappa:=s->2:
n:=ceil(Laenge/deltas):
z[0]:=p:
z[1]:=z[0]+deltas*exp(I*phi):
for j from 1 to n-1 do
z[j+1]:=z[j]+(z[j]-z[j-1])*exp(I*deltas*kappa(j*deltas));
end_for:
Polygon:=i->plot::Polygon2d([[Re(z[i]), Im(z[i])],
[Re(z[i+1]), Im(z[i+1])]], LineWidth=0.5,
LineColor=[1,0,0]):
Ursprung:=plot::Point2d([0,0], PointSize=2,
PointColor=[0,0,0]):
plot(Ursprung,
Polygon(i)$i=0..n-1, Scaling=Constrained, TicksDistance=1, TicksBetween=0,
Width=60, Height=60);
Die Klothoide, auch Spinnkurve oder Cornusche Spirale genannt, ist eine Kurve, deren Krźmmung proportional zur BogenlŠnge ist.
Die
Klothoide hat also eine natźrliche Gleichung von der Form . Die Schreibweise
des
ProportionalitŠtsfaktors hat historische Grźnde. Die Klothoide wird im Bahn-
und Stra§enbau verwendet. Bei konstanter Durchfahrgeschwindigkeit, also bei
ist dann die
Radialbeschleunigung proportional zur BogenlŠnge und damit zur Fahrzeit. Die
Berechnung der Klothoide fźhrt allerdings auf Integrale, die nicht elementar
auswertbar sind. Man kann zeigen, dass der ăWickelpunktŇ A die Koordinaten
hat.
Laenge:=20:
p:=0:
phi:=0:
deltas:=0.01:
a:=2:
kappa:=s->s/a^2:
n:=ceil(Laenge/deltas):
z[0]:=p:
z[1]:=z[0]+deltas*exp(I*phi):
for j from 1 to n-1 do
z[j+1]:=z[j]+(z[j]-z[j-1])*exp(I*deltas*kappa(j*deltas));
end_for:
Polygon:=i->plot::Polygon2d([[Re(z[i]), Im(z[i])],
[Re(z[i+1]), Im(z[i+1])]], LineWidth=0.5,
LineColor=[1,0,0]):
Wickelpunkt:=plot::Point2d([a*sqrt(PI)/2,a*sqrt(PI)/2],
PointSize=3, PointColor=[0,0,1]):
Ursprung:=plot::Point2d([0,0], PointSize=2,
PointColor=[0,0,0]):
plot(Ursprung,
Polygon(i)$i=0..n-1, Wickelpunkt,
Scaling=Constrained, TicksDistance=1, TicksBetween=0, Width=100, Height=100);