exponenta event banner

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

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

Чтобы разместить ADALM1000, следующие функции Data Acquisition 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 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-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])

См. также

Функции

Похожие темы

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