회사 다니던 시절, 골프 게임을 만들었는데요. 지형 관련 업무를 하다가 갑자기 공 물리 관련 업무를 맡은 적이 있습니다. 근데 제가 물리는 책은 고사하고 간단한 내용도 본 적이 없어서, f = ma 부터 시작해서 몇 날 며칠을 울면서 공부했지요. 그나마 보기에는 좀 골프공 같아 보이게 고군분투하던 중에 몇몇 영문서 보면서 필요한 부분만 안 되는 영어 실력으로 번역해 놓은 게 있었는데요. 다른 파일 찾다가 오랜만에 다시 보게 돼서 별 도움은 될는지 모르겠지만, 혹시 누가 보실까 싶어 올려놓습니다.
한다고는 했는데 오역이 많이 있을 겁니다 ;ㅁ;
http://robocup.mi.fu-berlin.de/buch/rolling.pdf
구르는 공처럼
RAUL ROJAS, MARK SIMON
(전략)
1. 구르는 공의 동역학
공은 표면을 미끄러질 수도, 구를 수도, 둘 다 할 수도 있다. 표면을 미끄러지는 공은 선 변위에 상대되는 마찰력에 의해 감속된다. 마찰력은 공에 각운동량도 발생시켜서, 표면을 미끄러짐 없이 구를 때까지 굴리기 시작한다. 공이 미끄러지고 있으면, 공과 표면 사이에는 운동 마찰력이 걸리며, 공이 구르고 있으면, 공과 표면 사이에는 구름(rolling) 마찰력이 걸린다. 운동과 구름 마찰력 계수 \mu_k와 \mu_r은 각각 다르다. 운동 마찰력은 (중력으로) 눌리는 물체의 무게에 기반을 둔다. 구름 마찰력은 공과 바닥의 변형에 기반을 둔다. 이것을 이론적으로 다루는(계산하는) 것은 매우 어렵고, 실험에 의해서만 잴 수 있다.
질량이 m인 공이 미끄러질 때, 운동 마찰력 F_k는 공의 무게와 비례하며, 다음 공식으로 나타낼 수 있다.
F_k = \mu_kmg운동 마찰력 계수 (그리고 힘)는 특정 한도(일정 cm/s에서 최대 일정 m/s까지) 안에서는 공의 속도와 관계가 없다.
물체에 적용된 힘은 선, 각운동량을 바꾼다. 공에 작용하는 운동 마찰력 F_k는 뉴턴의 제2 법칙에 따르면 다음과 같다.
F_k = m\dot{\upsilon}여기서 \upsilon는 공의 속도이며, \dot{\upsilon}는 공 속도의 일차 미분 값이다. 각운동량은 다음 공식에 따라 변한다.
F_kR = I\dot{\omega}여기서 R은 공의 반지름이고, \omega는 각속도, \dot{\omega}는 각속도 일차 미분, 그리고 I는 공의 관성 모멘트이다. 질량이 m이고 반지름이 R인 공의 관성 모멘트는 {\Large{2\over 5}}mR^2이다. 그러므로 다음과 같다.
F_k = {\Large{2\over 5}}mR\dot{\omega}\omega의 정 변위와 일치하는 \upsilon의 역 변위를 주목하라. 위의 공식을 풀면 다음을 얻을 수 있다.
m\dot{\upsilon} = -{\Large{2\over 5}}mR\dot{\omega}이를 풀면 다음과 같다.
\dot{\upsilon} = -{\Large{2\over 5}}R\dot{\omega}이것은 “운동량 보존 법칙” 공식이다. 공의 선 운동량 역 변위는 공의 각운동량 정 변위와 균형을 맞추고 있다. \dot{\upsilon}와 \dot{\omega} 둘의 관계는 공의 질량과는 상관없다는 점을 알아두면 재밌을 것이다. 속도 \upsilon_i와 각속도 \omega_i로 시작해 속도 \upsilon_f와 각속도 \omega_f로 끝나는 공을 이 공식으로 적분하면 다음을 얻을 수 있다.
\upsilon_f - \upsilon_i=-{\Large{2\over 5}}R(\upsilon_f - \upsilon_i)여기서 생각할 수 있는 한 가지 재밌는 경우는 속도 \upsilon_0와 회전이 없는 상태에서 공이 미끄러져 움직이기 시작할 때이다. 공이 미끄러짐 없이 구르는 상태에 도달하면 구름 속도 \upsilon_r은 \upsilon_r=\omega_rR에 의한 회전 각속도 \omega_r과 관련이 생기며 다음 공식을 얻을 수 있다.
\upsilon_r - \upsilon_0 = -{\Large{2\over 5}}\upsilon_r여기서 \upsilon_r = {\Large{5\over 7}}\upsilon_0를 얻을 수 있다. 이것은 구름 속도는 항상 공의 질량과 반지름에 상관없이 원래 속도의 칠분의 오라는 것을 뜻한다.
(후략)
원문
http://archive.ncsa.illinois.edu/Classes/MATH198/townsend/index.html
당구공의 역학에 대한 실제 시뮬레이션 시도
당구의 수학과 물리
Brian Townsend
(전략)
움직이는 공
공이 초기 선 속도와 각속도를 갖게 되면, 테이블 위를 움직이기 시작한다. 공이 큐의 끝을 떠난 후, 큐 공에 작용하는 힘은 펠트 천으로 인한 마찰밖에 없다. 시뮬레이션 이번 단계의 목적은 이 마찰력에 따른 각각의 속도 벡터들을 계속해서 갱신하는 것이다.
시뮬레이션 이번 단계에서 반드시 알아야 할 중요한 개념 두 가지가 있다. 첫 번째로 공은 항상 구르지 않는다. 타격 바로 직후 공은 짧은 시간 동안 펠트 천을 따라 미끄러진다. 얼마나 멀리 미끄러질지는 초기 속도와 회전에 기반을 둔다. 두 번째로 마찰력은 공의 질량 중심에 걸리지 않는다. 마찰은 실제로 공의 표면을 따라 적용되며, 이로 인해 표면 속도를 계산해야 할 필요가 생긴다.
미끄러지는 공이 구르는 공이 되는 정확한 시작 지점은 다음 방정식으로 나타낸다.
|\vec{\upsilon}_p|=R\cdot|\vec{\omega}|이 방정식에서 \upsilon_p는 펠트와 접촉해 있는 공의 한 지점의 표면 속도이며, R은 공의 반지름이고, \omega는 공의 각속도이다. 펠트와 접촉해 있는 공의 한 지점의 표면 속도는 다음 방정식을 써서 계산한다.
\vec{\upsilon}_p=(\vec{\omega}\times\vec{R})+\vec{\upsilon}여기서 R은 공 중심에서 테이블에 접촉해 있는 지점으로 나오는 벡터를 나타낸다.
마찰을 적용하기 위해 다시 한 번 뉴턴의 제2 법칙을 사용한다. 하지만 이번에는 큐에 의해 적용되는 힘대신 마찰력과 함께 사용한다. 마찰력은 다음 방정식으로 계산한다.
F_f=\mu_s mg이 방정식에서 \mu_s는 뮤즈 미끄럼(운동) 마찰계수이고 (거의 0.2), m은 공의 질량, 그리고 g는 중력이다. 마찰력의 방향은 표면 속도와 반대이기 때문에, 마찰력 벡터를 표현하기 위해 이 방정식을 고치면 다음과 같다.
이를 뉴턴의 제2 법칙과 합치면, 공의 선 속도와 각속도 변화 방정식을 얻을 수 있다. 선 속도 변화는 아래와 같이 유도한다.
\vec{F}_f=m\vec{a} -\mu_s mg{\Large{\vec{\upsilon}_p\over |\vec{\upsilon}_p|}}=m{\Large{\Delta\vec{\upsilon}\over \Delta t}} \Delta\vec{\upsilon}=-\mu_s g{\Large{\vec{\upsilon}_p\over |\vec{\upsilon}_p|}}\Delta t비슷하게 각속도 변화도 다음과 같이 유도할 수 있다.
\vec{\tau}_f=I\vec{a} [\vec{r}\times (-\mu_s mgR{\Large{\vec{\upsilon}_p\over |\vec{\upsilon}_p|}})]={\Large{2\over 5}}mR^2{\Large{\Delta\omega\over\Delta t}} \Delta\omega={\Large{5\over 2}}[\vec{r}\times (-\mu_s mgR{\Large{\vec{\upsilon}_p\over |\vec{\upsilon}_p|}})]{\Large{\Delta t\over mR^2}}합친 방정식으로 초기 선 속도와 각속도 벡터를 사용한 이후 특정 시간의 속도를 계산할 수 있다. 하지만 이 방정식은 미끄러지는 공일 때만 적용된다. 구르는 공도 비슷하지만, 미끄럼 마찰계수 대신 구름 마찰계수 \mu_r를 사용한다. 구름 마찰계수는 거의 0.01 정도로 미끄럼 마찰계수보다 현저히 작다.
위에서 정해진 조건을 이용해 공이 미끄러지는지 구르는지 알 수 있다. 이 정보를 이용하면 주어진 시간 간격 동안의 속도를 계산할 수 있다. 이것으로 시뮬레이션의 두 번째 단계가 완료되었다.
(후략)