# Архитектура судна

Предварительная схема, выбранная для разработки и сравнения:

```text
Солнце → секции PV → MPPT → LiFePO4 + BMS → DC-шина
                                             ├→ левый инвертор → BLDC → винт
                                             ├→ правый инвертор → BLDC → винт
                                             ├→ лебёдки / запуск кайта
                                             └→ DC/DC → бортовые потребители

Ветер → кайт → уздечка / управляющие стропы → буксирный узел → силовой набор
          ↑             ↑                         ↓
          └──── контроллер крыла ← датчики тяги / углов / IMU / ветер

GNSS / AIS / ветер / курс / энергетика → Signal K → OpenCPN / журнал
Карты / погода / телеметрия / цель экипажа → локальный ИИ → маршрут / режим движения
Локальный ИИ → проверка допустимых команд → pypilot + контроллер кайта + контроллеры моторов
Локальный ИИ ↔ интерфейсы всех бортовых систем / диагностика / журнал
Независимые аппаратные ограничения → сброс тяги / запрет приводов / защита энергии
```

Расположение буксирного узла выбираем совместно с центром бокового сопротивления,
центром тяжести и балками. Его момент определяет рыскание, дифферент и крен;
ошибка компоновки не устраняется только настройкой автопилота.

## Координация управления

Быстрый локальный контур обеспечивает устойчивость крыла и реакцию на перегрузку.
Судовой автопилот поддерживает курс. Более медленный координатор с локальным ИИ выбирает режим,
допустимый сектор полёта и целевую тягу с учётом маршрута, ветра и запасов энергии.
Картплоттер предоставляет маршрут и обстановку; запаздывающие сетевые данные
не должны быть единственным основанием немедленной защиты.

Необходимо явно определять координаты и время:
NED/ENU для навигации, body frame судна для сил/моментов,
ветровая система крыла; SI в алгоритмах, узлы и градусы в интерфейсе.
Каждый пакет имеет время измерения, источник, качество и признак устаревания.

## Локальный ИИ в архитектуре

По требованию **AI-CONTROL-001** локальный ИИ отвечает за прокладку маршрута,
управление движением через бортовые контроллеры и координацию всех систем.
Предлагаемая связка: данные через Signal K и специализированные адаптеры,
карты и отображение маршрута через OpenCPN, курс через pypilot, полёт и запуск
через отдельный контроллер кайта. Конкретные API и алгоритмы ещё не утверждены.

Для каждой системы определить доступные измерения, разрешённые действия,
ограничения, задержку, подтверждение выполнения и поведение при потере связи.
Данные навигации, текстовые сообщения и ответы модели не исполняются как
команды без проверки формата, актуальности и допустимого режима. Экипаж
задаёт цель и ограничения, видит причину изменения маршрута или режима
и может перехватить управление.

Контуры стабилизации и аварийные защиты сохраняют самостоятельность.
Отказ ИИ-вычислителя должен оставлять доступными ручное управление,
аварийный депауэр, защиту АКБ и приоритетное питание. Безопасное состояние
при каждом отказе выбирается для конкретного режима; автоматическое отключение
всех приводов не назначается универсальным действием.

Функции, границы полномочий и программа проверки описаны в
[разделе навигации](07_navigation.md#local-ai).

## Параллельные варианты для сравнения

Два отдельных электрических привода дают управление разностью тяги и резервирование,
но общие батарея, шина и охлаждение могут создавать общий отказ.
Сравнить единый и секционированный аккумулятор, отдельное питание управления,
валовые линии, поворотные подвесные приводы и выдвижные колонны.
Решение зависит от ремонта на борту, сопротивления выключенных винтов и массы.

Источники: N06 *(отдельный исходник не входит в этот комплект / external source not included)*, N01 *(отдельный исходник не входит в этот комплект / external source not included)*, K01 *(отдельный исходник не входит в этот комплект / external source not included)*, K08 *(отдельный исходник не входит в этот комплект / external source not included)*.

## Координатор энергии и приводов

[Материалы Open Boat Projects](41_open_boat_projects_review.md) добавляют
проектный контракт приборных данных и датчиков. Приборная сеть и тяговая CAN
не считаются одной совместимой шиной. Шлюз по умолчанию рассматривается для
телеметрии; управление проходит отдельную проверку полномочий. Низковольтные
модули не подключаются к 72 В по одной только совместимости протоколов.

[Применение переноса от 19 октября](40_full_transfer_application.md) дополняет
этот уровень спецификацией `calculations/control/vcu-ems/design-contract.yaml`
и 12 кандидатами отказов в `fmea-candidates.csv`. Они задают работу над
предзарядом, разрешениями тяги/заряда, свежестью CAN, ручным приоритетом и
общими отказами двух приводов; аппаратные параметры и таблица переходов
ещё не выбраны. Это проектная спецификация, не установленный контроллер.

[Разбор морских проектов](37_marine_opensource.md) предлагает отдельный детерминированный VCU/EMS между локальным ИИ и приводами. Это кандидат архитектуры; физический контроллер не создан. Предусмотреть описание CAN-сообщений, контроль устаревания данных, ручной приоритет и автономные защиты. Общая DC-шина остаётся вариантом наряду с секционированной; каталог не доказывает независимость двух приводов.
