96 lines
4.0 KiB
JavaScript
96 lines
4.0 KiB
JavaScript
"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();
|
||
};
|