Epicykloidy
Stronę tą wyświetlono już: 6012 razy
Definicja i rodzaje epicykloidy
Epicykloida to krzywa, jaką kreśli punkt umieszczony na obwodzie okręgu toczącego się po zewnętrznej stronie drugiego okręgu.
Epicykloidę opisują trzy podstawowe parametry, którymi są:
- promień okręgu wewnętrznego Rw;
- promień okręgu toczącego się Ro;
- promień rysowania Rr
Gdy stosunek promienia Rw do promienia Ro jest ułamkiem zwykłym oraz jego odwrotność jest liczbą całkowitą, wtedy taka epicykloida ma charakter cykliczny, którego okres wynosi 2·π radiana. Na poniższej rysunko-animacji pokazane zostały cztery takie epicykloidy.
- a) o stosunku Ro do Rw równym 1 nazywana kardioidą lub krzywą sercową;
- b) o stosunku Ro do Rw równym 1 / 2 ;
- c) o stosunku Ro do Rw równym 1 / 3 ;
- d) o stosunku Ro do Rw równym 1 / 4 .
Klatki do powyższych animacji zostały wykonane w programie wxMaxima, natomiast poskładane zostały one w programie Gimp
Epicykloidy, których stosunek promienia Ro do Rw jest ułamkiem zwykłym ale jego odwrotność nie jest liczbą całkowitą mają okres większy niż jeden pełny obrót. Przykład takiej epicykloidy można zobaczyć na poniższym rysunku.
Klatki do powyższych animacji zostały wykonane w programie wxMaxima za pomocą następującego kodu:
- for i : 0 step 20 thru 3*360 do(
- Ro:3,
- Rw:20,
- f:%pi * i / 180,
- plot2d([[parametric, cos(t)*Rw,sin(t)*Rw,[t,0,2*%pi],[nticks,80]],[parametric, cos(f)*(Ro+Rw)+cos(t)*Ro, sin(f) * (Ro+Rw)+sin(t)*Ro,[t,0,2*%pi],[nticks,80]],[parametric, cos(f)*(Ro+Rw)+cos(f*(Rw+Ro)/Ro)*Ro+cos(t)*.1, sin(f) * (Ro+Rw)+sin(f*(Rw+Ro)/Ro)*Ro+sin(t)*.1,[t,0,2*%pi],[nticks,80]],[parametric, cos(fi)*(Ro+Rw)+cos(fi*(Rw+Ro)/Ro)*Ro,sin(fi) * (Ro+Rw)+sin(fi*(Rw+Ro)/Ro)*Ro,[fi,0,f],[nticks,360]]],[x,-Ro*2-Rw,Ro*2+Rw],[y,-Ro*2-Rw,Ro*2+Rw],[gnuplot_term, "png size 250, 250"], [gnuplot_out_file, printf(false,"C:\\epi ~d.png",i)],[legend,false])
- )$
W powyżej rozpatrywanych przypadkach promień rysowania Rr jest równy promieniowi okręgu Ro, istnieje jednak możliwość, aby promienie te się od siebie różniły, takie przypadki pokazują poniższe animacje.
- a) o stosunku Ro do Rw równym 1 o promieniach rysowania 1,5·Ro i 0,5·Ro;/li>
- b) o stosunku Ro do Rw równym 1 / 2 o promieniach rysowania 1,5·Ro i 0,5·Ro;
- c) o stosunku Ro do Rw równym 1 / 3 o promieniach rysowania 1,5·Ro i 0,5·Ro;
- d) o stosunku Ro do Rw równym 1 / 4 o promieniach rysowania 1,5·Ro i 0,5·Ro;.
Klatki do powyższych animacji zostały wykonane w programie wxMaxima, natomiast poskładane zostały one w programie Gimp
Gdy stosunek promienia Ro do promienia Rw nie da się wyrazić za pomocą ułamka zwykłego, wtedy krzywa nie zamyka się cyklicznie a jedynie może zbliżać się i oddalać od swoich krawędzi tworząc bliskie zamknięciu się przejście. Przypadek ten obrazuje poniższa animacja.
Klatki do powyższych animacji zostały wykonane w programie wxMaxima za pomocą następującego kodu:
- for i : 0 step 20 thru 3*360 do(
- Ro:1,
- Rw:%pi,
- f:%pi * i / 180,
- plot2d([[parametric, cos(t)*Rw,sin(t)*Rw,[t,0,2*%pi],[nticks,80]],[parametric, cos(f)*(Ro+Rw)+cos(t)*Ro, sin(f) * (Ro+Rw)+sin(t)*Ro,[t,0,2*%pi],[nticks,80]],[parametric, cos(f)*(Ro+Rw)+cos(f*(Rw+Ro)/Ro)*Ro+cos(t)*.1, sin(f) * (Ro+Rw)+sin(f*(Rw+Ro)/Ro)*Ro+sin(t)*.1,[t,0,2*%pi],[nticks,80]],[parametric, cos(fi)*(Ro+Rw)+cos(fi*(Rw+Ro)/Ro)*Ro,sin(fi) * (Ro+Rw)+sin(fi*(Rw+Ro)/Ro)*Ro,[fi,0,f],[nticks,360]]],[x,-Ro*2-Rw,Ro*2+Rw],[y,-Ro*2-Rw,Ro*2+Rw],[gnuplot_term, "png size 250, 250"], [gnuplot_out_file, printf(false,"C:\\epi ~d.png",i)],[legend,false])
- )$
Parametryczny opis epicykloidy
Dla epicykloidy podstawowej, czyli takiej, dla której promienie Ro i Rr są sobie równe opis parametryczny przyjmuje następującą postać:
![]() | [1] |
Zapis wyrażenia w formacie TeX-a:
\begin{cases} x= \left(R_w+R_o\right)\cdot \cos\varphi+R_o\cdot\cos\left(\varphi\cdot\cfrac{R_o+R_w}{R_o}\right) \\ y=\left(R_w+R_o\right)\cdot\sin\varphi+R_o\cdot\sin\left(\varphi\cdot\cfrac{R_o+R_w}{R_o}\right)\end{cases}
W przypadku, gdy Ro≠Rr wtedy równania parametryczne przyjmują postać następującą:
![]() | [2] |
Zapis wyrażenia w formacie TeX-a:
\begin{cases} x= \left(R_w+R_o\right)\cdot \cos\varphi+R_r\cdot\cos\left(\varphi\cdot\cfrac{R_o+R_w}{R_o}\right)\\y=\left(R_w+R_o\right)\cdot \sin\varphi+R_r\cdot\sin\left(\varphi\cdot\cfrac{R_o+R_w}{R_o}\right)\end{cases}
Zastosowanie i miejsca występowania epicykloid
W przekładniach planetarnych punkty na obwodzie kół pośredniczących w przenoszeniu momentu obrotowego z centralnego koła zębatego na koło zewnętrzne poruszają się po epicykloidach w układzie związanym z kołem centralnym. Takie koła stosowane są w niektórych rowerach miejskich, gdzie w piaście wbudowany jest system przekładni planetarnych.
Kardioida ma wiele wspólnego z systemami nagłośniania i przechwytywania dźwięku. Miłośników kawy zapewne zachwyci fakt, że kardioidę można czasem znaleźć w filiżance kawy a nawet i herbaty.
Z kolei epicykloida skrócona o stosunku Ro do Rw równym 1/2 opisuje kształt komory spalania w silnikach Wankla.
Grafika żółwia - kreślenie epicykloidy
W Pythonie znajduje się moduł turtle, który umożliwia kreślenie dwuwymiarowych krzywych. Oto kod programu, który wykreśli epicykloidę o równych promieniach:
- import turtle as tr
- import math as mt
- tr.pensize(10)
- def drawEpicykloid(rw, ro):
- tr.goto(rw, 0)
- tr.left(90)
- tr.circle(rw)
- maxangle = 360 * 5
- m_angle = ro / (ro + rw) * mt.pi
- for i in range(maxangle):
- i = mt.radians(i)
- tr.pencolor((0.5 * mt.sin(i) + 0.5, 0.5 * mt.cos(i) + 0.5, 0))
- tr.goto((rw + ro) * mt.cos(i) + ro * mt.cos((i + m_angle) * (ro + rw) / ro) , (rw + ro) * mt.sin(i) + ro * mt.sin((i + m_angle) * (ro + rw) / ro))
- drawEpicykloid(20,20)
Z kolei poniższy kod wykreśli epicykloidę, której promień wewnętrzny Rw jest mniejszy od okręgu toczącego się bez poślizgu Ro:
- import turtle as tr
- import math as mt
- tr.pensize(10)
- def drawEpicykloid(rw, ro):
- tr.goto(rw, 0)
- tr.left(90)
- tr.circle(rw)
- maxangle = 360 * 5
- m_angle = ro / (ro + rw) * mt.pi
- for i in range(maxangle):
- i = mt.radians(i)
- tr.pencolor((0.5 * mt.sin(i) + 0.5, 0.5 * mt.cos(i) + 0.5, 0))
- tr.goto((rw + ro) * mt.cos(i) + ro * mt.cos((i + m_angle) * (ro + rw) / ro) , (rw + ro) * mt.sin(i) + ro * mt.sin((i + m_angle) * (ro + rw) / ro))
- drawEpicykloid(20,25)