Построение тренда изменения СКЗ виброскорости в диапазоне 30-400 Гц
let time = 10; //указанная длительность записи или полная длина gtl.options.record.playerTime;
let period = 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 = period; //время выборки
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 / period)) {
plot.add(
{
color: 0x0000FF,
name: "RMS(V)",
x: period,
y: rms_arr
}
); //рисуем тренд СКЗ виброскорости на plot
gtl.diagnostic.stop()
}
};