1일차에서 정의한 환경·고체 모터·기체를 2일차의 비행·분석 코드로 연결해 실행했습니다.
바로가기
1. 입력 조건과 실행 흐름
한국 위치와 가정한 대기
| 항목 | 입력값 | 적용 범위·의미 |
|---|---|---|
| 위치 | 북위 35.5721°, 동경 129.1822° |
1일차의 UNIST 좌표. 좌표 기준은 WGS84. |
| 지면 고도 | ASL 53 m |
모든 AGL 높이는 z − 53으로 계산. 지면은 일정한 높이로 모델링. |
| 설정 날짜 | 2026-10-04 12:00 KST |
03:00 UTC와 같다. 고정 대기를 쓰므로 날짜에 따른 예보 변화는 없다. |
| 대기 모델 | custom_atmosphere |
외부 예보를 내려받지 않고 같은 입력으로 재실행. |
| 기압 | ISA 기본 기압 프로필 | 지면에서 100,702.65 Pa. 고도에 따라 변한다. |
| 온도 | 293.15 K, 즉 20℃ |
전 고도에서 일정한 온도를 가정. 기압은 ISA, 온도는 상수인 혼합 조건이다. |
| 바람 | wind_u=2.83, wind_v=-2.83 m/s |
북서쪽에서 불어 남동쪽으로 이동하는 약 4.00 m/s의 바람. 전 고도에서 일정. |
| 지면 공기 밀도 | 1.19671 kg/m³ |
설정한 기압과 온도로 RocketPy가 계산한 값. |
| 발사 레일 | 길이 5.2 m, 경사각 85°, 방위각 0° |
북쪽을 향하고 수직에서 5° 기울어진 조건. |
| 계산 | 6 DOF, LSODA, 최대 간격 0.05 s |
상대 허용오차는 RocketPy 기본값 1e-6. 적응형 적분이므로 모든 계산 간격이 0.05초는 아니다. |
| 난수 | np.random.seed(20261004) |
낙하산 압력 센서 노이즈의 재현성을 위해 고정. |
대기 설정의 입력 방식은 Environment API
모터와 기체
모터·기체의 수치 입력은 1일차의 Calisto 예제를 유지했습니다.
| 대상 | 사용한 입력 | 확인 사항 |
|---|---|---|
| 고체 모터 | Cesaroni M1670 추력 파일, SolidMotor |
연소 시간 3.9 s, 총 역적 6,026.35 N·s. BATES·일정 배기 속도 모델. |
| 모터 건조 질량 | 1.815 kg |
추진제는 별도 계산. 그레인 제원에서 계산한 초기 추진제 질량은 2.955912 kg. |
| 모터 관성 | (0.125, 0.125, 0.002) kg·m² |
모터 자체의 건조 질량 중심 기준. |
| 기체 질량 | 14.426 kg |
모터 전체를 제외한 질량. 점화 시 총질량은 19.196912 kg, 연소 후에는 16.241 kg. |
| 기체 반지름·관성 | 0.0635 m, (6.321, 6.321, 0.034) kg·m² |
관성 입력은 모터를 제외한 기체 기준. |
| 항력 | powerOnDragCurve.csv, powerOffDragCurve.csv |
두 파일을 따로 연결했지만, 이 버전의 공식 예제 파일은 내용이 동일하다. 서로 다른 항력 곡선으로 비교한 실험은 아니다. |
| 핀 | 4개, 루트 0.120 m, 팁 0.060 m, 스팬 0.110 m |
캔트각 0.5°, NACA0012 양력 자료의 각도 단위는 radians. |
| Main / Drogue | cd_s=10 / 1 m² |
800 m AGL 하강 조건 / "apogee" 조건. 둘 다 105 Hz, 지연 1.5 s, 노이즈 (0, 8.3, 0.5). |
| 낙하산 형상 | 각각 반지름 1.5 m, 높이 1.5 m, 공극률 0.0432 |
1일차의 값을 유지. |
그레인·노즐의 전체 입력과 함수 정의는 실행 코드에 있습니다. .eng 파일에서는 추력 곡선을 사용하며, 질량·형상은 코드에 명시한 값을 사용합니다. 따라서 이 예제 모델이 실제 M1670 제품 제원 전체와 동일하지는 않습니다.
기체 좌표의 양의 방향은 꼬리에서 노즈 쪽입니다. 공력 부품이 중복되지 않도록 노즈·핀 세트·테일을 한 번씩 생성했습니다.
| 부품·기준점 | 로켓 좌표 위치 | 연결·검증 |
|---|---|---|
| 모터의 노즐 원점 | −1.255 m |
add_motor()에 실제 생성한 고체 모터 객체를 전달. |
| 노즈 끝 | +1.278 m |
길이 0.55829 m, von Kármán 형상. |
| 기본 핀 앞전 | −1.04956 m |
핀 세트는 1개. |
| 테일 기준점 | −1.194656 m |
길이 0.060 m, 앞/뒤 반지름 0.0635 / 0.0435 m. |
| 레일 버튼 | 위 +0.0818 m, 아래 −0.618 m |
둘레 방향 각도 45°. |
Environment → SolidMotor → Rocket → Flight 순서로 실행합니다. 전체 입력은 첨부 코드의 make_environment()와 make_rocket()에 모았고, 기본 비행은 다음과 같이 실행합니다.
from simulate import make_environment, make_rocket, fly
env = make_environment()
rocket = make_rocket()
flight = fly(
rocket,
env,
inclination=85,
max_time_step=0.05,
max_time=600,
)
2. 궤도와 비행 결과
최고고도는 AGL 3,166.10 m, 비행 시간은 303.34 s, 최대 속도는 284.32 m/s.

가로축은 발사점 기준 동쪽·북쪽 변위, 세로축은 AGL 높이입니다. 가독성을 위해 세 축의 화면상 축척은 서로 다르고, 상승 중에는 북서쪽으로 이동하고, 낙하산 하강 중에는 남동쪽으로 흐르는 바람의 영향을 받았습니다. 최종 위치는 발사점에서 동쪽 497.18 m, 북쪽 137.49 m, 수평 거리로 515.84 m입니다. 지형을 반영한 값은 아닙니다. 이 부분에선 개선이 가능할지 찾아봐야겠습니다.
주요 시점
| 시점 | 시간·고도 | 계산 결과 |
|---|---|---|
| 점화 | 0 s, AGL 0 m |
초기 자세각 85°, 초기 속도 0 m/s. |
| 레일 이탈 | 0.36777 s, AGL 3.849 m |
속도 26.202 m/s, 받음각 8.589°, 추력/중량비 10.152. |
| 연소 종료 | 3.900 s, AGL 650.555 m |
속도 277.665 m/s, 마하수 0.811. 이후 추력 없이 상승. |
| 최고점 | 25.24424 s, AGL 3,166.101 m |
ASL 3,219.101 m. 수직 속도는 거의 0이지만 수평 이동 때문에 전체 속도는 29.843 m/s. |
| 지면 도달 | 303.34288 s, AGL 0 m |
수직 속도 −5.157 m/s, 전체 속도 6.528 m/s. |
최고점의 속도가 0이 아닌 것은 수직 속도와 전체 속도가 다르기 때문입니다.
초기 조건, 지표 바람, 레일 조건, 레일 이탈, 연소 종료, 최고점, 낙하산 사건, 지면 도달, 최댓값의 prints 메서드 9개를 모두 호출했습니다. 반올림 전의 사건별 값은 events.csv, RocketPy의 원문 출력은 flight_prints.txt에 있습니다.
낙하산 사출과 완전 전개
| 낙하산 | 트리거 발생 | 지연 후 전개 |
|---|---|---|
| Drogue | 25.24762 s, AGL 3,166.101 m |
26.74762 s, AGL 3,155.124 m |
| Main | 155.76190 s, AGL 799.670 m |
157.26190 s, AGL 773.996 m |
Main의 숫자 조건은 800m에서 사출 신호를 내는 조건입니다. 1.5초 지연 동안 계속 내려가므로, 완전 전개 고도는 약 774m였습니다. 노이즈와 105Hz의 샘플링 간격 때문에 사출 신호 시점의 높이도 정확히 800.000m는 아닙니다.
1일차의 사용자 함수도 실제로 연결해 별도 비행을 실행했습니다. 같은 난수 시드에서 숫자·문자열 트리거와 두 낙하산의 사건 시각이 일치했습니다.
def drogue_trigger(p, h, y):
return y[5] < 0
def main_trigger(p, h, y):
return y[5] < 0 and h < 800
여기서 h는 압력 노이즈가 반영된 AGL 높이이고, y[5]는 수직 속도입니다. 실제 C/CPP 코드를 작성하지는 않았습니다.
3. 정적 안정성, 자세 응답, 관성 텐서
정적 여유와 비행 중 안정성 여유
점화 시 질량 중심은 로켓 좌표 −0.221 m, 마하 0의 압력 중심은 −0.500 m였습니다. 질량 중심이 노즈 쪽에 있고 두 점의 간격은 약 0.279 m입니다.
| 시점 | rocket.static_margin(t) |
flight.stability_margin(t) |
|---|---|---|
| 점화 | 2.1987 c |
2.1988 c |
| 레일 이탈 | 2.2716 c |
2.2764 c |
| 연소 종료 | 3.1119 c |
3.6824 c |
| 최고점 | 3.1119 c |
3.1193 c |
c는 기체 직경 단위입니다. 왼쪽은 마하 0의 압력 중심을 사용하는 정적 여유이고, 오른쪽은 실제 비행 마하수에 따른 압력 중심 변화까지 반영합니다. 연소 종료 때 두 값이 다른 것은 이 때문이다. 연소 중 질량·질량 중심·정적 여유의 변화는 static_margin.csv에 저장했습니다. 정의는 Flight API를 보면 됩니다.
기본 기체의 점화 정적 여유는 양수였습니다. 다만 정적 여유가 양수라 해서 무조건 안정적이란 보장은 없습니다.
자세와 각운동 확인
비행 안정성의 해석 구간은 레일 이탈 이후부터 최고점까지로 잡았습니다.
| 확인 항목 | 결과 | 해석 |
|---|---|---|
| 받음각 | 레일 이탈 8.589°; 연소 종료 이후 최고점까지 최대 약 3.070° |
연소 중 초기 받음각이 줄었다. 최고점 부근에는 속도 방향이 바뀌므로 다시 증가할 수 있다. |
| 연소 종료 자세각 / 비행경로각 | 79.684° / 80.388° |
차이는 약 0.704°. 지면 기준 속도와 공기 상대 속도는 바람 때문에 다르다. |
| 최고점 자세각 / 비행경로각 | 2.361° / 약 0° |
최고점에 가까워지며 비행 방향이 수평에 가까워지는 변화가 나타났다. |
| 연소 중 횡방향 각속도 | w1: −0.189∼0.021 rad/s; w2: −0.093∼0.132 rad/s |
레일 이탈부터 연소 종료까지의 범위. |
| 연소 후 횡방향 각속도 | w1: −0.300∼0.257 rad/s; w2: −0.287∼0.227 rad/s |
최고점까지의 범위. 기본 비행에서 급격한 텀블링은 관찰되지 않았다. |
| 롤 각속도 | 최대 19.926 rad/s |
핀 캔트각 0.5°가 있는 기체다. 롤 속도가 크다는 사실과 횡방향 자세 발산은 구분한다. |
| 각가속도 | alpha1, alpha2, alpha3 전 구간 계산 |
연소 종료 전후를 포함해 CSV에 저장. |
| 자세 표현 | e0∼e3, psi, theta, phi 계산 |
쿼터니언과 Euler 각을 모두 조회했다. |
이 결과에서는 기본 기체가 복원되는 자세 응답을 보였지만, 고정된 바람·단일 기체 모델·한 번의 조건에서 얻은 결과입니다. 뒤의 핀 위치 비교와 함께 읽는 것이 좋습니다.
관성 텐서와 그 시간 미분
1일차의 두 메서드를 0 s, 0.5 s, 3.9 s에 실행했습니다.
대각 성분은 양수이고, 입력한 대칭 모델에 맞게 I11=I22, 관성곱은 0입니다. 추진제가 소모되면서 관성이 줄어드는 것도 확인됩니다. 이것만으로 실제 기체의 제작 오차나 동적 안정성까지 증명되진 않습니다. 세 시점의 원본 행렬은 inertia.json에 있습니다.
4. 2일차의 나머지 그래프 항목도 수치로 확인
| 확인 항목 | 대표 결과 | 범위·원자료 |
|---|---|---|
| 속도·가속도 | 최대 속도 284.323 m/s; 연소 중 최대 가속도 105.222 m/s² |
각각 약 3.368 s, 0.150 s. vx, vy, vz, ax, ay, az도 저장. |
| 공력 힘 | 연소 중 양력 최대 19.731 N, 항력 최대 242.323 N |
레일 이탈∼연소 종료. 기체 축 성분 R1∼R3도 저장. |
| 공력 모멘트 | 같은 구간 굽힘 모멘트 최대 8.192 N·m, 스핀 모멘트 최대 0.339 N·m |
M1∼M3과 합성값을 함께 확인. |
| 위쪽 레일 버튼 | 법선력 최대 절댓값 1.489 N, 전단력 1.495 N |
레일을 떠나기 전의 결과. |
| 아래쪽 레일 버튼 | 법선력 최대 절댓값 2.654 N, 전단력 2.665 N |
버튼별 전체 시계열도 별도 CSV로 저장. |
| 운동 에너지 | 최대 658.476 kJ |
회전·병진 성분을 각각 계산. |
| 추력·항력 일률 | 추력 일률 최대 447.665 kW; 상승 연소 중 항력 일률 최솟값 −68.890 kW |
힘의 단위 N, 에너지 J, 일률 W를 구분. |
| 유체역학 | 최대 마하수 0.83014, Reynolds 수 2.25215×10⁶, 동압 45.7815 kPa |
정압·총압·받음각·옆미끄럼각도 계산. |
| 안정성 여유 | 비행 중 최댓값 3.6824 c |
마하수 변화 포함. 정적 여유와 별도 속성. |
| 주파수 응답 | 양의 주파수 피크: 자세 0.2 Hz, w1 0.2 Hz, w2 0.6 Hz, w3 0.2 Hz |
레일 이탈부터 5초 구간을 100Hz로 샘플링하는 RocketPy 기본 계산. |
에너지 결과를 읽을 때 발견한 점: RocketPy 1.13.0의 potential_energy는 μm × (1/(R+z) − 1/R)로 계산됩니다. 이번 최고점에서는 약 −513.167 kJ이며, 해수면을 기준으로 통상 사용하는 양의 mgh와 부호가 반대됩니다. total_energy도 이 값을 더한 결과입니다. CSV에는 라이브러리 반환값을 그대로 보존했고 이를 일반적인 역학적 에너지 보존 검증값으로 사용하지 않았습니다. 해당 버전의 구현
전체 구간의 최댓값과 자유 상승 구간의 최댓값은 다를 수 있습니다. 예를 들어 낙하산 전개 순간의 하중을 연소 중 공력 하중과 혼동하지 않도록 extrema.csv에는 전체 비행 / 레일 이탈∼연소 종료 / 연소 종료∼최고점의 범위를 구분했습니다. 극값은 적분 결과 시각에서 찾은 값이며 연속 시간에서의 정확한 극값은 보장되지 않습니다.
5. 기체 질량 5∼20kg 비교
2일차의 apogee_by_mass()와 liftoff_speed_by_mass()를 각각 10개 지점에서 실행, 입력 질량은 모터를 제외한 기체 질량입니다.
두 함수는 전달한 기체의 질량을 바꾸므로 원본 대신 별도 복사본을 사용했고 두 함수 모두 최고점에서 종료하므로 비교용 사본에서는 낙하산 콜백을 제외했습니다. 기체 질량은 그대로 두고, RocketPy 1.13.0에서 반복 비행 시 압력 센서 기록이 누적되는 문제를 피하기 위한 처리입니다. 기본 비행의 낙하산 두 개와 질량은 유지됐는지 검사했습니다.
| 모터 제외 기체 질량 (kg) | 최고고도 AGL (m) | 레일 이탈 속도 (m/s) |
|---|---|---|
| 5.000 | 3,786.963 | 37.908 |
| 6.667 | 3,807.224 | 34.808 |
| 8.333 | 3,771.116 | 32.314 |
| 10.000 | 3,699.416 | 30.270 |
| 11.667 | 3,586.469 | 28.543 |
| 13.333 | 3,352.905 | 27.066 |
| 15.000 | 3,064.434 | 25.777 |
| 16.667 | 2,769.221 | 24.642 |
| 18.333 | 2,498.045 | 23.628 |
| 20.000 | 2,249.358 | 22.723 |
질량이 늘어날수록 레일 이탈 속도는 감소했고 최고 고도는 이 표의 10개 표본 중 약 6.67kg에서 가장 높았습니다. 따라서 무게를 줄일 수록 높이가 올라가진 않을 수 있다는 것을 알 수 있습니다. 이 질량이 이 로켓에서의 최적의 질량값은 아닙니다.
6. 핀 위치 5가지와 동적 안정성 비교
2일차의 factor=[−0.5, −0.2, 0.1, 0.4, 0.7], position=−1.04956×factor를 모두 실행했고 위치마다 새 기체를 만들어서, pop(-1)로 테일을 지우거나 핀이 중복되는 문제를 없앴습니다.
비교 조건은 수직 레일 90°, 북쪽 0°, wind_u=0, wind_v=−5 m/s, 최대 적분 간격 0.01 s, 최대 계산 시간 5 s입니다. 위치·고도는 기본 비행과 같은 UNIST 좌표를 유지하고, 온도 20℃와 ISA 기압도 유지했고 핀은 2일차 비교 예제처럼 팁 0.040 m, 스팬 0.100 m, 캔트 없음, 별도 airfoil 없음으로 통일했습니다. 따라서 5개 비교 조건끼리는 위치만 다르지만, 앞의 기본 기체와는 핀 형상도 다릅니다.
| 계수·핀 위치 | 정적 여유: 점화 → 이탈 → 5초 | 자세 응답·해석 |
|---|---|---|
−0.5 / +0.524780 m |
−9.133 → −9.060 → −8.219 c |
1.5초 자세각 27.653°. 최대 받음각 약 179.7°, 횡방향 각속도 크기 최대 21.334 rad/s. |
−0.2 / +0.209912 m |
−7.036 → −6.963 → −6.123 c |
1.5초 자세각 −67.939°. 최대 받음각 약 179.3°, 횡방향 각속도 크기 최대 20.547 rad/s. |
0.1 / −0.104956 m |
−4.939 → −4.866 → −4.026 c |
1.5초 자세각 18.592°. 최대 받음각 약 179.7°, 횡방향 각속도 크기 최대 18.116 rad/s. |
0.4 / −0.419824 m |
−2.842 → −2.769 → −1.929 c |
1.5초 자세각 77.601°. 최대 받음각 약 179.1°, 횡방향 각속도 크기 최대 15.091 rad/s. |
0.7 / −0.734692 m |
−0.746 → −0.673 → +0.168 c |
1.5초 자세각 85.720°. 최대 받음각 10.806°, 횡방향 각속도 크기 최대 0.106 rad/s. |
5개 모두 점화 시 정적 여유가 음수여서 UnstableRocketWarning이 발생했습니다. 앞의 네 조건은 큰 자세 회전까지 나타났고 마지막 조건은 이 5초 구간에서 응답이 상대적으로 작고 연소 후 여유가 양수가 됐지만, 출발부터 안정한 기체라고 분류할 수는 없습니다.
받음각이 180°에 가까운 사례의 수치는 불안정한 응답을 확인하는 데 사용했습니다. 큰 받음각에서 단순 공력 모델의 결과를 실제 기체의 정확한 운동으로 해석해서는 안 됩니다. 또한 t_final=5 s는 계산 종료 시각일 뿐 정상 상태에 도달했다는 뜻이 아닙니다.
표의 최대 응답은 레일 이탈 시점 부터 종료 구간의 1,001개 표본에서 계산했습니다. 2일차의 비교 그래프 구간인 0 - 1.5초를 포함해 전체 0 - 5초 자세·각속도 이력을 fin_responses.csv에 보관했고 경고 원문과 요약은 fin_sweep.csv에 있습니다.
7. 실행하는 방법과 결과 파일
ZIP을 풀면 simulate.py, requirements.txt, input-manifest.json, inputs/, results/가 같은 폴더에 있으며. Python 3.13 환경에서 해당 폴더로 이동한 뒤 실행하면 됩니다..
# pip 사용시
python -m pip install -r requirements.txt
python simulate.py --output results-rerun
# uv 사용시
uv venv --python 3.13
source .venv/bin/activate
uv pip install -r requirements.txt
python simulate.py --output results-rerun
결과 폴더가 이미 있으면 덮어쓰지 않고 중단하므로, 다시 실행할 때는 새로운 폴더 이름을 지정하거나 결과 폴더를 지우고 실행하면 됩니다. Jupyter에서도 폴더를 작업 위치로 두고 %run simulate.py --output results-jupyter로 같은 코드를 실행할 수 있습니다.
이번 실행에 사용한 버전은 Python 3.13.5, RocketPy 1.13.0, NumPy 2.5.3, SciPy 1.18.1, Matplotlib 3.11.2입니다.
수치 검증
- 입력 파일의 SHA-256을 확인한 후 실행
- 레일 이탈 → 연소 종료 → 최고점 → 지면 도달의 시각 순서를 확인
- 두 낙하산의 작동과 마지막 AGL 높이가 0m인지 확인
- 상태 해와 53개 물리량에 NaN·무한대가 없는지 검사
- 전체 상태 CSV의 14개 열을 확인하고, 원래 상태 배열과 소수점 6자리 저장 오차 이내로 일치하는지 대조
- 사용자 트리거를 연결한 결과가 기본 트리거와 일치하는지 검사
- 기본 비행의 최대 적분 간격을
0.05 → 0.025 s로 줄여 최고고도를 비교. 차이는 약−0.0618 m, 레일 이탈 속도 차이는+0.00104 m/s. 이 검사는 수치 적분 민감도 확인이며 모델의 실측 정확도 검증은 아님 - 쿼터니언의
|e0²+e1²+e2²+e3²−1|최대값은 약4.68×10⁻⁴.
검증은 simulate.py 안의 assert로 함께 실행됩니다.
개별 자료
| 파일 | 담긴 내용 | 읽을 때의 기준 |
|---|---|---|
| summary.json | 조건·버전·시각·주요 결과·검증값 | 표에 사용한 수치의 반올림 전 값. |
| model_info.txt | 환경·모터·기체·낙하산 정보 | prints.all()의 원문 출력. |
| full_state.csv | 시간 + 13성분 상태 해 | x,y,z,vx,vy,vz,e0,e1,e2,e3,w1,w2,w3 순서. z는 ASL. |
| selected.csv / selected_1s.csv | 받음각·마하수 | 적분 시각 / 1초 간격 보간. 다시 1초 간격으로 시뮬레이션한 것이 아니다. |
| diagnostics_0.1s.csv | 53개 물리량 | 0.1초 간격으로 조회한 자료. 헤더에 속성·단위 표시. |
| speed_source.csv | flight.speed.source |
[time, speed] 원본 배열. |
| environment_profile.csv | 기압·온도·밀도·음속·바람 | 고도는 ASL과 AGL을 함께 표시. |
| motor_profile.csv | 추력·질량·질량 유량·질량 중심·관성·그레인 변화 | 0∼3.9초, SI 단위. Kn은 ZIP의 별도 파일에 저장. |
| drag_curves.csv | 마하수별 두 항력 곡선 | 기본 예제 파일 두 개의 값이 같은 것을 확인할 수 있다. |
| trajectory.kml | 지도용 궤도 | relativetoground 방식. 평평한 지면 가정을 지도 지형과 혼동하지 않기. |
전체 상태 CSV는 속성 이름을 명시하여 내보냈다. 확인한 RocketPy 1.13.0의 인수 없는 export_data()는 데이터에 속도 세 열을 넣으면서 헤더에서는 그 이름을 빠뜨리므로, 열의 의미가 어긋나지 않게 했다.
8. 1·2일차 내용과 실제 실행 대조
| 기존 글의 내용 | 이번 처리 | 확인 위치 |
|---|---|---|
| 환경·날짜·좌표·대기·바람 | 실행 | 입력 조건, 환경 정보·고도별 프로필 |
| 고체 모터·추력·그레인·질량·관성 | 실행 | 모터 정보·시계열·Kn 자료 |
| 기체·항력·노즈·핀·테일·airfoil·좌표 | 실행 | 부품 위치, 기체 정보, 항력 자료 |
| 레일 버튼·레일 이탈·버튼 하중 | 실행 | 사건 표, 네 가지 버튼 힘 CSV |
| Main/Drogue·센서 노이즈·지연 | 실행 | 낙하산 사건 표 |
| 숫자·문자열·사용자 함수 트리거 | 실행·비교 | 사건 시각 일치 검사 |
| 정적 여유·마하 보정 안정성 여유·관성 텐서·미분 | 실행 | 안정성 표, 정적 여유 CSV, 관성 JSON |
Flight와 수치 조회 9종 |
모두 실행 | 비행 결과·원문 출력 |
| 선운동·비행경로각·자세·쿼터니언·각운동 | 모두 계산 | 53개 물리량 CSV, 극값 표 |
| 공력 힘·모멘트·에너지·일률·유체역학 | 모두 계산 | 수치 표·CSV, 에너지 부호 확인 |
| 안정성 주파수 응답 | 실행 | 4개 응답의 주파수 자료 |
속도 Function·원본 배열·선택/보간/전체 CSV |
실행 | 결과 파일 목록 |
| 궤도 그림 저장·KML | 실행 | PNG·SVG·KML |
| 5∼20kg 질량 분석 | 두 함수 × 10개 지점 실행 | 질량 비교 표 |
| 핀 위치 5개 동적 분석 | 모두 실행, 경고도 보존 | 핀 위치 비교 표·전체 응답 |
all_info()·draw() 및 궤도 외 그래프 표시 |
그림 대신 같은 모델의 수치·부품 위치·물리량을 확인 | 궤도만 그림으로 제시한다는 이번 표시 범위에 맞춤 |
GFS·Wyoming 실측 자료 수집, LDAPS/RDAPS 연결, CFD·풍동, 하이브리드·액체 모터, 실제 C/CPP 비행 소프트웨어 연결, 몬테 카를로 시뮬레이션은 아직 실행하지 않았습니다.