gtld2-diag-scripts/peakMethod.js

96 lines
4.0 KiB
JavaScript
Raw Normal View History

2024-08-26 05:12:30 +03:00
"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 __pvm = gtl.import("peakVM.js");
let peakClass = gtl.import("peakClass.js").peakClass;
let __corr = gtl.import("corrVM.js");
let __frq = __mes.getFreq(
/*{
src: gtl.analog_inputs[signals[0].portNumber], //источник сигнала частоты вращения
freq: 10, //граничная частота фильтрации сигнала
time: 1, //интервал измерения частоты вращения
avg: 4, //количество отсчетов для усреднения
dc: -0.05 //порог срабатывания счетчика
}*/
).value; //получаем частоту вращения
let __sets = __pvm.getParams(__frq); //получаем настройки парметров ФВЧ и спектра
//фильтр для формирования пиковой формы сигнала
let __fltr = gtl.add_filter_iir(gtl.analog_inputs[signals[0].portNumber]);
__fltr.kind = gtl.filter_iir.butterworth; //тип окна
__fltr.type = gtl.filter_iir.highpass; //тип фильтра (ФНЧ)
__fltr.order = 10; //порядок фильтра
__fltr.frequency = __sets.filter.frequency; //граничная частота фильтра
//формирование амплитуд для построения пиковой формы сигнала
let __ampl = gtl.add_value_peak_to_peak(__fltr);//gtl.add_value_ampl(__fltr);
__ampl.name = "Пиковая форма";
__ampl.color = 0x2B6CC4;
__ampl.time = 0.001; //время выборки
__ampl.avg_cnt = 7700; //количество отсчетов
let __max = gtl.create_moving_peak_to_peak(
{
src: __fltr,
name: "max",
time: 0.001
}
); //формируем сигнал максимальных амплитуд для построения спектра
let ausp = __mes.getAusp(
{
src: __max, //источник сигнала
name: "Спектр пиковой формы", //имя спектра
color: 0xF34723, //цвет в формате HEX
frequency: __sets.spec.frequency, //граничная частота
resolution: __sets.spec.resolution, //частотное разрешение
average: __sets.spec.avg, //количество усреднений
view: gtl.spec.unit, //единицы отображения (дБ)
level: 0.002 //уровень обнаружения гармоник
}
); //вычисляем спектр пиковой формы
let __plots = gtl.plots.add("Spectral");
//[Диагностика]
gtl.diagnostic.interval = gtl.acq_time;
function diagnose() {
let __peak = new peakClass(
{
src: __ampl, //объект с массивом данных пиковой формы
freq: __frq, //частота вращения, Гц
spec: ausp, //спектр пиковой формы
2024-09-09 10:13:17 +03:00
visible: true, //отображение графиков
2024-08-26 05:12:30 +03:00
}
)
let __ausp_tools = __mes.createTools(
{
spec: ausp, //спектр для построения модели (объект)
//set: __set, //источник данных для построения частотных линий
tol: 1 //коридор обнаружения гармоники на портрете, %
}
); //формируем компоненты и частотные линии на спектре
__plots.add(
{
color: ausp.color,
name: ausp.name,
x: ausp.resolution,
y: ausp.data,
spec_tools: __ausp_tools.to_json()
}
); //рисуем спектр пиковой формы
gtl.results = __peak.getResult();
gtl.diagnostic.stop();
};