Функции S-функции и ограничения

Функции S-функции

Следующие таблицы дают обзоры функций, поддерживавших различными типами 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Выполнения путем интерпретации и, поэтому, не ускоряются.Предоставляет возможность использовать файл TLC в Режиме Accelerator, вместо того, чтобы запуститься путем интерпретации.Предоставляет возможность использовать TLC или файл MEX в Режиме Accelerator.
Модель - ссылкаНе может использоваться в модели, на которую ссылаются.Поддерживает Нормальный и симуляции Режима Accelerator, когда используется в модели, на которую ссылаются. Требует файла TLC для Режима Accelerator.Предоставляет возможности для наследования шага расчета и поддержки Режима normal mode, когда используется в модели, на которую ссылаются. Смотрите Требования Модели - ссылки и Ограничения
Simulink.
AliasType
и 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-функции

Следующая таблица обобщает основные ограничения различных типов S-функций.

РеализацияОграничения
Уровень 1 S-функция MATLABНе поддерживает большинство функций S-функции. Смотрите раздел S-Function Features и Limitations для получения информации о том, что показывает Уровень 1, который действительно поддерживает S-функция MATLAB.
Уровень 2 S-функции MATLAB
  • Не поддерживает сигналы ввода и вывода шины.

  • Не может включить унаследованный код во время симуляции, только во время генерации кода через файл TLC.

Рукописная S-функция MEX CМодель - ссылка поддержек с некоторыми ограничениями. Смотрите S-функции в Моделях, на которые Ссылаются.
Разработчик S-функции
  • Генерирует код S-функции с помощью функции обертки, которая подвергается дополнительным издержкам.

  • Не поддерживает следующие функции S-функции:

    • Векторы работы

    • Основанные на порте шаги расчета

    • Несколько шагов расчета или ненулевое время смещения

    • Динамически измеренный ввод и вывод сигнализирует для S-функции с несколькими портами ввода и вывода

Примечание

S-функции с одним входом и одним выходным портом могли динамически измерить сигналы

Legacy Code Tool
  • Генерирует S-функции MEX C для существующих функций, написанных в C или C++ только. Инструмент не поддерживает преобразование функций MATLAB или Фортрана.

  • Может взаимодействовать через интерфейс с функциями C++, но не объектами C++.

  • Не поддерживает моделирующие непрерывные или дискретные состояния.

  • Не поддерживает использование указателей функции как вывод устаревшей вызванной функции.

  • Всегда устанавливает флаг S-функции для прямого сквозного соединения (sizes.DirFeedthrough) к true.

  • Поддержки только непрерывное, но зафиксированный в незначительном временном шаге, шаге расчета и опции смещения.

  • Комплексные числа поддержек, но только с Simulink встроенные типы данных.

  • Не поддерживает следующие функции S-функции:

    • Векторы работы, кроме векторов генерала Дуорка

    • Основанные на кадре сигналы ввода и вывода

    • Основанные на порте шаги расчета

    • Несколько основанных на блоке шагов расчета