Моделирование радиолокаторов
Текущие проекты
Наше сотрудничество с ГСКБ "Алмаз-Антей" началось ещё в 2013 году.

С 2015 года в нашей лаборатории разрабатываются средства программного моделирования радиолокаторов на языке Python, а в 2017 году начата разработка специализированного САПР для моделирования РЛС в интересах заказчика.
САПР-РЛС
Специализированая САПР для моделирования РЛС
Разработка ведётся на Python (3.6+) и JavaScript (только 3D-редактор).

Приложение можно архитектурно разбить на следующие элементы:

  • сервер симуляции,
  • 2D-редактор радиосцены,
  • 3D-редактор радиосцены,
  • основное клиентское приложение, включающее в себя редакторы радиосцены и прочую функциональность.

Сервер симуляции представляет собой комбинацию асинхронного веб-сервера на основе AIOHTTP (для взаимодействия с клиентами) и библиотек SimPy (для имитационного моделирования) и Dask.distributed (для распределённых вычислений).

Двумерный редактор радиосцены основан на QGIS 3 и библиотеки PyQGIS.

Трехмерный редактор радиосцены является встроенным в PyQt веб-приложением на основе CesiumJS, взаимодействие с сервером симуляции происходит по протоколу WebSocket.

Основное клиентское приложение разрабатывается на основе библиотек PyQt5, matplotlib, PyQtGraph.
Radar Scene Editor
Редактор радиосцены для задач имитационного моделирования в радиолокации
Клиентское приложение редактора радиосцены (сентябрь 2018)
Основные задачи редактора радиосцены:

  • отображение картографической информации в 2D и 3D (в т.ч. рельефа местности);
  • интерактивное размещение и настройка объектов симуляции на радиосцене (РЛС, целей, командных пунктов и т.д.);
  • управление процессом симуляции;
  • интерактивное визуальное наблюдение за результатами симуляции.

Редактор реализован в клиент-серверной архитектуре и является полностью кроссплатформенным ПО.
PyPhased
библиотека для моделирования РЛС
Библиотека PyPhased предназначена для моделирования РЛС на языке Python. Она позволяет моделировать локаторы различного назначения, включая ФАР и АФАР любых топологий, и является функциональным аналогом Phased Array System Toolbox из пакета MATLAB.

Библиотека позволяет пользователю смоделировать конвейер обработки сигнала (от генератора зондирующих импульсов до распространения в атмосфере и постобработки после приёма локатором), не вдаваясь в детали реализации каждой ступени обработки.

На сегодняшний день библиотека предоставляет около 80 классов, в том числе:

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

Сейчас библиотека активно разрабатывается, и в будущем количество реализованных блоков будет увеличиваться.

Некоторые части библиотеки планируется опубликовать на GitHub.
Сканирующий локатор
Матрица "дальность-скорость" импульсно-доплеровского локатора
Утилита для отладки модели локатора (конец 2015)
Flower
Фреймворк для программирования потоков данных (data flow programming).
Подход программирования потоков данных обладает важными преимуществами - наглядной визуализации потоков данных и естественной поддержкой параллелизма. Кроме того при правильном подходе, вычисления могут производиться как на локальной машине так и на удалённых узлах или кластерах.

Фреймворк логически делится на следующие блоки:
  • узлы-компоненты вычислительного графа - чёрные ящики, обладающие параметрами, входными и выходными портами;
  • вычислительные графы (для инициализации компонентов и их подсчёта);
  • асинхронный (asyncio) планировщик, определяющий порядок, время вычисления компонентов и потоки данных в графах вычисления;
  • различные среды выполнения, обеспечивающие расчёт компонентов при заданных параметрах и входных данных.
Среди возможностей фреймворка можно отметить:
  • возможность создания компонентов в декларативном стиле (наподобие SQLAlchemy);
  • поддержку составных компонентов, содержащих в себе граф вычисления
  • поддержку циклов и условий
  • реализованы следующие среды выполнения - исполнение компонентов как синхронно, так и в отдельных потоках и процессах (модуль concurrent), на удалённых кластерах (модули Dask.distributed и ipyparallel).
Bricks
Библиотека для разработки Simulink-подобных САПР
Для создания САПР РЛС разрабатывается GUI-библиотека Blocks and Ports (функциональный аналог nodeeditor), которая обеспечивает графическое представление графа вычислений в виде параметризованных блоков и связей между ними.

В будущем планируется публикация библиотеки на GitHub.
Пример потока данных в нашем САПР (апрель 2017)
Основной язык разработки: Python + NumPy / SciPy.

Отдельные части написаны на C++.

Некоторые классы будут реализованы для расчётов на кластере (скорее всего, с помощью dask).

Для разработки GUI используется PyQt5.
This site was made on Tilda — a website builder that helps to create a website without any code
Create a website