add wheel

main
aleksey_k 2023-12-10 15:00:57 +09:00
parent 955c004a28
commit 606834f946
4 changed files with 178 additions and 24 deletions

View File

@ -3,24 +3,20 @@
var imp = gtl.import("user-functions.js"); var imp = gtl.import("user-functions.js");
export function defect() { export function defect() {
let frq = imp.BPFI(); //функциональная чатота let frq = imp.FREQ(); //функциональная чатота
let num = 5; //количество отрисованных гармоник let num = 10; //количество отрисованных гармоник
//присваиваем набору гармоник переменную, добавляем гармоники: частота, кол-во (default = 10), цвет, вес. //присваиваем набору гармоник переменную, добавляем гармоники: частота, кол-во (default = 10), цвет, вес.
var spen_lines = spen.add_harms_set(frq, num, 0xff990090, 1); //раковины на внутреннем кольце "фиолетовый" 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() }; for (let i = 0; i <= num - 1; i++) { spen_lines.harms[i].tolerance = (1 + i) * frq * imp.tolerance() }; //коридор обнаружения гармоник
spen_lines.name = 'Раковины на внутреннем кольце'; spen_lines.name = 'Биение шестерни';
//добавляем модулирующие гармоники: частота, кол-во, цвет, вес
spen.harms_sets[6].modulate(imp.FREQ(), 2, 0xff923090, 1); //модуляция Fв +/- Fвр "фиолетовый"
var ausp_lines = ausp.add_harms_set(frq, num, 0xff990090, 2); //раковины на внутреннем кольце "фиолетовый" 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() }; for (let i = 0; i <= num - 1; i++) { ausp_lines.harms[i].tolerance = (1 + i) * frq * imp.tolerance() }; //коридор обнаружения гармоник
ausp_lines.name = 'Раковины на внутреннем кольце'; ausp_lines.name = 'Биение шестерни';
//добавляем модулирующие гармоники: частота, кол-во, цвет, вес
ausp.harms_sets[2].modulate(imp.FREQ(), 2, 0xff923090, 1); //модуляция Fв +/- Fвр "фиолетовый"
var defect = false; var defect = false;
var spen_signs = []; //массив признаков в спектрк огибающей var spen_signs = []; //массив признаков в спектре огибающей
var ausp_signs = []; //массив признаков в спектре вибрации var ausp_signs = []; //массив признаков в спектре вибрации
var deep = 0; //глубина модуляции ВЧ составляющих var deep = 0; //глубина модуляции ВЧ составляющих
var ampl = 0; //амплитуда составляющих НЧ вибрации var ampl = 0; //амплитуда составляющих НЧ вибрации
@ -34,17 +30,17 @@ export function defect() {
//3 - количество модулирующих с одной стороны; //3 - количество модулирующих с одной стороны;
//4 - модулирующие с двух сторон (true); //4 - модулирующие с двух сторон (true);
//раковины на внутреннем кольце //биение вала
if ( if (
spen.harms_sets[6].get_count(0, 0, 1) >= 3 && spen.harms_sets[0].get_count(0, 2) >= 3 && spen.harms_sets[0].get_count(0, 2) <= 5 &&
ausp.harms_sets[2].get_count(0, 1, 1) >= 3 ausp.harms_sets[0].get_count(0, 2) >= 3 && ausp.harms_sets[0].get_count(0, 2) <= 5
) { ) {
defect = true; defect = true;
for (let i = 0; i <= num - 1; i++) { for (let i = 0; i <= num - 1; i++) {
if (spen_lines.harms[i].is_present == true) { if (spen_lines.harms[i].is_present == true) {
deep = imp.mod_factor(spen_lines.harms[i].amplitude, spen_lines.harms[i].base); deep = imp.mod_factor(spen_lines.harms[i].amplitude, spen_lines.harms[i].base);
spen_signs.push(deep); 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) { if (ausp_lines.harms[i].is_present == true) {
ampl = ausp_lines.harms[i].amplitude; ampl = ausp_lines.harms[i].amplitude;
ausp_signs.push(ampl); ausp_signs.push(ampl);
gtl.log.info("Раковины на внутреннем кольце. Признаки в AS " + (i + 1) + "Fв +/- Fвр", ampl); gtl.log.info("Биение шестерни. Признаки в AS " + (i + 1) + "Fвр1", ampl);
} }
} }
} }
else else
gtl.log.info("Раковины на внутреннем кольце", "Признаков дефекта не обнаружено"); gtl.log.info("Биение шестерни", "Признаков дефекта не обнаружено");
deep = Math.max(...spen_signs) * 100; deep = Math.max(...spen_signs) * 100;
switch (true) { switch (true) {
case deep <= 4: case deep <= 12:
describe = "Слабый"; describe = "Слабый";
break; break;
case deep < 8: case deep < 20:
describe = "Средний"; describe = "Средний";
break; break;
case deep >= 8: case deep >= 20:
describe = "Сильный"; describe = "Сильный";
break; break;
default: default:

View File

@ -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;
};

View File

@ -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;
};

View File

@ -7,7 +7,7 @@ var point = gtl.options.point;
var imp = gtl.import("user-functions.js"); var imp = gtl.import("user-functions.js");
var gear = gtl.import("gt-gear-beat.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 out0 = gtl.import("rb-outring-wear.js");
//var out1 = gtl.import("rb-outring-bias.js"); //var out1 = gtl.import("rb-outring-bias.js");
//var out2 = gtl.import("rb-outring-fault.js"); //var out2 = gtl.import("rb-outring-fault.js");
@ -243,7 +243,7 @@ function diagnose() {
let def = {}; let def = {};
//var indx = 0; //var indx = 0;
def["Биение шестерни"] = gear.defect(); //indx (spen = 0, ausp = 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["Износ наружного кольца"] = out0.defect(); //indx (spen = 2, ausp = X)
//def["Перекос наружного кольца"] = out1.defect(); //indx (spen = 3, ausp = X) //def["Перекос наружного кольца"] = out1.defect(); //indx (spen = 3, ausp = X)
//def["Раковины на наружном кольце"] = out2.defect(); //indx (spen = 4, ausp = 1) //def["Раковины на наружном кольце"] = out2.defect(); //indx (spen = 4, ausp = 1)