Gtld freq(): различия между версиями

Материал из GTL-wiki
Перейти к навигации Перейти к поиску
Строка 1: Строка 1:
== Краткое описание ==
== Краткое описание ==
Функция используется для определения значения частоты вращения. В качестве входного сигнала подается объект, содержащий параметры формирования результата. Если аргумент не передается, то в результате принимается значение, установленное вручную или значение из блока "info" переносного виброанализатора.
Функция используется для определения значения частоты вращения. В качестве входного сигнала подается объект, содержащий параметры формирования результата. Если аргумент не передается, то в результате принимается значение, установленное в блоке настроек записи GTLd.


== Синтаксис ==
== Синтаксис ==

Версия от 01:31, 12 декабря 2024

Краткое описание

Функция используется для определения значения частоты вращения. В качестве входного сигнала подается объект, содержащий параметры формирования результата. Если аргумент не передается, то в результате принимается значение, установленное в блоке настроек записи GTLd.

Синтаксис

Стандартная конструкция выглядит таким образом:

let __frq = getFreq(
    {
      src: gtl.analog_inputs[0], //источник сигнала частоты вращения
      freq: 10, //граничная частота фильтрации сигнала
      time: 1, //интервал измерения частоты вращения
      avg: 4, //количество отсчетов для усреднения
      dc: -0.05 //порог срабатывания счетчика 
    }
); 

Результат

__frq.value - среднее значение частоты вращения с учетом передаточного коэффициента;
__frq.values - массив измеренных частот вращения (по количеству отсчетов);
__frq.time - время, затраченное на измерение параметра, сек;

Содержание функции

function getFreq(args) {
    let FR = {}; //объект данных по частоте вращения
    switch (record.tachoOptions.tachoState) {
        case 0:
            if (args != undefined) {
                let __src = args.src; 
                let __frq = args.freq;
                let __time = args.time; 
                let __avg = args.avg; 
                let __dc = 0; //порог срабатывания счетчика
                if (args.dc != undefined) { __dc = args.dc };       

                let __fltr = gtl.add_filter_iir(__src);
                __fltr.kind = gtl.filter_iir.butterworth;
                __fltr.type = gtl.filter_iir.lowpass;
                __fltr.order = 10;
                __fltr.frequency = __frq;

                let __freq = gtl.add_value_freq(__fltr);
                __freq.time = __time;
                __freq.avg_cnt = __avg;
                __freq.dc = __dc;
                FR["value"] = __freq.value * options.tachoRatio;
                FR["values"] = __freq.values;
                FR["time"] = args.time * args.avg;
            } else {
                FR["value"] = 0;
                FR["values"] = [0];
                FR["time"] = 0;
            };
            break;
        case 1:
            FR["value"] = record.tachoOptions.tachoValue * options.tachoRatio;
            FR["values"] = [0];
            FR["time"] = 0;
            break;
        case 2:
            FR["value"] = record.tachoOptions.tachoFromInfo * options.tachoRatio;
            FR["values"] = [0];
            FR["time"] = 0;
            break;
    };
    return FR;
}; //определение частоты вращения в зависимости от источника тахо сигнала