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