Машинный перевод, не проверенный носителем языка. Эталоном служит английская версия.

Страницы видов сценариевПравить на GitHubИсточник: docs/kinds/by-kind/aocs.md

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, инерциальное наведение, без шума датчиков, без трения

График, который движок записывает для scenarios/aocs-slew.toml, вид aocs

Доказательства#

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))

См. также#