Авиационные приборы и индикаторы

Описание демо-примера

Расположение

SimInTech\Demo\Визуализация и анимация\Индикаторы\Авиационные приборы и индикаторы\Авиационные приборы и индикаторы.pak

Описание

В примере демонстрируется работа блоков из подгрупп "Авиационные приборы" и "Авиационные индикаторы" библиотеки "Индикаторы" при работе SimInTech совместно с авиасимулятором X-Plane, а также без авиасимулятора.

Внимание: данный пример состоит из трех проектов, входящих в состав пакета проектов "Авиационные приборы и индикаторы.pak". Для запуска процесса моделирования необходимо запустить на расчет пакет проектов.

Демонстрационный пример содержит пакет проектов, включающий три проекта:
  1. Авиационные приборы
  2. Авиационные индикаторы
  3. Задание значений сигналов
Общий вид главного меню SimInTech и описанного пакета проектов представлен на рисунке (Рисунок 1).


Рис. 1. Главное меню SimInTech и пакет проектов "Авиационные приборы и индикаторы.pak".

В пакете проектов создана база сигналов, в которой содержатся 16 сигналов (Рисунок 2).

Все сигналы (Рисунок 2) входят в группу сигналов под названием "Sim". Каждый сигнал в этой группе имеет имя внутри группы.


Рис. 2. Окно "Редактор базы данных сигналов".

Авиационные приборы

Проект "Авиационные приборы.prt" содержит блоки "Авиагоризонт с прямой индикацией", "Авиационные часы", "Указатель вертикальной скорости", "Указатель высоты", "Указатель курса", "Указатель скорости", "Указатель угла атаки и перегрузки" из подменю "Авиационные приборы" вкладки "Индикаторы", а также графические примитивы "Круг" и "Залитый прямоугольник" с панели примитивов.

Модель проекта "Авиационные приборы.prt" демонстрирует возможности блоков авиационных приборов по отображению значений сигналов. В свойствах каждого блока в столбце "Формула" заданы имена сигналов, значения которых влияют на изменение положения подвижных элементов индикации в соответствии с алгоритмами, реализованными внутри блока.

Примитив "Залитый прямоугольник" используется в качестве фона для имитации цвета приборной доски воздушного судна. Примитивы "Круг" используются для сигнализации превышения допустимых значений сигналов "Угол атаки" и "Перегрузка", отображаемых в блоке "Указатель угла атаки и перегрузки".

Если в блоке "Указатель угла атаки и перегрузки" значение сигнала "Угол атаки" превышает допустимые значения (максимально допустимое значение определяется значением сигнала "Максимально допустимый угол атаки" (Рисунок 2), минимально допустимое значение определяется верхней границей красной зоны шкалы угла атаки и составляет 0 град), то примитив "Круг", расположенный слева от блока "Указатель угла атаки и перегрузки", окрасится в красный цвет, если не превышает — в серый цвет (Рисунок 3).

Если в блоке "Указатель угла атаки и перегрузки" значение сигнала "Перегрузка" превышает допустимые значения (максимально допустимое значение определяется значением сигнала "Максимально допустимая перегрузка" (Рисунок 2), минимально допустимое значение определяется верхней границей красной зоны шкалы перегрузки и составляет 0 град), то примитив "Круг", расположенный справа от блока "Указатель угла атаки и перегрузки", окрасится в красный цвет, если не превышает — в серый цвет (Рисунок 3).


Рис. 3. Окно проекта "Авиационные приборы.prt".

Авиационные индикаторы

Проект "Авиационные индикаторы.prt" содержит блоки из подменю "Авиационные индикаторы" из вкладки "Индикаторы" и графический примитив "Залитый прямоугольник" с панели примитивов.

Модель проекта "Авиационные индикаторы.prt" демонстрирует возможности блоков авиационных индикаторов по отображению значений сигналов. В свойствах каждого блока в столбце "Формула" заданы имена сигналов, значения которых влияют на изменение положения подвижных элементов индикации в соответствии с алгоритмами, реализованными внутри блока (Рисунок 4).

Примитив "Залитый прямоугольник" используется для имитации цвета фона в многофункциональных индикаторах воздушного судна.

Если в блоке "Индикатор угла атаки" значение сигнала "Угол атаки" превышает допустимые значения (максимально допустимое значение определяется значением сигнала "Максимально допустимый угол атаки" (Рисунок 2), минимально допустимое значение определяется значением сигнала "Минимально допустимый угол атаки" (Рисунок 2)), то стрелка индикатора угла атаки в виде силуэта самолета окрашивается в красный цвет, если не превышает — в белый цвет (Рисунок 4).

Если в блоке "Индикатор перегрузки" значение сигнала "Перегрузка" превышает допустимые значения (максимально допустимое значение определяется значением сигнала "Максимально допустимая перегрузка" (Рисунок 2), минимально допустимое значение определяется значением сигнала "Минимально допустимая перегрузка" (Рисунок 2)), то стрелка индикатора перегрузки окрашивается в красный цвет, если не превышает — в белый цвет (Рисунок 4).


Рис. 4. Окно проекта "Авиационные индикаторы.prt".

Задание значений сигналов

Модель проекта "Задание значений сигналов.prt" демонстрирует возможности SimInTech по управлению индикацией в блоках авиационных приборов и индикаторов. Для этого в модели реализована схема задания сигналов, используемых в блоках авиационных приборов и индикаторов, которые могут быть заданы от разных источников (Рисунок 5).


Рис. 5. Окно проекта "Задание значений сигналов.prt".

Модель проекта "Задание значений сигналов.prt" имеет два режима работы: Прием данных от авиасимулятора" и Демонстрация".

Прием данных от авиасимулятора Plane-X

Режим "Прием данных от авиасимулятора" включается автоматически при поступлении данных от авиасимулятора X-Plane на блок "Сервер UDP". Если на UDP-порт, номер которого указан в свойстве "Порт ip" блока "Сервер UDP", не поступают данные от авиасимулятора, то модель будет работать в режиме "Демонстрация".

Схема модели настроена на автоматический прием данных от авиасимулятора. Для переключения работы модели в режим "Прием данных от авиасимулятора" необходимо настроить авиасимулятор на передачу данных. Данные от авиасимулятора отправляются в пакетах, каждый из которых имеет свой индекс и содержит по 8 сигналов, которые в схеме проекта выводятся через выходные порты каждого блока "ByteUnPack". Для корректной работы проекта требуется принимать от авиасимулятора X-Plane пакеты данных с определенными индексами и знать через какой блок "ByteUnPack" выводится пакет данных с конкретным индексом.

Для правильного определения индексов пакетов данных, которые необходимо принимать от авиасимулятора X-Plane, возможно использовать файл "Приложение 1. Перечень пакетов данных.xlsx", находящийся в директории установки SimInTech в папке "\SimInTech\Demo\Интеграция со сторонним ПО\X-Plane\Приложения\" (перечень ссылок в этом файле составлен для версии X-Plane 11.41, но актуален и для более поздних версий). Для примера на рисунке (Рисунок 6) показано, что сигналы "pitch, deg" (угол тангажа, град), "roll, deg" (угол крена, град) содержатся в пакете данных с индексом 17, а сигнал "alpha, deg" (угол атаки, град) содержится в пакете данных с индексом 18. Таким образом возможно определить индекс требуемого пакета данных. С использованием файла "Приложение 1. Перечень пакетов данных.xlsx" установлено, что сигналы, перечисленные в таблице (Рисунок 2), которые могут быть приняты от авиасимулятора X-Plane 12 ("Местное время", "Приборная скорость", "Истинная скорость", "Число Маха", "Перегрузка", "Угол тангажа", "Угол крена", "Угол курса", "Угол атаки", "Высота", "Вертикальная скорость"), содержатся в пакетах данных с индексами 1, 3, 4, 17, 18, 20, 21.


Рис. 6. Окно файла "Приложение 1. Перечень пакетов данных.xlsx" с выделенными сигналами и индексами пакетов данных, в которых они находятся.
Для проверки номера индекса пакета данных (для разных версий авиасимулятора номера индексов пакетов данных с одинаковыми сигналами могут отличаться), содержащего нужный сигнал, и определения порядкового номера сигнала в пакете данных необходимо запустить авиасимулятор X-Plane, в главном окне нажать кнопку "Новый полет" (Рисунок 7), выбрать любое воздушное судно и нажать кнопку "Начать полет" (Рисунок 8).


Рис. 7. Главное окно авиасимулятора X-Plane 12 с выделенной кнопкой "Новый полет".


Рис. 8. Окно "Конфигурация полета" авиасимулятора X-Plane 12 с выбранным воздушным судном и выделенной кнопкой "Начать полет".
Для определения порядкового номера каждого сигнала в пакете данных необходимо в окне настроек авиасимулятора включить отображение сигналов нужных пакетов данных (Рисунок 9).


Рис. 9. Окно авиасимулятора X-Plane в режиме полета с выделенной кнопкой "Открыть окно настроек".
Необходимо перейти во вкладку "Вывод данных" и отметить пакеты данных с индексами 1, 3, 4, 17, 18, 20, 21 в столбцах "Показать в кабине" и "Сеть через UDP". Для отправки данных необходимо отметить пункт "Отправить выходные данные сети", после чего в появившихся пунктах ввести IP-адрес "127.0.0.1", порт "49004", после чего нажать кнопку "Готово" (Рисунок 10).


Рис. 10. Окно настроек авиасимулятора X-Plane на вкладке "Вывод данных" с отмеченными пакетами данных и выделенной панелью "Конфигурация сети".
Значения сигналов выбранных пакетов данных при этом отображаются в окне авиасимулятора, как показано на рисунке (Рисунок 11). В каждой строке отображаются сигналы одного пакета данных.


Рис. 11. Окно авиасимулятора X-Plane в режиме полета с выделенными сигналами в отображаемых пакетах данных.
Каждый пакет данных содержит по 8 чисел типа "float", каждое из которых соответствует какому-либо сигналу в авиасимуляторе. Для всех сигналов, перечисленных в таблице (Рисунок 2), индекс пакета данных и порядковый номер каждого сигнала в этом пакете определены вышеописанным способом и представлены в таблице (Таблица 1).
Табл. 1. Индексы пакетов данных для используемых сигналов
№ п/п Имя Название Индекс пакета данных Порядковый номер сигнала в пакете данных
1 Sim_Local_time Местное время 1 7
2 Sim_Vpr Приборная скорость 3 6
3 Sim_Vist Истинная скорость 3 7
4 Sim_Mach Число Маха 4 1
5 Sim_Ny Перегрузка 4 5
6 Sim_Tangaj Угол тангажа 17 1
7 Sim_Kren Угол крена 17 2
8 Sim_Kurs Угол курса 17 3
9 Sim_Ataka Угол атаки 18 1
10 Sim_H Высота 20 4
11 Sim_Vy Вертикальная скорость 21 5

Модель проекта "Задание значений сигналов.prt" настроена на прием от авиасимулятора 11 сигналов (Таблица 1), содержащихся в 7 пакетах данных с индексами 1, 3, 4, 17, 18, 20, 21, которые должны быть отмечены на вкладке "Вывод данных" в окне настроек авиасимулятора X-Plane для отправки данных через сеть на указанный UDP-порт по указанному сетевому адресу (Рисунок 10).

Факт приема данных от авиасимулятора в модели определяется по значению первого байта в принимаемом информационном сообщении. Значение первого байта поступает на входной порт блока "В память". Если данные от авиасимулятора не поступают, то это значение равно "0", если поступают, то это значение равно "68" (в коде ASCII это соответствует букве "D", первой букве заголовка "DATA" в информационном сообщении, которое отправляется от авиасимулятора). Если значение сигнала, поступающего на входной контакт каждого блока "Ключ управляемый перекидной по входам тип 1" больше, чем значение, указанное в свойстве "Значения уставок", то в блоке "Ключ управляемый перекидной по входам тип 1" на выходной порт поступают сигналы со второго входного порта этого же блока. При поступлении с выходного порта блоков "Из памяти" на входной порт каждого блока "Ключ управляемый перекидной по входам тип 1" значения "68" происходит переключение входных портов в этих блоках и на выходной порт поступают сигналы, принимаемые через второй входной порт от авиасимулятора.

Значения сигналов "Приборная скорость", "Истинная скорость" поступают на вход блоков "Запись в список сигналов" после умножения сигналов, принимаемых от авиасимулятора, на множитель "1.61" в блоках "Усилитель" для перевода единиц измерения сигналов из "мили/ч" в "км/ч".

Значение сигнала "Высота" поступает на вход блока "Запись в список сигналов" после умножения сигнала, принимаемого от авиасимулятора, на множитель "0.3048" в блоках "Усилитель" для перевода единиц измерения сигналов из "футы" в "метры".

Значение сигнала "Вертикальная скорость" поступает на вход блока "Запись в список сигналов" после преобразования сигнала, принимаемого от авиасимулятора, в блоке "Инерционное звено 1-го порядка" для имитации запаздывания отображения значения вертикальной скорости, связанного с принципом работы настоящего указателя вертикальной скорости (вариометра).

В правой части схемы модели "Задание значений сигналов.prt" задаются значения сигналов "Поступление данных от авиасимулятора", "Максимально допустимая перегрузка", "Минимально допустимая перегрузка", "Максимально допустимый угол атаки", "Минимально допустимый угол атаки" (Рисунок 2).

При работе модели в режиме "Прием данных от авиасимулятора" сигналу "Прием данных от авиасимулятора" автоматически задается значение "1", сигналу "Максимально допустимая перегрузка" вручную задается значение от "6" до "10" с помощью примитива "Линейный прибор", сигналу "Минимально допустимая перегрузка" вручную задается значение от "-2" до "0" с помощью примитива "Линейный прибор", сигналу "Максимально допустимый угол атаки" вручную задается значение от "10" до "30" с помощью примитива "Линейный прибор", сигналу "Минимально допустимый угол атаки" вручную задается значение от "-10" до "0" с помощью примитива "Линейный прибор" (Рисунок 12).


Рис. 12. Окно проекта "Задание значений сигналов.prt" при работе его модели в режиме "Прием данных от авиасимулятора".

Работа проекта в режиме демонстрации

Режим "Демонстрация" автоматически включается после запуска моделирования, когда на блок "Сервер UDP" поступают нулевые значения (данные от авиасимулятора не принимаются). При этом значение сигнала для каждого блока "Запись в список сигналов" задается от выходного порта блока "Ключ управляемый перекидной по входам тип 1", на выходной порт которого поступают сигналы с первого входного порта этого же блока. При этом для блоков "Запись в список сигналов", у которых свойству "Имена сигналов" в соответствии с таблицей (Рисунок 2) заданы имена сигналов "Вертикальная скорость", "Число Маха", "Вертикальная скорость" значения задаются с выходных портов блоков "Синусоида", для каждого из которых заданы значения свойств"Амплитуда" и "Частота". Например, для блока "Запись в список сигналов", у которого в свойстве "Имена сигналов" задано имя сигнала "Вертикальная скорость" (Рисунок 2), на входной порт поступает сигнал с выходного порта блока "Синусоида", у которого свойству "Амплитуда" задано значение "30" (значение меняется в диапазоне от "-30" до "30"), свойству "Частота" задано значение "0.035" (Рисунок 13). Аналогичным образом задаются значения сигналов "Число Маха", "Вертикальная скорость".


Рис. 13. Окно "Свойства" блока "Синусоида", с выходного порта которого сигнал поступает на входной порт блока "Запись в список сигналов", у которого свойству "Имена сигналов" задано значение "Sim_Vy".

Некоторые сигналы в соответствии с физическим смыслом описываемых ими параметров полета не должны принимать отрицательные значения, поэтому сигналы, поступающие с выходного порта блока "Синусоида", складываются в блоке "Сумматор" со значением, поступающим с выходного порта блока "Константа" для формирования требуемого диапазона изменения значения сигнала. Например, для сигнала "Угол курса" (Рисунок 2) амплитуда сигнала в блоке "Синусоида" задана "180", то есть значение на выходном порту блока меняется от "-180" до "180". В блоке "Сумматор" значение сигнала, поступающее с выходного порта блока "Синусоида", складывается со значением "180", поступающим с выходного порта блока "Константа". В результате сигнал, поступающий с выходного порта блока "Сумматор", меняется по синусоидальному закону в диапазоне от "0" до "360" и задается сигналу "Угол курса". Аналогичным образом задаются значения сигналов для блоков "Запись в список сигналов", у которых свойству "Имена сигналов" в соответствии с таблицей (Рисунок 2) заданы имена сигналов "Приборная скорость", "Истинная скорость", "Перегрузка", "Угол тангажа", "Угол крена", "Угол курса", "Высота".

При работе модели в режиме "Демонстрация" сигналу "Поступление данных от авиасимулятора" автоматически задается значение "0", сигналу "Максимально допустимая перегрузка" автоматически задается значение от "6" до "10", изменяющееся по синусоидальному закону, сигналу "Минимально допустимая перегрузка" автоматически задается значение от "-2" до "0", изменяющееся по синусоидальному закону, сигналу "Максимально допустимый угол атаки" автоматически задается значение от "10" до "30", изменяющееся по синусоидальному закону, сигналу "Минимально допустимый угол атаки" автоматически задается значение от "-10" до "0", изменяющееся по синусоидальному закону (Рисунок 14).


Рис. 14. Окно проекта "Задание значений сигналов.prt" при работе его модели в режиме "Демонстрация".

В случае прекращения работы авиасимулятора в режиме полета в блоке "Сервер UDP" данные перестают поступать, но автоматически не обнуляются, поэтому модель проекта продолжает работать в режиме "Прием данных от авиасимулятора" даже при прекращении работы авиасимулятора. Для перехода в режим "Демонстрация" необходимо остановить моделирование проекта нажатием кнопки "Стоп" в меню окна проекта и повторно запустить моделирование нажатием кнопки "Пуск" в меню окна проекта.

Используемые блоки