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

Материал из GTL-wiki
Перейти к навигации Перейти к поиску
 
(не показано 19 промежуточных версий этого же участника)
Строка 1: Строка 1:
== Краткое описание ==
== Краткое описание ==
Функция предназначена для вывода компонентов (маркеров гармоник, базовой линии, расчетных частот) на спектр вибрации.
Функция предназначена для создания и вывода компонентов (маркеров гармоник, базовой линии, набора расчетных частот) на координатную плоскость спектров вибрации.


== Объявление функции ==
== Объявление функции ==
Строка 26: Строка 26:
</pre>
</pre>


== Добавление набора гармоник (линий) ==
== Добавление набора гармоник ==
Для создания набора гармоник используется запись:
Для создания набора гармоник используется запись:
<pre style="color: purple>
<pre style="color: purple>
Строка 44: Строка 44:


== Добавление линий амплитудной модуляции ==
== Добавление линий амплитудной модуляции ==
Для создания набора амплитудной модуляции используется запись:
Для создания линий амплитудной модуляции используется запись:
<pre style="color: purple>
<pre style="color: purple>
__row1.modulate(
__row1.modulate(
Строка 64: Строка 64:
</pre>
</pre>


== Отрисовка спектра и компонентов на координатной плоскости ==
Для отрисовки спектра и компонентов на одной координатной плоскости используется функция отрисовки с дополнительным ключем "spec_tools", в который записывается набор компонентов (предварительно используется метод to_json()):
<pre style="color: purple>
plot1.add(
  {
    color: 0x0000ff,
    name: "ausp",
    x: ausp.resolution,
    y: ausp.data,
    spec_tools: __tools.to_json()
  }
);
</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>


== Пример использования ==
== Пример использования ==
Строка 108: Строка 138:


function diagnose()
function diagnose()
{
{
 
   let __tools = gtl.create_spec_tools(
   let spec_tools_1 = gtl.create_spec_tools(
     {
     {
       data : ausp.data,
       data: ausp.data,
       df : ausp.resolution,
       df: ausp.resolution,
       base : {
       base: {
         factor: 100,
         factor: 100,
         visible: true,
         visible: true,
Строка 130: Строка 159:
   ); //создание компонентов
   ); //создание компонентов


   let row1 = spec_tools_1.harms.add(
   let __row1 = __tools.harms.add(
     {
     {
       frequency: 50,
       frequency: 50,
Строка 140: Строка 169:
   ); //добавление набора гармоник 1
   ); //добавление набора гармоник 1


   row1.name = "row1"; //наименование набора гармоник 1
   __row1.name = "row1"; //наименование набора гармоник 1


   row1.modulate(
   __row1.modulate(
     {
     {
       frequency:5,
       frequency: 5,
       count: 2,
       count: 2,
       color: 0x00ff00,
       color: 0x00ff00,
Строка 151: Строка 180:
   ); //добавление амплитудной модуляции для набора гармоник 1
   ); //добавление амплитудной модуляции для набора гармоник 1
    
    
   let row2 = spec_tools_1.harms.add(300, 2, 0xff00ff, 1); //добавление набора гармоник 2
   let __row2 = __tools.harms.add(300, 2, 0xff00ff, 1); //добавление набора гармоник 2
   row2.name = "row2"; //наименование набора гармоник 2
   __row2.name = "row2"; //наименование набора гармоник 2
   row2.modulate(27, 2, 0x00ffff); //добавление амплитудной модуляции для набора гармоник 2
   __row2.modulate(27, 2, 0x00ffff); //добавление амплитудной модуляции для набора гармоник 2
    
    
   plot1.add(
   plot1.add(
     {
     {
    color: 0x0000ff,
      color: 0x0000ff,
    name: "ausp",
      name: "ausp",
    x: ausp.resolution,
      x: ausp.resolution,
    y: ausp.data,
      y: ausp.data,
    spec_tools: spec_tools_1.to_json()
      spec_tools: __tools.to_json()
     }
     }
   ); //отрисовка спектра вибрации и компонентов на координатной плоскости 1
   ); //отрисовка спектра вибрации и компонентов на координатной плоскости 1
Строка 174: Строка 203:
   ); //отрисовка спектра огибающей на координатной плоскости 2
   ); //отрисовка спектра огибающей на координатной плоскости 2


   gtl.results = spec_tools_1.to_json();
   gtl.results = __tools.to_json();
   gtl.diagnostic.stop();
   gtl.diagnostic.stop();
};
};
</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();
};