В этом примере показано, как использовать 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);