Пояснительная записка (1218768), страница 6
Текст из файла (страница 6)
for i=1:1:length(Test1)
Poz(i) = Test1(i,k);
Dsl(i) = Test2(i,k);
End
В самом начале происходит считывание необходимых документов в матрицы Test1, Test2, после чего в массивы Poz, Dsl сохраняются те колонки указанных матриц, которые содержат значения исследуемых параметров;
– фиксирование позиций, на которых был совершен переход, с определением переходов с высокой позиции на низкую и наоборот (листинг 2);
Листинг 2 – Регистрация переключений позиций контроллера
for j=1:1:length(Poz)-1
if Poz(j)~=Poz(j+1)
if Poz(j)>Poz(j+1)
speed_down(j+1) = 1;
else
speed_up(j+1) = 1;
end
end
end .
В случае, если текущее значение ячекий массива Poz отличается от следующего, регистрируется переключение контроллера. Если текущая позиция больше следующей, то в соответствующую ячейку массива speed_down записывается 1. Если же позиция больше – 1 заносится в ячейку массива speed_up.
– формирование массивов с номерами позиций начала и конца интервалов, в которые входит более 5-ти значений количества оборотов и которые содержат информацию об одной из исследуемых позиций контроллера (с 9-ой по 15-ую) (листинг 3).
Листинг 3 – Сохранение начала и конца отрезков данных
for j=start_up:1:length(speed_up)
if (Poz(j)>8)&&(Poz(j)<16)
if (j <= length(speed_down) && speed_down(j) == 1)
checkUp = 0;
end
if (speed_up(j) == 1)
checkUp = 1;
k = k + 1;
speed_up1(k) = j;
speed_up2(k) = j;
else
if( checkUp == 1 )
speed_up2(k) = j;
end end end end
Второй модуль выполняет кластеризацию данных с целью отслеживания положения центров кластеров. Как и в случае, описанном выше, алгоритм работает лишь с определенным набором файлов, данные из которых необходимо преобразовывать к рабочему виду.
Алгоритм работает на основании информации из трех файлов: «PozKontS», «Rpm_diesel» и «Power_generator». Исследуются значения количества оборотов дизеля и соответствующая им мощность для позиций контроллера с 11-ой по 15-ую. В этом модуле также присутствует необходимость разбиения входной информации на интервалы, содержащие данные только для упомянутых позиций контроллера. Помимо этого, имеется потребность в ведении учета появившихся в файле позиций контроллера для установления итого количества кластеров, на которое необходимо разбить всю общность исследуемых данных (листинг 4).
Листинг 4 – Регистрация факта появления позиции среди кластеризуемых данных
for i=1:1:length(Poz)
if Poz(i) == 15
clusters = clusters +1;
startPosition(5,3) = 1;
break;
end
end
Если необходимая позиция имеется в анализируемом файле, то текущее количество кластеров в переменной clusters увеличивается, в в соответствующую ячейку массива со стартовыми позициями для кластеризации startPosition заносится 1.
Помимо этого, следует отдельно формировать итоговый массив, подвергаемый кластеризации, так как каждый отдельный файл несет информацию только об одном параметре тепловоза, а кластеризовать данные следует по двум параметрам (листинг 5).
Листинг 5 – Формирования массива данных для кластеризации
Pow1 = Pow1';
for i=1:1:length(Pow1)
Pow1(i,2) = Pow1(i,1);
Pow1(i,1) = Dsl1(i);
end
k = 1;
SP_length = size(startPosition, 1);
for i=1:1:SP_length
if startPosition(i,3) ~= 0
startPositions(k,1) = startPosition(i,1);
startPositions(k,2) = startPosition(i,2);
k = k + 1;
end
end
Третий модуль работает с тремя файлами: «Longitude.txt», «Latitude.txt» и «Speed.txt». Обработка входных данных для этого модуля включает в себя только начальное формирование массивов данных, которое никак не отличается от того же процесса, описанного для первого модуля посредством листинга 1.
3.2 Оценка времени перерегулирования дизельного двигателя
Одним из основных показателей исправности дизельного двигателя является количество отсчетов, которое требуется ему для изменения числа оборотов в соответствии с изменением позиции контроллера. Существуют нормы, определенные для каждой модели тепловоза, учитывающие как особенности их технического устройства, так и условия, в которых конкретный тип тепловоза эксплуатируется. Однако, зачастую описанные нормы имеют невысокую точность, поэтому было предложено вести сбор статистической информации о времени, которое требуется дизельному двигателю для перерегулирования, и на основе получаемых данных определять норму, а также отслеживать долгосрочные отклонения новых значений от выделенной нормы.
Описанные долгосрочные отклонения являются критерием, отражающим необходимость диагностики двигателя. Также, при анализе данных следует учитывать и кратковременные резкие отклонения, однако, они обычно объясняются спецификой работы автоматики и не несут в себе объективной информации о состоянии двигателя.
Процесс перерегулирования при переход дизельного двигателя с 13-ой позиции контроллера на 12-ую отражен на рисунке 12.
Задача определения временного интервала перерегулирования сводится к выявлению того отсчета, за которым функция принимает относительно стабильные значения. В таком случае, приемлемым для ее решения является метод построения доверительного интервала, при достижении функцией которого считается, что она стабилизировалась.
Рисунок 12 – График изменения количества оборотов
дизельного двигателя при изменении позиции контроллера:
по оси абсцисс откладывается количество отсчетов,
а по оси ординат – число оборотов дизеля
Алгоритм построения доверительного интервала работает с отрезками значений количества оборотов, соответствующих определенной позиции котроллера в течение некоторого промежутка времени. Подобные входные данные, с точки зрения статистики, являются выборками из генеральных совокупностей, вид распределения которых неизвестен.
В виду того, что нельзя определить математическое ожидание генеральной совокупности значений оборотов дизеля для каждой позиции контроллера, а также неизвестна дисперсия, предпринято решение для построения доверительного интервала воспользоваться t-распределением Стьюдента, позволяющим строить доверительные интервалы для генеральной совокупности, используя лишь значения выборочного среднего
(1) и выборочной дисперсии
(2).
Доверительный интервал строится на основании (7):
где
.
Для каждого выделенного интервала разработанный алгоритм выполняет следующую последовательность действий:
– подсчитывает значение среднего арифметического (листинг 6);
Листинг 6 – Вычисление среднего арифметического для отрезка данных
for j=1:1:length(perehod1)
for h = perehod1(j):1:perehod2(j)
sum = sum + Dsl(h);
count = count + 1;
end
Avrg(j) = sum/count;
sum = 0;
count = 0;
end
– определяется значение выборочной дисперсии, на основе которой получаются величины, необходимые для определения границ интервала (листинг 7);
Листинг 7 – Вычисление выборочной дисперсии
for j=1:1:length(perehod1)
for h = perehod1(j):1:perehod2(j)
sum = sum + (Dsl(h) - Avrg(k))^2;
count = count + 1;
end
Sigma(j) = sqrt(sum/count);
Sigma(j) = Sigma(j)/(sqrt(count));
Sigma(j) = Sigma(j)*tinv(0.975, count-1);
sum = 0;
count = 0;
k = k + 1;
end
– вычисляются границы доверительного интервала (листинг 8);
Листинг 8 – Определение границ доверительного интервала
for j=1:1:length(Avrg)
Criteryi1(j) = Avrg(j) - Sigma(j);
Criteryi2(j) = Avrg(j) + Sigma(j);
End
После того, как для каждого отрезка значений построен свой доверительный интервал, необходимо определять количество отсчетов (временные промежутки), за которое значения функции достигли его. Для этого в цикле отдельно рассматривается каждый отрезок данных; содержащиеся в нем значения количества оборотов сравниваются с полученными для текущего отрезка границами интервала; с момента попадания одного из значений в этот интервал, считается, что функция стабилизировалась (листинг 9).
Листинг 9 – Проверка попадания значения функции в интервал
for j=1:1:length(perehod1)
for h = perehod1(j):1:perehod2(j)
if (Poz(h) == 9)
if ~((Dsl(h) < Criteryi2(k)) && (Dsl(h) > Criteryi1(k)))
Poz_9(k) = Poz_9(k)+1;
else
Poz_9(k) = Poz_9(k)+1;
break;
end
else
...
Для повышения точности получаемых временных отрезков, их подсчет останавливается не сразу после попадания текущего значения в доверительный интервал, а после перехода алгоритма на следующее значение (далее будет развиваться в возможность фиксирования резких колебаний при перерегулировании).
Полученные временные отрезки для конкретных позиций контроллера сохраняются в отдельные массивы (один – для набора скорости, другой – для сброса) для их дальнейшего использования. Одинаковые элементы в получаемых массивах удаляются с предварительным сохранением их количества. Таким образом, формируются массивы количества отсчетов, необходимых для перерегулирования дизельного двигателя тепловоза, в которых помимо, непосредственно, числа отсчетов, также хранится и количество их появления. Это позволяет определять среднее время перерегулирования двигателя для определенных позиций контроллера, а также учитывать режим работы двигателя: при наборе скорости или же сбросе.
Сохранение полученных массивов данных происходит в файл MS Excel.
На основе статистических данных, полученных в результате экспериментов, установлена приемлемость описанной статистики для построения доверительного интервала. Эксперименты заключались в применении описанного метода построения доверительного интервала к уже имеющимся значениям исследуемых параметров машины. Результирующие графики и позволили сделать вывод о пригодности получаемого доверительного интервала (рисунок 13).
Рисунок 13 – Построенный доверительный интервал:
по оси абсцисс откладывается количество отсчетов,
а по оси ординат – число оборотов дизеля
Из графика следует, что посредством полученного доверительного интервала можно определить момент окончания перехода дизеля на новый режим работы, а также качество дальнейшей его работы в установившемся режиме (зарегистрировать резкие колебания значений оборотов дизеля).
Исходя из свойств выбранной статистики, наиболее точные и качественные результаты дают выборки, включающие около
элементов.
Чем больше время перерегулирования, тем больше вероятность того, что в скором времени дизельный двигатель тепловоза выйдет из строя. Своевременная реакция на процесс деградации оборудования позволит в срок предпринять меры, необходимые для улучшения состояния двигателя или же предотвращения его ухудшения.
3.3 Анализ данных по реализации мощности ДГУ
Не менее важным показателем качества работы механики локомотива является соответствие значения мощности генератора и количества оборотов вала дизельного двигателя. Как и в случае с временными интервалами перерегулирования, существуют нормы, ставящие в соответствие упомянутые значения мощности и оборотов, точность которых достаточно высока. Возникает схожая с предыдущем пунктом задача отслеживания процесса деградации механики, посредством отслеживания положения максимально плотного скопления точек данных, координатами которых являются исследуемые параметры.
Данные о зависимости мощности дизельного двигателя и текущей позиции контроллера (количества оборотов) удобнее всего представлять в виде, представленном на рисунке 14.
Рисунок 14 – Реализация мощности на различных оборотах
дизельного двигателя
Как видно на графике, каждое скопление точек данных соответствует определенной позиции контроллера. Это позволяет рассматривать сформулированную задачу, как задачу кластеризации данных. В ходе исследования рассматриваются значения мощности и оборотов, которые соответствуют позициям контроллера с 11 по 15. Таким образом, алгоритм работы второго модуля строится на разделении входных данных на определенное количество кластеров (от 1 до 5), положение центров которых и будет использоваться при анализе качества работы оборудования.
В качестве алгоритма кластеризации данных используется метод k-means, в котором критерием близости точек данных друг другу является евклидово расстояние (8).
Указанный метод кластеризации основывается на том, что количество кластеров известно заранее. Центры кластеров на первой итерации в общем случае определяются случайно, что приводит к тому, что всякий новый раз метод, при работе с одними и теми же данными, будет выдавать новый результат. Специфика задачи подразумевает необходимость получения стабильного результата для одного и того же набора данных. Потому следует заранее определить координаты центров кластеров, с которых начнется итерационный процесс (листинг 10).















