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

Материал из GTL-wiki
Перейти к навигации Перейти к поиску
 
(не показана 1 промежуточная версия этого же участника)
Строка 2: Строка 2:
<pre>
<pre>
let time = 10; //указанная длительность записи или полная длина gtl.options.record.playerTime;  
let time = 10; //указанная длительность записи или полная длина gtl.options.record.playerTime;  
let period = 1; //интервал расчета параметра
let interval = 1; //интервал расчета параметра
let counter = 0; //счетчик
let counter = 0; //счетчик
let rms_arr = []; //массив значений СКЗ
let rms_arr = []; //массив значений СКЗ
Строка 21: Строка 21:
// определение СКЗ виброскорости
// определение СКЗ виброскорости
let rms = gtl.add_value_rms(__int); //объявление переменной СКЗ
let rms = gtl.add_value_rms(__int); //объявление переменной СКЗ
rms.time = period; //время выборки
rms.time = interval; //время выборки


let plot = gtl.plots.add("Тренд СКЗ виброскорости");
let plot = gtl.plots.add("Тренд СКЗ виброскорости");
Строка 34: Строка 34:
   gtl.log.info("СКЗ виброскорости в диапазоне 30-400 Гц", rms.value);
   gtl.log.info("СКЗ виброскорости в диапазоне 30-400 Гц", rms.value);


   if (counter >= Math.round(time / rms.time)) {
   if (counter >= Math.round(time / interval)) {
     plot.add(
     plot.add(
       {
       {
         color: 0x0000FF,
         color: 0x0000FF,
         name: "RMS(V)",
         name: "RMS(V)",
         x: rms.time,
         x: interval,
         y: rms_arr
         y: rms_arr
       }
       }

Текущая версия от 05:33, 28 апреля 2025

Построение тренда изменения СКЗ виброскорости в диапазоне 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()
  }
};