Gtld freq(): различия между версиями

Материал из GTL-wiki
Перейти к навигации Перейти к поиску
 
(не показано 15 промежуточных версий этого же участника)
Строка 1: Строка 1:
== Краткое описание ==
== Краткое описание ==
Функция используется для определения значения частоты вращения. В качестве входного сигнала подается объект, содержащий параметры формирования результата. Если аргумент не передается, то в результате принимается значение, установленное вручную или значение из блока "info" переносного виброанализатора.
Класс используется для определения и автоматического уточнения частоты вращения по тахосигналу или сигналу вибрации. В качестве входного сигнала подается объект, содержащий параметры формирования результата. Если аргументы источника сигнала и центральной частоты не передаются, то принимаются значение, установленное в блоке настроек сигнала GTLd.


== Синтаксис ==
== Синтаксис ==
Стандартная конструкция выглядит таким образом:
Стандартная конструкция выглядит таким образом:
<pre style="color: purple>
<pre style="color: purple>
let __frq = getFreq(
var __freq = new freqClass(
     {
     {
      src: gtl.analog_inputs[0], //источник сигнала частоты вращения
        src: gtl.analog_inputs[tacho.tachoChannel], //источник сигнала
      freq: 10, //граничная частота фильтрации сигнала
        freq: 15, //предположительная частота, Гц
      time: 1, //интервал измерения частоты вращения
      avg: 4, //количество отсчетов для усреднения
      dc: -0.05 //порог срабатывания счетчика
     }
     }
);  
);
</pre>
</pre>


== Результат ==
== Результат ==
:<code style="color: purple>__frq.value</code> - среднее значение частоты вращения с учетом передаточного коэффициента;
:<code style="color: purple>let __f = __freq.getTime();</code> - получение времени, необходимого для набора данных, сек;
:<code style="color: purple>__frq.values</code> - массив измеренных частот вращения (по количеству отсчетов);
:<code style="color: purple>let __f = __freq.getResult();</code> - получение объекта с результатом расчета частоты вращения;
:<code style="color: purple>__frq.time</code> - время, затраченное на измерение параметра, сек;
:<code style="color: purple>__f.value;</code> - получение значения частоты вращения, Гц;
:<code style="color: purple>__f.acq_time;</code> - получение времени, затраченное на измерение параметра, сек;


== Содержание функции ==
== Содержание функции ==
<pre>
<pre>
function getFreq(args) {
export class freqClass {
    let FR = {}; //объект данных по частоте вращения
    constructor(args) {
    switch (record.tachoOptions.tachoState) {
        this.freq = args.freq; //предположительная частота, Гц
        case 0:
        this.time = 5; //интервал измерений, сек
            if (args != undefined) {
        this.avg = 1; //количество усреднений
                let __src = args.src;  
        switch (tacho.tachoState) {
                 let __frq = args.freq;
            case 0:
                 let __time = args.time;  
                if (args.src != undefined) { this.src = args.src } else { this.src = gtl.analog_inputs[tacho.tachoChannel] };
                 let __avg = args.avg;
                 if (args.freq != undefined) { this.freq = args.freq } else { this.freq = (tacho.maxTacho - tacho.minTacho) / 2 - tacho.minTacho };
                let __dc = 0; //порог срабатывания счетчика
                 break;
                 if (args.dc != undefined) { __dc = args.dc };      
            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;
        };


                let __fltr = gtl.add_filter_iir(__src);
        this.filter = gtl.add_filter_iir(this.src);
                __fltr.kind = gtl.filter_iir.butterworth;
        this.filter.kind = gtl.filter_iir.butterworth;
                __fltr.type = gtl.filter_iir.lowpass;
        this.filter.type = gtl.filter_iir.bandpass;
                __fltr.order = 10;
        this.filter.order = 10;
                __fltr.frequency = __frq;
        this.filter.frequency = Math.round(this.freq);
        this.filter.width = this.freq;


                let __freq = gtl.add_value_freq(__fltr);
        this.frequency = gtl.add_value_freq(this.filter);
                __freq.time = __time;
        this.frequency.time = this.time;
                __freq.avg_cnt = __avg;
        this.frequency.avg_cnt = this.avg;
                __freq.dc = __dc;
        this.frequency.dc = 0;
                 FR["value"] = __freq.value * options.tachoRatio;
 
                 FR["values"] = __freq.values;
        this.result = {
                 FR["time"] = args.time * args.avg;
            value: 0,
             } else {
            acq_time: 0
                 FR["value"] = 0;
        }; //объект данных по частоте вращения
                FR["values"] = [0];
    }
                FR["time"] = 0;
 
            };
    getTime() { return this.frequency.acq_time }
            break;
 
        case 1:
    getResult() {
            FR["value"] = record.tachoOptions.tachoValue * options.tachoRatio;
        switch (tacho.tachoState) {
            FR["values"] = [0];
            case 0:
            FR["time"] = 0;
                 this.result.value = this.frequency.value * options.tachoRatio;
            break;
                 this.result.acq_time = this.frequency.acq_time;
        case 2:
                 break;
            FR["value"] = record.tachoOptions.tachoFromInfo * options.tachoRatio;
             case 1:
            FR["values"] = [0];
                 if (tacho.recalcTacho == false) {
            FR["time"] = 0;
                    this.result.value = tacho.tachoValue * options.tachoRatio;
            break;
                    this.result.time = 0;
    };
                }
     return FR;
                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;
    }
}; //определение частоты вращения в зависимости от источника тахо сигнала