gtld2-diag-scripts/rolling bearing/defects/rb-separator-wear.js

64 lines
3.0 KiB
JavaScript
Raw Permalink 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.FTF(); //функциональная чатота
let num = 10; //количество отрисованных гармоник
//присваиваем набору гармоник переменную, добавляем гармоники: частота, кол-во (default = 10), цвет, вес.
var spen_set = spen.add_harms_set(frq, num, 0xffff0000, 2); //износ тел качения и сепаратора "красный"
for (let i = 0; i <= num - 1; i++) { spen_set.harms[i].tolerance = (1 + i) * frq * imp.tolerance() };
spen_set.name = 'Износ тел качения и сепаратора';
var spen_index = spen.index_of_harms_set(spen_set); //индекс набора гармоник в спектре огибающей
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[spen_index].get_count(0, 1) >= 1) {
defect = true;
for (let i = 0; i <= num - 1; i++) {
if (spen_set.harms[i].is_present == true) {
deep = imp.mod_factor(spen_set.harms[i].amplitude, spen_set.harms[i].base);
spen_signs.push(deep);
gtl.log.info("Износ тел качения и сепаратора. Признаки в ES " + (i + 1) + "Fс", deep);
}
}
}
else
gtl.log.info("Износ тел качения и сепаратора", "Признаков дефекта не обнаружено");
deep = Math.max(...spen_signs) * 100;
switch (true) {
case deep <= 5:
describe = "Слабый";
break;
case deep < 10:
describe = "Средний";
break;
case deep >= 10:
describe = "Сильный";
break;
default:
describe = "None";
};
if (defect == true) { result = "(" + deep + "%; " + describe + ")" } else { result = false };
return result;
};