64 lines
3.0 KiB
JavaScript
64 lines
3.0 KiB
JavaScript
"use strict";
|
||
|
||
var imp = gtl.import("user-functions.js");
|
||
|
||
export function defect() {
|
||
let frq = imp.FREQ(); //функциональная чатота
|
||
let num = 10; //количество отрисованных гармоник
|
||
|
||
//присваиваем набору гармоник переменную, добавляем гармоники: частота, кол-во (default = 10), цвет, вес.
|
||
var spen_set = spen.add_harms_set(frq, num, 0xff009ff0, 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 && spen.harms_sets[spen_index].get_count(0) <= 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вр[x2]", deep);
|
||
}
|
||
}
|
||
}
|
||
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;
|
||
};
|
||
|