Сгенерируйте Повторно используемый код От Подсистем, которые Содержат Модели, на которые Ссылаются,

Факторы для подсистем, которые содержат модели, на которые ссылаются,

Можно сгенерировать повторно используемый код для подсистем, которые содержат модели, на которые ссылаются, при помощи тех же процедур и опций, описанных в Генерации Управления Функций для Подсистем. Для подсистем, которые содержат модели, на которые ссылаются, рассмотрите эти ограничения:

  • Топ-модель, которая использует однозадачный режим и включает модель, на которую ссылаются, которая использует многозадачный режим, выполняется для блоков с различными уровнями, которые не соединяются. Вы получаете ошибку, если блоки с различными уровнями соединяются блоком Rate Transition, или вставленным вручную или Simulink.

  • Когда вы генерируете S-функции с Embedded Coder® путем щелчка правой кнопкой по подсистеме и выбора C/C++ Code> Generate S-function, генератор кода не делает подсистем поддержки, которые содержат время непрерывной выборки.

  • Системный конечный файл S-функции rtwsfcn.tlc не поддержан.

  • Генератор кода игнорирует настройки настраиваемых параметров, которые вы конфигурируете от Сгенерировать S-функции для диалогового окна Subsystem. Чтобы сконфигурировать параметры, столь же настраиваемые, задайте их как объекты параметра Simulink в базовом рабочем пространстве.

  • Генератор кода встраивает параметры, которые не являются настраиваемыми в сгенерированном коде и S-функции.

Повторное использование кода и блоки Model с корневыми блоками Inport или выходного порта

Допускающая повторное использование функция подсистемы с вводом или выводом, соединенным с корневым блоком Inport или Outport модели, на которую ссылаются, может повлиять на повторное использование кода. Это может препятствовать тому, чтобы вы снова использовали атомарные подсистемы в контексте эталонной модели таким же образом, вы можете снова использовать подсистемы в автономной модели.

Например, рассмотрите эту подсистему:

Предположим, что вы вносите следующие изменения в параметры блоков подсистемы:

Затем вы создаете эту модель, которая включает три экземпляра предыдущей подсистемы.

С параметром конфигурации модели Default parameter behavior (Simulink Coder) набор к Inlined, генератор кода оптимизирует код путем генерации одной копии функции для снова использованной подсистемы.

void reuse_subsys1_Subsystem(real_T rtu_In1, B_Subsystem_reuse_subsys1_T *localB)
{
  localB->Gain = 3.0 * rtu_In1;
}

Если вы перемещаете эти три подсистемы в блок Model, необходимо изменить настройку модели и модели.

  1. Добавьте блок Signal Conversion или блок Bias между Подсистемой 3 и блок Outport. Если подсистема имеет блок Merge с начальными условиями, не добавляйте блок Signal Conversion. Вместо этого добавьте блок Bias, чтобы получить допускающую повторное использование функцию.

  2. Выберите параметр конфигурации модели Pass fixed-size scalar root inputs by value for code generation (Simulink).

Результатом является одна допускающая повторное использование функция:

void reuse_subsys1_Subsystem(real_T rtu_In1, B_Subsystem_reuse_subsys1_T *localB)
{  
  localB->Gain = 3.0 * rtu_In1;
}

Похожие темы