Gtld square: различия между версиями
Перейти к навигации
Перейти к поиску
| (не показано 9 промежуточных версий этого же участника) | |||
| Строка 1: | Строка 1: | ||
== Краткое описание == | == Краткое описание == | ||
Функция для расчета площадей спектра вибрации или его части. Необходима для количественной оценки работы (мощности) колебательных сил, проведения мониторинга изменений параметра и прогнозирования. В результате работы функции возвращается объект с расчетными площадями составляющих спектра. | Функция для расчета площадей спектра вибрации или его части. Необходима для количественной оценки работы (мощности) колебательных сил, проведения мониторинга изменений параметра и прогнозирования. В качестве аргументов подается объект, содержащий массив данных и границы расчета площади. В результате работы функции возвращается объект с расчетными площадями составляющих спектра. | ||
<p style="color: red>Cодержание функции возможно будет изменяться!</p> | <p style="color: red>Cодержание функции возможно будет изменяться!</p> | ||
== Синтаксис == | == Синтаксис == | ||
Стандартная конструкция выглядит таким образом: | Стандартная конструкция выглядит таким образом: | ||
:<code style="color: purple>let __sqrs = specSquare( объект спектра, начало отсчета, | :<code style="color: purple>let __sqrs = specSquare( объект спектра, начало отсчета, конец отсчета );</code> | ||
== Результат == | == Результат == | ||
| Строка 15: | Строка 15: | ||
== Содержание функции == | == Содержание функции == | ||
<pre> | <pre> | ||
function specSquare(spec, | function specSquare(spec, L, R) { | ||
let | let __base = spec.base; //массив значений средней линии | ||
let | let __data = spec.data; //массив значений амплитуд | ||
let | let __lines = spec.data.length; //количество линий спектра | ||
let | let __res = spec.resolution; //частотное разрешения спектра | ||
let | let __start = 0; //стартовый индекс в массиве | ||
let | let __end = __lines; //конечный индекс в массиве | ||
let s0 = 0; // | let s0 = 0; //площадь под базовой линией | ||
let s1 = 0; // | let s1 = 0; //площадь всего спектра | ||
let s2 = 0; // | let s2 = 0; //площадь над базовой линией | ||
if ( | let s3 = 0; //площадь обнаруженных гармоник | ||
for (let i = | if (L != undefined) { __start = Math.round(L / __res) }; | ||
s0 += | if (R != undefined) { __end = Math.round(R / __res) }; | ||
if ( | for (let i = __start; i <= __end - 1; i++) { | ||
}; | s0 += __base[i] * __res; | ||
s1 += __data[i] * __res; | |||
let __delta = __data[i] - __base[i]; | |||
if (__delta >= 0) { s2 += __delta * __res }; | |||
if (__delta >= spec.peak_level) { s3 += __delta * __res }; | |||
}; | |||
return { | return { | ||
base: s0, | base: s0, | ||
spec: s1, | spec: s1, | ||
harm: | harm: s2, | ||
peak: | peak: s3 | ||
}; | }; | ||
}; //определение площадей спектра | }; //определение площадей спектра | ||
</pre> | </pre> | ||
Текущая версия от 00:46, 22 июля 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 __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 += __base[i] * __res;
s1 += __data[i] * __res;
let __delta = __data[i] - __base[i];
if (__delta >= 0) { s2 += __delta * __res };
if (__delta >= spec.peak_level) { s3 += __delta * __res };
};
return {
base: s0,
spec: s1,
harm: s2,
peak: s3
};
}; //определение площадей спектра