Спектр Анализатор

В этом примере показано, как использовать Simulink® Real-Time™ в качестве спектра в реальном времени анализатор. Пример использует модель slrtex_dsp_spectrum. Исследовать разработку и реализацию ключевого блока, 'Спектр Анализатор', щелкают правой кнопкой блок и выбирают Mask> Look Under Mask.

Пример отображает Быстрое преобразование Фурье (FFT) входного сигнала с помощью буфера 512 выборок. Входной сигнал является суммой двух синусоид, один с амплитудой 0,6 и частотой 250 Гц, другим с амплитудой 0,25 и частотой 600 Гц. Получившийся спектр отображен в Инспекторе Данных моделирования и на блоке Simulink Scope.

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

Чтобы запустить пример, вы, должно быть, установили DSP System Toolbox™ на своем компьютере разработчика и запустили целевой компьютер.

Проверяйте связь между разработкой и целевыми компьютерами

Используйте 'slrtpingtarget', чтобы протестировать связь между разработкой и целевыми компьютерами.

if ~strcmp(slrtpingtarget,"success")
  disp('No connection to target computer')
else
    disp('Successful connection to target computer')
end
Successful connection to target computer

Открытый, сборка и модель загрузки к целевому компьютеру

Откройте модель slrtex_dsp_spectrum. При настройках опции Simulink Real-Time параметра конфигурации модели системный конечный файл был установлен в slrt.tlc. Следовательно, создавание модели создаст исполняемое изображение, slrtex_dsp_spectrum.mldatx, который может быть запущен на компьютере, загруженном с Ядром Simulink Real-Time.

open_system(fullfile(matlabroot,'toolbox','slrt','slrtexamples','slrtex_dsp_spectrum'));

Создайте модель и загрузите изображение, slrtex_dsp_spectrum.mldatx, к целевому компьютеру.

  • Сконфигурируйте для немногословной сборки.

  • Сборка и приложение загрузки.

set_param('slrtex_dsp_spectrum','RTWVerbose','off');
rtwbuild('slrtex_dsp_spectrum');
### Starting Simulink Real-Time build procedure for model: slrtex_dsp_spectrum
Warning: This model contains blocks that do not handle sample time
changes at runtime. To avoid incorrect results, only change
the sample time in the original model, then rebuild the model. 
### Successful completion of build procedure for model: slrtex_dsp_spectrum
### Created MLDATX ..\slrtex_dsp_spectrum.mldatx

Запустите модель и отобразите данные о спектре на графике

Создайте переменную MATLAB®, tg, содержа целевой объект Simulink Real-Time. Этот объект позволяет вам связываться с и управлять целевым компьютером. После запуска модели спектр будет отображен в Инспекторе Данных моделирования.

  • Создайте объект Simulink Real-Time

  • Запустите выполнение модели

  • Ожидайте SDI, который будет обновлен

  • Просмотрите график спектра

tg = slrt('TargetPC1');
load(tg,'slrtex_dsp_spectrum');
start(tg);
pause(1);
tg.StopTime = 30;
disp('Note: Model will continue to run for 30 seconds. To stop execution, type tg.stop')
Note: Model will continue to run for 30 seconds. To stop execution, type tg.stop

Отобразите сигналы в Инспекторе Данных моделирования

Чтобы просмотреть нанесенные на график данные сигнала, откройте Инспектора Данных моделирования.

Simulink.sdi.view

Это изображение показывает представление в качестве примера об Осциллографе Simulink.

Это изображение показывает представление в качестве примера об Инспекторе Данных моделирования.

Изменение характеристик сигнала

Можно изменить амплитуду и частоту генераторов синусоиды, в то время как приложение запускается. Для этого сначала вызовите getparamid с целевым объектом, именем блока и названием параметра, чтобы получить объект параметра. Затем вызовите setparam с целевым объектом, объектом параметра и новым значением.

s1amp = getparamid(tg, 'Sine 1', 'Amplitude');

setparam(tg, s1amp, 0.3);

Повторным использованием getparamid и setparam команды. можно контролировать и варьироваться входные сигналы в режиме реального времени.

s1fre = getparamid(tg, 'Sine 1', 'Frequency');

setparam(tg, s1fre, 300);

s2amp = getparamid(tg, 'Sine 2', 'Amplitude');

setparam(tg, s2amp, 0.55);

s2fre = getparamid(tg, 'Sine 2', 'Frequency');

setparam(tg, s2fre, 500);