userFunctions was cahged

develop
Aleksey_K 2024-07-03 08:57:42 +09:00
parent ff5eb89a17
commit a125cc0fc5
1 changed files with 30 additions and 10 deletions

View File

@ -134,7 +134,7 @@ export function tolerance() {
tol = (2 * FTF()) / (5 * BPFO()); tol = (2 * FTF()) / (5 * BPFO());
break; break;
case 3: //ШВП case 3: //ШВП
tol = (2 * BSFTF()) / (5 * BSNUT()); tol = (2 * BSFTF()) / (5 * BSNUT());
break; break;
case 4: //редуктор case 4: //редуктор
tol = (2 * FREQ()) / (5 * GTFZ()); tol = (2 * FREQ()) / (5 * GTFZ());
@ -218,15 +218,35 @@ export function specParams() {
}; };
}; };
export function specSquare(data, bnd, frq) { export function specSquare(spec, L, R) {
let lines = data.length; //определение количества линий спектра вибрации let base = spec.base; //массив значений средней линии
let res = frq / lines; //определение частотного разрешения спектра вибрации (основание прямоугольной трапеции) let data = spec.data; //массив значений амплитуд
let start = 1; //переменная для определения стартового индекса в массиве let lines = spec.data.length; //количества линий спектра
let S = 0; //переменная расчетной площади спектра вибрации let res = spec.resolution; //частотное разрешения спектра (высота прямоугольной трапеции)
if (bnd !== 0) { start = lines - Math.round((frq - bnd) / res) }; //начальная точка отсчета в массиве (стартовый индекс) let peaks = spec.peaks; //массив обнаруженных гармоник (объекты)
for (let i = start - 1; i <= lines - 2; i++) { S = S + res * ((data[i] + data[i + 1]) / 2) }; //вычисляем площадь спектра вибрации let start = 0; //стартовый индекс в массиве
return S; let end = lines; //конечный индекс в массиве
}; //определение площади спектра let s0 = 0; //площадь под базовой линией
let s1 = 0; //площадь всего спектра
let s2 = 0; //площадь над базовой линией
let s3 = 0; //площадь обнаруженных гармоник
if (L != undefined) { start = Math.round(L / res) };
if (R != undefined) { end = Math.round(R / res) };
for (let i = start; i <= end - 1; i++) {
s0 += 0.5 * (base[i] + base[i + 1]) * res;
s1 += 0.5 * (data[i] + data[i + 1]) * res;
if ((s1 - s0) >= 0) { s2 += s1 - s0 };
if (i <= peaks.length - 1) { s3 += res * peaks[i].level };
};
return {
base: s0,
spec: s1,
harm: s2,
peak: s3
};
}; //определение площадей спектра
export function modFactor(ampl, base) { export function modFactor(ampl, base) {
let dl = (ampl - base); //разность уровней гармонической и случайной составляющей вибрации let dl = (ampl - base); //разность уровней гармонической и случайной составляющей вибрации