УДК: 004.023, 004.048, 004.67 MSC2010: 68T20
АНАЛИЗ ДАННЫХ ТОРМОЖЕНИЯ ПОЕЗДОВ МЕТРОПОЛИТЕНА
© В. А. Матковский
КРЫМСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ ИМ. В. И. ВЕРНАДСКОГО ФИЗИКО-ТЕХНИЧЕСКИЙ ИНСТИТУТ
просп. Академика Вернадского, 4, Симферополь, 295007, Российская Федерация e-mail: [email protected]
Analysis of braking data of metro trains.
Matkovsky V. A.
Abstract. The paper considers the problem of modeling the braking process of trains with the aim of further assessing the quality of braking. It is shown that an approach based on the intellectualization of processing big data characterizing the process of braking of metro trains allows us to refine the development of train control systems in automatic mode and predict the quality and accuracy of stopping. Of particular importance is the emergency braking system for trains, which ensures the safety of passengers and provides emergency braking of the train in the event of an emergency. Mathematical models describing the process of braking an object (subway train) depend on the complexity of the object's system components. Knowing the distance and braking speed measured by the sensors, it is possible to restore the mathematical model. In the general case, the problem of reconstructing a model is the problem of reconstructing a differential equation from measurement data. This task is incorrect. For practical purposes of assessing the quality of braking, it is enough to assume that such models are described by a system of firstorder ordinary differential equations. Consequently, using the measured data, it is possible to find the statistical characteristics of the braking process and visually evaluate the quality of braking using a set of these statistics and comparing the smoothed phase trajectories of the system (distance-velocity).
Thus, inhibition depends on many factors, which is why various inhibitory sequences arise, the assessment of the quality of which represents an actual mathematical problem. It is shown that statistical methods and cluster analysis methods make it possible to extract knowledge about the braking process from measurement data such as the coordinates of metro stations, based on the study of histograms and the application of clustering algorithms to the coordinates of train stops. Characteristic braking trajectories have been identified, and the values of motion kinematics parameters have been obtained. The work uses the Python language, as well as a number of free libraries that satisfy the need for software tools for working with data. Several software methods have been created. Based on the obtained trajectories, it is then possible to determine the braking class. The technology used may be promising in other subject areas. It is shown that the statistical data of the movement of metro trains, the trajectory data obtained
from them and visualized representations are big data (Big Data, BD), from which knowledge about the quality of train braking is extracted (Data Mining, DM). The proposed intelligent system for processing such data combines statistical methods of machine learning (ML) and neural networks.
Keywords: big data, model, phase trajectories of a dynamic system, braking efficiency, intelligent system, train braking data processing
Введение
Система аварийного торможения поездов обеспечивает безопасность пассажиров, в связи с чем имеет особую значимость, а также экстренное торможение поезда при возникновении аварийной ситуации. Торможение зависит от многих факторов (наклона и характера пути, загруженности вагонов), поэтому датчики фиксируют различные тормозные последовательности, оценка качества которых представляет собой актуальную математическую задачу. Таким образом, необходимо моделировать процесс торможения поездов с целью дальнейшей оценки качества торможения. Решение поставленной задачи реализуется через следующие подзадачи: интеллектуализация обработки данных, определение модели торможения поезда, извлечение информации из данных (статистическая обработка, многокритериальное исследование, ранжирование) и кластеризация данных.
Об актуальности данного направления исследования свидетельствует ряд работ [1-11] по данной тематике.
В работе [8] исследуется процесс экстренного торможения скоростного пассажирского поезда нового поколения, а также проведена оценка процесса торможения электропоезда ЭКр1 «Тарпан». В качестве одного из критериев эффективности тормозов поезда принят тормозной путь. Полученные с помощью теоретических расчетов значения тормозных путей электропоезда при экстренных пневматическом и электропневматическом торможениях на горизонтальной площадке не превышают значений, установленных техническим заданием, и практически совпадают с данными ходовых тормозных испытаний.
В учебном пособии [2] изложен материал о назначении и принципах действия тормозных устройств и систем.
Создан сайт популяризации вопросов теории тяги поездов и тяговых расчетов, где, в частности, занимаются созданием монографии «Тяговые расчеты» [1].
В [10] приводятся данные о разрабатываемых системах автоматического управления поездами метрополитена (САУП М), предназначенных для управления ведением поезда, включая пуск, разгон, выбор режима ведения на перегонах, торможение у платформ с целью повышения точности выполнения графика движения. САУП М подразделяются на 5 уровней автоматизации (Grade of Automation) по классификации международной ассоциации общественного транспорта International Association of Public Transport: GoA0-GoA4. В Петербургском метрополитене реализовано GoA2 — полуавтоматическое управление подвижным составом. GoA4 — полностью автоматизированное управление без участия персонала реализовано в Копенгагене и Дубаи. Поезда без машинистов движутся в метро Франции, Испании и др. Для оборудования автоведения устанавливаются метки: ОПВ — знак остановки первого вагона; ОД1 — отключение двигателей в номинальном режиме проследования перегона; ОД2 — отключение в режиме нагона; Т — торможение; СТ1 — начало торможения перед платформой; СТ2 — начало прицельного торможения перед платформой и точной остановкой в зоне метки ОПВ. В системе осуществляется протоколирование в виде графика и «базы данных, рассчитанных/исполненных стоянок, проследование маршрутов по перегонам, опозданий, грузонапряженности» [10]. Представленная для обработки база данных не снабжена подобной информацией. Для работы важен процесс регулирования длительности стоянок и времени проследования перегонов, реализации функции нагона, что связано с режимами разгона и торможения.
В [6] рассматривается направление развития интеллектуальных систем автоматизации управления на основе алгоритмического и математического описания процессов, а также прогнозирование моментов времени прибытия поездов на станции. Учитывая сложную зависимость длины пути от его профиля, плана и различия тормозных сил поездов, необходимо решать задачи снижения скоростей на участках разной длины, не превышая постоянные и временные ограничения установленной скорости.
В работе [5] утверждается, что на основе статического анализа данных о параметрах движения поездов в условиях автоведения станций возможно использование этих данных для прогнозирования моментов времени прибытия на станции. Интеллекту-ализированная система может передавать на устройства автоведения информацию о покоординатных скоростях, которые отвечают адекватным изменяющимся условиям движения каждого поезда.
Математические модели, описывающие процесс торможения объекта (поезда метро), зависят от сложности компонент системы объекта. Зная измеренные датчиками
показания пути и скорости торможения, можно восстановить математическую модель. В общем случае задача восстановления модели — это задача восстановления дифференциального уравнения по данным измерений. Такая задача является некорректной. Для практических целей оценки качества торможения достаточно предположить, что такие модели описываются системой обыкновенных дифференциальных уравнений первого порядка. Следовательно, по измеряемым данным можно находить статистические характеристики процесса торможения и наглядно оценивать качество торможения по набору этих статистик и сравнения сглаженных фазовых траекторий системы (расстояние-скорость).
Рассмотрим более подробно работу с данными в виде фазовых траекторий системы. В рамках математического подхода можем считать, что данным для каждого поезда отвечает свой агент и набор траекторий (Л^, V),3 = 1, т. Множества V содержат набор траекторий, связанных с остановками. По наклону траекторий можно определить направление движения поезда. Существует некоторый критерий качества торможения по длине пути торможения и ускорению (резкое торможение не комфортно для пассажиров), что позволяет выбрать множество эталонных траекторий для соответствующих остановок и углов наклона пути на участках торможения. Сравнительный анализ с эталонами позволяет выявить нарушения режима торможения, экстренные или аварийные траектории торможения, а также отсечь заведомо ложные или неполные данные, поступающие от датчиков.
1. ЗАДАЧА ОБРАБОТКИ ДАННЫХ ИЗМЕРЕНИЙ
1.1. Описание исходных данных. В ходе эксперимента исследуемые поезда оснащались датчиками, способными собирать данные о кинематике поезда: скорость, время, расстояние. Упомянутые данные, характеризующие кинематику поезда, относятся к исходным. Фрагмент базы данных показателей экстренного торможения поездов метро, предоставлен в виде табличного файла MS Excel, фрагмент файла показан на рис. 1.
Данные записаны в виде таблицы со следующими полями: Run — уникальный ключ для последовательности измерений показаний датчиков; Date — временная метка последовательности; Train N° — номер поезда; Speed — мгновенная скорость поезда (точность: 0,5 м/с); Abscissa — координата точки пробега на линии, используемая для расчета расстояния, пройденного поездом; Slope — уклон трассы в процентах. Например, +4 % означает, что поезд будет подниматься на 4 м каждые 100 м.
Run Date Train № Speed (m/s) Abscissa (m) Slope (>0: up;<0: down)
1 01/12/2012 00:03:39 1 9 19779,29 4,00%
1 01/12/2012 00:03:40 1 7,5 19794,04 4,00%
1 01/12/2012 00:03:41 1 6 19804,04 4,00%
1 01/12/2012 00:03:42 1 4 19811,54 4,00%
1 01/12/2012 00:03:43 1 3 19814,79 4,00%
1 01/12/2012 00:03:45 1 1 19818,04 4,00%
1 01/12/2012 00:03:46 1 0 19818,79 4,00%
Рис. 1. Фрагмент таблицы Excel
Под «торможением» будем понимать процесс полной остановки поезда в течении некоторого интервала времени. Начало процесса торможения не может осуществляться из неподвижного состояния (начальная скорость не равна нулю), окончание процесса — полная остановка (скорость поезда равна нулю).
Процесс снижения скорости, но не обязательно до нуля, будем называть «замедлением». Процесс набора скорости называют «разгоном», а процесс изменения скорости от начальной к еще большей — «ускорением». Термин «ускорение» также может применяться в теоретико-физическом смысле, как предел отношения приращения скорости объекта к приращению времени при стремлении приращения времени к нулю (производная от скорости).
«Последовательностью» или «измерениями» (когда это ясно из контекста) или «последовательностью измерений» или «серией замеров» (когда требуется подчеркнуть или уточнить), будем называть все записи в базе данных, имеющие один общий ключ Run, отсортированные по возрастанию Date.
Последовательность имеет ряд свойств: 1) последовательность уникальна, нет других записей или группы записей с таким же ключом Run; 2) последовательность не убывает по значениям в столбце Date, что ясно из определения. Как и в математической последовательности, можно оперировать понятиями «элемент последовательности» — единичная запись в таблице данных с тем же номером, что у последовательности, начальный и конечный, элементы, элемент с номером (номер отсчитывается от первого) для совместимости с большинством языков программирования начальный элемент будет нулевым и т.д.; 3) каждая последовательность несет в себе информацию об одном конкретном объекте, у каждого объекта есть свой уникальный номер Train №, одна последовательность соответствует одному объекту (поезду), т. е. не встречаются 2 записи, в которых при одном и том же Train N° разные Run.
Последовательность будет тормозной или торможением, если скорость «Speed» в ее последнем элементе равна нулю.
1.2. Постановка задачи обработки данных торможения поездов метро.
Приведем необходимые результаты, основываясь на статье [7]. Поезд перемещается под действием результирующей силы. Результирующая сила состоит из всех сил, действующих на поезд, но, т. к. данных о изучаемых поездах недостаточно, будем исследовать движение как движение материальной точки. Ускорение, с которым движется материальная точка по закону Ньютона а = F/m, можно оценивать по данным измерений.
Рассмотрим моделирование процесса торможения электропоезда по данным измерения расстояния, скорости, уклона в фиксированные моменты времени.
Введём обозначения. Для поезда с номером N: t — время (с); x(t) = s(t) — расстояние, пройденное поездом к моменту t (м); x (t) = v (t) — мгновенная скорость (м/с) поезда (погрешность ±0,5 м/с); x(t) = v(t) = a (t) — ускорение (м/с2, торможение) в момент t; Slope — уклон пути в процентах (+k % означает, что поезд будет подниматься на k метров каждые 100 метров пути). В базе данных заданы дискретные значения t, x, x(t, s, v).
В режиме тяги поезда, в котором сила Fk преодолевает силу сопротивления движению Wk и силу инерции Fn справедливо соотношение: Fk = Wk + Fn. Откуда следует основное уравнение движения поезда
(1)
v = x =
dx ds dt dt'
(1 + y) mv— = £F
ds
или
(1 + y) mi— = £F.
dx
(2)
Разделим уравнение на mg и получим
g dt mg
dv dx £g
dt dt (1 + y ) mg
1х £ 1V £ х— = ---— г или V— = ---— г
ах (1 + 7) т ах (1 + 7) т
при 7 = 0,06.
Если за размерность взять путь в (км), время Ь (ч), скорость V (км/ч), то £ = 120. В удельных силах основное уравнение движения запишется в виде
IV
X = 120/ или — = 120/ (3)
ах ¿V
X— = 120/ или V— = 120/.
ах ах
Если / (V) > 0, то поезд движется с ускорением а > 0; если / (V) < 0, то движение поезда с замедлением (торможение а < 0); если / (V) = 0, поезд движется равномерно (а = 0). Запишем (3) в виде
¿х ¿V
х 1х = *(х) ^Тх = *^.
Уравнение х = д можно переписать в виде х1 = х, х1 = х2, х2 = д.
Физический смысл основного уравнения движения поезда состоит в том, что уравнения моделируют связь ускорения поезда ^ = а (км/ч2) с удельной равнодействующей силой поезда. На каждую единицу удельной равнодействующей силы скорость поезда возрастает (если / = +1 н/кН) или уменьшается (если / = —1 н/кН) на 120 км/ч за один час (или 2 км/ч за одну минуту).
По условию задачи, для обработки используются отсчёты расстояния и скорости в дискретные моменты времени. В случае торможения V (Ьг) > V (¿г+1) обозначим
х (и) = хг, х (и) = V (и) = хг = VI,
x i+l — xi _ vi+1 — vi
ах
¿х хг+1 хг хг+1 хг
Вычисляемые величины по данным измерений
_ . хг+1 — хг _ х2г+1 — х2г
дг х г1 = х2г
хг+1 хг х1г+1 х1г
Ускорение
_ ■■ _ хг+1 хг _
аг хг ~ ~ дг.
иг+1 — иг
Уравнения движения и уравнения для фазовых траекторий имеют вид:
{
х 1г = х2'1-, х 2г дг
откуда получаем — = —.
х 2г = дг, х 1г х2г
Алгоритм расчёта основных показателей торможения.
Входные данные: номер поезда k £ K; номер последовательности i £ Ik; отсчёты j j £ Jк% времени k-ого поезда, i-й последовательности; xj = x (t^) — абсцисса k-ого поезда i-й последовательности в момент времени tj; Xj'1 = vk — величина скорости в i-й последовательности k-ого поезда. Выход: основные характеристики движения.
1. Вычислить:
1.1) ускорение
Vki — vki nki = xki = v ki = Vj +1 Vj . nj = Xj = Vj = tki _ tki . j+i j
1.2) торможение в момент времени tki;
1.3) среднее торможение deceleration за период от начала торможения th[i; до остановки t1n:
ki ki
d = deceleration = nki = -П. (4)
tki tki
1.4) равнодействующие силы:
ki ki ■ kix j+1 x j
1.5) фазовые траектории:
g = Xk xki _ xki. (5)
xj+1 xj
_=
xk xk
2. На основании данных из последовательностей базы данных и шага 1 построить графики (в зависимости от времени) расстояния (м), скорости (м/с) и ускорения (торможениия) (м/с2), траектории движения.
На рис. 2, 3, 4 представлены характерные графики для последовательности № 24237. Следует отметить, что величина торможения 6 вычислялась по формуле (3). На основании анализа построенных зависимостей справедливы следующие выводы: у всех последовательностей, фиксирующих расстояние, скорость, наблюдается постепенное нескачкообразное снижение скорости; у последовательностей, фиксирующих торможение, изменение величины торможения носит разнообразный характер.
The graph of the train deceleartion depending on the time for the sequence №24237
WiniDNCO^OHWPl^Ulfi
Ьте(ткго_5)
Рис. 2. Зависимость величины торможения от времени по данным последовательности № 24237
The graph of the train speed depending on the time for the sequence №24237
time (micro_s)
Рис. 3. Зависимость скорости от времени по данным последовательности № 24237
Graph of the distance traveled by train depending on the time for the sequence №24237
time (micro_s)
Рис. 4. Зависимость расстояния от времени по данным последовательности № 24237
На рис. 5, 6 представлены графики зависимости величины торможения (м/с2) от времени (с). Выявлено, что наглядными являются фазовые траектории (х,х). Построены графики зависимости скорости (м/с) от расстояния (м) для каждого из поездов с целью определения качества торможения и расположения остановок поездов метро. На рис. 7 приведен фрагмент графика зависимости скорости от расстояния для поезда № 1 (фазовые траектории). На рис. 8 представлены графики зависимости скорости от времени и от пройденного расстояния по данным последовательности 6982. По графикам видно, что торможения поездов не являются равнозамедленными.
На рис. 9 помимо скоростных зависимостей можно увидеть зависимость пройденного расстояния от времени и три расчётные зависимости результирующего ускорения от времени и пройденного пути. Приближенная формула для вычисления ускорения имеет вид:
Av , ,
а (6)
АЬ v ;
The graph of the train deceleartion depending on the time for the sequence №11
-0.75 ■ -0.80 •
-0.95 -
-1.00 ■ -i-1-
time{micro_s)
Рис. 5. Зависимость торможения от времени по данным последовательности № 10
Рис. 6. Зависимость торможения от времени по данным последовательности № 11
17.5 15.0 12.5
Рис. 7. Зависимость скорости от расстояния для поезда №1
Рис. 8. Скоростные зависимости Train 1 Run 6982
Формула (6) следует из непосредственного определения ускорения, как предела отношения изменения скорости к изменению времени при стремлении △ к нулю:
Ах А у А у _Ау V = —г~, а ~ ~г~ = "л- = ^— • Аг Аг ^ Ах
Рис. 9. Некоторые зависимости Train 1 Run 7049
Учитывая, что на отрезке (г, г + 1) среднее значение V — ^+2+^, получим:
Vг+l + Vг Av
(7)
2 Ах
Зависимость пройденного расстояния от времени построена вместе с приближенным вычислением той же зависимости на основе имеющихся измерений скоростей и временных интервалов:
X - V ((Ьг+1 — *)) (8)
i=1
1.3. Статистические методы обработки. Гистограммы различных данных.
На рис. 10 и 11 представлены гистограммы торможения поездов, движущихся в прямую и обратную стороны соответственно. Данные гистограммы были построены по вычисленным значениям среднего торможения для каждой из последовательностей. Следует отметить, что величина среднего торможения 1 вычислялась по формуле (4).
Для реализации программной части исследования использовался язык программирования Python 3.6. с интегрированными библиотеками: scipy. interpolate (для интерполирования функций), matplotlib.pyplot (для построения графиков функции и гистограмм), numpy (для операции над векторами и матрицами), xlwings (для работы с файлом формата xls).
oinoinoinoino^noinoino^no^oinoirtotnotnotnotnoinotnouiomom
ООООООООООООООСХЗООООн
Рис. 10. Гистограмма торможения поездов, движущихся в прямую сторону
Рис. 11. Гистограмма торможения поездов, движущихся в обратную сторону
1.4. Кластеризация данных. В ходе исследований было обнаружено, что часть последовательностей идет по возрастанию оси Abscissa, а часть — по убыванию. Эти последовательности естественным образом поделились на две группы: положительного направления и отрицательного. Графики фазовых траекторий таких торможений имеют характерный наклон в сторону противоположную движению. Все дальнейшие исследования проводились по группам: по отдельности и вместе. На рис. 12 можно увидеть графики зависимостей скорости от координаты для всех последовательностей поезда под номером 1 в направлении возрастания координат, т. е. «положительном», в направлении убывания координат, т. е. «отрицательном» и в обоих одновременно.
Для траекторий, представленных на рис. 12, гистограммы распределения точек остановки (Speed=0) даны на рис. 13.
Для выяснения локальных сгущений траекторий торможений по данным последовательностей измерений, таких, как скорость (макс) и координата остановки (Abscissa при Speed=0, или для последовательностей торможения, когда показание Abscissa в конце последовательности), в зависимости от направления движения проводится кластеризация данных рис. 14.
Для выяснения характера торможения по данным построения траекторий, таких, как скорость (макс) и длина пути до остановки (тормозной путь) в зависимости от направления движения проводится кластеризация данных рис. 15 а), б), в).
Рис. 12. Зависимости скоростей от координат для 1-го поезда
Рис. 13. Гистограмма точек останова первого поезда
Близость траекторий в кластере в простейшем случае будем определять по расхождению траекторий. В качестве одной из мер близости выберем модуль разности между площадями под кривыми 151 — Б21.
Диаграмма разброса max Speed/Abscissa, для поезда Nt 1 Положительное направление движения поездов, кластеров 16
ь • о
1 V 4 » я
1 • г. • • f • о о О о 00 о ч. о о 0 * < о о о % о • . • • • • t V • > 'а 8 и г •г о+° ° о о
о • • о
I 12.5 }
V
■
ОСТ 00 <
-к ° ML ' >
8
о о
Г«
г-;
i* •
• 4S
+ о_|_ о8
Рис. 14. Диаграмма разброса торможений по величинам максимальной скорости в последовательности и тормозного пути, с кластеризацией к-гпваия на 16 кластеров, прямого и обратного направления движения поездов
2. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ АЛГОРИТМОВ ОБРАБОТКИ ДАННЫХ
2.1. Подготовка больших данных (Big Data). Загрузка данных из файла с расширением .xlsx происходит с помощью директивы df=pd.read_excel(initial_analysis.xlsx').
Для удобства названия полей именуются в форме:
df.columns = ['Run', 'Date', 'Train', 'Speed', 'Abscissa', 'Slope'] df.info()
<class 'pandas.core.frame.DataFrame'>
Rangelndex: 227637 entries, 0 to 227636
Data columns (total 6 columns):
Run 227637 non-null int64
Date 227637 non-null object
Train 227637 non-null int64
Speed 227637 non-null float64
Abscissa 214247 non-null float64
Slope 211314 non-null float64
dtypes: float64(3), int64(2), object(1)
memory usage: 10.4+ MB
Рис. 15. Кластеризация по данным траекторий торможения: 2, 3 и 6 кластеров
Таким образом, 1) данные содержат 227637 записей; 2) поля Run и Train содержат целочисленные значения; 3) поля Speed, Abscissa и Slope содержат вещественные значения; 4) Date имеет тип object: текстовые строки или объекты, закодированные текстовой строкой, в рассматриваемом фрагменте данных это временная метка в формате "dd/mm/yyyy hh:mm:ss"; 5) напротив названия каждого поля стоит количество данных без пропуска, что в нашем случае означает количество непустых ячеек в книге Excel находящихся в столбце с соответствующим названием поля, от ячейки под этим названием до ячейки (включая ее саму) напротив самой последней ячейки самого глубокого столбца.
Поле Abscissa содержит 227637-214247=13390 пропущенных значений, а Slope содержит 227637-211314=16323 (информацию можно получить директивой df.isnull() .sum(), которая в копии фрейма заполнит непустые данные нулями, а пустые единицами, затем посчитает количество единиц в каждом поле, тем самым найдет количество пропусков в каждом поле).
Чтобы выяснить, сколько записей (строк) содержат пропуски, достаточно отфильтровать все не содержащие пропусков записи и посмотреть их количество: df[df.isnull().max(axis=1)].shape[0], результат: 16323.
Чтобы выяснить, сколько последовательностей содержат пропуски, достаточно отфильтровать все не содержащие пропусков записи, удалить дубликаты ключей и посмотреть количество элементов в полученном множестве:
len(set(df[df.isnull().max(axis=1)].Run)), результат: 2812. Данные последовательностей, содержащих пропуски, были отфильтрованы и сохранены в отдельный файл, для возможности их исследования при необходимости. Выяснилось, что оставшиеся данные содержат дубликаты строк, причем дубликаты встречаются парами, следуя друг за другом. Все повторные вхождения дубликатов были удалены в виду их избыточности.
В ходе дальнейшего анализа было выявлено, что парами встречаются ситуации в конце последовательностей, когда ключ и временная метка совпадают, а у других данных есть расхождения, причем самая последняя запись всегда содержит нулевую скорость. Так как последние записи выглядят более завершёнными, то предпоследние были удалены для исключения возможности, когда в один и тот же момент времени, наблюдаются разные состояния одного и того же объекта.
В идеальном случае торможение должно начаться в какой-либо момент времени и прекратиться, когда скорость поезда станет равна нулю (поезд остановится). В ходе анализа данных выявлено, что существуют 4677 записей, дублирующих предыдущие
по ключу ['Run' , 'Abscissa'], т. е. в одной и той же последовательности существуют записи с одинаковой координатой; выяснено, что эти записи идут подряд, парами, за исключением последовательности с номером 4113 (рис. 16).
Run Date Train Speed Abscissa Slope
32933 4113 31/01/2013 20:13 17 9 95 11819 71 -0 04
32934 4113 31/01/201320 13 19 9 8 0 11843 46 -0 04
32935 4113 31/01/2013 20 13 20 9 6 5 11860 46 -0 04
32936 4113 31/01/2013 20 13:21 9 5 5 11868 46 -0 04
32937 4113 31/01/2013 20 13 22 9 5 0 11874 46 -0 04
32938 4113 31/01/2013 20 13 23 9 45 11880 96 -0 04
32939 4113 31/01/2013 20 13 25 9 35 11886 46 -0 04
32940 4113 31/01/2013 20 13 26 9 3 0 11890 96 -0 04
32941 4113 31/01/2013 20 13:27 9 2 0 11893 96 -0 04
32942 4113 31/01/2013 20 13 28 9 1.5 11897 46 -0 04
32943 4113 31/01/2013 20 13 29 9 1.0 1189921 -0 04
32944 4113 31/01/2013 20 13 30 9 0 0 11900 46 -0 04
32945 4113 31/01/2013 20 13:31 9 0 0 11900 46 -0 04
32946 4113 31/01/2013 20 13 32 9 0 0 11900 46 -0 04
Рис. 16. Последовательность измерений с номером 4113
Как видно из рис. 16, последние три записи отличаются лишь временной меткой, поэтому две последние из них могут быть удалены, так как процесс торможения завершен к моменту первой из них. Подобным образом существует две пары записей в последовательностях под номерами 8683 и 8684 (рис. 17).
Run
Date Train Speed Abscissa Slope
68685 8683 26/10/2013 06 12:22 24
68686 8683 26/10/2013 06 12:29 24
68701 8684 26/10/2013 06 12:22 24
68702 8684 26/10/2013 06 12 29 24
95 1292524 -0 04 9.5 1292524 -0 04
9 5 12925 24 -0 04
95 1292524 -0 04
Рис. 17. Дублирующиеся в конце одной последовательности записи с одинаковой скоростью и координатой
2.2. Преобразование данных. Для удобства работы с последовательностями, как с отдельными объектами, данные были преобразованы в Data Frame, индексами которого служат номера последовательности Run в предыдущем варианте данных, значения столбцов Date, Abscissa и Train совпадают с соответствующими значениями в первых записях последовательностей, с той лишь разницей, что Date преобразован в формат секунд от начала эпохи (удобно считать разницу во времени, при необходимости легко конвертируется к привычному виду). Direction показывает относится
ли последовательность к типу 1, когда поезд движется в сторону увеличения координат или —1 — в сторону уменьшения координат. Столбец Series является вложенным Data Frame и будет иметь следующие показатели: t — разница в секундах между начальным моментом времени Date и текущим, в первой записи серии она будет равна 0; X(x(t)) — абсолютная разница в метрах между начальным значением Abscissa и текущим, в первой записи серии она будет равна 0; v (x(t) = v) — скорость поезда в метрах в секунду; Slope — уклон; a (x(t) = a) — представляет собой расчетное ускорение, вычисляется, как отношение приращения v к приращению t, в последней строке серии будет считаться равным нулю.
Кроме того, среднее ускорение не мгновенная величина в точке, оно относится ко всему интервалу, на котором посчитано, сохранение его с меткой начала интервала продиктовано удобством. Можно его хранить и под меткой конца интервала или в отдельной последовательности, где временные метки это полусуммы интервалов исходной последовательности. Это обстоятельство учтено при построении графиков. Графики ускорений имеют на одну меньше точек, чем графики зависимостей скоростей и расстояний от времени.
Old_Index — индекс соответствующей записи в прежней форме данных.
Фрагмент преобразованных данных показан на рис. 18, а содержание его вложенного фрейма на рис. 19.
sdf.sample(5) # 5 случайных строк фрейма
Train Date Abscissa Series Direction
17158 20 1450471723 1081942 t v X a Slope Okljndex 0 0 True
4977 29 1358861688 19259 06 t v X a Slope Okijndex 0 0 True
2039 36 1347783182 10323 30 t v X a Slope Oldjndex 0 0 False
6332 36 1363101691 20631 18 t v X a Slope Oldjndex 0 0 False
9404 11 1380379468 18232 97 t v X a Slope Oldjndex 0 0 False
Рис. 18. Фрагмент преобразованных данных
2.3. Статистическая обработка данных. При дальнейшем анализе обнаружено, что 53 последовательности не оканчиваются нулем. При этом 23 из них являются ускорениями и рассматриваться не будут. Две из них оканчиваются той же не нулевой скоростью, что и начинаются, и не являются торможениями. Замедлениями являются 28, но из них только 19 можно считать торможениями после небольшой коррекции последних двух записей, если конечная скорость меньше 0.5, то обнуляем
1 tt содержание фрейма в случайной ячейке столбца Series
2 sdf.sample(1).iloc[0]['Series']
t V X а Slope Old_index
0 10 5 0 00 -2 00 -0 008 36236
1 85 18 50 -1 00 -0 008 36237
2 75 27 25 -1 00 -0 008 36238
3 65 36 00 -1 50 -0 008 36239
4 50 43 75 -1 00 -0 008 36240
5 4 0 50 75 -0 75 -0 008 36241
7 2 5 54 75 -1 00 -0 008 36242
8 1.5 57.75 -1 50 -0 008 36243
9 0 0 59 75 0 00 -0 008 36244
10 0 0 60 25 0 00 -0 008 36245
Рис. 19. Содержание вложенного фрейма Series
ее и пересчитываем предпоследнее ускорение. Это возможно, так как погрешность измерения скорости равна ±0, 5 м/с.
В результате в полученный фрейм была добавлена вторичная агрегированная информации, такая, как максимальная измеренная скорость V, максимальное A и минимальное а ускорения, тормозной путь X, время торможения T, число записей в последовательности N, максимальный интервал времени между соседними упорядоченными по возрастанию записями последовательности mdt, абсолютное отклонение DX (модуль разности между вычисленным на основе полусумм скоростей на концах интервалов измерений, тормозным пути и фактическим).
На рис. 20 показана стандартная статистическая информация о фрейме данных.
Abscissa V X Т mdt а N A DX
count 23814000000 23814 000000 23814000000 23814000000 23814 000000 23814000000 23814000000 23814 000000 23814000000
mean 15875652469 8 291026 47 725817 9203032 2271395 -1 672074 8 441337 0001595 9389255
std 3336537277 2670659 43 477361 32 903025 32 670977 0 549932 3318438 0032298 54212704
min 10019320000 0000000 0 250000 1 000000 1 000000 -8 500000 2000000 0000000 0000000
25% 12982 552500 6 500000 24317500 6 000000 2 000000 -2 000000 6000000 0 000000 4 000000
50% 16013 195000 8 000000 37 495000 8 000000 2 000000 -1 500000 8 000000 0 000000 7 000000
75% 18821 357500 10 000000 63750000 11 000000 2 000000 -1 500000 10000000 0 000000 11 750000
max 21637 045000 18 500000 4300 520000 5025 000000 5023 000000 0 000000 49 000000 2 000000 8268 980000
Рис. 20. Стандартная статистическая информация
Сводка показывает, что самая длинная последовательность имеет тормозной путь 4.3 км, что выглядит нереалистично, т.к. в литературе, например в [2], таких величин нет. На рис. 21 можно оценить ее динамические зависимости.
00 -02 -04 -0« -0 8 -10
4000 3000 2000 1000
Рис. 21. Динамические зависимости последовательности 9908
Однако, 4 измерения, на протяжении пути более 4000 метров, не дают достаточно подробной информации о движении поезда.
Эта последовательность исключена из исследования ввиду ее несоответствия понятию «экстренное торможение» (рис. 22).
АЬ»С1$ва V X Т ш<П а N А ОХ
сонм 23814 000000 23814 000000 23814 000000 23814 000000 23814 000000 23814 000000 23814 000000 23814 000000 23814 000000
теап 15875 652469 8 291026 47 725817 9203032 2 271395 -1 672074 8 441337 0001595 9389255
»М 3336 537277 2 670659 43 477361 32 903025 32 670977 0 549932 3 318438 0032298 54 212704
тт 10019 320000 0 000000 0 250000 1 000000 1 000000 -8 500000 2 000000 0 000000 0000000
1% 10144 672500 3 500000 8 000000 3000000 1 000000 -3 500000 3 000000 0 000000 0250000
5% 10641 050000 4 500000 13 000000 4 000000 1 000000 -2 500000 4 000000 0 000000 0 750000
10% 11290 520000 5 000000 16 750000 5000000 2 000000 -2500000 5 000000 0 000000 1 750000
20% 12384 484000 6 000000 21 930000 6 000000 2 000000 -2000000 6000000 0 000000 3 250000
25% 12982 552500 6 500000 24317500 6 000000 2 000000 -2000000 6000000 0 000000 4 000000
50% 16013 195000 8 000000 37 495000 8 000000 2 000000 -1 500000 8000000 0 000000 7 000000
75% 18821 357500 10 000000 63 750000 11 000000 2 000000 -1 500000 10 000000 0 000000 11 750000
80% 19323 160000 11 000000 71 250000 12 000000 2 000000 -1 500000 11 000000 0 000000 13 250000
90% 20285 262000 12 000000 92 000000 14 000000 2 000000 -1 000000 13 000000 0 000000 18 750000
95% 21084 820000 13 000000 110 750000 16000000 2 000000 -1 000000 15 000000 0 000000 24 250000
99% 21490 239800 15 000000 141 500000 20 000000 3 000000 -1 000000 18 000000 0 000000 34 000000
так 21637 045000 18 500000 4300 520000 5025000000 5023 000000 0 000000 49 000000 2 000000 8268 980000
Рис. 22. Стандартная статистическая информация
При этом 95 % последовательностей имеют не более чем двухсекундные интервалы, а максимальный — 185 с, заметим, что 99 процентиль дает всего 3 секунды. Следовательно, последовательности с максимальными интервалами более трех секунд совершенно нетипичны. Действительно, чем больше интервал между измерениями, тем больше неопределенность состояния наблюдаемого объекта. Делать обобщенные выводы на нетипичных последовательностях статистика не рекомендует.
Похожие выводы — о недостоверности и нетипичности — можно сделать и о числе измерений в последовательности. Первый процентиль дает 3, следовательно, любые предположения, основанные на наблюдениях последовательностей, где менее трех измерений, статистически незначимы, что вполне согласуется с реальностью.
В дальнейшем будем исследовать последовательности, в которых максимальный временной интервал между соседними измерениями не превышает 3 си общее количество измерений три и более. Обновленная информация приведена на рис. 23.
В [2] приводятся следующие данные торможений: грузовые поезда — от 0,1 до 0,4 м/с2; пассажирские — от 0,3 до 0,6 м/с2; электропоезда — от 0,5 до 0,8 м/с2; высокоскоростные поезда — от 0,8 до 1,5 м/с2.
Abscissa V X Т mdt а N A DX
count 23613 000000 23613 000000 23613 000000 23613 000000 23613 000000 23613 000000 23613 000000 23613 000000 23613 000000
mean 15884319101 8312900 47 235082 8859442 1 942066 -1.671050 8 450726 0 000833 8904304
std 3336933477 26557% 31.112706 3673154 0 302227 0 541082 3221757 0022318 7.249257
mm 10019.320000 1.000000 1.500000 2.000000 1.000000 -8 500000 3.000000 0 000000 0.000000
1% 10144 200000 3 500000 8500000 3000000 1 000000 -3500000 3000000 0 000000 0250000
5% 10640 300000 4500000 13 334000 4 000000 1 000000 -2 500000 4 000000 0 000000 0.765000
10% 11287 016000 5000000 16 876000 5000000 2 000000 -2 500000 5000000 0 000000 1 750000
20% 12401 328000 6000000 22 000000 6000000 2 000000 -2.000000 6 000000 0 000000 3.250000
25% 12999 990000 6 500000 24500000 6000000 2 000000 -2.000000 6 000000 0 000000 4000000
50% 16037 770000 8000000 37 500000 8 000000 2 000000 -1 500000 8 000000 0 000000 7000000
75% 18823 170000 10 000000 63750000 11 000000 2 000000 -1 500000 10 000000 0 000000 11.750000
80% 19329 250000 11 000000 71 000000 12 000000 2 000000 -1 500000 11 000000 0 000000 13.250000
90% 20291.330000 12.000000 91.750000 14.000000 2 000000 -1 000000 13.000000 0 000000 18.750000
95% 21085 426000 13 000000 110250000 16 000000 2 000000 -1 000000 15 000000 0 000000 24008000
99% 21490530000 15 000000 138 720000 20000000 3000000 -1 000000 18 000000 0 000000 33.500000
max 21637 045000 18 500000 500010000 56 000000 3000000 -0 500000 49000000 1 000000 67 500000
Рис. 23. Обновленная статистическая информация
Учитывая данные торможений высокоскоростных поездов и принимая во внимание значения по пятому и девяносто пятому процентилям, соответственно -1,5 и -2,5 м/с2, приходим к тому, что последовательности измерений кинематики соответствуют высокоскоростным поездам.
Для отображения различных графиков использовалась библиотека mathplotlib [13], которая эффективнее в сочетании с Jupyter Notebook [12], т. к. он позволяет отобразить график сразу, непосредственно под ячейкой со скриптом.
Для построения графика траектории торможения написана функция Trajectory(Run,ndf=ndf,th=0.1), ее аргументы — это номер последовательности Run, фрейм данных ndf и временной шаг, подбирая который можно строить более гладкие кривые.
Построения сводятся к интерполяции зависимостей скорости и координаты от времени с помощью InterpolatedUnivariateSpline в составе модуля interpolate библиотеки scipy [14]; в скрипте модуль interpolate переименован в interp. Затем приведен расчет более частой последовательности времени и пересчет на ее основе скоростей и координат, а также классическое построение графика линии, заданной параметрически.
Для визуального исследования характерных закономерностей торможения строятся графики кинематических зависимостей. На рис. 24 (см. также рис. 9) приведен пример такого построения. Слева-направо и сверху-вниз построены 6 областей:
1) график зависимости тормозного пути от времени (черным цветом), также график зависимости тормозного пути от времени, построенный как сумма произведений средней скорости на время, для каждого отрезка последовательности (серым цветом); пунктиром изображены два графика с учетом максимальной неточности измерения скорости (±0, 5 м/с);
2) график зависимости удельной равнодействующей сил;
3) зависимость среднего ускорения от времени (красным цветом) и зависимость доли ускорения, вызванная действием компоненты силы тяжести, направленной вдоль пути (зеленым цветом) от времени;
4) зависимость ускорения (торможения) от пройденного пути с начала торможения;
5) зависимость скорости от времени;
6) зависимость скорости от пути с начала торможения.
Сравнительный анализ траекторий, приведен на третьем (самом нижнем) графике рис. 24.
Проанализировав ситуацию, почему траектории отклоняются в разные стороны, обнаружено, что одни последовательности координат убывают, а другие возрастают, что означает движение поезда в прямую сторону, а затем в обратную. После разделения последовательностей на положительные (координата растет со временем) и отрицательные (координата убывает со временем), получены характерные графики траекторий положительного направления и отрицательного, соответственно красные линии и синие. Участок пути в 1.5 км представлен на рис. 25.
Для исследования наблюдаемых сгущений траекторий выбран метод кластеризации k-means, ввиду его простоты и интерпретируемости. Реализована функция klastersgraf (Train=1, n_Start=15, End=None, df=ndf, colors=False, h=11, d=0, cmap=mpl.cm.plasma, filt=None, show=True, ret=False, clastrs=None) с аргументами:
Рис. 24. Построение некоторых кинематических зависимостей без сглаживания
Train — номер поезда;
n_Start — количество кластеров в начале, если не задан n_End, то количество класте-ров, на которые алгоритм разобьет последовательности;
n_End — если этот параметр не равен 0, то строятся графики, иллюстрирующие результат кластеризации для количества кластеров с n_Start по n_End; df — ссылка на базу с данными;
colors — если присвоить параметру значение True, он будет закрашивать видимую область в цвета характерные ближайшему кластеру, это медленный процесс и по умолчанию отключен;
h — для отделения области одного кластера от другого строятся разделяющие линии, для наглядности вместо одной разделяющей линии между двумя кластерами строятся две. Они на величину h левее и правее отстоят от истинной, окрашены в цвета ближайшего кластера;
Рис. 25. Увеличенное изображение участка пути между 10000 и 15000 координатами
d — сдвиг числа кластеров для положительного и отрицательного направлений относительно друг друга, по умолчанию равен 0;
cmap — при необходимости можно изменить цветовую карту, передав желаемую через аргумент;
filt — логический вектор, с помощью которого можно исключить из рассмотрения кластеризатора некоторые последовательности;
show — если нет необходимости строить графики, достаточно присвоить этому аргументу значение False;
ret — аргумент, с помощью которого можно исследовать поведение среднекла-стерных расстояний в зависимости от числа кластеров или получить метки кластеров, если инициализирован аргумент clastres;
clastres — через этот аргумент можно передать начальные координаты кластеров для инициализации. Для этого нужно передать кортеж из двух списков координат, длины которых должны быть равны n_Start. Если clasters не None, то n_End и n_Start принудительно станут равны числу элементов в первом списке переданного кортежа.
Процесс кластеризации проходит в 2 этапа. На первом этапе происходит несколько кластеризаций для заданного числа кластеров в выбранном диапазоне. Для этого многократно вызывается klastersgraf обязательно с параметрами n_End=None, show=False, ret=True.
Значения сумм квадратов средних расстояний всех элементов до центров их кластеров сравниваются среди таких же по числу кластеров. Оставляются те координаты центров, у которых наименьшее значение этой суммы; значение минимальной суммы запоминается (эта часть реализована в библиотечном алгоритме KMeans через задание параметра n_init, который приняли равным 100). После этого строится график зависимости сумм от числа кластеров и принимается решение, какое количество кластеров оптимально.
На втором шаге для получения итоговой классификации снова вызывается функция klastersgraf, однако теперь для инициализации в нее передается кортеж из двух центров кластеров, выбранный на первом шаге. Если при этом аргумент ret был передан в значении True, то функция вернет кортеж из двух последовательностей меток, разделяющих данные на кластеры. Пример визуализации результата классификации рис. 26 (см. также рис. 14).
Рис. 26. Кластеризация торможений для поезда № 30
График зависимости скорости от пройденного с начала торможения пути полностью идентичен графику траектории в случае прямого движения поезда (кроме переноса начала координат в начало торможения) и является зеркальным вдоль оси скоростей для обратного движения поезда (также кроме переноса начала координат в начало торможения), что не отражается на самих площадях под кривыми и между кривыми, если не сравнивать между собой траектории разных направлений движения, поэтому расчет площадей будет производится на графиках зависимостей скорости от пройденного с начала торможения пути. Эта система наиболее удобна для работы, потому что в ее координатной плоскости хранятся данные о последовательностях в своем преобразованном виде.
Для того, чтобы посчитать площадь под кривой или между кривыми, необходимо интерполировать описывающие их последовательности; для этого написана функция обертка, принимающая на вход последовательности тормозных путей и последовательности соответствующих скоростей.
В зависимости от длин последовательностей выбирается 1 из трех способов интерполяции: при двухэлементных — линейная, при трехэлементных — квадратичный полином с помощью функции polyld библиотеки numpy, при четырёхэлементных и более — сплайнами c помощью функции InterpolatedUnivariateSpline из модуля interpolate библиотеки scipy. На выходе будет функция, интерполирующая данные на входе последовательности.
Более реалистичной представляется задача расчета матрицы расстояний для каждого поезда в отдельности: кластеризовать траектории по каждому поезду, выявить характерные группы и взять в каждой среднюю величину, подобрать ближайшую к ней кривую, далее классифицировать траектории по мере близости к характерным кривым. Этот эталонный подход должен значительно упростить классификацию кривых для оперативного принятия решений по вопросу, к какому классу принадлежит кривая.
Рассмотренные подходы лежат в основе построения интеллектуализированной системы обработки больших данных торможения поездов (ИСОБД ТП).
2.4. Оценка качества торможения. Статистические данные движения поездов метро, полученные из них траекторные данные и визуализированные представления являются большими данными (Big Data, BD), из которых извлекаются знания о качестве торможения поездов (Data Mining, DM). Интеллектуализированная система обработки таких данных должна сочетать статистические методы машинного обучения (Machine learning, ML) и нейронные сети. Структура такой интеллектуализированной системы обработки больших данных (ИСОБД) представлена на рис. 27.
Рис. 27. Структура ИСОБД
Заключение
На основе базы данных измерений показателей датчиков движения проведено исследование процессов торможения пассажирских высокоскоростных поездов. Показано, что статистические методы и методы кластерного анализа позволяют извлечь знания о процессе торможения из данных измерений, таких, как координаты станций метро — на основе изучения гистограмм и применения алгоритмов кластеризации к
координатам остановок поездов. Выявлены характерные траектории торможений, получены значения параметров кинематик движения.
Подход, основанный на интеллектуализации обработки больших данных, характеризующих процесс торможения поездов метрополитена, позволяет уточнять разработку систем управления поездов в автоматическом режиме, прогнозировать качество и точность остановки. Применяемая технология может быть перспективной и в других предметных областях.
Автор выражает благодарность научному руководителю М.Г. Козловой, а также участникам студенческой научной группы (под руководством В.А. Лукьяненко) А. Португальской, Д. Абдулаевой, В. Павлюкову и французской стороне, любезно предоставившей данные измерений датчиков поездов метро.
Список литературы
1. Анисимов В. А. Тяговые расчеты / В. А. Анисимов, В. В. Анисимов // Хабаровск: 2013. — URL: https://www.sites.google.com/site/tagapoezd/monografia.
ANISIMOV, V.A. and ANISIMOV, V.V. (2013) Traction calculations. Khabarovsk.
2. Асадченко В. Р. Автоматические тормоза подвижного состава: Учебное пособие для вузов ж.-д. транспорта / В. Р. Асадченко.// М.: Маршрут, 2006. — 392 c.
ASADCHENKO, V.R. (2006) Automatic rolling stock brakes. Moscow: Marshrut.
3. Бегагоин Э. И. Тяга поездов : учеб.-метод. пособие / Э. И. Бегагоин, Н. О. Фролов, И. Н. Пампурин // Уральский государственный университет путей сообщения. — Екатеринбург: УрГУПС — 2012. — 47 c.
BEGAGOIN, E.I. and FROLOV, N.O. and PAMPURIN, I.N. (2012) Train traction. Ekaterinburg.
4. Галай Э. И. Эффективность торможения пассажирских поездов — фактическая и по нормативам / Э. И. Галай, П. К. Рудов // Наука и прогресс транспорта. Вестник Днепропетровского национального университета железнодорожного транспорта. — 2006. — № 11. — С. 116-119.
GALAI, E.I. and RUDOV, P.K. (2006) Effectiveness of braking of passenger trains, actual and according to standards. Science and progress of transport. Bulletin of Dnepropetrovsk National University of Railway Transport.
5. Кокурин И. М. Теоретические и технологические основы построения адаптивной системы диспетчерской централизации / И. М. Кокурин // Автоматика на транспорте. — 2017. — №3 (3). — С. 345-354.
KOKURIN, I.M. (2017) Theoretical and technological foundations for building an adaptive dispatch centralization system. 3(3). Automation in transport.
6. Кокурин И. М. Технологические и теоретические основы развития интеллектуальных систем управления движения поездов / И. М. Кокурин // Автоматика на транспорте. — 2018. — № 2 (4). — С. 157-166.
KOKURIN, I.M. (2018) Technological and theoretical foundations for the development of intelligent train traffic control systems. 2(4). Automation in transport.
7. Лукьяненко В. А. Моделирование процесса торможения поездов / В. А. Лукьяненко, А. А. Португальская, Д. М. Абдулаева, В. В. Павлюков // Математика, информатика, компьютерные науки, моделирование, образование: сб. науч. тр. научно-практической конференции МИКМ0-2018 и Таврической научной конференции студентов и молодых специалистов по математике и информатике / Под ред. В. А. Лукьяненко. — Симферополь: ИП Корниенко А. А., 2020.
LUKIANENKO, V.A. and PORTUGALSKAYA, A.A. and ABDULAEVA, D.M. and PAVLUKOV, V.V. (2020) Simulation of the train braking process. Simferopol.
8. Науменко Н. Е. Оценка тормозных путей электропоезда при экстренных пневматическом и электропневматическом торможениях / Н. Е. Науменко, И. Ю. Хижа, Е. Г. Богомаз // Техническая механика. — 2016. — 1. — С. 110-117. NAUMENKO, N.E. and KHIZHA I.Y. and BOGOMAZ E.G. (2016) Evaluation of electric train braking paths during emergency pneumatic and electropneumatic braking. 1. Technical Mechanics. Pp. 110-117.
9. Науменко Н. Е. Торможение пассажирского скоростного поезда с учётом работы электромагнитного рельсового тормоза / Н. Е. Науменко, И. Ю. Хижа, Е. Г. Богомаз // Наука и прогресс транспорта. Вестник Днепропетровского национального университета железнодорожного транспорта. — 2009. — Вып. 29. — С. 45-48.
NAUMENKO, N.E. and KHIZHA I.Y. and BOGOMAZ E.G. (2009) Braking of a passenger high-speed train taking into account the operation of an electromagnetic rail brake. 29. Science and progress of transport. Bulletin of the Dnepropetrovsk National University of Railway Transport. Pp. 45-48.
10. Никулочиков П. М. История, состояние и перспективы развития систем автоматического управления поездами метрополитена / П. М. Никулочников // Автоматика на транспорте. — 2016. — 2 (3). — С. 456-473.
NIKULOCHIKOV, P.M. (2016) History, state and prospects of development of automatic control systems for metro trains. 2 (3). Automation on transport. Pp. 456473.
11. Пудовиков О. Е. Моделирование режима регулировочного торможения длинно-составного поезда / О. Е. Пудовиков, С. А. Муров // Мир транспорта. — 2015. — Т.13. — С. 28-33.
PUDOVIKOV, O.E. and MUROV, S.A. (2015) Modeling of the regulation braking mode of a long-component train. 13. The world of transport. Pp. 28-33.
12. Jupyter // © 2020 Project Jupyter. — URL: https://jupyter.org.
13. Matplotlib: Python 2D plotting library. — URL: https://matplotlib.org/3.1.0/ index.html.
14. SciPy.org // Copyright 2008-2019, The SciPy community. — URL: http://www.nbrkomi.ru.