Оцените передаточную функцию схемы с ADALM1000

Этот пример показывает, как использовать MATLAB, чтобы соединиться с модулем исходного измерения ADALM1000, сконфигурировать его, чтобы сгенерировать произвольный сигнал, сделать живые измерения и использовать измерения, чтобы вычислить передаточную функцию подключенной схемы.

Введение

В этом примере у вас есть схема R-C, состоящая из 1 КΩ резистор последовательно с 0.1 μF конденсатор. Схема R-C присоединена к устройству ADALM1000 с Каналом устройства, обеспечивающего стимул напряжения, состоящий из сигнала щебета. Вывод Канала A соединяется с резистором, и земля соединяется с конденсатором. Образуйте канал B устройства используется, чтобы измерить напряжение через конденсатор. Следующая принципиальная схема показывает настройку измерения.

Вы используете знание стимула и измеренной формы волны, чтобы оценить передаточную функцию схемы R-C и сравнить измеренный ответ на теоретический ответ схемы R-C.

Узнайте устройства, подключенные с вашей системой

daq.getDevices
ans = 
adi: Analog Devices Inc. ADALM1000 (Device ID: 'SMU1')
   Analog input subsystem 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 subsystem 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
   

Properties, Methods, Events


Создайте сеанс Используя устройство ADALM1000

ADISession = daq.createSession('adi')
ADISession = 
Data acquisition session using Analog Devices Inc. hardware:
   Will run for 1 second (100000 scans) at 100000 scans/second.
   No channels have been added.
   
Properties, Methods, Events

Добавьте каналы источника и измерения напряжения

Устройство ADALM1000 способно к определению источника и измерению напряжения одновременно на отдельных каналах. Настройте устройство в этом режиме.

К исходному напряжению добавьте канал аналогового выхода с устройством ID SMU1 и ID канала A, и установите его тип измерения на Напряжение.

addAnalogOutputChannel(ADISession,'smu1','a','Voltage');

Чтобы измерить напряжение, добавьте канал аналогового входа с устройством ID SMU1 и ID канала B, и установите его тип измерения на Напряжение.

addAnalogInputChannel(ADISession,'smu1','b','Voltage');

Подтвердите настройку сеанса.

ADISession
ADISession = 
Data acquisition session using Analog Devices Inc. hardware:
   No data queued.  Will run at 100000 scans/second.
   Number of channels: 2
      index Type Device Channel   MeasurementType        Range      Name
      ----- ---- ------ ------- ------------------- --------------- ----
      1     ao   SMU1   A       Voltage (SingleEnd) 0 to +5.0 Volts
      2     ai   SMU1   B       Voltage (SingleEnd) 0 to +5.0 Volts
   
Properties, Methods, Events

Задайте и визуализируйте форму волны щебета для стимулирования схемы

Используйте форму волны щебета амплитуды на 1 вольт, располагающейся в частоте от 20 Гц до 20 кГц для стимулирования схемы. Щебет происходит в период 1 секунды.

Fs = ADISession.Rate;
T = 0:1/Fs:1;
ExcitationSignal = chirp(T,20,1,20e3,'linear');

Добавьте смещение DC 2 В, чтобы гарантировать, что требуемое выходное напряжение устройства всегда выше 0 В.

Offset = 2;
ExcitationSignal = ExcitationSignal + Offset;

Визуализируйте сигнал во временном интервале.

figure(1)
plot(T, ExcitationSignal,'Blue')
xlim([0 0.15])
xlabel('Time (s)')
ylabel('Magnitude (V)')
title('Time domain plot of input signal')

Визуализируйте сигнал в частотном диапазоне.

figure(2)
spectrogram(ExcitationSignal,1024,1000,1024,Fs,'yaxis')
title('Frequency domain view of the the input signal')

Стимулируйте схему и одновременно измерьте частотную характеристику

Поставьте в очередь данные, которые будут отосланы устройством на первом канале и измерят напряжение через конденсатор на втором канале.

queueOutputData(ADISession,ExcitationSignal');
MeasuredSignal = startForeground(ADISession);

Постройте стимул и измеренные сигналы

figure(1)
hold on;
plot(T, MeasuredSignal,'Red');
xlim([0 0.15])
ylim([1 3])
title('Time domain plot of stimulus and measured signal')
legend('Excitation Signal','Measured Signal')

figure(3)
spectrogram(MeasuredSignal,1024,1000,1024,Fs,'yaxis')
title('Frequency domain view of the the measured signal')

Вычислите передаточную функцию схемы

Используйте сравнение измеренного сигнала и сигнала стимула вычислить передаточную функцию схемы R-C и построить ответ значения.

Удалите смещение DC перед обработкой.

MeasuredSignal = MeasuredSignal - mean(MeasuredSignal);
ExcitationSignal = ExcitationSignal - Offset;
[TFxy,Freq] = tfestimate(ExcitationSignal, MeasuredSignal,[],[],[],Fs);
Mag = abs(TFxy);

Сравните предполагаемую передаточную функцию с теоретическим ответом значения.

R = 1000;    % Resistance (ohms)
C = 0.1e-6;  % Capacitance (farads)
TFMagTheory = abs(1./(1 + (1i*2*pi*Freq*C*R)));

figure(4);
semilogy(Freq,TFMagTheory,Freq,Mag);
xlim([0 20e3])
xlabel('Frequency (Hz)')
ylim([0.05 1.1])
ylabel('Magnitude')
grid on
legend('Theoretical frequency response','Measured frequency response')
title({'Magnitude response of the theoretical'; 'and estimated transfer function'});

Очистите сеанс

clear ADIsession
close all