Общие принципы устройства игровой физики
Железнодорожный поезд — сложнейший динамический объект. Описанию законов его движения посвящены тысячи к книг. Ежегодно наука пополняется массой новых знаний об этой отрасли. Не всё так просто с описанием поезда и в симуляторе RRS. Готовьтесь, напрягите извилины и постарайтесь вникнуть в суть рассказа — все нижеприведенное крайне важно для качественной разработки дополнений RRS.
Для начала, дадим ряд определений, на которых базируется концепция динамического движка TrainEngine 2 (TE2), на котором построен симулятор.
Единица подвижного состава, подвижная единица (ПЕ) — железнодорожный экипаж, имеющий кузов, ходовую часть и сцепные приборы, представляющий собой минимальную структурную единицу в составе поезда.
Под подвижной единицей в RRS понимается: несамоходный вагон, вагон электро- или дизель-поезда, секция локомотива, автомоториса дрезина и т.п.
Очень важно понимать следующее принципиальное отличие RRS от других железнодорожных симуляторов — в этом симуляторе все подвижные единицы динамически равноправны. То есть вагон ничем не отличается принципиально от локомотива — у него есть динамическая модель, для него задаются характеристики. Разработка вагонов разного типа так же предусматривается концепцией RRS.
Подвижные единицы RRS объединены в поезда.
Поезд — динамический объект, состоящий из нескольких подвижных единиц, соединенных межвагонными связями, имеющих общую тормозную магистраль и линии управления электропневматическим тормозом.
Любой объект, отображаемый в лаунчере RRS является поездом.
Поездом является и одиночный односекционный локомотив, такой как ВЛ60пк — просто этот поезд состоит из всего одной подвижной единицы. Поездом будет и двухсекционный локомотив, например ВЛ80 будет, с точки зрения RRS поездом, состоящим из двух ПЕ (секций). Поезд RRS описывается конфигурационным файлом, расположенным в каталоге trains.
Дадим еще одно важное определение
Межвагонная связь (сцепной прибор, сцепка) — механическое устройство, обеспечивающее соединение подвижных единиц между собой, а так же свягчающее ударные нагрузки и гасящее продольные колебания ПЕ.
В RRS межвагонные связи реализуются специальным DLL-модулем (coupling) который, про просьбе динамического движка игры вычисляет силу взаимодействия подвижных единиц между собой, в зависимости от их взаимного перемещения и его скорости. Определяющей, в свойствах межвагонной связи, является силовая характеристика поглощающего аппарата (ПА) сцепки. На данный момент в RRS реализована упрощенная сцепка (default-coupling) и грузовой упруго-фрикционный поглощающий аппарат (ef-coupling).
Поезд в RRS можно представить в виде следующей расчетной схемы
К каждой ПЕ в поезде приложен ряд сил и моментов:
- T — усилие в межвагонной связи;
- R — сила соновного сопротивления движению, связанная с сопротивлением качению и сопротивлением внешней воздушной среды;
- B — тормозная сила, реализуемая тормозами поезда;
- M — момент приложенный от тягового привода к каждой (!) колесной паре.
- mg — сила тяжести, связанная с профилем пути.
В модели поезда предполагаются следующие допущения (упрощения)
- каждая ПЕ — одномассовое твердое тело, имеющее жесткую связь с вращающимися колесными парами. Вертикальная и поперечная динамика не учитываются. Вписывание ПЕ в кривые учитывается кинематически;
- ПЕ, в каждый момент времени, считается расположенной на одном элементе профиля. Под элементом профиля понимается участок профиля с неизменным в его пределом уклоном;
- колесные пары движутся без проскальзывания.
Итак, какая же магия происходит внутри движка игры при расчете движения поезда? Расчет происходит по следующему алгоритму
- модуль каждой подвижной единицы, на основании положения поезда на профиле и угловой скорости вращения колесных пар рассчитывает тяговые и тормозные моменты, прикладываемые к колесным парам;
- на основании положения ПЕ в пространстве, моментов приложенным к КП, движок игры вычисляет основное сопротивление движению, усилие в межвагонных связях и определяет ускорение каждой ПЕ;
- ускорение каждой ПЕ дважды интегрируется, давая на выходе текущую скорость и положение каждой ПЕ в поезде.
Теперь вы понимаете, почему RRS дает столько свободы разработчику? Потому что симулятор интересуют только моменты, приложенные к колесным парам! Как они будут рассчитаны остается на совести разработчика модуля ПЕ. И он волен сделать этот расчет в полном соответствии с работой систем локомотива и вагона. Ничто не ограничивает его на этом этапе. Этот факт делает RRS уникальным симулятором, с одной стороны, но повышает порог вхождения в него для разработчика, с другой. Но мы с вами знаем, что хорошие вещи просто не делаются, так что смелее и вперед! Дальше будет немного проще.
Именно потому, что симулятор полагается исключительно на законы, открытые сэром Исааком Ньютоном, в нем возможно реализовать и электровоз, и тепловоз, и паровоз, любой тип моторвагонного подвижного состава, путевые и специальные машины. Допускается реализация поездов с разнородным тормозным оборудованием. при этом движок игры будет учитывать эти нюансы в конечном результате симуляции. Не правда ли, заманчивая перспектива для настоящего исследователя железнодорожного транспорта? Все эти функции доступны в игре уже сейчас.
Таков краткий обзор устройства и принципов построения RRS. А теперь, друзья, вперед! Погрузимся в программирование и вместе сделаем свое первое дополнение для RRS!