Gtld square: различия между версиями
Перейти к навигации
Перейти к поиску
| Строка 19: | Строка 19: | ||
let data = spec.data; //массив значений амплитуд | let data = spec.data; //массив значений амплитуд | ||
let lines = spec.data.length; //количества линий спектра вибрации | let lines = spec.data.length; //количества линий спектра вибрации | ||
let res = spec.resolution; //частотное разрешения спектра вибрации ( | let res = spec.resolution; //частотное разрешения спектра вибрации (высота прямоугольной трапеции) | ||
let peaks = spec.peaks; //массив обнаруженных гармоник (объекты) | let peaks = spec.peaks; //массив обнаруженных гармоник (объекты) | ||
let start = 0; //стартовый индекс в массиве | let start = 0; //стартовый индекс в массиве | ||
| Строка 27: | Строка 27: | ||
let s2 = 0; //площадь над базовой линией | let s2 = 0; //площадь над базовой линией | ||
let s3 = 0; //площадь обнаруженных гармоник | let s3 = 0; //площадь обнаруженных гармоник | ||
if (L != undefined) { start = Math.round(L / res) }; | if (L != undefined) { start = Math.round(L / res) }; | ||
if (R != undefined) { end = Math.round(R / res) }; | if (R != undefined) { end = Math.round(R / res) }; | ||
for (let i = start; i <= end - 1; i++) { | for (let i = start; i <= end - 1; i++) { | ||
s0 += 0.5 * (base[i] + base[i + 1]) * res; | s0 += 0.5 * (base[i] + base[i + 1]) * res; | ||
s1 += 0.5 * (data[i] + data[i + 1]) * res; | s1 += 0.5 * (data[i] + data[i + 1]) * res; | ||
if ((s1 - s0) >= 0) { s2 += s1 - s0 }; | if ((s1 - s0) >= 0) { s2 += s1 - s0 }; | ||
if (i <= peaks.length - 1) { s3 += res * peaks[i].level }; | if (i <= peaks.length - 1) { s3 += res * peaks[i].level }; | ||
}; | }; | ||
return { | return { | ||
Версия от 23:50, 2 июля 2024
Краткое описание
Функция для расчета площадей спектра вибрации или его части. Необходима для количественной оценки работы (мощности) колебательных сил, проведения мониторинга изменений параметра и прогнозирования. В качестве аргументов подается объект, содержащий массив данных и границы расчета площади. В результате работы функции возвращается объект с расчетными площадями составляющих спектра.
Cодержание функции возможно будет изменяться!
Синтаксис
Стандартная конструкция выглядит таким образом:
let __sqrs = specSquare( объект спектра, начало отсчета, граничная частота );
Результат
__sqrs.base- площадь спектра под базовой линией;__sqrs.spec- общая площадь спектра;__sqrs.harm- площадь спектра над базовой линией (случайных и гармонических составляющих);__sqrs.peak- площадь гармонических составляющих спектра;
Содержание функции
function specSquare(spec, L, R) {
let base = spec.base; //массив значений средней линии
let data = spec.data; //массив значений амплитуд
let lines = spec.data.length; //количества линий спектра вибрации
let res = spec.resolution; //частотное разрешения спектра вибрации (высота прямоугольной трапеции)
let peaks = spec.peaks; //массив обнаруженных гармоник (объекты)
let start = 0; //стартовый индекс в массиве
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
};
}; //определение площадей спектра