diff --git a/gear transmission/defects/gt-gear-fault.js b/gear transmission/defects/gt-gear-fault.js index 5cb02f5..9353334 100644 --- a/gear transmission/defects/gt-gear-fault.js +++ b/gear transmission/defects/gt-gear-fault.js @@ -7,17 +7,17 @@ export function defect() { let num = 5; //количество отрисованных гармоник //присваиваем набору гармоник переменную, добавляем гармоники: частота, кол-во (default = 10), цвет, вес. - var spen_lines = spen.add_harms_set(frq, num, 0xff0000f0, 1); //дефект зубьев шестерни - "синий" + var spen_lines = spen.add_harms_set(frq, num, 0xff990090, 1); //дефект зубьев шестерни for (let i = 0; i <= num - 1; i++) { spen_lines.harms[i].tolerance = (1 + i) * frq * imp.tolerance() }; //коридор обнаружения гармоник spen_lines.name = 'Дефект зубьев шестерни'; //добавляем модулирующие гармоники: частота, кол-во, цвет, вес - spen.harms_sets[4].modulate(imp.FREQ(), 2, 0xff009030, 1); //модуляция Fz +/- Fвр "зелёный" + spen.harms_sets[2].modulate(imp.FREQ(), 2, 0xff0000f0, 1); //модуляция Fz +/- Fвр - var ausp_lines = ausp.add_harms_set(frq, num, 0xff0000f0, 2); //дефект зубьев шестерни "синий" + var ausp_lines = ausp.add_harms_set(frq, num, 0xff990090, 2); //дефект зубьев шестерни for (let i = 0; i <= num - 1; i++) { ausp_lines.harms[i].tolerance = (1 + i) * frq * imp.tolerance() }; //коридор обнаружения гармоник ausp_lines.name = 'Дефект зубьев шестерни'; //добавляем модулирующие гармоники: частота, кол-во, цвет, вес - spen.harms_sets[4].modulate(imp.FREQ(), 2, 0xff009030, 1); //модуляция Fz +/- Fвр "зелёный" + spen.harms_sets[2].modulate(imp.FREQ(), 2, 0xff0000f0, 1); //модуляция Fz +/- Fвр var defect = false; var spen_signs = []; //массив признаков в спектре огибающей @@ -36,15 +36,15 @@ export function defect() { //биение вала if ( - 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 + spen.harms_sets[2].get_count(0, 1, 1) >= 3 && + ausp.harms_sets[2].get_count(0, 1, 1) >= 3 ) { 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); - gtl.log.info("Дефект зубьев шестерни. Признаки в ES " + (i + 1) + "Fвр1", deep); + gtl.log.info("Дефект зубьев шестерни. Признаки в ES " + (i + 1) + "Fz", deep); } } @@ -52,7 +52,7 @@ export function defect() { if (ausp_lines.harms[i].is_present == true) { ampl = ausp_lines.harms[i].amplitude; ausp_signs.push(ampl); - gtl.log.info("Дефект зубьев шестерни. Признаки в AS " + (i + 1) + "Fвр1", ampl); + gtl.log.info("Дефект зубьев шестерни. Признаки в AS " + (i + 1) + "Fz", ampl); } } } diff --git a/gear transmission/defects/gt-wheel-beat.js b/gear transmission/defects/gt-wheel-beat.js index 36db430..20039f1 100644 --- a/gear transmission/defects/gt-wheel-beat.js +++ b/gear transmission/defects/gt-wheel-beat.js @@ -40,7 +40,7 @@ export function defect() { 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); - gtl.log.info("Биение зубчатого колеса. Признаки в ES " + (i + 1) + "Fвр1", deep); + gtl.log.info("Биение зубчатого колеса. Признаки в ES " + (i + 1) + "Fвр2", deep); } } @@ -48,7 +48,7 @@ export function defect() { if (ausp_lines.harms[i].is_present == true) { ampl = ausp_lines.harms[i].amplitude; ausp_signs.push(ampl); - gtl.log.info("Биение зубчатого колеса. Признаки в AS " + (i + 1) + "Fвр1", ampl); + gtl.log.info("Биение зубчатого колеса. Признаки в AS " + (i + 1) + "Fвр2", ampl); } } } diff --git a/gear transmission/defects/gt-wheel-fault.js b/gear transmission/defects/gt-wheel-fault.js new file mode 100644 index 0000000..f55ba64 --- /dev/null +++ b/gear transmission/defects/gt-wheel-fault.js @@ -0,0 +1,81 @@ +"use strict"; + +var imp = gtl.import("user-functions.js"); + +export function defect() { + let frq = imp.GTFZ(); //функциональная чатота + let num = 5; //количество отрисованных гармоник + + //присваиваем набору гармоник переменную, добавляем гармоники: частота, кол-во (default = 10), цвет, вес. + var spen_lines = spen.add_harms_set(frq, num, 0xff994000, 1); //дефект зубьев зубчатого колеса + for (let i = 0; i <= num - 1; i++) { spen_lines.harms[i].tolerance = (1 + i) * frq * imp.tolerance() }; //коридор обнаружения гармоник + spen_lines.name = 'Дефект зубьев зубчатого колеса'; + //добавляем модулирующие гармоники: частота, кол-во, цвет, вес + spen.harms_sets[3].modulate(imp.GTF2(), 2, 0xff009000, 1); //модуляция Fz +/- Fвр + + var ausp_lines = ausp.add_harms_set(frq, num, 0xff994000, 2); //дефект зубьев зубчатого колеса + for (let i = 0; i <= num - 1; i++) { ausp_lines.harms[i].tolerance = (1 + i) * frq * imp.tolerance() }; //коридор обнаружения гармоник + ausp_lines.name = 'Дефект зубьев зубчатого колеса'; + //добавляем модулирующие гармоники: частота, кол-во, цвет, вес + spen.harms_sets[3].modulate(imp.GTF2(), 2, 0xff009000, 1); //модуляция Fz +/- Fвр + + var defect = false; + var spen_signs = []; //массив признаков в спектре огибающей + 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); + + //биение вала + if ( + spen.harms_sets[3].get_count(0, 1, 1) >= 3 && + ausp.harms_sets[3].get_count(0, 1, 1) >= 3 + ) { + 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); + gtl.log.info("Дефект зубьев зубчатого колеса. Признаки в ES " + (i + 1) + "Fz", deep); + } + } + + 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); + gtl.log.info("Дефект зубьев зубчатого колеса. Признаки в AS " + (i + 1) + "Fz", ampl); + } + } + } + else + gtl.log.info("Дефект зубьев зубчатого колеса", "Признаков дефекта не обнаружено"); + + deep = Math.max(...spen_signs) * 100; + switch (true) { + case deep <= 12: + describe = "Слабый"; + break; + case deep < 20: + describe = "Средний"; + break; + case deep >= 20: + describe = "Сильный"; + break; + default: + describe = "None"; + }; + + if (defect == true) { result = "(" + deep + "%; " + describe + ")" } else { result = false }; + + return result; +}; + diff --git a/gear transmission/gear transmission.js b/gear transmission/gear transmission.js index 1dfc80a..35dec9d 100644 --- a/gear transmission/gear transmission.js +++ b/gear transmission/gear transmission.js @@ -8,13 +8,8 @@ var imp = gtl.import("user-functions.js"); var gear0 = gtl.import("gt-gear-beat.js"); var wheel0 = gtl.import("gt-wheel-beat.js"); -//var out0 = gtl.import("rb-outring-wear.js"); -//var out1 = gtl.import("rb-outring-bias.js"); -//var out2 = gtl.import("rb-outring-fault.js"); -//var in1 = gtl.import("rb-inring-wear.js"); -//var in2 = gtl.import("rb-inring-fault.js"); -//var sep = gtl.import("rb-separator-wear.js"); -//var rol = gtl.import("rb-rollers-fault.js"); +var gear1 = gtl.import("gt-gear-fault.js"); +var wheel1 = gtl.import("gt-wheel-fault.js"); //настройки для датчика оборотов var filter_freq = gtl.add_filter_iir(gtl.analog_inputs[record.tachoOptions.tachoChannel]); //объявление переменной фильтра @@ -244,13 +239,8 @@ function diagnose() { //var indx = 0; def["Биение шестерни"] = gear0.defect(); //indx (spen = 0, ausp = 0) def["Биение зубчатого колеса"] = wheel0.defect(); //indx (spen = 1, ausp = 1) - //def["Износ наружного кольца"] = out0.defect(); //indx (spen = 2, ausp = X) - //def["Перекос наружного кольца"] = out1.defect(); //indx (spen = 3, ausp = X) - //def["Раковины на наружном кольце"] = out2.defect(); //indx (spen = 4, ausp = 1) - //def["Износ внутреннего кольца"] = in1.defect(); //indx (spen = 5, ausp = X) - //def["Раковины на внутреннем кольце"] = in2.defect(); //indx (spen = 6, ausp = 2) - //def["Износ тел качения и сепаратора"] = sep.defect(); //indx (spen = 7, ausp = X) - //def["Раковины и сколы на телах качения"] = rol.defect(); //indx (spen = 8, ausp = 3) + def["Дефект зубьев шестерни"] = gear1.defect(); //indx (spen = 2, ausp = 2) + def["Дефект зубьев зубчатого колеса"] = wheel1.defect(); //indx (spen = 3, ausp = 3) var res = { RMSA: rms_spen.value,