Files
dc-observatio/libs/angular-motion-lib/README.md
T
2026-06-04 09:39:27 +03:00

47 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# angular-motion-lib
Библиотека расчета программ управления угловым движением КА.
Библиотека создана как перенос расчетного контура из проекта `OrbitalMotion/AISTPUUD/SurveyPUUD`:
- `ConstOrientAISTPUUD``ConstOrientPUUD`;
- `AzimuthAISTPUUD``AzimuthPUUD`;
- `SmoothSDIAISTPUUD``SmoothSDIPUUD`.
В новых классах нет префикса `AIST`. Вместо старого C++/Qt `Ballistics` используется существующая Kotlin-библиотека проекта PCP:
- `ballistics.orbitalPoints.timeStepper.AbstractStepper` для выхода на заданное время;
- `ballistics.types.OrbitalPoint`, `Orientation`, `BLHPoint`;
- `ballistics.utils.astro.AstronomerJ2000`;
- `ballistics.utils.math.Vector3D`, `Matrix3D`, `Quaternion3D`.
Основной API:
```kotlin
val calculator = AngularMotionCalculatorFactory.create(
mode = AngularMotionMode.AZIMUTH,
stepper = stepper,
)
val result = calculator.calculate(
SurveyId(
nlv = 4,
t = startTimeSeconds,
b = latitudeRad,
l = longitudeRad,
h = heightMeters,
duration = 20.0,
sdi = listOf(150.0),
azimuth = azimuthRad,
)
)
```
## Примечания по переносу
1. Временные параметры задаются в интегральных секундах, как в `ballistics-lib`.
2. Углы задаются в радианах.
3. Линейные параметры оптики в `AngularMotionConfig` сохранены в миллиметрах, как в исходном `sBLS_KA`.
4. Расчет времени начала режима сохраняет подход `calcTn`: поиск корня на интервале `t ± 180 с` и округление к `discreteTimes`.
5. Интервал успокоения рассчитывается обратной интерполяцией первых точек ПУУД, аналогично `TauIntervalCalculator`.