Газодинамические процессы в тормозной магистрали

Посвящено созданию и совершенствованию динамического движка игры
Ответить
Аватара пользователя
maisvendoo
Модератор
Сообщения: 339
Зарегистрирован: 13 авг 2019, 10:25
Город: Ростов-на-Дону
Настоящее имя: Дмитрий
VK: https://vk.com/maisvendoo
Контактная информация:

Газодинамические процессы в тормозной магистрали

Сообщение maisvendoo » 01 сен 2022, 20:09

Полагаю, что вопросы, заданные пользователям Mikhail, в ходе работы по совершенствованию модели РА-3, затронувшей динамический движок симулятора, стоит переадресовать сюда, в этот раздел. Причем структурировать по темам, дабы придать им форму некой документации, писать которую, всё равно некогда :D

Например
Mikhail писал(а):
31 авг 2022, 23:13
Но с этим связана пара проблем, которые мне не удаётся решить:
1) Сейчас игра моделирует тормозную магистраль модулем brakepipe, его работа видимо жёстко привязана к давлению, задаваемому в начале магистрали. Разобраться в коде этого модуля я не смог, для меня это слишком высшая математика. Я смог лишь обойти это, задавая давление в первом вагоне из последнего через сигналы СМЕ.
Сама математика модели ТМ описана в моей работе (в сборнике со страницы 3, в общем работа открывающая этот том). Сделано было давненько, в рамках докторской диссертации. Несколько модифицированная модель используется в модуле brakepipe.dll. Там уравнение (4) решается численным неявным методом. И действительно, давление в нулевом узле сетки, то есть в начале ТМ именно задается, принимаясь равным давлению в некоторой условной полости крана машиниста, имитирующей газодинамику процессов в кране. Но суть даже не в методе решения, а в присущих такому подходу недостатках, неподходящих для игры-симулятора. Недостатки такие:
  • Модель ТМ неразрывна, то есть существует как бы отдельно от поезда, пронизывая все вагоны. Разделить её нельзя, скажем перекрытием концевых кранов и при отцепке, хотя сама возможность расцепки поезда в RRS есть уже с рождения.
  • Модель ТМ не имеет объема. Именно из-за этого в РА-3 и реализована вами имитация расхода из ГР в ТМ, что надо сказать киллер-фича, о которой давно просили
  • Модель "туга" в плане задания утечек - регулируя утечку в любом из узлов сталкиваемся то её ничтожностью, то с лавинообразным падением давления, поэтому коэффициенты на доп. разрядку и работу ЭПК приходилось подбирать с трудом и муками.
Всё это создает игре, в части подвижного состава массу проблем. Как эти проблемы решать. Идея у меня давно и основывается она на диссертации В.Е. Попова, выражается она так называемой гипотезой линейного расхода, суть которой отражает этот текст
Изображение Изображение
На этой основе реализована вся пневматика в RRS, кроме тормозной магистрали. Если в состав подвижной единицы будет входить модель объема ТМ, описываемая уравнениями типа 1.1.19, то удастся решить махом все проблемы - и учет расхода воздуха в ТМ из ГР, и утечки, и расцепку подвижного состава. Но пока руки до реализации не дошли.
Возврата к деспотии Ситхов не будет!

Mikhail
Сообщения: 22
Зарегистрирован: 27 окт 2021, 15:57

Re: Газодинамические процессы в тормозной магистрали

Сообщение Mikhail » 01 сен 2022, 21:30

maisvendoo писал(а):
01 сен 2022, 20:09
Именно из-за этого в РА-3 и реализована вами имитация расхода из ГР в ТМ, что надо сказать киллер-фича, о которой давно просили
Немного поправлю - как раз-то в ТМ никакого расхода подключить и не удалось - нечего подключать. Я подключил только потоки из ЗР и из НМ (ГР) в блок-тормоз РА 3, потому что эти потоки уже на самом деле посчитаны в модуле, но этот воздух брался "из воздуха" - из ниоткуда. После моих изменений каждый поток честно вычитается из соответствующего резервуара.

Аватара пользователя
maisvendoo
Модератор
Сообщения: 339
Зарегистрирован: 13 авг 2019, 10:25
Город: Ростов-на-Дону
Настоящее имя: Дмитрий
VK: https://vk.com/maisvendoo
Контактная информация:

Re: Газодинамические процессы в тормозной магистрали

Сообщение maisvendoo » 01 сен 2022, 21:48

Mikhail писал(а):
01 сен 2022, 21:30
maisvendoo писал(а):
01 сен 2022, 20:09
Именно из-за этого в РА-3 и реализована вами имитация расхода из ГР в ТМ, что надо сказать киллер-фича, о которой давно просили
этот воздух брался "из воздуха" - из ниоткуда. После моих изменений каждый поток честно вычитается из соответствующего резервуара.
Пусть так, тем более это в случае с тормозом РА-3 вполне справедливо.
Насчет реализации расцепляемой ТМ тут вопрос сводится к созданию в классе Vehicle некоего условного объема, давление в котором описывается уравнением

dp{i}/dt = ( K1 * (p{i-1} - p{i}) + K2 *(p{i} - p{i+1}) / V{i}

где p{i} - давление в ТМ текущей ПЕ; p{i-1} - давление на срезе рукава предыдущей ПЕ; p{i+1} - давление на срезе рукава следующей ПЕ; K1, K2 - коэффициенты, подбором которых добиваемся нужной динамики изменения давления; V{i} - условный (приведенный) объем "трубы" ТМ в текущей ПЕ

Естественно, класс Train всё это должен стыковать, как это работает и в случае с продольной динамикой поезда в RRS

Сюда же, в это уравнение, можно задать в числителе сколь угодно большое количество управляемых расходов, связанных с утечками, работой тормозных приборов, и зацепить всё это через кран на ГР. Потребует кардинальной переделки всего подвижного состава, но если грамотно упрятать эту физику в модули vehicle.dll и train.dll, думаю можно будет обойтись малой кровью. Зато получим наконец расцепку - сейчас можно отцепиться уже, но ТМ будет продолжать отпитываться краном уехавшего локомотива. И проблемы с управлением тормозами из другой кабины тоже будут решены
Возврата к деспотии Ситхов не будет!

Toman
Сообщения: 7
Зарегистрирован: 19 мар 2022, 13:01

Re: Газодинамические процессы в тормозной магистрали

Сообщение Toman » 03 сен 2022, 19:36

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

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

В общем, я по умолчанию за честное моделирование с учётом инерции воздуха (и, значит, с использованием в расчётах скоростей воздуха как отдельных явных переменных), если только это не вызывает каких-то совсем уж непреодолимых вычислительных трудностей. Мы же вроде к реализму стремимся, или как. Где-нибудь внутри компактного оборудования течение через всякие каналы, окна и калиброванные отверстия вполне нормально моделировать как стационарные, это да. Но в трубе длиной в десятки и сотни метров я б не стал идти на такое упрощение...

Ответить

Вернуться в «Разработка динамического ядра (TrainEngine 2)»