1385 lines
86 KiB
JavaScript
1385 lines
86 KiB
JavaScript
"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;
|
||
// }
|
||
} |