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