diff --git a/ballscrew/ballscrew.js b/ballscrew/ballscrew.js index f279318..47cf285 100644 --- a/ballscrew/ballscrew.js +++ b/ballscrew/ballscrew.js @@ -145,13 +145,15 @@ function diagnose() { gtl.log.info("BSF", fnc.BSBAL()); gtl.log.info("Коридор обнаружения гармоники", fnc.tolerance()); gtl.log.info("Полосовой фильтр (расчетный)", filter_spen.frequency); + gtl.log.info("Ширина фильтра", filter_spen.width); gtl.log.info("Граничная частота SPEN", spen.frequency); gtl.log.info("Количество линий SPEN", spen.lines); + gtl.log.info("Разрешение SPEN", spen.resolution); gtl.log.info("Ширина AUSP", ausp.frequency); - let spen_mx = mtx.bs_mtx(spen, true); + let spen_mx = mtx.bs_mtx(spen, filter_spen, true); let spen_df = def.bs_defs(spen_mx, true); - let ausp_mx = mtx.bs_mtx(ausp, false); + let ausp_mx = mtx.bs_mtx(ausp, 0, false); var res = { RMSA: rms_spen.value, diff --git a/ballscrew/bs_mtx.js b/ballscrew/bs_mtx.js index c41ef00..44678e1 100644 --- a/ballscrew/bs_mtx.js +++ b/ballscrew/bs_mtx.js @@ -2,7 +2,7 @@ var ufc = gtl.import("user-functions.js"); -export function bs_mtx(spec, isDeep) { +export function bs_mtx(spec, filter, isDeep) { var num = 6; //глубина матрицы (количество гармоник) var level = 0; //уровень развития дефекта var res = {}; //результат @@ -15,6 +15,23 @@ export function bs_mtx(spec, isDeep) { BPFI: { nm: "Частота перекатывания тел качения по винту", fn: ufc.BSSCR(), md: 0, cl: 0xff990090 } }; //набор функциональных частот + function mod_factor(dSpec, dFilter, ampl, base) { + let dl = (ampl - base); //разность уровней гармонической и случайной составляющей вибрации + let df = dSpec.resolution / dFilter.width; //отношение частотному разрешению спектра к ширине фильтра + let mod = Math.sqrt((10 ** (dl / 10) - 1) * df) * 100; + return mod; + }; //определение глубины модуляции ВЧ составляющих + + function deep_factor(ampl, base) { + let deep = (ampl - base) / (ampl + base) * 100; + return deep; + }; //определение условной глубины модуляции + + function ampl_factor(ampl, base) { + let crest = (ampl / base); + return crest; + }; //определение амплитудного коэффициента + var rows = Object.keys(set); //массив ключей объекта (наборов гармонических рядов) //присваиваем набору гармоник переменную, добавляем гармоники: частота, кол-во (default = 10), цвет, вес. for (let i = 0; i <= rows.length - 1; i++) { @@ -35,7 +52,7 @@ export function bs_mtx(spec, isDeep) { if (lines.harms[j].is_present == true) { switch (isDeep) { case true: - level = Math.round(ufc.mod_factor(lines.harms[j].amplitude, lines.harms[j].base)); + level = Math.round(mod_factor(spec, filter, lines.harms[j].amplitude, lines.harms[j].base)); break; case false: level = Math.round(lines.harms[j].amplitude); diff --git a/gear transmission/gear_transmission.js b/gear transmission/gear_transmission.js index be648cc..5439964 100644 --- a/gear transmission/gear_transmission.js +++ b/gear transmission/gear_transmission.js @@ -143,13 +143,15 @@ function diagnose() { gtl.log.info("BPFO", fnc.GTFZ()); gtl.log.info("Коридор обнаружения гармоники", fnc.tolerance()); gtl.log.info("Полосовой фильтр (расчетный)", filter_spen.frequency); + gtl.log.info("Ширина фильтра", filter_spen.width); gtl.log.info("Граничная частота SPEN", spen.frequency); gtl.log.info("Количество линий SPEN", spen.lines); + gtl.log.info("Разрешение SPEN", spen.resolution); gtl.log.info("Ширина AUSP", ausp.frequency); - let spen_mx = mtx.gt_mtx(spen, true); + let spen_mx = mtx.gt_mtx(spen, filter_spen, true); let spen_df = def.gt_defs(spen_mx, true); - let ausp_mx = mtx.gt_mtx(ausp, false); + let ausp_mx = mtx.gt_mtx(ausp, 0, false); var res = { RMSA: rms_spen.value, diff --git a/gear transmission/gt_mtx.js b/gear transmission/gt_mtx.js index 439c63e..3fa2c88 100644 --- a/gear transmission/gt_mtx.js +++ b/gear transmission/gt_mtx.js @@ -2,7 +2,7 @@ var ufc = gtl.import("user-functions.js"); -export function gt_mtx(spec, isDeep) { +export function gt_mtx(spec, filter, isDeep) { var num = 6; //глубина матрицы (количество гармоник) var level = 0; //уровень развития дефекта var res = {}; //результат @@ -14,6 +14,23 @@ export function gt_mtx(spec, isDeep) { GTFZ2: { nm: "Зубцовая частота по второму валу", fn: ufc.GTFZ(), md: ufc.GTF2(), cl: 0xff990090 } }; //набор функциональных частот + function mod_factor(dSpec, dFilter, ampl, base) { + let dl = (ampl - base); //разность уровней гармонической и случайной составляющей вибрации + let df = dSpec.resolution / dFilter.width; //отношение частотному разрешению спектра к ширине фильтра + let mod = Math.sqrt((10 ** (dl / 10) - 1) * df) * 100; + return mod; + }; //определение глубины модуляции ВЧ составляющих + + function deep_factor(ampl, base) { + let deep = (ampl - base) / (ampl + base) * 100; + return deep; + }; //определение условной глубины модуляции + + function ampl_factor(ampl, base) { + let crest = (ampl / base); + return crest; + }; //определение амплитудного коэффициента + var rows = Object.keys(set); //массив ключей объекта (наборов гармонических рядов) //присваиваем набору гармоник переменную, добавляем гармоники: частота, кол-во (default = 10), цвет, вес. for (let i = 0; i <= rows.length - 1; i++) { @@ -34,7 +51,7 @@ export function gt_mtx(spec, isDeep) { if (lines.harms[j].is_present == true) { switch (isDeep) { case true: - level = Math.round(ufc.mod_factor(lines.harms[j].amplitude, lines.harms[j].base)); + level = Math.round(mod_factor(spec, filter, lines.harms[j].amplitude, lines.harms[j].base)); break; case false: level = Math.round(lines.harms[j].amplitude); diff --git a/kNN/kNN.js b/kNN/kNN.js index ebe6e95..a201fe1 100644 --- a/kNN/kNN.js +++ b/kNN/kNN.js @@ -138,11 +138,13 @@ function diagnose() { gtl.log.info("BSF", fnc.BSF()); gtl.log.info("Коридор обнаружения гармоники", fnc.tolerance()); gtl.log.info("Полосовой фильтр (расчетный)", filter_spen.frequency); + gtl.log.info("Ширина фильтра", filter_spen.width); gtl.log.info("Граничная частота SPEN", spen.frequency); gtl.log.info("Количество линий SPEN", spen.lines); + gtl.log.info("Разрешение SPEN", spen.resolution); gtl.log.info("Ширина AUSP", ausp.frequency); - let spen_mx = mtx.kn_mtx(spen, true); + let spen_mx = mtx.kn_mtx(spen, filter_spen, true); let spen_df = def.kn_defs(spen_mx, true); var res = { diff --git a/kNN/kn_mtx.js b/kNN/kn_mtx.js index 685bd4b..943e5f2 100644 --- a/kNN/kn_mtx.js +++ b/kNN/kn_mtx.js @@ -2,7 +2,7 @@ var ufc = gtl.import("user-functions.js"); -export function kn_mtx(spec, isDeep) { +export function kn_mtx(spec, filter, isDeep) { var num = 6; //глубина матрицы (количество гармоник) var level = 0; //уровень развития дефекта var res = {}; //результат @@ -15,6 +15,23 @@ export function kn_mtx(spec, isDeep) { BPFI: { nm: "Частота перекатывания тел качения по внутреннему кольцу", fn: ufc.BPFI(), md: ufc.FREQ(), cl: 0xff990090 } }; //набор функциональных частот + function mod_factor(dSpec, dFilter, ampl, base) { + let dl = (ampl - base); //разность уровней гармонической и случайной составляющей вибрации + let df = dSpec.resolution / dFilter.width; //отношение частотному разрешению спектра к ширине фильтра + let mod = Math.sqrt((10 ** (dl / 10) - 1) * df) * 100; + return mod; + }; //определение глубины модуляции ВЧ составляющих + + function deep_factor(ampl, base) { + let deep = (ampl - base) / (ampl + base) * 100; + return deep; + }; //определение условной глубины модуляции + + function ampl_factor(ampl, base) { + let crest = (ampl / base); + return crest; + }; //определение амплитудного коэффициента + var rows = Object.keys(set); //массив ключей объекта (наборов гармонических рядов) //присваиваем набору гармоник переменную, добавляем гармоники: частота, кол-во (default = 10), цвет, вес. for (let i = 0; i <= rows.length - 1; i++) { @@ -35,7 +52,7 @@ export function kn_mtx(spec, isDeep) { if (lines.harms[j].is_present == true) { switch (isDeep) { case true: - level = Math.round(ufc.mod_factor(lines.harms[j].amplitude, lines.harms[j].base)); + level = Math.round(mod_factor(spec, filter, lines.harms[j].amplitude, lines.harms[j].base)); break; case false: level = Math.round(lines.harms[j].amplitude); diff --git a/rolling bearing/rb_mtx.js b/rolling bearing/rb_mtx.js index 61e99bb..891cb85 100644 --- a/rolling bearing/rb_mtx.js +++ b/rolling bearing/rb_mtx.js @@ -2,7 +2,7 @@ var ufc = gtl.import("user-functions.js"); -export function rb_mtx(spec, isDeep) { +export function rb_mtx(spec, filter, isDeep) { var num = 6; //глубина матрицы (количество гармоник) var level = 0; //уровень развития дефекта var res = {}; //результат @@ -15,6 +15,23 @@ export function rb_mtx(spec, isDeep) { BPFI: { nm: "Частота перекатывания тел качения по внутреннему кольцу", fn: ufc.BPFI(), md: ufc.FREQ(), cl: 0xff990090 } }; //набор функциональных частот + function mod_factor(dSpec, dFilter, ampl, base) { + let dl = (ampl - base); //разность уровней гармонической и случайной составляющей вибрации + let df = dSpec.resolution / dFilter.width; //отношение частотному разрешению спектра к ширине фильтра + let mod = Math.sqrt((10 ** (dl / 10) - 1) * df) * 100; + return mod; + }; //определение глубины модуляции ВЧ составляющих + + function deep_factor(ampl, base) { + let deep = (ampl - base) / (ampl + base) * 100; + return deep; + }; //определение условной глубины модуляции + + function ampl_factor(ampl, base) { + let crest = (ampl / base); + return crest; + }; //определение амплитудного коэффициента + var rows = Object.keys(set); //массив ключей объекта (наборов гармонических рядов) //присваиваем набору гармоник переменную, добавляем гармоники: частота, кол-во (default = 10), цвет, вес. for (let i = 0; i <= rows.length - 1; i++) { @@ -35,7 +52,7 @@ export function rb_mtx(spec, isDeep) { if (lines.harms[j].is_present == true) { switch (isDeep) { case true: - level = Math.round(ufc.mod_factor(lines.harms[j].amplitude, lines.harms[j].base)); + level = Math.round(mod_factor(spec, filter, lines.harms[j].amplitude, lines.harms[j].base)); break; case false: level = Math.round(lines.harms[j].amplitude); diff --git a/rolling bearing/rolling_bearing.js b/rolling bearing/rolling_bearing.js index ed2b0e9..ed14c2d 100644 --- a/rolling bearing/rolling_bearing.js +++ b/rolling bearing/rolling_bearing.js @@ -146,13 +146,15 @@ function diagnose() { gtl.log.info("BSF", fnc.BSF()); gtl.log.info("Коридор обнаружения гармоники", fnc.tolerance()); gtl.log.info("Полосовой фильтр (расчетный)", filter_spen.frequency); + gtl.log.info("Ширина фильтра", filter_spen.width); gtl.log.info("Граничная частота SPEN", spen.frequency); gtl.log.info("Количество линий SPEN", spen.lines); + gtl.log.info("Разрешение SPEN", spen.resolution); gtl.log.info("Ширина AUSP", ausp.frequency); - let spen_mx = mtx.rb_mtx(spen, true); + let spen_mx = mtx.rb_mtx(spen, filter_spen, true); let spen_df = def.rb_defs(spen_mx, true); - let ausp_mx = mtx.rb_mtx(ausp, true); + let ausp_mx = mtx.rb_mtx(ausp, 0, true); var res = { RMSA: rms_spen.value,