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();
|
|
|
|
|
};
|