Tradução automática, não revista por um falante nativo. O inglês é a referência.

Páginas dos tipos de cenárioEditar no GitHubFonte: docs/kinds/by-kind/aocs.md

aocs (tipo de cenário)

Tipo de cenário do motor v0.40.0, família Análise de missão, ligações e operações espaciais. Consultivo: resultados de análise de uma ferramenta de investigação e engenharia, não um equipamento de navegação homologado nem um serviço de segurança de vidas. Cada etiqueta aqui é do motor ou da matriz de verificação; um tipo é MODELLED, salvo indicação em contrário da matriz (como se obtém uma etiqueta: a secção Evidence do README).

O que faz#

Controlo de atitude de veículos espaciais: uma reorientação com apontamento inercial de um corpo rígido com três ou mais rodas de reação equilibradas sob realimentação MRP (L = -K sigma - P omega), binários de roda de norma mínima limitados ao limite de cada motor, RK4 com retenção de ordem zero; opcionalmente fechada sobre um EKF multiplicativo a partir de um giroscópio simulado (passeio aleatório de ângulo e de taxa) e de um seguidor de estrelas. Comunica o tempo de estabilização, o erro de apontamento final e máximo, a velocidade e o binário máximos das rodas, a fração saturada, a deriva do momento angular e, com o estimador, o seu erro de atitude e o NEES. O ciclo de estado verdadeiro é VALIDATED face ao Basilisk 2.9.1; o estimador é MODELLED.

Uma execução de scenarios/aocs-slew.toml resume-se assim: aocs: 4 wheels, 600 s slew from 82,06 deg -> settles below 0,1 deg at 481,0 s | final 2.37e-2 deg | peak wheel 1797 rpm | true-state loop

Entradas#

A partir do esquema (kshana kinds --json):

  • Campos obrigatórios: hub_inertia_kg_m2, k_nm, p_nms, wheels, sigma0
  • Campos opcionais: duration_s, dt_s, sample_s, omega0_rad_s, pointing_threshold_deg, estimator

O exemplo scenarios/aocs-slew.toml define, entre outros:

Campo Valor Unidade
dt_s 0.1 s
duration_s 600 s
hub_inertia_kg_m2 [[900, 0, 0], [0, 800, 0], [0, 0, 600]] não indicado
k_nm 3.5 N m
kind aocs texto
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] não indicado
wheels[0].axis [0.57735, 0.57735, 0.57735] 1
wheels[0].js_kg_m2 0.08 kg m^2

Execute-o#

kshana scenarios/aocs-slew.toml

2 cenários incluídos usam este tipo; os restantes estão em scenarios/.

O que dá#

Os resultados escalares dessa execução, com as unidades que o motor indica:

Resultado Valor Unidade
dt_s 0.1 s
duration_s 600 s
estimator sem valor não indicado
evidence.id_rule o id estável da linha da matriz (o ID texto
evidence.matrix docs/VERIFICATION-MATRIX.md texto
evidence.tier MODELLED texto
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

Etiqueta do resultado (a do motor): lei de controlo e dinâmica das rodas VALIDATED (face ao Basilisk 2.9.1 no ciclo de estado verdadeiro); as entradas desta execução são as do próprio cenário — controlo de atitude por rodas de reação sob realimentação MRP, apontamento inercial, sem ruído de sensores, sem atrito

O gráfico que o motor escreve para scenarios/aocs-slew.toml, tipo aocs

Evidências#

MODELLED 1 · VALIDATED 1: as linhas da matriz de verificação que nomeiam este tipo.

  • VALIDATED Controlo de atitude com apontamento inercial de um corpo rígido com três ou mais rodas de reação equilibradas: a lei de realimentação MRP L_r = -K sigma_BR - P omega_BR (Schaub e Junkins), binários dos motores das rodas de norma mínima G_s u = -L_r limitados ao l Testes: aocs_basilisk_oracle.rs.
  • MODELLED O EKF multiplicativo de Lefferts-Markley-Shuster: estados de erro de atitude no referencial do corpo e de viés do giroscópio, propagação com a taxa do giroscópio menos a estimativa do viés e o ruído de processo discreto de Farrenkopf (passeio aleatório de ângulo e de taxa), atualização do seguidor de estrelas

As linhas que a própria execução exercitou, com a referência independente que a matriz dá a cada uma (as fontes públicas estão aí nomeadas):

  • MODELLED Determinista, com hash do cenário, SBOM + portões de referência multiplataforma. Referência independente (ExternalDataset): aderência à norma do SBOM ao esquema JSON oficial CycloneDX 1,5 (+ identificadores SPDX válidos) — uma norma externa publicada, zero erros de validação em todo o grafo de dependências; a parte de determinismo das FoM / reprodutibilidade byte a byte permanece uma verificação de autoconsistência fixada, pelo que a linha permanece MODELLED
  • VALIDATED Controlo de atitude com apontamento inercial de um corpo rígido com três ou mais rodas de reação equilibradas: a lei de realimentação MRP L_r = -K sigma_BR - P omega_BR (Schaub e J. Referência independente (ExternalDataset): Basilisk 2.9.1 (AVSLab, ISC; a execução de rodas do bsk como ferramenta separada, nunca ligada nem incluída no repositório): spacecraft hub, reactionWheelStateEffector (BalancedWheels, limite de binário ativo), simpleNav, inertial3D, attTrackingError, mrpFeedback (sem termo integral) e rwMotorTorque com dt = 0,1 s com o seu RK4, face à implementação do próprio Kshana em três casos (três rodas ortogonais; uma pirâmide de quatro rodas; um caso de quatro rodas com saturação),
  • MODELLED O EKF multiplicativo de Lefferts-Markley-Shuster: estados de erro de atitude no referencial do corpo e de viés do giroscópio, propagação com a taxa do giroscópio menos a estimativa do viés e Farre. Referência independente (InternalConsistency): Consistência interna: o erro de estimação normalizado quadrático do filtro face a uma referência simulada com os mesmos modelos de sensores ao longo de sementes de Monte Carlo, e a convergência das estimativas de atitude e de viés. O QUE NÃO É: nenhum estimador externo nem dados de voo foram comparados (o Basilisk 2.9.1 não tem módulo MEKF); os modelos de sensores são os de manual, sem desalinhamento, fator de escala nem efeitos do campo de visão do seguidor de estrelas.

Limitações#

O que o próprio relatório da execução diz que não está modelado ou não está validado:

  • O ciclo de estado verdadeiro é VALIDATED face ao Basilisk 2.9.1; o estimador é MODELLED. (catálogo de tipos (kshana kinds --json))
  • A reprodutibilidade e a garantia de software são MODELLED, não validadas: uma subafirmação é verificada externamente, mas a capacidade no seu conjunto compõe partes modeladas, pelo que a capacidade permanece modelada. (matriz de verificação (docs/MODELLED-RATIONALE.md))
  • A estimação de atitude por EKF multiplicativo a partir de um giroscópio e de um seguidor de estrelas é MODELLED, não validada: verificada face à sua própria identidade analítica / de forma fechada — apanha erros de transcrição e de coeficientes, mas não é uma referência independente externa. (matriz de verificação (docs/MODELLED-RATIONALE.md))

Ver também#