Gtl.scripts var: различия между версиями

Материал из GTL-wiki
Перейти к навигации Перейти к поиску
 
Строка 31: Строка 31:
</pre>
</pre>


== Определение параметров по нескольким каналам вибрации ==
== Определение параметров последовательно по нескольким каналам вибрации ==
<pre>
<pre>
var record = gtl.options.record;
var record = gtl.options.record;

Текущая версия от 02:52, 26 апреля 2024

Определение разности фаз определенного набора частот

//определяем переменные
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(); }
};