일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Zotero
- 딥러닝
- 논문작성법
- Statics
- 생산성
- 에러기록
- obsidian
- teps
- Numerical Analysis
- 텝스
- 인공지능
- 옵시디언
- 수치해석
- 논문작성
- Dear abby
- JAX
- 우분투
- IEEE
- LaTeX
- 고체역학
- pytorch
- WOX
- Julia
- ChatGPT
- Linear algebra
- 수식삽입
- 텝스공부
- matplotlib
- Python
- MATLAB
- Today
- Total
뛰는 놈 위에 나는 공대생
[항공우주] Flight Dynamics Description 본문
비행동역학을 공부하면서 헷갈렸던 부분이 많아서 따로 정리하는 글이다.
동역학을 할 때 배웠던 개념이 대부분이지만 막상 쓰려고 하면 혼동이 되는 것이 많다. (왜 이렇게 쓰이는 거지 갑자기 생각이 들 때가 있다.)
그 이유는, preliminaries 즉 기초 내용을 다룰 때 엄밀히 따지지 않아도 충분히 이해가 되지만 실제 문제에 적용할 때는 고려를 해야하기 때문이다.
동역학 내용부터 항공기에 적용하기까지 (내 생각대로) 정리해볼 생각이다.
1. Frame (of reference) / Vector / Coordinate
1.1 Frame
Frame는 두 개로 분류할 수 있다. 하나는 뉴턴 법칙이 성립하는 관성좌표계(Inertial Frame)이고, 다른 하나는 뉴턴 법칙이 성립하지 않는 비관성좌표계(Non-inertial Frame)이다. 보통 가속하는 좌표계를 비관성좌표계라고 말하는데, 고등학교 물리시간에만 해도 가속하는 우주선에서 운동을 해석하는 것을 생각하면 된다. 이러한 비관성좌표계를 설명하기 위해서는 관성력이라는 개념을 도입해야만 물리법칙을 기술할 수 있다.
등속 원운동하는 물체에 대한 Frame이 있다면 그 Frame에서 봤을 때는 원심력과 구심력의 평형을 이루는 것으로 해석할 수 있다. 원운동하는 물체 위에서는 원운동이 감지되지 않기 때문이다. 그러나 관성좌표계에서는 구심력을 작용해서 구심력이 속도의 방향을 바꿔서 원운동을 가능하게 함을 알 수 있다.
따라서 만약 관성좌표계에 대해 회전하는 좌표계가 있다면 그 좌표계는 비관성좌표계로 볼 수 있다.
일반적으로 관성좌표계는 존재하지 않는다고 보지만 helio-astronomic frame을 관성좌표계의 근사로 볼 수 있다.
우리가 시스템에 대해 물리법칙(뉴턴법칙, 각운동량 법칙 등)을 적용하고 싶다면 관성좌표계에 대해서 계산해야한다.
$F=Ma=M\frac{d^{2}x}{dt^{2}}$
여기서 진행되는 미분은 관성좌표계에서 해야하는 것이다.
그런데 만약 position을 정의할 때 비관성좌표계 기준으로 생각해야할 때가 있으므로 관성좌표계에서 봤을 때의 미분과 비관성좌표계에서 봤을 때의 미분의 차이에 주의해야 한다. (뒤에서 설명)
1.2 Vector and Coordinate
Frame과 혼동되는 개념 중에 Vector와 Coordinate가 있다. 아래에 refer[1]에서 가져온 개념이 있으니 읽어보는 것을 추천한다. Vector는 방향과 크기를 가지는 물리량이라고 일반물리에서 배웠을 것이다. 그러나 고체역학을 들어가면 free vector에 대해서도 배우게 된다. 모멘트와 속도는 평행하게 움직일 수 있는 벡터이다. translation을 해도 크기와 방향이 변하지 않는 벡터라고 생각하면 된다. (rotation은 제외!) 우리가 흔히 생각하는 position vector가 bounded vector이다. 이 경우에는 고정된 점이 꼭 필요하다. free vector는 크기와 방향이 있지만 translation이 가능하기 때문에 시작점이 자유롭게 바뀔 수 있다.
그런데 우리는 $[x,y,z]^{\top}$ 이런 array와 벡터를 혼동하는 경향이 있다. 같은 벡터를 다른 coordinate system에서 묘사하면, 같은 벡터라고 할 지라도 다르다. 또한 coordinate system은 frame과 다른 개념이다. coordinate는 원점이 바뀔 수 있는, 특정 점에 대해 물리량을 정의하기 위한 시스템이다. 하나의 frame of reference는 여러 개의 coordinate system을 가질 수 있다. 같은 frame이어서 방향은 같지만 원점을 지구 중심으로 두느냐, 다른 특정 지점으로 두느냐 이런 차이로 생각해볼 수 있다. 따라서 vector를 array로 표현할 때 coordinate system에 따라 다르다고 볼 수 있다.
여기서 중요한 점은 frame은 더 포괄적인 개념이고, 벡터는 frame of reference에 대해 상대적이다. frame이 회전하고 있으면 벡터도 같이 회전하기 때문이다. 다만 같은 frame 안에서 coordinate system와는 독립적으로 정해지며, 다만 우리가 흔히 하는 벡터 형태로 나타내려면 coordinate system이 필요하게 된다는 점이다. 어쨌든 unit vector를 정의하고 그 unit vector를 기준으로 크기를 표현해야하기 때문이다.
coordinate를 바꾸려고 한다면 우리가 선형대수학에서 배웠던 coordinate transformation을 사용해야한다. 이를 위해 사용하는 rotation matrix를 Direction Cosine Matrix(DCM)이라는 개념으로 보통 배우게 된다. right handed rotation이 기준으로 하는 경우가 많다.
Frame of Reference: A rigid body or set of rigidly related points that can be used to establish distances and directions (denoted by Fi, Fe, etc.). In general, a subscript used to indicate a frame will be lowercase, while a subscript used to indicate a point will be uppercase.
Inertial Frame: A frame of reference in which Newton’s laws apply. Our best inertial approximation is probably a “helio-astronomic” frame in which the center of mass (cm) of the sun is a fixed point, and fixed directions are established by the normal to the plane of the ecliptic and the projection on that plane of certain stars that appear to be fixed in position.
Vector: A vector is an abstract geometrical object that has both magnitude and direction. It exists independently of any coordinate system. The vectors used here are Euclidean vectors that exist only in three-dimensional space and come in two main types:
Bound Vector: A vector from a fixed point in a frame (e.g., a position vector).
Free Vector: Can be translated parallel to itself (e.g., velocity, torque).
Coordinate System: A measurement system for locating points in a frame of reference. We may have multiple coordinate systems (with no relative motion) within one frame of reference, and we sometimes loosely refer to them also as “frames.”
For position vectors, the notation should specify the two points whose relative position the vector describes. Velocity and acceleration vectors are relative to a frame of reference, and the notation should specify the frame of reference as well as the moving point.
2. Angular Momentum
이후에 공부할 equations of motion을 위해 각운동량에 대한 개념을 다시 짚고 넘어가려고 한다.
Absolute angular momentum about center of gravity:
$H_{G}=\sum(r_{i}\times m_{i}v_{i})$
여기서 $r_{i}$는 무게중심에서 떨어진 거리, $v_{i}$는 절대적인 속도면서 $v_{i}=\bar{v}+\omega \times r_{i}$로 구할 수 있다. $\omega \times r_{i}$는 $m_{i}$가 가지는, 무게중심에 대해 상대적인 속도이고 $\bar{v}$는 무게 중심의 속도이다.
이렇게 해서 $H_{G}=-\bar{v} \times \sum m_{i}r_{i}+\sum \left[ r_{i}\times m_{i}\left(\omega\times r_{i}\right)\right]$
3. Derivatives in Different frame
Translational Dynamics에 대해서 이야기하기 위해서는 힘과 속도 변화에 대해 이야기해야한다.
Body에 작용하는 external force(외부힘) $F_{B}$가 있고 이 힘은 Body coordinate system을 기준으로 정의된 것이다. 또한 Inertial frame에 대해 vehicle의 center of gravity의 속도($v_{B}$) 변화를 본다.
$v_{B} = [u,v,w]^{\top}$
보통 비행체의 x축 방향의 속도를 u, y축 방향의 속도를 v, z축 방향의 속도를 w로 표현한다. 위의 속도 벡터는 inertial frame에서 body coordinate를 축으로 표현한 속도로 봐야한다. (같은 방향과 크기의 벡터라도 어떤 coordinate인지에 따라 벡터의 성분 값은 달라진다.) 위의 $v_{B}$는 분명 지표에 고정된 Inertial frame에서 center of gravity(point $B$)까지의 position vector를 $r_{B}$라고 할 때 이 벡터를 inertial frame에 대해서 미분하면 된다. 그런데 body frame (vehicle frame, moving frame 등 다양하게 부름)이 rotation을 하고 따라서 body frame에서 미분한 것과 구별을 해야한다. 속도 벡터는 free vector이기 때문에 translation는 상관없지만 rotation에는 영향을 받기 때문이다. 또한 이렇게 말하면 혼동이 될까봐 다시 언급하자면, 이런 free vector는 고정점이 필요없는 것이 절대 아니다. 그 고정점이 변할 수 있다는 것 뿐.
만약 한 속도 벡터가 coordinate system $c$에서 표현이 되고 이 coordinate system이 frame a에 대해서 고정이 되어있다고 해보자.
$v^{c} = [v_{x}, v_{y}, v_{z}]^{\top}$
이 속도 벡터를 frame a에 대해서 미분하면 아주 간단하게 구할 수 있다.
$^{a}\dot{v}^{c}=[\dot{v}_{x}, \dot{v}_{y}, \dot{v}_{z}]^{\top}$
위 그림에서 벡터 P는 Rotating frame인 $F_b$에서 Q점에서 시작된 어떤 벡터이다. (여기서는 특별히 Position vector라거나 velocity vector라고 생각하지 말자.) 이 벡터를 미분하면 미분된 것은 free vector이다.
이 때 다음이 성립한다.
$^{a}\dot{p}=^{b}\dot{p}+\omega_{b/a}\times p$
한 frame에서 다른 frame에 고정된 벡터를 미분하고 싶을 때는 위와 같이 써야한다.
만약 frame a에 대해 frame b가 회전하지 않는다면 $^{a}\dot{p}=^{b}\dot{p}$가 성립한다.
또한 강조하고 싶은 점은 $\omega_{b/a}$에 대한 것이다. 우리가 실제 계산을 하는 것은 저런 문자들이 아니라 array이다. 저 $\omega_{b/a}$는 위의 그림에서 보았을 때 frame b에 표현되어있으며 위 식에서도 우변을 보면 frame b에 대한 내용이기 때문에 $\omega_{b/a}$도 frame b에 대해 표현될 것이다. 즉, 후에 다룰 vehicle에 경우에는 $\omega_{b/a}$는 body frame의 관점에서 표현된다.
참고
$^{Lsup}A_{Rsub}^{Rsup}$
left superscript(Lsup)는 derivatiave를 수행하는 frame을 의미하고 right subscript(Rsub)는 주로 a/b와 같이 a with respect to b라는 의미로 많이 쓰인다. 위의 $\omega_{b/a}$는 $F_{a}$에 대한 $F_{b}$의 angular velocity라고 할 수 있다.
여기서는 나오지 않지만 right superscript(Rsup)는 coordinate system을 의미한다. 즉, 특정 coordinate system에 대한 array를 의미한다고 볼 수 있다.
4. Equations of Motion
Translational Dynamics에 대한 식은 다음과 같다.
$\Sigma F_{B} = \left. \frac{d(mv_{B})}{dt} \right|_{I} = \left. m\left(\frac{dv_{B}}{dt} \right|_{B}+\omega_{B}\times v_{B} \right)$
$\Rightarrow \left. \frac{dv_{B}}{dt} \right|_{B} = \frac{\Sigma F_{B}}{m}-\omega_{B} \times v_{B}$
여기서 $v_{B}$는 vehicle의 center of gravity를 Fixed point B로 한 속도 벡터를 inertial frame $I$에서 본 것이고, 이를 Frame b에서 미분한 게 $\left. \frac{dv_{B}}{dt} \right|_{B}$이다.
$\omega_{B}$는 inertial frame $I$에서 본 body frame $B$의 각속도이다.
$\omega_{B}=[p,q,r]^{\top}$에서 x,y,z는 body coordinate의 각 unit vector이다. array를 만들기 위한 것이므로 frame이 아닌 coordinate이라고 말하는 게 더 정확할 것이다. (body coordinate는 body에 고정되어있을테니 body frame에 대대한 각속도라도 표현하는 경우가 많다.) 또한 body frame에 대해 쓴 $[p,q,r]^{\top}$과 inertial frame에서 구한 $[\dot{\phi}, \dot{\theta}, \dot{\psi}]^{\top}$의 관계식을 구할 수도 있다.
$\left[\begin{array}{c}\dot{\phi} \\ \dot{\theta} \\ \dot{\psi}\end{array}\right]=\left[\begin{array}{ccc}1 & \sin \phi \tan \theta & \cos \phi \tan \theta \\ 0 & \cos \phi & -\sin \phi \\ 0 & \sin \phi \sec \theta & \cos \phi \sec \theta\end{array}\right]\left[\begin{array}{l}p \\ q \\ r\end{array}\right]$
$[p,q,r]^{\top}$와 $[\dot{\phi}, \dot{\theta}, \dot{\psi}]^{\top}$는 동일한 벡터이지만 coordinate system이 달라서 coordinate transformation을 하는 것이고, 그래서 array의 component가 변화했다고 해석할 수 있다.
$\left. \frac{dv_{B}}{dt} \right|_{B} = \frac{\Sigma F_{B}}{m}-\omega_{B} \times v_{B}$
이 식을 matrix로 나타내면 다음과 같다.
$\left[\begin{array}{c}\dot{u} \\ \dot{v} \\ \dot{w}\end{array}\right]=\frac{1}{m}\left[\begin{array}{c}f_{B, x} \\ f_{B, y} \\ f_{B, z}\end{array}\right]-\left[\begin{array}{ccc}0 & -r & q \\ r & 0 & -p \\ -q & p & 0\end{array}\right]\left[\begin{array}{c}u \\ v \\ w \end{array}\right]$
여기서 알 수 있는 것은 모두 body coordinate로 표현된 것이다. (뉴턴법칙을 표현한 것이니) inertial frame인 것은 맞지만 x,y,z 성분의 방향이 모두 body coordinate 기준으로 되어있다. 이는 보통 vehicle에 붙어있는 센서의 값이 body coordinate에 대해 산출되는 경우가 많아서 센서 값을 받아 계산할 때 유용하다는 장점이 있다.
만약 inertial frame에서 지표면을 원점으로 coordinate system을 잡는다면 coordinate transform을 해주면 될 것이다.
Rotational Dynamics도 비슷하게 진행된다.
$\Sigma M_{B}=\frac{dH_{G}}{dt}=\left. \frac{d(I_{B}\omega_{B})}{dt} \right|_{I} = \frac{d(I_{B}\omega_{B})}{dt}+\omega_{B} \times (I_{B}\omega_{B})$
여기서 $\omega_{B}$는 inertial frame I에 대한 body frame B의 각속도를 의미하고, $I_{B}$는 body coordinate 기준으로 얻은 vehicle moment of inertia이다. 여기서 body frame, coordinate를 사용하는 장점이 또 있다. 만약 inertial frame의 coordinate를 쓴다면 moment of inertia를 vehicle의 attitude가 변할 때마다 새로 구해줘야한다는 문제가 있다.
$M_{B}$는 vehicle에 작용하는 모멘트를 body coordinate 방향 기준으로 표현한 것이다.
$\Rightarrow \frac{d\omega_{B}}{dt}=I_{B}^{-1}\left[ -\omega_{B}\times (I_{B}\omega_{B}) + \Sigma M_{B}\right]$
가장 중요한 것은 frame of reference, vector, coordinate 이 세 가지를 구별해서 식을 이해하는 것이다. 나는 지금까지 frame과 coordinate를 구별하지 않고, vector와 array(vector를 coordinate 상에서 표현한 것)을 구별하지 않아서 식을 표현함에 있어 어려움을 겪었고 이번 기회에 다소 두서없이 정리했다.
나중에 더 깨닫게 된 바가 있다면 더 추가할 생각이다.
참고문헌
Brian L. Stevens, Frank L. Lewis, Eric N. Johnson, Aircraft Control and Simulation, 3rd edition.
비행동역학 수업자료
'항공우주 Aeronautical engineering' 카테고리의 다른 글
[비행동역학] Lateral dynamics에 대한 이해 (0) | 2021.12.17 |
---|---|
[항공우주] 비행기의 control surface와 관련된 control coefficients (0) | 2021.12.04 |
[항공우주] Lift coefficient와 Mach number/Pressure coefficient의 관계 (0) | 2021.09.12 |
[항공우주] Lift, Drag, Moment 변화 (0) | 2021.09.12 |
[항공우주] Airfoil 용어 정리 (0) | 2021.09.09 |