Определение разности фаз определенного набора частот
//определяем переменные
var frq_arr = [200, 300, 400, 500]; //массив частот для которых определяем разность фаз
var i = 0; //
var res = {}; //объект результатов вычислений разности фаз
//определение разности фаз полигармонических сигналов
var delta = gtl.add_delta_phase_spec(gtl.analog_inputs[0], gtl.analog_inputs[1]);
delta.max_frequency = 1000; //граничная частота спектра вычисления фазы, Гц;
delta.resolution = 1; //частотное разрешение, Гц;
delta.frequency = frq_arr[0]; //частота, для которой вычисляется разница фаз, Гц;
gtl.diagnostic.interval = delta.acq_time; //интервал запуска функции диагностики
function diagnose() {
gtl.log.info("Индекс", i);
gtl.log.info("Частота", frq_arr[i]);
gtl.log.info("Разница фаз на частоте", delta.value);
res[frq_arr[i]] = delta.value; //записываем данные в объект
if (i < frq_arr.length - 1) {
i = i + 1;
delta.frequency = frq_arr[i];
} else {
gtl.results = res; //записываем объект в результат
gtl.diagnostic.stop(); //останавливаем диагностику
};
};
Определение параметров последовательно по нескольким каналам вибрации
var record = gtl.options.record;
var signals = gtl.options.record.signalsModel;
//фильтр для расчета СКЗ
var idx = 0; //индекс канала вибрации
var filter = gtl.add_filter_iir(gtl.analog_inputs[signals[idx].portNumber]); //объявление переменной фильтра
filter.kind = gtl.filter_iir.butterworth; //тип окна
filter.type = gtl.filter_iir.lowpass; //тип фильтра (ФНЧ)
filter.order = 8; //порядок фильтра
filter.frequency = 1000; //граничная частота фильтра
//определение среднего квадратического значения в диапазоне до 1000 Гц
var rms = gtl.add_value_rms(filter); //объявление переменной СКЗ
rms.time = 1; //время выборки
rms.avg_cnt = 4; //количество усреднений
//[Диагностика]
gtl.diagnostic.interval = rms.time * rms.avg_cnt;
var cnt = record.signalsModel.length; //считаем количество каналов вибрации
function diagnose() {
if (idx < cnt) {
filter = gtl.add_filter_iir(gtl.analog_inputs[signals[idx].portNumber]);
gtl.log.info("RMS channel " + idx, rms.value);
idx = idx + 1;
} else { gtl.diagnostic.stop(); }
};