neural was renamed and created new mtx
parent
eb61316f1a
commit
85c9b85bba
|
@ -0,0 +1,44 @@
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
var imp = gtl.import("user-functions.js");
|
||||||
|
|
||||||
|
export function spen_mtx() {
|
||||||
|
var num = 6; //глубина матрицы (количество гармоник)
|
||||||
|
var res = {}; //результат
|
||||||
|
var deep = 0; //глубина модуляции ВЧ составляющих
|
||||||
|
|
||||||
|
var set = {
|
||||||
|
"FTF": imp.FTF(),
|
||||||
|
"FREQ": imp.FREQ(),
|
||||||
|
"BSF": imp.BSF(),
|
||||||
|
"BPFO": imp.BPFO(),
|
||||||
|
"BPFI": imp.BPFI()
|
||||||
|
}; //набор функциональных частот
|
||||||
|
|
||||||
|
var rows = Object.keys(set); //массив наборов гармонических рядов
|
||||||
|
var color = [0xffff0000, 0xff0000f0, 0xff994000, 0xff009000, 0xff990090]; //массив предустановленных цветов для гармонических рядов
|
||||||
|
|
||||||
|
//присваиваем набору гармоник переменную, добавляем гармоники: частота, кол-во (default = 10), цвет, вес.
|
||||||
|
//var spen_index = spen.index_of_harms_set(spen_set); //индекс набора гармоник в спектре огибающей
|
||||||
|
for (let i = 0; i <= rows.length - 1; i++) {
|
||||||
|
let lines = rows[i];
|
||||||
|
let frq = set[lines];
|
||||||
|
lines = spen.add_harms_set(frq, num, color[i], 1); //строим набор частот
|
||||||
|
lines.name = rows[i];
|
||||||
|
let arr = []; //массив обнаруженных гармоник
|
||||||
|
|
||||||
|
for (let j = 0; j <= num - 1; j++) {
|
||||||
|
lines.harms[j].tolerance = (j + 1) * frq * imp.tolerance(); //устанавливаем коридор обнаружения гармоники
|
||||||
|
//gtl.log.info("tolerance", lines.harms[j].tolerance);
|
||||||
|
if (lines.harms[j].is_present == true) {
|
||||||
|
deep = Math.round(imp.mod_factor(lines.harms[j].amplitude, lines.harms[j].base) * 100);
|
||||||
|
gtl.log.info("deep", deep);
|
||||||
|
arr.push(deep);
|
||||||
|
} else { arr.push(0) };
|
||||||
|
res[lines.name] = arr;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
return res;
|
||||||
|
};
|
||||||
|
|
|
@ -5,7 +5,7 @@ var record = gtl.options.record;
|
||||||
var point = gtl.options.point;
|
var point = gtl.options.point;
|
||||||
|
|
||||||
var imp = gtl.import("user-functions.js");
|
var imp = gtl.import("user-functions.js");
|
||||||
var spen_mtx = gtl.import("spen_mtx.js");
|
var mtx = gtl.import("spen_mtx.js");
|
||||||
|
|
||||||
//настройки для датчика оборотов
|
//настройки для датчика оборотов
|
||||||
var filter_freq = gtl.add_filter_iir(gtl.analog_inputs[record.tachoOptions.tachoChannel]); //объявление переменной фильтра
|
var filter_freq = gtl.add_filter_iir(gtl.analog_inputs[record.tachoOptions.tachoChannel]); //объявление переменной фильтра
|
||||||
|
@ -182,7 +182,7 @@ function diagnose() {
|
||||||
gtl.log.info("ПФ(A) в ВЧ диапазоне", ampl_spen.value / rms_spen.value);
|
gtl.log.info("ПФ(A) в ВЧ диапазоне", ampl_spen.value / rms_spen.value);
|
||||||
|
|
||||||
let def = {};
|
let def = {};
|
||||||
def["spen"] = spen_mtx.spen();
|
def["spen"] = mtx.spen_mtx();
|
||||||
|
|
||||||
var res = {
|
var res = {
|
||||||
RMSA: rms_spen.value,
|
RMSA: rms_spen.value,
|
|
@ -1,82 +0,0 @@
|
||||||
"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;
|
|
||||||
};
|
|
||||||
|
|
Loading…
Reference in New Issue