Сгенерируйте сигналы напряжения с помощью NI-устройств

В этом примере показано, как сгенерировать данные с помощью устройства National Instruments ™.

Обнаружение устройств, которые могут выводить напряжение

Чтобы обнаружить устройство, которое поддерживает аналоговые выходы, получите доступ к устройству в таблице, возвращенной daqlist команда. Этот пример использует модуль NI 9263 в National Instruments ™ ® CompactDAQ Chassis NI cDAQ-9178. Это модуль 2 в шасси.

d = daqlist("ni")
d =

  12×4 table

     DeviceID                 Description                    Model             DeviceInfo     
    ___________    __________________________________    _____________    ____________________

    "cDAQ1Mod1"    "National Instruments NI 9205"        "NI 9205"        [1×1 daq.DeviceInfo]
    "cDAQ1Mod2"    "National Instruments NI 9263"        "NI 9263"        [1×1 daq.DeviceInfo]
    "cDAQ1Mod3"    "National Instruments NI 9234"        "NI 9234"        [1×1 daq.DeviceInfo]
    "cDAQ1Mod4"    "National Instruments NI 9201"        "NI 9201"        [1×1 daq.DeviceInfo]
    "cDAQ1Mod5"    "National Instruments NI 9402"        "NI 9402"        [1×1 daq.DeviceInfo]
    "cDAQ1Mod6"    "National Instruments NI 9213"        "NI 9213"        [1×1 daq.DeviceInfo]
    "cDAQ1Mod7"    "National Instruments NI 9219"        "NI 9219"        [1×1 daq.DeviceInfo]
    "cDAQ1Mod8"    "National Instruments NI 9265"        "NI 9265"        [1×1 daq.DeviceInfo]
    "Dev1"         "National Instruments PCIe-6363"      "PCIe-6363"      [1×1 daq.DeviceInfo]
    "Dev2"         "National Instruments NI ELVIS II"    "NI ELVIS II"    [1×1 daq.DeviceInfo]
    "Dev3"         "National Instruments PCIe-6363"      "PCIe-6363"      [1×1 daq.DeviceInfo]
    "Dev4"         "National Instruments PCIe-6363"      "PCIe-6363"      [1×1 daq.DeviceInfo]

deviceInfo = d{2, "DeviceInfo"}
deviceInfo = 

ni: National Instruments NI 9263 (Device ID: 'cDAQ1Mod2')
   Analog output supports:
      -10 to +10 Volts range
      Rates from 0.6 to 100000.0 scans/sec
      4 channels ('ao0','ao1','ao2','ao3')
      'Voltage' measurement type
   
This module is in slot 2 of the 'cDAQ-9178' chassis with the name 'cDAQ1'.


Создайте DataAcquisition и добавьте аналоговые выходные каналы

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

dq = daq("ni");
dq.Rate = 8000;
addoutput(dq, "cDAQ1Mod2", "ao0", "Voltage");
addoutput(dq, "cDAQ1Mod2", "ao1", "Voltage");

Сгенерируйте один скан

Использование write чтобы сгенерировать один скан (по 2 В на каждом канале). Данные выходы скана являются матрицей 1-by-N, где N соответствует количеству каналов выхода.

output = 2;
write(dq,[output output]);

Создайте и постройте график выходных данных

Сгенерируйте два сигнала выхода (1 Гц синусоиды и 1 Гц ramp) и постройте их график. График изображает данные, сгенерированные по обоим каналам для устройства, которое поддерживает одновременную выборку.

n = dq.Rate;
outputSignal1 = sin(linspace(0,2*pi,n)');
outputSignal2 = linspace(-1,1,n)';
outputSignal = [outputSignal1 outputSignal2];
plot(1:n, outputSignal);
ylabel("Voltage (V)");
legend("Analog Output 0", "Analog Output 1");

Запись данных

Использование write чтобы сгенерировать выходные формы волны.

write(dq, outputSignal)