vault backup: 2026-06-05 16:22:40
This commit is contained in:
@@ -0,0 +1,146 @@
|
||||
```
|
||||
docs/
|
||||
00_project/
|
||||
project-overview.md
|
||||
team-and-responsibilities.md
|
||||
roadmap.md
|
||||
glossary.md
|
||||
|
||||
01_mission/
|
||||
mission-statement.md
|
||||
stakeholders.md
|
||||
user-analysis.md
|
||||
use-cases.md
|
||||
concept-of-operations.md
|
||||
|
||||
02_requirements/
|
||||
system-requirements.md
|
||||
software-requirements.md
|
||||
payload-requirements.md
|
||||
verification-matrix.md
|
||||
|
||||
03_system-architecture/
|
||||
system-context.md
|
||||
system-decomposition.md
|
||||
modes-of-operation.md
|
||||
budgets.md
|
||||
risks.md
|
||||
|
||||
04_interfaces/
|
||||
icd-overview.md
|
||||
icd-obc-eps.md
|
||||
icd-obc-radio.md
|
||||
icd-obc-payload.md
|
||||
telemetry-and-commands.md
|
||||
|
||||
05_subsystems/
|
||||
structure/
|
||||
design.md
|
||||
calculations.md
|
||||
drawings.md
|
||||
mass-budget.md
|
||||
|
||||
power/
|
||||
design.md
|
||||
electrical-schematics.md
|
||||
power-budget.md
|
||||
battery-analysis.md
|
||||
|
||||
communication/
|
||||
design.md
|
||||
link-budget.md
|
||||
radio-protocol.md
|
||||
|
||||
obc/
|
||||
hardware.md
|
||||
software-architecture.md
|
||||
algorithms.md
|
||||
|
||||
payload/
|
||||
design.md
|
||||
data-processing.md
|
||||
|
||||
ground-station/
|
||||
architecture.md
|
||||
user-interface.md
|
||||
operations.md
|
||||
|
||||
06_software/
|
||||
architecture.md
|
||||
modules.md
|
||||
state-machine.md
|
||||
algorithms.md
|
||||
build-and-flash.md
|
||||
coding-guidelines.md
|
||||
tests.md
|
||||
|
||||
07_verification/
|
||||
test-plan.md
|
||||
unit-tests.md
|
||||
integration-tests.md
|
||||
environmental-tests.md
|
||||
communication-tests.md
|
||||
results/
|
||||
|
||||
08_decisions/
|
||||
edr-001-choose-obc.md
|
||||
edr-002-radio-band.md
|
||||
edr-003-power-architecture.md
|
||||
|
||||
09_operations/
|
||||
operations-manual.md
|
||||
ground-commands.md
|
||||
telemetry-dictionary.md
|
||||
anomaly-handling.md
|
||||
```
|
||||
|
||||
# Минимальный набор документов для команды из 10 человек
|
||||
|
||||
Если сделать совсем практично, я бы начал с 10 документов.
|
||||
|
||||
| № | Документ | Зачем нужен |
|
||||
| --- | ------------------------------- | ---------------------------------------------- |
|
||||
| 1 | mission-statement.md | Что за миссия и зачем спутник существует |
|
||||
| 2 | concept-of-operations.md | Как система будет использоваться |
|
||||
| 3 | system-requirements.md | Что система должна делать |
|
||||
| 4 | system-architecture.md | Из каких подсистем состоит |
|
||||
| 5 | modes-of-operation.md | Режимы работы спутника |
|
||||
| 6 | icd-overview.md + отдельные ICD | Интерфейсы между подсистемами |
|
||||
| 7 | budgets.md | Масса, энергия, канал связи, память, стоимость |
|
||||
| 8 | software-architecture.md | Архитектура бортового и наземного ПО |
|
||||
| 9 | verification-matrix.md | Как проверяются требования |
|
||||
| 10 | engineering-decisions/ | Почему приняты ключевые решения |
|
||||
|
||||
|
||||
# Как распределить arc42, C4, SysML и системную документацию
|
||||
|
||||
Лучший вариант — не выбирать что-то одно, а разделить области применения.
|
||||
|
||||
| Область | Инструмент/шаблон |
|
||||
| ------------------------ | ---------------------------- |
|
||||
| Общая миссия | Mission Statement, ConOps |
|
||||
| Пользователи и сценарии | Use Cases, ConOps |
|
||||
| Системные требования | SyRS, таблица требований |
|
||||
| Архитектура всей системы | SysML-lite, block diagrams |
|
||||
| Интерфейсы | ICD |
|
||||
| ПО | arc42-lite или C4 |
|
||||
| Алгоритмы | UML Activity / State Machine |
|
||||
| Решения | EDR/ADR |
|
||||
| Расчёты | Analysis Reports, budgets |
|
||||
| Проверка | V&V Matrix, test reports |
|
||||
|
||||
# Сравнение вариантов
|
||||
|
||||
| Подход | Для вашего CubeSat | Сложность | Что покрывает лучше всего | |
|
||||
| ---------------------- | ---------------------------------- | --------------- | ------------------------------- | --- |
|
||||
| arc42 | Частично | Средняя | Архитектура ПО | |
|
||||
| C4 | Хорошо, но только для ПО/структуры | Низкая | Визуальное объяснение системы | |
|
||||
| 4+1 | Частично | Средняя | Runtime и physical view ПО | |
|
||||
| ISO 42010 | Хорошо как философия | Высокая | Views/stakeholders/concerns | |
|
||||
| SysML / MBSE-lite | Очень хорошо | Средняя/высокая | Система, интерфейсы, требования | |
|
||||
| NASA CubeSat 101 style | Очень хорошо | Средняя | Жизненный цикл CubeSat | |
|
||||
| ICD | Обязательно | Средняя | Интерфейсы | |
|
||||
| SRS/SyRS | Обязательно | Средняя | Требования | |
|
||||
| V&V Matrix | Очень желательно | Средняя | Проверка требований | |
|
||||
| ADR/EDR | Обязательно | Низкая | История решений | |
|
||||
| Docs-as-Code | Очень хорошо | Низкая/средняя | Совместная работа | |
|
||||
@@ -0,0 +1,60 @@
|
||||
CDMS - Command Data Management System
|
||||
|
||||
![[Pasted image 20260421024846.png]]
|
||||
|
||||
![[Pasted image 20260421024905.png]]
|
||||
|
||||
# Взаимодействие между подсистемами
|
||||
Варианты:
|
||||
1. (Каждый с каждым) Каждая подсистема сама управляет своими режимами и обменивается с другими данными. Подсистемы могут самостоятельно вызывать функции друг у друга. Например, СОС измерила текущую угловую скорость и перешла из режима "измерение" в режим "демпфирование". СОС обратилась к программному интерфейсу СЭП и задала мощность, подаваемую на катушки.
|
||||
2. (Звезда) Каждая подсистема связана только с Бортовой системой. При этом взаимодействие инициирует Бортовая система. В таком случае подсистема, например СОС, реализует программный интерфейс для приема команд от БС. При этом БС непрерывно опрашивает подсистемы и на основе их данных выполняет всю логику переходов в различные режимы. БС запросила измеренную ориентацию, определила превышение порога ошибки, запустила выполнение режима стабилизации.
|
||||
|
||||
Вариант 2 является предпочтительным.
|
||||
- высокоуровневая логика лежит в рамках одного программного модуля
|
||||
- более предсказуемые и детерминированные потоки данных между подсистемами
|
||||
- более четкое архитектурное разделение уровней (подсистемы - исполнители конкретных задач и команд, Бортовая Система - центральный высокоуровневый модуль, диспетчер)
|
||||
- минимальные сложности с распределением времени внутри модулей подсистем
|
||||
|
||||
Данная архитектура должна быть приоритетной, но не обязана выполняться на 100% процентов в таком виде.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Из [[S3-B-C-SET-1-2-Delta-PDR Mission_System_Overview.pdf]]
|
||||
![[Pasted image 20260420233701.png]]
|
||||
|
||||
![[Pasted image 20260420233806.png]]
|
||||
|
||||
|
||||
![[Pasted image 20260420233834.png]]
|
||||
|
||||
|
||||
![[Pasted image 20260420234122.png]]
|
||||
|
||||
|
||||
Из [[S3-BC-SE-1-0-Flight_Software_Architecture.pdf]]
|
||||
![[Pasted image 20260420234706.png]]
|
||||
|
||||
|
||||
![[Pasted image 20260420234731.png]]
|
||||
|
||||
|
||||
![[Pasted image 20260420235332.png]]
|
||||
|
||||
|
||||
![[Pasted image 20260420235509.png]]
|
||||
|
||||
|
||||
|
||||
![[Pasted image 20260420235538.png]]
|
||||
|
||||
|
||||
![[Pasted image 20260420235553.png]]
|
||||
|
||||
|
||||
|
||||
![[Pasted image 20260420235616.png]]
|
||||
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
|
||||
[[бортовая система]]
|
||||
|
||||
[[система ориентации]]
|
||||
|
||||
[[система электропитания]]
|
||||
@@ -0,0 +1,8 @@
|
||||
https://www.oresat.org/
|
||||
|
||||
https://en.wikipedia.org/wiki/ArduSat
|
||||
|
||||
https://www.eoportal.org/satellite-missions/estcube-1#mission-status
|
||||
|
||||
https://www.en.space.aau.dk/education/student-projects/aausat3
|
||||
https://www.eoportal.org/satellite-missions/aausat3#spacecraft
|
||||
@@ -0,0 +1,235 @@
|
||||
ADCS - Attitude Determination and Control System
|
||||
# Функциональная схема
|
||||
|
||||
Из SwissCube: [[S3-B-C-ADCS-1-3-ADCS_HW_and_System.pdf]]
|
||||
![[Лелеков Вестник Ed1.pdf]]
|
||||
|
||||
(убрать TLE, пропагатор, модель магнитного поля Земли - не нужны для B-dot)
|
||||
# Уровень 1 (контекст, границы)
|
||||
Система имеет 2 основные функции
|
||||
### Функция определения ориентации
|
||||
- Принимает данные датчиков о состоянии аппарата во внешней среде
|
||||
- Выдает измеренное состояние аппарата
|
||||
### Функция управления ориентацией
|
||||
- Принимает требуемое состояние
|
||||
- Принимает измеренное состояние
|
||||
- Выдает управляющие сигналы на активные элементы
|
||||
# Уровень 2 (принцип построения)
|
||||
### Активные элементы
|
||||
Магнитные катушки (по 3 осям)
|
||||
- Принимают управляющий сигнал
|
||||
- Выдают момент вращения
|
||||
### Набор датчиков
|
||||
- Магнитометр (3-осный)
|
||||
измеряет вектор магнитного поля Земли
|
||||
- Гироскоп (3-осный)
|
||||
измеряет вектор угловой скорости
|
||||
- Акселерометр (3-осный)
|
||||
измеряет вектор углового ускорения
|
||||
- Солнечные датчики (фотодиоды, 6 граней)
|
||||
позволяют вычислить вектор направления на Солнце
|
||||
- Датчики температуры (сколько?)
|
||||
позволяют компенсировать дрейф других датчиков
|
||||
# Уровень 3 (декомпозиция)
|
||||
### Определение ориентации
|
||||
- (расширенный?) Фильтр Калмана (устранение шума)
|
||||
### Управление ориентацией
|
||||
- B-dot (демпфирование)
|
||||
### Датчики
|
||||
- Калибровка (алгоритм?)
|
||||
- Температурная компенсация (модели, алгоритм?)
|
||||
- Вычисление вектора на Солнце (алгоритм?)
|
||||
|
||||
|
||||
|
||||
# Перечисление функций
|
||||
Измерение
|
||||
- Калибровка датчика
|
||||
- Опросить датчик
|
||||
- Отфильтровать шумы
|
||||
- Агрегировать разные датчики
|
||||
- Получить измеренную ориентацию
|
||||
- Компенсировать температурный дрейф
|
||||
Управление
|
||||
- Вычислить вектор B-dot
|
||||
- Сформировать управляющий сигнал
|
||||
- Вычислить текущую ошибку
|
||||
Взаимодействие с подсистемами
|
||||
- Сохранить данные в общую память
|
||||
- Сформировать объект телеметрии
|
||||
- Регулировать катушки через СЭП?
|
||||
- Выполнить команду от БС
|
||||
|
||||
# Режимы
|
||||
|
||||
| Режим | Выполняемые функции |
|
||||
| ------------- | --------------------------------------------------------------------------------- |
|
||||
| Выключена | Нет |
|
||||
| Ожидание | Ожидание команд |
|
||||
| Измерение | ~<br>Опрос датчиков, фильтрация, сохранение<br>Формирование телеметрии |
|
||||
| Демпфирование | ~<br>Вычисление B-dot<br>Формирование вектора для катушек<br>Управление катушками |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Из [[S3-B-ADCS-1-4-ADCS_Hardware.pdf]]
|
||||
![[attachments/Pasted image 20260420231042.png]]
|
||||
|
||||
|
||||
![[Pasted image 20260420231401.png]]
|
||||
|
||||
![[Pasted image 20260420231548.png]]
|
||||
|
||||
|
||||
Из [[S3-B-C-ADCS-1-0-Sytem_Engineering before delta-PDR.pdf]]
|
||||
![[Pasted image 20260420232949.png]]
|
||||
|
||||
![[Pasted image 20260420233430.png]]
|
||||
|
||||
|
||||
Из [[S3-B-C-SET-1-2-Delta-PDR Mission_System_Overview.pdf]] (обновленная)
|
||||
![[Pasted image 20260420234221.png]]
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Диаграмма через D2:
|
||||
```d2
|
||||
#direction: right
|
||||
|
||||
outer: Внешняя среда {
|
||||
field: Магнитное поле Земли
|
||||
sun: Солнце
|
||||
}
|
||||
|
||||
adcs: Система ориентации {
|
||||
control: Алгоритмы управления
|
||||
determ: Алгоритмы определения ориентации
|
||||
actuators: Актуаторы (катушки)
|
||||
sensors: Датчики {
|
||||
mag: Магнитометр (3d)
|
||||
gyro: Гироскоп (3d)
|
||||
accel: Акселерометр (3d)
|
||||
sun: Солнечные датчики (x6)
|
||||
}
|
||||
}
|
||||
|
||||
cubesat: Кубсат
|
||||
|
||||
desired: Требуемое состояние
|
||||
|
||||
estimated: Вычисленное состояние
|
||||
|
||||
noise: Шум
|
||||
|
||||
sum: + {
|
||||
width: 30
|
||||
height: 30
|
||||
shape: circle
|
||||
}
|
||||
|
||||
adcs.control -> adcs.actuators -> cubesat: управляющий момент
|
||||
adcs.sensors -> adcs.determ
|
||||
noise -> adcs.determ
|
||||
|
||||
desired -> sum
|
||||
sum -> adcs.control
|
||||
adcs.determ -> estimated -> sum
|
||||
|
||||
outer -> cubesat: возмущающие моменты
|
||||
outer -> adcs.sensors: измеряемое воздействие
|
||||
cubesat -> adcs.sensors
|
||||
|
||||
|
||||
```
|
||||
|
||||
```mermaid
|
||||
flowchart LR
|
||||
|
||||
subgraph outer["Внешняя среда"]
|
||||
|
||||
field["Магнитное поле Земли"]
|
||||
|
||||
sun["Солнце"]
|
||||
|
||||
end
|
||||
|
||||
|
||||
|
||||
subgraph adcs["Система ориентации"]
|
||||
|
||||
control["Алгоритмы управления"]
|
||||
|
||||
determ["Алгоритмы определения ориентации"]
|
||||
|
||||
actuators["Актуаторы (катушки)"]
|
||||
|
||||
subgraph sensors["Датчики"]
|
||||
|
||||
mag["Магнитометр (3d)"]
|
||||
|
||||
gyro["Гироскоп (3d)"]
|
||||
|
||||
accel["Акселерометр (3d)"]
|
||||
|
||||
suns["Солнечные датчики (x6)"]
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
|
||||
cubesat["Кубсат"]
|
||||
|
||||
desired["Требуемое состояние"]
|
||||
|
||||
estimated["Вычисленное состояние"]
|
||||
|
||||
noise["Шум"]
|
||||
|
||||
sum((+))
|
||||
|
||||
|
||||
|
||||
%% Основные связи
|
||||
|
||||
control --> actuators
|
||||
|
||||
actuators -->|управляющий момент| cubesat
|
||||
|
||||
sensors --> determ
|
||||
|
||||
noise --> determ
|
||||
|
||||
|
||||
|
||||
desired --> sum
|
||||
|
||||
sum --> control
|
||||
|
||||
determ --> estimated
|
||||
|
||||
estimated --> sum
|
||||
|
||||
|
||||
|
||||
%% Внешние воздействия
|
||||
|
||||
outer -->|возмущающие моменты| cubesat
|
||||
|
||||
outer -->|измеряемое воздействие| sensors
|
||||
|
||||
cubesat --> sensors
|
||||
```
|
||||
@@ -0,0 +1 @@
|
||||
EPS - Electrical Power System
|
||||
Reference in New Issue
Block a user