В этом примере показано, как использовать функциональный преобразователь, чтобы сгенерировать развернутую форму волны синусоиды и также как получить его с помощью осциллографа.
Для полного списка поддерживаемого оборудования посетите страницу продукта Instrument Control Toolbox.
Этот пример был протестирован с помощью функционального преобразователя Keysight Technologies® 33522B и осциллографа Tektronix® TDS 1002. Адреса GPIB функционального преобразователя и осциллографа являются GPIB0:: 5:: INSTR и GPIB0:: 11:: INSTR, соответственно. Функциональный преобразователь сконфигурирован, чтобы сгенерировать 2 В p-p развернутая синусоида (20 - 200 Гц) со смещением 1 В каждые 100 мс на канале 1. Осциллограф сконфигурирован, чтобы получить форму волны на канале 1.
Сконфигурируйте осциллограф с помощью Быстрого Управления (осциллограф).
scopeResource = "GPIB0::11::INSTR"; ch = "CH1";
Создайте осциллограф, возражают и открывают связь с инструментом.
scope = oscilloscope; scope.Resource = scopeResource; connect(scope)
autoSetup
функция автоматически настраивает каналы, вертикальные, горизонтальные, и инициировала средства управления на основе связанных сигналов.
autoSetup(scope)
Включите и сконфигурируйте канал 1.
enableChannel(scope,ch); configureChannel(scope,ch,"VerticalCoupling","DC")
Сконфигурируйте канал, чтобы отобразиться в 1 VOLTS/DIV.
configureChannel(scope,ch,"VerticalRange",1)
Установите тестовое затухание на 1x (опции включают 1, 10, 100).
configureChannel(scope,ch,"ProbeAttenuation",1)
The AcquisitionTime
свойство представляет длительность формы волны в секундах. Установка AcquisitionTime
изменит SEC/DIV
управляйте соответственно. AcquisitionTime
обычно соответствует 10 делениям (или один экран данных).
scope.AcquisitionTime = 0.25; scope.TriggerLevel = 2.56; scope.TriggerSource = ch; scope.TriggerSlope = "rising"; scope.TriggerMode = "normal"; disp(scope)
oscilloscope: TEKTRONIX,TDS 1002 Instrument Settings: AcquisitionStartDelay: 'Not supported' AcquisitionTime: 0.25 s ChannelNames: 'CH1', 'CH2', 'MATH', 'REFA', 'REFB' ChannelsEnabled: 'CH1' SingleSweepMode: 'off' Timeout: 10 s WaveformLength: 2500 Trigger Settings: TriggerLevel: 2.56 TriggerSource: 'CH1' TriggerSlope: 'rising' TriggerMode: 'normal' Communication Properties: Status: 'open' Resource: 'GPIB0::11::INSTR' lists of methods
Сконфигурируйте функциональный преобразователь, чтобы сгенерировать форму волны развертки с помощью объекта VISA-GPIB.
fgenResource = "GPIB0::5::INSTR";
vfgen = visadev(fgenResource)
vfgen = GPIB with properties: ResourceName: "GPIB0::5::INSTR" Alias: "FGEN_2CH" Vendor: "Agilent Technologies" Model: "33522B" BoardIndex: 0 PrimaryAddress: 5 SecondaryAddress: 65535 NumBytesAvailable: 0 Show all properties, functions
Сконфигурируйте амплитуду развертки и возместите.
writeline(vfgen,"SOUR1:VOLT +1.0") writeline(vfgen,"SOUR1:VOLT:OFFS +1.0")
Включите режим развертки.
writeline(vfgen,"SOUR1:FREQ:MODE SWE"); writeline(vfgen,"SOUR1:SWE:STAT ON"); writeline(vfgen,"SOUR1:SWE:SPAC LIN");
Сконфигурируйте частоты остановки и запуск.
fstart = 20; fstop = 200; writeline(vfgen,compose("SOUR1:FREQ:STAR %d",fstart)); writeline(vfgen,compose("SOUR1:FREQ:STOP %d",fstop));
Сконфигурируйте время, потраченное, чтобы развернуться от частоты запуска до частоты остановки как sweepTime
.
sweepTime = 0.1;
holdTime = 0;
returnTime = 0;
writeline(vfgen,compose("SOUR1:SWE:TIME %0.1f",sweepTime));
Сконфигурируйте время, чтобы остаться на частоте остановки как holdTime
.
writeline(vfgen,compose("SOUR1:SWE:HTIME %0.1f",holdTime));
Сконфигурируйте время, требуемое возвратиться к частоте запуска как returnTime
.
writeline(vfgen,compose("SOUR1:SWE:RTIME %0.1f",returnTime));
Сконфигурируйте триггер.
writeline(vfgen,"TRIG1:SLOP POS"); writeline(vfgen,"TRIG1:SOUR IMM");
Получите данные о форме волны с помощью осциллографа. AcquisitionTime
свойство представляет длительность формы волны в секундах. WaveformLength
свойство представляет число точек в данных о форме волны.
y = readWaveform(scope); t = linspace(0,scope.AcquisitionTime,scope.WaveformLength);
plot(t,y) ylim([0.5,3.5]); title("Acquired waveform (sweep)") xlabel("Time (s)"); ylabel("Voltage (V)");
Очистите рабочую область, когда вы будете закончены.
disconnect(scope) clear scope vfgen