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

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


== Синтаксис ==
== Синтаксис ==
Стандартная конструкция выглядит таким образом:
Стандартная конструкция выглядит таким образом:
:<code style="color: purple>speс_params();</code>
:<code style="color: purple>let __prms = speсParams( частота вращения );</code>


== Результат ==
== Результат ==
:<code style="color: purple>speс_params().frequency;</code> - граничная частота спектра (ширина), Гц;
:<code style="color: purple>__prms.filter.frequency;</code> - центральная частота полосового фильтра, Гц;
:<code style="color: purple>speс_params().lines;</code> - количество линий, шт;
:<code style="color: purple>__prms.filter.width;</code> - ширина полосы полосового фильтра, Гц;
:<code style="color: purple>speс_params().resolution;</code> - частотное разрешение спектра;
:<code style="color: purple>__prms.spec.frequency;</code> - граничная частота спектра (ширина), Гц;
:<code style="color: purple>__prms.spec.lines;</code> - количество линий спектра, шт;
:<code style="color: purple>__prms.spec.resolution;</code> - частотное разрешение спектра;
:<code style="color: purple>__prms.spec.tolerance;</code> - коридор обнаружения гармоники;


== Содержание функции ==
== Содержание функции ==
<pre>
<pre>
function spec_params() {
function specParams(freq) {
     let frq = 200; //ширина спектра
     let __fltr = {}; //объект расчетных параметров полосового фильтра
     let res = 400; //частотное разрешение
    let __spec = {}; //объект расчетных параметров спектра
    let __tol = 0; //коридор обнаружения гармоники
    let __frq = 200; //граничная частота спектра
    let __lines = 400; //количество линий спектра
 
    let __filter = bpfFreq(freq); //центральная частота полосового фильтра
    let __width = bpfWidth(3, __filter); //ширина полосового фильтра для спектра огибающей
 
     function bpfFreq(rps) {
        let __filter = 1850 * Math.sqrt(rps);
        //let __filter = 6013.41 * Math.log(0.266935 * rps + 1.1201);
        return __filter;
    };
 
    function bpfWidth(n, filter) {
        let kf = (2 ** (1 / n) - 1) / ((2 ** (1 / n)) ** 0.5); //коэффициент для полосового фильтра
        let __wdt = kf * filter;
        return __wdt;
    };
 
     function getStandart(value) {
     function getStandart(value) {
         let arr = [50, 100, 200, 400, 800, 1600, 3200, 6400, 12800]; //массив стандартных величин
         let arr = [50, 100, 200, 400, 800, 1600, 3200, 6400, 12800];
         let t = arr[0];
         let __res = 0;
         if (value >= arr[arr.length - 1]) { t = arr[arr.length - 1] } else {
         arr.some((elem, i) => { if (value <= elem) { __res = arr[i]; return __res; }; });
            for (let i = 0; i <= arr.length - 1; i++) {
         return __res;
                if (value > arr[i]) { t = arr[i + 1] };
            };
         }; return t
     };
     };


Строка 31: Строка 50:
             break;
             break;
         case 1: //подшипник скольжения
         case 1: //подшипник скольжения
             frq = 20 * FREQ();
             __tol = 0;
             res = FREQ() / 8;
            __frq = 20 * freq;
             __lines = __frq / (freq / 8);
             break;
             break;
         case 2: //подшипник качения
         case 2: //подшипник качения
             frq = 3 * BPFI() + 4 * FREQ();
             __tol = (2 * FTF(freq)) / (5 * BPFO(freq));
             res = FREQ() / 8;
            __frq = getStandart(5 * BPFI(freq) + 4 * freq);
             __lines = getStandart(__frq / (freq / 8));
             break;
             break;
         case 3: //ШВП
         case 3: //ШВП
             frq = 5 * BSSCR() + 4 * FREQ();
             __tol = (2 * BSFTF(freq)) / (5 * BSNUT(freq));
             res = FREQ() / 8;
            __frq = getStandart(5 * BSSCR(freq) + 4 * freq);
             __lines = getStandart(__frq / (freq / 8));
             break;
             break;
         case 4: //редуктор
         case 4: //редуктор
             frq = 3 * GTFZ() + 4 * FREQ();
             __tol = (2 * freq) / (5 * GTFZ(freq));
             res = FREQ() / 8;
            __frq = getStandart(3 * GTFZ(freq) + 4 * freq);
             __lines = getStandart(__frq / (freq / 8));
             break;
             break;
         case 5: //ременная передача
         case 5: //ременная передача
             frq = 400;
             __tol = 0;
             res = BDFB() / 4;
            __frq = getStandart(400);
             __lines = getStandart(__frq / (BDFB(freq) / 4));
             break;
             break;
         case 6: //зубчатый ремень
         case 6: //зубчатый ремень
             frq = 400;
             __tol = 0;
             res = CBDFB() / 4;
            __frq = getStandart(400);
             __lines = getStandart(__frq / (CBDFB(freq) / 4));
             break;
             break;
         case 7: //помпа
         case 7: //помпа (насос)
             frq = 3 * PMFBLD() + 4 * FREQ();
             __tol = 0;
             res = FREQ() / 8;
            __frq = getStandart(3 * PMFBLD(freq) + 4 * freq);
             __lines = getStandart(__frq / (freq / 8));
             break;
             break;
         case 8: //планетарый редуктор
         case 8: //планетарый редуктор
             frq = 3 * PGFZ() + 4 * FREQ();
             __tol = (2 * PGF2(freq)) / (5 * PGFZ(freq));
             res = PGF2() / 8;
            __frq = getStandart(3 * PGFZ(freq) + 4 * freq);
             __lines = getStandart(__frq / (PGF2(freq) / 8));
             break;
             break;
         case 9: //турбина
         case 9: //турбина
             frq = 3 * TRFBLD() + 4 * FREQ();
             __tol = 0;
             res = FREQ() / 8;
            __frq = getStandart(3 * TRFBLD(freq) + 4 * freq);
             __lines = getStandart(__frq / (freq / 8));
             break;
             break;
         case 10: //электродвигатель
         case 10: //электродвигатель
             frq = 400;
             __tol = 0;
             res = FREQ() / 8;
            __frq = getStandart(400);
             __lines = getStandart(__frq / (freq / 8));
             break;
             break;
    }; return {
        frequency: getStandart(frq),
        lines: getStandart(getStandart(frq) / res),
        resolution: getStandart(frq) / getStandart(getStandart(frq) / res)
     };
     };
};
 
    __fltr["frequency"] = __filter;
    __fltr["width"] = __width;
    __spec["frequency"] = __frq;
    __spec["lines"] = __lines;
    __spec["resolution"] = __frq / __lines;
    __spec["tolerance"] = __tol;
 
    return {
        filter: __fltr,
        spec: __spec
    };
}; //рассчетные параметры спектра вибрации
</pre>
</pre>

Текущая версия от 01:24, 10 июля 2024

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

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

Cодержание функции будет дополняться!

Синтаксис

Стандартная конструкция выглядит таким образом:

let __prms = speсParams( частота вращения );

Результат

__prms.filter.frequency; - центральная частота полосового фильтра, Гц;
__prms.filter.width; - ширина полосы полосового фильтра, Гц;
__prms.spec.frequency; - граничная частота спектра (ширина), Гц;
__prms.spec.lines; - количество линий спектра, шт;
__prms.spec.resolution; - частотное разрешение спектра;
__prms.spec.tolerance; - коридор обнаружения гармоники;

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

function specParams(freq) {
    let __fltr = {}; //объект расчетных параметров полосового фильтра
    let __spec = {}; //объект расчетных параметров спектра
    let __tol = 0; //коридор обнаружения гармоники
    let __frq = 200; //граничная частота спектра
    let __lines = 400; //количество линий спектра

    let __filter = bpfFreq(freq); //центральная частота полосового фильтра 
    let __width = bpfWidth(3, __filter); //ширина полосового фильтра для спектра огибающей

    function bpfFreq(rps) {
        let __filter = 1850 * Math.sqrt(rps);
        //let __filter = 6013.41 * Math.log(0.266935 * rps + 1.1201); 
        return __filter;
    };

    function bpfWidth(n, filter) {
        let kf = (2 ** (1 / n) - 1) / ((2 ** (1 / n)) ** 0.5); //коэффициент для полосового фильтра
        let __wdt = kf * filter;
        return __wdt;
    };

    function getStandart(value) {
        let arr = [50, 100, 200, 400, 800, 1600, 3200, 6400, 12800];
        let __res = 0;
        arr.some((elem, i) => { if (value <= elem) { __res = arr[i]; return __res; }; });
        return __res;
    };

    switch (options.objectType) {
        case 0: //объект не выбран
            break;
        case 1: //подшипник скольжения
            __tol = 0;
            __frq = 20 * freq;
            __lines = __frq / (freq / 8);
            break;
        case 2: //подшипник качения
            __tol = (2 * FTF(freq)) / (5 * BPFO(freq));
            __frq = getStandart(5 * BPFI(freq) + 4 * freq);
            __lines = getStandart(__frq / (freq / 8));
            break;
        case 3: //ШВП
            __tol = (2 * BSFTF(freq)) / (5 * BSNUT(freq));
            __frq = getStandart(5 * BSSCR(freq) + 4 * freq);
            __lines = getStandart(__frq / (freq / 8));
            break;
        case 4: //редуктор
            __tol = (2 * freq) / (5 * GTFZ(freq));
            __frq = getStandart(3 * GTFZ(freq) + 4 * freq);
            __lines = getStandart(__frq / (freq / 8));
            break;
        case 5: //ременная передача
            __tol = 0;
            __frq = getStandart(400);
            __lines = getStandart(__frq / (BDFB(freq) / 4));
            break;
        case 6: //зубчатый ремень
            __tol = 0;
            __frq = getStandart(400);
            __lines = getStandart(__frq / (CBDFB(freq) / 4));
            break;
        case 7: //помпа (насос)
            __tol = 0;
            __frq = getStandart(3 * PMFBLD(freq) + 4 * freq);
            __lines = getStandart(__frq / (freq / 8));
            break;
        case 8: //планетарый редуктор
            __tol = (2 * PGF2(freq)) / (5 * PGFZ(freq));
            __frq = getStandart(3 * PGFZ(freq) + 4 * freq);
            __lines = getStandart(__frq / (PGF2(freq) / 8));
            break;
        case 9: //турбина
            __tol = 0;
            __frq = getStandart(3 * TRFBLD(freq) + 4 * freq);
            __lines = getStandart(__frq / (freq / 8));
            break;
        case 10: //электродвигатель
            __tol = 0;
            __frq = getStandart(400);
            __lines = getStandart(__frq / (freq / 8));
            break;
    };

    __fltr["frequency"] = __filter;
    __fltr["width"] = __width;
    __spec["frequency"] = __frq;
    __spec["lines"] = __lines;
    __spec["resolution"] = __frq / __lines;
    __spec["tolerance"] = __tol;

    return {
        filter: __fltr,
        spec: __spec
    };
}; //рассчетные параметры спектра вибрации