gtld2-diag-scripts/solid/gear transmission.js

441 lines
28 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

"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("unimodule.js");
//настройки для датчика оборотов
var filter_freq = gtl.add_filter_iir(gtl.analog_inputs[record.tachoOptions.tachoChannel]); //объявление переменной фильтра
filter_freq.kind = gtl.filter_iir.butterworth; //тип окна
filter_freq.type = gtl.filter_iir.lowpass; //тип фильтра (ФНЧ)
filter_freq.order = 8; //порядок фильтра
filter_freq.frequency = 10; //граничная частота фильтра
//определение частоты вращения
var freq = gtl.add_value_freq(filter_freq);
freq.time = 1;
freq.avg_cnt = 6;
//gtl.diagnostic.interval = /*1*/10;
//[Блок настройки параметров измерений]
//мониторинговый спектр вибрации
var ausp2 = gtl.add_ausp(gtl.analog_inputs[signals[0].signalChannel]); //назначение переменной спектра вибрации
ausp2.name = "AUSPm"; //присвоение имени спектра
ausp2.color = 0x0000ffff; //цвет линии спектра
ausp2.frequency = 1600; //граничная частота спектра
ausp2.lines = 1600; //разрешение спектра (количество линий)
ausp2.average = 6; //количество усреднений
ausp2.unit = gtl.spec.db; //отображение в дБ
//спектр вибрации
var ausp = gtl.add_ausp(gtl.analog_inputs[signals[0].signalChannel]); //назначение переменной спектра вибрации
ausp.name = "AUSPd"; //присвоение имени спектра
ausp.color = 0x0000ff; //цвет линии спектра
//ausp.frequency = 1600; //граничная частота спектра
ausp.lines = 1600; //разрешение спектра (количество линий)
ausp.average = 6; //количество усреднений
ausp.unit = gtl.spec.db; //отображение в дБ
ausp.smoothing_factor = 50; //коэффициент сглаживания спектра
ausp.smoothed_line_color = 0x000000ff; //цвет линии сглаживания (средней линии)
ausp.peak_level = 20; //порог обнаружения гармоник
ausp.harm_tolerance = ausp.resolution; //диапазон поиска гармоник +/-
//фильтр для формирования спектра огибающей
var n = 3; //количество долей октавного фильтра
var kf = (2 ** (1 / n) - 1) / ((2 ** (1 / n)) ** (1 / 2));//коэффициент для полосового фильтра
var filter_spen = gtl.add_filter_iir(gtl.analog_inputs[signals[0].signalChannel]); //назначение переменной фильтра
filter_spen.kind = gtl.filter_iir.butterworth; //тип окна
filter_spen.type = gtl.filter_iir.bandpass; //тип фильтра (полосовой)
filter_spen.order = 10; //порядок фильтра
filter_spen.frequency = 8000; //центральная частота полосового фильтра
//filter_spen.frequency = 6013.41 * Math.log(0.266935 * imp.FREQ() + 1.1201); //расчетная центральная частота полосового фильтра
filter_spen.color = 255;
filter_spen.width = kf * filter_spen.frequency; //ширина полосы фильтра
//спектр огибающей
var spen = gtl.add_spen(filter_spen); //назначение переменной спектра огибающей
spen.name = "SPEN"; //присвоение имени спектра огибающей
spen.color = 0x00ffaa00; //цвет линии спектра огибающей
//spen.frequency = spen_frequency(); //граничная частота спектра огибающей
//spen.lines = spen_lines(); //разрешение спектра огибающей (количество линий)
spen.average = 8; //количество усреднений
spen.unit = gtl.spec.db; //отображение в дБ
spen.window = gtl.spec.hann; //окно
spen.smoothing_factor = 100; //коэффициент сглаживания спектра
spen.smoothed_line_color = 0xff004dff; //цвет средней линии
spen.peak_level = 10; //порог обнаружения гармоник
spen.harm_tolerance = spen.resolution; //диапазон поиска гармоник +/-
//RMS и Amplitude в диапазоне спектра огибающей (контроль работы сил трения)
var rms_spen = gtl.add_value_rms(filter_spen); //назначение переменной RMS (spen)
var ampl_spen = gtl.add_value_ampl(filter_spen); //назначение переменной Amplitude (spen)
rms_spen.name = "RMS (spen)" //присвоение имени RMS (spen)
rms_spen.time = 0.5; //интервал расчета RMS (spen)
ampl_spen.time = 0.5; //интервал расчета Amplitude (spen)
rms_spen.avg_cnt = 4; //количество усреднений RMS (spen)
ampl_spen.avg_cnt = 4; //количество усреднений Amplitude (spen)
//RMS и Amplitude в УВЧ диапазоне 10-25 кГц (контроль разрыва масляной пленки)
var filter_uhf = gtl.add_filter_iir(gtl.analog_inputs[signals[0].signalChannel]); //назначение переменной фильтра (предварительный)
filter_uhf.kind = gtl.filter_iir.butterworth; //тип окна
filter_uhf.type = gtl.filter_iir.bandpass; //тип фильтра (полосовой)
filter_uhf.order = 10; //порядок фильтра
filter_uhf.frequency = 17500; //центральная частота полосового фильтра
filter_uhf.width = 15000; //ширина полосы фильтра
var rms_uhf = gtl.add_value_rms(filter_uhf); //назначение переменной RMS
var ampl_uhf = gtl.add_value_ampl(filter_uhf); //назначение переменной Amplitude
rms_uhf.name = "RMS (uhf)" //присвоение имени RMS (uhf)
rms_uhf.time = 0.5; //интервал расчета RMS (uhf)
ampl_uhf.time = 0.5; //интервал расчета Amplitude (uhf)
rms_uhf.avg_cnt = 4; //количество усреднений RMS (uhf)
ampl_uhf.avg_cnt = 4; //количество усреднений Amplitude (uhf)
//Виброскорость в дипазоне 2-1000 Гц (вибромониторинг)
var filter2_1000 = gtl.add_filter_iir(gtl.analog_inputs[signals[0].signalChannel]); //назначение переменной фильтра (предварительный)
filter2_1000.kind = gtl.filter_iir.butterworth; //тип окна
filter2_1000.type = gtl.filter_iir.bandpass; //тип фильтра (полосовой)
filter2_1000.order = 10; //порядок фильтра
filter2_1000.frequency = 501; //центральная частота полосового фильтра
filter2_1000.width = 998; //ширина полосы фильтра
var filter2_1000v = gtl.add_intg(filter2_1000); // интегрирование
filter2_1000v.taps = 1; // степень интегрирования (скорость из ускорения - 1-нарное)
var rms_v2 = gtl.add_value_rms(filter2_1000v); //назначение переменной RMS(V)
rms_v2.name = "RMS(V) 2-1000 Гц" //присвоение имени RMS(V)
rms_v2.time = 0.5; //интервал расчета RMS(V)
rms_v2.avg_cnt = 4; //количество усреднений RMS(V)
//Виброскорость в дипазоне 10-1000 Гц (вибромониторинг)
var filter10_1000 = gtl.add_filter_iir(gtl.analog_inputs[signals[0].signalChannel]); //назначение переменной фильтра (предварительный)
filter10_1000.kind = gtl.filter_iir.butterworth; //тип окна
filter10_1000.type = gtl.filter_iir.bandpass; //тип фильтра (полосовой)
filter10_1000.order = 10; //порядок фильтра
filter10_1000.frequency = 505; //центральная частота полосового фильтра
filter10_1000.width = 990; //ширина полосы фильтра
var filter10_1000v = gtl.add_intg(filter10_1000); // интегрирование
filter10_1000v.taps = 1; // степень интегрирования (скорость из ускорения - 1-нарное)
var rms_v10 = gtl.add_value_rms(filter10_1000v); //назначение переменной RMS(V)
rms_v10.name = "RMS(V) 10-1000 Гц" //присвоение имени RMS(V)
rms_v10.time = 0.5; //интервал расчета RMS(V)
rms_v10.avg_cnt = 4; //количество усреднений RMS(V)
//[Диагностика]
gtl.diagnostic.interval = freq.time * freq.avg_cnt;
let state = record.tachoOptions.tachoState; //начальное состояние после выбора источника тахо сигнала
let acq_time = 0;
function diagnose() {
switch (state) {
case 0: // считаем частоту вращения и настраиваем спектры
if (imp.INSTABILITY() > imp.tolerance()) {
gtl.log.info("Критическая нестабильность частоты вращения, %", imp.INSTABILITY() * 100);
gtl.log.info("Результат:", "Диагностика прервана");
//gtl.diagnostic.stop(); //принудительная остановка диагностики
let __result = {
Result: false
};
gtl.results = __result;
};
//установка стандартной ширины спектра огибающей и количества линий спектра
spen.frequency = imp.standart_width();
spen.lines = imp.standart_lines();
filter_spen.frequency = 6013.41 * Math.log(0.266935 * imp.FREQ() + 1.1201);
ausp.frequency = imp.standart_width();
//ausp.lines = imp.standart_lines();
//определение минимально необходимой длительности сигнала для проведения диагностики
var acq_times = [];
acq_times.push(ausp.acq_time);
acq_times.push(spen.acq_time);
acq_time = Math.max(...acq_times);
gtl.diagnostic.interval = acq_time;
state = 3;
break;
case 1: //частота вращения фиксированная
//установка стандартной ширины спектра огибающей и количества линий спектра
spen.frequency = imp.standart_width();
spen.lines = imp.standart_lines();
filter_spen.frequency = 6013.41 * Math.log(0.266935 * imp.FREQ() + 1.1201);
ausp.frequency = imp.standart_width();
//ausp.lines = imp.standart_lines();
//определение минимально необходимой длительности сигнала для проведения диагностики
var acq_times = [];
acq_times.push(ausp.acq_time);
acq_times.push(spen.acq_time);
acq_time = Math.max(...acq_times);
gtl.diagnostic.interval = acq_time;
state = 3;
break;
case 2: //частота вращения из поля INFO (виброметр)
//установка стандартной ширины спектра огибающей и количества линий спектра
spen.frequency = imp.standart_width();
spen.lines = imp.standart_lines();
filter_spen.frequency = 6013.41 * Math.log(0.266935 * imp.FREQ() + 1.1201);
ausp.frequency = imp.standart_width();
//ausp.lines = imp.standart_lines();
//определение минимально необходимой длительности сигнала для проведения диагностики
var acq_times = [];
acq_times.push(ausp.acq_time);
acq_times.push(spen.acq_time);
acq_time = Math.max(...acq_times);
gtl.diagnostic.interval = acq_time;
state = 3;
break;
case 3: //выполняем анализ спектов
ausp.clear_harms_sets(); //сброс отрисовки набора гармоник в спектре вибрации
spen.clear_harms_sets(); //сброс отрисовки набора гармоник в спектре огибающей
//[Блок настройки определения гармоник в спектрах]
//AUSP
//присваиваем набору гармоник переменную, добавляем гармоники: частота, кол-во (default = 10), цвет, вес.
var ausp_f1 = ausp.add_harms_set(imp.FREQ(), 10, 0xff0000f0, 1); //биение вала (шестерни)
for (let i = 0; i <= 9; i++) { ausp_f1.harms[i].tolerance = (1 + i) * imp.FREQ() * imp.tolerance() }; //коридор обнаружения гармоник
ausp_f1.name = 'Биение вала (шестерни)';
var ausp_f2 = ausp.add_harms_set(imp.GTF2(), 10, 0xff009000, 1); //биение вала (зубчатого колеса)
for (let i = 0; i <= 9; i++) { ausp_f2.harms[i].tolerance = (1 + i) * imp.GTF2() * imp.tolerance() };
ausp_f2.name = 'Биение вала (зубчатого колеса)';
var ausp_fz1 = ausp.add_harms_set(imp.GTFZ(), 5, 0xff990090, 1); //дефект зубьев шестерни
for (let i = 0; i <= 4; i++) { ausp_fz1.harms[i].tolerance = (1 + i) * imp.GTFZ() * imp.tolerance() };
ausp_fz1.name = 'Дефект зубьев шестерни';
var ausp_fz2 = ausp.add_harms_set(imp.GTFZ(), 5, 0xff994000, 1); //Дефект зубьев зубчатого колеса
for (let i = 0; i <= 4; i++) { ausp_fz2.harms[i].tolerance = (1 + i) * imp.GTFZ() * imp.tolerance() };
ausp_fz2.name = 'Дефект зубьев зубчатого колеса';
//добавляем модулирующие гармоники: частота, кол-во, цвет, вес
ausp.harms_sets[2].modulate(imp.FREQ(), 2, 0x000000ff, 1); //модуляция Fн +/- Fвр1
ausp.harms_sets[3].modulate(imp.GTF2(), 2, 0x000000ff, 1); //модуляция Fн +/- Fвр2
//при необходимости можно изменить параметры каждой гармоники индивидуально
/*
ausp.harms_sets[0].harms[0].color = 0x0000ffff;
ausp.harms_sets[0].harms[0].weight = 1;
ausp.harms_sets[0].harms[2].color = 0x0000ff00;
ausp.harms_sets[0].harms[0].weight = 0.5;
ausp.harms_sets[0].modulating[0].harms[0].color = 0x00ffff00;
ausp.harms_sets[0].modulating[0].harms[0].weight = 5;
*/
//SPEN
//присваиваем набору гармоник переменную, добавляем гармоники: частота, кол-во (default = 10), цвет, вес.
var spen_f1 = spen.add_harms_set(imp.FREQ(), 10, 0xff0000f0, 1); //биение вала (шестерни)
for (let i = 0; i <= 9; i++) { spen_f1.harms[i].tolerance = (1 + i) * imp.FREQ() * imp.tolerance() };
spen_f1.name = 'Биение вала (шестерни)';
var spen_f2 = spen.add_harms_set(imp.GTF2(), 10, 0xff009000, 1); //биение вала (зубчатого колеса)
for (let i = 0; i <= 9; i++) { spen_f2.harms[i].tolerance = (1 + i) * imp.GTF2() * imp.tolerance() };
spen_f2.name = 'Биение вала (зубчатого колеса)';
var spen_fz1 = spen.add_harms_set(imp.GTFZ(), 5, 0xff990090, 1); //дефект зубьев шестерни
for (let i = 0; i <= 4; i++) { spen_fz1.harms[i].tolerance = (1 + i) * imp.GTFZ() * imp.tolerance() };
spen_fz1.name = 'Дефект зубьев шестерни';
var spen_fz2 = spen.add_harms_set(imp.GTFZ(), 5, 0xff994000, 1); //дефект зубьев зубчатого колеса
for (let i = 0; i <= 4; i++) { spen_fz2.harms[i].tolerance = (1 + i) * imp.GTFZ() * imp.tolerance() };
spen_fz2.name = 'Дефект зубьев зубчатого колеса';
//добавляем модулирующие гармоники: частота, кол-во, цвет, вес
spen.harms_sets[2].modulate(imp.FREQ(), 2, 0xff0000f0, 1); //модуляция Fz +/- Fвр1
spen.harms_sets[3].modulate(imp.GTF2(), 2, 0xff009000, 1); //модуляция Fz +/- Fвр2
//при необходимости можно изменить параметры каждой гармоники индивидуально
/*
spen.harms_sets[0].harms[0].color = 0x0000ffff;
spen.harms_sets[0].harms[0].weight = 1;
spen.harms_sets[0].harms[2].color = 0x0000ff00;
spen.harms_sets[0].harms[0].weight = 0.5;
spen.harms_sets[0].modulating[0].harms[0].color = 0x00ffff00;
spen.harms_sets[0].modulating[0].harms[0].weight = 5;
*/
//Расчет площади спектра вибрации: спектр, начало отсчета в Гц, граничная частота спектра
var AQ = imp.ausp_square(ausp2.data, 800, ausp2.frequency);
//[Блок диагностики]
//вывод информации в лог
//gtl.log.info("description", function)
gtl.log.info("Минимально необходимая длительность сигнала", acq_time);
gtl.log.info("FREQ", imp.FREQ());
gtl.log.info("FZ", imp.GTFZ());
gtl.log.info("F2", imp.GTF2());
gtl.log.info("Граничная частота спектра", imp.spen_frequency());
gtl.log.info("Расчетное разрешение спектра", imp.spen_resolution());
gtl.log.info("Расчетное количество линий", imp.spen_lines());
gtl.log.info("Расчетный коридор обнаружения, %", imp.tolerance() * 100);
gtl.log.info("spen.frequency", spen.frequency);
gtl.log.info("spen.lines", spen.lines);
gtl.log.info("СКЗ(A) ВЧ вибрации", rms_spen.value);
gtl.log.info("СКЗ(A) УВЧ вибрации", rms_uhf.value);
gtl.log.info("ПФ(A) в ВЧ диапазоне", ampl_spen.value / rms_spen.value);
gtl.log.info("ПФ(F) в УВЧ диапазоне", ampl_uhf.value / rms_uhf.value);
gtl.log.info("СКЗ(V) 2-1000 Гц", rms_v2.value);
gtl.log.info("СКЗ(V) 10-1000 Гц", rms_v10.value);
//вывод количества гармоник
//ausp.harms_sets[0].get_count(1, 2, 1, true);
//1 - начало отсчета гармоники;
//2 - допуситмое количество пропущенных в ряду;
//3 - количество модулирующих с одной стороны;
//4 - модулирующие с двух сторон (true);
//вывод параметров гармоник
//ausp_set0.harms[1].is_present); //гармоника есть (есть превышение на порогом)
//ausp_set0.harms[1].amplitude); //амплитуда
//ausp_set0.harms[1].level); //превышении над средней
//ausp_set0.harms[1].base); //уровень фона под гармоникой
//ausp_set0.harms[1].tolerance; //коридор обнаружения гармоники
var Defect = false;
var Defect_type = [];
//биение вала шестерни
if (
spen.harms_sets[0].get_count(1, 2) >= 3 & spen.harms_sets[0].get_count(1, 2) <= 5 &
ausp.harms_sets[0].get_count(1, 2) >= 3 & ausp.harms_sets[0].get_count(1, 2) <= 5 &
spen.harms_sets[2].get_count(1, 1, 1) >= 1 & spen.harms_sets[2].get_count(1, 1, 1) <= 3 &
ausp.harms_sets[2].get_count(1, 1, 1) >= 1 & ausp.harms_sets[2].get_count(1, 1, 1) <= 3
) {
Defect = true;
Defect_type.push("Биение вала шестрени");
for (let i = 0; i <= 9; i++) {
if (spen_f1.harms[i].is_present == true)
gtl.log.info("Биение вала шестерни. Признаки в ES " + (i + 1) + "Fвр1", imp.deep_factor(spen_f1.harms[i].amplitude, spen_f1.harms[i].base));
}
for (let i = 0; i <= 4; i++) {
if (spen_fz1.harms[i].is_present == true)
gtl.log.info("Биение вала шестерни. Признаки в ES " + (i + 1) + "Fz1", imp.deep_factor(spen_fz1.harms[i].amplitude, spen_fz1.harms[i].base));
}
for (let i = 0; i <= 9; i++) {
if (ausp_f1.harms[i].is_present == true)
gtl.log.info("Биение вала шестерни. Признаки в AS " + (i + 1) + "Fвр1", ausp_f1.harms[i].amplitude);
}
for (let i = 0; i <= 4; i++) {
if (ausp_fz1.harms[i].is_present == true)
gtl.log.info("Биение вала шестерни. Признаки в AS " + (i + 1) + "Fz1", ausp_fz1.harms[i].amplitude);
}
}
else
gtl.log.info("Биение вала шестерни", "Признаков дефекта не обнаружено");
//биение вала зубчатого колеса
if (
spen.harms_sets[1].get_count(1, 2) >= 3 & spen.harms_sets[1].get_count(1, 2) <= 5 &
ausp.harms_sets[1].get_count(1, 2) >= 3 & ausp.harms_sets[1].get_count(1, 2) <= 5 &
spen.harms_sets[3].get_count(1, 1, 1) >= 1 & spen.harms_sets[3].get_count(1, 1, 1) <= 3 &
ausp.harms_sets[3].get_count(1, 1, 1) >= 1 & ausp.harms_sets[3].get_count(1, 1, 1) <= 3
) {
Defect = true;
Defect_type.push("Биение вала зубчатого колеса");
for (let i = 0; i <= 9; i++) {
if (spen_f2.harms[i].is_present == true)
gtl.log.info("Биение вала зубчатого колеса. Признаки в ES " + (i + 1) + "Fвр2", imp.deep_factor(spen_f2.harms[i].amplitude, spen_f2.harms[i].base));
}
for (let i = 0; i <= 4; i++) {
if (spen_fz2.harms[i].is_present == true)
gtl.log.info("Биение вала зубчатого колеса. Признаки в ES " + (i + 1) + "Fz2", imp.deep_factor(spen_fz2.harms[i].amplitude, spen_fz2.harms[i].base));
}
for (let i = 0; i <= 9; i++) {
if (ausp_f2.harms[i].is_present == true)
gtl.log.info("Биение вала зубчатого колеса. Признаки в AS " + (i + 1) + "Fвр2", ausp_f2.harms[i].amplitude);
}
for (let i = 0; i <= 4; i++) {
if (ausp_fz2.harms[i].is_present == true)
gtl.log.info("Биение вала зубчатого колеса. Признаки в AS " + (i + 1) + "Fz2", ausp_fz2.harms[i].amplitude);
}
} else
gtl.log.info("Биение вала зубчатого колеса", "Признаков дефекта не обнаружено");
//дефект зубьев шестерни
if (
spen.harms_sets[0].get_count(1, 2) >= 5 & ausp.harms_sets[0].get_count(1, 2) >= 5 &
spen.harms_sets[2].get_count(1, 1, 1) >= 3 & spen.harms_sets[2].get_count(1, 1, 1) <= 5 &
ausp.harms_sets[2].get_count(1, 1, 1) >= 3 & ausp.harms_sets[2].get_count(1, 1, 1) <= 5
) {
Defect = true;
Defect_type.push("Дефект зубьев шестерни");
for (let i = 0; i <= 9; i++) {
if (spen_f1.harms[i].is_present == true)
gtl.log.info("Дефект зубьев шестерни. Признаки в ES " + (i + 1) + "Fвр1", imp.deep_factor(spen_f1.harms[i].amplitude, spen_f1.harms[i].base));
}
for (let i = 0; i <= 4; i++) {
if (spen_fz1.harms[i].is_present == true)
gtl.log.info("Дефект зубьев шестерни. Признаки в ES " + (i + 1) + "Fz1", imp.deep_factor(spen_fz1.harms[i].amplitude, spen_fz1.harms[i].base));
}
for (let i = 0; i <= 9; i++) {
if (ausp_f1.harms[i].is_present == true)
gtl.log.info("Дефект зубьев шестерни. Признаки в AS " + (i + 1) + "Fвр1", ausp_f1.harms[i].amplitude);
}
for (let i = 0; i <= 4; i++) {
if (ausp_fz1.harms[i].is_present == true)
gtl.log.info("Дефект зубьев шестерни. Признаки в AS " + (i + 1) + "Fz1", ausp_fz1.harms[i].amplitude);
}
}
else
gtl.log.info("Дефект зубьев шестерни", "Признаков дефекта не обнаружено");
//дефект зубьев зубчатого колеса
if (
spen.harms_sets[1].get_count(1, 2) >= 5 & ausp.harms_sets[1].get_count(1, 2) >= 5 &
spen.harms_sets[3].get_count(1, 1, 1) >= 3 & spen.harms_sets[3].get_count(1, 1, 1) <= 5 &
ausp.harms_sets[3].get_count(1, 1, 1) >= 3 & ausp.harms_sets[3].get_count(1, 1, 1) <= 5
) {
Defect = true;
Defect_type.push("Дефект зубьев зубчатого колеса");
for (let i = 0; i <= 9; i++) {
if (spen_f2.harms[i].is_present == true)
gtl.log.info("Дефект зубьев зубчатого колеса. Признаки в ES " + (i + 1) + "Fвр2", inp.deep_factor(spen_f2.harms[i].amplitude, spen_f2.harms[i].base));
}
for (let i = 0; i <= 4; i++) {
if (spen_fz2.harms[i].is_present == true)
gtl.log.info("Дефект зубьев зубчатого колеса. Признаки в ES " + (i + 1) + "Fz2", imp.deep_factor(spen_fz2.harms[i].amplitude, spen_fz2.harms[i].base));
}
for (let i = 0; i <= 9; i++) {
if (ausp_f2.harms[i].is_present == true)
gtl.log.info("Дефект зубьев зубчатого колеса. Признаки в AS " + (i + 1) + "Fвр2", ausp_f2.harms[i].amplitude);
}
for (let i = 0; i <= 4; i++) {
if (ausp_fz2.harms[i].is_present == true)
gtl.log.info("Дефект зубьев зубчатого колеса. Признаки в AS " + (i + 1) + "Fz2", ausp_fz2.harms[i].amplitude);
}
}
else
gtl.log.info("Дефект зубьев зубчатого колеса", "Признаков дефекта не обнаружено");
let __result = {
"Result": true,
"RMS(A)": rms_spen.value,
"RMS_UHF(A)": rms_uhf.value,
"PF(A)": ampl_spen.value / rms_spen.value,
"PF_UHF(A)": ampl_uhf.value / rms_uhf.value,
"RMS(V) 2-1000 Гц": rms_v2.value,
"RMS(V) 10-1000 Гц": rms_v10.value,
"Square": AQ,
"Defects": Defect,
"Types": Defect_type
};
gtl.results = __result;
gtl.diagnostic.stop();
break;
default:
break;
}
}