Успехи в важном рабочем проектом вполне достаточные, чтобы что-то можно было говорить. Встречайте - дизель-поезд (рельсовый автобус) РА-3!
Авторы проекта:
Богос Даглдиян, Денис Максименко (ITVR-CRIK), Александр Мищенко (Ulovskii2017) - сбор фото, видео и аудио материала
Ксения Шалобаева - трехмерная модель кабины управления
Азер Рустамов - внешняя трехмерная модель головного моторного вагона, а так же иконки для МФДУ
Богос Даглдиян - разработка виджетов дисплейных модулей МФДУ и БЛОК
Дмитрий Притыкин (maisvendoo) - разработка модуля DLL моторного вагона
На сегодняшний момент реализовано:
Работа дизеля
Работа системы обеспечения сжатым воздухом
Работа пневматического и электропнематического тормоза с БТО-092
Работа гидромеханической передачи
Частично оживлена кабина и дисплеи
Это первый опыт реализации в RRS моторвагонного подвижного состава, и он оказался достаточно удачным. О развитии проекта буду писать дальше, а пока вот видео с опытной поездкой
Чудесно! Работающие дисплеи впечатляют.
На видео из первого сообщения поезд сбросил скорость с 80 почти до нуля буквально за считанные секунды. Как-то не по железнодорожному резко. Это не настроено ещё, или в реальности РА-3 тоже может так эффектно тормозить?
Как-то не по железнодорожному резко. Это не настроено ещё, или в реальности РА-3 тоже может так эффектно тормозить?
Вообще настроено, причем, возможно, нажатие даже чутка занижено - 1,45 тс на колодку. Так давление в ТЦ почти 4 кгс, колодки - композиция, вес вагона - 50 тонн. Ну и тормозил с КМ - это значит работает ЭПТ. Вроде с физикой всё как надо
Обычный электропоезд с 80 встает за 250 метров, это в хороших условиях, под конец даже приотпускать придется. Так что РАшка с 80 за 200 метров в идеальных условиях нормально. Правда идеальных условий в реальном мире нет.
Нашёл Ваш репозиторий с исходниками РА-3. Попробовал скомпилировать по инструкции для разработчика дополнений на сайте, но очевидно проект сделан уже под следующую версию симулятора, много ошибок при сборке с sdk от RRS 1.0.6. Придётся подождать релиза)
Покопавшись в коде, обнаружил опечатку в ra3-head/src/ra3-head-step-brake-mech.cpp:
for (size_t i = 0; i < brake_mech.size(); ++i)
{
brake_mech[i]->step(t, dt);
Q_r[i+1] = brake_mech[i]->getBrakeTorque();
Q_r[i+2] = brake_mech[i]->getBrakeTorque();
}
Этот цикл на второй итерации применяет тормозные усилия задней тележки к 2-й и 3-й осям вместо 3-й и 4-й. Четвертая колёсная пара не участвует в торможении.
После исправления тормоза станут ещё на треть эффективнее, подозреваю, что где-то есть ещё ошибки, по ощущениям это уже превысит сцепление колеса с рельсом (хотя сейчас, насколько я понимаю, юз и боксование в симуляторе не реализованы, вращение колеса математически привязано к скорости).
UPD: Предположительно нашёл удвоение тормозного усилия. В ra3-equipment/src/ra3-brake-mech.cpp:
// Нажатие от пружинного аккумулятора стояночного тормоза
double K_st = Kmax * (1 - Y[1] / p_max);
// Нажатие от блок-тормоза без энергоаккумулятора
double K_b1 = Kmax * Y[0] / p_max;
// Ограничение тормозного нажатия, учитывающее зазор в механизмах
// блок тормоза с пружинным энергоаккумулятором
double K_lim = pf(Kmax - K_st);
// Нажатие от блок-тормоза с энергоаккумулятором
double K_b2 = K_st + cut(K_b1, 0.0, K_lim);
// Тормозное усилие от б/т без энергоаккумулятора
double shoe_brake_force1 = K_b1 * phi(K_b1, velocity) * Physics::g * 1000.0;
// Тормозное усилие от б/т с энергоаккумулятором
double shoe_brake_force2 = K_b2 * phi(K_b2, velocity) * Physics::g * 1000.0;
// Момент от тормозных сил на колесной паре
brakeTorque = shoesAxis * (shoe_brake_force1 + shoe_brake_force2) * effRadius;
Понятия не имею, как устроена тормозная система в РА-3, которая должна описываться этим кодом, но сейчас усилие от блок-тормоза получается учтено дважды, в каждом из слагаемых shoe_brake_force (первое слагаемое получается непосредственно из нажатия от блок-тормоза, второе равно или нажатию от стояночного тормоза, если он не отпущен, или всё тому же нажатию от блок-тормоза, когда стояночный отпущен).
Таким образом, сейчас удвоенное тормозное усилие применяется к 3 из 4 осей - в итоге тормоза завышены в полтора раза.
очевидно проект сделан уже под следующую версию симулятора, много ошибок при сборке с sdk от RRS 1.0.6. Придётся подождать релиза)
Да, он сделан под версию 1.0.7, где уже будут "жоксы", то есть межвагонные/межсекционные линии управления. Без этого реализация нормального МВПС, а так же многосекционных локомотивов невозможна. Придется подождать версии 1.0.7 - нововведение изменило интерфейс класса Vehicle
Понятия не имею, как устроена тормозная система в РА-3, которая должна описываться этим кодом, но сейчас усилие от блок-тормоза получается учтено дважды, в каждом из слагаемых shoe_brake_force (первое слагаемое получается непосредственно из нажатия от блок-тормоза, второе равно или нажатию от стояночного тормоза, если он не отпущен, или всё тому же нажатию от блок-тормоза, когда стояночный отпущен).
При срабатывании СПТ шток ТЦ за счет зазора не доходит до рычага колодки и не создает нажатия. Код пересмотрю, разумеется, может чего напутал.
Спасибо за чертёж! Получается, код правильный, но в конце лишнее умножение на shoesAxis, ведь каждая из колодок уже посчитана отдельно. Вот и получились тормоза в два раза сильнее.
UPD: А вообще не очень понимаю, почему 4 по сути одинаковых и независимых друг от друга тормозных систем каждой оси разделены на две тележки, но объединены внутри тележки.
UPD2: Понял, пневматика каждой тележки управляется отдельно, а внутри тележки они соединены.