gtld2-diag-scripts/rolling bearing/defects/rb-outring-fault.js

84 lines
4.3 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.BPFO(); //функциональная чатота
let num = 6; //количество отрисованных гармоник
//присваиваем набору гармоник переменную, добавляем гармоники: частота, кол-во (default = 10), цвет, вес.
var spen_set = spen.add_harms_set(frq, num, 0xff009000, 1); //раковины на наружном кольце "зелёный"
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); //индекс набора гармоник в спектре огибающей
//добавляем модулирующие гармоники: частота, кол-во, цвет, вес
spen.harms_sets[spen_index].modulate(imp.FTF(), 2, 0xff009030, 1); //модуляция Fн +/- Fс "зелёный"
var ausp_set = ausp.add_harms_set(frq, num, 0xff009000, 2); //раковины на наружном кольце "зелёный"
for (let i = 0; i <= num - 1; i++) { ausp_set.harms[i].tolerance = (1 + i) * frq * imp.tolerance() };
ausp_set.name = 'Раковины на наружном кольце';
var ausp_index = ausp.index_of_harms_set(ausp_set); //индекс набора гармоник в спектре вибрации
//добавляем модулирующие гармоники: частота, кол-во, цвет, вес
ausp.harms_sets[ausp_index].modulate(imp.FTF(), 2, 0xff009030, 1); //модуляция Fн +/- 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[spen_index].get_count(0, 1) >= 5 &&
ausp.harms_sets[ausp_index].get_count(0, 3) >= 5
) {
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);
}
}
for (let i = 0; i <= num - 1; i++) {
if (ausp_set.harms[i].is_present == true) {
ampl = ausp_set.harms[i].amplitude;
ausp_signs.push(ampl);
gtl.log.info("Раковины на наружном кольце. Признаки в AS " + (i + 1) + "Fн", ampl);
}
}
}
else
gtl.log.info("Раковины на наружном кольце", "Признаков дефекта не обнаружено");
deep = Math.max(...spen_signs) * 100;
switch (true) {
case deep <= 7:
describe = "Слабый";
break;
case deep < 13:
describe = "Средний";
break;
case deep >= 13:
describe = "Сильный";
break;
default:
describe = "None";
};
if (defect == true) { result = "(" + deep + "%; " + describe + ")" } else { result = false };
return result;
};