Можно реализовать S-функцию одним из пяти способов:
Уровень 1 S-функция MATLAB обеспечивает простой интерфейс MATLAB, чтобы взаимодействовать с небольшой частью API S-функции. Уровень S-функции 2 MATLAB® заменяет Уровень 1 S-функции MATLAB.
Уровень 2 S-функция MATLAB обеспечивает доступ к более обширному набору API S-функции и поддерживает генерацию кода. В большинстве случаев используйте Уровень 2 S-функция MATLAB, когда это необходимо, чтобы реализовать вашу S-функцию в MATLAB.
Рукописная S-функция MEX C обеспечивает большую часть гибкости программирования. Можно реализовать алгоритм как S-функцию MEX C или записать S-функцию обертки, чтобы вызвать существующий C, C++ или код Фортран. Запись новой S-функции требует знания API S-функции и, если вы хотите сгенерировать встроенный код для S-функции, Компилятор выходного языка (TLC).
Разработчик S-функции является графическим интерфейсом пользователя для программирования подмножества функциональности S-функции. Если вы плохо знакомы с записью C S-функции MEX, можно использовать Разработчика S-функции, чтобы сгенерировать новые S-функции или включить существующий код C or C++, не взаимодействуя с API S-функции. Разработчик S-функции может также сгенерировать файлы TLC для встраивания вашей S-функции во время генерации кода с продуктом Simulink® Coder™.
Legacy Code Tool является набором команд MATLAB, который помогает вам создать S-функцию, чтобы включить устаревший код C or C++. Как Разработчик S-функции, Legacy Code Tool может сгенерировать файл TLC, чтобы встроить вашу S-функцию во время генерации кода. Legacy Code Tool обеспечивает доступ к меньшему количеству методов в API S-функции, чем Разработчик S-функции или рукописная S-функция MEX C.
Следующие разделы описывают использование, функции и различия этих S-реализаций-функции. Последний раздел сравнивает использование рукописной S-функции MEX C, Разработчика S-функции и Legacy Code Tool, чтобы включить существующую функцию C в вашу модель Simulink.