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

100 lines
5.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 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;
};