neural was renamed and created new mtx

develop
aleksey_k 2024-03-18 19:21:19 +09:00
parent eb61316f1a
commit 85c9b85bba
3 changed files with 46 additions and 84 deletions

View File

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

View File

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

View File

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