В этом примере показано, как генерировать данные с помощью устройства 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, задайте частоту сканирования генерации, установив значение 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 Гц) и постройте их график. На графике показаны данные, генерируемые на обоих каналах для устройства, поддерживающего одновременную выборку.
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)