balancer_calc/scripts/2 пл ДКВ - шаг 2.js

1053 lines
62 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

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

"use strict";
var signals = gtl.options.record.signalsModel;
var options = gtl.options;
var record = gtl.options.record;
var point = gtl.options.point;
// Импорт функций
var imp = gtl.import("functions_for_balance.js");
var fnc = gtl.import("user-functions.js");
// Цвета (для справки)
// #ff0000 - красный
// #00ff00 - салатовый
// #0fae1a - зелёный
// #0000ff - синий
// #00ddff - голубой
// #ff3dcc - фиолетовый
// #ffff00 - жёлтый
// ***** БАЛАНСИРОВОЧНЫЙ КАЛЬКУЛЯТОР. ДВЕ ПЛОСКОСТИ (использование ДКВ) *****
// **************************************************************************
// Объявление графических плоскостей для построения графиков
let plot_pfc = gtl.plots.add("ФЧХ"); // фазо-частотная характеристика
let plot_ausp = gtl.plots.add("Спектр виброскорости"); // объект для спектра
let plot_vibr = gtl.plots.add("Векторы вибрации"); // объект для векторов вибрации
let plot_disb = gtl.plots.add("Расположение дисбаланса"); // объект для дисбаланса
// gtl.log.info("размер массива AUSPv_pl", AUSPv_pl.data.length);
// gtl.log.info("размер массива pfc_pl", pfc_pl.data.length);
// Переменные основные
// параметр вибрации (модуль вектора) - виброскорость (мм/с)
// угол (фаза) вектора - градусы
// масса груза (модуль ветора) - граммы
// DCI - Dynamic Coefficient of Influence (динамический коэффициент влияния)
// * - значение получаем из измерительного блока при нажатии кнопки
// ** - значение вводится пользователем
// *** - значение получаем в результате расчёта программы балансировки
// значение переменной с нижним подчёркиванием (..._) берётся из "дополнительных опций"; если оно не задано, то рассчитывается в скрипте
let R1 = gtl.options.customOptions.R1; // радиус установки грузов на плоскости 1 ** (для вычисления массы пробного груза)
let R2 = gtl.options.customOptions.R2; // радиус установки грузов на плоскости 2 ** (для вычисления массы пробного груза)
let P = gtl.options.customOptions.P; // масса ротора, кг ** (для вычисления массы пробного груза)
let G = gtl.options.customOptions.G; // класс точности балансировки, мм/с ** (ГОСТ 1940)
let n = gtl.options.customOptions.n; // скорость вращения, об/мин ** (для вычисления массы пробного груза и допустимого остаточного дисбаланса)
let U_per; // допустимый остаточный дисбаланс *** (ГОСТ 1940)
let U_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 A0_ = gtl.options.customOptions.A0; // модуль вектора начальной вибрации */**
let A0 = A0_; // модуль вектора начальной вибрации */** (конечное значение)
let A0_phase_ = gtl.options.customOptions.A0_phase; // фаза вектора начальной вибрации */**
let A0_phase = A0_phase_; // фаза вектора начальной вибрации */** (конечное значение)
let B0_ = gtl.options.customOptions.B0; // модуль вектора начальной вибрации */**
let B0 = B0_; // модуль вектора начальной вибрации */** (конечное значение)
let B0_phase_ = gtl.options.customOptions.B0_phase; // фаза вектора начальной вибрации */**
let B0_phase = B0_phase_; // фаза вектора начальной вибрации */** (конечное значение)
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; // модуль расчётного вектора балансировочного груза в плоскости 1 ***
let Mb1_corner_calc; // угол расчётного вектора балансировочного груза в плоскости 1 ***
let Mb2 = gtl.options.customOptions.Mb2; // модуль введённого вектора балансировочного груза в плоскости 2 ** (конечное значение)
let Mb2_corner = gtl.options.customOptions.Mb2_corner; // угол введённого вектора балансировочного груза в плоскости 2 ** (конечное значение)
let Mb2_calc; // модуль расчётного вектора балансировочного груза в плоскости 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 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 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() {
// РАСЧЁТЫ (балансировочный калькулятор)
// ШАГ 2 - расположение дисбалансов:
// вычисление положения дисбалансов Mdisb1, Mdisb2 и рекомендуемых балансировочных грузов Mb1_calc, Mb2_calc
// ввод масс и углов установки балансировочных грузов Mb1 и Mb2
// построение графиков расположения: дисбалансов Mdisb1 и Mdisb2, расчётных Mb1_calc и Mb2_calc и
// введённых Mb1 и Mb2 балансировочных грузов
// из предыдущих шагов переносятся: вибрации A0, B0
// построение графиков вибрации A0, B0
// определение угла наклона вектора 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;
// определение угла наклона вектора 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;
// определение координат точек окружности графика для отображения векторов вибрации
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,B0)+Math.max(A0,B0)*0.1) * (Math.sin((i) * Math.PI / 180)));
yV_array.push(y0V + (Math.max(A0,B0)+Math.max(A0,B0)*0.1) * (Math.cos((i) * Math.PI / 180)));}
// Вычисления дисбалансов и балансировочных грузов
// DCI_A1 - ДКВ груза m_test_1 в плоскости 1 на вибрацию в точке A
// определение модуля вектора DCI_A1
// if (DCI_A1_ != 0) {DCI_A1 = DCI_A1_} // принимает значение из опций
// else {DCI_A1 = dA1 / m_test_1} // принимает значение из расчётов
// DCI_A1 = dA1 / m_test_1
// определение фазы вектора DCI_A1
// if (DCI_A1_phase_ != 0) {DCI_A1_phase = DCI_A1_phase_} // принимает значение из опций
// else 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)} // вычисляется в скрипте
// 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
// if (DCI_B1_ != 0) {DCI_B1 = DCI_B1_} // принимает значение из опций
// else {DCI_B1 = dB1 / m_test_1} // принимает значение из расчётов
// DCI_B1 = dB1 / m_test_1
// определение фазы вектора DCI_B1
// if (DCI_B1_phase_ != 0) {DCI_B1_phase = DCI_B1_phase_} // принимает значение из опций
// else 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)} // вычисляется в скрипте
// 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
// if (DCI_A2_ != 0) {DCI_A2 = DCI_A2_} // принимает значение из опций
// else {DCI_A2 = dA2 / m_test_2} // принимает значение из расчётов
// DCI_A2 = dA2 / m_test_2
// определение фаза вектора DCI_A2
// if (DCI_A2_phase_ != 0) {DCI_A2_phase = DCI_A2_phase_} // принимает значение из опций
// else 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)} // вычисляется в скрипте
// 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
// if (DCI_B2_ != 0) {DCI_B2 = DCI_B2_} // принимает значение из опций
// else {DCI_B2 = dB2 / m_test_2} // принимает значение из расчётов
// DCI_B2 = dB2 / m_test_2
// определение фазы вектора DCI_B2
// if (DCI_B2_phase_ != 0) {DCI_B2_phase = DCI_B2_phase_} // принимает значение из опций
// else 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)} // вычисляется в скрипте
// 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;
// определение фазы вектора A0 * DCI_B1
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)}
// Координаты графиков масс
// определение координат точек окружности обозначения расчётного балансировочного груза 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)*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)*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)*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)*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)*0.1 * (Math.sin((i) * Math.PI / 180))));
y_Mb1_array.push(y0_Mb1 + (Math.max(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(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)*0.1 * (Math.sin((i) * Math.PI / 180))));
y_Mb2_array.push(y0_Mb2 + (Math.max(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(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)*0.1 * (Math.sin((i) * Math.PI / 180))));
y_Mdisb1_array.push(y0_Mdisb1 + (Math.max(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 (Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)*0.1 * (Math.sin((i) * Math.PI / 180))));
y_Mdisb2_array.push(y0_Mdisb2 + (Math.max(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(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)+Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)*0.1) * (Math.sin((i) * Math.PI / 180)));
yD_array.push(y0D + (Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)+Math.max(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: 0x0000ff,
name: "Вибрация_B0",
x: xB0_array,
y: yB0_array,
});
plot_vibr.add(
{
color: 0x00ffffff,
name: "График векторов вибрации",
x: xV_array,
y: yV_array,
});
plot_vibr.add(
{
color: 0x00ffffff,
name: "границы",
x: [-(Math.max(A0,B0)+Math.max(A0,B0)*0.2), -(Math.max(A0,B0)+Math.max(A0,B0)*0.2), (Math.max(A0,B0)+Math.max(A0,B0)*0.2), (Math.max(A0,B0)+Math.max(A0,B0)*0.2)],
y: [(Math.max(A0,B0)+Math.max(A0,B0)*0.2), -(Math.max(A0,B0)+Math.max(A0,B0)*0.2), -(Math.max(A0,B0)+Math.max(A0,B0)*0.2), (Math.max(A0,B0)+Math.max(A0,B0)*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: 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)+Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)*0.2), -(Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)+Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)*0.2), (Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)+Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)*0.2), (Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)+Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)*0.2)],
y: [(Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)+Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)*0.2), -(Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)+Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)*0.2), -(Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)+Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)*0.2), (Math.max(Mb1_calc,Mb2_calc,Mb1,Mb2,Mdisb1,Mdisb2)+Math.max(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("A0",A0);
gtl.log.info("A0_phase",A0_phase);
gtl.log.info("B0",B0);
gtl.log.info("B0_phase",B0_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_Ампл_вибр_пуска_B0: B0,
_004аза_вибр_пуска_B0: B0_phase,
_005_Масса_дисбаланса_пл_1: Mdisb1,
_006_Угол_дисбаланса_пл_1: Mdisb1_corner,
_007_Масса_дисбаланса_пл_2: Mdisb2,
_008_Угол_дисбаланса_пл_2: Mdisb2_corner,
_009_Масса_баланс_груза_расч_пл_1: Mb1_calc,
_010_Угол_баланс_груза_расч_пл_1: Mb1_corner_calc,
_011_Масса_баланс_груза_введён_пл_1: Mb1,
_012_Угол_баланс_груза_введён_пл_1: Mb1_corner,
_013_Масса_баланс_груза_расч_пл_2: Mb2_calc,
_014_Угол_баланс_груза_расч_пл_2: Mb2_corner_calc,
_015_Масса_баланс_груза_введён_пл_2: Mb2,
_016_Угол_баланс_груза_введён_пл_2: Mb2_corner,
_017_МодульКВ_DCI_A1: DCI_A1,
_018азаКВ_DCI_A1: DCI_A1_phase,
_019_МодульКВ_DCI_A2: DCI_A2,
_020азаКВ_DCI_A2: DCI_A2_phase,
_021_МодульКВ_DCI_B1: DCI_B1,
_022азаКВ_DCI_B1: DCI_B1_phase,
_023_МодульКВ_DCI_B2: DCI_B2,
_024азаКВ_DCI_B2: DCI_B2_phase,
_025опуст_ост_дисб_г_мм: U_per,
_026_Остат_дисб_пл1_г_мм: U_res1,
_027_Остат_дисб_пл2_г_мм: U_res2,
_028_Остат_дисб_сумм_г_мм: U_res
};
gtl.results = {"result": __result};
gtl.diagnostic.stop();
// break;
// default:
// break;
// }
}