aocs (вид сценария)
Вид сценария движка v0.40.0, семейство Анализ миссий, линии связи и космические операции. Носит консультативный характер: результат анализа исследовательского и инженерного инструмента; это не навигационное оборудование с утверждённым типом и не служба обеспечения безопасности жизни. Каждая метка здесь принадлежит движку или матрице верификации; вид считается MODELLED, если матрица не говорит иного (как заслуживается метка: раздел README «Evidence»).
Что делает#
Управление ориентацией космического аппарата: разворот жёсткого корпуса с инерциальным наведением, имеющего три или более сбалансированных маховика, при обратной связи MRP (L = -K sigma - P omega), с минимально-нормовыми моментами маховиков, ограниченными пределом каждого двигателя, методом RK4 с экстраполятором нулевого порядка; по выбору замкнутый на мультипликативный EKF по имитированному гироскопу (случайное блуждание угла и скорости) и звёздному датчику. Сообщает время успокоения, конечную и пиковую ошибку наведения, пиковые скорость и момент маховика, долю насыщения, дрейф момента импульса и, при наличии оценивателя, его ошибку ориентации и NEES. Контур истинного состояния — VALIDATED по Basilisk 2.9.1; оцениватель — MODELLED.
Один прогон scenarios/aocs-slew.toml сводится к следующему: aocs: 4 маховика, разворот 600 с на 82,06 deg -> успокаивается ниже 0,1 deg за 481,0 с | конечная ошибка 2.37e-2 deg | пик маховика 1797 rpm | контур истинного состояния
Входные параметры#
Из схемы (kshana kinds --json):
- Обязательные поля:
hub_inertia_kg_m2,k_nm,p_nms,wheels,sigma0 - Необязательные поля:
duration_s,dt_s,sample_s,omega0_rad_s,pointing_threshold_deg,estimator
Пример scenarios/aocs-slew.toml задаёт, среди прочего:
| Поле | Значение | Единица |
|---|---|---|
dt_s |
0.1 | s |
duration_s |
600 | s |
hub_inertia_kg_m2 |
[[900, 0, 0], [0, 800, 0], [0, 0, 600]] | не указано |
k_nm |
3.5 | N m |
kind |
aocs | текст |
omega0_rad_s |
[0.001, -0.01, 0.03] | s |
p_nms |
30 | N m s |
pointing_threshold_deg |
0.1 | deg |
sample_s |
1 | s |
sigma0 |
[0.1, 0.2, -0.3] | не указано |
wheels[0].axis |
[0.57735, 0.57735, 0.57735] | 1 |
wheels[0].js_kg_m2 |
0.08 | kg m^2 |
Запустите#
kshana scenarios/aocs-slew.toml
Этот вид используют 2 поставляемых сценария; остальные находятся в scenarios/.
Что он даёт#
Скалярные результаты этого прогона с единицами, которые указывает движок:
| Результат | Значение | Единица |
|---|---|---|
dt_s |
0.1 | s |
duration_s |
600 | s |
estimator |
нет значения | не указано |
evidence.id_rule |
стабильный идентификатор строки матрицы (ID | текст |
evidence.matrix |
docs/VERIFICATION-MATRIX.md | текст |
evidence.tier |
MODELLED | текст |
final_pointing_error_deg |
0.023682 | deg |
k_nm |
3.5 | N m |
max_pointing_error_deg |
82.056509 | deg |
momentum_drift_nms |
1.4672e-12 | N m s |
Метка результата (движка): VALIDATED закон управления и динамика маховиков (по Basilisk 2.9.1 на контуре истинного состояния); входные данные этого прогона — собственные данные сценария: управление ориентацией маховиками при обратной связи MRP, инерциальное наведение, без шума датчиков, без трения
Доказательства#
MODELLED 1 · VALIDATED 1: строки матрицы верификации, называющие этот вид.
- VALIDATED Управление ориентацией жёсткого корпуса с инерциальным наведением, имеющего три или более сбалансированных маховика: закон обратной связи MRP L_r = -K sigma_BR - P omega_BR (Schaub и Junkins), минимально-нормовые моменты двигателей маховиков G_s u = -L_r, ограниченные l каждого маховика Тесты: aocs_basilisk_oracle.rs.
- MODELLED Мультипликативный EKF Леффертса — Маркли — Шустера: состояния ошибки ориентации в связанной системе и смещения гироскопа, пропагация по скорости гироскопа за вычетом оценки смещения и с дискретным шумом процесса по Фаренкопфу (случайное блуждание угла и скорости), обновление по звёздному датчику
Строки, которые задействовал сам прогон, с оракулом, который указывает им матрица (публичные источники названы там):
- MODELLED Детерминированные, хешируемые по сценарию, SBOM и кроссплатформенные эталонные проверки (golden). Оракул (ExternalDataset): соответствие SBOM официальной схеме JSON CycloneDX 1,5 (плюс допустимые идентификаторы SPDX) — внешний опубликованный стандарт, ноль ошибок валидации на всём графе зависимостей; часть о детерминизме FoM и побайтной воспроизводимости остаётся закреплённой проверкой внутренней согласованности, поэтому строка остаётся MODELLED
- VALIDATED Управление ориентацией жёсткого корпуса с инерциальным наведением, имеющего три или более сбалансированных маховика: закон обратной связи MRP L_r = -K sigma_BR - P omega_BR (Schaub и J. Оракул (ExternalDataset): Basilisk 2.9.1 (AVSLab, ISC; прогон bsk для маховиков как отдельный инструмент, никогда не подключаемый и не включаемый в поставку): корпус космического аппарата, reactionWheelStateEffector (BalancedWheels, ограничение момента включено), simpleNav, inertial3D, attTrackingError, mrpFeedback (без интегрального члена) и rwMotorTorque при dt = 0,1 с с его RK4, в сравнении с собственной реализацией Kshana на трёх случаях (три ортогональных маховика; четырёхмаховичная пирамида; насыщающийся четырёхмаховичный случай),
- MODELLED Мультипликативный EKF Леффертса — Маркли — Шустера: состояния ошибки ориентации в связанной системе и смещения гироскопа, пропагация по скорости гироскопа за вычетом оценки смещения и с Farre. Оракул (InternalConsistency): Внутренняя согласованность: нормированная квадратичная ошибка оценивания фильтра относительно истины, смоделированной по тем же моделям датчиков методом Монте-Карло по начальным значениям (seed), и сходимость оценок ориентации и смещения. ЧЕГО НЕТ: никакой внешний оцениватель и никакие лётные данные не сравнивались (в Basilisk 2.9.1 нет модуля MEKF); модели датчиков — учебниковые, без неюстировки, масштабного коэффициента и эффектов поля зрения звёздного датчика.
Ограничения#
Что отчёт самого прогона называет не смоделированным или не проверенным:
- Контур истинного состояния — VALIDATED по Basilisk 2.9.1; оцениватель — MODELLED. (каталог видов (
kshana kinds --json)) - Воспроизводимость и гарантии качества ПО — MODELLED, а не validated: одно из частных утверждений проверено извне, но вся возможность составлена из смоделированных частей, поэтому возможность остаётся Modelled. (матрица верификации (docs/MODELLED-RATIONALE.md))
- Оценивание ориентации мультипликативным EKF по гироскопу и звёздному датчику — MODELLED, а не validated: проверено по собственному замкнутому / аналитическому тождеству — это выявляет ошибки переписывания и коэффициентов, но не является внешним оракулом. (матрица верификации (docs/MODELLED-RATIONALE.md))
См. также#
- Страница семейства: Анализ миссий, линии связи и космические операции
- Все виды: KINDS.md
- Тематическая страница: AOCS.md