Gtl.create tools: различия между версиями

Материал из GTL-wiki
Перейти к навигации Перейти к поиску
 
(не показано 7 промежуточных версий этого же участника)
Строка 18: Строка 18:
<pre style="color: purple>
<pre style="color: purple>
let __set = {
let __set = {
     "Частота вращения сепаратора": [0xFF2400, fnc.FTF(__frq), 4, 0, 6],
     "Частота вращения сепаратора": [0xFF2400, 2.05, 4, 6, 0],
     "Частота вращения": [0x89AC76, fnc.FREQ(__frq), 4, 0, 6],
     "Частота вращения": [0x89AC76, 4.94, 4, 6, 0],
     "Частота контакта тел качения": [0xFFA000, fnc.BSF(__frq), 5, fnc.FTF(__frq), 10],
     "Частота контакта тел качения": [0xFFA000, 14.25, 5, 10, 2.05],
     "Частота перекатывания тел качения по наружному кольцу": [0x42AAFF, fnc.BPFO(__frq), 6, fnc.FTF(__frq), 13],
     "Частота перекатывания тел качения по наружному кольцу": [0x42AAFF, 30.81, 6, 13, 2.05],
     "Частота перекатывания тел качения по внутреннему кольцу": [0x34C924, fnc.BPFI(__frq), 6, fnc.FREQ(__frq), 8],
     "Частота перекатывания тел качения по внутреннему кольцу": [0x34C924, 43.29, 6, 8, 4.94],
}; //набор подшипниковых частот
}; //набор подшипниковых частот
</pre>
</pre>
<pre>
<pre>
где под индексом в массиве:
где в массиве под индексом:
0 - цвет линии в формате HEX;
0 - цвет линии в формате HEX;
1 - основная частота, Гц;
1 - основная частота, Гц;
2 - количество гармоник, шт;
2 - количество гармоник, шт;
3 - модулирующая частота, Гц;
3 - пороговый уровень сильного дефекта;
4 - пороговый уровень сильного дефекта.  
4 - модулирующая частота, Гц.  
</pre>
</pre>


Строка 68: Строка 68:
         let __freq = __arr[1]; //расчетная частота
         let __freq = __arr[1]; //расчетная частота
         let __count = __arr[2]; //количество гармоник
         let __count = __arr[2]; //количество гармоник
         let __mod = __arr[3]; //модулирующая частота
         let __lvl = __arr[3]; //пороговый уровень сильного дефекта
         let __lvl = __arr[4]; //пороговый уровень сильного дефекта
         let __mod = __arr[4]; //модулирующая частота
          
          
         let __row = __tools.harms.add(
         let __row = __tools.harms.add(
Строка 82: Строка 82:
         __row.name = __name;
         __row.name = __name;


         if (options.mod != 0) {
         if (__mod != undefined) {
             __row.modulate(
             __row.modulate(
                 {
                 {

Текущая версия от 04:13, 23 августа 2024

Краткое описание

Функция предназначена для упрощенного построения компонентов (маркеров гармоник, базовой линии) и частотных линий на координатной плоскости спектра вибрации.

Объявление функции

Для создания компонентов используется запись:

let __tools = createTools(
    {
        spec: spen, //спектр для построения модели (объект)
        set: __set, //источник данных для построения частотных линий
        tol: 1 //коридор обнаружения гармоники на портрете, %
    }
);

Свойства (методы)

Аргумент по ключу "set" принимает объект определенной структуры, содержащий массив данных, необходимых для построения частотных линий. Если объект не передается, то частотные линии не строятся.

let __set = {
    "Частота вращения сепаратора": [0xFF2400, 2.05, 4, 6, 0],
    "Частота вращения": [0x89AC76, 4.94, 4, 6, 0],
    "Частота контакта тел качения": [0xFFA000, 14.25, 5, 10, 2.05],
    "Частота перекатывания тел качения по наружному кольцу": [0x42AAFF, 30.81, 6, 13, 2.05],
    "Частота перекатывания тел качения по внутреннему кольцу": [0x34C924, 43.29, 6, 8, 4.94],
}; //набор подшипниковых частот
где в массиве под индексом:
0 - цвет линии в формате HEX;
1 - основная частота, Гц;
2 - количество гармоник, шт;
3 - пороговый уровень сильного дефекта;
4 - модулирующая частота, Гц. 

Содержание функции

function createTools(options) {
    let __spec = options.spec; //источник данных спектра
    let __set = {}; //источник данных для построения частотных линий
    if (options.set != undefined) { __set = options.set };

    let __tools = gtl.create_spec_tools(
        {
            data: __spec.data, //массив значений амплитуд спектра
            df: __spec.resolution, //частотное разрешение спектра
            base: {
                factor: 100, //коэффициент сглаживания базовой линии
                visible: true, //отображение базовой линии
                color: 0xFFFF00 //цвет базовой линии в формате HEX
            },
            peaks: {
                color: __spec.color, //цвет маркеров обнаруженных гармоник 
                visible: false, //отображение маркеров
                level: __spec.peak_level //уровень обнаружения гармоник в спектре
            },
            harms: {
                tolerance: options.tol //коридор обнаружения гармоник в спектре
            }
        }
    );

    let __rows = Object.keys(__set); //массив ключей объекта (наименование частот)
    for (let i = 0; i < __rows.length; i++) {
        let __name = __rows[i]; //название гармонического ряда
        let __arr = __set[__name]; //массив значений
        let __color = __arr[0]; //цвет ряда в формате HEX
        let __freq = __arr[1]; //расчетная частота
        let __count = __arr[2]; //количество гармоник
        let __lvl = __arr[3]; //пороговый уровень сильного дефекта
        let __mod = __arr[4]; //модулирующая частота
        
        let __row = __tools.harms.add(
            {
                frequency: __freq, //функциональная частота
                count: __count, //количество гармоник
                color: __color, //цвет линий
                weight: 2, //толщина линий
                visible: false //отображение линий
            }
        );
        __row.name = __name;

        if (__mod != undefined) {
            __row.modulate(
                {
                    frequency: __mod, //частота амплитудной модуляции
                    count: 2, //количество боковых составляющих слева и справа
                    color: __color, //цвет линий в формате HEX
                    weight: 0.5 //толщина линий
                }
            );
        };
    };

    return __tools;
}; //Построение компонентов и частотных линий на спектре