Gtl.create spec tools
Краткое описание
Функция предназначена для создания и вывода компонентов (маркеров гармоник, базовой линии, набора расчетных частот) на координатную плоскость спектров вибрации.
Объявление функции
Для создания компонентов используется запись:
let __tools = gtl.create_spec_tools(
{
data: ausp.data, //массив значений амплитуд спектра
df: ausp.resolution, //частотное разрешение спектра
base: {
factor: 100, //коэффициент сглаживания базовой линии
visible: true, //отображение базовой линии
color: 0xff0000 //цвет базовой линии в формате HEX
},
peaks: {
color: 0xff0000, //цвет маркеров обнаруженных гармоник
visible: true, //отображение маркеров
level: 15 //уровень обнаружения гармоник в спектре
},
harms: {
tolerance: 1 //коридор обнаружения гармоник в спектре
}
}
);
Добавление набора гармоник
Для создания набора гармоник используется запись:
let __row1 = __tools.harms.add(
{
frequency: 50, //функциональная частота
count: 3, //количество гармоник
color: 0xff0000, //цвет линий
weight: 1, //толщина линий
visible: false //отображение линий
}
);
Свойства (методы)
__row1.name = "row1";- имя набора гармоник;
Добавление линий амплитудной модуляции
Для создания линий амплитудной модуляции используется запись:
__row1.modulate(
{
frequency: 5, //частота амплитудной модуляции
count: 2, //количество боковых составляющих слева и справа
color: 0x00ff00, //цвет линий в формате HEX
weight: 1 //толщина линий
}
);
Альтернативный способ добавления набора гармоник и амплитудной модуляции
В альтернативном варианте используется запись:
let __row2 = __tools.harms.add(300, 2, 0xff00ff, 1); //частота, кол-во гармоник, цвет линий, толщина линий __row2.name = "row2"; //имя набора гармоник __row2.modulate(27, 2, 0x00ffff); //частота модуляции, кол-во боковых слева и справа, цвет линий
Отрисовка спектра и компонентов на координатной плоскости
Для отрисовки спектра и компонентов на одной координатной плоскости используется функция отрисовки с дополнительным ключем "spec_tools", в который записывается набор компонентов (используется метод to_json()):
plot1.add(
{
color: 0x0000ff,
name: "ausp",
x: ausp.resolution,
y: ausp.data,
spec_tools: __tools.to_json()
}
);
Получение результатов
Для получения результатов по праметрам спектра и обнаруженным гармоническим составляющим необходимо предварительно применить метод to_json():
let __result = __tools.to_json();
__result.data;- массив значений амплитуд составляющих спектра;__result.base.data;- массив значений средней линии;__result.peaks.data;- массив обнаруженных гармоник;__result.peaks.data[i];- обращение к i-й обнаруженной гармонике и ее свойствам;
freq - частота обнаруженной гармоники; ampl - амплитудное значение обнаруженной гармоники; level - уровень обнаруженной гармоники над средней линией; index - индекс обнаруженной гармоники;
__result.harms.rows;- массив построенных гармонических рядов;__result.harms.rows[i];- обращение к i-му гармоническому ряду;__result.harms.rows[i].harms;- массив гармоник i-го гармонического ряда;__result.harms.rows[i].harms[j];- обращение к j-й гармонике и ее свойствам i-го гармонического ряда;
freq - частота гармоники указанного гармонического ряда; ampl - амплитудное значение гармоники указанного гармонического ряда; base - уровень средней линии под гармоникой указанного гармонического ряда; level - уровень гармоники над средней линией указанного гармонического ряда; is_present (true / false) - обнаружение гармоники указанного гармонического ряда;
Пример использования
//отрисовка спектров и компонентов на координатных плоскостях
var ausp = gtl.create_ausp(
{
src: gtl.analog_inputs[0],
frequency: 1000,
resolution: 1,
average: 3,
overlap: .5,
window: gtl.spec.rectangular,
view: gtl.spec.db
}
); //создание спектра вибрации
var spen = gtl.create_spen(
{
src: gtl.analog_inputs[0],
frequency: 1000,
resolution: 1,
average: 3,
overlap: .5,
window: gtl.spec.rectangular
}
); //создание спектра огибающей
gtl.diagnostic.interval = ausp.acq_time;
gtl.log.info("acq time", ausp.acq_time);
let plot1 = gtl.plots.add("Спектр вибрации"); //создание координатной плоскости для спектра вибрации
let plot2 = gtl.plots.add("Спектр огибающей"); //создание координатной плоскости для спектра огибающей
function diagnose()
{
let __tools = gtl.create_spec_tools(
{
data: ausp.data,
df: ausp.resolution,
base: {
factor: 100,
visible: true,
color: 0xff0000
},
peaks: {
color: 0xff0000,
visible: true,
level: 15
},
harms: {
tolerance: 1
}
}
); //создание компонентов
let __row1 = __tools.harms.add(
{
frequency: 50,
count: 3,
color: 0xff0000,
weight: 1,
visible: false
}
); //добавление набора гармоник 1
__row1.name = "row1"; //наименование набора гармоник 1
__row1.modulate(
{
frequency: 5,
count: 2,
color: 0x00ff00,
weight: 1
}
); //добавление амплитудной модуляции для набора гармоник 1
let __row2 = __tools.harms.add(300, 2, 0xff00ff, 1); //добавление набора гармоник 2
__row2.name = "row2"; //наименование набора гармоник 2
__row2.modulate(27, 2, 0x00ffff); //добавление амплитудной модуляции для набора гармоник 2
plot1.add(
{
color: 0x0000ff,
name: "ausp",
x: ausp.resolution,
y: ausp.data,
spec_tools: __tools.to_json()
}
); //отрисовка спектра вибрации и компонентов на координатной плоскости 1
plot2.add(
{
color: 0xff0000,
name: "spen",
x: spen.resolution,
y: spen.data
}
); //отрисовка спектра огибающей на координатной плоскости 2
gtl.results = __tools.to_json();
gtl.diagnostic.stop();
};