new user-functions

develop
Aleksey_K 2024-04-23 14:17:44 +09:00
parent 9e012f49a8
commit 37b4a5002b
1 changed files with 54 additions and 113 deletions

View File

@ -98,7 +98,7 @@ export function PGFZ() { return pgZ2 * PGFSAT() }; //зубцовая часто
export function TRFBLD() { return FREQ() * trBlades; }; //лопастная частота
export function filter_frequency() {
let filter = 6013.41 * Math.log(0.266935 * imp.FREQ() + 1.1201);
let filter = 6013.41 * Math.log(0.266935 * FREQ() + 1.1201);
return filter;
}; //расчетная центральная частота полосового фильтра для спектра огибающей
@ -110,79 +110,6 @@ export function filter_width(number) {
return width;
}; //ширина фильтра спектра огибающей
export function spec_width() {
let flim = {};
switch (options.objectType) {
case 0: //объект не выбран
break;
case 1: //подшипник скольжения
flim = { as0: 1600, as1: 800, es: 20 * FREQ() };
break;
case 2: //подшипник качения
flim = { as0: 1600, as1: 800, es: 3 * BPFI() + 4 * FREQ() };
break;
case 3: //ШВП
flim = { as0: 1600, as1: 800, es: 3 * BPFI() + 4 * FREQ() };
break;
case 4: //редуктор
flim = { as0: 1600, as1: 800, es: 3 * GTFZ() + 4 * FREQ() };
break;
case 5: //ременная передача
break;
case 6: //зубчатый ремень
break;
case 7: //помпа
flim = { as0: 1600, as1: 800, es: 3 * PMFBLD() + 4 * FREQ() };
break;
case 8: //планетарый редуктор
flim = { as0: 1600, as1: 800, es: 3 * PGFZ() + 4 * FREQ() };
break;
case 9: //турбина
flim = { as0: 1600, as1: 800, es: 3 * TRFBLD() + 4 * FREQ() };
break;
case 10: //электродвигатель
break;
}; return flim;
}; //ширина спектров вибрации
export function spec_resolution() {
let res = 0;
switch (options.objectType) {
case 0: //объект не выбран
break;
case 1: //подшипник скольжения
res = FREQ() / 8;
break;
case 2: //подшипник качения
res = FREQ() / 8;
break;
case 3: //ШВП
break;
case 4: //редуктор
res = FREQ() / 8;
break;
case 5: //ременная передача
res = BDFB() / 4;
break;
case 6: //зубчатый ремень
res = CBDFB() / 4;
break;
case 7: //помпа
res = FREQ() / 8;
break;
case 8: //планетарый редуктор
res = PGF2() / 8;
break;
case 9: //турбина
res = FREQ() / 8;
break;
case 10: //электродвигатель
break;
}; return res;
}; //частотное разрешение (разделение двух гармоник с минимальной частотой)
export function spec_lines() { return spec_width().es / spec_resolution(); }; //минимальное количество линий спектра
export function tolerance() {
let tol = 0;
switch (options.objectType) {
@ -214,50 +141,64 @@ export function tolerance() {
}; return tol;
}; //максимальный коридор обнаружения гармоник (tolerance)
export function standart_width(width) {
let STFRQ = 0;
switch (true) {
case width <= 50:
STFRQ = 50;
break;
case width <= 100:
STFRQ = 100;
break;
case width <= 200:
STFRQ = 200;
break;
case width <= 400:
STFRQ = 400;
break;
case width <= 800:
STFRQ = 800;
break;
default:
STFRQ = 1600;
break;
}; return STFRQ;
}; //стандартная ширина спектра
export function spec_params() {
let frq = 200; //ширина спектра
let res = 400; //частотное разрешение
function getStandart(value) {
let arr = [50, 100, 200, 400, 800, 1600, 3200]; //массив стандартных величин
let t = arr[0];
if (value >= arr[arr.length - 1]) { t = arr[arr.length - 1] } else {
for (let i = 0; i <= arr.length - 1; i++) {
if (value > arr[i]) { t = arr[i + 1] };
};
}; return t
};
export function standart_lines(lines) {
let STLNS = 0;
switch (true) {
case lines <= 200:
STLNS = 200;
switch (options.objectType) {
case 0: //объект не выбран
break;
case lines <= 400:
STLNS = 400;
case 1: //подшипник скольжения
frq = 20 * FREQ();
res = FREQ() / 8;
break;
case lines <= 800:
STLNS = 800;
case 2: //подшипник качения
frq = 5 * BPFI() + 4 * FREQ();
res = FREQ() / 8;
break;
case lines <= 1600:
STLNS = 1600;
case 3: //ШВП
frq = 5 * BPFI() + 4 * FREQ();
res = FREQ() / 8;
break;
default:
STLNS = 3200;
case 4: //редуктор
frq = 3 * GTFZ() + 4 * FREQ();
res = FREQ() / 8;
break;
}; return STLNS;
}; //стандартное количество линий спектра
case 5: //ременная передача
frq = 400;
res = BDFB() / 4;
break;
case 6: //зубчатый ремень
frq = 400;
res = CBDFB() / 4;
break;
case 7: //помпа
frq = 3 * PMFBLD() + 4 * FREQ();
res = FREQ() / 8;
break;
case 8: //планетарый редуктор
frq = 3 * PGFZ() + 4 * FREQ();
res = PGF2() / 8;
break;
case 9: //турбина
frq = 3 * TRFBLD() + 4 * FREQ();
res = FREQ() / 8;
break;
case 10: //электродвигатель
frq = 400;
res = FREQ() / 8;
break;
}; return { frequency: getStandart(frq), lines: getStandart(frq / res), resolution: getStandart(frq) / getStandart(frq / res) };
};
export function spec_square(data, bnd, frq) {
let lines = data.length; //определение количества линий спектра вибрации
@ -271,7 +212,7 @@ export function spec_square(data, bnd, frq) {
export function mod_factor(ampl, base) {
let dl = (ampl - base); //разность уровней гармонической и случайной составляющей вибрации
let df = spec_resolution() / filter_width(); //отношение ширины фильтра к частотному разрешению спектра
let df = spec_params().resolution / filter_width(); //отношение частотному разрешению спектра к ширине фильтра
let mod = Math.sqrt((10 ** (dl / 10) - 1) * df);
return mod;
}; //определение условной глубины модуляции