Calculating the Mass Properties of Polygon and Polyhedron

Aug. 2011 written by 이주형 (Lee Ju Hyung)

이 문서는 질량 밀도가 일정하고 solid 한 물체 (Polygon and Polyhedron) 의 질량 특성들 (질량, 질량 중심, 관성 모멘트) 을 구하는 방법을 설명한다. 실제 계산식은 물체 내부의 적분식이 되며, 복잡한 모양이라도 Divergence Theorem (2D 에서는 Green’s Theorem) 을 이용하면 한차원 낮은 적분으로 치환하여 수월하게 계산할 수 있다.

질량 밀도가 일정하다고 했으므로 질량 특성들은 대부분 면적 모멘트1로 구할 수 있다. 먼저 면적 모멘트식을 살펴보자.

1. 2차원 물체의 면적 모멘트 (moment of area)

2차원 물체의 면적 모멘트는 아래의 적분식이다.

    \[\int_R p(x, y) dA\]

위 적분식은 그대로 풀기 어려울 수 있기 때문에 Green’s Theorem 을 이용해 선적분으로 바꾼다.

    \[\begin{aligned} \int_R p(x, y) dA &\equiv \int_R \nabla \cdot F dA \\ &= \oint_C F \cdot N ds \\ &= \oint_C M dy - N dx \end{aligned}\]

필요한 함수 p(x, y) 와 그에 맞는 벡터장 함수 F 를 정리하면…

    \[\begin{aligned} p(x, y) = 1 & \longrightarrow F = x \hat{\imath} \\ p(x, y) = x & \longrightarrow F = \frac{1}{2} x^2 \hat{\imath} \\ p(x, y) = y & \longrightarrow F = \frac{1}{2} y^2\hat{\jmath} \\ p(x, y) = x^2 & \longrightarrow F = \frac{1}{3} x^3 \hat{\imath} \\ p(x, y) = y^2 & \longrightarrow F = \frac{1}{3} y^3 \hat{\jmath} \\ \end{aligned}\]

결국 2차원 물체의 면적 모멘트는 아래와 같은 선적분식들을 푸는 것이 된다. (각각 0차 면적 모멘트, 1차 면적 모멘트, 2차 면적 모멘트)

(1)   \[\oint_C x dy, \]

(2)   \[\frac{1}{2} \oint_C x^2 dy, \quad \frac{1}{2} \oint_C -y^2 dx, \]

(3)   \[\frac{1}{3} \oint_C x^3 dy, \quad \frac{1}{3} \oint_C -y^3 dx \]

1.1 Polygon 질량

(1) 을 풀면 2d 면적이 된다. 선적분식 (1) 을 polygon 에서는 edge 적분들의 합으로 구하면 된다. 두점 (x_i, y_i), (x_{i+1}, y_{i+1}) 사이의 edge 적분은 다음과 같다.2

    \[\begin{aligned} \mathbf{EdgeIntegral} &= \int_{t=0}^{t=1} x(t) y \prime (t) dt \\ &= \int_{t=0}^{t=1} ( x_i + (x_{i+1} - x_i) t ) ( y_{i+1} - y_i ) dt \\ &= \left[ x_i ( y_{i+1} - y_i ) t + \frac{1}{2} (x_{i+1} - x_i) ( y_{i+1} - y_i ) t^2 \right]_0^1 \\ &= x_i ( y_{i+1} - y_i ) + \frac{1}{2} (x_{i+1} - x_i) ( y_{i+1} - y_i ) \\ &= \frac{1}{2} (x_{i+1} + x_i) ( y_{i+1} - y_i ) \\ \end{aligned}\]

이제 edge 적분들을 다 더하면 면적이 되고, 질량 밀도 상수(\rho)를 곱하면 질량이 된다.

    \[\frac{\rho}{2}\sum_{i=0}^{N-1} ( x_{i+1} y_{i+1} - x_{i+1} y_i + x_i y_{i+1} - x_i y_i )\]

여기서 x_N = x_0, y_N = y_0 이면, 위의 첫번째 항과 네번째 항은 더해지면서 서로 상쇄되어 없어진다.

    \[= \frac{\rho}{2}\sum_{i=0}^{N-1} (x_i y_{i+1} - x_{i+1} y_i)\]

\sum 를 풀어서 재배열하면 더 간단해진다.

    \[= \frac{\rho}{2}\sum_{i=0}^{N-1} x_i ( y_{i+1} - y_{i-1} )\]

1.2 Polygon 질량 중심

질량 중심은 식 (2) 를 총 면적으로 나눈값이 된다.

    \[\begin{aligned} C_x &= \frac{1}{2A} \oint_c x^2 dy \\ C_y &= \frac{1}{2A} \oint_c -y^2 dx \\ \end{aligned}\]

C_x 의 선적분은 polygon 의 edge 적분의 합으로 나타낼 수 있다. 두점 (x_i, y_i), (x_{i+1}, y_{i+1}) 사이의 edge 적분은..

    \[\begin{aligned} \mathbf{EdgeIntegral} &= \frac{1}{2A} \int_{t=0}^{t=1} x^2(t) y \prime (t) dt \\ &= \frac{1}{2A} \int_{t=0}^{t=1} (x_i + (x_{i+1} - x_i) t)^2 (y_{i+1} - y_i) dt \\ &= \frac{y_{i+1} - y_i}{2A} \int_{t=0}^{t=1} ( x_i^2 + x_{i+1}^2 t^2 + x_i^2 t^2 - 2x_i x_{i+1} t^2 + 2x_i x_{i+1} t - 2x_i^2 t ) dt \\ &= \frac{y_{i+1} - y_i}{2A} \left[ x_i^2 t + \frac{1}{3} x_{i+1}^2 t^3 + \frac{1}{3} x_i^2 t^3 - \frac{2}{3} x_i x_{i+1} t^3 + x_i x_{i+1} t^2 - x_i^2 t^2 \right]_0^1 \\ &= \frac{y_{i+1} - y_i}{2A} ( \frac{1}{3} x_{i+1}^2 + \frac{1}{3} x_i^2 - \frac{2}{3} x_i x_{i+1} + x_i x_{i+1} ) \\ &= \frac{1}{6A} ( x_i^2 + x_{i+1}^2 + x_i x_{i+1} ) ( y_{i+1} - y_i ) \\ &= \frac{1}{6A} ( x_i^2 y_{i+1} - x_i^2 y_i + x_{i+1}^2 y_{i+1} - x_{i+1}^2 y_i + x_i x_{i+1} y_{i+1} - x_i x_{i+1} y_i ) \\ \end{aligned}\]

이제 모든 edge 적분들을 더하면 질량 중심 x 좌표가 된다. (sum 되면서 두번째 항과 세번째 항은 상쇄된다.)

    \[\begin{aligned} C_x &= \frac{1}{6A}\sum_{i=0}^{N-1} ( x_i^2 y_{i+1} - x_i x_{i+1} y_i + x_i x_{i+1} y_{i+1} - x_{i+1}^2 y_i ) \\ &= \frac{1}{6A}\sum_{i=0}^{N-1} ( x_i ( x_i y_{i+1} - x_{i+1} y_i ) + x_{i+1} ( x_i y_{i+1} - x_{i+1} y_i ) ) \\ &= \frac{1}{6A}\sum_{i=0}^{N-1} ( x_i + x_{i+1}) (x_i y_{i+1} - x_{i+1} y_i ) \end{aligned}\]

같은 방법으로 질량 중심 y 좌표도 구하면..

    \[C_y = \frac{1}{6A}\sum_{i=0}^{N-1} (y_i + y_{i+1}) (x_i y_{i+1} - x_{i+1} y_i)\]

1.3 Polygon 관성 모멘트(moment of inertia)

(3) 에 질량 밀도 상수를 곱하면 관성 모멘트가 된다.

    \[\begin{aligned} I_x &= \frac{\rho}{3} \oint_C x^3 dy \\ I_y &= \frac{\rho}{3} \oint_C -y^3 dx \\ \end{aligned}\]

I_x 의 선적분은 polygon 에서 edge 적분으로 나타낼 수 있다. 두점 (x_i, y_i), (x_{i+1}, y_{i+1}) 사이의 edge 적분은

    \[\begin{aligned} \mathbf{EdgeIntegral} &= \frac{\rho}{3} \int_{t=0}^{t=1} x^3(t) y \prime (t) dt \\ &= \frac{\rho}{3} \int_{t=0}^{t=1} (x_i + (x_{i+1} - x_i) t)^3 (y_{i+1} - y_i) dt \\ &= \frac{\rho ( y_{i+1} - y_i ) }{3} \int_{t=0}^{t=1} ( x_i^3 + (x_{i+1} - x_i)^3 t^3 + 3x_i^2 (x_{i+1} - x_i) t +3x_i (x_{i+1} - x_i)^2 t^2 ) dt \\ &= \frac{\rho ( y_{i+1} - y_i ) }{3} \int_{t=0}^{t=1} ( x_i^3 + x_{i+1}^3 t^3 - x_i^3 t^3 - 3x_{i+1}^2 x_i t^3 + 3x_{i+1} x_i^2 t^3 + 3x_i^2 x_{i+1} t - 3x_i^3 t + 3x_i x_{i+1}^2 t^2 + 3x_i^3 t^2 - 6x_i^2 x_{i+1} t^2 ) dt \\ &= \frac{\rho ( y_{i+1} - y_i ) }{3} \left[ x_i^3 t + \frac{1}{4} x_{i+1}^3 t^4 - \frac{1}{4} x_i^3 t^4 - \frac{3}{4} x_{i+1}^2 x_i t^4 + \frac{3}{4} x_{i+1} x_i^2 t^4 + \frac{3}{2} x_i^2 x_{i+1} t^2 - \frac{3}{2} x_i^3 t^2 + x_i x_{i+1}^2 t^3 + x_i^3 t^3 - 2x_i^2 x_{i+1} t^3 \right]_0^1 \\ &= \frac{\rho ( y_{i+1} - y_i ) }{3} ( \frac{1}{4} x_i^3 + \frac{1}{4} x_{i+1}^3 + \frac{1}{4} x_i^2 x_{i+1} + \frac{1}{4} x_i x_{i+1}^2 ) \\ &= \frac{\rho}{12} ( x_i^3 + x_{i+1}^3 + x_i^2 x_{i+1} + x_i x_{i+1}^2 ) ( y_{i+1} - y_i ) \\ &= \frac{\rho}{12} ( x_i^3 y_{i+1} - x_i^3 y_i + x_{i+1}^3 y_{i+1} - x_{i+1}^3 y_i + x_i^2 x_{i+1} y_{i+1} - x_i^2 x_{i+1} y_i + x_i x_{i+1}^2 y_{i+1} - x_i x_{i+1}^2 y_i ) \\ \end{aligned}\]

이제 모든 edge 적분들을 더하면.. (sum 되면서 두번째 항과 세번째 항은 상쇄된다.)

    \[\begin{aligned} I_x &= \frac{\rho}{12}\sum_{i=0}^{N-1} ( x_i^3 y_{i+1}  - x_i^2 x_{i+1} y_i + x_i^2 x_{i+1} y_{i+1} - x_i x_{i+1}^2 y_i + x_i x_{i+1}^2 y_{i+1} - x_{i+1}^3 y_i ) \\ &= \frac{\rho}{12}\sum_{i=0}^{N-1} ( x_i^2 ( x_i y_{i+1}  - x_{i+1} y_i ) + x_i x_{i+1} ( x_i y_{i+1} - x_{i+1} y_i ) + x_{i+1}^2 ( x_i y_{i+1} - x_{i+1} y_i ) ) \\ &= \frac{\rho}{12}\sum_{i=0}^{N-1} ( x_i^2 + x_i x_{i+1} + x_{i+1}^2 ) ( x_i y_{i+1}  - x_{i+1} y_i ) \\ \end{aligned}\]

같은 방법으로 I_y 를 구하면..

    \[I_y = \frac{\rho}{12}\sum_{i=0}^{N-1} ( y_i^2 + y_i y_{i+1} + y_{i+1}^2 ) ( x_i  y_{i+1} - x_{i+1} y_i )\]

이제 원점을 중심으로 하는 관성 모멘트를 구하면..

    \[\begin{aligned} I_o &= I_x + I_y \\ &= \frac{\rho}{12}\sum_{i=0}^{N-1} ( x_i^2 + y_i^2 + x_i x_{i+1} + y_i y_{i+1} + x_{i+1}^2 + y_{i+1}^2 ) ( x_i y_{i+1}  - x_{i+1} y_i ) \end{aligned}\]

2. 3차원 물체의 면적 모멘트 (moment of area)

3차원 물체의 면적 모멘트는 아래의 적분식이다.

    \[\int_V q(x, y, z) dV\]

위 적분식은 그대로 풀기 어려울 수 있기 때문에 Divergence Theorem 을 이용해 면적분으로 바꾼다.

    \[\begin{aligned} \int_V q(x, y, z) dV &\equiv \int_V \nabla \cdot F dV \\ &= \int_S F \cdot N dS \end{aligned}\]

필요한 함수 q(x, y, z) 와 그에 맞는 벡터장 함수 F 를 정리하면…

    \[\begin{aligned} q(x, y, z) = 1 & \longrightarrow F = x \hat{\imath} \\ q(x, y, z) = x & \longrightarrow F = \frac{1}{2} x^2 \hat{\imath} \\ q(x, y, z) = y & \longrightarrow F = \frac{1}{2} y^2\hat{\jmath} \\ q(x, y, z) = z & \longrightarrow F = \frac{1}{2} z^2\hat{k} \\ q(x, y, z) = x^2 & \longrightarrow F = \frac{1}{3} x^3 \hat{\imath} \\ q(x, y, z) = y^2 & \longrightarrow F = \frac{1}{3} y^3 \hat{\jmath} \\ q(x, y, z) = z^2 & \longrightarrow F = \frac{1}{3} z^3 \hat{k} \\ q(x, y, z) = xy & \longrightarrow F = \frac{1}{2} x^2 y \hat{\imath} \\ q(x, y, z) = yz & \longrightarrow F = \frac{1}{2} y^2 z \hat{\jmath} \\ q(x, y, z) = xz & \longrightarrow F = \frac{1}{2} z^2 x \hat{k} \\ \end{aligned}\]

결국 3차원 물체의 면적 모멘트는 아래와 같은 면적분식들을 푸는 것이 된다.3 (각각 0차 면적 모멘트, 1차 면적 모멘트, 관성 텐서 계산에 필요한 축평면의 2차 면적 모멘트와 관성 곱4)

(4)   \[\int_S x N_x dS, \]

(5)   \[\frac{1}{2} \int_S x^2 N_x dS, \quad \frac{1}{2} \int_S y^2 N_y dS, \quad \frac{1}{2} \int_S z^2 N_z dS, \]

(6)   \[\frac{1}{3} \int_S x^3 N_x dS, \quad \frac{1}{3} \int_S y^3 N_y dS, \quad \frac{1}{3} \int_S z^3 N_z dS, \]

(7)   \[\frac{1}{2} \int_S x^2 y N_x dS, \quad \frac{1}{2} \int_S y^2 z N_y dS, \quad \frac{1}{2} \int_S z^2 x N_z dS \]

2.1 Polyhedron 면적 모멘트

polyhedron 의 삼각형 내부의 점 P_i 는 아래와 같이 나타낼 수 있다. (여기서 u \ge 0, v \ge 0, u + v \le 1)

    \[\begin{aligned} P(u, v) &= P_i + (P_{i+1} - P_i) u + (P_{i+2} - P_i) v \\ &= P_i + E_1 u + E_2 v \end{aligned}\]

면의 미소넓이는

(8)   \[dS = \left\lvert \frac{\partial P}{\partial u} \times \frac{\partial P}{\partial v} \right\rvert du dv = \left\lvert E_1 \times E_2 \right\rvert du dv \]

면의 normal 은

(9)   \[N = \frac{E_1 \times E_2}{\left\lvert E_1 \times E_2 \right\rvert} \]

이제 식 (4), (5), (6), (7) 의 면적분식은 polyhedron 에서 triangle 적분들의 합으로 구할 수 있다. triangle 적분은 (8), (9) 에 의해 아래와 같이 쓸 수 있다.

(10)   \[\int_0^1 \int_0^{1-v} x (E_1 \times E_2)_x du dv, \]

(11)   \[\frac{1}{2} \int_0^1 \int_0^{1-v} x^2 (E_1 \times E_2)_x du dv, \quad \frac{1}{2} \int_0^1 \int_0^{1-v} y^2 (E_1 \times E_2)_y du dv, \quad \frac{1}{2} \int_0^1 \int_0^{1-v} z^2 (E_1 \times E_2)_z du dv, \]

(12)   \[\frac{1}{3} \int_0^1 \int_0^{1-v} x^3 (E_1 \times E_2)_x du dv, \quad \frac{1}{3} \int_0^1 \int_0^{1-v} y^3 (E_1 \times E_2)_y du dv, \quad \frac{1}{3} \int_0^1 \int_0^{1-v} z^3 (E_1 \times E_2)_z du dv, \]

(13)   \[\frac{1}{2} \int_0^1 \int_0^{1-v} x^2 y (E_1 \times E_2)_x du dv, \quad \frac{1}{2} \int_0^1 \int_0^{1-v} y^2 z (E_1 \times E_2)_y du dv, \quad \frac{1}{2} \int_0^1 \int_0^{1-v} z^2 x (E_1 \times E_2)_z du dv \]

2.2 Polyhedron 질량

(4) 는 부피를 나타낸다. polyhedron 의 부피는 triangle 적분식 (10) 을 모두 더하면 된다. triangle 적분식만 풀면

    \[\begin{aligned} \mathbf{TriangleIntegral} &= (E_1 \times E_2)_x \int_0^1 \int_0^{1-v} x_i + (x_{i+1} - x_i) u + (x_{i+2} - x_i) v du dv \\ &= (E_1 \times E_2)_x \int_0^1 \left[ x_i u + \frac{1}{2} (x_{i+1} - x_i) u^2 + \frac{1}{2} (x_{i+2} - x_i) v^2 \right]_0^{1-v} dv \\ &= (E_1 \times E_2)_x \int_0^1 \frac{1}{2} x_i + \frac{1}{2} x_{i+1} + \frac{1}{2} x_i v^2 + \frac{1}{2} x_{i+1} v^2 - x_i v - x_{i+1} v + x_{i+2} v - x_{i+2} v^2 dv \\ &= (E_1 \times E_2)_x \frac{1}{6} x_i + \frac{1}{6} x_{i+1} + \frac{1}{6} x_{i+2} \\ &= \frac{1}{6} (x_i + x_{i+1} + x_{i+2}) (E_1 \times E_2)_x \\ \end{aligned}\]

위의 triangle 적분식을 모두 더하면 부피가 되고, 질량 밀도 상수(\rho)를 곱하면 질량이 된다.

    \[\frac{\rho}{6}\sum_{i=0}^{N-1} (x_i + x_{i+1} + x_{i+2}) (E_1 \times E_2)_x\]

2.3 Polyhedron 질량 중심

(5) 를 부피로 나누면 질량 중심이 된다.

    \[\begin{aligned} C_x &= \frac{1}{2V} \int_S x^2 N_x dS \\ C_y &= \frac{1}{2V} \int_S y^2 N_y dS \\ C_z &= \frac{1}{2V} \int_S z^2 N_z dS \\ \end{aligned}\]

C_x 의 면적분은 polyhedron 의 triangle 적분의 합으로 나타낼 수 있다. 세점 (x_i, y_i, z_i), (x_{i+1}, y_{i+1}, z_{i+1}), (x_{i+2}, y_{i+2}, z_{i+2}) 으로 이루어진 triangle 적분은..

    \[\begin{aligned} \mathbf{TriangleIntegral} &= \frac{(E_1 \times E_2)_x}{2V} \int_0^1 \int_0^{1-v} x^2 du dv \\ &= \frac{(E_1 \times E_2)_x}{2V} \int_0^1 \int_0^{1-v} \bigl( x_i + E_1 u + E_2 v \bigr)^2 du dv \\ &= \frac{(E_1 \times E_2)_x}{2V} \int_0^1 \left[ \frac{ \bigl( x_i + E_1 u + E_2 v \bigr)^3 }{ 3 E_1 } \right]_0^{1-v} dv \\ &= \frac{(E_1 \times E_2)_x}{2V} \int_0^1 \frac{ E_1^3 (1 - v)^3 + 3E_1^2 (1-v)^2 (x_i + E_2 v) + 3E_1 (1-v) (x_i + E_2 v)^2 }{ 3 E_1 } dv \\ &= \frac{(E_1 \times E_2)_x}{2V} \int_0^1 \frac{ E_1^3 (1 - v)^3 }{ 3 E_1 } + (1 - v)(x_i + E_2 v)(E_1 - E_1 v + x_i + E_2 v) dv \\ &= \frac{(E_1 \times E_2)_x}{2V} \left[ -\frac{ E_1^4 (1 - v)^4 }{ 12 E_1^2 } + E_1 x_i v - E_1 x_i v^2 + x_i^2 v + E_2 x_i v^2 + \frac{1}{2} E_1 E_2 v^2 - \frac{2}{3} E_1 E_2 v^3 \right. \\  &\quad \left. + \frac{1}{3} E_2^2 v^3 + \frac{1}{3} E_1 x_i v^3 - \frac{1}{2} x_i^2 v^2 - \frac{2}{3} E_2 x_i v^3 + \frac{1}{4} E_1 E_2 v^4 - \frac{1}{4} E_2^2 v^4 \right]_0^1 \\ &= \frac{(E_1 \times E_2)_x}{2V} \frac{ E_1^2 4E_1 x_i 6x_i^2 + 4E_2 x_i + E_1 E_2 + E_2^2 }{12} \\ &= \frac{(E_1 \times E_2)_x}{2V} \frac{ x_i^2 + x_i x_{i+1} + x_{i+1}^2 + x_{i+2} x_i + x_{i+2} x_{i+1} + x_{i+2}^2 }{12} \\ &= \frac{1}{24V} ( x_i^2 + x_i x_{i+1} + x_{i+1}^2 + x_{i+2} ( x_i + x_{i+1} + x_{i+2} ) ) (E_1 \times E_2)_x \end{aligned}\]

이제 모든 triangle 적분들을 더하면 질량 중심 x 좌표가 된다.

    \[C_x = \frac{1}{24V} \sum_{i=0}^{N-1} ( x_i^2 + x_i x_{i+1} + x_{i+1}^2 + x_{i+2} ( x_i + x_{i+1} + x_{i+2} ) ) (E_1 \times E_2)_x\]

같은 방식으로 C_y, C_z 도 구하면

    \[\begin{aligned} C_y &= \frac{1}{24V} \sum_{i=0}^{N-1} ( y_i^2 + y_i y_{i+1} + y_{i+1}^2 + y_{i+2} ( y_i + y_{i+1} + y_{i+2} ) ) (E_1 \times E_2)_y \\ C_z &= \frac{1}{24V} \sum_{i=0}^{N-1} ( z_i^2 + z_i z_{i+1} + z_{i+1}^2 + z_{i+2} ( z_i + z_{i+1} + z_{i+2} ) ) (E_1 \times E_2)_z \end{aligned}\]

2.4 Polyhedron 관성 텐서(inertia tensor)

2차원에서 관성 모멘트는 회전축이 고정되어 있으므로 scalar 값이었지만, 3차원에서는 회전축을 임의로 잡기 때문에 텐서 형태가 된다. 먼저 관성 텐서 행렬을 유도해 보겠다.

임의의 축 \hat n 에 대한 질점 p 의 관성 모멘트는.. (여기서 I_3 는 3×3 단위 행렬을 나타낸다).

    \[\begin{aligned} I_{\hat n} &= \rho r^2 \\ &= \rho \left\lvert p - (\hat n \cdot p) \hat n \right\rvert^2 \\ &= \rho \bigl( p \cdot p  - 2(p \cdot \hat n)^2 + (p \cdot \hat n)^2 \bigr) \\ &= \rho \bigl( p \cdot p - (p \cdot \hat n)^2 \bigr) \\ &= \rho \bigl( (p \cdot p) \hat n - (p \cdot \hat n) p \bigr) \hat n \\ &= \rho \Bigl( \bigl( (p \cdot p) I_3 - (p \otimes p) \bigr) \hat n \Bigr) \hat n \\ &= \rho   \begin{bmatrix}     \hat n_x & \hat n_y & \hat n_z   \end{bmatrix}   \Biggl(    \begin{bmatrix}     x^2 + y^2 + z^2 \\     & x^2 + y^2 + z^2 \\     & & x^2 + y^2 + z^2   \end{bmatrix} -    \begin{bmatrix}     x^2 & xy & xz \\     yx & y^2 & yz \\     zx & zy & z^2   \end{bmatrix}    \Biggr)   \begin{bmatrix}     \hat n_x \\ \hat n_y \\ \hat n_z   \end{bmatrix} \\ &= \rho   \begin{bmatrix}     \hat n_x & \hat n_y & \hat n_z   \end{bmatrix}   \begin{bmatrix}     y^2 + z^2 & -xy & -xz \\     -yx & x^2 + z^2 & -yz \\     -zx & -zy & x^2 + y^2   \end{bmatrix}    \begin{bmatrix}     \hat n_x \\ \hat n_y \\ \hat n_z   \end{bmatrix} \\ &= \rho \hat n^T I \hat n \end{aligned}\]

여기서 I 를 관성 텐서라고 부른다. (mass matrix 라고도 함)

모든 질점에 대해서 나타내면

    \[\begin{aligned} I_{\hat n} &= \int_V \rho \hat n^T I \hat n dV \\ &= \rho \hat n^T ( \int_V I dV ) \hat n \end{aligned}\]

결국 입체의 관성 모멘트를 구하기 위해 I 의 성분 별 적분식을 구하면 되고, 이 적분식은 (6), (7) 을 풀면 구할 수 있다. 식 (6), (7) 은 triangle 적분식 (12), (13) 들로 나타낼 수 있기 때문에, 풀어 보면..5

    \[\begin{aligned}  \mathbf{TriangleIntegral} &= \frac{1}{3} \int_0^1 \int_0^{1-v} x^3 (E_1 \times E_2)_x du dv \\ &= \frac{(E_1 \times E_2)_x}{3} \int_0^1 \int_0^{1-v} \bigl( x_i + E_1 u + E_2 v \bigr)^3 du dv \\ &= \frac{(E_1 \times E_2)_x}{3} \int_0^1 \left[ \frac{ \bigl( x_i + E_1 u + E_2 v \bigr)^4 }{ 4 E_1 } \right]_0^{1-v} dv \\ &= \frac{(E_1 \times E_2)_x}{3} \int_0^1 \frac{ E_1^4 (1 - v)^4 + 6E_1^2 (1-v)^2 (x_i + E_2 v)^2 + 4E_1^3 (1-v)^3 (x_i + E_2 v) + 4E_1(1-v)(x_i + E_2v)^3 }{ 4 E_1 } dv \\ &= \frac{(E_1 \times E_2)_x}{3} \int_0^1 \frac{ E_1^4 (1 - v)^4 }{ 4 E_1 } + (1 - v)(x_i + E_2 v)( \frac{3}{2} E_1 (1-v)(x_i + E_2 v) + E_1^2 (1-v)^2 + (x_i + E_2 v)^2 ) dv \\ &= \frac{(E_1 \times E_2)_x}{3} \left[ -\frac{ E_1^5 (1 - v)^5 }{ 20 E_1^2 } + \frac{3}{2} E_1 (x_i^2 v + E_2 x_i v^2 + \frac{1}{3} E^2 v^3 - x_i^2 v^2 - \frac{3}{4} E_2 x_i v^3 - \frac{1}{2} E_2^2 v^4 + \frac{1}{3} x_i^2 v^3 + \frac{1}{2} E_2 x_i v^4 + \frac{1}{5} E_2^2 v^5) \right. \\ &\quad \left. + E_1^2 (x_i v + \frac{1}{2} E_2 v^2 - \frac{3}{2} x_i v^2 - E_2 v^3 + x_i v^3 + \frac{3}{4} E_2 v^4 - \frac{1}{4} x_i v^4 - \frac{1}{5} E_2 v^5) \right. \\ &\quad \left. + x_i^3 v + \frac{3}{2} x_i^2 E_2 v^2 + x_i E_2^2 v^3 + \frac{1}{4} E_2^3 v^4 - \frac{1}{2} x_i^3 v^2 - x_i^2 E_2 v^3 - \frac{3}{4} x_i E_2^2 v^4 - \frac{1}{5} E_2^3 v^5 \right]_0^1 \\ &= \frac{(E_1 \times E_2)_x}{3} \frac{1}{20} E_1^3 + \frac{3}{2} E_1 ( \frac{1}{6} E_2 x_i + \frac{1}{30} E_2^2 + \frac{1}{3} x_i^2 ) + E_1^2 ( \frac{1}{4} x_i + \frac{1}{20} E_2 ) + \frac{1}{2} x_i^3 + \frac{1}{2} x_i^2 E_2 + \frac{1}{4} x_i E_2^2 + \frac{1}{20} E_2^3 \\ &= \frac{(E_1 \times E_2)_x}{3} \frac{1}{20} \bigl( E_1 ( 5 E_2 x_i + E_2^2 + 10x_i^2 ) + E_1^2 (E_1 + 5x_i + E_2) + 10x_i^3 + 10x_i^2 E_2 + 5x_i E_2^2 + E_2^3 \bigr) \\ &= \frac{(E_1 \times E_2)_x}{3} \frac{1}{20} \bigl( E_1 (6x_i^2 + 3x_i x{i+2} + x_{i+2}^2) + E_1^2(3x_i + x_{i+1} + x_{i+2}) + E_2^2(4x_i + x_{i+2}) + 10x_i^2 x_{i+2} \bigr) \\ &= \frac{(E_1 \times E_2)_x}{3} \frac{1}{20} \Bigl( x_i^3 + x_i^2 x_{i+1} + x_i x_{i+1}^2 + x_{i+1}^3 + x_{i+2} \bigl( x_i^2 + x_i x_{i+1} + x_{i+1}^2 + x_{i+2} ( x_i + x_{i+1} + x_{i+2} ) \bigr) \Bigr) \\ &= \frac{(E_1 \times E_2)_x}{60} \Bigl( x_i^3 + x_i^2 x_{i+1} + x_i x_{i+1}^2 + x_{i+1}^3 + x_{i+2} \bigl( x_i^2 + x_i x_{i+1} + x_{i+1}^2 + x_{i+2} ( x_i + x_{i+1} + x_{i+2} ) \bigr) \Bigr) \end{aligned}\]

이제 모든 삼각형에 대해서 더하면

(14)   \[T_{\mathrm{x}^2} = \frac{1}{60} \sum_{i=0}^{N-1} \Bigl( x_i^3 + x_i^2 x_{i+1} + x_i x_{i+1}^2 + x_{i+1}^3 + x_{i+2} \bigl( x_i^2 + x_i x_{i+1} + x_{i+1}^2 + x_{i+2} ( x_i + x_{i+1} + x_{i+2} ) \bigr) \Bigr) (E_1 \times E_2)_x \]

같은 방식으로 식 (6) 을 마저 푼다.

(15)   \[T_{\mathrm{y}^2} = \frac{1}{60} \sum_{i=0}^{N-1} \Bigl( y_i^3 + y_i^2 y_{i+1} + y_i y_{i+1}^2 + y_{i+1}^3 + y_{i+2} \bigl( y_i^2 + y_i y_{i+1} + y_{i+1}^2 + y_{i+2} ( y_i + y_{i+1} + y_{i+2} ) \bigr) \Bigr) (E_1 \times E_2)_y \]

(16)   \[T_{\mathrm{z}^2} = \frac{1}{60} \sum_{i=0}^{N-1} \Bigl( z_i^3 + z_i^2 z_{i+1} + z_i z_{i+1}^2 + z_{i+1}^3 + z_{i+2} \bigl( z_i^2 + z_i z_{i+1} + z_{i+1}^2 + z_{i+2} ( z_i + z_{i+1} + z_{i+2} ) \bigr) \Bigr) (E_1 \times E_2)_z \]

마지막으로 식 (7) 을 풀면

(17)   \[\begin{aligned} T_{\mathrm{xy}} &= \frac{1}{2} \sum_{i=0}^{N-1} \int_0^1 \int_0^{1-v} x^2 y (E_1 \times E_2)_x du dv \\ &= \frac{1}{120} \sum_{i=0}^{N-1} y_i \bigl( x_i^2 + x_i x_{i+1} + x_{i+1}^2 + x_{i+2} (x_i + x_{i+1} + x_{i+2}) + x_i (2x_i + x_{i+1} + x_{i+2}) \bigr) \\ &\quad\quad + y_{i+1} \bigl( x_i^2 + x_i x_{i+1} + x_{i+1}^2 + x_{i+2} (x_i + x_{i+1} + x_{i+2}) + x_{i+1} (x_i + 2x_{i+1} + x_{i+2}) \bigr) \\ &\quad\quad + y_{i+2} \bigl( x_i^2 + x_i x_{i+1} + x_{i+1}^2 + x_{i+2} (x_i + x_{i+1} + x_{i+2}) + x_{i+2} (x_i + x_{i+1} + 2x_{i+2}) \bigr) E_1 \times E_2)_x  \end{aligned}\]

(18)   \[\begin{aligned} T_{\mathrm{yz}} &= \frac{1}{2} \sum_{i=0}^{N-1} \int_0^1 \int_0^{1-v} y^2 z (E_1 \times E_2)_y du dv \\ &= \frac{1}{120} \sum_{i=0}^{N-1} z_i \bigl( y_i^2 + y_i y_{i+1} + y_{i+1}^2 + y_{i+2} (y_i + y_{i+1} + y_{i+2}) + y_i (2y_i + y_{i+1} + y_{i+2}) \bigr) \\ &\quad\quad + z_{i+1} \bigl( y_i^2 + y_i y_{i+1} + y_{i+1}^2 + y_{i+2} (y_i + y_{i+1} + y_{i+2}) + y_{i+1} (y_i + 2y_{i+1} + y_{i+2}) \bigr) \\ &\quad\quad + z_{i+2} \bigl( y_i^2 + y_i y_{i+1} + y_{i+1}^2 + y_{i+2} (y_i + y_{i+1} + y_{i+2}) + y_{i+2} (y_i + y_{i+1} + 2y_{i+2}) \bigr) E_1 \times E_2)_y \end{aligned}\]

(19)   \[\begin{aligned} T_{\mathrm{zx}} &= \frac{1}{2} \sum_{i=0}^{N-1} \int_0^1 \int_0^{1-v} z^2 x (E_1 \times E_2)_z du dv \\ &= \frac{1}{120} \sum_{i=0}^{N-1} x_i \bigl( z_i^2 + z_i z_{i+1} + z_{i+1}^2 + z_{i+2} (z_i + z_{i+1} + z_{i+2}) + z_i (2z_i + z_{i+1} + z_{i+2}) \bigr) \\ &\quad\quad + x_{i+1} \bigl( z_i^2 + z_i z_{i+1} + z_{i+1}^2 + z_{i+2} (z_i + z_{i+1} + z_{i+2}) + x_{i+1} (z_i + 2z_{i+1} + z_{i+2}) \bigr) \\ &\quad\quad + x_{i+2} \bigl( z_i^2 + z_i z_{i+1} + z_{i+1}^2 + z_{i+2} (z_i + z_{i+1} + z_{i+2}) + x_{i+2} (z_i + z_{i+1} + 2z_{i+2}) \bigr) E_1 \times E_2)_z \end{aligned}\]

관성 텐서 I 를 구하기 위한 식들 (14), (15), (16), (17), (18), (19) 의 준비가 끝났다. 이제 I 를 구하면

    \[I =  \begin{bmatrix}    T_{\mathrm{y}^2} + T_{\mathrm{z}^2} & -T_{\mathrm{xy}} & -T_{\mathrm{xz}} \\   -T_{\mathrm{xy}} & T_{\mathrm{x}^2} + T_{\mathrm{z}^2} & -T_{\mathrm{yz}} \\   -T_{\mathrm{xz}} & -T_{\mathrm{yz}} & T_{\mathrm{x}^2} + T_{\mathrm{y}^2} \end{bmatrix}\]

행렬의 대각 성분들은 각 x, y, z 축 별 관성 모멘트(moment of inertia) 를 나타내고, 나머지 성분들은 관성곱(product of inertia) 이라 한다.

참고로 polyhedron 질량 특성들을 한꺼번에 효율적으로 계산하는 의사코드가 Polyhedral Mass Properties (Revisited) – David Eberly 문서에 담겨있다.

3. 끝으로..

지금까지 폴리곤과 다면체의 질량 특성들을 구하는 방법을 설명했다. 질량 특성들은 강체의 직선 운동이나 회전 운동을 다룰때 꼭 필요한 물리량들이다. 실제로 많은 물리 엔진들이 일반적인 입체를 다룰 때 위의 식들을 사용하고, 박스나 구등의 간단한 입체를 사용할 땐 최적화된 간단한 식을 쓰곤 한다.

마지막으로 식의 유도과정 중에 등장한 Green’s Theorem 이나 Divergence Theorem 의 자세한 내용들이 알고 싶다면 벡터 미적분에 대해서 찾아보길 바라고, 역학 법칙이나 질량 특성의 의미에 대한 자세한 내용은 위키피디아나 일반 역학책을 참고하길 바란다.

4. 참고 (Reference)

  1. Polyhedral Mass Properties (Revisited)
    David Eberly, Geometric Tools, LLC
    http://www.geometrictools.com/Documentation/PolyhedralMassProperties.pdf
  2. Calculus
    Gilbert Strang
    http://math.mit.edu/calculus/
  3. Game Engine Gems 1 – 14. Moments of Inertia for Common Shapes
    Eric Lengyel
    http://www.amazon.com/Game-Engine-Gems-Eric-Lengyel/dp/0763778885
  4. Moment of Inertia
    from Wikipedia
    http://en.wikipedia.org/wiki/Moment_of_inertia
  5. List of moments of inertia
    from Wikipedia
    http://en.wikipedia.org/wiki/List_of_moments_of_inertia
  1. 면적 모멘트(moment of area) 를 단면 모멘트라고도 한다.
  2. 반시계 방향 외곽 폴리곤 edge 들이 필요하지만, 폴리곤 내부 edge 적분은 상쇄되기 때문에 계산할 때 내부 edge 를 포함해도 상관이 없다.
  3. 관성곱(product of inertia) 은 면적 모멘트가 아니지만 면적 모멘트식과 비슷한 형태이기 때문에 함께 넣었다. 관성 평면 2차 모멘트와 관성곱은 관성 텐서 행렬을 구할때 필요하다.
  4. polyhedron 의 면적분을 좌표평면에 투영하면 Green’s Theorem 으로 선적분으로 바꿀 수 있으나 Polyhedral Mass Properties (Revisited) – David Eberly 의 문서에 의하면 면이 삼각형일때 그렇게까지 할 필요는 없다고 한다. (직접 확인은 안해봤음)
  5. 여기서부턴 적분식들이 손으로 풀기 까다롭기 때문에, 할 수 있다면 math 소프트웨어로 푸는게 더 나을 것이다. 나도 손으로 풀다가 마지막 3개는 포기했다. -_-

Leave a Reply

Your email address will not be published. Required fields are marked *