Simulink® Coder™ генерирует автономные C и Код С++ из моделей Simulink для развертывания в самых разных приложениях. Список функций DSP System Toolbox™, поддерживаемых Simulink Coder, см. в разделах Блоки, поддерживаемые для генерации кода C
Этот пример генерирует код С из ex_codegen_dsp
моделирует и создает исполняемый файл из сгенерированного кода. Можно запустить исполняемый файл внутри MATLAB® окружение. В сложение можно упаковать и перенести код в другую среду разработки, в которой не установлены продукты MATLAB и Simulink.
The ex_codegen_dsp
модель реализует простой адаптивный фильтр для удаления шума из сигнала с одновременной идентификацией фильтра, который характеризует содержимое шумовой частоты. Чтобы открыть эту модель, введите следующую команду в командной строке MATLAB:
open_system('ex_codegen_dsp')
Можно также создать модель с помощью шаблона DSP System. Для получения дополнительной информации смотрите Настройте окружение Simulink для моделей обработки сигналов.
Подготовьте модель к генерации кода путем определения настроек генерации кода в диалоговом окне Configuration Parameters. Выберите соответствующий решатель и цель генерации кода и проверьте строение модели на эффективность выполнения. Для получения дополнительной информации о каждом из этих шагов см. «Генерация кода С для модели» (Simulink Coder).
Симулируйте модель. На Time Scope показаны входы и фильтрованного сигналов.
На Array Plot показаны последние 32 веса фильтров, для которых фильтр LMS эффективно адаптировал и отфильтровал шум от сигнала.
К этим коэффициентам также можно обращаться с помощью следующей команды:
filter_wts(:,:,1201)
Прежде чем вы сгенерируете код из модели, необходимо сначала убедиться, что у вас есть разрешение на запись в текущую папку.
Чтобы сгенерировать код, вы должны внести следующие изменения:
На вкладке Modeling панели инструментов модели нажмите Model Settings. Откроется диалоговое окно Configuration Parameters. Перейдите на вкладку Code Generation, выберите параметр Generate code only и нажмите Apply.
В галерее Apps нажмите Simulink Coder. Появится вкладка C Code. Щелкните значок Generate Code ().
После того, как модель закончит генерировать код, появляется Code Generation Report, позволяющее вам просмотреть сгенерированный код. Обратите внимание, что процесс сборки создает новую подпапку с именем ex_codegen_dsp_grt_rtw
в текущей рабочей папке MATLAB. Эта подпапка содержит все файлы, созданные процессом генерации кода, включая файлы, которые содержат сгенерированный исходный код C. Для получения дополнительной информации о просмотре сгенерированного кода смотрите Сгенерировать код C для модели (Simulink Coder).
Чтобы создать исполняемый файл, необходимо настроить поддерживаемый компилятор C. Список компиляторов, поддерживаемых в текущем релизе, см. в Поддерживаемые и Совместимые компиляторы.
Чтобы настроить компилятор, запустите следующую команду в командной строке MATLAB:
mex –setup
После того, как ваш компилятор будет установлен, можно создать и запустить скомпилированный код. В настоящее время модель ex_codegen_dsp сконфигурирована, чтобы генерировать только код. Чтобы создать сгенерированный код, необходимо сначала внести следующие изменения:
На вкладке Modeling панели инструментов модели нажмите Model Settings. Откроется диалоговое окно Configuration Parameters. Перейдите на вкладку Code Generation, очистите параметр Generate code only и нажмите Apply.
На вкладке C Code панели инструментов модели щелкните значок Build ().
Генератор кода создает исполняемый файл и генерирует Code Generation Report. Генератор кода помещает исполняемый файл в рабочую папку. В Windows исполняемый файл ex_codegen_dsp.exe
. В Linux исполняемый файл ex_codegen_dsp
.
Чтобы запустить сгенерированный код, введите следующую команду в командной строке MATLAB:
!ex_codegen_dsp
Выполнение сгенерированного кода создает MAT-файл, который содержит те же переменные, что и сгенерированные путем симуляции модели. Переменные в MAT-файле называются с префиксом rt_
. После запуска сгенерированного кода можно загрузить переменные из MAT-файла, набрав следующую команду в подсказке MATLAB:
load ex_codegen_dsp.mat
Теперь можно сравнить переменные из сгенерированного кода с переменными из симуляции модели. Для доступа к последнему набору коэффициентов из сгенерированного кода введите следующее в подсказке MATLAB:
rt_filter_wts(:,:,1201)
Обратите внимание, что коэффициенты в filter_wts(:,:,1201)
и rt_filter_wts(:,:,1201)
соответствовать.
Для получения дополнительной информации о создании и запуске исполняемого файла смотрите Сгенерируйте код С для модели (Simulink Coder).
Если вы генерируете код из вашей модели Simulink, можно переместить код в другую среду разработки с помощью утилиты pack-and-go. Используйте эту утилиту, когда среда разработки не имеет продуктов MATLAB и Simulink.
Утилита pack-and-go использует инструменты для настройки процесса сборки после генерации кода и packNGo
(Simulink Coder) функция для поиска и пакетирования файлов для создания исполняемого образа. Файлы упакованы в сжатый файл, который можно переместить и распаковать с помощью стандартной утилиты zip.
Упаковать код можно либо с помощью пользовательского интерфейса, либо с помощью интерфейса командной строки. Интерфейс командной строки обеспечивает больший контроль над деталями упаковки кода. Для получения дополнительной информации о каждом из этих методов смотрите Перемещение кода в другую среду разработки (Simulink Coder).
Пример того, как упаковать код С и исполняемый файл, сгенерированный из этого примера, см. в разделе Перемещение кода, сгенерированного из модели Simulink, в другую среду разработки.