all classes were changed
parent
8e17d04563
commit
3ec60332bf
|
@ -6,7 +6,7 @@ export class peakClass {
|
|||
if (args.spec != undefined) { this.spec = args.spec };
|
||||
}
|
||||
|
||||
getLevels(rpm = this.freq * 60) {
|
||||
__getLevels(rpm = this.freq * 60) {
|
||||
let __allert = 0; //уровень предупреждения, g
|
||||
switch (true) {
|
||||
case rpm <= 900:
|
||||
|
@ -26,7 +26,7 @@ export class peakClass {
|
|||
return __allert
|
||||
}; //рассчет пороговых уровней
|
||||
|
||||
getParams(rpm = this.freq * 60) {
|
||||
__getParams(rpm = this.freq * 60) {
|
||||
let __wdt = 0; //граничная частота ФВЧ
|
||||
let __frq = 40 * this.freq; //граничная частота спектра
|
||||
let __lns = 800; //количество линий спектра
|
||||
|
@ -65,8 +65,38 @@ export class peakClass {
|
|||
};
|
||||
}; //рассчет параметров спектра
|
||||
|
||||
__getSpecSquare() {
|
||||
if (this.spec != undefined) {
|
||||
let __base = this.spec.base; //массив значений средней линии
|
||||
let __data = this.spec.data; //массив значений амплитуд
|
||||
let __lines = this.spec.data.length; //количества линий спектра
|
||||
let __res = this.spec.resolution; //частотное разрешения спектра (высота прямоугольной трапеции)
|
||||
let __start = 0; //стартовый индекс в массиве
|
||||
let __end = __lines; //конечный индекс в массиве
|
||||
let s0 = 0; //площадь под базовой линией
|
||||
let s1 = 0; //площадь всего спектра
|
||||
let s2 = 0; //площадь над базовой линией
|
||||
let s3 = 0; //площадь обнаруженных гармоник
|
||||
|
||||
for (let i = __start; i <= __end - 1; i++) {
|
||||
s0 += __base[i] * __res;
|
||||
s1 += __data[i] * __res;
|
||||
let __delta = __data[i] - __base[i];
|
||||
if (__delta >= 0) { s2 += __delta * __res };
|
||||
if (__delta >= this.spec.peak_level) { s3 += __delta * __res };
|
||||
};
|
||||
|
||||
return {
|
||||
base: s0,
|
||||
spec: s1,
|
||||
harm: s2,
|
||||
peak: s3
|
||||
};
|
||||
}; //определение площадей спектра
|
||||
}
|
||||
|
||||
getWave() {
|
||||
let __allert = this.getLevels();
|
||||
let __allert = this.__getLevels();
|
||||
let __fault = 2 * __allert;
|
||||
|
||||
if (this.visible == true) {
|
||||
|
@ -134,36 +164,6 @@ export class peakClass {
|
|||
return __max;
|
||||
}; //рассчет автокорреляции
|
||||
|
||||
getSpecSquare() {
|
||||
if (this.spec != undefined) {
|
||||
let __base = this.spec.base; //массив значений средней линии
|
||||
let __data = this.spec.data; //массив значений амплитуд
|
||||
let __lines = this.spec.data.length; //количества линий спектра
|
||||
let __res = this.spec.resolution; //частотное разрешения спектра (высота прямоугольной трапеции)
|
||||
let __start = 0; //стартовый индекс в массиве
|
||||
let __end = __lines; //конечный индекс в массиве
|
||||
let s0 = 0; //площадь под базовой линией
|
||||
let s1 = 0; //площадь всего спектра
|
||||
let s2 = 0; //площадь над базовой линией
|
||||
let s3 = 0; //площадь обнаруженных гармоник
|
||||
|
||||
for (let i = __start; i <= __end - 1; i++) {
|
||||
s0 += __base[i] * __res;
|
||||
s1 += __data[i] * __res;
|
||||
let __delta = __data[i] - __base[i];
|
||||
if (__delta >= 0) { s2 += __delta * __res };
|
||||
if (__delta >= this.spec.peak_level) { s3 += __delta * __res };
|
||||
};
|
||||
|
||||
return {
|
||||
base: s0,
|
||||
spec: s1,
|
||||
harm: s2,
|
||||
peak: s3
|
||||
};
|
||||
}; //определение площадей спектра
|
||||
}
|
||||
|
||||
getResult() {
|
||||
let __result = {}; //результат
|
||||
let __mech = 0; //механические проблемы
|
||||
|
@ -178,8 +178,8 @@ export class peakClass {
|
|||
|
||||
if (this.spec != undefined) {
|
||||
let GS = MaxPK / FaultLevel; //общая серьезность проблемы
|
||||
let SQpeak = this.getSpecSquare().peak; //площадь обнаруженных гармонических составляющих
|
||||
let SQspec = this.getSpecSquare().harm; //площадь над базовой линией
|
||||
let SQpeak = this.__getSpecSquare().peak; //площадь обнаруженных гармонических составляющих
|
||||
let SQspec = this.__getSpecSquare().harm; //площадь над базовой линией
|
||||
let PE = (SQpeak ** 2 / SQspec ** 2); //доля периодической энергии
|
||||
let NPE = (SQspec ** 2 - SQpeak ** 2) / SQspec ** 2; //доля непериодической энергии
|
||||
|
||||
|
|
|
@ -5,11 +5,11 @@ export class spmClass {
|
|||
this.frq = args.freq;
|
||||
this.d = args.d_inner;
|
||||
this.visible = args.visible;
|
||||
this.cpt = this.todB(this.src1.values); //переводим значения массива в дБ
|
||||
this.max = this.todB(this.src2.values); //переводим значения массива в дБ
|
||||
this.cpt = this.__todB(this.src1.values); //переводим значения массива в дБ
|
||||
this.max = this.__todB(this.src2.values); //переводим значения массива в дБ
|
||||
}
|
||||
|
||||
todB(arr, type) {
|
||||
__todB(arr, type) {
|
||||
let __limit = 3e-4; //пороговое значение
|
||||
if (type != undefined) {
|
||||
switch (type) {
|
||||
|
@ -24,7 +24,7 @@ export class spmClass {
|
|||
return arr.map((item) => (item = 20 * Math.log10(item / __limit)));
|
||||
} //перевод линейных величин в дБ
|
||||
|
||||
getdBi(d = this.d, rpm = this.frq * 60) {
|
||||
__getdBi(d = this.d, rpm = this.frq * 60) {
|
||||
const a = 3.135283064375708;
|
||||
const b = 4.999746694992378;
|
||||
const k = -58.16048390995372;
|
||||
|
@ -50,35 +50,35 @@ export class spmClass {
|
|||
return a * getDLogUnitValue(d) + b * getRpmLogUnitValue(rpm) + k;
|
||||
} //расчет естественного уровня вибрации dBi
|
||||
|
||||
getdBc() {
|
||||
__getdBc() {
|
||||
return Math.sqrt(this.cpt.reduce((acc, item) => (acc + item ** 2), 0) / this.cpt.length);
|
||||
} //вычисляем ковровый уровень (СКЗ) в дБ
|
||||
|
||||
getdBm() {
|
||||
__getdBm() {
|
||||
return Math.max(...this.max);
|
||||
} //вычисляем максимальную амплитуду импульсов в дБ
|
||||
|
||||
getdBn() {
|
||||
return this.getdBm() - this.getdBi()
|
||||
__getdBn() {
|
||||
return this.__getdBm() - this.__getdBi()
|
||||
} //нормализованное значение амплитуды в дБ
|
||||
|
||||
getLR() {
|
||||
__getLR() {
|
||||
let __max0 = this.max.slice(0) //делаем копию массива для сортировки
|
||||
let __maxSort = __max0.sort((a, b) => (b - a)); //сортируем массив по убыванию
|
||||
let __max40 = __maxSort.slice(0, 40); //выделяем 40 первых (максимальных) значений из массива
|
||||
return __max40.reduce((acc, item) => (acc + item), 0) / __max40.length;
|
||||
} //определяем LR (среднее из 40 импульсов)
|
||||
|
||||
getHR() {
|
||||
__getHR() {
|
||||
let __max1000 = this.max.slice(0, this.max.length / 2); //выделяем 1000 значений из массива
|
||||
return Math.sqrt(__max1000.reduce((acc, item) => (acc + item ** 2), 0) / __max1000.length); //вычисляем HR (СКЗ) в дБ
|
||||
} //вычисляем HR (СКЗ) в дБ
|
||||
|
||||
getWave() {
|
||||
let __dBm = this.getdBm();
|
||||
let __dBc = this.getdBc();
|
||||
let __LR = this.getLR();
|
||||
let __HR = this.getHR();
|
||||
let __dBm = this.__getdBm();
|
||||
let __dBc = this.__getdBc();
|
||||
let __LR = this.__getLR();
|
||||
let __HR = this.__getHR();
|
||||
|
||||
if (this.visible == true) {
|
||||
let __canvas = gtl.plots.add("Impulseform");
|
||||
|
@ -130,7 +130,7 @@ export class spmClass {
|
|||
getResult() {
|
||||
let __result = {}; //результат
|
||||
let __state = "Норма"; //общее состояние
|
||||
let __dBn = this.getdBn();
|
||||
let __dBn = this.__getdBn();
|
||||
let __wav = this.getWave(); //рисуем форму сигнала и получаем пороги
|
||||
|
||||
switch (true) {
|
||||
|
|
|
@ -306,7 +306,7 @@ export function getAusp(args) {
|
|||
__ausp.window = gtl.spec.rectangular; //тип окна
|
||||
__ausp.smoothing_factor = 100; //коэффициент сглаживания спектра
|
||||
__ausp.smoothed_line_color = 0xFFFF00; //цвет средней линии
|
||||
__ausp.harm_tolerance = __ausp.resolution; //диапазон поиска гармоник +/-
|
||||
__ausp.harm_tolerance = 1; //диапазон поиска гармоник +/-
|
||||
return __ausp;
|
||||
}; //построение спектра вибрации
|
||||
|
||||
|
@ -324,7 +324,7 @@ export function getSpen(args) {
|
|||
__spen.window = gtl.spec.rectangular; //тип окна
|
||||
__spen.smoothing_factor = 100; //коэффициент сглаживания спектра
|
||||
__spen.smoothed_line_color = 0xFFFF00; //цвет средней линии
|
||||
__spen.harm_tolerance = __spen.resolution; //диапазон поиска гармоник +/-
|
||||
__spen.harm_tolerance = 1; //диапазон поиска гармоник +/-
|
||||
|
||||
return __spen;
|
||||
}; //построение спектра огибающей
|
||||
|
|
Loading…
Reference in New Issue