"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; };