gtld2-diag-scripts/getStdMeasures.js

136 lines
5.1 KiB
JavaScript
Raw Normal View History

2024-06-19 14:35:28 +03:00
export function getStdMeasures(options) {
let __source = options.src;
let __time = 0.1;
let __avg = 5;
2024-06-11 08:41:46 +03:00
2024-06-19 14:35:28 +03:00
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
2024-06-11 08:41:46 +03:00
};
return __result;
}; //измерение стандартных параметров