--- 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: отображение уточнённой дальности ```