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

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


== Объявление функции ==
== Объявление функции ==
Строка 6: Строка 6:
var phase = gtl.create_pfc(
var phase = gtl.create_pfc(
     {
     {
       src0 : gtl.analog_inputs[0],
       src0: gtl.analog_inputs[0],
       src1 : gtl.analog_inputs[1],
       src1: gtl.analog_inputs[1],
       frequency : 1000,
       frequency: 1000,
       resolution : 1,
       resolution: 1,
       average : 1,
       average: 1,
       overlap : 0,
       overlap: 0,
       window : gtl.spec.rectangular,
       window: gtl.spec.rectangular,
       view: gtl.phase.deg,
       view: gtl.phase.deg,
       range: gtl.phase.positive
       range: gtl.phase.positive
Строка 20: Строка 20:


== Свойства (методы) ==
== Свойства (методы) ==
:<code style="color: purple>В разработке...</code>
== Свойства (методы) ==
:<code style="color: purple>phase.src0 = gtl.analog_inputs[0];</code> - источник первого сигнала;
:<code style="color: purple>phase.src1 = gtl.analog_inputs[1];</code> - источник второго сигнала;
:<code style="color: purple>phase.frequency = 1000;</code> - граничная частота, Гц;
:<code style="color: purple>phase.resolution = 1;</code> - частотное разрешение;
:<code style="color: purple>phase.average = 1;</code> - количество усреднений;
:<code style="color: purple>phase.overlap = 0;</code> - коэффициент перекрытия;
:<code style="color: purple>phase.window = gtl.spec.rectangular;</code> - тип оконной функции;
<pre>
rectangular;
cosin;
hann;
bartlett_hann;
hamming;
blackman;
blackman_harris;
flattop;
half_rect;
</pre>
:<code style="color: purple>phase.wiev = gtl.phase.deg;</code> - отображение фазы в градусах (радианах);
<pre>
deg;
rad;
</pre>
:<code style="color: purple>phase.range = gtl.phase.nagative;</code> - тип отображения фазы (отрицательные и положительные значения);
<pre>
nagative;
positive;
</pre>
:<code style="color: purple>phase.data;</code> - массив рассчитанных значений;


== Пример использования ==
== Пример использования ==
<pre>
<pre>
var apfc = gtl.add_apfc(
var phase = gtl.create_pfc(
     {
     {
      "src1" : gtl.analog_inputs[0],
        src0: gtl.analog_inputs[0],
      "src2" : gtl.analog_inputs[1],
        src1: gtl.analog_inputs[1],
      "name" : "coh",
        frequency: 1000,
      "color" : 0xff0000,
        resolution: 1,
      "visible" : true,
        average: 1,
      "freq" : 1000.0,
        overlap: 0,
      "window" : gtl.spec.rectangular,
        window: gtl.spec.rectangular,
      "resolution" : 1.0,
        view: gtl.phase.deg,
      "average" : 1,
        range: gtl.phase.positive
      "overlap" : 0,
      "afc" : gtl.apfc.coherence,
      "pfc" : gtl.apfc.deg
     }
     }
);
);


var apfc1 = gtl.add_apfc(
gtl.diagnostic.interval = phase.acq_time + 1;
    {
gtl.log.info("acq time", phase.acq_time);
      "src1" : gtl.analog_inputs[0],
 
      "src2" : gtl.analog_inputs[1],
let plot1 = gtl.plots.add("plot1");
      "name" : "mag",
 
      "color" : 0x0000ff,
function diagnose() {
      "visible" : true,
    plot1.add(
      "freq" : 1000.0,
        {
      "window" : gtl.spec.rectangular,
            color: 0x0000ff,
      "resolution" : 1.0,
            name: "delta_phase",
      "average" : 1,
            x: phase.resolution,
      "overlap" : 0,
            y: phase.data,
      "afc" : gtl.apfc.magnitude,
        }
      "pfc" : gtl.apfc.deg
    )
    }
);


gtl.diagnostic.interval = apfc.acq_time+0.1;
    gtl.diagnostic.stop();
}


function diagnose()
{
  gtl.log.info("afc", apfc.data[50]);
  gtl.log.info("pfc", apfc.phase[50]);
  gtl.log.info("acq_time", apfc.acq_time+0.1);
 
  gtl.diagnostic.stop();
};
</pre>
</pre>

Текущая версия от 00:12, 26 февраля 2025

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

Функция предназначена для анализа ФЧХ сигналов. Применяется для решения различных задач анализа параметров сигналов вибрации и определения разности фаз колебаний. Входными данными служат сигналы.

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

var phase = gtl.create_pfc(
    {
      src0: gtl.analog_inputs[0],
      src1: gtl.analog_inputs[1],
      frequency: 1000,
      resolution: 1,
      average: 1,
      overlap: 0,
      window: gtl.spec.rectangular,
      view: gtl.phase.deg,
      range: gtl.phase.positive
    }
);

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

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

phase.src0 = gtl.analog_inputs[0]; - источник первого сигнала;
phase.src1 = gtl.analog_inputs[1]; - источник второго сигнала;
phase.frequency = 1000; - граничная частота, Гц;
phase.resolution = 1; - частотное разрешение;
phase.average = 1; - количество усреднений;
phase.overlap = 0; - коэффициент перекрытия;
phase.window = gtl.spec.rectangular; - тип оконной функции;
rectangular;
cosin;
hann;
bartlett_hann;
hamming;
blackman;
blackman_harris;
flattop;
half_rect;
phase.wiev = gtl.phase.deg; - отображение фазы в градусах (радианах);
deg;
rad;
phase.range = gtl.phase.nagative; - тип отображения фазы (отрицательные и положительные значения);
nagative;
positive;
phase.data; - массив рассчитанных значений;

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

var phase = gtl.create_pfc(
    {
        src0: gtl.analog_inputs[0],
        src1: gtl.analog_inputs[1],
        frequency: 1000,
        resolution: 1,
        average: 1,
        overlap: 0,
        window: gtl.spec.rectangular,
        view: gtl.phase.deg,
        range: gtl.phase.positive
    }
);

gtl.diagnostic.interval = phase.acq_time + 1;
gtl.log.info("acq time", phase.acq_time);

let plot1 = gtl.plots.add("plot1");

function diagnose() {
    plot1.add(
        {
            color: 0x0000ff,
            name: "delta_phase",
            x: phase.resolution,
            y: phase.data,
        }
    )

    gtl.diagnostic.stop();
}