gtld2-diag-scripts/neural/defects/spen_mtx.js

83 lines
3.6 KiB
JavaScript
Raw Normal View History

2024-03-11 13:53:55 +03:00
"use strict";
var imp = gtl.import("user-functions.js");
export function spen_mtx() {
let num = 6; //глубина матрицы (количество гармоник)
var res = {}; //результат
var deep = 0; //глубина модуляции ВЧ составляющих
//присваиваем набору гармоник переменную, добавляем гармоники: частота, кол-во (default = 10), цвет, вес.
//var spen_index = spen.index_of_harms_set(spen_set); //индекс набора гармоник в спектре огибающей
var ftf = spen.add_harms_set(imp.FTF(), num, 0xffff0000, 1); //частота вращения сепаратора
for (let i = 0; i <= num - 1; i++) { ftf.harms[i].tolerance = (1 + i) * imp.FTF() * imp.tolerance(); };
ftf.name = 'FTF';
var freq = spen.add_harms_set(imp.FREQ(), num, 0xff0000f0, 1); //частота вращения
for (let i = 0; i <= num - 1; i++) { freq.harms[i].tolerance = (1 + i) * imp.FREQ() * imp.tolerance(); };
freq.name = 'FREQ';
var bsf = spen.add_harms_set(imp.BSF(), num, 0xff994000, 1); //частота контакта тел качения
for (let i = 0; i <= num - 1; i++) { bsf.harms[i].tolerance = (1 + i) * imp.BSF() * imp.tolerance(); };
bsf.name = 'BSF';
var bpfo = spen.add_harms_set(imp.BPFO(), num, 0xff009000, 1); //частота перекатывания тел качения по наружному кольцу
for (let i = 0; i <= num - 1; i++) { bpfo.harms[i].tolerance = (1 + i) * imp.BPFO() * imp.tolerance(); };
bpfo.name = 'BPFO';
var bpfi = spen.add_harms_set(imp.BPFI(), num, 0xff990090, 1); //частота перекатывания тел качения по внутреннему кольцу
for (let i = 0; i <= num - 1; i++) { bpfi.harms[i].tolerance = (1 + i) * imp.BPFI() * imp.tolerance(); }
bpfi.name = 'BPFI';
//формируем результат
var ftf_arr = [];
for (let i = 0; i <= num - 1; i++) {
if (ftf.harms[i].is_present == true) {
deep = Math.round(imp.mod_factor(ftf.harms[i].amplitude, ftf.harms[i].base) * 100);
ftf_arr.push(deep);
} else { ftf_arr.push(0) };
};
var freq_arr = [];
for (let i = 0; i <= num - 1; i++) {
if (freq.harms[i].is_present == true) {
deep = Math.round(imp.mod_factor(freq.harms[i].amplitude, freq.harms[i].base) * 100);
freq_arr.push(deep);
} else { freq_arr.push(0) };
};
var bsf_arr = [];
for (let i = 0; i <= num - 1; i++) {
if (bsf.harms[i].is_present == true) {
deep = Math.round(imp.mod_factor(bsf.harms[i].amplitude, bsf.harms[i].base) * 100);
bsf_arr.push(deep);
} else { bsf_arr.push(0) };
};
var bpfo_arr = [];
for (let i = 0; i <= num - 1; i++) {
if (bpfo.harms[i].is_present == true) {
deep = Math.round(imp.mod_factor(bpfo.harms[i].amplitude, bpfo.harms[i].base) * 100);
bpfo_arr.push(deep);
} else { bpfo_arr.push(0) };
};
var bpfi_arr = [];
for (let i = 0; i <= num - 1; i++) {
if (bpfi.harms[i].is_present == true) {
deep = Math.round(imp.mod_factor(bpfi.harms[i].amplitude, bpfi.harms[i].base) * 100);
bpfi_arr.push(deep);
} else { bpfi_arr.push(0) };
};
//формируем объект
res[ftf.name] = ftf_arr;
res[freq.name] = freq_arr;
res[bsf.name] = bsf_arr;
res[bpfo.name] = bpfo_arr;
res[bpfi.name] = bpfi_arr;
return res;
};