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

78 lines
3.6 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

"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, 0xff009000, 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, 0xff009000, 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[1].get_count(0, 2) >= 3 && spen.harms_sets[1].get_count(0, 2) <= 5 &&
ausp.harms_sets[1].get_count(0, 2) >= 3 && ausp.harms_sets[1].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вр2", 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вр2", 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;
};