Тренажер для скоростного электропоезда ЭС1 “Ласточка”: репортаж из первых уст

В Центре развития инновационных компетенций РГУПС создан, и не первый десяток лет развивается учебно-лабораторный комплекс «Виртуальная железная дорога». Комплекс включает в себя не только тренажеры подвижного состава, но так же тренажеры рабочих мест поездных диспетчеров, дежурных по станции, энергодиспетчеров, тренажеры оборудования для диагностики верхнего строения пути. Если говорить конкретно о тренажерах подвижного состава, то замечу, что специфика их разработки несколько отличается от концепции тренажера для машиниста. Железнодорожный вуз не готовит машинистов, наши выпускники — инженеры железнодорожного транспорта. Поэтому в задачу тренажера локомотива или электропоезда входит не только ознакомление студента с устройством кабины, органов управления, приемов и правил управления подвижным составом.

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

Совсем недавно наша команда закончила разработку тренажера скоростного электропоезда ЭС1 «Ласточка». О нем и пойдет речь далее.

1. Программная часть и общая структура тренажерного комплекса

Что значит создать железнодорожный тренажерный комплекс? Это означает разработку программно-аппаратной системы, включающей в себя:

  • Имитацию рабочего места машиниста — пульт управления со всеми органами и средствами отображения информации;
  • Вычислительный комплекс, осуществляющий моделирование в реальном времени динамики движения поезда, работу его систем: силовой электрической схемы, тягового привода, тормозного оборудования;
  • Устройство сопряжения органов управления, средств отображения информации на пульте и, если необходимо, реального оборудования поезда, включенного в состав тренажера с компьютерной моделью.
  • Систему визуализации вида из кабины с рабочего места машиниста
  • Подсистему управления тренировкой с возможностью визуального представления и анализа данных о работе систем поезда

В итоге, всё это вылилось в систему, структура которой изображена на рисунке

Функциональная схема тренажерного комплекса электропоезда ЭС1

Вычислительный комплекс тренажера составляют два компьютера (ПК1 и ПК2), соединенные в локальную сеть посредством бытового маршрутизатора (TPLink 842 nd rev3, ничего экстраординарного) с возможностью удаленного доступа в систему по Wi-Fi.

В качестве системной платформы для обоих машин выбрана ОС на базе GNU/Linux. Причины следующие:

  • Свободная лицензия;
  • Возможность глубокой кастомизации состава системного ПО;
  • Ориентированность системы на встраиваемые решения;
  • Поддержка ядром всей необходимой переферии «из коробки».

Не смотря на то, что используются в общем-то бытовые ПК, прикладное программное обеспечение в такой системе должно выводить пользователя на такой уровень восприятия, где он не будет даже догадываться о том, что внутри есть какая-то там операционная система. Никакой клавиатуры! Никакой мыши! Долой рабочий стол! Пришел, повернул выключатель питания, подождал недолго и получил готовую к работе систему. Тут можно очень долго спорить, но линукс в смысле простоты реализации подобного подхода далеко обходит другие ОС. Среди пестрого разнообразия дистрибутивов наш выбор остановился на Arch Linux по следующим причинам:

  • Возможность глубокой кастомизации на этапе развертывания системы;
  • Rolling -релиз, а значит свежие версии пакетов;
  • Бинарные пакеты, в отличие от того же Gentoo, а значит высокая скорость развертывания и обслуживания системы.

ПК1 является основным, на нем работает компьютерная модель поезда, структурно представленная движком динамики поезда TrainEngine, который выполняет моделирование движения механической части поезда и модулями, реализующими математические модели оборудования, не связанного с механикой. Эти модули, вместе с модулем TCP-сервера и библиотекой Modbus RTU образуют единый исполняемый модуль вычислительного ядра.

TrainEngine реализует так называемую обобщенную модель поезда. Любой поезд, будь то скоростной электропоезд или грузовой состав механически представляет собой систему связанных тел, движение которых ограничено конфигурацией верхнего строения пути. К колесным парам некоторых тел прикладываются моменты, обеспечиваемые подсистемой тяги и тормозами. Так что для любого тренажера функционал будет одинаковым. Поэтому вся механика движения поезда выносится в отдельные конфигурируемые библиотеки. Различие между типами подвижного состава реализуется на уровне программных моделей остального оборудования.

Интерфейс взаимодействия машиниста с современным локомотивом/электропоездом сегодня насыщен дисплейными модулями. Фактически, множество средств отображения информации, реализуемое раньше стрелочными приборами свелось к совокупности компьютерных экранов, на которые выводится текущая информация. На той же «Ласточке» таких экранов четыре: два многофункциональных интерфейса «человек-машина», дисплей безопасного локомотивного комплекса (БЛОК) и дисплей системы видеонаблюдения.

Интерфейс «человек-машина» реального электропоезда

Дисплей безопасного локомотивного комплекса (БЛОК)

Интерьер кабины и расположение дисплеев на реальном электропоезде

На настоящем электропоезде каждый дисплейный модуль — отдельный промышленный компьютер, общающийся с системой управления по специфическим протоколам MVB/WTB. Работают эти модуль под управлением Windows XP Embedded (да-да, представьте себе!).

В нашем случае подобное расточительство бессмысленно — четыре тачскина от фирмы Elo, подключенные к ПК1 через кабели Display Port и USB для тач-интерфейса. Дисплейные модули реализованы в виде отдельных процессов, общающихся с вычислительным ядром через TCP-сокеты. Настройка Xorg разрешает каждому окну жить исключительно в предназначенном для него мониторе. Аппаратные кнопки на рамке дисплея имитируются программно.

Удалось воспроизвести основной функционал этих устройств, касающийся систем электропоезда, ответственных за тягу и торможение. Приложения написаны на C++ с применением фреймворка Qt5. Вообще, Qt5 пронизывает всё программное обеспечения, в виду его высокой приспособленности как к созданию пользовательских интерфейсов, так и наличия библиотек для работы с протоколами TCP/IP и Modbus RTU. Плюс знаменитая технология «сигнал-слот» оказалась совершенно незаменима при организации взаимодействия классов на всех уровнях.

Интерфейс «человек-машина» тренажера

Дисплей БЛОК тренажера

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

Интерфейс запуска тренировки

2. Аппаратная часть — органы управления и распределенное устройство сопряжения

Самой сложной и дорогостоящей операцией является оснащение тренажера органами управления, аутентичными реальной кабине. О том чтобы закупить оригинальные железки не заходит речь по двум причинам. Первая — огромная стоимость оригинальных узлов, оправданная их применением на реальном подвижном составе и изготавливаемых по соответствующим требованиям. Вторая — сопряжение с ЭВМ затруднено тем, что на реальном подвижном составе используются закрытые протоколы взаимодействия аппаратуры и системы управления. Единственным выходом для нас стало самостоятельное проектирование и изготовление таких элементов как контроллер тяги/торможения, тормозной кран и манометры тормозной системы электропоезда. Чтобы было понятно, речь идет прежде всего об этом рычаге

Реальный контроллер тяги/торможения в кабине электропоезда

Его внешние размеры, то что торчит над панелью, под скептические улыбки локомотивной бригады «Ласточки» удалось обмерять штангелем. Внутренности мы спроектировали так, как нам представлялось удобным в плане компоновки агрегата в будущем пульте и установки на нем измерительных преобразователей. Получилась такая концепция, унифицированная для обоих «джойстиков»

Концепция унифицированного контроллера для тренажера

Пневматически тормозной кран отличается от контроллера тяги лишь начальным положением рукоятки в «нуле» и наличием пластиковой декоративной накладки. В остальном контроллеры получились унифицированы по деталям, датчикам и электронным платам.

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

Краткая история разработки в виде фото

Другим камнем преткновения стали манометры, вот эти

Контрольные манометры пневмосистемы электропоезда

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

Голь на выдумки хитра

В итоге, после пары месяцев раздумий, разработки, изготовления и отладки вышел такой агрегат

Ещё фото манометра

С другими органами управления проблем не возникло — остальное просто кнопки и выключатели. Однако, их количество вполне достаточно, для того чтобы задуматься над тем, каким образом все эти сигналы ввести в компьютер.

Решили пойти проторенным в промышленных масштабах путем — RS485 наше всё. Короткие жгуты от кнопок и контрольных ламп идут в платы дискретного ввода/вывода, а уже оттуда их состояние вводится в машину по двум проводкам витой пары.

Панель в зоне J пульта машиниста вид сверху

… вид снизу на монтаж. Видны платы ввода/вывода

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

В итоге получилась сеть на 12 абонентов. Ввод сигнала в вычислительный комплекс производится через адаптер RS485/USB. В ПО использована готовая реализация Modbus RTU из фреймворка Qt5.

Потроха пульта перед окончательной сборкой тренажера

Ещё немного фото

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

Диагностический экран с журналом текущей сессии работы тренажера

3. Подсистема трехмерной визуализации

При всей мощности в части создания эффекта присутствия, эта часть системы наименее функциональна. Внутри нет никакой «физики», вся «физика» — серверная. Графический клиент вынесен на отдельный компьютер ПК2. От сервера он получает так называемую железнодорожную координату — перемещение вдоль пути в километрах, переводит её в трехмерные координаты камеры и показывает вид из кабины на окружающий пейзаж. На ПК2 установлена обычная NVidia GTX 1060. Видеосистема написана на Unity Personal.

Видеосистема в процессе отладки

Здесь нам ещё предстоит большая работа в плане поиска оптимальной архитектуры, и над этим мы непрерывно работаем. Нюансов тут достаточно, чтобы рассказ о них стал темой отдельного поста.

Заключение

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