gtld2-diag-scripts/getStdMeasures.js

136 lines
5.1 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

export 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 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 __int1 = gtl.add_filter_iir(__pre_int1);
__int1.kind = gtl.filter_iir.butterworth;
__int1.type = gtl.filter_iir.highpass;
__int1.order = 10;
__int1.frequency = 2;*/
/*let __int2 = gtl.add_filter_iir(__pre_int2);
__int2.kind = gtl.filter_iir.butterworth;
__int2.type = gtl.filter_iir.highpass;
__int2.order = 10;
__int2.frequency = 2;*/
//[Расчет набора параметров]
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 __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,
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;
}; //измерение стандартных параметров