Следующие таблицы дают обзоры функций, поддерживавших различными типами S-функций. Первая таблица фокусируется на рукописных S-функциях. Вторая таблица сравнивает функции S-функций, автоматически сгенерированных Разработчиком S-функции или Legacy Code Tool.
Функции рукописных S-функций
Функция | Уровень 1 S-функция MATLAB | Уровень 2 S-функция MATLAB | Рукописная S-функция MEX C |
---|---|---|---|
Типы данных | Поддержки сигнализируют с типом данных double . | Поддержки любой тип данных, поддержанный программным обеспечением Simulink®, включая фиксированные точки. | Поддержки любой тип данных, поддержанный программным обеспечением Simulink, включая фиксированные точки. |
Числовые типы | Поддержки только действительные сигналы. | Поддерживает действительные и комплексные сигналы. | Поддерживает действительные и комплексные сигналы. |
Структурируйте поддержку | Не поддерживает основанные на кадре сигналы. | Поддержки структурированные и сигналы без рамки. | Поддержки структурированные и сигналы без рамки. |
Размерности порта | Вводы и выводы вектора поддержек. Не поддерживает несколько портов ввода и вывода. | Скаляр поддержек, 1D, и многомерные сигналы ввода и вывода. | Скаляр поддержек, 1D, и многомерные сигналы ввода и вывода. |
API S-функции | Поддержки только mdlInitializeSizes , mdlDerivatives , mdlUpdate , mdlOutputs , mdlGetTimeOfNextVarHit и mdlTerminate . | Поддерживает больший набор API S-функции. Смотрите Уровень 2 Методы Обратного вызова S-функции MATLAB для списка поддерживаемых методов. | Поддерживает целый API S-функции. |
Поддержка генерации кода | Не поддерживает генерацию кода. | Требует, чтобы рукописный файл TLC сгенерировал код. | Исходно генерация кода поддержек. Требует, чтобы рукописный файл TLC встроил S-функцию во время генерации кода. |
Режим Accelerator Simulink | Выполнения interpretively и, поэтому, не ускоряются. | Предоставляет возможность использовать файл TLC в Режиме Accelerator, вместо того, чтобы запустить interpretively. | Предоставляет возможность использовать TLC или файл MEX в Режиме Accelerator. |
Модель - ссылка | Не может использоваться в модели, на которую ссылаются. | Поддерживает Нормальный и моделирования Режима Accelerator, когда используется в модели, на которую ссылаются. Требует файла TLC для Режима Accelerator. | Предоставляет возможности для наследования частоты дискретизации и поддержки Режима normal mode, когда используется в модели, на которую ссылаются. Смотрите Требования Модели - ссылки и Ограничения |
Simulink. и Simulink. Поддержка NumericType | Не поддерживает эти классы. | Поддержки Simulink.NumericType и классы Simulink.AliasType (см., Конфигурируют Пользовательские типы данных). | Поддержки все эти классы (см., Конфигурируют Пользовательские типы данных). |
Соедините шиной сигналы ввода и вывода | Не поддерживает сигналы ввода или вывода шины. | Не поддерживает сигналы ввода или вывода шины. | Поддерживает невиртуальные сигналы ввода или вывода шины. |
Настраиваемые параметры и параметры периода выполнения | Настраиваемые параметры поддержек во время моделирования. Не поддерживает параметры периода выполнения. | Настраиваемые параметры поддержек и параметры периода выполнения. | Настраиваемые параметры поддержек и параметры периода выполнения. |
Векторы работы | Не поддерживает работают векторы. | Векторы DWork поддержек (см. Используя Векторы DWork на Уровне 2 S-функции MATLAB). | Поддержки все работают типы векторов (см. Типы Векторов DWork). |
Функции автоматически сгенерированных S-функций
Функция | Разработчик S-функции | Legacy Code Tool |
---|---|---|
Типы данных | Поддержки любой тип данных, поддержанный программным обеспечением Simulink, включая фиксированные точки. | Поддержки все встроенные типы данных. Чтобы использовать тип данных фиксированной точки, необходимо задать тип данных как Simulink.NumericType . Вы не можете использовать фиксированную точку с незаданным масштабированием. |
Числовые типы | Поддерживает действительные и комплексные сигналы. | Комплекс поддержек сигнализирует только для встроенных типов данных. |
Структурируйте поддержку | Поддержки структурированные и сигналы без рамки. | Не поддерживает основанные на кадре сигналы. |
Размерности порта | Скаляр поддержек, 1D, и многомерные сигналы ввода и вывода. | Скаляр поддержек, 1D, и многомерные сигналы ввода и вывода. |
API S-функции | Создание поддержек пользовательского mdlInitializeSizes , mdlInitializeSampleTimes , mdlDerivatives , mdlUpdate и mdlOutputs . Также допускает автоматическую генерацию mdlStart и mdlTerminate . | Поддержки mdlInitializeSizes , mdlInitializeSampleTimes , mdlStart , mdlInitializeConditions , mdlOutputs и mdlTerminate . |
Поддержка генерации кода | Исходно генерация кода поддержек. Кроме того, автоматически генерирует файл TLC для встраивания S-функции во время генерации кода. | Исходно генерация кода поддержек оптимизирована для встраиваемых систем. Кроме того, автоматически генерирует файл TLC, который поддерживает выражение, сворачивающееся для встраивания S-функции во время генерации кода. |
Режим Simulink Accelerator™ | Использует файл 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-функций.
Реализация | Ограничения |
---|---|
Уровень 1 S-функция MATLAB | Не поддерживает большинство функций S-функции. Смотрите раздел S-Function Features и Limitations для получения информации о том, что показывает Уровень 1, который действительно поддерживает S-функция MATLAB. |
Уровень 2 S-функции MATLAB |
|
Рукописная S-функция MEX C | Модель - ссылка поддержек с некоторыми ограничениями. Смотрите S-функции в Моделях, на которые Ссылаются. |
Разработчик S-функции |
ПримечаниеS-функции с одним входным параметром и одним выходным портом могли динамически измерить сигналы |
Legacy Code Tool |
|