diff --git a/gear transmission/defects/gt-gear-beat.js b/gear transmission/defects/gt-gear-beat.js index df58bfc..61f5ed0 100644 --- a/gear transmission/defects/gt-gear-beat.js +++ b/gear transmission/defects/gt-gear-beat.js @@ -3,24 +3,20 @@ var imp = gtl.import("user-functions.js"); export function defect() { - let frq = imp.BPFI(); //функциональная чатота - let num = 5; //количество отрисованных гармоник + let frq = imp.FREQ(); //функциональная чатота + let num = 10; //количество отрисованных гармоник //присваиваем набору гармоник переменную, добавляем гармоники: частота, кол-во (default = 10), цвет, вес. - 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[6].modulate(imp.FREQ(), 2, 0xff923090, 1); //модуляция Fв +/- Fвр "фиолетовый" + 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 = 'Биение шестерни'; - 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 = 'Раковины на внутреннем кольце'; - //добавляем модулирующие гармоники: частота, кол-во, цвет, вес - ausp.harms_sets[2].modulate(imp.FREQ(), 2, 0xff923090, 1); //модуляция Fв +/- Fвр "фиолетовый" + 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 = 'Биение шестерни'; var defect = false; - var spen_signs = []; //массив признаков в спектрк огибающей + var spen_signs = []; //массив признаков в спектре огибающей var ausp_signs = []; //массив признаков в спектре вибрации var deep = 0; //глубина модуляции ВЧ составляющих var ampl = 0; //амплитуда составляющих НЧ вибрации @@ -34,17 +30,17 @@ export function defect() { //3 - количество модулирующих с одной стороны; //4 - модулирующие с двух сторон (true); - //раковины на внутреннем кольце + //биение вала if ( - spen.harms_sets[6].get_count(0, 0, 1) >= 3 && - ausp.harms_sets[2].get_count(0, 1, 1) >= 3 + 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 ) { 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в +/- Fвр", deep); + gtl.log.info("Биение шестерни. Признаки в ES " + (i + 1) + "Fвр1", deep); } } @@ -52,22 +48,22 @@ 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в +/- Fвр", ampl); + gtl.log.info("Биение шестерни. Признаки в AS " + (i + 1) + "Fвр1", ampl); } } } else - gtl.log.info("Раковины на внутреннем кольце", "Признаков дефекта не обнаружено"); + gtl.log.info("Биение шестерни", "Признаков дефекта не обнаружено"); deep = Math.max(...spen_signs) * 100; switch (true) { - case deep <= 4: + case deep <= 12: describe = "Слабый"; break; - case deep < 8: + case deep < 20: describe = "Средний"; break; - case deep >= 8: + case deep >= 20: describe = "Сильный"; break; default: diff --git a/gear transmission/defects/gt-gear-fault.js b/gear transmission/defects/gt-gear-fault.js new file mode 100644 index 0000000..5cb02f5 --- /dev/null +++ b/gear transmission/defects/gt-gear-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, 0xff0000f0, 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вр "зелёный" + + 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 = 'Дефект зубьев шестерни'; + //добавляем модулирующие гармоники: частота, кол-во, цвет, вес + spen.harms_sets[4].modulate(imp.FREQ(), 2, 0xff009030, 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[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 + ) { + 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); + } + } + + 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) + "Fвр1", 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/defects/gt-wheel-beat.js b/gear transmission/defects/gt-wheel-beat.js new file mode 100644 index 0000000..95393d5 --- /dev/null +++ b/gear transmission/defects/gt-wheel-beat.js @@ -0,0 +1,77 @@ +"use strict"; + +var imp = gtl.import("user-functions.js"); + +export function defect() { + let frq = imp.GTF2(); //функциональная чатота + let num = 10; //количество отрисованных гармоник + + //присваиваем набору гармоник переменную, добавляем гармоники: частота, кол-во (default = 10), цвет, вес. + 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 = 'Биение зубчатого колеса'; + + 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 = 'Биение зубчатого колеса'; + + 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[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 + ) { + 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); + } + } + + 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) + "Fвр1", 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 cbb4a92..d329fba 100644 --- a/gear transmission/gear transmission.js +++ b/gear transmission/gear transmission.js @@ -7,7 +7,7 @@ var point = gtl.options.point; var imp = gtl.import("user-functions.js"); var gear = gtl.import("gt-gear-beat.js"); -//var in0 = gtl.import("rb-inring-tention.js"); +var wheel = 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"); @@ -243,7 +243,7 @@ function diagnose() { let def = {}; //var indx = 0; def["Биение шестерни"] = gear.defect(); //indx (spen = 0, ausp = 0) - //def["Неоднородный радиальный натяг"] = in0.defect(); //indx (spen = 1, ausp = X) + def["Биение зубчатого колеса"] = wheel.defect(); //indx (spen = 1, ausp = X) //def["Износ наружного кольца"] = out0.defect(); //indx (spen = 2, ausp = X) //def["Перекос наружного кольца"] = out1.defect(); //indx (spen = 3, ausp = X) //def["Раковины на наружном кольце"] = out2.defect(); //indx (spen = 4, ausp = 1)