gtld2-diag-scripts/mxtMethod.js

140 lines
6.4 KiB
JavaScript

"use strict";
var signals = gtl.options.record.signalsModel;
var options = gtl.options;
var record = gtl.options.record;
var point = gtl.options.point;
var fnc = gtl.import("userFunctions.js");
let mtxClass = gtl.import("mtxClass.js").mtxClass;
var __frq = fnc.getFreq(
/*{
src: gtl.analog_inputs[signals[0].portNumber], //источник сигнала частоты вращения
freq: 10, //граничная частота фильтрации сигнала
time: 1, //интервал измерения частоты вращения
avg: 4, //количество отсчетов для усреднения
dc: -0.05 //порог срабатывания счетчика
}*/
).value; //получаем частоту вращения
let canvas0 = gtl.plots.add("Мониторинговый спектр");
let canvas1 = gtl.plots.add("Спектр вибраци");
let canvas2 = gtl.plots.add("Спектр огибающей");
var ausp2 = fnc.getAusp(
{
src: gtl.analog_inputs[signals[0].portNumber], //источник сигнала
name: "AUSPm", //имя спектра
color: 0x001E90FF, //цвет в формате HEX
frequency: 25600, //граничная частота
resolution: 16, //частотное разрешение
average: 6, //количество усреднений
view: gtl.spec.db, //единицы отображения (дБ)
}
); //мониторинговый спектр
var ausp = fnc.getAusp(
{
src: gtl.analog_inputs[signals[0].portNumber], //источник сигнала
name: "AUSPd", //имя спектра
color: 0x0000FF00, //цвет в формате HEX
frequency: 800, //граничная частота
resolution: 1, //частотное разрешение
average: 6, //количество усреднений
view: gtl.spec.db, //единицы отображения (дБ)
level: 20 //уровень обнаружения гармоник
}
); //диагностический спектр вибрации
//фильтр для формирования спектра огибающей
var filter_spen = gtl.add_filter_iir(gtl.analog_inputs[signals[0].portNumber]); //назначение переменной фильтра
filter_spen.kind = gtl.filter_iir.butterworth; //тип окна
filter_spen.type = gtl.filter_iir.bandpass; //тип фильтра (полосовой)
filter_spen.order = 10; //порядок фильтра
filter_spen.frequency = 6400; //центральная частота полосового фильтра
filter_spen.width = 1482; //ширина полосы фильтра
var spen = fnc.getSpen(
{
src: filter_spen, //источник сигнала
name: "SPEN", //имя спектра
color: 0x00ff0000, //цвет в формате HEX
frequency: 200, //граничная частота
resolution: 0.25, //частотное разрешение
average: 8, //количество усреднений
view: gtl.spec.db, //единицы отображения (дБ)
level: 10 //уровень обнаружения гармоник
}
); //спектр огибающей
//[Диагностика]
gtl.diagnostic.interval = gtl.acq_time;
let __result = {}; //объект для формирования результата
function diagnose() {
var __set = {
"FREQ": [0x89AC76, fnc.FREQ(__frq), 6, 13, 0, 0.3],
"BPFO": [0x6A5ACD, fnc.BPFO(__frq), 6, 13, 0, 0.07],
"BPFI": [0x008000, fnc.BPFI(__frq), 6, 8, 0, 0.07],
"BSF": [0xFFA000, fnc.BSF(__frq), 6, 10, 0, 0.3],
"FTF": [0xFF2400, fnc.FTF(__frq), 6, 6, 0, 0.5]
}; //набор портретов предполагаемых дефектов [цвет, частота, кол-во, уровень, тип ряда, коэфф затухания]
canvas0.add(
{
color: ausp2.color,
name: ausp2.name,
x: ausp2.resolution,
y: ausp2.data
}
); //рисуем мониторинговый спектр вибрации на plot
canvas1.add(
{
color: ausp.color,
name: ausp.name,
x: ausp.resolution,
y: ausp.data
}
); //рисуем спектр вибрации на plot*/
let __spen_tools = fnc.createTools(
{
spec: spen, //спектр для построения модели (объект)
set: __set, //источник данных для построения частотных линий
tol: 1 //коридор обнаружения гармоники на портрете, %
}
); //формируем компоненты и частотные линии на спектре огибающей
canvas2.add(
{
color: spen.color,
name: spen.name,
x: spen.resolution,
y: spen.data,
spec_tools: __spen_tools.to_json()
}
); //рисуем спектр огибающей на plot
let __mtx = new mtxClass(
{
spec: spen, //спектр для построения модели (объект)
set: __set, //источник данных для построения портретов дефектов
filter: filter_spen, //полосовой фильтр (для определения разницы амплитуд гармонической и случайной составляющей)
tol: 1, //коридор обнаружения гармоники, %
}
)
gtl.log.info("FREQ", fnc.FREQ(__frq));
gtl.log.info("FTF", fnc.FTF(__frq));
gtl.log.info("BPFO", fnc.BPFO(__frq));
gtl.log.info("BPFI", fnc.BPFI(__frq));
gtl.log.info("BSF", fnc.BSF(__frq));
__result["Matrix"] = __mtx.getMatrix(); //обнаруженные дефекты
__result["const"] = spen.data[0]; //постоянная составляющая спектра огибающей
gtl.results = __result;
gtl.diagnostic.stop();
}