Gtl.create spec tools

Материал из GTL-wiki
Перейти к навигации Перейти к поиску

Краткое описание

Функция предназначена для создания и вывода компонентов (маркеров гармоник, базовой линии, набора расчетных частот) на координатную плоскость спектров вибрации.

Объявление функции

Для создания компонентов используется запись:

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 __tools = gtl.create_spec_tools(
color = 0xff00ff; - цвет линии графика в формате HEX;
name = "series1"; - наименование графика;
x = []; - значение цены деления оси X или массив значений координаты X;
y = []; - значение цены деления оси Y или массив значений координаты Y;

Пример использования

//отрисовка спектров и компонентов на координатных плоскостях
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();
};