gtld2-diag-scripts/gear transmission/defects/gt-gear-beat.js

78 lines
3.5 KiB
JavaScript
Raw Normal View History

2023-12-10 08:30:52 +03:00
"use strict";
var imp = gtl.import("user-functions.js");
export function defect() {
2023-12-10 09:00:57 +03:00
let frq = imp.FREQ(); //функциональная чатота
let num = 10; //количество отрисованных гармоник
2023-12-10 08:30:52 +03:00
//присваиваем набору гармоник переменную, добавляем гармоники: частота, кол-во (default = 10), цвет, вес.
2023-12-10 09:00:57 +03:00
var spen_lines = spen.add_harms_set(frq, num, 0xff0000f0, 1); //биение шестерни - "синий"
for (let i = 0; i <= num - 1; i++) { spen_lines.harms[i].tolerance = (1 + i) * frq * imp.tolerance() }; //коридор обнаружения гармоник
spen_lines.name = 'Биение шестерни';
2023-12-10 08:30:52 +03:00
2023-12-10 09:00:57 +03:00
var ausp_lines = ausp.add_harms_set(frq, num, 0xff0000f0, 2); //биение шестерни "синий"
for (let i = 0; i <= num - 1; i++) { ausp_lines.harms[i].tolerance = (1 + i) * frq * imp.tolerance() }; //коридор обнаружения гармоник
ausp_lines.name = 'Биение шестерни';
2023-12-10 08:30:52 +03:00
var defect = false;
2023-12-10 09:00:57 +03:00
var spen_signs = []; //массив признаков в спектре огибающей
2023-12-10 08:30:52 +03:00
var ausp_signs = []; //массив признаков в спектре вибрации
var deep = 0; //глубина модуляции ВЧ составляющих
var ampl = 0; //амплитуда составляющих НЧ вибрации
var describe = ''; //описание степени развития дефекта
var result = ''; //результат диагностики
//вывод количества гармоник
//spen.harms_sets[0].get_count(1, 2, 1, true);
//1 - начало отсчета гармоники;
//2 - допуситмое количество пропущенных в ряду;
//3 - количество модулирующих с одной стороны;
//4 - модулирующие с двух сторон (true);
2023-12-10 09:00:57 +03:00
//биение вала
2023-12-10 08:30:52 +03:00
if (
2023-12-10 09:00:57 +03:00
spen.harms_sets[0].get_count(0, 2) >= 3 && spen.harms_sets[0].get_count(0, 2) <= 5 &&
ausp.harms_sets[0].get_count(0, 2) >= 3 && ausp.harms_sets[0].get_count(0, 2) <= 5
2023-12-10 08:30:52 +03:00
) {
defect = true;
for (let i = 0; i <= num - 1; i++) {
if (spen_lines.harms[i].is_present == true) {
deep = imp.mod_factor(spen_lines.harms[i].amplitude, spen_lines.harms[i].base);
spen_signs.push(deep);
2023-12-10 09:00:57 +03:00
gtl.log.info("Биение шестерни. Признаки в ES " + (i + 1) + "Fвр1", deep);
2023-12-10 08:30:52 +03:00
}
}
for (let i = 0; i <= num - 1; i++) {
if (ausp_lines.harms[i].is_present == true) {
ampl = ausp_lines.harms[i].amplitude;
ausp_signs.push(ampl);
2023-12-10 09:00:57 +03:00
gtl.log.info("Биение шестерни. Признаки в AS " + (i + 1) + "Fвр1", ampl);
2023-12-10 08:30:52 +03:00
}
}
}
else
2023-12-10 09:00:57 +03:00
gtl.log.info("Биение шестерни", "Признаков дефекта не обнаружено");
2023-12-10 08:30:52 +03:00
deep = Math.max(...spen_signs) * 100;
switch (true) {
2023-12-10 09:00:57 +03:00
case deep <= 12:
2023-12-10 08:30:52 +03:00
describe = "Слабый";
break;
2023-12-10 09:00:57 +03:00
case deep < 20:
2023-12-10 08:30:52 +03:00
describe = "Средний";
break;
2023-12-10 09:00:57 +03:00
case deep >= 20:
2023-12-10 08:30:52 +03:00
describe = "Сильный";
break;
default:
describe = "None";
};
if (defect == true) { result = "(" + deep + "%; " + describe + ")" } else { result = false };
return result;
};