Gtld std measures: различия между версиями

Материал из GTL-wiki
Перейти к навигации Перейти к поиску
 
(не показаны 3 промежуточные версии этого же участника)
Строка 16: Строка 16:


== Результат ==
== Результат ==
:<code style="color: purple>rms_A2_3000.value</code> - СКЗ виброускорения в диапазоне 2-3000 Гц;
:<code style="color: purple>__mes.rms_A2_3000.value</code> - СКЗ виброускорения в диапазоне 2-3000 Гц;
:<code style="color: purple>rms_A2_10000.value</code> - СКЗ виброускорения в диапазоне 2-10000 Гц;
:<code style="color: purple>__mes.rms_A2_10000.value</code> - СКЗ виброускорения в диапазоне 2-10000 Гц;
:<code style="color: purple>rms_A100_10000.value</code> - СКЗ виброускорения в диапазоне 100-10000 Гц;
:<code style="color: purple>__mes.rms_A100_10000.value</code> - СКЗ виброускорения в диапазоне 100-10000 Гц;
:<code style="color: purple>ampl_A100_10000.value</code> - амплитуда виброускорения в диапазоне 100-10000 Гц;
:<code style="color: purple>__mes.ampl_A100_10000.value</code> - амплитуда виброускорения в диапазоне 100-10000 Гц;
:<code style="color: purple>ampl_full.value</code> - амплитуда виброускорения во всем диапазоне измерения;
:<code style="color: purple>__mes.ampl_full.value</code> - амплитуда виброускорения во всем диапазоне измерения;
:<code style="color: purple>rms_V2_1000.value</code> - СКЗ виброскорости в диапазоне 2-1000 Гц;
:<code style="color: purple>__mes.rms_V2_1000.value</code> - СКЗ виброскорости в диапазоне 2-1000 Гц;
:<code style="color: purple>rms_V10_1000.value</code> - СКЗ виброскорости в диапазоне 10-1000 Гц;
:<code style="color: purple>__mes.rms_V10_1000.value</code> - СКЗ виброскорости в диапазоне 10-1000 Гц;
:<code style="color: purple>rms_S2_200.value</code> - СКЗ виброперемещения в диапазоне 2-200 Гц;
:<code style="color: purple>__mes.rms_S2_200.value</code> - СКЗ виброперемещения в диапазоне 2-200 Гц;
:<code style="color: purple>kurt_full.value</code> - эксцесс во всем диапазоне измерения;
:<code style="color: purple>__mes.ptp_S2_200.value</code> - размах виброперемещения в диапазоне 2-200 Гц;
:<code style="color: purple>kurt_2_5k.value</code> - эксцесс в полосе 2.5-5 кГц;
:<code style="color: purple>__mes.kurt_full.value</code> - эксцесс во всем диапазоне измерения;
:<code style="color: purple>kurt_5_10k.value</code> - эксцесс в полосе 5-10 кГц;
:<code style="color: purple>__mes.kurt_2_5k.value</code> - эксцесс в полосе 2.5-5 кГц;
:<code style="color: purple>kurt_10_20k.value</code> - эксцесс в полосе 10-20 кГц;
:<code style="color: purple>__mes.kurt_5_10k.value</code> - эксцесс в полосе 5-10 кГц;
:<code style="color: purple>kurt_30_40k.value</code> - эксцесс в полосе 30-40 кГц;
:<code style="color: purple>__mes.kurt_10_20k.value</code> - эксцесс в полосе 10-20 кГц;
:<code style="color: purple>kurt_40_80k.value</code> - эксцесс в полосе 40-80 кГц;
:<code style="color: purple>__mes.kurt_30_40k.value</code> - эксцесс в полосе 30-40 кГц;
:<code style="color: purple>__mes.kurt_40_80k.value</code> - эксцесс в полосе 40-80 кГц;


== Содержание функции ==
== Содержание функции ==
Строка 90: Строка 91:
         return __ampl;
         return __ampl;
     }; //получение амплитуды
     }; //получение амплитуды
    function getPtP(src) {
        let __ptp = gtl.add_value_peak_to_peak(src);
        __ptp.time = __time;
        __ptp.avg_cnt = __avg;
       
        return __ptp;
    }; //получение размаха


     function getKurt(src) {
     function getKurt(src) {
Строка 126: Строка 135:


     let __rms_V2_1000 = getRMS(__pre_int1); //СКЗ виброскорости в диапазоне 2-1000 Гц
     let __rms_V2_1000 = getRMS(__pre_int1); //СКЗ виброскорости в диапазоне 2-1000 Гц
     let __rms_V10_1000 = getRMS(__pre_int2); //СКЗ виброскорости в диапазоне 2-1000 Гц
     let __rms_V10_1000 = getRMS(__pre_int2); //СКЗ виброскорости в диапазоне 10-1000 Гц
     let __rms_S2_200 = getRMS(__pre_int3); //СКЗ виброперемещения в диапазоне 2-200 Гц   
     let __rms_S2_200 = getRMS(__pre_int3); //СКЗ виброперемещения в диапазоне 2-200 Гц   
    let __ptp_S2_200 = getPtP(__pre_int3); //размах виброперемещения в диапазоне 2-200 Гц


     let __kurt_full = getKurt(__source); //эксцесс во всем диапазоне измерения
     let __kurt_full = getKurt(__source); //эксцесс во всем диапазоне измерения
Строка 145: Строка 156:
         rms_V10_1000: __rms_V10_1000,
         rms_V10_1000: __rms_V10_1000,
         rms_S2_200: __rms_S2_200,
         rms_S2_200: __rms_S2_200,
        ptp_S2_200: __ptp_S2_200,
         kurt_full: __kurt_full,
         kurt_full: __kurt_full,
         kurt_2_5k: __kurt_2_5k,
         kurt_2_5k: __kurt_2_5k,
Строка 150: Строка 162:
         kurt_10_20k: __kurt_10_20k,
         kurt_10_20k: __kurt_10_20k,
         kurt_30_40k: __kurt_30_40k,
         kurt_30_40k: __kurt_30_40k,
         kurt_40_80k: __kurt_40_80k
         kurt_40_80k: __kurt_40_80k,
     };
     };



Текущая версия от 04:33, 9 августа 2024

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

Функция предназначена для реализации набора стандартных измерений параметров вибрации. Функция возвращает набор объектов с результатами измерений, по ключу value которых можно получить значение рассчитанного параметра.

Cодержание функции может дополняться!

Синтаксис

Стандартная конструкция выглядит таким образом:

var __mes = getStdMeasures(
    {
      src: gtl.analog_inputs[0], //источник сигнала вибрации
      time: 0.25, //интервал расчета параметров 
      avg: 8 //количество отсчетов для усреднения
    }
);

Результат

__mes.rms_A2_3000.value - СКЗ виброускорения в диапазоне 2-3000 Гц;
__mes.rms_A2_10000.value - СКЗ виброускорения в диапазоне 2-10000 Гц;
__mes.rms_A100_10000.value - СКЗ виброускорения в диапазоне 100-10000 Гц;
__mes.ampl_A100_10000.value - амплитуда виброускорения в диапазоне 100-10000 Гц;
__mes.ampl_full.value - амплитуда виброускорения во всем диапазоне измерения;
__mes.rms_V2_1000.value - СКЗ виброскорости в диапазоне 2-1000 Гц;
__mes.rms_V10_1000.value - СКЗ виброскорости в диапазоне 10-1000 Гц;
__mes.rms_S2_200.value - СКЗ виброперемещения в диапазоне 2-200 Гц;
__mes.ptp_S2_200.value - размах виброперемещения в диапазоне 2-200 Гц;
__mes.kurt_full.value - эксцесс во всем диапазоне измерения;
__mes.kurt_2_5k.value - эксцесс в полосе 2.5-5 кГц;
__mes.kurt_5_10k.value - эксцесс в полосе 5-10 кГц;
__mes.kurt_10_20k.value - эксцесс в полосе 10-20 кГц;
__mes.kurt_30_40k.value - эксцесс в полосе 30-40 кГц;
__mes.kurt_40_80k.value - эксцесс в полосе 40-80 кГц;

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

function getStdMeasures(options) {
    let __source = options.src;
    let __time = 0.1;
    let __avg = 5;

    if (options.time != undefined) { __time = options.time };
    if (options.avg != undefined) { __avg = options.avg };

    function getFilter(L, R) {
        let __filter = gtl.add_filter_iir(__source);
        __filter.kind = gtl.filter_iir.butterworth;
        __filter.order = 10;

        switch (L) {
            case "lowpass":
                __filter.type = gtl.filter_iir.lowpass;
                __filter.frequency = R;
                break;

            case "highpass":
                __filter.type = gtl.filter_iir.highpass;
                __filter.frequency = R;
                break;

            default:
                __filter.type = gtl.filter_iir.bandpass;
                __filter.frequency = (R - L) / 2 + L;
                __filter.width = R - L;
                break;
        };

        return __filter;
    }; //формирование фильтра

    function getIntg(src, taps, scale) {
        let __intg = gtl.add_intg(src);
        __intg.taps = taps;
        __intg.scale = scale;

        return __intg;
    }; //интегрирование сигнала

    function getRMS(src) {
        let __rms = gtl.add_value_rms(src);
        __rms.time = __time;
        __rms.avg_cnt = __avg;

        return __rms;
    }; //получение СКЗ

    function getAmpl(src) {
        let __ampl = gtl.add_value_ampl(src);
        __ampl.time = __time;
        __ampl.avg_cnt = __avg;

        return __ampl;
    }; //получение амплитуды

    function getPtP(src) {
        let __ptp = gtl.add_value_peak_to_peak(src);
        __ptp.time = __time;
        __ptp.avg_cnt = __avg;
        
        return __ptp;
    }; //получение размаха

    function getKurt(src) {
        let __kurt = gtl.add_value_kurt(src);
        __kurt.time = __time;
        __kurt.avg_cnt = __avg;

        return __kurt;
    }; //получение эксцесса

    //[Набор фильтров]
    let __filter_2_200 = getFilter(2, 200);
    let __filter_2_1000 = getFilter(2, 1000);
    let __filter_10_1000 = getFilter(10, 1000);
    let __filter_2_3000 = getFilter(2, 3000);
    let __filter_2_10000 = getFilter(2, 10000);
    let __filter_100_10000 = getFilter(100, 10000);
    let __filter_2_5k = getFilter(2500, 5000);
    let __filter_5_10k = getFilter(5000, 10000);
    let __filter_10_20k = getFilter(10000, 20000);
    let __filter_30_40k = getFilter(30000, 40000);
    let __filter_40_80k = getFilter(40000, 80000);

    //[Набор интеграторов]
    let __pre_int1 = getIntg(__filter_2_1000, 1, 1000);
    let __pre_int2 = getIntg(__filter_10_1000, 1, 1000);
    let __pre_int3 = getIntg(__filter_2_200, 2, 1);

    //[Расчет набора параметров]
    let __rms_A2_3000 = getRMS(__filter_2_3000); //СКЗ виброускорения в диапазоне 2-3000 Гц 
    let __rms_A2_10000 = getRMS(__filter_2_10000); //СКЗ виброускорения в диапазоне 2-10000 Гц   
    let __rms_A100_10000 = getRMS(__filter_100_10000); //СКЗ виброускорения в диапазоне 100-10000 Гц

    let __ampl_A100_10000 = getAmpl(__filter_100_10000); //амплитуда виброускорения в диапазоне 100-10000 Гц
    let __ampl_full = getAmpl(__source); //амплитуда виброускорения во всем диапазоне измерения

    let __rms_V2_1000 = getRMS(__pre_int1); //СКЗ виброскорости в диапазоне 2-1000 Гц
    let __rms_V10_1000 = getRMS(__pre_int2); //СКЗ виброскорости в диапазоне 10-1000 Гц
    let __rms_S2_200 = getRMS(__pre_int3); //СКЗ виброперемещения в диапазоне 2-200 Гц   

    let __ptp_S2_200 = getPtP(__pre_int3); //размах виброперемещения в диапазоне 2-200 Гц

    let __kurt_full = getKurt(__source); //эксцесс во всем диапазоне измерения
    let __kurt_2_5k = getKurt(__filter_2_5k); //эксцесс в полосе 2.5-5 кГц
    let __kurt_5_10k = getKurt(__filter_5_10k); //эксцесс в полосе 5-10 кГц
    let __kurt_10_20k = getKurt(__filter_10_20k); //эксцесс в полосе 10-20 кГц
    let __kurt_30_40k = getKurt(__filter_30_40k); //эксцесс в полосе 30-40 кГц
    let __kurt_40_80k = getKurt(__filter_40_80k); //эксцесс в полосе 40-80 кГц

    let __result = {
        rms_A2_3000: __rms_A2_3000,
        rms_A2_10000: __rms_A2_10000,
        rms_A100_10000: __rms_A100_10000,
        ampl_A100_10000: __ampl_A100_10000,
        ampl_full: __ampl_full,
        rms_V2_1000: __rms_V2_1000,
        rms_V10_1000: __rms_V10_1000,
        rms_S2_200: __rms_S2_200,
        ptp_S2_200: __ptp_S2_200,
        kurt_full: __kurt_full,
        kurt_2_5k: __kurt_2_5k,
        kurt_5_10k: __kurt_5_10k,
        kurt_10_20k: __kurt_10_20k,
        kurt_30_40k: __kurt_30_40k,
        kurt_40_80k: __kurt_40_80k,
    };

    return __result;
}; //измерение стандартных параметров