일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 텝스공부
- 논문작성
- LaTeX
- JAX
- 에러기록
- teps
- Python
- 논문작성법
- 텝스
- 인공지능
- obsidian
- Statics
- 딥러닝
- Dear abby
- 고체역학
- MATLAB
- ChatGPT
- Linear algebra
- 생산성
- 옵시디언
- WOX
- Zotero
- IEEE
- 수치해석
- pytorch
- 수식삽입
- Numerical Analysis
- 우분투
- matplotlib
- Julia
- Today
- Total
뛰는 놈 위에 나는 공대생
[항공우주] Guidance, Navigation, and Control (GNC)란 무엇인가 본문
[항공우주] Guidance, Navigation, and Control (GNC)란 무엇인가
보통의공대생 2023. 12. 7. 21:35최근 Journal of Guidance, Control, and Dynamics (이하 JGCD) editorial에 있는 세 개의 글을 보고 정리하는 글이다. 참고한 글에 대한 정보는 하단에 남기도록 하겠다.
특히나 Guidance와 control은 application을 보면 혼용해서 쓰기도 하고 모호한 부분이 있어서 이런 글들을 통해 알아보고 싶었다. JGCD의 훌륭한 에디터 님의 말에 내 의견도 숟가락을 얹어보도록 하겠다.
참고로 여기서는 항공우주 분야 저널이기 때문에 어플리케이션이나 분류 자체가 항공우주 분야에 맞춰져있다.
목차
1. What is guidance?
2. What is navigation?
3. What is control?
1. What is guidance?
항공우주공학에서 쓰이는 Guidance는 주로 미사일, 로켓, 항공기에 사용되는 유도를 말한다.
다만 드론, 로봇, 로버(rover) 등의 어플리케이션에서 Path generation, Trajectory generation 등의 이름으로 다른 논문에도 쓰인다. 대략적으로 말하면, 내가 원하는 state의 시간에 따른 스케쥴이 있고, 이 Desired state로 보내는 과정이 우리가 시스템을 제어하는 방식이다. 그렇다면 앞서 말한 스케쥴은 Trajectory, Path, Guidance Command 등의 이름으로 불리고, 이 스케쥴을 만드는 로직은 guidance라고 할 수 있다. 또한 이 state를 추종하도록 제어입력을 출력하는 로직은 제어라고 할 수 있다.
아래는 Ping Lu 교수님께서 쓴 guidance의 정의이다.
Guidance is about the determination of the maneuvering commands to steer the vehicle to fly a trajectory that satisfies the specified terminal/targeting condition as well as other pertinent constraints, and, if required, optimizes a defined performance.
여기서 몇 가지 저자가 짚은 포인트
1) guidance command 생성은 반드시 onboard, real-time으로 생성되어야 한다. 따라서 onboard guidance와 같은 말은 불필요하다. 이미 guidance라는 말 안에 포함된 개념이기 때문이다.
2) guidance은 closed loop 형태가 일반적이다. 물론 open-loop guidance도 존재한다.
3) guidance command로는 orientation, directional angles, aerodynamic angles, vectors, accelaration vectors, the magnitude of the applied force (thrust) 등이 있다.
4) trajectory라는 말이 중요한데 기본적으로 translational dynamics (3DOF)가 guidance를 구할 때 반영되기 때문이다. 이는 보통 rotational dynamics가 translational dynamics보다 빠르기 때문에 time-seperation 측면에서 통용된다. 그러나 저자는 kinematics만 쓰는 guidance에 대해 별로 동의하지 않는 것처럼 보인다. translation과 rotation이 엮여있는 경우에는 coupled 6DOF dynamics를 고려해야 한다.
5) 안정성은 일반적으로 고려되지 않는다.
그리고 Guidance를 분류하자면
1) Reference-based guidance
- Tracking a reference trajectory (ex. Space Shuttle entry guidance)
- Nulling an estimated targeting condition error (ex. Apollo direct entry guidance, Ballistic missile guidance)
2) Targeting condition driven guidance
- To drive continuously the trajectory toward the specified targeting condition (ex. missile homing guidance, velocity-to-be-gained guidance for spacecraft, Apollo lunar powered descent guidance)
3) Computational guidance
- Physics- and model-based onboard computational ability to generate guidance command (ex. predictor-corrector entry guidance, optimal aerocapture guidance, fuel-optimal exo-atmospheric powered guidance, fuel-optimal powered descent guidance)
가 있고 이 외에 당연히 더 분류할 수는 있을 것이다.
2. What is navigation?
보통 Navigation을 이야기하면 옛날 옛적 항해를 하던 시절로 돌아간다. 별의 위치를 보고 방향을 잡던 시기이다. 그 이후부터 navigation 방법은 점점 발전해왔다.
이 사설에서 저자는 Navigation이 각 분야마다 약간씩 다른 의미로 쓰일 수 있음을 밝혔다.
기본적으로 항법이라고 하면 시스템의 위치, 속도, 자세각, 시간을 추정하는 것을 말한다.
1) Inertial Navigation System
사용 센서 : gimballed/strapdown Inertial measurement units (IMUs), which include gyros, accelerometers, a precision clock, and a system computer
가장 일반적으로 사용하는 관성 항법. IMU 센서를 통해 습득한 정보를 기반으로 위치, 속도, 자세각, 각속도를 추정한다.
2) Optical navigation / Ground-based tracking / Orbit determination (+guidance)
Apollo mission에서는 OPNAV라는 광학 기반 항법과 Ground-based tracking을 사용했다고 한다.
Navigation이라는 정의가 좀 모호한데 이런 우주 시스템의 항법은 주로 orbit을 결정하고 그 orbit으로 투입되도록 하는데 이 guidance를 항법에도 포함시키기 때문이다.
3) Global positioning system (GPS) / Global Navigation Satellite System (GNSS) / Positioning, navigtion, and timing (PNT)
보통 GPS/GNSS를 많이 쓰지만 PNT라고 부르기도 한다.
4) Pose Estimation problems
사용 센서 : Optical sensors (camera) / Light detection and ranging (LIDAR) sensor
주로 Spacecraft
4) Simultaneous localization and mapping (SLAM) / Simultaneous navigation and characteriztion (SNAC)
SLAM을 잘 몰라서 정의를 그대로 아래에 인용한다. 최근에서는 SNAC라는 용어로 geometric scene (SLAM)과 environment를 포괄해서 부른다고 한다.
Determining the dependence of the matched 3D coordinates, as observed in the “new” coordinate system, on the translation and rotation of the scanning station and the corresponding coordinates in the “old” coordinate system
5) Visual odometry (VO)
the process of estimating the egomotion of an agent (e.g., vehicle, human, and robot) using only the input of a single or multiple cameras attached to it.
6) Terrain relative navigation (TRN)
저자 분이 설명한 것은 아니지만 내가 알기로는 현재 위치를 파악하기 위해 기존에 있는 지도와 측정된 altitude를 비교해서 자신의 위치를 알아내는 것도 일종의 TRN으로 볼 수 있다. (ex. 영상 대조 항법 Terrain contour matching (TERCOM) and digital scene matching area correlator (DSMAC) )
화성 탐사 로버에 TRN이 활용되었다고 하는데 여기서는 비전을 이용해서 이동하는 방법을 의미한다.
7) Spacecraft attitude determination
spacecraft attitude를 추정하는 엔지니어들은 이것이 항법이라고 생각하지 않는다고 한다. 저자도 이쪽 분야에 몸 담았고 일단 navigation의 기본 정의 (position, attitude estimation)에 맞게 navigation으로 분류했다.
이 외에도 Radio 신호를 이용해서 삼각측량으로 계산하여 위치를 찾는 항법인 VOR (VHF Omnidirectional Range)과 RDF (Radio Direction Finding)
추가적인 이야기로 Proportional navigation이라는 용어는 미사일 유도 방법 중 하나를 말한다.
Navigation과 guidance는 혼용되어 쓰이는 부분이 있다.
3. What is control?
제어는 시원하는 상태에 도달하도록 계산하는 시스템의 제어 입력을 계산하는 알고리즘이라고 볼 수 있다. 아래는 저자가 작성한 제어의 정의이다.
Control is the action determined by an algorithm (in the form of force and moment actuators) that both stabilizes an aerospace vehicle and alters its motion so that it follows the input commands (typically from guidance or a pilot), often with desirable performance metrics such as fast response time, low peak overshoot, and small tracking errors at steady state.
항공우주 시스템의 제어에 대한 핵심을 다루면서도 세부 사항을 짚고 넘어갔다.
1) Closed-loop stability
closed-loop stability가 중요한 요구조건이라고 언급하였다. 그렇다면 open-loop stability는 왜 언급이 안되는가?하는 의문이 들 수 있다. 비행기도 그렇고 시스템 자체가 안정성이 있으면 어떤 제어 입력에 대해 발산하지 않으니 괜찮지만 시스템이 불안정하게 설계될 수 밖에 없는 경우에는 feedback 제어를 통해 시스템을 안정화하는 효과를 얻을 수 있다.
2) Input commands는 automatic일 수도 있고 인간의 직접 넣을 수도 있다.
Space shuttle의 경우에는 system이 제어입력을 생성할 수도, 사람이 직접 조종할 수도 있다고 한다.
3) Closed-loop control
guidance나 navigation은 open loop process일 수 있지만, 제어의 경우에는 파일럿이 조종하는 시스템이라도 자이로스코프에서 나오는 각속도 정보를 통해 피드백함으로써 안정성을 높인다.
4) Guidance, navigation과 달리 제어 시스템은 빨라야 한다.
앞선 guidance에 얘기했듯이 guidance 와 navigation은 자세 동역학 없이도 3자유도만 가지고도 계산할 수 있지만 제어는 안정성을 위하여 빠르게 운영되어야 한다. 이 때문에 제어 루프는 내부 루프가 되고 유도 루프는 외부 루프가 된다. (물론 제어 루프 안에서도 outer, inner loop가 나뉠 수도 있다.)
5) rigid-body, flexible body를 모두 포함한다. flexible-body로 모델링할 수 있는 발사체 같은 시스템은 notch, bending filter를 통해 진동 모드를 줄이는 작업을 해야한다.
6) 실제 시스템에 들어가는 제어 입력은 a set of commands to the control effectors이다. 즉, 비행기는 러더, 에일러론, 엘리베이터 등의 조종면이 있고 드론은 각 모터의 추력 신호, 발사체는 추력 벡터 각도 및 크기와 같이 개별 시스템에 맞는 조종 입력을 넣어줘야한다. 따라서 control mixing logic(또는 control allocation) 역시 중요한 문제다.
저자의 말에 따르면, 유도는 optimal control 및 수치 최적화 문제에서 발전되었고, 항법 역시 Kalman filter와 같은 optimal Linear Quadratic Regulator 이론에서 비롯되었다. 따라서 제어는 나중에 유도, 항법을 배우는 데에 기초가 된다고 할 수 있다.
[2] Kluever, C. A., Ed., “What Is Control?,” Journal of Guidance, Control, and Dynamics, Vol. 46, No. 10, 2023, pp. 1857–1859. https://doi.org/10.2514/1.G007902
[3] Kluever, C. A., Ed., “What Is Control?,” Journal of Guidance, Control, and Dynamics, Vol. 46, No. 10, 2023, pp. 1857–1859. https://doi.org/10.2514/1.G007902
'항공우주 Aeronautical engineering' 카테고리의 다른 글
[비행동역학] Multicopter (Drone) 제어기 (0) | 2023.12.04 |
---|---|
[비행동역학] Multicopter (Drone) dynamics (1) | 2023.11.08 |
[비행동역학] Total angle of attack and Aerodynamic roll angle (0) | 2022.08.08 |
[비행동역학] Coordinated turn과 원심력, 구심력에 대한 고찰 (0) | 2022.03.12 |
[추진] 추진공학에 대한 개요 (2) 분류 (0) | 2022.03.02 |