Gtld freq(): различия между версиями
Перейти к навигации
Перейти к поиску
| (не показано 11 промежуточных версий этого же участника) | |||
| Строка 1: | Строка 1: | ||
== Краткое описание == | == Краткое описание == | ||
Класс используется для определения и автоматического уточнения частоты вращения по тахосигналу или сигналу вибрации. В качестве входного сигнала подается объект, содержащий параметры формирования результата. Если аргументы источника сигнала и центральной частоты не передаются, то принимаются значение, установленное в блоке настроек сигнала GTLd. | |||
== Синтаксис == | == Синтаксис == | ||
| Строка 8: | Строка 8: | ||
{ | { | ||
src: gtl.analog_inputs[tacho.tachoChannel], //источник сигнала | src: gtl.analog_inputs[tacho.tachoChannel], //источник сигнала | ||
freq: 15, // | freq: 15, //предположительная частота, Гц | ||
} | } | ||
); | ); | ||
</pre> | </pre> | ||
== Результат == | == Результат == | ||
:<code style="color: purple> | :<code style="color: purple>let __f = __freq.getTime();</code> - получение времени, необходимого для набора данных, сек; | ||
:<code style="color: purple> | :<code style="color: purple>let __f = __freq.getResult();</code> - получение объекта с результатом расчета частоты вращения; | ||
:<code style="color: purple> | :<code style="color: purple>__f.value;</code> - получение значения частоты вращения, Гц; | ||
:<code style="color: purple>__f.acq_time;</code> - получение времени, затраченное на измерение параметра, сек; | |||
== Содержание функции == | == Содержание функции == | ||
<pre> | <pre> | ||
class freqClass { | export class freqClass { | ||
constructor(args) { | constructor(args) { | ||
this. | this.freq = args.freq; //предположительная частота, Гц | ||
this.time = | this.time = 5; //интервал измерений, сек | ||
this.avg = | this.avg = 1; //количество усреднений | ||
switch (tacho.tachoState) { | switch (tacho.tachoState) { | ||
case 0: | case 0: | ||
if (args.src != undefined) { this.src = args.src } else { this.src = gtl.analog_inputs[tacho.tachoChannel] }; | 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 = ( | if (args.freq != undefined) { this.freq = args.freq } else { this.freq = (tacho.maxTacho - tacho.minTacho) / 2 - tacho.minTacho }; | ||
break; | break; | ||
case 1: | case 1: | ||
if (args.src != undefined) { this.src = args.src } else { this.src = gtl.analog_inputs[signals[0].portNumber] }; | if (args.src != undefined) { this.src = args.src } else { this.src = gtl.analog_inputs[signals[0].portNumber] }; | ||
if (args.freq != undefined) { this.freq = args. | if (args.freq != undefined) { this.freq = args.width } else { this.freq = tacho.tachoValue }; | ||
break; | break; | ||
case 2: | case 2: | ||
break; | break; | ||
}; | }; | ||
| Строка 51: | Строка 43: | ||
this.filter.type = gtl.filter_iir.bandpass; | this.filter.type = gtl.filter_iir.bandpass; | ||
this.filter.order = 10; | this.filter.order = 10; | ||
this.filter.frequency = this.freq; | this.filter.frequency = Math.round(this.freq); | ||
this.filter.width = this. | this.filter.width = this.freq; | ||
this.frequency = gtl.add_value_freq(this.filter); | this.frequency = gtl.add_value_freq(this.filter); | ||
this.frequency.time = this.time; | this.frequency.time = this.time; | ||
this.frequency.avg_cnt = this.avg; | this.frequency.avg_cnt = this.avg; | ||
this.frequency.dc = 0; | |||
this.result = { | this.result = { | ||
value: 0, | |||
acq_time: 0 | |||
}; //объект данных по частоте вращения | }; //объект данных по частоте вращения | ||
} | } | ||
getTime() { return this.frequency.acq_time } | |||
getResult() { | |||
switch (tacho.tachoState) { | |||
case 0: | |||
this.result.value = this.frequency.value * options.tachoRatio; | |||
this.result.acq_time = this.frequency.acq_time; | |||
break; | |||
case 1: | |||
if (tacho.recalcTacho == false) { | |||
this.result.value = tacho.tachoValue * options.tachoRatio; | |||
this.result.time = 0; | |||
} | |||
else { | |||
this.result.value = this.frequency.value * options.tachoRatio; | |||
this.result.acq_time = this.frequency.acq_time; | |||
} | |||
break; | |||
case 2: | |||
this.result.value = tacho.tachoFromInfo; | |||
this.result.time = 0; | |||
break; | |||
} | |||
return this.result; | |||
} | |||
}; //определение частоты вращения в зависимости от источника тахо сигнала | |||
</pre> | </pre> | ||
Текущая версия от 05:41, 28 февраля 2025
Краткое описание
Класс используется для определения и автоматического уточнения частоты вращения по тахосигналу или сигналу вибрации. В качестве входного сигнала подается объект, содержащий параметры формирования результата. Если аргументы источника сигнала и центральной частоты не передаются, то принимаются значение, установленное в блоке настроек сигнала GTLd.
Синтаксис
Стандартная конструкция выглядит таким образом:
var __freq = new freqClass(
{
src: gtl.analog_inputs[tacho.tachoChannel], //источник сигнала
freq: 15, //предположительная частота, Гц
}
);
Результат
let __f = __freq.getTime();- получение времени, необходимого для набора данных, сек;let __f = __freq.getResult();- получение объекта с результатом расчета частоты вращения;__f.value;- получение значения частоты вращения, Гц;__f.acq_time;- получение времени, затраченное на измерение параметра, сек;
Содержание функции
export class freqClass {
constructor(args) {
this.freq = args.freq; //предположительная частота, Гц
this.time = 5; //интервал измерений, сек
this.avg = 1; //количество усреднений
switch (tacho.tachoState) {
case 0:
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 = (tacho.maxTacho - tacho.minTacho) / 2 - tacho.minTacho };
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.width } else { this.freq = tacho.tachoValue };
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 = Math.round(this.freq);
this.filter.width = this.freq;
this.frequency = gtl.add_value_freq(this.filter);
this.frequency.time = this.time;
this.frequency.avg_cnt = this.avg;
this.frequency.dc = 0;
this.result = {
value: 0,
acq_time: 0
}; //объект данных по частоте вращения
}
getTime() { return this.frequency.acq_time }
getResult() {
switch (tacho.tachoState) {
case 0:
this.result.value = this.frequency.value * options.tachoRatio;
this.result.acq_time = this.frequency.acq_time;
break;
case 1:
if (tacho.recalcTacho == false) {
this.result.value = tacho.tachoValue * options.tachoRatio;
this.result.time = 0;
}
else {
this.result.value = this.frequency.value * options.tachoRatio;
this.result.acq_time = this.frequency.acq_time;
}
break;
case 2:
this.result.value = tacho.tachoFromInfo;
this.result.time = 0;
break;
}
return this.result;
}
}; //определение частоты вращения в зависимости от источника тахо сигнала