Gtl.trends var

Материал из GTL-wiki
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

Построение тренда изменения СКЗ виброскорости в диапазоне 30-400 Гц

let time = 10; //указанная длительность записи или полная длина gtl.options.record.playerTime; 
let interval = 1; //интервал расчета параметра
let counter = 0; //счетчик
let rms_arr = []; //массив значений СКЗ

// создаём фильтр 30-400 Гц
let __BP = gtl.add_filter_iir(gtl.analog_inputs[0]); //объявление переменной фильтра
__BP.kind = gtl.filter_iir.butterworth; //тип окна
__BP.type = gtl.filter_iir.bandpass; //тип фильтра (полосовой)
__BP.order = 6; //порядок фильтра
__BP.frequency = 215; //центральная частота фильтра
__BP.width = 370; //ширина полосы

// выполняем интегрирование
let __int= gtl.add_intg(__BP); //интегрирование
__int.taps = 1; //степень интегрирования (скорость из ускорения - 1-нарное интегрирование)
__int.scale = 1000; //переводим метры в миллиметры

// определение СКЗ виброскорости
let rms = gtl.add_value_rms(__int); //объявление переменной СКЗ
rms.time = interval; //время выборки

let plot = gtl.plots.add("Тренд СКЗ виброскорости");

gtl.diagnostic.interval = gtl.acq_time; //интервал запуска функции диагностики
gtl.log.info("Необходимое время измерения", gtl.acq_time);
gtl.log.info("Длительность сигнала", time);

function diagnose() {
  counter += 1;
  rms_arr.push(rms.value);
  gtl.log.info("СКЗ виброскорости в диапазоне 30-400 Гц", rms.value);

  if (counter >= Math.round(time / interval)) {
    plot.add(
      {
        color: 0x0000FF,
        name: "RMS(V)",
        x: interval,
        y: rms_arr
      }
    ); //рисуем тренд СКЗ виброскорости на plot

    gtl.diagnostic.stop()
  }
};