"use strict"; var signals = gtl.options.record.signalsModel; var options = gtl.options; var record = gtl.options.record; var point = gtl.options.point; var fnc = gtl.import("userFunctions.js"); let mtxClass = gtl.import("mtxClass.js").mtxClass; var __frq = fnc.getFreq( /*{ src: gtl.analog_inputs[signals[0].portNumber], //источник сигнала частоты вращения freq: 10, //граничная частота фильтрации сигнала time: 1, //интервал измерения частоты вращения avg: 4, //количество отсчетов для усреднения dc: -0.05 //порог срабатывания счетчика }*/ ).value; //получаем частоту вращения let canvas0 = gtl.plots.add("Мониторинговый спектр"); let canvas1 = gtl.plots.add("Спектр вибраци"); let canvas2 = gtl.plots.add("Спектр огибающей"); var ausp2 = fnc.getAusp( { src: gtl.analog_inputs[signals[0].portNumber], //источник сигнала name: "AUSPm", //имя спектра color: 0x001E90FF, //цвет в формате HEX frequency: 25600, //граничная частота resolution: 16, //частотное разрешение average: 6, //количество усреднений view: gtl.spec.db, //единицы отображения (дБ) } ); //мониторинговый спектр var ausp = fnc.getAusp( { src: gtl.analog_inputs[signals[0].portNumber], //источник сигнала name: "AUSPd", //имя спектра color: 0x0000FF00, //цвет в формате HEX frequency: 800, //граничная частота resolution: 1, //частотное разрешение average: 6, //количество усреднений view: gtl.spec.db, //единицы отображения (дБ) level: 20 //уровень обнаружения гармоник } ); //диагностический спектр вибрации //фильтр для формирования спектра огибающей var filter_spen = gtl.add_filter_iir(gtl.analog_inputs[signals[0].portNumber]); //назначение переменной фильтра filter_spen.kind = gtl.filter_iir.butterworth; //тип окна filter_spen.type = gtl.filter_iir.bandpass; //тип фильтра (полосовой) filter_spen.order = 10; //порядок фильтра filter_spen.frequency = 6400; //центральная частота полосового фильтра filter_spen.width = 1482; //ширина полосы фильтра var spen = fnc.getSpen( { src: filter_spen, //источник сигнала name: "SPEN", //имя спектра color: 0x00ff0000, //цвет в формате HEX frequency: 200, //граничная частота resolution: 0.25, //частотное разрешение average: 8, //количество усреднений view: gtl.spec.db, //единицы отображения (дБ) level: 10 //уровень обнаружения гармоник } ); //спектр огибающей //[Диагностика] gtl.diagnostic.interval = gtl.acq_time; let __result = {}; //объект для формирования результата function diagnose() { var __set = { "FREQ": [0x89AC76, fnc.FREQ(__frq), 6, 13, 0, 0.3], "BPFO": [0x6A5ACD, fnc.BPFO(__frq), 6, 13, 0, 0.07], "BPFI": [0x008000, fnc.BPFI(__frq), 6, 8, 0, 0.07], "BSF": [0xFFA000, fnc.BSF(__frq), 6, 10, 0, 0.3], "FTF": [0xFF2400, fnc.FTF(__frq), 6, 6, 0, 0.5] }; //набор портретов предполагаемых дефектов [цвет, частота, кол-во, уровень, тип ряда, коэфф затухания] canvas0.add( { color: ausp2.color, name: ausp2.name, x: ausp2.resolution, y: ausp2.data } ); //рисуем мониторинговый спектр вибрации на plot canvas1.add( { color: ausp.color, name: ausp.name, x: ausp.resolution, y: ausp.data } ); //рисуем спектр вибрации на plot*/ let __spen_tools = fnc.createTools( { spec: spen, //спектр для построения модели (объект) set: __set, //источник данных для построения частотных линий tol: 1 //коридор обнаружения гармоники на портрете, % } ); //формируем компоненты и частотные линии на спектре огибающей canvas2.add( { color: spen.color, name: spen.name, x: spen.resolution, y: spen.data, spec_tools: __spen_tools.to_json() } ); //рисуем спектр огибающей на plot let __mtx = new mtxClass( { spec: spen, //спектр для построения модели (объект) set: __set, //источник данных для построения портретов дефектов filter: filter_spen, //полосовой фильтр (для определения разницы амплитуд гармонической и случайной составляющей) tol: 1, //коридор обнаружения гармоники, % } ) gtl.log.info("FREQ", fnc.FREQ(__frq)); gtl.log.info("FTF", fnc.FTF(__frq)); gtl.log.info("BPFO", fnc.BPFO(__frq)); gtl.log.info("BPFI", fnc.BPFI(__frq)); gtl.log.info("BSF", fnc.BSF(__frq)); __result["Matrix"] = __mtx.getMatrix(); //обнаруженные дефекты __result["const"] = spen.data[0]; //постоянная составляющая спектра огибающей gtl.results = __result; gtl.diagnostic.stop(); }