---
title: 'TODO ОКСАД ТМС. Получение дальности путем учета особенностей траекторий полета БР и БРО и сигнальной информации БП ТМС"'
disqus: recetu
tags: oksadtms
---
# ОКСАД ТМС. Получение дальности путем учета особенностей траекторий полета БР и БРО и сигнальной информации БП ТМС
```mermaid
sequenceDiagram
autonumber
participant Fd as frontDistance
participant Bd as backDistance
participant P as dataService
Note over Fd, Bd : Начало задачи получения дальности
Fd ->> Bd: запрос радиальной скорости (getVrad)
Bd -->> Fd: вектор радиальной скорости
Fd ->> Bd: запрос азимута и угла места (getAzimuthAndElevation)
Bd -->> Fd: вектор азимута и угла места
Fd ->> Fd: Отображение Vrad/Az/Um
loop
alt
Note over Fd, Bd: Загрузка априорных данных (автономный режим)
Fd ->> Fd: выбор файла с траекторией
Fd ->> Bd: запрос загрузки траектории из файла (loadTrajectory(filePath))
Bd -->> Fd: мультивектор типовой траектории (XYZ) или сообщение об ошибке
Fd ->> Fd: выбор файла с циклограммой
Fd ->> Bd: запрос загрузки циклограммы из файла (loadTrajectory(filePath))
Bd -->> Fd: циклограмма или сообщение об ошибке
Fd ->> Fd: события циклограммы типового пуска готовы к отображению
else
Note over Fd, Bd: Загрузка априорных данных (сетевой режим)
Fd ->> Bd: запрос пусков (getLaunchInfo)
Bd ->> P: запрос пусков (getLaunchInfo)
P -->> Bd: список пусков (list<LaunchInfo>)
Bd -->> Fd: список пусков (list<LaunchInfo>)
Fd ->> Fd: отображение списка пусков
Fd ->> Bd: запрос траектории по выбранному пуску (getLaunchTrajectory(LaunchIdent))
Bd ->> P: запрос типовой траектории (getLaunchTrajectory(LaunchIdent))
P -->> Bd: мультивектор типовой траектории (XYZ)
Bd -->> Fd: мультивектор типовой траектории (XYZ)
Fd ->> Bd: запрос циклограммы по выбранному пуску (getEvents(LaunchIdent))
Bd ->> P: запрос циклограммы по выбранному пуску (getEvents(LaunchIdent))
P --> Bd: события циклограммы типового пуска (list<events>)
Bd --> Fd: события циклограммы типового пуска (list<events>)
Fd ->> Fd: события циклограммы типового пуска готовы к отображению
end
Fd ->> Bd: запрос на расчёт радиальной скорости по априорным данным (calcVrad(LaunchTraectory))
Bd ->> Bd: увязка векторов Vrad типового и текущего пуска по начальному значению (matchScale)
Bd -->> Fd: вектор радиальной скорости (типового пуска)
Fd ->> Bd: запрос на расчёт азимута и угла места (calcAzUm(LaunchTraectory))
Bd ->> Bd: увязка векторов азимута и угла места типового и текущего пуска по начальному значению (matchScale)
Bd -->> Fd: вектора азимута и угла места (типового пуска)
Fd ->> Fd: отображение расчитанных Vrad, Az, Um типового пуска
opt
Note over Fd, Bd: Получение событий циклограммы априорного пуска (отдельная диаграмма)
end
Note over Fd, Bd: Продолжение задачи получения дальности
Fd ->> Bd: запрос событий циклограммы текущего и априорного пусков (getEvents)
Bd --> Fd: события циклограммы текущего и априорного пусков (list<events>)
Fd ->> Fd: отображение событий циклограммы
Fd ->> Fd: определение временой поправки априорных и текущих данных (offset)
Fd ->> Bd: запрос на смещение векторов радиальной скорости, азимута и угла места типового пуска на временную поправку (moveScale(offset))
Bd -->> Fd: вектора радиальной скорости, азимута и угла места типового пуска
Fd ->> Fd: отображение векторов радиальной скорости, азимута и угла места типового пуска
Fd ->> Fd: оценка расхождения графиков азимута и угла места типового и текущего пуска
end
Fd ->> Fd: оценка расхождения графиков радиальной скорости типового и текущего пуска
alt расхождения радиальной скорости > 10%
Fd ->> Bd: запрос на пересчёт центральной частоты (getF0)
Bd --> Fd: уточнённое значение центральной частоты
Fd ->> Bd: сохранение новой центральной частоты (setF0)
Note over Fd, Bd: переход к задачам определения частоты, допреровского смещения, радиальной скорости
else расхождения радиальной скорости < 10%
Note over Fd, Bd: ничего
end
Fd ->> Bd: запрос на расчёт дальности по априорным данным (calcApriorDistance)
Bd -->> Fd: вектор априорной дальности
Fd ->> Fd: отображение априорной дальности
Fd ->> Bd: запрос списка дальностей текущего пуска (getDistanceList)
Bd -->> Fd: список дальностей (list<distance>)
Fd ->> Fd: выбор дальности
Fd ->> Bd: запрос дальности (getDistance)
Bd --> Fd: вектор дальности
Fd ->> Fd: отображение дальности
Fd -> Bd: запрос среднего значения вариации дальностей текущего и априорного пусков (getAverageDiff)
Bd -->> Fd: среднее значение вариации дальностей текущего и априорного пусков
Fd ->> Fd: отображение среднего значения вариации дальностей текущего и априорного пусков
loop
alt вариация > 10000
Fd ->> Fd: предупреждение о выходе вариации за пределы нормы
Note over Fd, Bd: уточнение анизотропной мощности (отдельная диаграмма)
Fd ->> Fd: отображение уточнённой дальности
else вариация < 10000 (выход из цикла)
Note over Fd, Bd: конец задачи, сохранение дальности
end
end
```
### Получение событий циклограммы
```mermaid
sequenceDiagram
autonumber
participant Fd as frontDistance
participant Bd as backDistance
participant Fc as frontCycle
participant Bc as backCycle
Note over Fd, Bd: Получение событий циклограммы априорного пуска
Note over Fd, Bd: Полный вариант реализации
Fd ->> Fc: вызов фронта задачи получения событий циклограммы априорного пуска
Fc ->> Bc: запрос радиальной скорости (getVrad)
Bc -->> Fc: вектор радиальной скорости
Fc ->> Fc: отображение радиальной скорости
Fc ->> Bc: запрос азимута и угла места (getAzimuthAndElevation)
Bc -->> Fc: вектор азимута и угла места
Fc ->> Fc: отображение азимута и угла места
loop
Fc ->> Fc: выбор параметра, по которому рассчитываются события циклограммы
loop
Fc ->> Bc: настройка фильтра (setFilter)
loop
Fc ->> Bc: установка гауссовской кривой (setGauss(params))
Bc -->> Fc: график гауссовской кривой
Fc ->> Fc: отображение гауссовской кривой
Fc ->> Bc: установка базисной функции (setBasis(params))
Bc -->> Fc: график базисной функции
Fc ->> Fc: отображение базисной функции
Fc ->> Bc: запрос на расчёт событий циклограммы(calcCyclogram(vector))
Bc -->> Fc: события циклограммы (list<events>)
Fc ->> Fc: отображение событий циклограммы в графическом и табличной виде
end
end
end
Fc ->> Fc: добавление/редактирование событий циклограммы
Fc ->> Bc: запрос на сохранение событий циклограммы (save(list<events>))
Bc ->> Bd: события циклограммы (list<events>)
Fc ->> Fd: вызов фронт задачи получение дальности
```
### Уточнение анизотропной мощности
```mermaid
sequenceDiagram
autonumber
participant Fd as frontDistance
participant Bd as backDistance
participant Fp as frontPower
participant Bp as backPower
Fd ->> Fp: фронт анизотропной мощности и дальности
Note over Fp, Bp: уточнение анизотропной мощности
Fp ->> Fp: ввод коэффициента усиления приёмной антенны
Fp -> Bp: запрос на расчёт анизотропной мощности (getAnisotropicPower)
Bp -->> Fp: график анизотропной мощности
Fp ->> Fp: уточнение границ допустимых значений анизотропной мощности
Fp ->> Bp: запрос на сохранение допустимых значений анизотропной мощности
loop
Fp ->> Fp: выделение интервала для расчёта среднего значение анизотропной мощности (interval)
Fp -> Bp: запрос на расчёт среднего значения анизотропной мощности (getAverageAnisotropicPower(interval))
Bp -->> Fp: среднее значение анизотропной мощности и результат проверки попадания значения в интервал допустимых значений
Fp ->> Fp: отображение среднего значения анизотропной мощности
end
Fp ->> Fd: фронт получения дальности
Fd ->> Bd: запрос на пересчёт дальности с учётом средней анизотропной мощности (calcDistance(AverageAnisotropicPower))
Bd ->> Bp: запрос средней анизотропной мощности (getAverageAnisotropicPower)
Bp ->> Bd: средняя анизотропная мощность (AverageAnisotropicPower)
Bd -->> Fd: вектор уточнённой дальности
Fd ->> Fd: отображение уточнённой дальности
```