Gtld freq(): различия между версиями
Перейти к навигации
Перейти к поиску
| Строка 23: | Строка 23: | ||
== Содержание функции == | == Содержание функции == | ||
<pre> | <pre> | ||
class freqClass { | |||
constructor(args) { | |||
this.width = args.width; //диапазон разброса частоты, Гц | |||
this.time = args.time; //интервал измерений, сек | |||
this.avg = args.avg; //количество усреднений | |||
switch (tacho.tachoState) { | |||
case 0: | |||
let __min = tacho.minTacho; | |||
let __max = tacho.maxTacho; | |||
if (args.src != undefined) { this.src = args.src } else { this.src = gtl.analog_inputs[tacho.tachoChannel] }; | |||
if (args. | if (args.freq != undefined) { this.freq = args.freq } else { this.freq = (__max - __min) / 2 + __min }; | ||
this.width = __max - __min; | |||
break; | |||
case 1: | |||
if (args.src != undefined) { this.src = args.src } else { this.src = gtl.analog_inputs[signals[0].portNumber] }; | |||
if (args.freq != undefined) { this.freq = args.freq } else { this.freq = tacho.tachoValue }; | |||
this.freq = tacho.tachoValue; | |||
this.width = this.width; | |||
break; | |||
case 2: | |||
break; | |||
}; | |||
this.filter = gtl.add_filter_iir(this.src); | |||
this.filter.kind = gtl.filter_iir.butterworth; | |||
this.filter.type = gtl.filter_iir.bandpass; | |||
this.filter.order = 10; | |||
this.filter.frequency = this.freq; | |||
this.filter.width = this.width; | |||
this.frequency = gtl.add_value_freq(this.filter); | |||
this.frequency.time = this.time; | |||
this.frequency.avg_cnt = this.avg; | |||
this.result = { | |||
"value": 0, | |||
"values": [0], | |||
"time": 0 | |||
}; //объект данных по частоте вращения | |||
} | |||
} | |||
</pre> | </pre> | ||
Версия от 01:32, 12 декабря 2024
Краткое описание
Функция используется для определения значения частоты вращения. В качестве входного сигнала подается объект, содержащий параметры формирования результата. Если аргумент не передается, то в результате принимается значение, установленное в блоке настроек записи GTLd.
Синтаксис
Стандартная конструкция выглядит таким образом:
var __freq = new freqClass(
{
src: gtl.analog_inputs[tacho.tachoChannel], //источник сигнала
freq: 15, //центральная частота
width: 10, //диапазон разброса частоты, Гц
time: 2, //интервал измерения, сек
avg: 10 //количество усреднений
}
); //определяем частоту вращения
Результат
__frq.value- среднее значение частоты вращения с учетом передаточного коэффициента;__frq.values- массив измеренных частот вращения (по количеству отсчетов);__frq.time- время, затраченное на измерение параметра, сек;
Содержание функции
class freqClass {
constructor(args) {
this.width = args.width; //диапазон разброса частоты, Гц
this.time = args.time; //интервал измерений, сек
this.avg = args.avg; //количество усреднений
switch (tacho.tachoState) {
case 0:
let __min = tacho.minTacho;
let __max = tacho.maxTacho;
if (args.src != undefined) { this.src = args.src } else { this.src = gtl.analog_inputs[tacho.tachoChannel] };
if (args.freq != undefined) { this.freq = args.freq } else { this.freq = (__max - __min) / 2 + __min };
this.width = __max - __min;
break;
case 1:
if (args.src != undefined) { this.src = args.src } else { this.src = gtl.analog_inputs[signals[0].portNumber] };
if (args.freq != undefined) { this.freq = args.freq } else { this.freq = tacho.tachoValue };
this.freq = tacho.tachoValue;
this.width = this.width;
break;
case 2:
break;
};
this.filter = gtl.add_filter_iir(this.src);
this.filter.kind = gtl.filter_iir.butterworth;
this.filter.type = gtl.filter_iir.bandpass;
this.filter.order = 10;
this.filter.frequency = this.freq;
this.filter.width = this.width;
this.frequency = gtl.add_value_freq(this.filter);
this.frequency.time = this.time;
this.frequency.avg_cnt = this.avg;
this.result = {
"value": 0,
"values": [0],
"time": 0
}; //объект данных по частоте вращения
}