Сгенерируйте независимый исполняемый файл и взаимодействуйте с ним с помощью UDP

В этом примере показов, как сгенерировать независимый исполняемый файл для потоковой статистики с помощью MATLAB Coder™ и настроить сгенерированный исполняемый файл с помощью пользовательского интерфейса (UI), который работает в MATLAB(TM).

Введение

Большинство алгоритмов в DSP System Toolbox™ поддерживают генерацию кода C с помощью MATLAB Coder.

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

Для алгоритмов, которые настраиваются, желательно взаимодействовать с алгоритмом во время выполнения с помощью UI. Одним из способов достижения этого является отправка/получение информации через UDP.

Этот пример использует UDP для обмена между MATLAB и сгенерированным независимым исполняемым файлом во время выполнения. Отклонение, смещение и экспоненциальные значения взвешивания отправляются из MATLAB в исполняемый файл. Фактический случайный сигнал вместе со средним значением, RMS и оценками отклонения отправляются из независимого исполняемого файла обратно в MATLAB для графического изображения.

Пример архитектуры

Архитектура примера состоит из двух основных разделов:

  1. streamingStatsCodegenExampleApp: Функция MATLAB, которая создает пользовательский интерфейс (UI) для изменения отклонения, смещения и экспоненциальных значений взвешивания. Эта функция также строит графики данных, полученных от независимого исполняемого файла.

  2. HelperStreamingStatsEXEProcessing: Это функция, из которой генерируется независимый исполняемый файл. Эта функция генерирует случайный сигнал заданного смещения и отклонения и вычисляет среднее значение, RMS и оценки отклонения такого сигнала. Сигнал шума вместе со статистикой, которая вычисляется, передается по UDP для графического изображения (или любой дальнейшей обработки). В любое время во время симуляции он также может реагировать на изменения в ползунках пользовательского интерфейса MATLAB.

Генерация кода и создание исполняемого файла

Можно использовать MATLAB Coder, чтобы сгенерировать читаемый и автономный код С из кода алгоритма потоковой статистики. Поскольку используется UDP, существуют дополнительные зависимости для сгенерированного кода и исполняемого файла. Они доступны в директорию установки MATLAB.

Выполнение скрипта HelperStreamingStatsGenerateEXE вызовет MATLAB Coder, чтобы автоматически сгенерировать Код С и независимый исполняемый файл из кода алгоритма, присутствующего в HelperStreamingStatsEXEProcessing.

Выполнение примера

Как только вы сгенерировали исполняемый файл, запустите функцию streamingStatsCodegenExampleApp запуск исполняемого файла и пользовательского интерфейса (UI), предназначенного для взаимодействия с симуляцией. UI позволяет вам настройкам параметров, и результаты отражаются в симуляции мгновенно. Для примера перемещение ползунка для 'Отклонения' во время симуляции влияет на сигнал шума наряду с оценками RMS и отклонения, которые построены.

На пользовательском интерфейсе также есть две кнопки - кнопка 'Pause Simulation' будет удерживать симуляцию, пока вы не нажмете на нее снова. Симуляция может быть завершена нажатием на кнопку 'Stop simulation'.

Пронизывание

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

Ручной вызов исполняемого файла

Вместо использования system команда запуска исполняемого файла из MATLAB, исполняемый файл может быть запущен вручную из терминала или командной строки. Поскольку этот исполняемый файл включает вызовы UDP, необходимо, чтобы dll были на пути для правильного поведения. Дополнительные сведения см. в разделе «Как запустить сгенерированный исполняемый файл за пределами MATLAB».