Gtld freq()

Материал из GTL-wiki
Перейти к навигации Перейти к поиску

Краткое описание

Класс используется для определения и автоматического уточнения частоты вращения по тахосигналу или сигналу вибрации. В качестве входного сигнала подается объект, содержащий параметры формирования результата. Если аргументы источника сигнала и центральной частоты не передаются, то принимаются значение, установленное в блоке настроек сигнала 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; - получение времени, затраченное на измерение параметра, сек;

Содержание функции

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
        }; //объект данных по частоте вращения
    }