gtld2-diag-scripts/peakMethod.js

96 lines
4.0 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 __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, //спектр пиковой формы
visible: false, //отображение графиков
}
)
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();
};