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

Материал из GTL-wiki
Перейти к навигации Перейти к поиску
 
(не показано 6 промежуточных версий этого же участника)
Строка 1: Строка 1:
== Определение разности фаз определенного набора частот ==
== Определение разности фаз определенного набора частот ==
<pre>
<pre>
//считаем разницу фаз полигармонических сигналов
//определяем переменные
var frq_arr = [200, 300, 400, 500]; //массив частот для которых определяем разность фаз
var frq_arr = [200, 300, 400, 500]; //массив частот для которых определяем разность фаз
var i = 0; //
var i = 0; //
var res = {}; //объект результатов вычислений разности фаз
var res = {}; //объект результатов вычислений разности фаз


//определение разности фаз полигармонических сигналов
var delta = gtl.add_delta_phase_spec(gtl.analog_inputs[0], gtl.analog_inputs[1]);
var delta = gtl.add_delta_phase_spec(gtl.analog_inputs[0], gtl.analog_inputs[1]);
delta.max_frequency = 1000; //граничная частота спектра вычисления фазы, Гц;
delta.max_frequency = 1000; //граничная частота спектра вычисления фазы, Гц;
Строка 24: Строка 25:
         delta.frequency = frq_arr[i];
         delta.frequency = frq_arr[i];
     } else {
     } else {
         gtl.results = res; //записываем объект в резалт
         gtl.results = res; //записываем объект в результат
         gtl.diagnostic.stop(); //останавливаем диагностику
         gtl.diagnostic.stop(); //останавливаем диагностику
     };
     };
};
</pre>
== Определение параметров последовательно по нескольким каналам вибрации ==
<pre>
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(); }
};
};
</pre>
</pre>

Текущая версия от 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(); }
};