balancer_calc/scripts/2 пл - шаг 8.js

1861 lines
114 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"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 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 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 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 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 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 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 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 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 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
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() {
// РАСЧЁТЫ (балансировочный калькулятор)
// ШАГ 8 - отчёт :
// из предыдущих шагов переносится:
// начальная вибрация A0, B0
// вибрация после установки пробных грузов A1, B1, A2, B2
// вибрация после установки балансировочных грузов A3, B3
// расчётные пробные грузы m_test_1_calc, m_test_2_calc
// массы и углы установки выбранных пробных грузов m_test_1, m_test_2
// массы и углы расположения дисбалансов Mdisb1, Mdisb2
// массы и углы расположения расчётных балансировочных грузов Mb1_calc, Mb2_calc
// массы и углы расположения выбранных балансировочных грузов Mb1, Mb2
// массы и углы расположения остаточных дисбалансов Mdisb12, Mdisb22
// массы и углы расположения грузов для добалансировки Mb12_calc, Mb22_calc
// построение графика вибрации: A0, A1, dA1, A2, dA2, A3, dA3,
// B0, B1, dB1, B2, dB2, B3, dB3
// построение графиков расположения дисбалансов и балансировочных грузов: m_test_1, m_test_1, 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 * 3.1415/180)) * A0
} else {A0_2_X = Math.abs(Math.cos(A0_phase_X * 3.1415/180)) * A0 * (-1)}
A0_1_Y = 0;
if (A0_phase <= 90 || A0_phase >= 270) {A0_2_Y = Math.abs(Math.cos(A0_phase_Y * 3.1415/180)) * A0
} else {A0_2_Y = Math.abs(Math.cos(A0_phase_Y * 3.1415/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}
// определение угла наклона вектора 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;
// определение угла наклона вектора 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}
// определение угла наклона вектора 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,A1,dA1,A2,dA2,A3,dA3,B0,B1,dB1,B2,dB2,B3,dB3)+Math.max(A0,A1,dA1,A2,dA2,A3,dA3,B0,B1,dB1,B2,dB2,B3,dB3)*0.1) * (Math.sin((i) * Math.PI / 180)));
yV_array.push(y0V + (Math.max(A0,A1,dA1,A2,dA2,A3,dA3,B0,B1,dB1,B2,dB2,B3,dB3)+Math.max(A0,A1,dA1,A2,dA2,A3,dA3,B0,B1,dB1,B2,dB2,B3,dB3)*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)}
// Координаты дисбалансов и балансировочных грузов
// определение угла наклона вектора 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;
// определение фазы вектора B3 * DCI_A1
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)}
// Координаты графиков масс
// определение координат точек окружности обозначения массы пробного груза
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,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)*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,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)*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,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)*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,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)*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,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)*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,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(m_test_1,m_test_2,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(m_test_1,m_test_2,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(m_test_1,m_test_2,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(m_test_1,m_test_2,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(m_test_1,m_test_2,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(m_test_1,m_test_2,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(m_test_1,m_test_2,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(m_test_1,m_test_2,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(m_test_1,m_test_2,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(m_test_1,m_test_2,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(m_test_1,m_test_2,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(m_test_1,m_test_2,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(m_test_1,m_test_2,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(m_test_1,m_test_2,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(m_test_1,m_test_2,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(m_test_1,m_test_2,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(m_test_1,m_test_2,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(m_test_1,m_test_2,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(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)+Math.max(m_test_1,m_test_2,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(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)+Math.max(m_test_1,m_test_2,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: "Вибрация_A1",
x: xA1_array,
y: yA1_array,
});
plot_vibr.add(
{
color: 0xff0000,
name: "Вибрация_dA1",
x: xdA1_array,
y: ydA1_array,
});
plot_vibr.add(
{
color: 0x0fae1a,
name: "Вибрация_A2",
x: xA2_array,
y: yA2_array,
});
plot_vibr.add(
{
color: 0xff0000,
name: "Вибрация_dA2",
x: xdA2_array,
y: ydA2_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: "Вибрация_B1",
x: xB1_array,
y: yB1_array,
});
plot_vibr.add(
{
color: 0xff0000,
name: "Вибрация_dB1",
x: xdB1_array,
y: ydB1_array,
});
plot_vibr.add(
{
color: 0x0fae1a,
name: "Вибрация_B2",
x: xB2_array,
y: yB2_array,
});
plot_vibr.add(
{
color: 0xff0000,
name: "Вибрация_dB2",
x: xdB2_array,
y: ydB2_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,A1,dA1,A2,dA2,A3,dA3,B0,B1,dB1,B2,dB2,B3,dB3)+Math.max(A0,A1,dA1,A2,dA2,A3,dA3,B0,B1,dB1,B2,dB2,B3,dB3)*0.2), -(Math.max(A0,A1,dA1,A2,dA2,A3,dA3,B0,B1,dB1,B2,dB2,B3,dB3)+Math.max(A0,A1,dA1,A2,dA2,A3,dA3,B0,B1,dB1,B2,dB2,B3,dB3)*0.2), (Math.max(A0,A1,dA1,A2,dA2,A3,dA3,B0,B1,dB1,B2,dB2,B3,dB3)+Math.max(A0,A1,dA1,A2,dA2,A3,dA3,B0,B1,dB1,B2,dB2,B3,dB3)*0.2), (Math.max(A0,A1,dA1,A2,dA2,A3,dA3,B0,B1,dB1,B2,dB2,B3,dB3)+Math.max(A0,A1,dA1,A2,dA2,A3,dA3,B0,B1,dB1,B2,dB2,B3,dB3)*0.2)],
y: [(Math.max(A0,A1,dA1,A2,dA2,A3,dA3,B0,B1,dB1,B2,dB2,B3,dB3)+Math.max(A0,A1,dA1,A2,dA2,A3,dA3,B0,B1,dB1,B2,dB2,B3,dB3)*0.2), -(Math.max(A0,A1,dA1,A2,dA2,A3,dA3,B0,B1,dB1,B2,dB2,B3,dB3)+Math.max(A0,A1,dA1,A2,dA2,A3,dA3,B0,B1,dB1,B2,dB2,B3,dB3)*0.2), -(Math.max(A0,A1,dA1,A2,dA2,A3,dA3,B0,B1,dB1,B2,dB2,B3,dB3)+Math.max(A0,A1,dA1,A2,dA2,A3,dA3,B0,B1,dB1,B2,dB2,B3,dB3)*0.2), (Math.max(A0,A1,dA1,A2,dA2,A3,dA3,B0,B1,dB1,B2,dB2,B3,dB3)+Math.max(A0,A1,dA1,A2,dA2,A3,dA3,B0,B1,dB1,B2,dB2,B3,dB3)*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: 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(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)+Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)*0.2), -(Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)+Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)*0.2), (Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)+Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)*0.2), (Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)+Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)*0.2)],
y: [(Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)+Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)*0.2), -(Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)+Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)*0.2), -(Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)+Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)*0.2), (Math.max(m_test_1,m_test_2,Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2,Mb12_calc,Mb22_calc,Mdisb12,Mdisb22)+Math.max(m_test_1,m_test_2,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("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("A3",A3);
gtl.log.info("A3_phase",A3_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("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_Ампл_вибр_пуска_A1: A1,
_004аза_вибр_пуска_A1: A1_phase,
_005_Ампл_вибр_пуска_A2: A2,
_006аза_вибр_пуска_A2: A2_phase,
_007_Ампл_вибр_пуска_A3: A3,
_008аза_вибр_пуска_A3: A3_phase,
_009_Ампл_вибр_пуска_B0: B0,
_010аза_вибр_пуска_B0: B0_phase,
_011_Ампл_вибр_пуска_B1: B1,
_012аза_вибр_пуска_B1: B1_phase,
_013_Ампл_вибр_пуска_B2: B2,
_014аза_вибр_пуска_B2: B2_phase,
_015_Ампл_вибр_пуска_B3: B3,
_016аза_вибр_пуска_B3: B3_phase,
_017_Масса_дисбаланса_пл_1: Mdisb1,
_018_Угол_дисбаланса_пл_1: Mdisb1_corner,
_019_Масса_дисбаланса_пл_2: Mdisb2,
_020_Угол_дисбаланса_пл_2: Mdisb2_corner,
_021_Масса_баланс_груза_расч_пл_1: Mb1_calc,
_022_Угол_баланс_груза_расч_пл_1: Mb1_corner_calc,
_023_Масса_баланс_груза_введён_пл_1: Mb1,
_024_Угол_баланс_груза_введён_пл_1: Mb1_corner,
_025_Масса_баланс_груза_расч_пл_2: Mb2_calc,
_026_Угол_баланс_груза_расч_пл_2: Mb2_corner_calc,
_027_Масса_баланс_груза_введён_пл_2: Mb2,
_028_Угол_баланс_груза_введён_пл_2: Mb2_corner,
_029_Масса_остат_дисбаланса_пл_1: Mdisb12,
_030_Угол_остат_дисбаланса_пл_1: Mdisb12_corner,
_031_Масса_остат_дисбаланса_пл_2: Mdisb22,
_032_Угол_остат_дисбаланса_пл_2: Mdisb22_corner,
_033_Масса_грузаобаланс_пл_1: Mb12_calc,
_034_Угол_грузаобаланс_пл_1: Mb12_corner_calc,
_035_Масса_грузаобаланс_пл_2: Mb22_calc,
_036_Угол_грузаобаланс_пл_2: Mb22_corner_calc,
_037_МодульКВ_DCI_A1: DCI_A1,
_038азаКВ_DCI_A1: DCI_A1_phase,
_039_МодульКВ_DCI_A2: DCI_A2,
_040азаКВ_DCI_A2: DCI_A2_phase,
_041_МодульКВ_DCI_B1: DCI_B1,
_042азаКВ_DCI_B1: DCI_B1_phase,
_043_МодульКВ_DCI_B2: DCI_B2,
_044азаКВ_DCI_B2: DCI_B2_phase,
_045опуст_ост_дисб_г_мм: U_per,
_046_Остат_дисб_пл1_после_бал_г_мм: U_res12,
_047_Остат_дисб_пл2_после_бал_г_мм: U_res22,
_048_Остат_дисб_сумм_после_бал_г_мм: U_res
};
gtl.results = {"result": __result};
gtl.diagnostic.stop();
// break;
// default:
// break;
// }
}