Реализуйте S-функции

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

Примечание

Для обратной совместимости следующая таблица и разделы содержат информацию о S-функциях Level 1 MATLAB®. Однако используйте Уровень 2 API S-функции MATLAB, чтобы разработать новые S-функции MATLAB.

Тип S-функцииРеализация
Уровень 1 S-функция MATLABИспользуйте следующий шаблон, чтобы записать новому Уровню 1 S-функцию MATLAB: sfuntmpl.m
Смотрите Поддерживают Уровень 1 S-функции MATLAB для получения дополнительной информации.
Уровень 2 S-функция MATLAB
  1. Используйте шаблон msfuntmpl_basic.m, чтобы записать новому Уровню 2 S-функцию MATLAB:

    Смотрите Уровень 2 Записи S-функции MATLAB для получения дополнительной информации.

  2. Запишите файл Компилятора выходного языка (TLC) для S-функции, если необходимо сгенерировать код для модели, содержащей S-функцию. Файл, msfcn_times_two.tlc в папке является примером файл TLC для S-функции msfcn_times_two.m. Смотрите Встроенные S-функции файла MATLAB (Simulink Coder) для получения информации о записи файлов TLC для Уровня 2 S-функции MATLAB.

Рукописная S-функция MEX C
  1. Используйте шаблон sfuntmpl_doc.c, чтобы записать новую S-функцию MEX C (см., Создают Основную S-функцию MEX C) или записать S-функцию обертки, которая вызывает C, C++ или код Фортран.

    Для получения информации о записи S-функций обертки, чтобы включить наследие C или Код С++, смотрите S-функцию Обертки Записи и Файлы TLC (Simulink Coder). Для получения информации о записи функции обертки, чтобы включить устаревший код Фортран, смотрите Построение Шлюза.

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

  3. Запишите файл TLC для S-функции, если вы хотите встроить код во время генерации кода (см. Запись Полностью Встроенные S-функции с mdlRTW Стандартной программой (Simulink Coder) и Основы Компилятора Выходного языка (Simulink Coder)). Вам не нужен файл TLC, если вы не встраиваете S-функцию в сгенерированном коде.

Разработчик S-функции
  1. Введите атрибуты S-функции в диалоговое окно S-Function Builder (см. Разработчика S-функции Диалоговое окно).

  2. Выберите опцию Generate wrapper TLC, чтобы сгенерировать файл TLC, чтобы встроить S-функцию во время генерации кода.

  3. Нажмите Build, чтобы сгенерировать S-функцию, файл TLC и исполняемый файл, чтобы использовать во время симуляции.

Legacy Code ToolИспользуйте функцию legacy_code, чтобы выполнить следующие шаги (см., Интегрируют Функции C Используя Legacy Code Tool):
  1. Инициализируйте структуру данных, которая описывает атрибуты S-функции с точки зрения устаревшей функции.

    lct_spec = legacy_code('initialize');
  2. Сгенерируйте и скомпилируйте S-функцию обертки.

    legacy_code('sfcn_cmex_generate', lct_spec);
    legacy_code('compile', lct_spec);
  3. Инстанцируйте Блока s-function, который вызывает обертку S-функции.

    legacy_code('slblock_generate', lct_spec);
  4. Сгенерируйте файл TLC, чтобы встроить S-функцию во время генерации кода.

    legacy_code('sfcn_tlc_generate', lct_spec);