there are new func in the mtx

develop
aleksey_k 2024-04-23 19:33:32 +09:00
parent feca9870bc
commit b872b27c70
8 changed files with 91 additions and 15 deletions

View File

@ -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,

View File

@ -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);

View File

@ -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,

View File

@ -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);

View File

@ -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 = {

View File

@ -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);

View File

@ -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);

View File

@ -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,