gtld2-diag-scripts/sliding bearing/sbDefs.js

100 lines
5.0 KiB
JavaScript
Raw Permalink Normal View History

2024-06-20 15:09:29 +03:00
"use strict";
var imp = gtl.import("user-functions.js");
export function defects() {
let frq = imp.FREQ(); //функциональная чатота
let num = 20; //количество отрисованных гармоник
//строим гармонические ряды на SPEN[A].
var spen_set = spen.add_harms_set(frq, num, 0xff990090, 1); //"фиолетовый"
spen_set.name = 'Частота вращения';
var spen_index = spen.index_of_harms_set(spen_set); //индекс набора гармоник в спектре огибающей
var spen_set1 = spen.add_harms_set(frq / 2, num, 0x30D5C8, 1); //"бирюзовый"
spen_set1.name = 'Автоколебания';
var spen_index1 = spen.index_of_harms_set(spen_set1); //индекс набора гармоник в спектре огибающей
var spen_set2 = spen.add_harms_set(frq / 3, num, 0x34C924, 1); //"Вердепомовый"
spen_set2.name = 'Автоколебания (треть)';
var spen_index2 = spen.index_of_harms_set(spen_set2); //индекс набора гармоник в спектре огибающей
//строим гармонические ряды на AUSP[A].
var ausp_set = ausp.add_harms_set(frq, num, 0xff990090, 2); //"фиолетовый"
ausp_set.name = 'Частота вращения';
var ausp_index = ausp.index_of_harms_set(ausp_set); //индекс набора гармоник в спектре вибрации
var ausp_set1 = ausp.add_harms_set(frq / 2, num, 0x30D5C8, 1); //"бирюзовый"
ausp_set1.name = 'Автоколебания';
var ausp_index1 = ausp.index_of_harms_set(ausp_set1); //индекс набора гармоник в спектре огибающей
var ausp_set2 = ausp.add_harms_set(frq / 3, num, 0x34C924, 1); //"Вердепомовый"
ausp_set2.name = 'Автоколебания (треть)';
var ausp_index2 = ausp.index_of_harms_set(ausp_set2); //индекс набора гармоник в спектре огибающей
//строим гармонические ряды на AUSP[V].
var auspv_set = ausp_v.add_harms_set(frq, num, 0xff990090, 2); //"фиолетовый"
auspv_set.name = 'Частота вращения';
var auspv_index = ausp_v.index_of_harms_set(auspv_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, 0, 1) >= 3 &&
ausp.harms_sets[ausp_index].get_count(0, 1, 1) >= 3
) {
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в +/- 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в +/- Fвр", ampl);
}
}
}
else
gtl.log.info("Дефекты подшипника скольжения", "Признаков дефекта не обнаружено");
deep = Math.max(...spen_signs) * 100;
switch (true) {
case deep <= 4:
describe = "Слабый";
break;
case deep < 8:
describe = "Средний";
break;
case deep >= 8:
describe = "Сильный";
break;
default:
describe = "None";
};
if (defect == true) { result = "(" + deep + "%; " + describe + ")" } else { result = false };
return result;
};