diff --git a/maskVM.js b/maskVM.js index a7b20c0..73c8dd7 100644 --- a/maskVM.js +++ b/maskVM.js @@ -32,7 +32,7 @@ export function specModel(options) { return result; }; //построение упрощенной модели спектра -export function getMask(options) { +export function createMask(options) { let result = {}; //результат let data = options.src1.data; //массив точек спектра для сравнения с портретом let mask = options.src2.base; //массив точек базовой линии для построения портрета дефекта @@ -132,4 +132,44 @@ export function getMask(options) { }; return result; -}; //построение портрета дефекта \ No newline at end of file +}; //построение портрета дефекта + +export function getMask(options) { + let __result = {}; //результат + let __spec = options.src1; //источник данных для построения модели + let __set = options.src2; //источник данных для построения портретов дефектов + let __rows = Object.keys(__set); //массив ключей объекта (наименование портретов) + + let __model = specModel( + { + src: __spec, //спектр для построения модели (объект) + tol: options.tol, //коридор обнаружения гармоники, % + color: options.color, //цвет модели в формате HEX + canvas: options.canvas //координатная плоскость для отрисовки + } + ); //рисуем упрощенную модель спектра огибающей + + for (let i = 0; i < __rows.length; i++) { + let __mask_name = __rows[i]; //имена портретов + let __mask = createMask( + { + name: __mask_name, //имя маски дефекта + src1: __model, //модель спектра для анализа (объект) + src2: __spec, //базовый спектр для построения портрета (объект) + filter: options.filter, //полосовой фильтр (для определения разницы амплитуд гармонической и случайной составляющей) + color: __set[__mask_name].clr, //цвет портрета в формате HEX + freq: __set[__mask_name].frq, //функциональная частота, Гц + harms: __set[__mask_name].hrm, //кол-во гармоник в портрете, шт + lvl: __set[__mask_name].lvl, //глубина модуляции сильного дефекта для портрета, % + tol: options.tol, //коридор обнаружения гармоники на портрете, % + type: __set[__mask_name].type, //тип портрета (0 - обычный ряд, 1 - четные составляющие) + coef: __set[__mask_name].coef, //коэффициент затухания гармоник портрета: дефект (0.05 - 0.10), износ (0.30 - 0.50) + canvas: options.canvas //координатная плоскость для отрисовки маски + } + ); + if (__mask.corr >= 0.5) { __result[__mask.name] = __mask.corr }; //добавляем данные в результат + gtl.log.info("Вероятность: " + __mask.name, __mask.corr); //выводим корреляцию гармоник в лог + }; + + return __result; +}; //оценка состояния методом maskVM \ No newline at end of file diff --git a/spmVM.js b/spmVM.js index 6b88d0d..68625bd 100644 --- a/spmVM.js +++ b/spmVM.js @@ -131,4 +131,4 @@ export function getSpm(args) { }; return __result; -}; //перевод значений массива в дБ +}; //оценка состояния методом spmVM