이 글은 reference [1]의 홈페이지의 글을 참조해서 작성했습니다.
자동차 바퀴를 해석 했던 저번 글[2]과 마찬가지로 야구공을 던졌을 때 그 궤적이 어떻게 될지 예측/해석하는 문제 역시 동역학의 문제 입니다. 그냥 강체인 동그라미를 던지는 것과 달리 야구공은 실밥이 있기 때문에 공기 저항으로 작용하는 힘이 다소 복잡합니다. 하지만 저자는 몇가지 가정으로 간단하게 해석했습니다.
역학 문제를 풀 때 흔히들 힘을 찾으라고 합니다. 이 경우에는 야구공에 작용하는 힘을 찾아야한다는 이야기가 됩니다. Free body diagram이란 것은 세상에 야구공만 있다고 봤을 때, 야구공에 작용하는 힘을 표시하는 방법입니다. 이건
역학에서 아주 중요한 도구이기 때문에 교수님들이 학생들에게 화살표 꼽는 놀이를 많이 시킵니다. 이걸 잘하는 사람들이 역학을 잘하거든요(전 잘 못함 ㅎㅎㅎ)
야구공의 자유물체도는 아래와 같습니다, 검은색 화살표가 야구공에 작용하는 힘이에요.
위 그림처럼 공의 방향이 왼쪽으로 날아가고 있을 때, 공이 시계 방향으로 회전한다고 하면, 공에 작용하는 힘은 총 3가지가 있습니다.
스타워즈에서 쭉 말하듯, 포스가 우리와 함께 합니다.
Fd_x = fv(v) * sqrt(vx[i]**2 + vy[i]**2 + vz[i]**2) * vx[i]B = 4.1*10**-4 를 사용합니다.=>
저는 야구를 잘 몰라서 직구랑 커브볼 정도가 전부 인줄 알았는데 최소 네가지가 있더라구요(너클볼이라는 것도 있었음). 그 중에 익숙한(?) fastball과 curveball을 시뮬레이션 해볼거에요.
[이게 투수들의 기본 스킬??]
위 그림에서 눈여겨 봐야할 것은 y-z 좌표 입니다. 타자를 기준으로 회전 벡터가 어떻게 정의되는지 보여 줍니다. 회전 벡터는 오른손 법칙으로 정의 됩니다. +y 방향은 타자 기준으로 오른쪽을 말하고, +z는 하늘 방향을 의미합니다.
[손가락이 감기는 방향으로 회전 하는 경우 벡터의 방향은 앰지!]
그리고 저자는 Fastball의 회전 벡터각 Φ는 225º 이고, curveball은 45º 이고, 속도는 각각 95 mph와 85 mph로 가정 합니다. 야구공 던져본 기억이 없어서 직구와 커브볼의 각이 저게 맞는지는 모르겠지만, 저자가 그린 위의 네가지 피칭에서 오른손 법칙에 따라 쥐어보면 앰지의 각이 대강 저렇게 나오는구나... 하고 이해할 수 있습니다.
사실 자유물체도가 나오고, 계산하기 어려운 drag coefficient와 Magnus force의 계수들을 구하는 실험식과 무차원수가 나온 시점에서 어려운 점은 별로 없겠지만, Magnus force 항이 왜 저렇게 나왔는지에 대한 의문이 있다면 그건 좌표계의 정의 때문이거나, 매그너스 힘이 회전 벡터와 속도의 크로스곱으로 구해진다는 사실을 몰랐기 때문일 것 입니다.
위 시뮬레이션은 간단한 Ordinary Differential Equation 입니다. 식이 여섯개나 있어서 처음 볼땐 동공지진이 생길 수 있지만, 자세히 보면 그냥 각 좌표축에 대한 가속도를 표현한 것 입니다.
가속도에서 속도를 구하는 방법은 이미 한번 다뤘지요. [4]
초기값을 설정하고, iteration을 돌면서 가속도를 계산하면 됩니다. 저자는 4th order Runge-Kutta method를 이용해서 풀었다고 합니다. 상미분 방정식을 푸는 방법 중 하나로 정말 많이 사용한다고 합니다, 전 사실 실전(?)에서 써본 적은 없지만 수치해석을 배울 때 중간고사인지 기말고사에 등장했었던 기억은 납니다.
하지만 귀찮으므로 그냥 예전에 쓰던 방법[4]대로 풀겠습니다.
[Fastball(위)과 Curveball(아래)의 궤적]
직구와 커브는 횡방향 운동에서 확연히 차이가 나네요. 낙폭에서도 큰 차이가 나구요. 그래서 커브라고 하는 모양입니다. 신기 ㅋㅋㅋ
[1] http://farside.ph.utexas.edu/teaching/329/lectures/node44.html
[2] https://steemit.com/kr/@emalron/byvbj
[3] Computational physics, N.J. Giordano, (Prentice-Hall, Upper Saddle River NJ, 1997).
[4] https://steemit.com/kr-dev/@emalron/how-to-calculate-velocity-in-game-engine