Использование функции C-Mex в S-функции M-файла в Simulink в режиме реального времени

#matlab #simulink #mex

#matlab #simulink #mex

Вопрос:

Я создал S-функцию M-файла уровня 2, которая внутренне вызывает функцию C MEX. Это отлично работает в обычном simulink, но возможно ли развернуть это на ПК speedgoat в режиме реального времени? У меня есть исходный код функции C-MEX.

Если да, то какие шаги необходимы?

У меня есть исходный C-исходный код для mex-файла (или, по сути, из обмена файлами Matlab).

Ответ №1:

Следуйте инструкциям здесь, чтобы создать S-функцию C-Mex. Это не полное руководство, поэтому, если у вас есть какие-либо сомнения, обратитесь к обширной документации Mathworks, касающейся S-функций C-Mex уровня 2.

Создание S-функции C-Mex

Обратите особое внимание на то, чтобы поместить

#define S_FUNCTION_NAME wrapsfcn

то же самое, что и именование вашего основного файла c / cpp.

Затем скомпилируйте S-функцию с помощью команды «mex» в окне командной строки Matlab. Вам потребуется установленный действующий компилятор (например, подойдет VS2015 Express). Затем создайте блок S-функции в вашей модели. Под именем S-функции введите имя, которое мы упоминали ранее, с учетом регистра.

Затем вы готовы к сборке и развертыванию.

Протестировано на моей машине speedgoat @ R2020b.