Gtld square: различия между версиями

Материал из GTL-wiki
Перейти к навигации Перейти к поиску
Нет описания правки
Строка 1: Строка 1:
== Краткое описание ==
== Краткое описание ==
Функция для расчета площади спектра вибрации или его части. Необходима для количественной оценки работы (мощности) колебательных сил, проведения мониторинга изменений параметра и прогнозирования.
Функция для расчета площадей спектра вибрации или его части. Необходима для количественной оценки работы (мощности) колебательных сил, проведения мониторинга изменений параметра и прогнозирования. В результате работы функции возвращается объект с расчетными площадями составляющих спектра.  
<p style="color: red>Cодержание функции возможно будет изменяться!</p>
<p style="color: red>Cодержание функции возможно будет изменяться!</p>


== Синтаксис ==
== Синтаксис ==
Стандартная конструкция выглядит таким образом:
Стандартная конструкция выглядит таким образом:
:<code style="color: purple>spec_square( массив точек спектра, начало отсчета, граничная частота );</code>
:<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 spec_square(data, bnd, frq) {
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 S = 0; //переменная расчетной площади спектра вибрации
     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++) { S = S + res * ((data[i] + data[i + 1]) / 2) }; //вычисляем площадь спектра вибрации
     for (let i = start - 1; i <= lines - 2; i++) {
     return S;
        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
    };
}; //определение площадей спектра