diff --git a/user-functions.js b/user-functions.js index b1ec604..63fd5cd 100644 --- a/user-functions.js +++ b/user-functions.js @@ -98,7 +98,7 @@ export function PGFZ() { return pgZ2 * PGFSAT() }; //зубцовая часто export function TRFBLD() { return FREQ() * trBlades; }; //лопастная частота export function filter_frequency() { - let filter = 6013.41 * Math.log(0.266935 * imp.FREQ() + 1.1201); + let filter = 6013.41 * Math.log(0.266935 * FREQ() + 1.1201); return filter; }; //расчетная центральная частота полосового фильтра для спектра огибающей @@ -110,79 +110,6 @@ export function filter_width(number) { return width; }; //ширина фильтра спектра огибающей -export function spec_width() { - let flim = {}; - switch (options.objectType) { - case 0: //объект не выбран - break; - case 1: //подшипник скольжения - flim = { as0: 1600, as1: 800, es: 20 * FREQ() }; - break; - case 2: //подшипник качения - flim = { as0: 1600, as1: 800, es: 3 * BPFI() + 4 * FREQ() }; - break; - case 3: //ШВП - flim = { as0: 1600, as1: 800, es: 3 * BPFI() + 4 * FREQ() }; - break; - case 4: //редуктор - flim = { as0: 1600, as1: 800, es: 3 * GTFZ() + 4 * FREQ() }; - break; - case 5: //ременная передача - break; - case 6: //зубчатый ремень - break; - case 7: //помпа - flim = { as0: 1600, as1: 800, es: 3 * PMFBLD() + 4 * FREQ() }; - break; - case 8: //планетарый редуктор - flim = { as0: 1600, as1: 800, es: 3 * PGFZ() + 4 * FREQ() }; - break; - case 9: //турбина - flim = { as0: 1600, as1: 800, es: 3 * TRFBLD() + 4 * FREQ() }; - break; - case 10: //электродвигатель - break; - }; return flim; -}; //ширина спектров вибрации - -export function spec_resolution() { - let res = 0; - switch (options.objectType) { - case 0: //объект не выбран - break; - case 1: //подшипник скольжения - res = FREQ() / 8; - break; - case 2: //подшипник качения - res = FREQ() / 8; - break; - case 3: //ШВП - break; - case 4: //редуктор - res = FREQ() / 8; - break; - case 5: //ременная передача - res = BDFB() / 4; - break; - case 6: //зубчатый ремень - res = CBDFB() / 4; - break; - case 7: //помпа - res = FREQ() / 8; - break; - case 8: //планетарый редуктор - res = PGF2() / 8; - break; - case 9: //турбина - res = FREQ() / 8; - break; - case 10: //электродвигатель - break; - }; return res; -}; //частотное разрешение (разделение двух гармоник с минимальной частотой) - -export function spec_lines() { return spec_width().es / spec_resolution(); }; //минимальное количество линий спектра - export function tolerance() { let tol = 0; switch (options.objectType) { @@ -214,50 +141,64 @@ export function tolerance() { }; return tol; }; //максимальный коридор обнаружения гармоник (tolerance) -export function standart_width(width) { - let STFRQ = 0; - switch (true) { - case width <= 50: - STFRQ = 50; - break; - case width <= 100: - STFRQ = 100; - break; - case width <= 200: - STFRQ = 200; - break; - case width <= 400: - STFRQ = 400; - break; - case width <= 800: - STFRQ = 800; - break; - default: - STFRQ = 1600; - break; - }; return STFRQ; -}; //стандартная ширина спектра +export function spec_params() { + let frq = 200; //ширина спектра + let res = 400; //частотное разрешение + function getStandart(value) { + let arr = [50, 100, 200, 400, 800, 1600, 3200]; //массив стандартных величин + let t = arr[0]; + if (value >= arr[arr.length - 1]) { t = arr[arr.length - 1] } else { + for (let i = 0; i <= arr.length - 1; i++) { + if (value > arr[i]) { t = arr[i + 1] }; + }; + }; return t + }; -export function standart_lines(lines) { - let STLNS = 0; - switch (true) { - case lines <= 200: - STLNS = 200; + switch (options.objectType) { + case 0: //объект не выбран break; - case lines <= 400: - STLNS = 400; + case 1: //подшипник скольжения + frq = 20 * FREQ(); + res = FREQ() / 8; break; - case lines <= 800: - STLNS = 800; + case 2: //подшипник качения + frq = 5 * BPFI() + 4 * FREQ(); + res = FREQ() / 8; break; - case lines <= 1600: - STLNS = 1600; + case 3: //ШВП + frq = 5 * BPFI() + 4 * FREQ(); + res = FREQ() / 8; break; - default: - STLNS = 3200; + case 4: //редуктор + frq = 3 * GTFZ() + 4 * FREQ(); + res = FREQ() / 8; break; - }; return STLNS; -}; //стандартное количество линий спектра + case 5: //ременная передача + frq = 400; + res = BDFB() / 4; + break; + case 6: //зубчатый ремень + frq = 400; + res = CBDFB() / 4; + break; + case 7: //помпа + frq = 3 * PMFBLD() + 4 * FREQ(); + res = FREQ() / 8; + break; + case 8: //планетарый редуктор + frq = 3 * PGFZ() + 4 * FREQ(); + res = PGF2() / 8; + break; + case 9: //турбина + frq = 3 * TRFBLD() + 4 * FREQ(); + res = FREQ() / 8; + break; + case 10: //электродвигатель + frq = 400; + res = FREQ() / 8; + break; + }; return { frequency: getStandart(frq), lines: getStandart(frq / res), resolution: getStandart(frq) / getStandart(frq / res) }; +}; export function spec_square(data, bnd, frq) { let lines = data.length; //определение количества линий спектра вибрации @@ -271,7 +212,7 @@ export function spec_square(data, bnd, frq) { export function mod_factor(ampl, base) { let dl = (ampl - base); //разность уровней гармонической и случайной составляющей вибрации - let df = spec_resolution() / filter_width(); //отношение ширины фильтра к частотному разрешению спектра + let df = spec_params().resolution / filter_width(); //отношение частотному разрешению спектра к ширине фильтра let mod = Math.sqrt((10 ** (dl / 10) - 1) * df); return mod; }; //определение условной глубины модуляции