"use strict"; var signals = gtl.options.record.signalsModel; var options = gtl.options; var record = gtl.options.record; var point = gtl.options.point; // Импорт функций var imp = gtl.import("functions_for_balance.js"); var fnc = gtl.import("user-functions.js"); // Цвета (для справки) // #ff0000 - красный // #00ff00 - салатовый // #0fae1a - зелёный // #0000ff - синий // #00ddff - голубой // #ff3dcc - фиолетовый // #ffff00 - жёлтый // ***** БАЛАНСИРОВОЧНЫЙ КАЛЬКУЛЯТОР. ДВЕ ПЛОСКОСТИ ***** // ****************************************************** // Объявление графических плоскостей для построения графиков let plot_pfc = gtl.plots.add("ФЧХ"); // фазо-частотная характеристика let plot_ausp = gtl.plots.add("Спектр виброскорости"); // объект для спектра let plot_vibr = gtl.plots.add("Векторы вибрации"); // объект для векторов вибрации let plot_disb = gtl.plots.add("Расположение дисбаланса"); // объект для дисбаланса // gtl.log.info("размер массива AUSPv_pl", AUSPv_pl.data.length); // gtl.log.info("размер массива pfc_pl", pfc_pl.data.length); // Переменные основные // параметр вибрации (модуль вектора) - виброскорость (мм/с) // угол (фаза) вектора - градусы // масса груза (модуль ветора) - граммы // DCI - Dynamic Coefficient of Influence (динамический коэффициент влияния) // * - значение получаем из измерительного блока при нажатии кнопки // ** - значение вводится пользователем // *** - значение получаем в результате расчёта программы балансировки // значение переменной с нижним подчёркиванием (..._) берётся из "дополнительных опций"; если оно не задано, то рассчитывается в скрипте let R1 = gtl.options.customOptions.R1; // радиус установки грузов на плоскости 1 ** (для вычисления массы пробного груза) let R2 = gtl.options.customOptions.R2; // радиус установки грузов на плоскости 2 ** (для вычисления массы пробного груза) let P = gtl.options.customOptions.P; // масса ротора, кг ** (для вычисления массы пробного груза) let G = gtl.options.customOptions.G; // класс точности балансировки, мм/с ** (ГОСТ 1940) let n = gtl.options.customOptions.n; // скорость вращения, об/мин ** (для вычисления массы пробного груза и допустимого остаточного дисбаланса) let U_per; // допустимый остаточный дисбаланс *** (ГОСТ 1940) let U_res1; // остаточный дисбаланс плоскости 1 *** (ГОСТ 1940) let U_res2; // остаточный дисбаланс плоскости 2 *** (ГОСТ 1940) let U_res; // остаточный дисбаланс суммарный *** (ГОСТ 1940) let L_A = gtl.options.customOptions.L_A;// расстояние от центра масс до плоскости подшипника A let L_B = gtl.options.customOptions.L_B;// расстояние от центра масс до плоскости подшипника B let L = gtl.options.customOptions.L; // расстояние между подшипниковыми опорами let b = gtl.options.customOptions.b; // расстояние между плоскостями коррекции let b_A = gtl.options.customOptions.b_A;// расстояние от плоскости коррекции 1 до подшипниковой опоры A let b_B = gtl.options.customOptions.b_B;// расстояние от плоскости коррекции 2 до подшипниковой опоры B let m_test_1_ = gtl.options.customOptions.m_test_1; // масса пробного груза плоскости 1 ** let m_test_1 = m_test_1_; // масса пробного груза плоскости 1 ** (конечное значение) let m_test_1_corner_ = gtl.options.customOptions.m_test_1_corner; // угол установки пробного груза плоскости 1 ** let m_test_1_corner = m_test_1_corner_; // угол установки пробного груза плоскости 1 ** (конечное значение) let m_test_2_ = gtl.options.customOptions.m_test_2; // масса пробного груза плоскости 2 ** let m_test_2 = m_test_2_; // масса пробного груза плоскости 2 ** (конечное значение) let m_test_2_corner_ = gtl.options.customOptions.m_test_2_corner; // угол установки пробного груза плоскости 2 ** let m_test_2_corner = m_test_2_corner_; // угол установки пробного груза плоскости 2 ** (конечное значение) let A0_ = gtl.options.customOptions.A0; // модуль вектора начальной вибрации */** let A0 = A0_; // модуль вектора начальной вибрации */** (конечное значение) let A0_phase_ = gtl.options.customOptions.A0_phase; // фаза вектора начальной вибрации */** let A0_phase = A0_phase_; // фаза вектора начальной вибрации */** (конечное значение) let A1_ = gtl.options.customOptions.A1; // модуль вектора вибрации точки A после установки пробного груза в плоскость 1 */** let A1 = A1_; // модуль вектора вибрации точки A после установки пробного груза в плоскость 1 */** (конечное значение) let A1_phase_ = gtl.options.customOptions.A1_phase; // фаза вектора вибрации точки A после установки пробного груза в плоскость 1 */** let A1_phase = A1_phase_; // фаза вектора вибрации точки A после установки пробного груза в плоскость 1 */** (конечное значение) let dA1; // модуль вектора дельты вибрации точки A после установки пробного груза в плоскость 1 *** let dA1_phase; // фаза вектора дельты вибрации точки A после установки пробного груза в плоскость 1 *** let A2_ = gtl.options.customOptions.A2; // модуль вектора вибрации точки A после установки пробного груза в плоскость 2 */** let A2 = A2_; // модуль вектора вибрации точки A после установки пробного груза в плоскость 2 */** (конечное значение) let A2_phase_ = gtl.options.customOptions.A2_phase; // фаза вектора вибрации точки A после установки пробного груза в плоскость 2 */** let A2_phase = A2_phase_; // фаза вектора вибрации точки A после установки пробного груза в плоскость 2 */** (конечное значение) let dA2; // модуль вектора дельты вибрации точки A после установки пробного груза в плоскость 2 *** let dA2_phase; // фаза вектора дельты вибрации точки A после установки пробного груза в плоскость 2 *** let B0_ = gtl.options.customOptions.B0; // модуль вектора начальной вибрации */** let B0 = B0_; // модуль вектора начальной вибрации */** (конечное значение) let B0_phase_ = gtl.options.customOptions.B0_phase; // фаза вектора начальной вибрации */** let B0_phase = B0_phase_; // фаза вектора начальной вибрации */** (конечное значение) let B1_ = gtl.options.customOptions.B1; // модуль вектора вибрации точки B после установки пробного груза в плоскость 1 */** let B1 = B1_; // модуль вектора вибрации точки B после установки пробного груза в плоскость 1 */** (конечное значение) let B1_phase_ = gtl.options.customOptions.B1_phase; // фаза вектора вибрации точки B после установки пробного груза в плоскость 1 */** let B1_phase = B1_phase_; // фаза вектора вибрации точки B после установки пробного груза в плоскость 1 */** (конечное значение) let dB1; // модуль вектора дельты вибрации точки B после установки пробного груза в плоскость 1 *** let dB1_phase; // фаза вектора дельты вибрации точки B после установки пробного груза в плоскость 1 *** let B2_ = gtl.options.customOptions.B2; // модуль вектора вибрации точки B после установки пробного груза в плоскость 2 */** let B2 = B2_; // модуль вектора вибрации точки B после установки пробного груза в плоскость 2*/** (конечное значение) let B2_phase_ = gtl.options.customOptions.B2_phase; // фаза вектора вибрации точки B после установки пробного груза в плоскость 2 */** let B2_phase = B2_phase_; // фаза вектора вибрации точки B после установки пробного груза в плоскость 2 */** (конечное значение) let dB2 // модуль вектора дельты вибрации точки B после установки пробного груза в плоскость 2 *** let dB2_phase; // фаза вектора дельты вибрации точки B после установки пробного груза в плоскость 2 *** let DCI_A1; // модуль (мм/с/граммы) ДКВ груза m_test_1 в плоскости 1 на вибрацию в точке A **/*** (конечное значение) let DCI_A1_phase; // фаза ДКВ груза m_test_1 в плоскости 1 на вибрацию в точке A **/*** (конечное значение) let DCI_B1; // модуль (мм/с/граммы) ДКВ груза m_test_1 в плоскости 1 на вибрацию в точке B **/*** (конечное значение) let DCI_B1_phase; // фаза ДКВ груза m_test_1 в плоскости 1 на вибрацию в точке B **/*** (конечное значение) let DCI_A2; // модуль (мм/с/граммы) ДКВ груза m_test_2 в плоскости 2 на вибрацию в точке A **/*** (конечное значение) let DCI_A2_phase; // фаза ДКВ груза m_test_2 в плоскости 2 на вибрацию в точке A **/*** (конечное значение) let DCI_B2; // модуль (мм/с/граммы) ДКВ груза m_test_2 в плоскости 2 на вибрацию в точке B **/*** (конечное значение) let DCI_B2_phase; // фаза ДКВ груза m_test_2 в плоскости 2 на вибрацию в точке B **/*** (конечное значение) let Mb1 = gtl.options.customOptions.Mb1; // модуль введённого вектора балансировочного груза в плоскости 1 ** (конечное значение) let Mb1_calc; // модуль расчётного вектора балансировочного груза в плоскости 1 *** let Mb1_corner = gtl.options.customOptions.Mb1_corner; // угол введённого вектора балансировочного груза в плоскости 1 ** (конечное значение) let Mb1_corner_calc; // угол расчётного вектора балансировочного груза в плоскости 1 *** let Mb2 = gtl.options.customOptions.Mb2; // модуль введённого вектора балансировочного груза в плоскости 2 ** (конечное значение) let Mb2_calc; // модуль расчётного вектора балансировочного груза в плоскости 2 *** let Mb2_corner = gtl.options.customOptions.Mb2_corner; // угол введённого вектора балансировочного груза в плоскости 2 ** (конечное значение) let Mb2_corner_calc; // угол расчётного вектора балансировочного груза в плоскости 2 *** let Mdisb1; // масса дисбаланса в плоскости 1 *** let Mdisb1_corner; // угол расположения дисбаланса в плоскости 1 *** let Mdisb2; // масса дисбаланса в плоскости 2 *** let Mdisb2_corner; // угол расположения дисбаланса в плоскости 2 *** // Переменные вспомогательные необходимые для расчётов и визуализации let A0_phase_X; // угол наклона вектора A0 к оси X let A0_phase_Y; // угол наклона вектора A0 к оси Y let A0_1_X; // начальная координата вектора A0 по оси X let A0_2_X; // конечная координата вектора A0 по оси X let A0_1_Y; // начальная координата вектора A0 по оси Y let A0_2_Y; // конечная координата вектора A0 по оси Y let A1_phase_X; // угол наклона вектора A1 к оси X let A1_phase_Y; // угол наклона вектора A1 к оси Y let A1_1_X; // начальная координата вектора A1 по оси X let A1_2_X; // конечная координата вектора A1 по оси X let A1_1_Y; // начальная координата вектора A1 по оси Y let A1_2_Y; // конечная координата вектора A1 по оси Y let dA1_1_X; // начальная координата вектора dA1 по оси X let dA1_2_X; // конечная координата вектора dA1 по оси X let dA1_1_Y; // начальная координата вектора dA1 по оси Y let dA1_2_Y; // конечная координата вектора dA1 по оси Y let A2_phase_X; // угол наклона вектора A2 к оси X let A2_phase_Y; // угол наклона вектора A2 к оси Y let A2_1_X; // начальная координата вектора A2 по оси X let A2_2_X; // конечная координата вектора A2 по оси X let A2_1_Y; // начальная координата вектора A2 по оси Y let A2_2_Y; // конечная координата вектора A2 по оси Y let dA2_1_X; // начальная координата вектора dA2 по оси X let dA2_2_X; // конечная координата вектора dA2 по оси X let dA2_1_Y; // начальная координата вектора dA2 по оси Y let dA2_2_Y; // конечная координата вектора dA2 по оси Y let B0_phase_X; // угол наклона вектора B0 к оси X let B0_phase_Y; // угол наклона вектора B0 к оси Y let B0_1_X; // начальная координата вектора B0 по оси X let B0_2_X; // конечная координата вектора B0 по оси X let B0_1_Y; // начальная координата вектора B0 по оси Y let B0_2_Y; // конечная координата вектора B0 по оси Y let B1_phase_X; // угол наклона вектора B1 к оси X let B1_phase_Y; // угол наклона вектора B1 к оси Y let B1_1_X; // начальная координата вектора B1 по оси X let B1_2_X; // конечная координата вектора B1 по оси X let B1_1_Y; // начальная координата вектора B1 по оси Y let B1_2_Y; // конечная координата вектора B1 по оси Y let dB1_1_X; // начальная координата вектора dB1 по оси X let dB1_2_X; // конечная координата вектора dB1 по оси X let dB1_1_Y; // начальная координата вектора dB1 по оси Y let dB1_2_Y; // конечная координата вектора dB1 по оси Y let B2_phase_X; // угол наклона вектора B2 к оси X let B2_phase_Y; // угол наклона вектора B2 к оси Y let B2_1_X; // начальная координата вектора B2 по оси X let B2_2_X; // конечная координата вектора B2 по оси X let B2_1_Y; // начальная координата вектора B2 по оси Y let B2_2_Y; // конечная координата вектора B2 по оси Y let dB2_1_X; // начальная координата вектора dB2 по оси X let dB2_2_X; // конечная координата вектора dB2 по оси X let dB2_1_Y; // начальная координата вектора dB2 по оси Y let dB2_2_Y; // конечная координата вектора dB2 по оси Y let m_test_1_corner_X; // угол наклона вектора m_test_1 к оси X let m_test_1_corner_Y; // угол наклона вектора m_test_1 к оси Y let m_test_1_1_X; // начальная координата вектора m_test_1 по оси X let m_test_1_2_X; // конечная координата вектора m_test_1 по оси X let m_test_1_1_Y; // начальная координата вектора m_test_1 по оси Y let m_test_1_2_Y; // конечная координата вектора m_test_1 по оси Y let m_test_2_corner_X; // угол наклона вектора m_test_2 к оси X let m_test_2_corner_Y; // угол наклона вектора m_test_2 к оси Y let m_test_2_1_X; // начальная координата вектора m_test_2 по оси X let m_test_2_2_X; // конечная координата вектора m_test_2 по оси X let m_test_2_1_Y; // начальная координата вектора m_test_2 по оси Y let m_test_2_2_Y; // конечная координата вектора m_test_2 по оси Y let Mb1_corner_calc_X; // угол наклона расчётного вектора Mb1_calc к оси X let Mb1_corner_calc_Y; // угол наклона расчётного вектора Mb1_calc к оси Y let Mb1_1_calc_X; // начальная координата расчётного вектора Mb1_calc по оси X let Mb1_2_calc_X; // конечная координата расчётного вектора Mb1_calc по оси X let Mb1_1_calc_Y; // начальная координата расчётного вектора Mb1_calc по оси Y let Mb1_2_calc_Y; // конечная координата расчётного вектора Mb1_calc по оси Y let Mb1_corner_X; // угол наклона вектора Mb1 к оси X let Mb1_corner_Y; // угол наклона вектора Mb1 к оси Y let Mb1_1_X; // начальная координата вектора Mb1 по оси X let Mb1_2_X; // конечная координата вектора Mb1 по оси X let Mb1_1_Y; // начальная координата вектора Mb1 по оси Y let Mb1_2_Y; // конечная координата вектора Mb1 по оси Y let Mdisb1_corner_X; // угол наклона вектора Mdisb1 к оси X let Mdisb1_corner_Y; // угол наклона вектора Mdisb1 к оси Y let Mdisb1_1_X; // начальная координата вектора Mdisb1 по оси X let Mdisb1_2_X; // конечная координата вектора Mdisb1 по оси X let Mdisb1_1_Y; // начальная координата вектора Mdisb1 по оси Y let Mdisb1_2_Y; // конечная координата вектора Mdisb1 по оси Y let Mb2_corner_calc_X; // угол наклона расчётного вектора Mb2_calc к оси X let Mb2_corner_calc_Y; // угол наклона расчётного вектора Mb2_calc к оси Y let Mb2_1_calc_X; // начальная координата расчётного вектора Mb2_calc по оси X let Mb2_2_calc_X; // конечная координата расчётного вектора Mb2_calc по оси X let Mb2_1_calc_Y; // начальная координата расчётного вектора Mb2_calc по оси Y let Mb2_2_calc_Y; // конечная координата расчётного вектора Mb2_calc по оси Y let Mb2_corner_X; // угол наклона вектора Mb2 к оси X let Mb2_corner_Y; // угол наклона вектора Mb2 к оси Y let Mb2_1_X; // начальная координата вектора Mb2 по оси X let Mb2_2_X; // конечная координата вектора Mb2 по оси X let Mb2_1_Y; // начальная координата вектора Mb2 по оси Y let Mb2_2_Y; // конечная координата вектора Mb2 по оси Y let Mdisb2_corner_X; // угол наклона вектора Mdisb2 к оси X let Mdisb2_corner_Y; // угол наклона вектора Mdisb2 к оси Y let Mdisb2_1_X; // начальная координата вектора Mdisb2 по оси X let Mdisb2_2_X; // конечная координата вектора Mdisb2 по оси X let Mdisb2_1_Y; // начальная координата вектора Mdisb2 по оси Y let Mdisb2_2_Y; // конечная координата вектора Mdisb2 по оси Y // ***** РАСЧЁТЫ ***** // gtl.diagnostic.interval = 15; // gtl.diagnostic.interval = Math.max(AUSPv.acq_time, AUSPv_pl.acq_time) + 0.1; gtl.diagnostic.interval = gtl.acq_time + 1; function diagnose() { // РАСЧЁТЫ (балансировочный калькулятор) // ШАГ 6 - расположение дисбалансов: // вычисление положения дисбалансов Mdisb1, Mdisb2 и рекомендуемых балансировочных грузов Mb1_calc, Mb2_calc // ввод масс и углов установки балансировочных грузов Mb1 и Mb2 // построение графиков расположения: пробных грузов m_test_1 и m_test_2, дисбалансов Mdisb1 и Mdisb2, // расчётных Mb1_calc и Mb2_calc и введённых Mb1 и Mb2 балансировочных грузов // из предыдущих шагов переносятся: вибрации A0, A1, A2, B0, B1, B2, пробные грузы m_test_1 и m_test_2 // построение графиков вибрации A0, A1, dA1, A2, dA2, B0, B1, dB1, B2, dB2 // определение угла наклона вектора A0 к осям X и Y if (A0_phase <= 90) { A0_phase_X = 90 - A0_phase} if (A0_phase <= 180) { A0_phase_X = A0_phase - 90} if (A0_phase <= 270) { A0_phase_X = 270 - A0_phase} if (A0_phase <= 360) { A0_phase_X = A0_phase - 270} if (A0_phase <= 90) { A0_phase_Y = A0_phase} if (A0_phase <= 180) { A0_phase_Y = 180 - A0_phase} if (A0_phase <= 270) { A0_phase_Y = A0_phase - 180} if (A0_phase <= 360) { A0_phase_Y = 360 - A0_phase} // определение координат вектора A0 var xA0_array = []; // массив координат точек вектора A0 по оси X var yA0_array = []; // массив координат точек вектора A0 по оси Y A0_1_X = 0; if (A0_phase <= 180) {A0_2_X = Math.abs(Math.cos(A0_phase_X * Math.PI/180)) * A0 } else {A0_2_X = Math.abs(Math.cos(A0_phase_X * Math.PI/180)) * A0 * (-1)} A0_1_Y = 0; if (A0_phase <= 90 || A0_phase >= 270) {A0_2_Y = Math.abs(Math.cos(A0_phase_Y * Math.PI/180)) * A0 } else {A0_2_Y = Math.abs(Math.cos(A0_phase_Y * Math.PI/180)) * A0 * (-1)} xA0_array[0] = A0_1_X; xA0_array[1] = A0_2_X; yA0_array[0] = A0_1_Y; yA0_array[1] = A0_2_Y; // определение угла наклона вектора A1 к осям X и Y if (A1_phase <= 90) { A1_phase_X = 90 - A1_phase} if (A1_phase <= 180) { A1_phase_X = A1_phase - 90} if (A1_phase <= 270) { A1_phase_X = 270 - A1_phase} if (A1_phase <= 360) { A1_phase_X = A1_phase - 270} if (A1_phase <= 90) { A1_phase_Y = A1_phase} if (A1_phase <= 180) { A1_phase_Y = 180 - A1_phase} if (A1_phase <= 270) { A1_phase_Y = A1_phase - 180} if (A1_phase <= 360) { A1_phase_Y = 360 - A1_phase} // определение координат вектора A1 var xA1_array = []; // массив координат точек вектора A1 по оси X var yA1_array = []; // массив координат точек вектора A1 по оси Y A1_1_X = 0; if (A1_phase <= 180) {A1_2_X = Math.abs(Math.cos(A1_phase_X * Math.PI/180)) * A1 } else {A1_2_X = Math.abs(Math.cos(A1_phase_X * Math.PI/180)) * A1 * (-1)} A1_1_Y = 0; if (A1_phase <= 90 || A1_phase >= 270) {A1_2_Y = Math.abs(Math.cos(A1_phase_Y * Math.PI/180)) * A1 } else {A1_2_Y = Math.abs(Math.cos(A1_phase_Y * Math.PI/180)) * A1 * (-1)} xA1_array[0] = A1_1_X; xA1_array[1] = A1_2_X; yA1_array[0] = A1_1_Y; yA1_array[1] = A1_2_Y; // определение модуля вектора dA1 var xdA1_array = []; // массив координат точек вектора dA1 по оси X var ydA1_array = []; // массив координат точек вектора dA1 по оси Y dA1_1_X = A0_2_X; dA1_2_X = A1_2_X; dA1_1_Y = A0_2_Y; dA1_2_Y = A1_2_Y; dA1 = Math.sqrt(Math.pow(dA1_2_X - dA1_1_X, 2) + Math.pow(dA1_2_Y - dA1_1_Y, 2)) xdA1_array[0] = dA1_1_X; xdA1_array[1] = dA1_2_X; ydA1_array[0] = dA1_1_Y; ydA1_array[1] = dA1_2_Y; // определение фазы вектора dA1 if ((dA1_2_Y < dA1_1_Y) && (dA1_2_X < dA1_1_X)) { dA1_phase = 180 + (((Math.acos((Math.abs(dA1_2_Y - dA1_1_Y)) / dA1)) * 180 ) / Math.PI)} if ((dA1_2_Y > dA1_1_Y) && (dA1_2_X > dA1_1_X)) { dA1_phase = (((Math.acos((Math.abs(dA1_2_Y - dA1_1_Y)) / dA1)) * 180 ) / Math.PI)} if ((dA1_2_Y > dA1_1_Y) && (dA1_2_X < dA1_1_X)) { dA1_phase = 360 - (((Math.acos((Math.abs(dA1_2_Y - dA1_1_Y)) / dA1)) * 180 ) / Math.PI)} if ((dA1_2_Y < dA1_1_Y) && (dA1_2_X > dA1_1_X)) { dA1_phase = 180 - (((Math.acos((Math.abs(dA1_2_Y - dA1_1_Y)) / dA1)) * 180 ) / Math.PI)} if (dA1_phase > 360) {dA1_phase = dA1_phase - 360} // определение угла наклона вектора A2 к осям X и Y if (A2_phase <= 90) { A2_phase_X = 90 - A1_phase} if (A2_phase <= 180) { A2_phase_X = A2_phase - 90} if (A2_phase <= 270) { A2_phase_X = 270 - A2_phase} if (A2_phase <= 360) { A2_phase_X = A2_phase - 270} if (A2_phase <= 90) { A2_phase_Y = A2_phase} if (A2_phase <= 180) { A2_phase_Y = 180 - A2_phase} if (A2_phase <= 270) { A2_phase_Y = A2_phase - 180} if (A2_phase <= 360) { A2_phase_Y = 360 - A2_phase} // определение координат вектора A2 var xA2_array = []; // массив координат точек вектора A2 по оси X var yA2_array = []; // массив координат точек вектора A2 по оси Y A2_1_X = 0; if (A2_phase <= 180) {A2_2_X = Math.abs(Math.cos(A2_phase_X * Math.PI/180)) * A2 } else {A2_2_X = Math.abs(Math.cos(A2_phase_X * Math.PI/180)) * A2 * (-1)} A2_1_Y = 0; if (A2_phase <= 90 || A2_phase >= 270) {A2_2_Y = Math.abs(Math.cos(A2_phase_Y * Math.PI/180)) * A2 } else {A2_2_Y = Math.abs(Math.cos(A2_phase_Y * Math.PI/180)) * A2 * (-1)} xA2_array[0] = A2_1_X; xA2_array[1] = A2_2_X; yA2_array[0] = A2_1_Y; yA2_array[1] = A2_2_Y; // определение модуля вектора dA2 var xdA2_array = []; // массив координат точек вектора dA2 по оси X var ydA2_array = []; // массив координат точек вектора dA2 по оси Y dA2_1_X = A0_2_X; dA2_2_X = A2_2_X; dA2_1_Y = A0_2_Y; dA2_2_Y = A2_2_Y; dA2 = Math.sqrt(Math.pow(dA2_2_X - dA2_1_X, 2) + Math.pow(dA2_2_Y - dA2_1_Y, 2)) xdA2_array[0] = dA2_1_X; xdA2_array[1] = dA2_2_X; ydA2_array[0] = dA2_1_Y; ydA2_array[1] = dA2_2_Y; // определение фазы вектора dA2 if ((dA2_2_Y < dA2_1_Y) && (dA2_2_X < dA2_1_X)) { dA2_phase = 180 + (((Math.acos((Math.abs(dA2_2_Y - dA2_1_Y)) / dA2)) * 180 ) / Math.PI)} if ((dA2_2_Y > dA2_1_Y) && (dA2_2_X > dA2_1_X)) { dA2_phase = (((Math.acos((Math.abs(dA2_2_Y - dA2_1_Y)) / dA2)) * 180 ) / Math.PI)} if ((dA2_2_Y > dA2_1_Y) && (dA2_2_X < dA2_1_X)) { dA2_phase = 360 - (((Math.acos((Math.abs(dA2_2_Y - dA2_1_Y)) / dA2)) * 180 ) / Math.PI)} if ((dA2_2_Y < dA2_1_Y) && (dA2_2_X > dA2_1_X)) { dA2_phase = 180 - (((Math.acos((Math.abs(dA2_2_Y - dA2_1_Y)) / dA2)) * 180 ) / Math.PI)} if (dA2_phase > 360) {dA2_phase = dA2_phase - 360} // определение угла наклона вектора B0 к осям X и Y if (B0_phase <= 90) { B0_phase_X = 90 - B0_phase} if (B0_phase <= 180) { B0_phase_X = B0_phase - 90} if (B0_phase <= 270) { B0_phase_X = 270 - B0_phase} if (B0_phase <= 360) { B0_phase_X = B0_phase - 270} if (B0_phase <= 90) { B0_phase_Y = B0_phase} if (B0_phase <= 180) { B0_phase_Y = 180 - B0_phase} if (B0_phase <= 270) { B0_phase_Y = B0_phase - 180} if (B0_phase <= 360) { B0_phase_Y = 360 - B0_phase} // определение координат вектора B0 var xB0_array = []; // массив координат точек вектора B0 по оси X var yB0_array = []; // массив координат точек вектора B0 по оси Y B0_1_X = 0; if (B0_phase <= 180) {B0_2_X = Math.abs(Math.cos(B0_phase_X * Math.PI/180)) * B0 } else {B0_2_X = Math.abs(Math.cos(B0_phase_X * Math.PI/180)) * B0 * (-1)} B0_1_Y = 0; if (B0_phase <= 90 || B0_phase >= 270) {B0_2_Y = Math.abs(Math.cos(B0_phase_Y * Math.PI/180)) * B0 } else {B0_2_Y = Math.abs(Math.cos(B0_phase_Y * Math.PI/180)) * B0 * (-1)} xB0_array[0] = B0_1_X; xB0_array[1] = B0_2_X; yB0_array[0] = B0_1_Y; yB0_array[1] = B0_2_Y; // определение угла наклона вектора B1 к осям X и Y if (B1_phase <= 90) { B1_phase_X = 90 - B1_phase} if (B1_phase <= 180) { B1_phase_X = B1_phase - 90} if (B1_phase <= 270) { B1_phase_X = 270 - B1_phase} if (B1_phase <= 360) { B1_phase_X = B1_phase - 270} if (B1_phase <= 90) { B1_phase_Y = B1_phase} if (B1_phase <= 180) { B1_phase_Y = 180 - B1_phase} if (B1_phase <= 270) { B1_phase_Y = B1_phase - 180} if (B1_phase <= 360) { B1_phase_Y = 360 - B1_phase} // определение координат вектора B1 var xB1_array = []; // массив координат точек вектора B1 по оси X var yB1_array = []; // массив координат точек вектора B1 по оси Y B1_1_X = 0; if (B1_phase <= 180) {B1_2_X = Math.abs(Math.cos(B1_phase_X * Math.PI/180)) * B1 } else {B1_2_X = Math.abs(Math.cos(B1_phase_X * Math.PI/180)) * B1 * (-1)} B1_1_Y = 0; if (B1_phase <= 90 || B1_phase >= 270) {B1_2_Y = Math.abs(Math.cos(B1_phase_Y * Math.PI/180)) * B1 } else {B1_2_Y = Math.abs(Math.cos(B1_phase_Y * Math.PI/180)) * B1 * (-1)} xB1_array[0] = B1_1_X; xB1_array[1] = B1_2_X; yB1_array[0] = B1_1_Y; yB1_array[1] = B1_2_Y; // определение модуля вектора dB1 var xdB1_array = []; // массив координат точек вектора dB1 по оси X var ydB1_array = []; // массив координат точек вектора dB1 по оси Y dB1_1_X = B0_2_X; dB1_2_X = B1_2_X; dB1_1_Y = B0_2_Y; dB1_2_Y = B1_2_Y; dB1 = Math.sqrt(Math.pow(dB1_2_X - dB1_1_X, 2) + Math.pow(dB1_2_Y - dB1_1_Y, 2)) xdB1_array[0] = dB1_1_X; xdB1_array[1] = dB1_2_X; ydB1_array[0] = dB1_1_Y; ydB1_array[1] = dB1_2_Y; // определение фазы вектора dB1 if ((dB1_2_Y < dB1_1_Y) && (dB1_2_X < dB1_1_X)) { dB1_phase = 180 + (((Math.acos((Math.abs(dB1_2_Y - dB1_1_Y)) / dB1)) * 180 ) / Math.PI)} if ((dB1_2_Y > dB1_1_Y) && (dB1_2_X > dB1_1_X)) { dB1_phase = (((Math.acos((Math.abs(dB1_2_Y - dB1_1_Y)) / dB1)) * 180 ) / Math.PI)} if ((dB1_2_Y > dB1_1_Y) && (dB1_2_X < dB1_1_X)) { dB1_phase = 360 - (((Math.acos((Math.abs(dB1_2_Y - dB1_1_Y)) / dB1)) * 180 ) / Math.PI)} if ((dB1_2_Y < dB1_1_Y) && (dB1_2_X > dB1_1_X)) { dB1_phase = 180 - (((Math.acos((Math.abs(dB1_2_Y - dB1_1_Y)) / dB1)) * 180 ) / Math.PI)} if (dB1_phase > 360) {dB1_phase = dB1_phase - 360} // определение угла наклона вектора B2 к осям X и Y if (B2_phase <= 90) { B2_phase_X = 90 - B2_phase} if (B2_phase <= 180) { B2_phase_X = B2_phase - 90} if (B2_phase <= 270) { B2_phase_X = 270 - B2_phase} if (B2_phase <= 360) { B2_phase_X = B2_phase - 270} if (B2_phase <= 90) { B2_phase_Y = B2_phase} if (B2_phase <= 180) { B2_phase_Y = 180 - B2_phase} if (B2_phase <= 270) { B2_phase_Y = B2_phase - 180} if (B2_phase <= 360) { B2_phase_Y = 360 - B2_phase} // определение координат вектора B2 var xB2_array = []; // массив координат точек вектора B2 по оси X var yB2_array = []; // массив координат точек вектора B2 по оси Y B2_1_X = 0; if (B2_phase <= 180) {B2_2_X = Math.abs(Math.cos(B2_phase_X * Math.PI/180)) * B2 } else {B2_2_X = Math.abs(Math.cos(B2_phase_X * Math.PI/180)) * B2 * (-1)} B2_1_Y = 0; if (B2_phase <= 90 || B2_phase >= 270) {B2_2_Y = Math.abs(Math.cos(B2_phase_Y * Math.PI/180)) * B2 } else {B2_2_Y = Math.abs(Math.cos(B2_phase_Y * Math.PI/180)) * B2 * (-1)} xB2_array[0] = B2_1_X; xB2_array[1] = B2_2_X; yB2_array[0] = B2_1_Y; yB2_array[1] = B2_2_Y; // определение модуля вектора dB2 var xdB2_array = []; // массив координат точек вектора dB2 по оси X var ydB2_array = []; // массив координат точек вектора dB2 по оси Y dB2_1_X = B0_2_X; dB2_2_X = B2_2_X; dB2_1_Y = B0_2_Y; dB2_2_Y = B2_2_Y; dB2 = Math.sqrt(Math.pow(dB2_2_X - dB2_1_X, 2) + Math.pow(dB2_2_Y - dB2_1_Y, 2)) xdB2_array[0] = dB2_1_X; xdB2_array[1] = dB2_2_X; ydB2_array[0] = dB2_1_Y; ydB2_array[1] = dB2_2_Y; // определение фазы вектора dB2 if ((dB2_2_Y < dB2_1_Y) && (dB2_2_X < dB2_1_X)) { dB2_phase = 180 + (((Math.acos((Math.abs(dB2_2_Y - dB2_1_Y)) / dB2)) * 180 ) / Math.PI)} if ((dB2_2_Y > dB2_1_Y) && (dB2_2_X > dB2_1_X)) { dB2_phase = (((Math.acos((Math.abs(dB2_2_Y - dB2_1_Y)) / dB2)) * 180 ) / Math.PI)} if ((dB2_2_Y > dB2_1_Y) && (dB2_2_X < dB2_1_X)) { dB2_phase = 360 - (((Math.acos((Math.abs(dB2_2_Y - dB2_1_Y)) / dB2)) * 180 ) / Math.PI)} if ((dB2_2_Y < dB2_1_Y) && (dB2_2_X > dB2_1_X)) { dB2_phase = 180 - (((Math.acos((Math.abs(dB2_2_Y - dB2_1_Y)) / dB2)) * 180 ) / Math.PI)} if (dB2_phase > 360) {dB2_phase = dB2_phase - 360} // определение координат точек окружности графика для отображения векторов вибрации var xV_array = []; // массив координат точек окружности V по оси X var yV_array = []; // массив координат точек окружности V по оси Y var x0V = 0; // центр в начале координат var y0V = 0; // центр в начале координат for (let i=0; i<=359; i++ ) { xV_array.push(x0V + (Math.max(A0,A1,dA1,A2,dA2,B0,B1,dB1,B2,dB2)+Math.max(A0,A1,dA1,A2,dA2,B0,B1,dB1,B2,dB2)*0.1) * (Math.sin((i) * Math.PI / 180))); yV_array.push(y0V + (Math.max(A0,A1,dA1,A2,dA2,B0,B1,dB1,B2,dB2)+Math.max(A0,A1,dA1,A2,dA2,B0,B1,dB1,B2,dB2)*0.1) * (Math.cos((i) * Math.PI / 180)));} // Координаты пробных грузов // определение угла наклона вектора m_test_1 к осям X и Y if (m_test_1_corner <= 90) { m_test_1_corner_X = 90 - m_test_1_corner} if (m_test_1_corner <= 180) { m_test_1_corner_X = m_test_1_corner - 90} if (m_test_1_corner <= 270) { m_test_1_corner_X = 270 - m_test_1_corner} if (m_test_1_corner <= 360) { m_test_1_corner_X = m_test_1_corner - 270} if (m_test_1_corner <= 90) { m_test_1_corner_Y = m_test_1_corner} if (m_test_1_corner <= 180) { m_test_1_corner_Y = 180 - m_test_1_corner} if (m_test_1_corner <= 270) { m_test_1_corner_Y = m_test_1_corner - 180} if (m_test_1_corner <= 360) { m_test_1_corner_Y = 360 - m_test_1_corner} // определение координат вектора m_test_1 m_test_1_1_X = 0; if (m_test_1_corner <= 180) {m_test_1_2_X = Math.abs(Math.cos(m_test_1_corner_X * Math.PI/180)) * m_test_1 * (-1) } else {m_test_1_2_X = Math.abs(Math.cos(m_test_1_corner_X * Math.PI/180)) * m_test_1} m_test_1_1_Y = 0; if (m_test_1_corner <= 90 || m_test_1_corner >= 270) {m_test_1_2_Y = Math.abs(Math.cos(m_test_1_corner_Y * Math.PI/180)) * m_test_1 } else {m_test_1_2_Y = Math.abs(Math.cos(m_test_1_corner_Y * Math.PI/180)) * m_test_1 * (-1)} // определение угла наклона вектора m_test_2 к осям X и Y if (m_test_2_corner <= 90) { m_test_2_corner_X = 90 - m_test_2_corner} if (m_test_2_corner <= 180) { m_test_2_corner_X = m_test_2_corner - 90} if (m_test_2_corner <= 270) { m_test_2_corner_X = 270 - m_test_2_corner} if (m_test_2_corner <= 360) { m_test_2_corner_X = m_test_2_corner - 270} if (m_test_2_corner <= 90) { m_test_2_corner_Y = m_test_2_corner} if (m_test_2_corner <= 180) { m_test_2_corner_Y = 180 - m_test_2_corner} if (m_test_2_corner <= 270) { m_test_2_corner_Y = m_test_2_corner - 180} if (m_test_2_corner <= 360) { m_test_2_corner_Y = 360 - m_test_2_corner} // определение координат вектора m_test_2 m_test_2_1_X = 0; if (m_test_2_corner <= 180) {m_test_2_2_X = Math.abs(Math.cos(m_test_2_corner_X * Math.PI/180)) * m_test_2 * (-1) } else {m_test_2_2_X = Math.abs(Math.cos(m_test_2_corner_X * Math.PI/180)) * m_test_2} m_test_2_1_Y = 0; if (m_test_2_corner <= 90 || m_test_2_corner >= 270) {m_test_2_2_Y = Math.abs(Math.cos(m_test_2_corner_Y * Math.PI/180)) * m_test_2 } else {m_test_2_2_Y = Math.abs(Math.cos(m_test_2_corner_Y * Math.PI/180)) * m_test_2 * (-1)} // Вычисления дисбалансов и балансировочных грузов // DCI_A1 - ДКВ груза m_test_1 в плоскости 1 на вибрацию в точке A // определение модуля вектора DCI_A1 DCI_A1 = dA1 / m_test_1 // определение фазы вектора DCI_A1 if ((dA1_phase - m_test_1_corner) < 0) { DCI_A1_phase = (dA1_phase - m_test_1_corner) + 360} else if ((dA1_phase - m_test_1_corner) > 360) { DCI_A1_phase = (dA1_phase - m_test_1_corner) - 360} else {DCI_A1_phase = (dA1_phase - m_test_1_corner)} // вычисляется в скрипте // DCI_B1 - ДКВ груза m_test_1 в плоскости 1 на вибрацию в точке B // определение модуля вектора DCI_B1 DCI_B1 = dB1 / m_test_1 // определение фазы вектора DCI_B1 if ((dB1_phase - m_test_1_corner) < 0) { DCI_B1_phase = (dB1_phase - m_test_1_corner) + 360} else if ((dB1_phase - m_test_1_corner) > 360) { DCI_B1_phase = (dB1_phase - m_test_1_corner) - 360} else {DCI_B1_phase = (dB1_phase - m_test_1_corner)} // вычисляется в скрипте // DCI_A2 - ДКВ груза m_test_2 в плоскости 2 на вибрацию в точке A // определение модуля вектора DCI_A2 DCI_A2 = dA2 / m_test_2 // определение фаза вектора DCI_A2 if ((dA2_phase - m_test_2_corner) < 0) { DCI_A2_phase = (dA2_phase - m_test_2_corner) + 360} else if ((dA2_phase - m_test_2_corner) > 360) { DCI_A2_phase = (dA2_phase - m_test_2_corner) - 360} else {DCI_A2_phase = (dA2_phase - m_test_2_corner)} // вычисляется в скрипте // DCI_B2 - ДКВ груза m_test_2 в плоскости 2 на вибрацию в точке B // определение модуля вектора DCI_B2 DCI_B2 = dB2 / m_test_2 // определение фазы вектора DCI_B2 if ((dB2_phase - m_test_2_corner) < 0) { DCI_B2_phase = (dB2_phase - m_test_2_corner) + 360} else if ((dB2_phase - m_test_2_corner) > 360) { DCI_B2_phase = (dB2_phase - m_test_2_corner) - 360} else {DCI_B2_phase = (dB2_phase - m_test_2_corner)} // вычисляется в скрипте // формулы для определение векторов балансировочных грузов // Mb1_calc = (B0 * DCI_A2 - A0 * DCI_B2) / (DCI_A1 * DCI_B2 - DCI_B1 * DCI_A2) // Mb2_calc = (A0 * DCI_B1 - B0 * DCI_A1) / (DCI_A1 * DCI_B2 - DCI_B1 * DCI_A2) // ... вычисления этих формул делим на этапы // 1) В0 * DCI_A2 // 2) A0 * DCI_B2 // 3) A0 * DCI_B1 // 4) B0 * DCI_A1 // 5) В0 * DCI_A2 - A0 * DCI_B2 // 6) A0 * DCI_B1 - B0 * DCI_A1 // 7) DCI_A1 * DCI_B2 // 8) DCI_B1 * DCI_A2 // 9) DCI_A1 * DCI_B2 - DCI_B1 * DCI_A2 // определение модуля вектора B0 * DCI_A2 var B0_DCI_A2 = B0 * DCI_A2; // определение фазы вектора В0 * DCI_A2 var B0_DCI_A2_phase; if ((B0_phase + DCI_A2_phase) >360) { B0_DCI_A2_phase = B0_phase + DCI_A2_phase - 360 } else {B0_DCI_A2_phase = B0_phase + DCI_A2_phase} // определение угла наклона вектора В0 * DCI_A2 к осям X и Y var B0_DCI_A2_phase_X; var B0_DCI_A2_phase_Y; if (B0_DCI_A2_phase <= 90) { B0_DCI_A2_phase_X = 90 - B0_DCI_A2_phase} if (B0_DCI_A2_phase <= 180) { B0_DCI_A2_phase_X = B0_DCI_A2_phase - 90} if (B0_DCI_A2_phase <= 270) { B0_DCI_A2_phase_X = 270 - B0_DCI_A2_phase} if (B0_DCI_A2_phase <= 360) { B0_DCI_A2_phase_X = B0_DCI_A2_phase - 270} if (B0_DCI_A2_phase <= 90) { B0_DCI_A2_phase_Y = B0_DCI_A2_phase} if (B0_DCI_A2_phase <= 180) { B0_DCI_A2_phase_Y = 180 - B0_DCI_A2_phase} if (B0_DCI_A2_phase <= 270) { B0_DCI_A2_phase_Y = B0_DCI_A2_phase - 180} if (B0_DCI_A2_phase <= 360) { B0_DCI_A2_phase_Y = 360 - B0_DCI_A2_phase} // определение координат вектора В0 * DCI_A2 var B0_DCI_A2_1_X = 0; var B0_DCI_A2_2_X; if (B0_DCI_A2_phase <= 180) {B0_DCI_A2_2_X = Math.abs(Math.cos(B0_DCI_A2_phase_X * Math.PI/180)) * B0_DCI_A2 } else {B0_DCI_A2_2_X = Math.abs(Math.cos(B0_DCI_A2_phase_X * Math.PI/180)) * B0_DCI_A2 * (-1)} var B0_DCI_A2_1_Y = 0; var B0_DCI_A2_2_Y; if (B0_DCI_A2_phase <= 90 || B0_DCI_A2_phase >= 270) {B0_DCI_A2_2_Y = Math.abs(Math.cos(B0_DCI_A2_phase_Y * Math.PI/180)) * B0_DCI_A2 } else {B0_DCI_A2_2_Y = Math.abs(Math.cos(B0_DCI_A2_phase_Y * Math.PI/180)) * B0_DCI_A2 * (-1)} // определение модуля вектора A0 * DCI_B2 var A0_DCI_B2 = A0 * DCI_B2; // определение фазы вектора A0 * DCI_B2 var A0_DCI_B2_phase; if ((A0_phase + DCI_B2_phase) >360) { A0_DCI_B2_phase = A0_phase + DCI_B2_phase - 360 } else {A0_DCI_B2_phase = A0_phase + DCI_B2_phase} // определение угла наклона вектора A0 * DCI_B2 к осям X и Y var A0_DCI_B2_phase_X; var A0_DCI_B2_phase_Y; if (A0_DCI_B2_phase <= 90) { A0_DCI_B2_phase_X = 90 - A0_DCI_B2_phase} if (A0_DCI_B2_phase <= 180) { A0_DCI_B2_phase_X = A0_DCI_B2_phase - 90} if (A0_DCI_B2_phase <= 270) { A0_DCI_B2_phase_X = 270 - A0_DCI_B2_phase} if (A0_DCI_B2_phase <= 360) { A0_DCI_B2_phase_X = A0_DCI_B2_phase - 270} if (A0_DCI_B2_phase <= 90) { A0_DCI_B2_phase_Y = A0_DCI_B2_phase} if (A0_DCI_B2_phase <= 180) { A0_DCI_B2_phase_Y = 180 - A0_DCI_B2_phase} if (A0_DCI_B2_phase <= 270) { A0_DCI_B2_phase_Y = A0_DCI_B2_phase - 180} if (A0_DCI_B2_phase <= 360) { A0_DCI_B2_phase_Y = 360 - A0_DCI_B2_phase} // определение координат вектора A0 * DCI_B2 var A0_DCI_B2_1_X = 0; var A0_DCI_B2_2_X; if (A0_DCI_B2_phase <= 180) {A0_DCI_B2_2_X = Math.abs(Math.cos(A0_DCI_B2_phase_X * Math.PI/180)) * A0_DCI_B2 } else {A0_DCI_B2_2_X = Math.abs(Math.cos(A0_DCI_B2_phase_X * Math.PI/180)) * A0_DCI_B2 * (-1)} var A0_DCI_B2_1_Y = 0; var A0_DCI_B2_2_Y; if (A0_DCI_B2_phase <= 90 || A0_DCI_B2_phase >= 270) {A0_DCI_B2_2_Y = Math.abs(Math.cos(A0_DCI_B2_phase_Y * Math.PI/180)) * A0_DCI_B2 } else {A0_DCI_B2_2_Y = Math.abs(Math.cos(A0_DCI_B2_phase_Y * Math.PI/180)) * A0_DCI_B2 * (-1)} // определение модуля вектора A0 * DCI_B1 var A0_DCI_B1 = A0 * DCI_B1; // определение фазы вектора A0 * DCI_B1 var A0_DCI_B1_phase; if ((A0_phase + DCI_B1_phase) >360) { A0_DCI_B1_phase = A0_phase + DCI_B1_phase - 360 } else {A0_DCI_B1_phase = A0_phase + DCI_B1_phase} // определение угла наклона вектора A0 * DCI_B1 к осям X и Y var A0_DCI_B1_phase_X; var A0_DCI_B1_phase_Y; if (A0_DCI_B1_phase <= 90) { A0_DCI_B1_phase_X = 90 - A0_DCI_B1_phase} if (A0_DCI_B1_phase <= 180) { A0_DCI_B1_phase_X = A0_DCI_B1_phase - 90} if (A0_DCI_B1_phase <= 270) { A0_DCI_B1_phase_X = 270 - A0_DCI_B1_phase} if (A0_DCI_B1_phase <= 360) { A0_DCI_B1_phase_X = A0_DCI_B1_phase - 270} if (A0_DCI_B1_phase <= 90) { A0_DCI_B1_phase_Y = A0_DCI_B1_phase} if (A0_DCI_B1_phase <= 180) { A0_DCI_B1_phase_Y = 180 - A0_DCI_B1_phase} if (A0_DCI_B1_phase <= 270) { A0_DCI_B1_phase_Y = A0_DCI_B1_phase - 180} if (A0_DCI_B1_phase <= 360) { A0_DCI_B1_phase_Y = 360 - A0_DCI_B1_phase} // определение координат вектора A0 * DCI_B1 var A0_DCI_B1_1_X = 0; var A0_DCI_B1_2_X; if (A0_DCI_B1_phase <= 180) {A0_DCI_B1_2_X = Math.abs(Math.cos(A0_DCI_B1_phase_X * Math.PI/180)) * A0_DCI_B1 } else {A0_DCI_B1_2_X = Math.abs(Math.cos(A0_DCI_B1_phase_X * Math.PI/180)) * A0_DCI_B1 * (-1)} var A0_DCI_B1_1_Y = 0; var A0_DCI_B1_2_Y; if (A0_DCI_B1_phase <= 90 || A0_DCI_B1_phase >= 270) {A0_DCI_B1_2_Y = Math.abs(Math.cos(A0_DCI_B1_phase_Y * Math.PI/180)) * A0_DCI_B1 } else {A0_DCI_B1_2_Y = Math.abs(Math.cos(A0_DCI_B1_phase_Y * Math.PI/180)) * A0_DCI_B1 * (-1)} // определение модуля вектора B0 * DCI_A1 var B0_DCI_A1 = B0 * DCI_A1; // определение фазы вектора B0 * DCI_A1 var B0_DCI_A1_phase; if ((B0_phase + DCI_A1_phase) >360) { B0_DCI_A1_phase = B0_phase + DCI_A1_phase - 360 } else {B0_DCI_A1_phase = B0_phase + DCI_A1_phase} // определение угла наклона вектора B0 * DCI_A1 к осям X и Y var B0_DCI_A1_phase_X; var B0_DCI_A1_phase_Y; if (B0_DCI_A1_phase <= 90) { B0_DCI_A1_phase_X = 90 - B0_DCI_A1_phase} if (B0_DCI_A1_phase <= 180) { B0_DCI_A1_phase_X = B0_DCI_A1_phase - 90} if (B0_DCI_A1_phase <= 270) { B0_DCI_A1_phase_X = 270 - B0_DCI_A1_phase} if (B0_DCI_A1_phase <= 360) { B0_DCI_A1_phase_X = B0_DCI_A1_phase - 270} if (B0_DCI_A1_phase <= 90) { B0_DCI_A1_phase_Y = B0_DCI_A1_phase} if (B0_DCI_A1_phase <= 180) { B0_DCI_A1_phase_Y = 180 - B0_DCI_A1_phase} if (B0_DCI_A1_phase <= 270) { B0_DCI_A1_phase_Y = B0_DCI_A1_phase - 180} if (B0_DCI_A1_phase <= 360) { B0_DCI_A1_phase_Y = 360 - B0_DCI_A1_phase} // определение координат вектора B0 * DCI_A1 var B0_DCI_A1_1_X = 0; var B0_DCI_A1_2_X; if (B0_DCI_A1_phase <= 180) {B0_DCI_A1_2_X = Math.abs(Math.cos(B0_DCI_A1_phase_X * Math.PI/180)) * B0_DCI_A1 } else {B0_DCI_A1_2_X = Math.abs(Math.cos(B0_DCI_A1_phase_X * Math.PI/180)) * B0_DCI_A1 * (-1)} var B0_DCI_A1_1_Y = 0; var B0_DCI_A1_2_Y; if (B0_DCI_A1_phase <= 90 || B0_DCI_A1_phase >= 270) {B0_DCI_A1_2_Y = Math.abs(Math.cos(B0_DCI_A1_phase_Y * Math.PI/180)) * B0_DCI_A1 } else {B0_DCI_A1_2_Y = Math.abs(Math.cos(B0_DCI_A1_phase_Y * Math.PI/180)) * B0_DCI_A1 * (-1)} // определение модуля вектора B0 * DCI_A2 - A0 * DCI_B2 var B0_DCIA2_A0_DCIB2; var B0_DCIA2_A0_DCIB2_1_X = A0_DCI_B2_2_X; var B0_DCIA2_A0_DCIB2_1_Y = A0_DCI_B2_2_Y; var B0_DCIA2_A0_DCIB2_2_X = B0_DCI_A2_2_X; var B0_DCIA2_A0_DCIB2_2_Y = B0_DCI_A2_2_Y; B0_DCIA2_A0_DCIB2 = Math.sqrt(Math.pow(B0_DCIA2_A0_DCIB2_2_X - B0_DCIA2_A0_DCIB2_1_X, 2) + Math.pow(B0_DCIA2_A0_DCIB2_2_Y - B0_DCIA2_A0_DCIB2_1_Y, 2)); // определение фазы вектора B0 * DCI_A2 - A0 * DCI_B2 var B0_DCIA2_A0_DCIB2_phase; if ((B0_DCIA2_A0_DCIB2_2_X > B0_DCIA2_A0_DCIB2_1_X) && (B0_DCIA2_A0_DCIB2_2_Y >= B0_DCIA2_A0_DCIB2_1_Y)) { B0_DCIA2_A0_DCIB2_phase = (((Math.acos((Math.abs(B0_DCIA2_A0_DCIB2_2_Y - B0_DCIA2_A0_DCIB2_1_Y)) / B0_DCIA2_A0_DCIB2)) * 180 ) / Math.PI)} if ((B0_DCIA2_A0_DCIB2_2_X <= B0_DCIA2_A0_DCIB2_1_X) && (B0_DCIA2_A0_DCIB2_2_Y < B0_DCIA2_A0_DCIB2_1_Y)) { B0_DCIA2_A0_DCIB2_phase = (((Math.acos((Math.abs(B0_DCIA2_A0_DCIB2_2_Y - B0_DCIA2_A0_DCIB2_1_Y)) / B0_DCIA2_A0_DCIB2)) * 180 ) / Math.PI) + 180} if ((B0_DCIA2_A0_DCIB2_2_X < B0_DCIA2_A0_DCIB2_1_X) && (B0_DCIA2_A0_DCIB2_2_Y >= B0_DCIA2_A0_DCIB2_1_Y)) { B0_DCIA2_A0_DCIB2_phase = 360 - (((Math.acos((Math.abs(B0_DCIA2_A0_DCIB2_2_Y - B0_DCIA2_A0_DCIB2_1_Y)) / B0_DCIA2_A0_DCIB2)) * 180 ) / Math.PI)} if ((B0_DCIA2_A0_DCIB2_2_X >= B0_DCIA2_A0_DCIB2_1_X) && (B0_DCIA2_A0_DCIB2_2_Y < B0_DCIA2_A0_DCIB2_1_Y)) { B0_DCIA2_A0_DCIB2_phase = 180 - (((Math.acos((Math.abs(B0_DCIA2_A0_DCIB2_2_Y - B0_DCIA2_A0_DCIB2_1_Y)) / B0_DCIA2_A0_DCIB2)) * 180 ) / Math.PI)} // определение модуля вектора A0 * DCI_B1 - B0 * DCI_A1 var A0_DCIB1_B0_DCIA1; var A0_DCIB1_B0_DCIA1_1_X = B0_DCI_A1_2_X; var A0_DCIB1_B0_DCIA1_1_Y = B0_DCI_A1_2_Y; var A0_DCIB1_B0_DCIA1_2_X = A0_DCI_B1_2_X; var A0_DCIB1_B0_DCIA1_2_Y = A0_DCI_B1_2_Y; A0_DCIB1_B0_DCIA1 = Math.sqrt(Math.pow(A0_DCIB1_B0_DCIA1_2_X - A0_DCIB1_B0_DCIA1_1_X, 2) + Math.pow(A0_DCIB1_B0_DCIA1_2_Y - A0_DCIB1_B0_DCIA1_1_Y, 2)); // определение фазы вектора A0 * DCI_B1 - B0 * DCI_A1 var A0_DCIB1_B0_DCIA1_phase; if ((A0_DCIB1_B0_DCIA1_2_X > A0_DCIB1_B0_DCIA1_1_X) && (A0_DCIB1_B0_DCIA1_2_Y >= A0_DCIB1_B0_DCIA1_1_Y)) { A0_DCIB1_B0_DCIA1_phase = (((Math.acos((Math.abs(A0_DCIB1_B0_DCIA1_2_Y - A0_DCIB1_B0_DCIA1_1_Y)) / A0_DCIB1_B0_DCIA1)) * 180 ) / Math.PI)} if ((A0_DCIB1_B0_DCIA1_2_X <= A0_DCIB1_B0_DCIA1_1_X) && (A0_DCIB1_B0_DCIA1_2_Y < A0_DCIB1_B0_DCIA1_1_Y)) { A0_DCIB1_B0_DCIA1_phase = (((Math.acos((Math.abs(A0_DCIB1_B0_DCIA1_2_Y - A0_DCIB1_B0_DCIA1_1_Y)) / A0_DCIB1_B0_DCIA1)) * 180 ) / Math.PI) + 180} if ((A0_DCIB1_B0_DCIA1_2_X < A0_DCIB1_B0_DCIA1_1_X) && (A0_DCIB1_B0_DCIA1_2_Y >= A0_DCIB1_B0_DCIA1_1_Y)) { A0_DCIB1_B0_DCIA1_phase = 360 - (((Math.acos((Math.abs(A0_DCIB1_B0_DCIA1_2_Y - A0_DCIB1_B0_DCIA1_1_Y)) / A0_DCIB1_B0_DCIA1)) * 180 ) / Math.PI)} if ((A0_DCIB1_B0_DCIA1_2_X >= A0_DCIB1_B0_DCIA1_1_X) && (A0_DCIB1_B0_DCIA1_2_Y < A0_DCIB1_B0_DCIA1_1_Y)) { A0_DCIB1_B0_DCIA1_phase = 180 - (((Math.acos((Math.abs(A0_DCIB1_B0_DCIA1_2_Y - A0_DCIB1_B0_DCIA1_1_Y)) / A0_DCIB1_B0_DCIA1)) * 180 ) / Math.PI)} // определение модуля вектора DCI_A1 * DCI_B2 var DCIA1_DCIB2 = DCI_A1 * DCI_B2; // определение фазы вектора DCI_A1 * DCI_B2 var DCIA1_DCIB2_phase; if ((DCI_A1_phase + DCI_B2_phase) >360) { DCIA1_DCIB2_phase = DCI_A1_phase + DCI_B2_phase - 360 } else {DCIA1_DCIB2_phase = DCI_A1_phase + DCI_B2_phase} // определение угла наклона вектора DCI_A1 * DCI_B2 к осям X и Y var DCIA1_DCIB2_phase_X; var DCIA1_DCIB2_phase_Y; if (DCIA1_DCIB2_phase <= 90) { DCIA1_DCIB2_phase_X = 90 - DCIA1_DCIB2_phase} if (DCIA1_DCIB2_phase <= 180) { DCIA1_DCIB2_phase_X = DCIA1_DCIB2_phase - 90} if (DCIA1_DCIB2_phase <= 270) { DCIA1_DCIB2_phase_X = 270 - DCIA1_DCIB2_phase} if (DCIA1_DCIB2_phase <= 360) { DCIA1_DCIB2_phase_X = DCIA1_DCIB2_phase - 270} if (DCIA1_DCIB2_phase <= 90) { DCIA1_DCIB2_phase_Y = DCIA1_DCIB2_phase} if (DCIA1_DCIB2_phase <= 180) { DCIA1_DCIB2_phase_Y = 180 - DCIA1_DCIB2_phase} if (DCIA1_DCIB2_phase <= 270) { DCIA1_DCIB2_phase_Y = DCIA1_DCIB2_phase - 180} if (DCIA1_DCIB2_phase <= 360) { DCIA1_DCIB2_phase_Y = 360 - DCIA1_DCIB2_phase} // определение координат вектора DCI_A1 * DCI_B2 var DCIA1_DCIB2_1_X = 0; var DCIA1_DCIB2_2_X; if (DCIA1_DCIB2_phase <= 180) {DCIA1_DCIB2_2_X = Math.abs(Math.cos(DCIA1_DCIB2_phase_X * Math.PI/180)) * DCIA1_DCIB2 } else {DCIA1_DCIB2_2_X = Math.abs(Math.cos(DCIA1_DCIB2_phase_X * Math.PI/180)) * DCIA1_DCIB2 * (-1)} var DCIA1_DCIB2_1_Y = 0; var DCIA1_DCIB2_2_Y; if (DCIA1_DCIB2_phase <= 90 || DCIA1_DCIB2_phase >= 270) {DCIA1_DCIB2_2_Y = Math.abs(Math.cos(DCIA1_DCIB2_phase_Y * Math.PI/180)) * DCIA1_DCIB2 } else {DCIA1_DCIB2_2_Y = Math.abs(Math.cos(DCIA1_DCIB2_phase_Y * Math.PI/180)) * DCIA1_DCIB2 * (-1)} // определение модуля вектора DCI_B1 * DCI_A2 var DCIB1_DCIA2 = DCI_B1 * DCI_A2; // определение фазы вектора DCI_B1 * DCI_A2 var DCIB1_DCIA2_phase; if ((DCI_B1_phase + DCI_A2_phase) >360) { DCIB1_DCIA2_phase = DCI_B1_phase + DCI_A2_phase - 360 } else {DCIB1_DCIA2_phase = DCI_B1_phase + DCI_A2_phase} // определение угла наклона вектора DCI_B1 * DCI_A2 к осям X и Y var DCIB1_DCIA2_phase_X; var DCIB1_DCIA2_phase_Y; if (DCIB1_DCIA2_phase <= 90) { DCIB1_DCIA2_phase_X = 90 - DCIB1_DCIA2_phase} if (DCIB1_DCIA2_phase <= 180) { DCIB1_DCIA2_phase_X = DCIB1_DCIA2_phase - 90} if (DCIB1_DCIA2_phase <= 270) { DCIB1_DCIA2_phase_X = 270 - DCIB1_DCIA2_phase} if (DCIB1_DCIA2_phase <= 360) { DCIB1_DCIA2_phase_X = DCIB1_DCIA2_phase - 270} if (DCIB1_DCIA2_phase <= 90) { DCIB1_DCIA2_phase_Y = DCIB1_DCIA2_phase} if (DCIB1_DCIA2_phase <= 180) { DCIB1_DCIA2_phase_Y = 180 - DCIB1_DCIA2_phase} if (DCIB1_DCIA2_phase <= 270) { DCIB1_DCIA2_phase_Y = DCIB1_DCIA2_phase - 180} if (DCIB1_DCIA2_phase <= 360) { DCIB1_DCIA2_phase_Y = 360 - DCIB1_DCIA2_phase} // определение координат вектора DCI_B1 * DCI_A2 var DCIB1_DCIA2_1_X = 0; var DCIB1_DCIA2_2_X; if (DCIB1_DCIA2_phase <= 180) {DCIB1_DCIA2_2_X = Math.abs(Math.cos(DCIB1_DCIA2_phase_X * Math.PI/180)) * DCIB1_DCIA2 } else {DCIB1_DCIA2_2_X = Math.abs(Math.cos(DCIB1_DCIA2_phase_X * Math.PI/180)) * DCIB1_DCIA2 * (-1)} var DCIB1_DCIA2_1_Y = 0; var DCIB1_DCIA2_2_Y; if (DCIB1_DCIA2_phase <= 90 || DCIB1_DCIA2_phase >= 270) {DCIB1_DCIA2_2_Y = Math.abs(Math.cos(DCIB1_DCIA2_phase_Y * Math.PI/180)) * DCIB1_DCIA2 } else {DCIB1_DCIA2_2_Y = Math.abs(Math.cos(DCIB1_DCIA2_phase_Y * Math.PI/180)) * DCIB1_DCIA2 * (-1)} // определение модуля вектора DCI_A1 * DCI_B2 - DCI_B1 * DCI_A2 var DCIA1_DCIB2_DCIB1_DCIA2; var DCIA1_DCIB2_DCIB1_DCIA2_1_X = DCIB1_DCIA2_2_X; var DCIA1_DCIB2_DCIB1_DCIA2_1_Y = DCIB1_DCIA2_2_Y; var DCIA1_DCIB2_DCIB1_DCIA2_2_X = DCIA1_DCIB2_2_X; var DCIA1_DCIB2_DCIB1_DCIA2_2_Y = DCIA1_DCIB2_2_Y; DCIA1_DCIB2_DCIB1_DCIA2 = Math.sqrt(Math.pow(DCIA1_DCIB2_DCIB1_DCIA2_2_X - DCIA1_DCIB2_DCIB1_DCIA2_1_X, 2) + Math.pow(DCIA1_DCIB2_DCIB1_DCIA2_2_Y - DCIA1_DCIB2_DCIB1_DCIA2_1_Y, 2)); // определение фазы вектора DCI_A1 * DCI_B2 - DCI_B1 * DCI_A2 var DCIA1_DCIB2_DCIB1_DCIA2_phase; if ((DCIA1_DCIB2_DCIB1_DCIA2_2_X > DCIA1_DCIB2_DCIB1_DCIA2_1_X) && (DCIA1_DCIB2_DCIB1_DCIA2_2_Y >= DCIA1_DCIB2_DCIB1_DCIA2_1_Y)) { DCIA1_DCIB2_DCIB1_DCIA2_phase = (((Math.acos((Math.abs(DCIA1_DCIB2_DCIB1_DCIA2_2_Y - DCIA1_DCIB2_DCIB1_DCIA2_1_Y)) / DCIA1_DCIB2_DCIB1_DCIA2)) * 180 ) / Math.PI)} if ((DCIA1_DCIB2_DCIB1_DCIA2_2_X <= DCIA1_DCIB2_DCIB1_DCIA2_1_X) && (DCIA1_DCIB2_DCIB1_DCIA2_2_Y < DCIA1_DCIB2_DCIB1_DCIA2_1_Y)) { DCIA1_DCIB2_DCIB1_DCIA2_phase = (((Math.acos((Math.abs(DCIA1_DCIB2_DCIB1_DCIA2_2_Y - DCIA1_DCIB2_DCIB1_DCIA2_1_Y)) / DCIA1_DCIB2_DCIB1_DCIA2)) * 180 ) / Math.PI) + 180} if ((DCIA1_DCIB2_DCIB1_DCIA2_2_X < DCIA1_DCIB2_DCIB1_DCIA2_1_X) && (DCIA1_DCIB2_DCIB1_DCIA2_2_Y >= DCIA1_DCIB2_DCIB1_DCIA2_1_Y)) { DCIA1_DCIB2_DCIB1_DCIA2_phase = 360 - (((Math.acos((Math.abs(DCIA1_DCIB2_DCIB1_DCIA2_2_Y - DCIA1_DCIB2_DCIB1_DCIA2_1_Y)) / DCIA1_DCIB2_DCIB1_DCIA2)) * 180 ) / Math.PI)} if ((DCIA1_DCIB2_DCIB1_DCIA2_2_X >= DCIA1_DCIB2_DCIB1_DCIA2_1_X) && (DCIA1_DCIB2_DCIB1_DCIA2_2_Y < DCIA1_DCIB2_DCIB1_DCIA2_1_Y)) { DCIA1_DCIB2_DCIB1_DCIA2_phase = 180 - (((Math.acos((Math.abs(DCIA1_DCIB2_DCIB1_DCIA2_2_Y - DCIA1_DCIB2_DCIB1_DCIA2_1_Y)) / DCIA1_DCIB2_DCIB1_DCIA2)) * 180 ) / Math.PI)} // определение корректирующей массы Mb1_calc (плоскость 1) Mb1_calc = B0_DCIA2_A0_DCIB2 / DCIA1_DCIB2_DCIB1_DCIA2; // опредение угла установки корректирующей массы Mb1_corner_calc (плоскость 1) if ((B0_DCIA2_A0_DCIB2_phase - DCIA1_DCIB2_DCIB1_DCIA2_phase) < 0) { Mb1_corner_calc = (B0_DCIA2_A0_DCIB2_phase - DCIA1_DCIB2_DCIB1_DCIA2_phase) + 360} else if ((B0_DCIA2_A0_DCIB2_phase - DCIA1_DCIB2_DCIB1_DCIA2_phase) > 360) { Mb1_corner_calc = (B0_DCIA2_A0_DCIB2_phase - DCIA1_DCIB2_DCIB1_DCIA2_phase) - 360} else {Mb1_corner_calc = (B0_DCIA2_A0_DCIB2_phase - DCIA1_DCIB2_DCIB1_DCIA2_phase)} // определение массы дисбаланса Mdisb1 плоскости 1 Mdisb1 = Mb1_calc; // равен массе балансировочного груза // определение угла расположения дисбаланса Mdisb1 плоскости 1 if ((Mb1_corner_calc + 180) > 360) { Mdisb1_corner = (Mb1_corner_calc + 180) - 360} else if ((Mb1_corner_calc + 180) < 0) { Mdisb1_corner = (Mb1_corner_calc + 180) + 360} else {Mdisb1_corner = (Mb1_corner_calc + 180)} // определение корректирующей массы Mb2_calc (плоскость 2) Mb2_calc = A0_DCIB1_B0_DCIA1 / DCIA1_DCIB2_DCIB1_DCIA2; // опредение угла установки корректирующей массы Mb2_corner_calc (плоскость 2) if ((A0_DCIB1_B0_DCIA1_phase - DCIA1_DCIB2_DCIB1_DCIA2_phase) < 0) { Mb2_corner_calc = (A0_DCIB1_B0_DCIA1_phase - DCIA1_DCIB2_DCIB1_DCIA2_phase) + 360} else if ((A0_DCIB1_B0_DCIA1_phase - DCIA1_DCIB2_DCIB1_DCIA2_phase) > 360) { Mb2_corner_calc = (A0_DCIB1_B0_DCIA1_phase - DCIA1_DCIB2_DCIB1_DCIA2_phase) - 360} else {Mb2_corner_calc = (A0_DCIB1_B0_DCIA1_phase - DCIA1_DCIB2_DCIB1_DCIA2_phase)} // определение массы дисбаланса Mdisb2 плоскости 2 Mdisb2 = Mb2_calc; // равен массе балансировочного груза // определение угла расположения дисбаланса Mdisb2_corner плоскости 2 if ((Mb2_corner_calc + 180) > 360) { Mdisb2_corner = (Mb2_corner_calc + 180) - 360} else if ((Mb2_corner_calc + 180) < 0) { Mdisb2_corner = (Mb2_corner_calc + 180) + 360} else {Mdisb2_corner = (Mb2_corner_calc + 180)} // Координаты дисбалансов и балансировочных грузов // определение угла наклона вектора Mb1_calc к осям X и Y if (Mb1_corner_calc <= 90) { Mb1_corner_calc_X = 90 - Mb1_corner_calc} if (Mb1_corner_calc <= 180) { Mb1_corner_calc_X = Mb1_corner_calc - 90} if (Mb1_corner_calc <= 270) { Mb1_corner_calc_X = 270 - Mb1_corner_calc} if (Mb1_corner_calc <= 360) { Mb1_corner_calc_X = Mb1_corner_calc - 270} if (Mb1_corner_calc <= 90) { Mb1_corner_calc_Y = Mb1_corner_calc} if (Mb1_corner_calc <= 180) { Mb1_corner_calc_Y = 180 - Mb1_corner_calc} if (Mb1_corner_calc <= 270) { Mb1_corner_calc_Y = Mb1_corner_calc - 180} if (Mb1_corner_calc <= 360) { Mb1_corner_calc_Y = 360 - Mb1_corner_calc} // определение координат вектора Mb1_calc Mb1_1_calc_X = 0; if (Mb1_corner_calc <= 180) {Mb1_2_calc_X = Math.abs(Math.cos(Mb1_corner_calc_X * Math.PI/180)) * Mb1_calc * (-1) } else {Mb1_2_calc_X = Math.abs(Math.cos(Mb1_corner_calc_X * Math.PI/180)) * Mb1_calc} Mb1_1_calc_Y = 0; if (Mb1_corner_calc <= 90 || Mb1_corner_calc >= 270) {Mb1_2_calc_Y = Math.abs(Math.cos(Mb1_corner_calc_Y * Math.PI/180)) * Mb1_calc } else {Mb1_2_calc_Y = Math.abs(Math.cos(Mb1_corner_calc_Y * Math.PI/180)) * Mb1_calc * (-1)} // определение угла наклона вектора Mb2_calc к осям X и Y if (Mb2_corner_calc <= 90) { Mb2_corner_calc_X = 90 - Mb2_corner_calc} if (Mb2_corner_calc <= 180) { Mb2_corner_calc_X = Mb2_corner_calc - 90} if (Mb2_corner_calc <= 270) { Mb2_corner_calc_X = 270 - Mb2_corner_calc} if (Mb2_corner_calc <= 360) { Mb2_corner_calc_X = Mb2_corner_calc - 270} if (Mb2_corner_calc <= 90) { Mb2_corner_calc_Y = Mb2_corner_calc} if (Mb2_corner_calc <= 180) { Mb2_corner_calc_Y = 180 - Mb2_corner_calc} if (Mb2_corner_calc <= 270) { Mb2_corner_calc_Y = Mb2_corner_calc - 180} if (Mb2_corner_calc <= 360) { Mb2_corner_calc_Y = 360 - Mb2_corner_calc} // определение координат вектора Mb2_calc Mb2_1_calc_X = 0; if (Mb2_corner_calc <= 180) {Mb2_2_calc_X = Math.abs(Math.cos(Mb2_corner_calc_X * Math.PI/180)) * Mb2_calc * (-1) } else {Mb2_2_calc_X = Math.abs(Math.cos(Mb2_corner_calc_X * Math.PI/180)) * Mb2_calc} Mb2_1_calc_Y = 0; if (Mb2_corner_calc <= 90 || Mb2_corner_calc >= 270) {Mb2_2_calc_Y = Math.abs(Math.cos(Mb2_corner_calc_Y * Math.PI/180)) * Mb2_calc } else {Mb2_2_calc_Y = Math.abs(Math.cos(Mb2_corner_calc_Y * Math.PI/180)) * Mb2_calc * (-1)} // определение угла наклона вектора Mb1 к осям X и Y if (Mb1_corner <= 90) { Mb1_corner_X = 90 - Mb1_corner} if (Mb1_corner <= 180) { Mb1_corner_X = Mb1_corner - 90} if (Mb1_corner <= 270) { Mb1_corner_X = 270 - Mb1_corner} if (Mb1_corner <= 360) { Mb1_corner_X = Mb1_corner - 270} if (Mb1_corner <= 90) { Mb1_corner_Y = Mb1_corner} if (Mb1_corner <= 180) { Mb1_corner_Y = 180 - Mb1_corner} if (Mb1_corner <= 270) { Mb1_corner_Y = Mb1_corner - 180} if (Mb1_corner <= 360) { Mb1_corner_Y = 360 - Mb1_corner} // определение координат вектора Mb1 Mb1_1_X = 0; if (Mb1_corner <= 180) {Mb1_2_X = Math.abs(Math.cos(Mb1_corner_X * Math.PI/180)) * Mb1 * (-1) } else {Mb1_2_X = Math.abs(Math.cos(Mb1_corner_X * Math.PI/180)) * Mb1} Mb1_1_Y = 0; if (Mb1_corner <= 90 || Mb1_corner >= 270) {Mb1_2_Y = Math.abs(Math.cos(Mb1_corner_Y * Math.PI/180)) * Mb1 } else {Mb1_2_Y = Math.abs(Math.cos(Mb1_corner_Y * Math.PI/180)) * Mb1 * (-1)} // определение угла наклона вектора Mb2 к осям X и Y if (Mb2_corner <= 90) { Mb2_corner_X = 90 - Mb2_corner} if (Mb2_corner <= 180) { Mb2_corner_X = Mb2_corner - 90} if (Mb2_corner <= 270) { Mb2_corner_X = 270 - Mb2_corner} if (Mb2_corner <= 360) { Mb2_corner_X = Mb2_corner - 270} if (Mb2_corner <= 90) { Mb2_corner_Y = Mb2_corner} if (Mb2_corner <= 180) { Mb2_corner_Y = 180 - Mb2_corner} if (Mb2_corner <= 270) { Mb2_corner_Y = Mb2_corner - 180} if (Mb2_corner <= 360) { Mb2_corner_Y = 360 - Mb2_corner} // определение координат вектора Mb2 Mb2_1_X = 0; if (Mb2_corner <= 180) {Mb2_2_X = Math.abs(Math.cos(Mb2_corner_X * Math.PI/180)) * Mb2 * (-1) } else {Mb2_2_X = Math.abs(Math.cos(Mb2_corner_X * Math.PI/180)) * Mb2} Mb2_1_Y = 0; if (Mb2_corner <= 90 || Mb2_corner >= 270) {Mb2_2_Y = Math.abs(Math.cos(Mb2_corner_Y * Math.PI/180)) * Mb2 } else {Mb2_2_Y = Math.abs(Math.cos(Mb2_corner_Y * Math.PI/180)) * Mb2 * (-1)} // определение угла наклона вектора Mdisb1 к осям X и Y if (Mdisb1_corner <= 90) { Mdisb1_corner_X = 90 - Mdisb1_corner} if (Mdisb1_corner <= 180) { Mdisb1_corner_X = Mdisb1_corner - 90} if (Mdisb1_corner <= 270) { Mdisb1_corner_X = 270 - Mdisb1_corner} if (Mdisb1_corner <= 360) { Mdisb1_corner_X = Mdisb1_corner - 270} if (Mdisb1_corner <= 90) { Mdisb1_corner_Y = Mdisb1_corner} if (Mdisb1_corner <= 180) { Mdisb1_corner_Y = 180 - Mdisb1_corner} if (Mdisb1_corner <= 270) { Mdisb1_corner_Y = Mdisb1_corner - 180} if (Mdisb1_corner <= 360) { Mdisb1_corner_Y = 360 - Mdisb1_corner} // определение координат вектора Mdisb1 Mdisb1_1_X = 0; if (Mdisb1_corner <= 180) {Mdisb1_2_X = Math.abs(Math.cos(Mdisb1_corner_X * Math.PI/180)) * Mdisb1 * (-1) } else {Mdisb1_2_X = Math.abs(Math.cos(Mdisb1_corner_X * Math.PI/180)) * Mdisb1} Mdisb1_1_Y = 0; if (Mdisb1_corner <= 90 || Mdisb1_corner >= 270) {Mdisb1_2_Y = Math.abs(Math.cos(Mdisb1_corner_Y * Math.PI/180)) * Mdisb1 } else {Mdisb1_2_Y = Math.abs(Math.cos(Mdisb1_corner_Y * Math.PI/180)) * Mdisb1 * (-1)} // определение угла наклона вектора Mdisb2 к осям X и Y if (Mdisb2_corner <= 90) { Mdisb2_corner_X = 90 - Mdisb2_corner} if (Mdisb2_corner <= 180) { Mdisb2_corner_X = Mdisb2_corner - 90} if (Mdisb2_corner <= 270) { Mdisb2_corner_X = 270 - Mdisb2_corner} if (Mdisb2_corner <= 360) { Mdisb2_corner_X = Mdisb2_corner - 270} if (Mdisb2_corner <= 90) { Mdisb2_corner_Y = Mdisb2_corner} if (Mdisb2_corner <= 180) { Mdisb2_corner_Y = 180 - Mdisb2_corner} if (Mdisb2_corner <= 270) { Mdisb2_corner_Y = Mdisb2_corner - 180} if (Mdisb2_corner <= 360) { Mdisb2_corner_Y = 360 - Mdisb2_corner} // определение координат вектора Mdisb2 Mdisb2_1_X = 0; if (Mdisb2_corner <= 180) {Mdisb2_2_X = Math.abs(Math.cos(Mdisb2_corner_X * Math.PI/180)) * Mdisb2 * (-1) } else {Mdisb2_2_X = Math.abs(Math.cos(Mdisb2_corner_X * Math.PI/180)) * Mdisb2} Mdisb2_1_Y = 0; if (Mdisb2_corner <= 90 || Mdisb2_corner >= 270) {Mdisb2_2_Y = Math.abs(Math.cos(Mdisb2_corner_Y * Math.PI/180)) * Mdisb2 } else {Mdisb2_2_Y = Math.abs(Math.cos(Mdisb2_corner_Y * Math.PI/180)) * Mdisb2 * (-1)} // Координаты графиков масс // определение координат точек окружности обозначения массы пробного груза var x_m_test_1_array = []; // массив координат точек окружности m_test_1 по оси X var y_m_test_1_array = []; // массив координат точек окружности m_test_1 по оси Y var x0_m_test_1 = m_test_1_2_X; // центр по X var y0_m_test_1 = m_test_1_2_Y; // центр по Y for (let i=0; i<=359; i++ ) { x_m_test_1_array.push(x0_m_test_1 + (Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)*0.1 * (Math.sin((i) * Math.PI / 180)))); y_m_test_1_array.push(y0_m_test_1 + (Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)*0.1 * (Math.cos((i) * Math.PI / 180))));} // определение координат точек окружности обозначения массы пробного груза var x_m_test_2_array = []; // массив координат точек окружности m_test_2 по оси X var y_m_test_2_array = []; // массив координат точек окружности m_test_2 по оси Y var x0_m_test_2 = m_test_2_2_X; // центр по X var y0_m_test_2 = m_test_2_2_Y; // центр по Y for (let i=0; i<=359; i++ ) { x_m_test_2_array.push(x0_m_test_2 + (Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)*0.1 * (Math.sin((i) * Math.PI / 180)))); y_m_test_2_array.push(y0_m_test_2 + (Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)*0.1 * (Math.cos((i) * Math.PI / 180))));} // определение координат точек окружности обозначения расчётного балансировочного груза Mb1_calc плоскости 1 var x_Mb1_calc_array = []; // массив координат точек окружности Mb1_calc по оси X var y_Mb1_calc_array = []; // массив координат точек окружности Mb1_calc по оси Y var x0_Mb1_calc = Mb1_2_calc_X; // центр по X var y0_Mb1_calc = Mb1_2_calc_Y; // центр по Y for (let i=0; i<=359; i++ ) { x_Mb1_calc_array.push(x0_Mb1_calc + (Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)*0.1 * (Math.sin((i) * Math.PI / 180)))); y_Mb1_calc_array.push(y0_Mb1_calc + (Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)*0.1 * (Math.cos((i) * Math.PI / 180))));} // определение координат точек окружности обозначения расчётного балансировочного груза Mb2_calc плоскости 2 var x_Mb2_calc_array = []; // массив координат точек окружности Mb2_calc по оси X var y_Mb2_calc_array = []; // массив координат точек окружности Mb2_calc по оси Y var x0_Mb2_calc = Mb2_2_calc_X; // центр по X var y0_Mb2_calc = Mb2_2_calc_Y; // центр по Y for (let i=0; i<=359; i++ ) { x_Mb2_calc_array.push(x0_Mb2_calc + (Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)*0.1 * (Math.sin((i) * Math.PI / 180)))); y_Mb2_calc_array.push(y0_Mb2_calc + (Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)*0.1 * (Math.cos((i) * Math.PI / 180))));} // определение координат точек окружности обозначения введённого балансировочного груза Mb1 плоскости 1 var x_Mb1_array = []; // массив координат точек окружности Mb1 по оси X var y_Mb1_array = []; // массив координат точек окружности Mb1 по оси Y var x0_Mb1 = Mb1_2_X; // центр по X var y0_Mb1 = Mb1_2_Y; // центр по Y for (let i=0; i<=359; i++ ) { x_Mb1_array.push(x0_Mb1 + (Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)*0.1 * (Math.sin((i) * Math.PI / 180)))); y_Mb1_array.push(y0_Mb1 + (Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)*0.1 * (Math.cos((i) * Math.PI / 180))));} // определение координат точек окружности обозначения введённого балансировочного груза Mb2 плоскости 2 var x_Mb2_array = []; // массив координат точек окружности Mb2 по оси X var y_Mb2_array = []; // массив координат точек окружности Mb2 по оси Y var x0_Mb2 = Mb2_2_X; // центр по X var y0_Mb2 = Mb2_2_Y; // центр по Y for (let i=0; i<=359; i++ ) { x_Mb2_array.push(x0_Mb2 + (Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)*0.1 * (Math.sin((i) * Math.PI / 180)))); y_Mb2_array.push(y0_Mb2 + (Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)*0.1 * (Math.cos((i) * Math.PI / 180))));} // определение координат точек окружности обозначения дисбаалнса Mdisb1 плоскости 1 var x_Mdisb1_array = []; // массив координат точек окружности Mdisb1 по оси X var y_Mdisb1_array = []; // массив координат точек окружности Mdisb1 по оси Y var x0_Mdisb1 = Mdisb1_2_X; // центр по X var y0_Mdisb1 = Mdisb1_2_Y; // центр по Y for (let i=0; i<=359; i++ ) { x_Mdisb1_array.push(x0_Mdisb1 + (Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)*0.1 * (Math.sin((i) * Math.PI / 180)))); y_Mdisb1_array.push(y0_Mdisb1 + (Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)*0.1 * (Math.cos((i) * Math.PI / 180))));} // определение координат точек окружности обозначения дисбаланса Mdisb2 плоскости 2 var x_Mdisb2_array = []; // массив координат точек окружности Mdisb2 по оси X var y_Mdisb2_array = []; // массив координат точек окружности Mdisb2 по оси Y var x0_Mdisb2 = Mdisb2_2_X; // центр по X var y0_Mdisb2 = Mdisb2_2_Y; // центр по Y for (let i=0; i<=359; i++ ) { x_Mdisb2_array.push(x0_Mdisb2 + (Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)*0.1 * (Math.sin((i) * Math.PI / 180)))); y_Mdisb2_array.push(y0_Mdisb2 + (Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)*0.1 * (Math.cos((i) * Math.PI / 180))));} // определение координат точек окружности графика для отображения расположения дисбаланса var xD_array = []; // массив координат точек окружности D по оси X var yD_array = []; // массив координат точек окружности D по оси Y var x0D = 0; // центр в начале координат var y0D = 0; // центр в начале координат for (let i=0; i<=359; i++ ) { xD_array.push(x0D + (Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)+Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)*0.1) * (Math.sin((i) * Math.PI / 180))); yD_array.push(y0D + (Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)+Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)*0.1) * (Math.cos((i) * Math.PI / 180)));} // Вычисление допустимого остаточного дисбаланса U_per = (1000 * (G * P)) / (Math.PI * n / 30); // Остаточный дисбаланс U_res1 = Mdisb1 * R1; U_res2 = Mdisb2 * R2; U_res = U_res1 + U_res2; // Графики вибрации plot_vibr.add( { color: 0x0000ff, name: "Вибрация_A0", x: xA0_array, y: yA0_array, }); plot_vibr.add( { color: 0x00ff00, name: "Вибрация_A1", x: xA1_array, y: yA1_array, }); plot_vibr.add( { color: 0x0fae1a, name: "Вибрация_A2", x: xA2_array, y: yA2_array, }); plot_vibr.add( { color: 0xff0000, name: "Вибрация_dA1", x: xdA1_array, y: ydA1_array, }); plot_vibr.add( { color: 0xff3dcc, name: "Вибрация_dA2", x: xdA2_array, y: ydA2_array, }); plot_vibr.add( { color: 0x0000ff, name: "Вибрация_B0", x: xB0_array, y: yB0_array, }); plot_vibr.add( { color: 0x00ff00, name: "Вибрация_B1", x: xB1_array, y: yB1_array, }); plot_vibr.add( { color: 0x0fae1a, name: "Вибрация_B2", x: xB2_array, y: yB2_array, }); plot_vibr.add( { color: 0xff0000, name: "Вибрация_dB1", x: xdB1_array, y: ydB1_array, }); plot_vibr.add( { color: 0xff3dcc, name: "Вибрация_dB2", x: xdB2_array, y: ydB2_array, }); plot_vibr.add( { color: 0x00ffffff, name: "График векторов вибрации", x: xV_array, y: yV_array, }); plot_vibr.add( { color: 0x00ffffff, name: "границы", x: [-(Math.max(A0,A1,dA1,A2,dA2,B0,B1,dB1,B2,dB2)+Math.max(A0,A1,dA1,A2,dA2,B0,B1,dB1,B2,dB2)*0.2), -(Math.max(A0,A1,dA1,A2,dA2,B0,B1,dB1,B2,dB2)+Math.max(A0,A1,dA1,A2,dA2,B0,B1,dB1,B2,dB2)*0.2), (Math.max(A0,A1,dA1,A2,dA2,B0,B1,dB1,B2,dB2)+Math.max(A0,A1,dA1,A2,dA2,B0,B1,dB1,B2,dB2)*0.2), (Math.max(A0,A1,dA1,A2,dA2,B0,B1,dB1,B2,dB2)+Math.max(A0,A1,dA1,A2,dA2,B0,B1,dB1,B2,dB2)*0.2)], y: [(Math.max(A0,A1,dA1,A2,dA2,B0,B1,dB1,B2,dB2)+Math.max(A0,A1,dA1,A2,dA2,B0,B1,dB1,B2,dB2)*0.2), -(Math.max(A0,A1,dA1,A2,dA2,B0,B1,dB1,B2,dB2)+Math.max(A0,A1,dA1,A2,dA2,B0,B1,dB1,B2,dB2)*0.2), -(Math.max(A0,A1,dA1,A2,dA2,B0,B1,dB1,B2,dB2)+Math.max(A0,A1,dA1,A2,dA2,B0,B1,dB1,B2,dB2)*0.2), (Math.max(A0,A1,dA1,A2,dA2,B0,B1,dB1,B2,dB2)+Math.max(A0,A1,dA1,A2,dA2,B0,B1,dB1,B2,dB2)*0.2)] }); plot_disb.add( { color: 0x0000ff, name: "Пробный груз m_test_1 плоскости 1", x: x_m_test_1_array, y: y_m_test_1_array, }); plot_disb.add( { color: 0x0000ff, name: "Пробный груз m_test_2 плоскости 2", x: x_m_test_2_array, y: y_m_test_2_array, }); plot_disb.add( { color: 0x00ff00, name: "Балансировочный груз расчётный Mb1_calc плоскости 1", x: x_Mb1_calc_array, y: y_Mb1_calc_array, }); plot_disb.add( { color: 0x00ff00, name: "Балансировочный груз расчётный Mb2_calc плоскости 2", x: x_Mb2_calc_array, y: y_Mb2_calc_array, }); plot_disb.add( { color: 0x0fae1a, name: "Балансировочный груз введённый Mb1 плоскости 1", x: x_Mb1_array, y: y_Mb1_array, }); plot_disb.add( { color: 0x0fae1a, name: "Балансировочный груз введённый Mb2 плоскости 2", x: x_Mb2_array, y: y_Mb2_array, }); plot_disb.add( { color: 0xff0000, name: "Дисбаланс Mdisb1 плоскости 1", x: x_Mdisb1_array, y: y_Mdisb1_array, }); plot_disb.add( { color: 0xff0000, name: "Дисбаланс Mdisb2 плоскости 2", x: x_Mdisb2_array, y: y_Mdisb2_array, }); plot_disb.add( { color: 0x00ffffff, name: "График расположения дисбаланса", x: xD_array, y: yD_array, }); plot_disb.add( { color: 0x00ffffff, name: "границы", x: [-(Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)+Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)*0.2), -(Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)+Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)*0.2), (Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)+Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)*0.2), (Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)+Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)*0.2)], y: [(Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)+Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)*0.2), -(Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)+Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)*0.2), -(Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)+Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)*0.2), (Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)+Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)*0.2)] }); gtl.log.info("Mb1_calc (масса балансировочного груза плоскости 1 расчёт)",Mb1_calc); gtl.log.info("Mb1_corner_calc (угол установки балансировочного груза плоскости 1 расчёт)",Mb1_corner_calc); gtl.log.info("Mb1 (масса балансировочного груза плоскости 1 введён)",Mb1); gtl.log.info("Mb1_corner (угол установки балансировочного груза плоскости 1 введён)",Mb1_corner); gtl.log.info("Mdisb1 (дисбаланс плоскости 1)",Mdisb1); gtl.log.info("Mdisb1_corner (угол расположения дисбаланса плоскости 1)",Mdisb1_corner); gtl.log.info("Mb2_calc (масса балансировочного груза плоскости 2 расчёт)",Mb2_calc); gtl.log.info("Mb2_corner_calc (угол установки балансировочного груза плоскости 2 расчёт)",Mb2_corner_calc); gtl.log.info("Mb2 (масса балансировочного груза плоскости 2 введён)",Mb2); gtl.log.info("Mb2_corner (угол установки балансировочного груза плоскости 2 введён)",Mb2_corner); gtl.log.info("Mdisb2 (дисбаланс плоскости 2)",Mdisb2); gtl.log.info("Mdisb2_corner (угол расположения дисбаланса плоскости 2)",Mdisb2_corner); gtl.log.info("m_test_1 (пробный груз плоскости 1 введён)",m_test_1); gtl.log.info("m_test_1_corner (угол установки пробного груза плоскости 1 введён)",m_test_1_corner); gtl.log.info("m_test_2 (пробный груз плоскости 2 введён)",m_test_2); gtl.log.info("m_test_2_corner (угол установки пробного груза плоскости 2 введён)",m_test_2_corner); gtl.log.info("A0",A0); gtl.log.info("A0_phase",A0_phase); gtl.log.info("A1",A1); gtl.log.info("A1_phase",A1_phase); gtl.log.info("A2",A2); gtl.log.info("A2_phase",A2_phase); gtl.log.info("B0",B0); gtl.log.info("B0_phase",B0_phase); gtl.log.info("B1",B1); gtl.log.info("B1_phase",B1_phase); gtl.log.info("B2",B2); gtl.log.info("B2_phase",B2_phase); gtl.log.info("модуль ДКВ DCI_A1 плоскости 1 на вибрацию в точке A", DCI_A1); gtl.log.info("фаза ДКВ DCI_A1 плоскости 1 на вибрацию в точке A", DCI_A1_phase); gtl.log.info("модуль ДКВ DCI_A2 плоскости 2 на вибрацию в точке A", DCI_A2); gtl.log.info("фаза ДКВ DCI_A2 плоскости 2 на вибрацию в точке A", DCI_A2_phase); gtl.log.info("модуль ДКВ DCI_B1 плоскости 1 на вибрацию в точке B", DCI_B1); gtl.log.info("фаза ДКВ DCI_B1 плоскости 1 на вибрацию в точке B", DCI_B1_phase); gtl.log.info("модуль ДКВ DCI_B2 плоскости 2 на вибрацию в точке B", DCI_B2); gtl.log.info("фаза ДКВ DCI_B2 плоскости 2 на вибрацию в точке B", DCI_B2_phase); gtl.log.info("Допустимый остаточный дисбаланс", U_per); gtl.log.info("Остаточный дисбаланс плоскости 1", U_res1); gtl.log.info("Остаточный дисбаланс плоскости 2", U_res2); // Выдача результата (results) let __result = { _001_Ампл_вибр_пуска_A0: A0, _002_Фаза_вибр_пуска_A0: A0_phase, _003_Ампл_вибр_пуска_A1: A1, _004_Фаза_вибр_пуска_A1: A1_phase, _005_Ампл_вибр_пуска_A2: A2, _006_Фаза_вибр_пуска_A2: A2_phase, _007_Ампл_вибр_пуска_B0: B0, _008_Фаза_вибр_пуска_B0: B0_phase, _009_Ампл_вибр_пуска_B1: B1, _010_Фаза_вибр_пуска_B1: B1_phase, _011_Ампл_вибр_пуска_B2: B2, _012_Фаза_вибр_пуска_B2: B2_phase, _013_Масса_дисбаланса_пл_1: Mdisb1, _014_Угол_дисбаланса_пл_1: Mdisb1_corner, _015_Масса_дисбаланса_пл_2: Mdisb2, _015_Угол_дисбаланса_пл_2: Mdisb2_corner, _016_Масса_баланс_груза_расч_пл_1: Mb1_calc, _017_Угол_баланс_груза_расч_пл_1: Mb1_corner_calc, _018_Масса_баланс_груза_введён_пл_1: Mb1, _019_Угол_баланс_груза_введён_пл_1: Mb1_corner, _020_Масса_баланс_груза_расч_пл_2: Mb2_calc, _021_Угол_баланс_груза_расч_пл_2: Mb2_corner_calc, _022_Масса_баланс_груза_введён_пл_2: Mb2, _023_Угол_баланс_груза_введён_пл_2: Mb2_corner, _024_Модуль_ДКВ_DCI_A1: DCI_A1, _025_Фаза_ДКВ_DCI_A1: DCI_A1_phase, _026_Модуль_ДКВ_DCI_A2: DCI_A2, _027_Фаза_ДКВ_DCI_A2: DCI_A2_phase, _028_Модуль_ДКВ_DCI_B1: DCI_B1, _029_Фаза_ДКВ_DCI_B1: DCI_B1_phase, _030_Модуль_ДКВ_DCI_B2: DCI_B2, _031_Фаза_ДКВ_DCI_B2: DCI_B2_phase, _032_Допуст_ост_дисб_г_мм: U_per, _033_Остат_дисб_пл1_г_мм: U_res1, _034_Остат_дисб_пл2_г_мм: U_res2, _035_Остат_дисб_сумм_г_мм: U_res }; gtl.results = {"result": __result}; gtl.diagnostic.stop(); // break; // default: // break; // } }