exponenta event banner

Генерация и измерение сигналов с помощью аналоговых устройств ADALM1000

Обновленный синтаксис функции

Чтобы приспособить ADALM1000, следующий Сбор данных, функции Toolbox™ позволяют определенные для продавца варианты аргумента:

  • daq и daqlist принять аргумент поставщика "adi".

  • addinput и addoutput принять аргумент имени устройства 'SMU1' (единица измерения источника) и аргументы идентификатора канала 'A' и 'B' соответствует меткам канала на модуле ADALM1000.

Напряжение источника и измерить ток

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

Запустите генерацию выходного сигнала. Сканирование 500000 со скоростью 100000 в секунду длится 5 секунд.

write(d,[Sq Sw])

См. также

Функции

Связанные темы

Внешние веб-сайты