Чтобы вместить ADALM1000, следующие функции Data Acquisition Toolbox™ позволяют специфичные для поставщика опции аргумента:
В этом примере показано, как получить напряжение при измерении текущий на том же канале, чтобы вычислить нагрузочное сопротивление. Первая программа ADALM1000, чтобы предоставить постоянное 5-вольтовое предоставление загрузке, и затем измерить ток на том же канале устройства.
Узнайте свое устройство ADALM и просмотрите его информацию.
dev = daqlist("adi")
dev = 1×4 table DeviceID Description Model DeviceInfo ________ _______________________________ ___________ ________________________ "SMU1" "Analog Devices Inc. ADALM1000" "ADALM1000" [1×1 daq.adi.DeviceInfo]
dev{1,"DeviceInfo"}
adi: Analog Devices Inc. ADALM1000 (Device ID: 'SMU1') Analog input supports: 0 to +5.0 Volts,-0.20 to +0.20 A ranges Rates from 100000.0 to 100000.0 scans/sec 2 channels ('A','B') 'Voltage','Current' measurement types Analog output supports: 0 to +5.0 Volts,-0.20 to +0.20 A ranges Rates from 100000.0 to 100000.0 scans/sec 2 channels ('A','B') 'Voltage','Current' measurement types
Настройте Data Acquisition Toolbox DataAcquisition, чтобы управлять ADALM100.
d = daq("adi")
d = DataAcquisition using Analog Devices Inc. hardware: Running: 0 Rate: 100000 NumScansAvailable: 0 NumScansAcquired: 0 NumScansQueued: 0 NumScansOutputByHardware: 0 RateLimit: [100000 100000]
Добавьте канал аналогового выхода, чтобы получить напряжение от канала устройства A
.
addoutput(d,"SMU1","A","Voltage");
Добавьте канал аналогового входа, чтобы измериться текущий на том же канале устройства A
.
addinput(d,"SMU1","A","Current");
Просмотрите настройку канала.
d.Channels
ans = Index Type Device Channel Measurement Type Range Name _____ ____ ______ _______ _____________________ __________________ __________ 1 "ao" "SMU1" "A" "Voltage (SingleEnd)" "0 to +5.0 Volts" "SMU1_A" 2 "ai" "SMU1" "A" "Current" "-0.20 to +0.20 A" "SMU1_A_1"
Сгенерируйте выходное напряжение и измерьте ток.
V_load = 5; write(d,V_load); I_load = read(d,"OutputFormat","Matrix"); write(d,0); % Reset device output. R_load = V_load/I_load
R_load = 50.3005
Совет
ADALM1000 продолжает генерировать последнее значение, запрограммированное, пока вы не выпускаете оборудование. Когда вы будете закончены со своими сигналами, сбросьте устройство, чтобы вывести 0 вольт.
В этом примере показано, как сгенерировать 1 миллисекунду, импульс на 5 вольт, окруженный с обеих сторон 10 миллисекундами на уровне 0 вольт.
pdata = zeros(2100,1); % Column vector of 2100 samples. pdata (1001:1100) = 5; % Pulse in middle of vector. d = daq("adi"); addoutput(d,"SMU1","B","Voltage");
write(d,pdata)
В этом примере показано, как одновременно сгенерировать прямоугольную волну на 1 кГц на канале A, и синусоида на 100 Гц на канале B. Каждый выход длится в течение 5 секунд.
Пример требует двух каналов DataAcquisition для каналов устройства A и B, оба, когда выход образовывает канал для напряжения.
d = daq("adi"); addoutput(d,"SMU1","A","Voltage"); addoutput(d,"SMU1","B","Voltage");
Задайте эти две формы волны.
Sq = zeros(500000,1); % Column vectors of 500k scans. Sw = zeros(500000,1); % Define square wave: for r = 1:100:499900; Sq(r:r+49) = 5; % Set first 50 of each 100 samples to 5 v. end % Define sine wave: Sw = sin(linspace(1,500000,500000)'*2*pi/1000); Sw = Sw + 1; % Shift for positive voltage output
Просмотрите настройку канала.
d.Channels
ans = Index Type Device Channel Measurement Type Range Name _____ ____ ______ _______ _____________________ _________________ ________ 1 "ai" "SMU1" "A" "Voltage (SingleEnd)" "0 to +5.0 Volts" "SMU1_A" 2 "ai" "SMU1" "B" "Voltage (SingleEnd)" "0 to +5.0 Volts" "SMU1_B"
Запустите генерацию выходного сигнала. 500 000 сканов при 100 000 сканов в секунду длятся в течение 5 секунд.
write(d,[Sq Sw])