Files
knowledge/разное/полезное/система ориентации.md

235 lines
6.9 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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
```