Gtl.create spec tools: различия между версиями

Материал из GTL-wiki
Перейти к навигации Перейти к поиску
 
(не показано 13 промежуточных версий этого же участника)
Строка 65: Строка 65:


== Отрисовка спектра и компонентов на координатной плоскости ==
== Отрисовка спектра и компонентов на координатной плоскости ==
Для отрисовки спектра и компонентов используется функция отрисовки с дополнительных ключем "spec_tools", в который записывается набор компонентов с методом "to_json()":
Для отрисовки спектра и компонентов на одной координатной плоскости используется функция отрисовки с дополнительным ключем "spec_tools", в который записывается набор компонентов (предварительно используется метод to_json()):
<pre style="color: purple>
<pre style="color: purple>
plot1.add(
plot1.add(
Строка 76: Строка 76:
   }
   }
);
);
</pre>
== Получение результатов ==
Для получения параметров спектра и свойств обнаруженных гармонических составляющих необходимо предварительно применить метод to_json():
<pre style="color: purple>
let __result = __tools.to_json();
</pre>
:<code style="color: purple>__result.data;</code> - массив значений амплитуд составляющих спектра;
:<code style="color: purple>__result.base.data;</code> - массив значений средней линии;
:<code style="color: purple>__result.peaks.data;</code> - массив обнаруженных гармоник;
:<code style="color: purple>__result.peaks.data[i];</code> - обращение к i-й обнаруженной гармонике и ее свойствам;
<pre>
freq - частота обнаруженной гармоники;
ampl - амплитудное значение обнаруженной  гармоники;
level - уровень обнаруженной гармоники над средней линией;
index - индекс обнаруженной гармоники;
</pre>
:<code style="color: purple>__result.harms.rows;</code> - массив построенных гармонических рядов;
:<code style="color: purple>__result.harms.rows[i];</code> - обращение к i-му гармоническому ряду;
:<code style="color: purple>__result.harms.rows[i].harms;</code> - массив гармоник i-го гармонического ряда;
:<code style="color: purple>__result.harms.rows[i].harms[j];</code> - обращение к j-й гармонике и ее свойствам i-го гармонического ряда;
<pre>
freq - частота гармоники указанного гармонического ряда;
ampl - амплитудное значение гармоники указанного гармонического ряда;
base - уровень средней линии под гармоникой указанного гармонического ряда;
level - уровень гармоники над средней линией указанного гармонического ряда;
is_present (true / false) - обнаружение гармоники указанного гармонического ряда;
</pre>
</pre>



Текущая версия от 06:53, 12 декабря 2024

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

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

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

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

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();
};