Gtld square: различия между версиями
Перейти к навигации
Перейти к поиску
Нет описания правки |
|||
| Строка 1: | Строка 1: | ||
== Краткое описание == | == Краткое описание == | ||
Функция для расчета | Функция для расчета площадей спектра вибрации или его части. Необходима для количественной оценки работы (мощности) колебательных сил, проведения мониторинга изменений параметра и прогнозирования. В результате работы функции возвращается объект с расчетными площадями составляющих спектра. | ||
<p style="color: red>Cодержание функции возможно будет изменяться!</p> | <p style="color: red>Cодержание функции возможно будет изменяться!</p> | ||
== Синтаксис == | == Синтаксис == | ||
Стандартная конструкция выглядит таким образом: | Стандартная конструкция выглядит таким образом: | ||
:<code style="color: purple> | :<code style="color: purple>let __sqrs = specSquare( массив точек спектра, начало отсчета, граничная частота );</code> | ||
== Результат == | |||
:<code style="color: purple>specSquare.base</code> - площадь спектра под базовой линией; | |||
:<code style="color: purple>specSquare.spec</code> - общая площадь спектра; | |||
:<code style="color: purple>specSquare.harm</code> - площадь спектра над базовой линией (случайных и гармонических составляющих); | |||
:<code style="color: purple>specSquare.peak</code> - площадь гармонических составляющих спектра; | |||
== Содержание функции == | == Содержание функции == | ||
<pre> | <pre> | ||
function | function specSquare(spec, bnd, frq) { | ||
let base = spec.base; //массив значений средней линии | |||
let data = spec.data; //массив значений амплитуд | |||
let peaks = spec.peaks; //массив обнаруженных гармоник | |||
let lines = data.length; //определение количества линий спектра вибрации | let lines = data.length; //определение количества линий спектра вибрации | ||
let res = frq / lines; //определение частотного разрешения спектра вибрации (основание прямоугольной трапеции) | let res = frq / lines; //определение частотного разрешения спектра вибрации (основание прямоугольной трапеции) | ||
let start = 1; //переменная для определения стартового индекса в массиве | let start = 1; //переменная для определения стартового индекса в массиве | ||
let | let s0 = 0; //переменная расчетной площади под базовой линией | ||
let s1 = 0; //переменная расчетной площади всего спектра | |||
let s2 = 0; //переменная расчетной площади обнаруженных гармоник | |||
if (bnd !== 0) { start = lines - Math.round((frq - bnd) / res) }; //начальная точка отсчета в массиве (стартовый индекс) | if (bnd !== 0) { start = lines - Math.round((frq - bnd) / res) }; //начальная точка отсчета в массиве (стартовый индекс) | ||
for (let i = start - 1; i <= lines - 2; i++) { | for (let i = start - 1; i <= lines - 2; i++) { | ||
return | s0 += res * ((base[i] + base[i + 1]) / 2); //площадь под базовой линией | ||
}; | s1 += res * ((data[i] + data[i + 1]) / 2); //площадь спектра | ||
if (i <= peaks.length) { s2 += res * peaks[i].level }; | |||
}; //вычисляем площадь спектра вибрации | |||
return { | |||
base: s0, | |||
spec: s1, | |||
harm: s1 - s0, | |||
peak: s2 | |||
}; | |||
}; //определение площадей спектра | |||
</pre> | </pre> | ||
Версия от 06:03, 2 июля 2024
Краткое описание
Функция для расчета площадей спектра вибрации или его части. Необходима для количественной оценки работы (мощности) колебательных сил, проведения мониторинга изменений параметра и прогнозирования. В результате работы функции возвращается объект с расчетными площадями составляющих спектра.
Cодержание функции возможно будет изменяться!
Синтаксис
Стандартная конструкция выглядит таким образом:
let __sqrs = specSquare( массив точек спектра, начало отсчета, граничная частота );
Результат
specSquare.base- площадь спектра под базовой линией;specSquare.spec- общая площадь спектра;specSquare.harm- площадь спектра над базовой линией (случайных и гармонических составляющих);specSquare.peak- площадь гармонических составляющих спектра;
Содержание функции
function specSquare(spec, bnd, frq) {
let base = spec.base; //массив значений средней линии
let data = spec.data; //массив значений амплитуд
let peaks = spec.peaks; //массив обнаруженных гармоник
let lines = data.length; //определение количества линий спектра вибрации
let res = frq / lines; //определение частотного разрешения спектра вибрации (основание прямоугольной трапеции)
let start = 1; //переменная для определения стартового индекса в массиве
let s0 = 0; //переменная расчетной площади под базовой линией
let s1 = 0; //переменная расчетной площади всего спектра
let s2 = 0; //переменная расчетной площади обнаруженных гармоник
if (bnd !== 0) { start = lines - Math.round((frq - bnd) / res) }; //начальная точка отсчета в массиве (стартовый индекс)
for (let i = start - 1; i <= lines - 2; i++) {
s0 += res * ((base[i] + base[i + 1]) / 2); //площадь под базовой линией
s1 += res * ((data[i] + data[i + 1]) / 2); //площадь спектра
if (i <= peaks.length) { s2 += res * peaks[i].level };
}; //вычисляем площадь спектра вибрации
return {
base: s0,
spec: s1,
harm: s1 - s0,
peak: s2
};
}; //определение площадей спектра