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

Материал из GTL-wiki
Перейти к навигации Перейти к поиску
 
(не показаны 2 промежуточные версии этого же участника)
Строка 21: Строка 21:
== Свойства (методы) ==
== Свойства (методы) ==
== Свойства (методы) ==
== Свойства (методы) ==
:<code style="color: purple>phase.src = gtl.analog_inputs[0];</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.frequency = 1000;</code> - граничная частота, Гц;
:<code style="color: purple>phase.resolution = 1;</code> - частотное разрешение;
:<code style="color: purple>phase.resolution = 1;</code> - частотное разрешение;
Строка 52: Строка 53:
== Пример использования ==
== Пример использования ==
<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();
}