The Daily Newsstand · Free, Always
Saturday, September 26, 2026

[Перевод] Как найти повреждённое колесо поезда, не перегоняя состав

Translate

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

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

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

Задача

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

Повреждения накапливаются. Заклинившее и скользящее колесо получает ползун. Ползун многократно ударяет по рельсу, неравномерно вырабатывая его поверхностный профиль. Изношенный рельс, в свою очередь, повреждает следующие колёса. Перегреваются буксы, а в наиболее тяжёлых случаях колёсная пара заклинивает и вагон сходит с рельсов. Заявка на проект открывается пятнадцатилетней статистикой аварий Федеральной железнодорожной администрации США, показывающей, насколько значительная доля происшествий восходит именно к этому механизму.

Метод

Измерение простое, в чём и состоит его главное достоинство.

Датчик выдаёт один импульс на полный оборот колёсной пары. Генератор с частотой 500 кГц разбивает этот интервал, благодаря чему длительность одного оборота выражается количеством импульсов. Колёсная пара стандартного диаметра 950 мм на скорости 80 км/ч совершает один оборот за 0,134 секунды, что соответствует 67 118 импульсам. Колёсная пара, изношенная на полмиллиметра, проходит тот же оборот незначительно быстрее и даёт 67 047 импульсов. Разница составляет 71 импульс. В работе отца разрешающая способность на этой частоте оценивается примерно в 0,01 мм износа колеса и 0,1 мм износа рельса.

Более интересна диагностическая логика. На каждом десятом обороте зафиксированное для каждой колёсной пары количество импульсов сравнивается с эталонным значением. Если отклонение устойчиво даёт одна колёсная пара — повреждена именно она. Если все колёсные пары отклоняются одинаково и последовательно — колёса исправны, а дефектен рельс под ними.

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

До технического задания я был наборщиком

Отец писал от руки. Я печатал.

В течение нескольких лет до всего этого такова и была моя роль в его работе: он заполнял страницы своим почерком, а я готовил документы в Word, на грузинском и на английском, и проверял то, что возвращал Google Translate, — чтобы убедиться, что смысл сохранён. Исследование, опубликованное только на грузинском, доходит до крайне ограниченного круга читателей, и подготовка английской версии была необходимой частью работы.

Я понимал очень немногое из того, что переписывал. Нас обоих это устраивало. От меня в том возрасте требовалось терпение, достаточное, чтобы перепечатать страницу в четвёртый раз из-за одной изменившейся формулы.

Мы работали за одним большим столом. Он делал свою работу, и я тоже делал его работу. Я говорил ему, что как мой неформальный руководитель он обязан отметить: я выполняю его обязанности, — и он улыбался. Дисциплину он ценил выше понимания. Именно этот стол я помню отчётливее всего из тех лет — заметно лучше, чем физику.

Документ, адресованный мне

В 2017 году он прислал мне документ.

Он свёл исследование к тому, что действительно требуется программисту: таблицы зависимости количества импульсов от скорости, блок-схема алгоритма и, выделенная в конце жирным, последовательно изложенная логика сравнения. Хранить эталонное количество импульсов для идеальной колёсной пары диаметром 950 мм. На каждом k-м обороте считать импульсы для каждой колёсной пары. Если разница превышает допуск — повреждена колёсная пара. Если разница одинакова для всех колёсных пар — повреждён рельс.

Это было техническое задание. Он никогда в жизни не писал программ — и написал мне техническое задание.

Ему нужно было не само устройство, которое требовало финансирования, которого у него не было. Ему нужно было наглядное представление: цифры на экране и линия, которая отзывается на изменение входных данных.

Gogo

Программу я назвал Gogo — от გოგორწყვილი, гогорцквили, грузинского термина, означающего колёсную пару. Я сократил название, потому что хотел имя, которое сможет произнести иностранный читатель: работа, как я тогда полагал, рано или поздно должна была выйти за пределы страны.

Это приложение на Windows Forms, написанное на C# под .NET Framework 4.0 и собранное в Visual Studio 2015. Скомпилированный исполняемый файл занимает 25 КБ. Я писал его несколько недель в 2017 году, за тем же столом.

Оператор задаёт параметры — скорость, диаметр колеса, частоту генератора, количество колёсных пар, количество оборотов, — после чего программа формирует набор колёс, применяя к каждому случайный износ величиной до 25 мм. При выборе колёсной пары выводится разница в количестве сигналов, соответствующая ей разница в миллиметрах и оценка: износ незначителен, средний износ или значительный износ. Эти пороговые значения не мои. Они взяты из работы отца, где отмечается, что 5 мм износа — величина малая, а более типичны в эксплуатации значения от 10 до 20 мм.

Строятся два графика: количество импульсов в зависимости от скорости и количество импульсов в зависимости от диаметра, где эталонная колёсная пара показана зелёным, а измеряемая — жёлтым.

количество импульсов в зависимости от скорости

количество импульсов в зависимости от скорости

количество импульсов в зависимости от диаметра

количество импульсов в зависимости от диаметра

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

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

Одну строку исходного кода стоит привести:

double p = 3.14; // Math.PI;

В его работе указано, что π — константа, равная 3,14. Поэтому я использовал 3,14, а собственную константу языка оставил рядом в виде комментария. Она там и осталась. Я реализовал его техническое задание ровно так, как оно было написано, включая ту часть, которую был в состоянии улучшить, — и это самое точное описание наших рабочих отношений, какое я могу предложить.

Патент

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

13 апреля 2018 года заявка была подана в Национальный центр интеллектуальной собственности Грузии. 4 октября 2019 года она была зарегистрирована как патент P 2019 7027 B под названием «Система индикации величин износа подвижного состава и рельсов», классификация B61K9/00. В числе заявителей — Грузинский технический университет.

Впоследствии патент прекратил действие.

Что произошло

Устройство так и не было построено.

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

Вот эта трудность в самом простом изложении. Финансирование требует доказательства. Доказательство требует оснащённого поезда. Оснащённый поезд требует финансирования.

Работу никто не продолжает.

Что осталось

Исследование завершено, документы сохранились. Патент был выдан и прекратил действие. Solution по-прежнему открывается, по-прежнему собирается и по-прежнему запускается на современной машине, рисуя те же две линии — жёлтую и зелёную.

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

Этим кем-то оказался я. Дальше всего это зашло до 25 килобайт на ноутбуке и патента с тремя фамилиями.

Это перевод моей статьи, впервые опубликованной на Medium.

А у вас случалось наследовать техническое задание от человека, который сам никогда не программировал? Интересно, насколько это обычно помогает, а насколько мешает. 👇

View the original on Хабр →

KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.