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

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

Следующие таблицы дают обзоры функций, поддерживавших различными типами S-функций. Первая таблица фокусируется на рукописных S-функциях. Вторая таблица сравнивает функции S-функций, автоматически сгенерированных Разработчиком S-функции или Legacy Code Tool.

Функции рукописных S-функций

ФункцияУровень 2 S-функция MATLABРукописная S-функция MEX C
Типы данныхПоддержки любой тип данных поддержаны Simulink® программное обеспечение, включая фиксированные точки.Поддержки любой тип данных, поддержанный программным обеспечением Simulink, включая фиксированные точки.
Числовые типыПоддерживает действительные и комплексные сигналы.Поддерживает действительные и комплексные сигналы.
Структурируйте поддержкуПоддержки структурированные и сигналы без рамки.Поддержки структурированные и сигналы без рамки.
Размерности портаСкаляр поддержек, 1D, и многомерные сигналы ввода и вывода.Скаляр поддержек, 1D, и многомерные сигналы ввода и вывода.
API S-функцииПоддерживает больший набор 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-функций.

РеализацияОграничения
Уровень 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-функции:

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

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

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

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

Для просмотра документации необходимо авторизоваться на сайте