Функции 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Выполнения interpretively и, поэтому, не ускоряются.Предоставляет возможность использовать файл TLC в Режиме Accelerator, вместо того, чтобы запустить interpretively.Предоставляет возможность использовать 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-функции:

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

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

    • Основанные на порте частоты дискретизации

    • Несколько основанных на блоке частот дискретизации

Была ли эта тема полезной?