//параметры подшипника качения var rbModelName = options.rbModelName || "No Name"; var rbVendor = options.rbVendor || "No Vendor"; var d_inner = options.rbInnerD || 0; //диаметр внутреннего кольца var d_outer = options.rbOuterD || 0; //диаметр наружного кольца var d_roller = options.rbRollerD || 0; //диаметр тела качения var z = options.rbRollerCount || 0; //количество тел качения var angle = (options.rbAngle * 3.1415926) / 180 || 0; //угол контакта тел качения (рад.) var d_cage = (d_inner + d_outer) / 2; // диаметр сепаратора (средний диаметр) //параметры редуктора var gtZ1 = options.gtZ1 || 0; //количество зубьев шестерни var gtZ2 = options.gtZ2 || 0; //количество зубьев зубчатого колеса //параметры ременной передачи var bdD1 = options.bdD1 || 0; //диаметр ведущего шкива var bdD2 = options.bdD2 || 0; //диаметр ведомого шкива var bdL = options.bdL || 0; //длинна ремня //параметры зубчатой ременной передачи var cbdZ1 = options.cbdZ1 || 0; //количество зубьев ведущего шкива var cbdZ2 = options.cbdZ2 || 0; //количество зубьев ведомого шкива var cbdZ3 = options.cbdZ3 || 0; //количество зубьев ремня //параметры насоса var pmBlades = options.pmBlades || 0; //количество лопастей насосного колеса //параметры планетарной передачи var pgZ1 = options.pgZ1 || 0; //количество зубьев солнца var pgZ2 = options.pgZ2 || 0; //количество зубьев саттелитов var pgZ3 = options.pgZ3 || 0; //количество зубьев короны var pgN = options.pgN || 0; //количество саттелитов //параметры турбины var trBlades = options.trBlades || 0; //количество лопастей крыльчатки турбины //параметры электродвигателя //var trBlades = options.trBlades || 0; //количество лопастей крыльчатки турбины export function FREQ() { let FR = 0; switch (record.tachoOptions.tachoState) { case 0: FR = freq.value * options.tachoRatio; break; case 1: FR = record.tachoOptions.tachoValue * options.tachoRatio; break; case 2: FR = record.tachoOptions.tachoFromInfo * options.tachoRatio; break; }; return FR; }; //определение частоты вращения в зависимости от источника тахо сигнала (FREQ) export function INSTABILITY() { let freq_max = Math.max(...freq.values); let freq_min = Math.min(...freq.values); let instability = (freq_max - freq_min) / freq.value; return instability; }; //нестабильность частоты вращения в % //определение вспомогательных коэффициентов k1 и k2 для подшипников качения var k1 = 0.5 * (1 - (d_roller / d_cage) * Math.cos(angle)); var k2 = 0.5 * (1 + (d_roller / d_cage) * Math.cos(angle)); export function FREQNESS() { let R = (d_inner / 2) + (d_roller / 2); //расстояние до центра тяжести тела качения let freqness = (Math.sqrt(9.81 / (4 * (Math.PI ** 2) * R / 1000))) / k1; return freqness; }; //минимально необходимая частота вращения для компенсации силы тяжести центробежной силой export function FTF() { return k1 * FREQ(); }; //частота вращения сепаратора (FTF) export function BPFO() { return k1 * FREQ() * z; }; //частота перекатывания тел качения по наружному кольцу (BPFO) export function BPFI() { return k2 * FREQ() * z; }; //частота перекатывания тел качения по внутреннему кольцу (BPFI) export function BSF() { return 2 * FREQ() * (d_cage / d_roller) * k1 * k2; }; //частота вращения (контакта) тел качения (BSF) export function BDF2() { return FREQ() * (bdD1 / bdD2) }; //частота вращения ведомого шкива export function BDFB() { return FREQ() * (Math.PI * bdD1 / bdL) }; //частота вращения ремня export function CBFZ() { return FREQ() * cbdZ1; }; //зубцовая частота export function CBDF2() { return FREQ() * (cbdZ1 / cbdZ2) }; //частота вращения ведомого шкива export function CBDFB() { return FREQ() * (cbdZ1 / cbdZ3) }; //частота вращения ремня export function PMFBLD() { return FREQ() * pmBlades; }; //лопастная частота export function GTFZ() { return FREQ() * gtZ1; }; //зубцовая частота export function GTF2() { return FREQ() * (gtZ1 / gtZ2); }; //частота вращения второго вала редуктора export function PGF2() { return (0.5 * FREQ() * pgZ1) / (pgZ1 + pgZ2); }; //частота вращения выходного вала планетарной передачи export function PGFSAT() { return (0.5 * FREQ()) * (pgZ1 / pgZ2) * ((pgZ1 + 2 * pgZ2) / (pgZ1 + pgZ2)); }; //частота вращения саттелита 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); return filter; }; //расчетная центральная частота полосового фильтра для спектра огибающей export function filter_width(number) { let n = 3; if (number != null) {n = number}; let kf = (2 ** (1 / n) - 1) / ((2 ** (1 / n)) ** (1 / 2)); //коэффициент для полосового фильтра let width = kf * filter_frequency(); 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: //ШВП 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) { case 0: //объект не выбран break; case 1: //подшипник скольжения break; case 2: //подшипник качения tol = (2 * FTF()) / (5 * BPFO()); break; case 3: //ШВП break; case 4: //редуктор tol = (2 * FREQ()) / (5 * GTFZ()); break; case 5: //ременная передача break; case 6: //зубчатый ремень break; case 7: //помпа break; case 8: //планетарый редуктор tol = (2 * PGF2()) / (5 * PGFZ()); break; case 9: //турбина break; case 10: //электродвигатель break; }; 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 standart_lines(lines) { let STLNS = 0; switch (true) { case lines <= 200: STLNS = 200; break; case lines <= 400: STLNS = 400; break; case lines <= 800: STLNS = 800; break; case lines <= 1600: STLNS = 1600; break; default: STLNS = 3200; break; }; return STLNS; }; //стандартное количество линий спектра export function spec_square(data, bnd, frq) { let lines = data.length; //определение количества линий спектра вибрации let res = frq / lines; //определение частотного разрешения спектра вибрации (основание прямоугольной трапеции) let start = 1; //переменная для определения стартового индекса в массиве let S = 0; //переменная расчетной площади спектра вибрации 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) }; //вычисляем площадь спектра вибрации return S; }; //определение площади спектра export function mod_factor(ampl, base) { let dl = (ampl - base); //разность уровней гармонической и случайной составляющей вибрации let df = spec_resolution() / filter_width(); //отношение ширины фильтра к частотному разрешению спектра let mod = Math.sqrt((10 ** (dl / 10) - 1) * df); return mod; }; //определение условной глубины модуляции export function deep_factor(ampl, base) { let deep = (ampl - base) / (ampl + base) * 100; return deep; }; //определение условной глубины модуляции export function ampl_factor(ampl, base) { let crest = ampl / base; return crest; }; //определение амплитудного коэффициента