В этом примере показано, как сгенерировать данные с помощью Национального Инструментального устройства, доступного для MATLAB® с помощью основанного на сеансе интерфейса.
Чтобы обнаружить устройство, которое поддерживает подсистемы напряжения аналогового выхода, кликните по имени устройства в списке в Командном окне или получите доступ к устройству в массиве, возвращенном daq.getDevices команда. Этот пример использует Соотечественника Инструменты устройство NI 9263 CompactDAQ с ID 'cDAQ1Mod2', представляющим модуль в пазе 2 Шасси 'cDAQ1'.
devices = daq.getDevices
devices = Data acquisition devices: index Vendor Device ID Description ----- ------ --------- -------------------------------- 1 ni cDAQ1Mod1 National Instruments NI 9205 2 ni cDAQ1Mod2 National Instruments NI 9263 3 ni cDAQ1Mod3 National Instruments NI 9234 4 ni cDAQ1Mod4 National Instruments NI 9201 5 ni cDAQ1Mod5 National Instruments NI 9402 6 ni cDAQ1Mod6 National Instruments NI 9213 7 ni cDAQ1Mod7 National Instruments NI 9219 8 ni cDAQ1Mod8 National Instruments NI 9265 9 ni Dev1 National Instruments PCIe-6363 10 ni Dev2 National Instruments NI ELVIS II
devices(2)
ans =
ni: National Instruments NI 9263 (Device ID: 'cDAQ1Mod2')
Analog output subsystem 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'.
Используйте daq.createSession функция, чтобы создать сеанс, сопоставленный с поставщиком. Сеанс содержит информацию, описывающую оборудование, частоту развертки, длительность и другие свойства, сопоставленные с генерацией. Когда вы создаете сеанс, присваиваете его переменной.
s = daq.createSession('ni')
s = Data acquisition session using National Instruments hardware: Will run for 1 second (1000 scans) at 1000 scans/second. No channels have been added.
Используйте addAnalogOutputChannel функция, чтобы добавить два канала аналогового выхода от этого устройства до сеанса.
addAnalogOutputChannel(s,'cDAQ1Mod2',0,'Voltage'); addAnalogOutputChannel(s,'cDAQ1Mod2',1,'Voltage');
По умолчанию сеанс сконфигурирован для 1 000 сканирований/секунда. Измените частоту развертки, чтобы получить на 8 000 сканирований/секунда.
s.Rate = 8000
s =
Data acquisition session using National Instruments hardware:
No data queued. Will run at 8000 scans/second.
Number of channels: 2
index Type Device Channel MeasurementType Range Name
----- ---- --------- ------- --------------- ---------------- ----
1 ao cDAQ1Mod2 ao0 Voltage (Diff) -10 to +10 Volts
2 ao cDAQ1Mod2 ao1 Voltage (Diff) -10 to +10 Volts
Используйте outputSingleScan функция, чтобы сгенерировать одно сканирование. Данные являются матрицей 1 на n, где N соответствует количеству выходных каналов. Здесь вы выводите 2 В на каждом канале.
outputSingleValue = 2; outputSingleScan(s,[outputSingleValue outputSingleValue]);
Используйте queueOutputData функция, чтобы сгенерировать несколько сканирований. Данные должны быть матрицей M на n, где M является количеством сканирований, вы хотите, и N является количеством каналов на сеансе. Сгенерируйте 2 тестовых сигнала (синусоида на 1 Гц и пандус на 1 Гц) и выведите их на каналах на этом сеансе. График изображает данные, сгенерированные обоими каналами вместе. (Проверяйте, используете ли устройство вы поддержки одновременная выборка.)
outputSignal1 = sin(linspace(0,pi*2,s.Rate)'); outputSignal2 = linspace(-1,1,s.Rate)'; plot(outputSignal1); hold on; plot(outputSignal2,'-g'); xlabel('Time'); ylabel('Voltage'); legend('Analog Output 0', 'Analog Output 1'); queueOutputData(s,[outputSignal1 outputSignal2]);

Используйте startForeground функционируйте, чтобы запустить операцию аналогового выхода и выполнение блока MATLAB, пока все данные не будут сгенерированы.
s.startForeground;