В следующих таблицах представлены функции, поддерживаемые различными типами S-функций. Первая таблица посвящена рукописным S-функциям. Во второй таблице сравниваются функции S-функций, автоматически сгенерированные S-Function Builder или Legacy Code Tool.
Функции написанных вручную S-функций
Функция | Level-2 S-функцию MATLAB | Рукописная функция MEX S на C |
---|---|---|
Типы данных | Поддерживает любой тип данных, поддерживаемый Simulink® программное обеспечение, включая фиксированные точки. | Поддерживает любой тип данных, поддерживаемый программным обеспечением Simulink, включая фиксированные точки. |
Числовые типы | Поддерживает реальные и сложные сигналы. | Поддерживает реальные и сложные сигналы. |
Поддержка системы координат | Поддерживает сигналы с системой координат и без системы координат. | Поддерживает сигналы с системой координат и без системы координат. |
Размерности портов | Поддерживает скалярные, 1-D и многомерные входные и выходные сигналы. | Поддерживает скалярные, 1-D и многомерные входные и выходные сигналы. |
S-функция API | Поддерживает больший набор S-функционального API. Список поддерживаемых методов см. в Level-2 MATLAB S-Function Callback Methods. | Поддерживает весь S-функциональный API. |
Поддержка генерации кода | Для генерации кода требуется рукописный файл. | Изначально поддерживает генерацию кода. Требуется рукописный файл, чтобы встроить S-функцию во время генерации кода. |
Режим Accelerator | Предоставляет опцию использовать файл TLC в режиме Accelerator вместо интерпретации. | Предоставляет опцию использовать TLC или Файл MEX в режиме Accelerator. |
Модель-ссылка | Поддерживает симуляции режима Normal и Accelerator при использовании в ссылочной модели. Требуется файл TLC для режима Accelerator. | Предоставляет опции наследования шага расчета и поддержки Режима normal mode при использовании в ссылочной модели. См. Модель-ссылку требования и ограничения |
Simulink. и Simulink. поддержка | Поддерживает Simulink.NumericType и Simulink.AliasType Классы (см. «Настройка пользовательских типов Данных»). | Поддерживает все эти классы (см. «Настройка пользовательских типов данных»). |
Входной и выходной сигналы шины | Не поддерживает входные или выходные сигналы шины. | Поддерживает невиртуальные входные или выходные сигналы шины. |
Настраиваемые и параметры во время выполнения | Поддерживает настраиваемые и параметры во время выполнения. | Поддерживает настраиваемые и параметры во время выполнения. |
Рабочие векторы | Поддерживает векторы DWork (см. Использование векторов DWork в Level-2 MATLAB S-Functions). | Поддерживает все типы рабочих векторов (см. Типы векторов DWork). |
Функции автоматически сгенерированных S-функций
Функция | Построитель S-функций | Legacy Code Tool |
---|---|---|
Типы данных | Поддерживает любой тип данных, поддерживаемый программным обеспечением Simulink, включая фиксированные точки. | Поддерживает все встроенные типы данных. Чтобы использовать тип данных с фиксированной точкой, необходимо задать тип данных как Simulink.NumericType . Вы не можете использовать тип с фиксированной точкой с неопределенным масштабированием. |
Числовые типы | Поддерживает реальные и сложные сигналы. | Поддерживает сложные сигналы только для встроенных типов данных. |
Поддержка системы координат | Поддерживает сигналы с системой координат и без системы координат. | Не поддерживает основанные на кадрах сигналы. |
Размерности портов | Поддерживает скалярные, 1-D и многомерные входные и выходные сигналы. | Поддерживает скалярные, 1-D и многомерные входные и выходные сигналы. |
S-функция API | Поддерживает создание пользовательских mdlInitializeSizes , mdlInitializeSampleTimes , mdlDerivatives , mdlUpdate , и mdlOutputs . Также позволяет автоматически генерировать mdlStart и mdlTerminate . | Поддерживает mdlInitializeSizes , mdlInitializeSampleTimes , mdlStart , mdlInitializeConditions , mdlOutputs , и mdlTerminate . |
Поддержка генерации кода | Изначально поддерживает генерацию кода. Кроме того, автоматически генерирует файл TLC для вставки S-функции во время генерации кода. | Изначально поддерживает генерацию кода, оптимизированную для встраиваемых систем. Кроме того, автоматически генерирует файл TLC, который поддерживает складывание выражения для вставки S-функции во время генерации кода. |
Режим Accelerator™ Simulink | Использует файл TLC в режиме Accelerator, если файл был сгенерирован. В противном случае используется файл MEX. | Предоставляет опцию использовать TLC или Файл MEX в режиме Accelerator. |
Модель-ссылка | Использует поведение по умолчанию при использовании в ссылочной модели. | Использует поведение по умолчанию при использовании в ссылочной модели. |
Simulink.AliasType и Simulink.NumericType | Не поддерживает эти классы. | Поддерживает Simulink.AliasType и Simulink.NumericType . |
Входной и выходной сигналы шины | Поддерживает входные и выходные сигналы шины. См. sfbuilder_bususage для примера. | Поддерживает входные и выходные сигналы шины. Вы должны задать Simulink.Bus объект в MATLAB® рабочая область, которая эквивалентна структуре входа или выхода, используемых в унаследованном коде. Не поддерживает параметры шины. |
Настраиваемые и параметры во время выполнения | Поддерживает настраиваемые параметры только во время симуляции. Поддерживает параметры во время выполнения. | Поддерживает настраиваемые и параметры во время выполнения. |
Рабочие векторы | Не предоставляет доступ к рабочим векторам. | Поддерживает векторы DWork с типом использования SS_DWORK_USED_AS_DWORK . Смотрите Типы векторов DWork для обсуждения различных типов использования векторов DWork. |
В следующей таблице обобщены основные ограничения различных типов S-функций.
Реализация | Ограничения |
---|---|
Level-2 S-функции MATLAB |
|
Рукописная функция MEX S на C | Поддерживает модель-ссылку с некоторыми ограничениями. См. S-Функции в ссылочных моделях. |
Построитель S-функций |
Примечание S-функции с одним входным и одним выходом портами могут иметь сигналы динамического размера |
Legacy Code Tool |
|