"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_res12; // остаточный дисбаланс плоскости 1 (после балансировки) *** (ГОСТ 1940) let U_res22; // остаточный дисбаланс плоскости 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 A0_ = gtl.options.customOptions.A0; // модуль вектора начальной вибрации */** let A0 = A0_; // модуль вектора начальной вибрации */** (конечное значение) let A0_phase_ = gtl.options.customOptions.A0_phase; // фаза вектора начальной вибрации */** let A0_phase = A0_phase_; // фаза вектора начальной вибрации */** (конечное значение) let A3_ = gtl.options.customOptions.A3; // модуль вектора вибрации точки A после установки балансировочного груза в плоскость 1 */** let A3 = A3_; // модуль вектора вибрации точки A после установки балансировочного груза в плоскость 1 */** (конечное значение) let A3_phase_ = gtl.options.customOptions.A3_phase; // фаза вектора вибрации точки A после установки балансировочного груза в плоскость 1 */** let A3_phase = A3_phase_; // фаза вектора вибрации точки A после установки балансировочного груза в плоскость 1 */** (конечное значение) let dA3; // модуль вектора дельты вибрации точки A после установки балансировочного груза в плоскость 1 *** let dA3_phase; // фаза вектора дельты вибрации точки A после установки балансировочного груза в плоскость 1 *** let B0_ = gtl.options.customOptions.B0; // модуль вектора начальной вибрации */** let B0 = B0_; // модуль вектора начальной вибрации */** (конечное значение) let B0_phase_ = gtl.options.customOptions.B0_phase; // фаза вектора начальной вибрации */** let B0_phase = B0_phase_; // фаза вектора начальной вибрации */** (конечное значение) let B3_ = gtl.options.customOptions.B3; // модуль вектора вибрации точки B после установки балансировочного груза в плоскость 2 */** let B3 = B3_; // модуль вектора вибрации точки B после установки балансировочного груза в плоскость 2 */** (конечное значение) let B3_phase_ = gtl.options.customOptions.B3_phase; // фаза вектора вибрации точки B после установки балансировочного груза в плоскость 2 */** let B3_phase = B3_phase_; // фаза вектора вибрации точки B после установки балансировочного груза в плоскость 2 */** (конечное значение) let dB3; // модуль вектора дельты вибрации точки B после установки балансировочного груза в плоскость 2 *** let dB3_phase; // фаза вектора дельты вибрации точки B после установки балансировочного груза в плоскость 2 *** let DCI_A1_ = gtl.options.customOptions.DCI_A1; // модуль (мм/с/граммы) ДКВ груза m_test_1 в плоскости 1 на вибрацию в точке A **/*** let DCI_A1 = DCI_A1_; // модуль (мм/с/граммы) ДКВ груза m_test_1 в плоскости 1 на вибрацию в точке A **/*** (конечное значение) let DCI_A1_phase_ = gtl.options.customOptions.DCI_A1_phase; // фаза ДКВ груза m_test_1 в плоскости 1 на вибрацию в точке A **/*** let DCI_A1_phase = DCI_A1_phase_; // фаза ДКВ груза m_test_1 в плоскости 1 на вибрацию в точке A **/*** (конечное значение) let DCI_B1_ = gtl.options.customOptions.DCI_B1; // модуль (мм/с/граммы) ДКВ груза m_test_1 в плоскости 1 на вибрацию в точке B **/*** let DCI_B1 = DCI_B1_; // модуль (мм/с/граммы) ДКВ груза m_test_1 в плоскости 1 на вибрацию в точке B **/*** (конечное значение) let DCI_B1_phase_ = gtl.options.customOptions.DCI_B1_phase; // фаза ДКВ груза m_test_1 в плоскости 1 на вибрацию в точке B **/*** let DCI_B1_phase = DCI_B1_phase_; // фаза ДКВ груза m_test_1 в плоскости 1 на вибрацию в точке B **/*** (конечное значение) let DCI_A2_ = gtl.options.customOptions.DCI_A2; // модуль (мм/с/граммы) ДКВ груза m_test_2 в плоскости 2 на вибрацию в точке A **/*** let DCI_A2 = DCI_A2_; // модуль (мм/с/граммы) ДКВ груза m_test_2 в плоскости 2 на вибрацию в точке A **/*** (конечное значение) let DCI_A2_phase_ = gtl.options.customOptions.DCI_A2_phase; // фаза ДКВ груза m_test_2 в плоскости 2 на вибрацию в точке A **/*** let DCI_A2_phase = DCI_A2_phase_; // фаза ДКВ груза m_test_2 в плоскости 2 на вибрацию в точке A **/*** (конечное значение) let DCI_B2_ = gtl.options.customOptions.DCI_B2; // модуль (мм/с/граммы) ДКВ груза m_test_2 в плоскости 2 на вибрацию в точке B **/*** let DCI_B2 = DCI_B2_; // модуль (мм/с/граммы) ДКВ груза m_test_2 в плоскости 2 на вибрацию в точке B **/*** (конечное значение) let DCI_B2_phase_ = gtl.options.customOptions.DCI_B2_phase; // фаза ДКВ груза m_test_2 в плоскости 2 на вибрацию в точке B **/*** let DCI_B2_phase = DCI_B2_phase_; // фаза ДКВ груза m_test_2 в плоскости 2 на вибрацию в точке B **/*** (конечное значение) let Mb1 = gtl.options.customOptions.Mb1; // модуль введённого вектора балансировочного груза в плоскости 1 ** (конечное значение) let Mb1_corner = gtl.options.customOptions.Mb1_corner; // угол введённого вектора балансировочного груза в плоскости 1 ** (конечное значение) let Mb1_calc = gtl.options.customOptions.Mb1_calc; // модуль расчётного вектора балансировочного груза в плоскости 1 *** (конечное значение) let Mb1_corner_calc = gtl.options.customOptions.Mb1_corner_calc;// угол расчётного вектора балансировочного груза в плоскости 1 *** (конечное значение) let Mb2 = gtl.options.customOptions.Mb2; // модуль введённого вектора балансировочного груза в плоскости 2 ** (конечное значение) let Mb2_corner = gtl.options.customOptions.Mb2_corner; // угол введённого вектора балансировочного груза в плоскости 2 ** (конечное значение) let Mb2_calc = gtl.options.customOptions.Mb2_calc; // модуль расчётного вектора балансировочного груза в плоскости 2 *** (конечное значение) let Mb2_corner_calc = gtl.options.customOptions.Mb2_corner_calc;// угол расчётного вектора балансировочного груза в плоскости 2 *** (конечное значение) let Mdisb1 = gtl.options.customOptions.Mdisb1; // масса дисбаланса в плоскости 1 *** (конечное значение) let Mdisb1_corner = gtl.options.customOptions.Mdisb1_corner;// угол расположения дисбаланса в плоскости 1 *** (конечное значение) let Mdisb2 = gtl.options.customOptions.Mdisb2; // масса дисбаланса в плоскости 2 *** (конечное значение) let Mdisb2_corner = gtl.options.customOptions.Mdisb2_corner;// угол расположения дисбаланса в плоскости 2 *** (конечное значение) let Mb12_calc; // модуль расчётного вектора груза для добалансировки в плоскости 1 *** (конечное значение) let Mb12_corner_calc; // угол расчётного вектора груза для добалансировки в плоскости 1 *** (конечное значение) let Mb22_calc; // модуль расчётного вектора груза для добалансировки в плоскости 2 *** (конечное значение) let Mb22_corner_calc; // угол расчётного вектора груза для добалансировки в плоскости 2 *** (конечное значение) let Mdisb12; // масса остаточного дисбаланса в плоскости 1 *** (конечное значение) let Mdisb12_corner; // угол расположения остаточного дисбаланса в плоскости 1 *** (конечное значение) let Mdisb22; // масса остаточного дисбаланса в плоскости 2 *** (конечное значение) let Mdisb22_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 A3_phase_X; // угол наклона вектора A3 к оси X let A3_phase_Y; // угол наклона вектора A3 к оси Y let A3_1_X; // начальная координата вектора A3 по оси X let A3_2_X; // конечная координата вектора A3 по оси X let A3_1_Y; // начальная координата вектора A3 по оси Y let A3_2_Y; // конечная координата вектора A3 по оси Y let dA3_1_X; // начальная координата вектора dA3 по оси X let dA3_2_X; // конечная координата вектора dA3 по оси X let dA3_1_Y; // начальная координата вектора dA3 по оси Y let dA3_2_Y; // конечная координата вектора dA3 по оси 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 B3_phase_X; // угол наклона вектора B3 к оси X let B3_phase_Y; // угол наклона вектора B3 к оси Y let B3_1_X; // начальная координата вектора B3 по оси X let B3_2_X; // конечная координата вектора B3 по оси X let B3_1_Y; // начальная координата вектора B3 по оси Y let B3_2_Y; // конечная координата вектора B3 по оси Y let dB3_1_X; // начальная координата вектора dB3 по оси X let dB3_2_X; // конечная координата вектора dB3 по оси X let dB3_1_Y; // начальная координата вектора dB3 по оси Y let dB3_2_Y; // конечная координата вектора dB3 по оси 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 let Mdisb12_corner_X; // угол наклона вектора Mdisb12 к оси X (плоскость 1) let Mdisb12_corner_Y; // угол наклона вектора Mdisb12 к оси Y (плоскость 1) let Mdisb12_1_X; // начальная координата вектора Mdisb12 по оси X (плоскость 1) let Mdisb12_2_X; // конечная координата вектора Mdisb12 по оси X (плоскость 1) let Mdisb12_1_Y; // начальная координата вектора Mdisb12 по оси Y (плоскость 1) let Mdisb12_2_Y; // конечная координата вектора Mdisb12 по оси Y (плоскость 1) let Mb12_corner_calc_X; // угол наклона расчётного вектора Mb12_calc к оси X (плоскость 1) let Mb12_corner_calc_Y; // угол наклона расчётного вектора Mb12_calc к оси Y (плоскость 1) let Mb12_1_calc_X; // начальная координата расчётного вектора Mb12_calc по оси X (плоскость 1) let Mb12_2_calc_X; // конечная координата расчётного вектора Mb12_calc по оси X (плоскость 1) let Mb12_1_calc_Y; // начальная координата расчётного вектора Mb12_calc по оси Y (плоскость 1) let Mb12_2_calc_Y; // конечная координата расчётного вектора Mb12_calc по оси Y (плоскость 1) let Mdisb22_corner_X; // угол наклона вектора Mdisb22 к оси X (плоскость 2) let Mdisb22_corner_Y; // угол наклона вектора Mdisb22 к оси Y (плоскость 2) let Mdisb22_1_X; // начальная координата вектора Mdisb22 по оси X (плоскость 2) let Mdisb22_2_X; // конечная координата вектора Mdisb22 по оси X (плоскость 2) let Mdisb22_1_Y; // начальная координата вектора Mdisb22 по оси Y (плоскость 2) let Mdisb22_2_Y; // конечная координата вектора Mdisb22 по оси Y (плоскость 2) let Mb22_corner_calc_X; // угол наклона расчётного вектора Mb22_calc к оси X (плоскость 2) let Mb22_corner_calc_Y; // угол наклона расчётного вектора Mb22_calc к оси Y (плоскость 2) let Mb22_1_calc_X; // начальная координата расчётного вектора Mb22_calc по оси X (плоскость 2) let Mb22_2_calc_X; // конечная координата расчётного вектора Mb22_calc по оси X (плоскость 2) let Mb22_1_calc_Y; // начальная координата расчётного вектора Mb22_calc по оси Y (плоскость 2) let Mb22_2_calc_Y; // конечная координата расчётного вектора Mb22_calc по оси Y (плоскость 2) // ***** РАСЧЁТЫ ***** // 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() { // РАСЧЁТЫ (балансировочный калькулятор) // ШАГ 4 - расположение дисбалансов: // из предыдущих шагов переносится: // начальная вибрация A0, B0 // вибрация после установки балансировчных грузов A3, B3 // массы и углы расположения дисбалансов Mdisb1, Mdisb2 // массы и углы расположения расчётных балансировочных грузов Mb1_calc, Mb2_calc // массы и углы расположения выбранных балансировочных грузов Mb1, Mb2 // массы и углы расположения остаточных дисбалансов Mdisb12, Mdisb22 // массы и углы расположения грузов для добалансировки Mb12_calc, Mb22_calc // построение графика вибрации: A0, A3, dA3, // B0, B3, dB3 // построение графиков расположения дисбалансов и балансировочных грузов: Mb1_calc, Mb2_calc, Mb1, Mb2, // Mdisb1, Mdisb2, Mb12_calc, Mb22_calc, Mdisb12, Mdisb22 // определение угла наклона вектора 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; // определение угла наклона вектора A3 к осям X и Y if (A3_phase <= 90) { A3_phase_X = 90 - A3_phase} if (A3_phase <= 180) { A3_phase_X = A3_phase - 90} if (A3_phase <= 270) { A3_phase_X = 270 - A3_phase} if (A3_phase <= 360) { A3_phase_X = A3_phase - 270} if (A3_phase <= 90) { A3_phase_Y = A3_phase} if (A3_phase <= 180) { A3_phase_Y = 180 - A3_phase} if (A3_phase <= 270) { A3_phase_Y = A3_phase - 180} if (A3_phase <= 360) { A3_phase_Y = 360 - A3_phase} // определение координат вектора A3 var xA3_array = []; // массив координат точек вектора A3 по оси X var yA3_array = []; // массив координат точек вектора A3 по оси Y A3_1_X = 0; if (A3_phase <= 180) {A3_2_X = Math.abs(Math.cos(A3_phase_X * Math.PI/180)) * A3 } else {A3_2_X = Math.abs(Math.cos(A3_phase_X * Math.PI/180)) * A3 * (-1)} A3_1_Y = 0; if (A3_phase <= 90 || A3_phase >= 270) {A3_2_Y = Math.abs(Math.cos(A3_phase_Y * Math.PI/180)) * A3 } else {A3_2_Y = Math.abs(Math.cos(A3_phase_Y * Math.PI/180)) * A3 * (-1)} xA3_array[0] = A3_1_X; xA3_array[1] = A3_2_X; yA3_array[0] = A3_1_Y; yA3_array[1] = A3_2_Y; // определение модуля вектора dA3 var xdA3_array = []; // массив координат точек вектора dA3 по оси X var ydA3_array = []; // массив координат точек вектора dA3 по оси Y dA3_1_X = A0_2_X; dA3_2_X = A3_2_X; dA3_1_Y = A0_2_Y; dA3_2_Y = A3_2_Y; dA3 = Math.sqrt(Math.pow(dA3_2_X - dA3_1_X, 2) + Math.pow(dA3_2_Y - dA3_1_Y, 2)) xdA3_array[0] = dA3_1_X; xdA3_array[1] = dA3_2_X; ydA3_array[0] = dA3_1_Y; ydA3_array[1] = dA3_2_Y; // определение фазы вектора dA3 if ((dA3_2_Y < dA3_1_Y) && (dA3_2_X < dA3_1_X)) { dA3_phase = 180 + (((Math.acos((Math.abs(dA3_2_Y - dA3_1_Y)) / dA3)) * 180 ) / Math.PI)} if ((dA3_2_Y > dA3_1_Y) && (dA3_2_X > dA3_1_X)) { dA3_phase = (((Math.acos((Math.abs(dA3_2_Y - dA3_1_Y)) / dA3)) * 180 ) / Math.PI)} if ((dA3_2_Y > dA3_1_Y) && (dA3_2_X < dA3_1_X)) { dA3_phase = 360 - (((Math.acos((Math.abs(dA3_2_Y - dA3_1_Y)) / dA3)) * 180 ) / Math.PI)} if ((dA3_2_Y < dA3_1_Y) && (dA3_2_X > dA3_1_X)) { dA3_phase = 180 - (((Math.acos((Math.abs(dA3_2_Y - dA3_1_Y)) / dA3)) * 180 ) / Math.PI)} if (dA3_phase > 360) {dA3_phase = dA3_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; // определение угла наклона вектора B3 к осям X и Y if (B3_phase <= 90) { B3_phase_X = 90 - B3_phase} if (B3_phase <= 180) { B3_phase_X = B3_phase - 90} if (B3_phase <= 270) { B3_phase_X = 270 - B3_phase} if (B3_phase <= 360) { B3_phase_X = B3_phase - 270} if (B3_phase <= 90) { B3_phase_Y = B3_phase} if (B3_phase <= 180) { B3_phase_Y = 180 - B3_phase} if (B3_phase <= 270) { B3_phase_Y = B3_phase - 180} if (B3_phase <= 360) { B3_phase_Y = 360 - B3_phase} // определение координат вектора B3 var xB3_array = []; // массив координат точек вектора B3 по оси X var yB3_array = []; // массив координат точек вектора B3 по оси Y B3_1_X = 0; if (B3_phase <= 180) {B3_2_X = Math.abs(Math.cos(B3_phase_X * Math.PI/180)) * B3 } else {B3_2_X = Math.abs(Math.cos(B3_phase_X * Math.PI/180)) * B3 * (-1)} B3_1_Y = 0; if (B3_phase <= 90 || B3_phase >= 270) {B3_2_Y = Math.abs(Math.cos(B3_phase_Y * Math.PI/180)) * B3 } else {B3_2_Y = Math.abs(Math.cos(B3_phase_Y * Math.PI/180)) * B3 * (-1)} xB3_array[0] = B3_1_X; xB3_array[1] = B3_2_X; yB3_array[0] = B3_1_Y; yB3_array[1] = B3_2_Y; // определение модуля вектора dB3 var xdB3_array = []; // массив координат точек вектора dB3 по оси X var ydB3_array = []; // массив координат точек вектора dB3 по оси Y dB3_1_X = B0_2_X; dB3_2_X = B3_2_X; dB3_1_Y = B0_2_Y; dB3_2_Y = B3_2_Y; dB3 = Math.sqrt(Math.pow(dB3_2_X - dB3_1_X, 2) + Math.pow(dB3_2_Y - dB3_1_Y, 2)) xdB3_array[0] = dB3_1_X; xdB3_array[1] = dB3_2_X; ydB3_array[0] = dB3_1_Y; ydB3_array[1] = dB3_2_Y; // определение фазы вектора dB3 if ((dB3_2_Y < dB3_1_Y) && (dB3_2_X < dB3_1_X)) { dB3_phase = 180 + (((Math.acos((Math.abs(dB3_2_Y - dB3_1_Y)) / dB3)) * 180 ) / Math.PI)} if ((dB3_2_Y > dB3_1_Y) && (dB3_2_X > dB3_1_X)) { dB3_phase = (((Math.acos((Math.abs(dB3_2_Y - dB3_1_Y)) / dB3)) * 180 ) / Math.PI)} if ((dB3_2_Y > dB3_1_Y) && (dB3_2_X < dB3_1_X)) { dB3_phase = 360 - (((Math.acos((Math.abs(dB3_2_Y - dB3_1_Y)) / dB3)) * 180 ) / Math.PI)} if ((dB3_2_Y < dB3_1_Y) && (dB3_2_X > dB3_1_X)) { dB3_phase = 180 - (((Math.acos((Math.abs(dB3_2_Y - dB3_1_Y)) / dB3)) * 180 ) / Math.PI)} if (dB3_phase > 360) {dB3_phase = dB3_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,A3,dA3,B0,B3,dB3)+Math.max(A0,A3,dA3,B0,B3,dB3)*0.1) * (Math.sin((i) * Math.PI / 180))); yV_array.push(y0V + (Math.max(A0,A3,dA3,B0,B3,dB3)+Math.max(A0,A3,dA3,B0,B3,dB3)*0.1) * (Math.cos((i) * Math.PI / 180)));} // Координаты дисбалансов и балансировочных грузов // определение угла наклона вектора 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)} // определение угла наклона вектора 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)} // Дисбалансы и балансировочные грузы ПОСЛЕ балансировки (Mb12, Mdisb12, Mb22, Mdisb22) // формулы для определение векторов грузов для добалансировки // Mb12_calc = (B3 * DCI_A2 - A3 * DCI_B2) / (DCI_A1 * DCI_B2 - DCI_B1 * DCI_A2) // Mb22_calc = (A3 * DCI_B1 - B3 * DCI_A1) / (DCI_A1 * DCI_B2 - DCI_B1 * DCI_A2) // ... вычисления этих формул делим на этапы // 1) В3 * DCI_A2 // 2) A3 * DCI_B2 // 3) A3 * DCI_B1 // 4) B3 * DCI_A1 // 5) В3 * DCI_A2 - A3 * DCI_B2 // 6) A3 * DCI_B1 - B3 * DCI_A1 // 7) DCI_A1 * DCI_B2 // 8) DCI_B1 * DCI_A2 // 9) DCI_A1 * DCI_B2 - DCI_B1 * DCI_A2 // определение модуля вектора B3 * DCI_A2 var B3_DCI_A2 = B3 * DCI_A2; // определение фазы вектора В0 * DCI_A2 var B3_DCI_A2_phase; if ((B3_phase + DCI_A2_phase) >360) { B3_DCI_A2_phase = B3_phase + DCI_A2_phase - 360 } else {B3_DCI_A2_phase = B3_phase + DCI_A2_phase} // определение угла наклона вектора В3 * DCI_A2 к осям X и Y var B3_DCI_A2_phase_X; var B3_DCI_A2_phase_Y; if (B3_DCI_A2_phase <= 90) { B3_DCI_A2_phase_X = 90 - B3_DCI_A2_phase} if (B3_DCI_A2_phase <= 180) { B3_DCI_A2_phase_X = B3_DCI_A2_phase - 90} if (B3_DCI_A2_phase <= 270) { B3_DCI_A2_phase_X = 270 - B3_DCI_A2_phase} if (B3_DCI_A2_phase <= 360) { B3_DCI_A2_phase_X = B3_DCI_A2_phase - 270} if (B3_DCI_A2_phase <= 90) { B3_DCI_A2_phase_Y = B3_DCI_A2_phase} if (B3_DCI_A2_phase <= 180) { B3_DCI_A2_phase_Y = 180 - B3_DCI_A2_phase} if (B3_DCI_A2_phase <= 270) { B3_DCI_A2_phase_Y = B3_DCI_A2_phase - 180} if (B3_DCI_A2_phase <= 360) { B3_DCI_A2_phase_Y = 360 - B3_DCI_A2_phase} // определение координат вектора В3 * DCI_A2 var B3_DCI_A2_1_X = 0; var B3_DCI_A2_2_X; if (B3_DCI_A2_phase <= 180) {B3_DCI_A2_2_X = Math.abs(Math.cos(B3_DCI_A2_phase_X * Math.PI/180)) * B3_DCI_A2 } else {B3_DCI_A2_2_X = Math.abs(Math.cos(B3_DCI_A2_phase_X * Math.PI/180)) * B3_DCI_A2 * (-1)} var B3_DCI_A2_1_Y = 0; var B3_DCI_A2_2_Y; if (B3_DCI_A2_phase <= 90 || B3_DCI_A2_phase >= 270) {B3_DCI_A2_2_Y = Math.abs(Math.cos(B3_DCI_A2_phase_Y * Math.PI/180)) * B3_DCI_A2 } else {B3_DCI_A2_2_Y = Math.abs(Math.cos(B3_DCI_A2_phase_Y * Math.PI/180)) * B3_DCI_A2 * (-1)} // определение модуля вектора A3 * DCI_B2 var A3_DCI_B2 = A3 * DCI_B2; // определение фазы вектора A3 * DCI_B2 var A3_DCI_B2_phase; if ((A3_phase + DCI_B2_phase) >360) { A3_DCI_B2_phase = A3_phase + DCI_B2_phase - 360 } else {A3_DCI_B2_phase = A3_phase + DCI_B2_phase} // определение угла наклона вектора A3 * DCI_B2 к осям X и Y var A3_DCI_B2_phase_X; var A3_DCI_B2_phase_Y; if (A3_DCI_B2_phase <= 90) { A3_DCI_B2_phase_X = 90 - A3_DCI_B2_phase} if (A3_DCI_B2_phase <= 180) { A3_DCI_B2_phase_X = A3_DCI_B2_phase - 90} if (A3_DCI_B2_phase <= 270) { A3_DCI_B2_phase_X = 270 - A3_DCI_B2_phase} if (A3_DCI_B2_phase <= 360) { A3_DCI_B2_phase_X = A3_DCI_B2_phase - 270} if (A3_DCI_B2_phase <= 90) { A3_DCI_B2_phase_Y = A3_DCI_B2_phase} if (A3_DCI_B2_phase <= 180) { A3_DCI_B2_phase_Y = 180 - A3_DCI_B2_phase} if (A3_DCI_B2_phase <= 270) { A3_DCI_B2_phase_Y = A3_DCI_B2_phase - 180} if (A3_DCI_B2_phase <= 360) { A3_DCI_B2_phase_Y = 360 - A3_DCI_B2_phase} // определение координат вектора A3 * DCI_B2 var A3_DCI_B2_1_X = 0; var A3_DCI_B2_2_X; if (A3_DCI_B2_phase <= 180) {A3_DCI_B2_2_X = Math.abs(Math.cos(A3_DCI_B2_phase_X * Math.PI/180)) * A3_DCI_B2 } else {A3_DCI_B2_2_X = Math.abs(Math.cos(A3_DCI_B2_phase_X * Math.PI/180)) * A3_DCI_B2 * (-1)} var A3_DCI_B2_1_Y = 0; var A3_DCI_B2_2_Y; if (A3_DCI_B2_phase <= 90 || A3_DCI_B2_phase >= 270) {A3_DCI_B2_2_Y = Math.abs(Math.cos(A3_DCI_B2_phase_Y * Math.PI/180)) * A3_DCI_B2 } else {A3_DCI_B2_2_Y = Math.abs(Math.cos(A3_DCI_B2_phase_Y * Math.PI/180)) * A3_DCI_B2 * (-1)} // определение модуля вектора A3 * DCI_B1 var A3_DCI_B1 = A3 * DCI_B1; // определение фазы вектора A3 * DCI_B1 var A3_DCI_B1_phase; if ((A3_phase + DCI_B1_phase) >360) { A3_DCI_B1_phase = A3_phase + DCI_B1_phase - 360 } else {A3_DCI_B1_phase = A3_phase + DCI_B1_phase} // определение угла наклона вектора A3 * DCI_B1 к осям X и Y var A3_DCI_B1_phase_X; var A3_DCI_B1_phase_Y; if (A3_DCI_B1_phase <= 90) { A3_DCI_B1_phase_X = 90 - A3_DCI_B1_phase} if (A3_DCI_B1_phase <= 180) { A3_DCI_B1_phase_X = A3_DCI_B1_phase - 90} if (A3_DCI_B1_phase <= 270) { A3_DCI_B1_phase_X = 270 - A3_DCI_B1_phase} if (A3_DCI_B1_phase <= 360) { A3_DCI_B1_phase_X = A3_DCI_B1_phase - 270} if (A3_DCI_B1_phase <= 90) { A3_DCI_B1_phase_Y = A3_DCI_B1_phase} if (A3_DCI_B1_phase <= 180) { A3_DCI_B1_phase_Y = 180 - A3_DCI_B1_phase} if (A3_DCI_B1_phase <= 270) { A3_DCI_B1_phase_Y = A3_DCI_B1_phase - 180} if (A3_DCI_B1_phase <= 360) { A3_DCI_B1_phase_Y = 360 - A3_DCI_B1_phase} // определение координат вектора A3 * DCI_B1 var A3_DCI_B1_1_X = 0; var A3_DCI_B1_2_X; if (A3_DCI_B1_phase <= 180) {A3_DCI_B1_2_X = Math.abs(Math.cos(A3_DCI_B1_phase_X * Math.PI/180)) * A3_DCI_B1 } else {A3_DCI_B1_2_X = Math.abs(Math.cos(A3_DCI_B1_phase_X * Math.PI/180)) * A3_DCI_B1 * (-1)} var A3_DCI_B1_1_Y = 0; var A3_DCI_B1_2_Y; if (A3_DCI_B1_phase <= 90 || A3_DCI_B1_phase >= 270) {A3_DCI_B1_2_Y = Math.abs(Math.cos(A3_DCI_B1_phase_Y * Math.PI/180)) * A3_DCI_B1 } else {A3_DCI_B1_2_Y = Math.abs(Math.cos(A3_DCI_B1_phase_Y * Math.PI/180)) * A3_DCI_B1 * (-1)} // определение модуля вектора B3 * DCI_A1 var B3_DCI_A1 = B3 * DCI_A1; // определение фазы вектора A3 * DCI_B1 var B3_DCI_A1_phase; if ((B3_phase + DCI_A1_phase) >360) { B3_DCI_A1_phase = B3_phase + DCI_A1_phase - 360 } else {B3_DCI_A1_phase = B3_phase + DCI_A1_phase} // определение угла наклона вектора B3 * DCI_A1 к осям X и Y var B3_DCI_A1_phase_X; var B3_DCI_A1_phase_Y; if (B3_DCI_A1_phase <= 90) { B3_DCI_A1_phase_X = 90 - B3_DCI_A1_phase} if (B3_DCI_A1_phase <= 180) { B3_DCI_A1_phase_X = B3_DCI_A1_phase - 90} if (B3_DCI_A1_phase <= 270) { B3_DCI_A1_phase_X = 270 - B3_DCI_A1_phase} if (B3_DCI_A1_phase <= 360) { B3_DCI_A1_phase_X = B3_DCI_A1_phase - 270} if (B3_DCI_A1_phase <= 90) { B3_DCI_A1_phase_Y = B3_DCI_A1_phase} if (B3_DCI_A1_phase <= 180) { B3_DCI_A1_phase_Y = 180 - B3_DCI_A1_phase} if (B3_DCI_A1_phase <= 270) { B3_DCI_A1_phase_Y = B3_DCI_A1_phase - 180} if (B3_DCI_A1_phase <= 360) { B3_DCI_A1_phase_Y = 360 - B3_DCI_A1_phase} // определение координат вектора B3 * DCI_A1 var B3_DCI_A1_1_X = 0; var B3_DCI_A1_2_X; if (B3_DCI_A1_phase <= 180) {B3_DCI_A1_2_X = Math.abs(Math.cos(B3_DCI_A1_phase_X * Math.PI/180)) * B3_DCI_A1 } else {B3_DCI_A1_2_X = Math.abs(Math.cos(B3_DCI_A1_phase_X * Math.PI/180)) * B3_DCI_A1 * (-1)} var B3_DCI_A1_1_Y = 0; var B3_DCI_A1_2_Y; if (B3_DCI_A1_phase <= 90 || B3_DCI_A1_phase >= 270) {B3_DCI_A1_2_Y = Math.abs(Math.cos(B3_DCI_A1_phase_Y * Math.PI/180)) * B3_DCI_A1 } else {B3_DCI_A1_2_Y = Math.abs(Math.cos(B3_DCI_A1_phase_Y * Math.PI/180)) * B3_DCI_A1 * (-1)} // определение модуля вектора B3 * DCI_A2 - A3 * DCI_B2 var B3_DCIA2_A3_DCIB2; var B3_DCIA2_A3_DCIB2_1_X = A3_DCI_B2_2_X; var B3_DCIA2_A3_DCIB2_1_Y = A3_DCI_B2_2_Y; var B3_DCIA2_A3_DCIB2_2_X = B3_DCI_A2_2_X; var B3_DCIA2_A3_DCIB2_2_Y = B3_DCI_A2_2_Y; B3_DCIA2_A3_DCIB2 = Math.sqrt(Math.pow(B3_DCIA2_A3_DCIB2_2_X - B3_DCIA2_A3_DCIB2_1_X, 2) + Math.pow(B3_DCIA2_A3_DCIB2_2_Y - B3_DCIA2_A3_DCIB2_1_Y, 2)); // определение фазы вектора B3 * DCI_A2 - A3 * DCI_B2 var B3_DCIA2_A3_DCIB2_phase; if ((B3_DCIA2_A3_DCIB2_2_X > B3_DCIA2_A3_DCIB2_1_X) && (B3_DCIA2_A3_DCIB2_2_Y >= B3_DCIA2_A3_DCIB2_1_Y)) { B3_DCIA2_A3_DCIB2_phase = (((Math.acos((Math.abs(B3_DCIA2_A3_DCIB2_2_Y - B3_DCIA2_A3_DCIB2_1_Y)) / B3_DCIA2_A3_DCIB2)) * 180 ) / Math.PI)} if ((B3_DCIA2_A3_DCIB2_2_X <= B3_DCIA2_A3_DCIB2_1_X) && (B3_DCIA2_A3_DCIB2_2_Y < B3_DCIA2_A3_DCIB2_1_Y)) { B3_DCIA2_A3_DCIB2_phase = (((Math.acos((Math.abs(B3_DCIA2_A3_DCIB2_2_Y - B3_DCIA2_A3_DCIB2_1_Y)) / B3_DCIA2_A3_DCIB2)) * 180 ) / Math.PI) + 180} if ((B3_DCIA2_A3_DCIB2_2_X < B3_DCIA2_A3_DCIB2_1_X) && (B3_DCIA2_A3_DCIB2_2_Y >= B3_DCIA2_A3_DCIB2_1_Y)) { B3_DCIA2_A3_DCIB2_phase = 360 - (((Math.acos((Math.abs(B3_DCIA2_A3_DCIB2_2_Y - B3_DCIA2_A3_DCIB2_1_Y)) / B3_DCIA2_A3_DCIB2)) * 180 ) / Math.PI)} if ((B3_DCIA2_A3_DCIB2_2_X >= B3_DCIA2_A3_DCIB2_1_X) && (B3_DCIA2_A3_DCIB2_2_Y < B3_DCIA2_A3_DCIB2_1_Y)) { B3_DCIA2_A3_DCIB2_phase = 180 - (((Math.acos((Math.abs(B3_DCIA2_A3_DCIB2_2_Y - B3_DCIA2_A3_DCIB2_1_Y)) / B3_DCIA2_A3_DCIB2)) * 180 ) / Math.PI)} // определение модуля вектора A3 * DCI_B1 - B3 * DCI_A1 var A3_DCIB1_B3_DCIA1; var A3_DCIB1_B3_DCIA1_1_X = B3_DCI_A1_2_X; var A3_DCIB1_B3_DCIA1_1_Y = B3_DCI_A1_2_Y; var A3_DCIB1_B3_DCIA1_2_X = A3_DCI_B1_2_X; var A3_DCIB1_B3_DCIA1_2_Y = A3_DCI_B1_2_Y; A3_DCIB1_B3_DCIA1 = Math.sqrt(Math.pow(A3_DCIB1_B3_DCIA1_2_X - A3_DCIB1_B3_DCIA1_1_X, 2) + Math.pow(A3_DCIB1_B3_DCIA1_2_Y - A3_DCIB1_B3_DCIA1_1_Y, 2)); // определение фазы вектора A3 * DCI_B1 - B3 * DCI_A1 var A3_DCIB1_B3_DCIA1_phase; if ((A3_DCIB1_B3_DCIA1_2_X > A3_DCIB1_B3_DCIA1_1_X) && (A3_DCIB1_B3_DCIA1_2_Y >= A3_DCIB1_B3_DCIA1_1_Y)) { A3_DCIB1_B3_DCIA1_phase = (((Math.acos((Math.abs(A3_DCIB1_B3_DCIA1_2_Y - A3_DCIB1_B3_DCIA1_1_Y)) / A3_DCIB1_B3_DCIA1)) * 180 ) / Math.PI)} if ((A3_DCIB1_B3_DCIA1_2_X <= A3_DCIB1_B3_DCIA1_1_X) && (A3_DCIB1_B3_DCIA1_2_Y < A3_DCIB1_B3_DCIA1_1_Y)) { A3_DCIB1_B3_DCIA1_phase = (((Math.acos((Math.abs(A3_DCIB1_B3_DCIA1_2_Y - A3_DCIB1_B3_DCIA1_1_Y)) / A3_DCIB1_B3_DCIA1)) * 180 ) / Math.PI) + 180} if ((A3_DCIB1_B3_DCIA1_2_X < A3_DCIB1_B3_DCIA1_1_X) && (A3_DCIB1_B3_DCIA1_2_Y >= A3_DCIB1_B3_DCIA1_1_Y)) { A3_DCIB1_B3_DCIA1_phase = 360 - (((Math.acos((Math.abs(A3_DCIB1_B3_DCIA1_2_Y - A3_DCIB1_B3_DCIA1_1_Y)) / A3_DCIB1_B3_DCIA1)) * 180 ) / Math.PI)} if ((A3_DCIB1_B3_DCIA1_2_X >= A3_DCIB1_B3_DCIA1_1_X) && (A3_DCIB1_B3_DCIA1_2_Y < A3_DCIB1_B3_DCIA1_1_Y)) { A3_DCIB1_B3_DCIA1_phase = 180 - (((Math.acos((Math.abs(A3_DCIB1_B3_DCIA1_2_Y - A3_DCIB1_B3_DCIA1_1_Y)) / A3_DCIB1_B3_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)} // определение корректирующей массы для добалансировки Mb12_calc плоскости 1 Mb12_calc = B3_DCIA2_A3_DCIB2 / DCIA1_DCIB2_DCIB1_DCIA2; // опредение угла установки корректирующей массы для добалансировки Mb12_corner_calc плоскости 1 if ((B3_DCIA2_A3_DCIB2_phase - DCIA1_DCIB2_DCIB1_DCIA2_phase) < 0) { Mb12_corner_calc = (B3_DCIA2_A3_DCIB2_phase - DCIA1_DCIB2_DCIB1_DCIA2_phase) + 360} else if ((B3_DCIA2_A3_DCIB2_phase - DCIA1_DCIB2_DCIB1_DCIA2_phase) > 360) { Mb12_corner_calc = (B3_DCIA2_A3_DCIB2_phase - DCIA1_DCIB2_DCIB1_DCIA2_phase) - 360} else {Mb12_corner_calc = (B3_DCIA2_A3_DCIB2_phase - DCIA1_DCIB2_DCIB1_DCIA2_phase)} // определение массы остаточного дисбаланса Mdisb12 плоскости 1 Mdisb12 = Mb12_calc; // равен массе балансировочного груза // определение угла расположения остаточного дисбаланса Mdisb1 плоскости 1 if ((Mb12_corner_calc + 180) > 360) { Mdisb12_corner = (Mb12_corner_calc + 180) - 360} else if ((Mb12_corner_calc + 180) < 0) { Mdisb12_corner = (Mb12_corner_calc + 180) + 360} else {Mdisb12_corner = (Mb12_corner_calc + 180)} // определение корректирующей массы для добалансировки Mb22_calc плоскости 2 Mb22_calc = A3_DCIB1_B3_DCIA1 / DCIA1_DCIB2_DCIB1_DCIA2; // опредение угла установки корректирующей массы для добалансировки Mb22_corner_calc плоскости 2 if ((A3_DCIB1_B3_DCIA1_phase - DCIA1_DCIB2_DCIB1_DCIA2_phase) < 0) { Mb22_corner_calc = (A3_DCIB1_B3_DCIA1_phase - DCIA1_DCIB2_DCIB1_DCIA2_phase) + 360} else if ((A3_DCIB1_B3_DCIA1_phase - DCIA1_DCIB2_DCIB1_DCIA2_phase) > 360) { Mb22_corner_calc = (A3_DCIB1_B3_DCIA1_phase - DCIA1_DCIB2_DCIB1_DCIA2_phase) - 360} else {Mb22_corner_calc = (A3_DCIB1_B3_DCIA1_phase - DCIA1_DCIB2_DCIB1_DCIA2_phase)} // определение массы остаточного дисбаланса Mdisb22 плоскости 2 Mdisb22 = Mb22_calc; // равен массе балансировочного груза // определение угла расположения остаточного дисбаланса Mdisb22_corner плоскости 2 if ((Mb22_corner_calc + 180) > 360) { Mdisb22_corner = (Mb22_corner_calc + 180) - 360} else if ((Mb22_corner_calc + 180) < 0) { Mdisb22_corner = (Mb22_corner_calc + 180) + 360} else {Mdisb22_corner = (Mb22_corner_calc + 180)} // Координаты остаточных дисбалансов и грузов для добалансировки // определение угла наклона вектора Mb12_calc к осям X и Y if (Mb12_corner_calc <= 90) { Mb12_corner_calc_X = 90 - Mb12_corner_calc} if (Mb12_corner_calc <= 180) { Mb12_corner_calc_X = Mb12_corner_calc - 90} if (Mb12_corner_calc <= 270) { Mb12_corner_calc_X = 270 - Mb12_corner_calc} if (Mb12_corner_calc <= 360) { Mb12_corner_calc_X = Mb12_corner_calc - 270} if (Mb12_corner_calc <= 90) { Mb12_corner_calc_Y = Mb12_corner_calc} if (Mb12_corner_calc <= 180) { Mb12_corner_calc_Y = 180 - Mb12_corner_calc} if (Mb12_corner_calc <= 270) { Mb12_corner_calc_Y = Mb12_corner_calc - 180} if (Mb12_corner_calc <= 360) { Mb12_corner_calc_Y = 360 - Mb12_corner_calc} // определение координат вектора Mb12_calc Mb12_1_calc_X = 0; if (Mb12_corner_calc <= 180) {Mb12_2_calc_X = Math.abs(Math.cos(Mb12_corner_calc_X * Math.PI/180)) * Mb12_calc * (-1) } else {Mb12_2_calc_X = Math.abs(Math.cos(Mb1_corner_calc_X * Math.PI/180)) * Mb12_calc} Mb12_1_calc_Y = 0; if (Mb12_corner_calc <= 90 || Mb12_corner_calc >= 270) {Mb12_2_calc_Y = Math.abs(Math.cos(Mb12_corner_calc_Y * Math.PI/180)) * Mb12_calc } else {Mb12_2_calc_Y = Math.abs(Math.cos(Mb12_corner_calc_Y * Math.PI/180)) * Mb12_calc * (-1)} // определение угла наклона вектора Mb22_calc к осям X и Y if (Mb22_corner_calc <= 90) { Mb22_corner_calc_X = 90 - Mb22_corner_calc} if (Mb22_corner_calc <= 180) { Mb22_corner_calc_X = Mb22_corner_calc - 90} if (Mb22_corner_calc <= 270) { Mb22_corner_calc_X = 270 - Mb22_corner_calc} if (Mb22_corner_calc <= 360) { Mb22_corner_calc_X = Mb22_corner_calc - 270} if (Mb22_corner_calc <= 90) { Mb22_corner_calc_Y = Mb22_corner_calc} if (Mb22_corner_calc <= 180) { Mb22_corner_calc_Y = 180 - Mb22_corner_calc} if (Mb22_corner_calc <= 270) { Mb22_corner_calc_Y = Mb22_corner_calc - 180} if (Mb22_corner_calc <= 360) { Mb22_corner_calc_Y = 360 - Mb22_corner_calc} // определение координат вектора Mb22_calc Mb22_1_calc_X = 0; if (Mb22_corner_calc <= 180) {Mb22_2_calc_X = Math.abs(Math.cos(Mb22_corner_calc_X * Math.PI/180)) * Mb22_calc * (-1) } else {Mb22_2_calc_X = Math.abs(Math.cos(Mb22_corner_calc_X * Math.PI/180)) * Mb22_calc} Mb22_1_calc_Y = 0; if (Mb22_corner_calc <= 90 || Mb22_corner_calc >= 270) {Mb22_2_calc_Y = Math.abs(Math.cos(Mb22_corner_calc_Y * Math.PI/180)) * Mb22_calc } else {Mb22_2_calc_Y = Math.abs(Math.cos(Mb22_corner_calc_Y * Math.PI/180)) * Mb22_calc * (-1)} // определение угла наклона вектора Mdisb12 к осям X и Y if (Mdisb12_corner <= 90) { Mdisb12_corner_X = 90 - Mdisb12_corner} if (Mdisb12_corner <= 180) { Mdisb12_corner_X = Mdisb12_corner - 90} if (Mdisb12_corner <= 270) { Mdisb12_corner_X = 270 - Mdisb12_corner} if (Mdisb12_corner <= 360) { Mdisb12_corner_X = Mdisb12_corner - 270} if (Mdisb12_corner <= 90) { Mdisb12_corner_Y = Mdisb12_corner} if (Mdisb12_corner <= 180) { Mdisb12_corner_Y = 180 - Mdisb12_corner} if (Mdisb12_corner <= 270) { Mdisb12_corner_Y = Mdisb12_corner - 180} if (Mdisb12_corner <= 360) { Mdisb12_corner_Y = 360 - Mdisb12_corner} // определение координат вектора Mdisb12 Mdisb12_1_X = 0; if (Mdisb12_corner <= 180) {Mdisb12_2_X = Math.abs(Math.cos(Mdisb12_corner_X * Math.PI/180)) * Mdisb12 * (-1) } else {Mdisb12_2_X = Math.abs(Math.cos(Mdisb12_corner_X * Math.PI/180)) * Mdisb12} Mdisb12_1_Y = 0; if (Mdisb12_corner <= 90 || Mdisb12_corner >= 270) {Mdisb12_2_Y = Math.abs(Math.cos(Mdisb12_corner_Y * Math.PI/180)) * Mdisb12 } else {Mdisb12_2_Y = Math.abs(Math.cos(Mdisb12_corner_Y * Math.PI/180)) * Mdisb12 * (-1)} // определение угла наклона вектора Mdisb22 к осям X и Y if (Mdisb22_corner <= 90) { Mdisb22_corner_X = 90 - Mdisb22_corner} if (Mdisb22_corner <= 180) { Mdisb22_corner_X = Mdisb22_corner - 90} if (Mdisb22_corner <= 270) { Mdisb22_corner_X = 270 - Mdisb22_corner} if (Mdisb22_corner <= 360) { Mdisb22_corner_X = Mdisb22_corner - 270} if (Mdisb22_corner <= 90) { Mdisb22_corner_Y = Mdisb22_corner} if (Mdisb22_corner <= 180) { Mdisb22_corner_Y = 180 - Mdisb22_corner} if (Mdisb22_corner <= 270) { Mdisb22_corner_Y = Mdisb22_corner - 180} if (Mdisb22_corner <= 360) { Mdisb22_corner_Y = 360 - Mdisb22_corner} // определение координат вектора Mdisb22 Mdisb22_1_X = 0; if (Mdisb22_corner <= 180) {Mdisb22_2_X = Math.abs(Math.cos(Mdisb22_corner_X * Math.PI/180)) * Mdisb22 * (-1) } else {Mdisb22_2_X = Math.abs(Math.cos(Mdisb22_corner_X * Math.PI/180)) * Mdisb22} Mdisb22_1_Y = 0; if (Mdisb22_corner <= 90 || Mdisb22_corner >= 270) {Mdisb22_2_Y = Math.abs(Math.cos(Mdisb22_corner_Y * Math.PI/180)) * Mdisb22 } else {Mdisb22_2_Y = Math.abs(Math.cos(Mdisb22_corner_Y * Math.PI/180)) * Mdisb22 * (-1)} // Координаты графиков масс // определение координат точек окружности обозначения расчётного балансировочного груза 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(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)*0.1 * (Math.sin((i) * Math.PI / 180)))); y_Mb1_calc_array.push(y0_Mb1_calc + (Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)*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(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)*0.1 * (Math.sin((i) * Math.PI / 180)))); y_Mb2_calc_array.push(y0_Mb2_calc + (Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)*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(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)*0.1 * (Math.sin((i) * Math.PI / 180)))); y_Mb1_array.push(y0_Mb1 + (Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)*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(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)*0.1 * (Math.sin((i) * Math.PI / 180)))); y_Mb2_array.push(y0_Mb2 + (Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)*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(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)*0.1 * (Math.sin((i) * Math.PI / 180)))); y_Mdisb1_array.push(y0_Mdisb1 + (Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)*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(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)*0.1 * (Math.sin((i) * Math.PI / 180)))); y_Mdisb2_array.push(y0_Mdisb2 + (Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)*0.1 * (Math.cos((i) * Math.PI / 180))));} // определение координат точек окружности обозначения расчётного груза для добалансировки Mb12_calc плоскости 1 var x_Mb12_calc_array = []; // массив координат точек окружности Mb12_calc по оси X var y_Mb12_calc_array = []; // массив координат точек окружности Mb12_calc по оси Y var x0_Mb12_calc = Mb12_2_calc_X; // центр по X var y0_Mb12_calc = Mb12_2_calc_Y; // центр по Y for (let i=0; i<=359; i++ ) { x_Mb12_calc_array.push(x0_Mb12_calc + (Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)*0.1 * (Math.sin((i) * Math.PI / 180)))); y_Mb12_calc_array.push(y0_Mb12_calc + (Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)*0.1 * (Math.cos((i) * Math.PI / 180))));} // определение координат точек окружности обозначения расчётного груза для добалансировки Mb22_calc плоскости 2 var x_Mb22_calc_array = []; // массив координат точек окружности Mb22_calc по оси X var y_Mb22_calc_array = []; // массив координат точек окружности Mb22_calc по оси Y var x0_Mb22_calc = Mb22_2_calc_X; // центр по X var y0_Mb22_calc = Mb22_2_calc_Y; // центр по Y for (let i=0; i<=359; i++ ) { x_Mb22_calc_array.push(x0_Mb22_calc + (Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)*0.1 * (Math.sin((i) * Math.PI / 180)))); y_Mb22_calc_array.push(y0_Mb22_calc + (Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)*0.1 * (Math.cos((i) * Math.PI / 180))));} // определение координат точек окружности обозначения остаточного дисбаланса Mdisb12 плоскости 1 var x_Mdisb12_array = []; // массив координат точек окружности Mdisb12 по оси X var y_Mdisb12_array = []; // массив координат точек окружности Mdisb12 по оси Y var x0_Mdisb12 = Mdisb12_2_X; // центр по X var y0_Mdisb12 = Mdisb12_2_Y; // центр по Y for (let i=0; i<=359; i++ ) { x_Mdisb12_array.push(x0_Mdisb12 + (Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)*0.1 * (Math.sin((i) * Math.PI / 180)))); y_Mdisb12_array.push(y0_Mdisb12 + (Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)*0.1 * (Math.cos((i) * Math.PI / 180))));} // определение координат точек окружности обозначения остаточного дисбаланса Mdisb22 плоскости 2 var x_Mdisb22_array = []; // массив координат точек окружности Mdisb22 по оси X var y_Mdisb22_array = []; // массив координат точек окружности Mdisb22 по оси Y var x0_Mdisb22 = Mdisb22_2_X; // центр по X var y0_Mdisb22 = Mdisb22_2_Y; // центр по Y for (let i=0; i<=359; i++ ) { x_Mdisb22_array.push(x0_Mdisb22 + (Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)*0.1 * (Math.sin((i) * Math.PI / 180)))); y_Mdisb22_array.push(y0_Mdisb22 + (Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)*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(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)+Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)*0.1) * (Math.sin((i) * Math.PI / 180))); yD_array.push(y0D + (Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)+Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)*0.1) * (Math.cos((i) * Math.PI / 180)));} // Вычисление допустимого остаточного дисбаланса U_per = (1000 * (G * P)) / (Math.PI * n / 30); // Остаточный дисбаланс U_res12 = Mdisb12 * R1; U_res22 = Mdisb22 * R2; U_res = U_res12 + U_res22; // Графики вибрации plot_vibr.add( { color: 0x0000ff, name: "Вибрация_A0", x: xA0_array, y: yA0_array, }); plot_vibr.add( { color: 0x00ff00, name: "Вибрация_A3", x: xA3_array, y: yA3_array, }); plot_vibr.add( { color: 0xff0000, name: "Вибрация_dA3", x: xdA3_array, y: ydA3_array, }); plot_vibr.add( { color: 0x0000ff, name: "Вибрация_B0", x: xB0_array, y: yB0_array, }); plot_vibr.add( { color: 0x00ff00, name: "Вибрация_B3", x: xB3_array, y: yB3_array, }); plot_vibr.add( { color: 0xff0000, name: "Вибрация_dB3", x: xdB3_array, y: ydB3_array, }); plot_vibr.add( { color: 0x00ffffff, name: "График векторов вибрации", x: xV_array, y: yV_array, }); plot_vibr.add( { color: 0x00ffffff, name: "границы", x: [-(Math.max(A0,A3,dA3,B0,B3,dB3)+Math.max(A0,A3,dA3,B0,B3,dB3)*0.2), -(Math.max(A0,A3,dA3,B0,B3,dB3)+Math.max(A0,A3,dA3,B0,B3,dB3)*0.2), (Math.max(A0,A3,dA3,B0,B3,dB3)+Math.max(A0,A3,dA3,B0,B3,dB3)*0.2), (Math.max(A0,A3,dA3,B0,B3,dB3)+Math.max(A0,A3,dA3,B0,B3,dB3)*0.2)], y: [(Math.max(A0,A3,dA3,B0,B3,dB3)+Math.max(A0,A3,dA3,B0,B3,dB3)*0.2), -(Math.max(A0,A3,dA3,B0,B3,dB3)+Math.max(A0,A3,dA3,B0,B3,dB3)*0.2), -(Math.max(A0,A3,dA3,B0,B3,dB3)+Math.max(A0,A3,dA3,B0,B3,dB3)*0.2), (Math.max(A0,A3,dA3,B0,B3,dB3)+Math.max(A0,A3,dA3,B0,B3,dB3)*0.2)] }); 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: 0x00ddff, name: "Балансировочный груз для добалансировки Mb12_calc плоскости 1", x: x_Mb12_calc_array, y: y_Mb12_calc_array, }); plot_disb.add( { color: 0x00ddff, name: "Балансировочный груз для добалансировки Mb22_calc плоскости 2", x: x_Mb22_calc_array, y: y_Mb22_calc_array, }); plot_disb.add( { color: 0xff3dcc, name: "Дисбаланс остаточный Mdisb12 плоскости 1", x: x_Mdisb12_array, y: y_Mdisb12_array, }); plot_disb.add( { color: 0xff3dcc, name: "Дисбаланс остаточный Mdisb22 плоскости 2", x: x_Mdisb22_array, y: y_Mdisb22_array, }); plot_disb.add( { color: 0x00ffffff, name: "График расположения дисбаланса", x: xD_array, y: yD_array, }); plot_disb.add( { color: 0x00ffffff, name: "границы", x: [-(Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)+Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)*0.2), -(Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)+Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)*0.2), (Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)+Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)*0.2), (Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)+Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)*0.2)], y: [(Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)+Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)*0.2), -(Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)+Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)*0.2), -(Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)+Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)*0.2), (Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)+Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)*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("Mb12_calc (масса груза для добалансировки плоскости 1 расчёт)",Mb12_calc); gtl.log.info("Mb12_corner_calc (угол установки груза для добалансировки плоскости 1 расчёт)",Mb12_corner_calc); gtl.log.info("Mb22_calc (масса груза для добалансировки плоскости 2 расчёт)",Mb22_calc); gtl.log.info("Mb22_corner_calc (угол установки груза для добалансировки плоскости 2 расчёт)",Mb22_corner_calc); gtl.log.info("Mdisb12 (дисбаланс остаточный плоскости 1)",Mdisb12); gtl.log.info("Mdisb12_corner (угол расположения дисбаланса остаточного плоскости 1)",Mdisb12_corner); gtl.log.info("Mdisb22 (дисбаланс остаточный плоскости 2)",Mdisb22); gtl.log.info("Mdisb22_corner (угол расположения дисбаланса остаточного плоскости 2)",Mdisb22_corner); gtl.log.info("A0",A0); gtl.log.info("A0_phase",A0_phase); gtl.log.info("A3",A3); gtl.log.info("A3_phase",A3_phase); gtl.log.info("B0",B0); gtl.log.info("B0_phase",B0_phase); gtl.log.info("B3",B3); gtl.log.info("B3_phase",B3_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_res12); gtl.log.info("Остаточный дисбаланс плоскости 2 (после балансировки)", U_res22); // Выдача результата (results) let __result = { _001_Ампл_вибр_пуска_A0: A0, _002_Фаза_вибр_пуска_A0: A0_phase, _003_Ампл_вибр_пуска_A3: A3, _004_Фаза_вибр_пуска_A3: A3_phase, _005_Ампл_вибр_пуска_B0: B0, _006_Фаза_вибр_пуска_B0: B0_phase, _007_Ампл_вибр_пуска_B3: B3, _008_Фаза_вибр_пуска_B3: B3_phase, _009_Масса_дисбаланса_пл_1: Mdisb1, _010_Угол_дисбаланса_пл_1: Mdisb1_corner, _011_Масса_дисбаланса_пл_2: Mdisb2, _012_Угол_дисбаланса_пл_2: Mdisb2_corner, _013_Масса_баланс_груза_расч_пл_1: Mb1_calc, _014_Угол_баланс_груза_расч_пл_1: Mb1_corner_calc, _015_Масса_баланс_груза_введён_пл_1: Mb1, _016_Угол_баланс_груза_введён_пл_1: Mb1_corner, _017_Масса_баланс_груза_расч_пл_2: Mb2_calc, _018_Угол_баланс_груза_расч_пл_2: Mb2_corner_calc, _019_Масса_баланс_груза_введён_пл_2: Mb2, _020_Угол_баланс_груза_введён_пл_2: Mb2_corner, _021_Масса_остат_дисбаланса_пл_1: Mdisb12, _022_Угол_остат_дисбаланса_пл_1: Mdisb12_corner, _023_Масса_остат_дисбаланса_пл_2: Mdisb22, _024_Угол_остат_дисбаланса_пл_2: Mdisb22_corner, _025_Масса_груза_добаланс_пл_1: Mb12_calc, _026_Угол_груза_добаланс_пл_1: Mb12_corner_calc, _027_Масса_груза_добаланс_пл_2: Mb22_calc, _028_Угол_груза_добаланс_пл_2: Mb22_corner_calc, _029_Модуль_ДКВ_DCI_A1: DCI_A1, _030_Фаза_ДКВ_DCI_A1: DCI_A1_phase, _031_Модуль_ДКВ_DCI_A2: DCI_A2, _032_Фаза_ДКВ_DCI_A2: DCI_A2_phase, _033_Модуль_ДКВ_DCI_B1: DCI_B1, _034_Фаза_ДКВ_DCI_B1: DCI_B1_phase, _035_Модуль_ДКВ_DCI_B2: DCI_B2, _036_Фаза_ДКВ_DCI_B2: DCI_B2_phase, _037_Допуст_ост_дисб_г_мм: U_per, _038_Остат_дисб_пл1_после_бал_г_мм: U_res12, _039_Остат_дисб_пл2_после_бал_г_мм: U_res22, _040_Остат_дисб_сумм_после_бал_г_мм: U_res }; gtl.results = {"result": __result}; gtl.diagnostic.stop(); // break; // default: // break; // } }