gtld2-diag-scripts/spmMethod.js

100 lines
4.3 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

"use strict";
var signals = gtl.options.record.signalsModel;
var options = gtl.options;
var record = gtl.options.record;
var point = gtl.options.point;
let __mes = gtl.import("userFunctions.js");
let spmClass = gtl.import("spmClass.js").spmClass;
let __frq = __mes.getFreq(
/*{
src: gtl.analog_inputs[signals[0].portNumber], //источник сигнала частоты вращения
freq: 10, //граничная частота фильтрации сигнала
time: 1, //интервал измерения частоты вращения
avg: 4, //количество отсчетов для усреднения
dc: -0.05 //порог срабатывания счетчика
}*/
).value; //получаем частоту вращения
//фильтр для формирования сигнала
let __fltr = gtl.add_filter_iir(gtl.analog_inputs[signals[0].portNumber]);
__fltr.kind = gtl.filter_iir.butterworth; //тип окна
__fltr.type = gtl.filter_iir.bandpass; //тип фильтра (ФНЧ)
__fltr.order = 10; //порядок фильтра
__fltr.frequency = 32000; //центральная частота полосового фильтра
__fltr.width = 7360; //ширина полосового фильтра
//формирование амплитуд для расчета коврового уровня dBc (за 200 импульсов в сек)
let __cpt = gtl.add_value_ampl(__fltr);
__cpt.name = "Ковровый уровень";
__cpt.color = 0x2B6CC4;
__cpt.time = 0.005; //время выборки
__cpt.avg_cnt = 200; //количество отсчетов
//формирование амплитуд для расчета максимального уровня dBm (максимум за 2 сек)
let __max = gtl.add_value_ampl(__fltr);
__max.name = "SPM импульсы";
__max.color = 0x2B6CC4;
__max.time = 0.001; //время выборки
__max.avg_cnt = 2000; //количество отсчетов
let __imp = gtl.create_moving_max(
{
src: __fltr,
name: "SPM форма",
time: 0.001
}
); //формируем сигнал максимальных амплитуд для построения спектра
let spen = __mes.getSpen(
{
src: __imp, //источник сигнала
name: "SPM спектр огибающей", //имя спектра
color: 0x00ff0000, //цвет в формате HEX
frequency: 200, //граничная частота
resolution: 0.25, //частотное разрешение
average: 8, //количество усреднений
view: gtl.spec.db, //единицы отображения (дБ)
level: 5 //уровень обнаружения гармоник в дБ
}
); //вычисляем спектр огибающей пиковой формы
let canvas1 = gtl.plots.add("Spectral");
//[Диагностика]
gtl.diagnostic.interval = gtl.acq_time;
function diagnose() {
let __spm = new spmClass(
{
src1: __cpt, //объект с массивом данных для расчета коврового уровня
src2: __max, //объект с массивом данных определения маскимума импульсов
freq: __frq, //частота вращения
d_inner: options.rbInnerD, //диаметр внутреннего кольца подшипника
visible: true
}
);
let __spen_tools = __mes.createTools(
{
spec: spen, //спектр для построения модели (объект)
//set: __set, //источник данных для построения частотных линий
tol: 1 //коридор обнаружения гармоники на портрете, %
}
); //формируем компоненты и частотные линии на спектре огибающей
canvas1.add(
{
color: spen.color,
name: spen.name,
x: spen.resolution,
y: spen.data,
spec_tools: __spen_tools.to_json()
}
); //рисуем спектр огибающей spm
gtl.results = __spm.getResult();
gtl.diagnostic.stop();
};