Gtl.add spen: различия между версиями

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


== Объявление функции ==
== Объявление функции ==
:<code style="color: purple>var spen = gtl.add_spen( фильтр );</code>
== Объявление функции (альтернативный вариант)==
<pre style="color: purple>
<pre style="color: purple>
var spen = gtl.create_spen(
var spen = gtl.create_spen(
     {
     {
       "src" : gtl.analog_inputs[0],
       src: gtl.analog_inputs[0],
       "frequency" : 1000,
       frequency: 1000,
       "resolution" : 1,
       resolution: 1,
       "average" : 3,
       average: 3,
       "overlap" : .5,
       overlap: .5,
       "window" : gtl.spec.rectangular
       window: gtl.spec.rectangular,
      view: gtl.spec.db
     }
     }
);
);
Строка 21: Строка 19:


== Свойства (методы) ==
== Свойства (методы) ==
:<code style="color: purple>spen.src = gtl.analog_inputs[0];</code> - источник сигнала вибрации (для альтернативного варианта);
:<code style="color: purple>spen.src = gtl.analog_inputs[0];</code> - источник сигнала вибрации;
:<code style="color: purple>spen.name = "SPEN";</code> - присвоение имени спектра огибающей;
:<code style="color: purple>spen.color = 0x00ff0000;</code> - цвет линии спектра огибающей в формате HEX;
:<code style="color: purple>spen.frequency = 1000;</code> - граничная частота спектра огибающей, Гц;
:<code style="color: purple>spen.frequency = 1000;</code> - граничная частота спектра огибающей, Гц;
:<code style="color: purple>spen.lines = 1000;</code> - количество линий спектра огибающей;
:<code style="color: purple>spen.resolution = 1;</code> - частотное разрешение (frequency / lines), Гц/линия;
:<code style="color: purple>spen.resolution = 1;</code> - частотное разрешение (frequency / lines), Гц/линия;
:<code style="color: purple>spen.average = 3;</code> - количество отсчетов для усреднения;
:<code style="color: purple>spen.average = 3;</code> - количество отсчетов для усреднения;
:<code style="color: purple>spen.overlap = 0.5;</code> - коэффициент перекрытия;
:<code style="color: purple>spen.overlap = 0.5;</code> - коэффициент перекрытия;
:<code style="color: purple>spen.unit = gtl.spec.db;</code> - единица измерения амплитуды;
:<code style="color: purple>spen.window = gtl.spec.rectangular;</code> - тип окна;
<pre>
db;
unit;
rms;
</pre>
:<code style="color: purple>spen.window = gtl.spec.hann;</code> - тип окна;
<pre>
<pre>
rectangular;
rectangular;
Строка 47: Строка 36:
half_rect;
half_rect;
</pre>
</pre>
:<code style="color: purple>spen.smoothing_factor = 100;</code> - коэффициент сглаживания средней линии спектра огибающей;
:<code style="color: purple>spen.view = gtl.spec.db;</code> - единица измерения амплитуды;
:<code style="color: purple>spen.smoothed_line_color = 0xff004dff;</code> - цвет линии сглаживания (средней линии) в формате HEX;
<pre>
:<code style="color: purple>spen.peak_level =15;</code> - порог обнаружения гармоник в спектре огибающей (дБ или линейная величина);
db;
:<code style="color: purple>spen.harm_tolerance = 1;</code> - диапазон поиска гармоник +- Гц;
unit;
:<code style="color: purple>spen.data;</code> - массив значений амплитуд составляющих сигнала в спектре огибающей (используется в функции определения площади спектра огибающей);
rms;
:<code style="color: purple>spen.base;</code> - массив значений уровня средней линии в спектре огибающей;
</pre>
:<code style="color: purple>spen.env;</code> - массив значений линии огибающей (используется в расчете альтернативного коэффициента эксцесса);
:<code style="color: purple>spen.acq_time;</code> - время, необходимое для расчета спектра огибающей;
:<code style="color: purple>spen.acq_time;</code> - время, необходимое для расчета спектра огибающей;
 
:<code style="color: purple>spen.input_data;</code> - массив входных значений;
<pre style="color: purple>
:<code style="color: purple>spen.data;</code> - массив значений амплитуд составляющих сигнала в спектре огибающей;
spen.peaks; - массив параметров обнаруженных гармоник;
:<code style="color: purple>spen.real;</code> - массив действительных значений;
spen.peaks.lenght; - количество вложенных объектов (обнаруженных гармоник), шт;
:<code style="color: purple>spen.imag;</code> - массив мнимых значений;
spen.peaks[i].index - индекс гармоники;
spen.peaks[i].freq - частота гармоники, Гц;
spen.peaks[i].ampl - абсолютное значение амплитуды гармоники;
spen.peaks[i].level - уровень гармоники над средней линией;
i - индекс вложенного объекта;
</pre>


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


//построение спектра огибающей в узком диапазоне
//построение спектра огибающей в узком диапазоне
var spen = gtl.add_spen(filter_spen); //назначение переменной спектра огибающей
var spen = gtl.create_spen(
spen.name = "SPEN"; //присвоение имени спектра огибающей
    {
spen.color = 0x00ff0000; //цвет линии спектра огибающей
        src: filter_spen,
spen.frequency = 400; //граничная частота спектра огибающей
        frequency: 400,
spen.lines = 800; //разрешение спектра огибающей (количество линий)
        resolution: 0.25,
spen.average = 8; //количество усреднений
        average: 8,
spen.overlap = 0; //коэффициент перекрытия
        overlap: 0,
spen.unit = gtl.spec.db; //отображение в дБ
        window: gtl.spec.rectangular,
spen.window = gtl.spec.hann; //окно
        view: gtl.spec.db
spen.smoothing_factor = 100; //коэффициент сглаживания средней линии спектра
    }
spen.smoothed_line_color = 0xff004dff; //цвет средней линии
);
spen.peak_level = 10; //порог обнаружения гармоник
spen.harm_tolerance = 1; //диапазон поиска гармоник +/-


let plot = gtl.plots.add("Спектр огибающей");
gtl.diagnostic.interval = spen.acq_time;
gtl.diagnostic.interval = spen.acq_time;


function diagnose() {
function diagnose() {
 
    plot.add(
  //выводим параметры гармонических составляющих, обнаруженных в спектре огибающей 
        {
  for (let i = 0; i < ausp.peaks.length; i++) {
            color: 0x00ff0000,
    gtl.log.info("Индекс", spen.peaks[i].index);
            name: "SPEN",
    gtl.log.info("Частота", spen.peaks[i].freq);
            x: spen.resolution,
    gtl.log.info("Амплитуда", spen.peaks[i].ampl);
            y: spen.data
     gtl.log.info("Уровень", spen.peaks[i].level);
        }
  };
     ); //рисуем спектр огибающей на plot


   gtl.diagnostic.stop();
   gtl.diagnostic.stop();
};
};
</pre>
</pre>

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

Спектр огибающей вибрации в дБ

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

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

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

var spen = gtl.create_spen(
    {
      src: gtl.analog_inputs[0],
      frequency: 1000,
      resolution: 1,
      average: 3,
      overlap: .5,
      window: gtl.spec.rectangular,
      view: gtl.spec.db
    }
);

Свойства (методы)

spen.src = gtl.analog_inputs[0]; - источник сигнала вибрации;
spen.frequency = 1000; - граничная частота спектра огибающей, Гц;
spen.resolution = 1; - частотное разрешение (frequency / lines), Гц/линия;
spen.average = 3; - количество отсчетов для усреднения;
spen.overlap = 0.5; - коэффициент перекрытия;
spen.window = gtl.spec.rectangular; - тип окна;
rectangular;
cosin;
hann;
bartlett_hann;
hamming;
blackman;
blackman_harris;
flattop;
half_rect;
spen.view = gtl.spec.db; - единица измерения амплитуды;
db;
unit;
rms;
spen.acq_time; - время, необходимое для расчета спектра огибающей;
spen.input_data; - массив входных значений;
spen.data; - массив значений амплитуд составляющих сигнала в спектре огибающей;
spen.real; - массив действительных значений;
spen.imag; - массив мнимых значений;

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

//фильтрация участка сигнала для формирования спектра огибающей
var filter_spen = gtl.add_filter_iir(gtl.analog_inputs[0]]); //назначение переменной для фильтра
filter_spen.kind = gtl.filter_iir.butterworth; //тип окна
filter_spen.type = gtl.filter_iir.bandpass; //тип фильтра (полосовой)
filter_spen.order = 10; //порядок фильтра
filter_spen.frequency = 6400; //центральная частота полосового фильтра
filter_spen.width = 1482; //ширина полосы фильтра

//построение спектра огибающей в узком диапазоне
var spen = gtl.create_spen(
    {
        src: filter_spen,
        frequency: 400,
        resolution: 0.25,
        average: 8,
        overlap: 0,
        window: gtl.spec.rectangular,
        view: gtl.spec.db
    }
);

let plot = gtl.plots.add("Спектр огибающей");
gtl.diagnostic.interval = spen.acq_time;

function diagnose() {
    plot.add(
        {
            color: 0x00ff0000,
            name: "SPEN",
            x: spen.resolution,
            y: spen.data
        }
    ); //рисуем спектр огибающей на plot

  gtl.diagnostic.stop();
};