При создании повторно используемого компонента в качестве ссылочной модели настройте параметры блока, чтобы использовать одно и то же значение для экземпляров компонента или другое значение для каждого экземпляра.
Чтобы настроить реализацию аргументов параметров в сгенерированном коде, можно настроить упаковку этих параметров в модели, где они определены.
Настройте сопоставление по умолчанию для аргументов параметров модели, используя один из следующих классов хранения:
Default - Каждому экземпляру параметра выделяется часть памяти в экспортируемой структуре, атрибуты которой определяются правилами именования идентификаторов.
Структурированный класс хранения - каждому экземпляру параметра выделяется часть памяти, как определено в определении кода этого класса хранения.
Индивидуально укажите класс хранения для аргументов параметров модели, используя один из следующих классов хранения:
Auto - Параметр отображается как отдельный аргумент функции модели в сгенерированном коде. Если блок в модели не ссылается на параметр, он может быть оптимизирован генератором кода.
Model default - Каждому экземпляру параметра выделяется часть памяти в соответствии с определением кода класса хранения по умолчанию. Укажите этот класс хранения по умолчанию с помощью сопоставления модели по умолчанию.
При использовании проверки времени редактирования для создания кода появляется ошибка для недопустимого класса хранения.
Для аргумента параметра с не-Auto класс хранения:
В блоке «Модель» можно указать значение для каждого экземпляра как литерал, числовую переменную MATLAB ® или Simulink.Parameter объект.
Если значение для экземпляра равно Simulink.Parameter объект должен иметь класс хранения Auto.
Если значение каждого экземпляра является выражением значения, вычисленное значение выражения используется для статической инициализации параметра.
Если для аргумента параметра не указан класс хранения по умолчанию или отдельный класс хранения, генератор кода применяет класс внутреннего хранения. InstP, к параметру. Instp класс хранения имеет следующие свойства:
Экспортированная область
Правило именования типов: $R_InstP$M
Имя экземпляра: InstP$R$M
Для моделей с одиночной ссылкой аргументы параметра находятся в автономной глобальной структуре. Верхняя модель определяет структуру. Ссылочная модель объявляет и использует структуру.
Для моделей со ссылками на несколько экземпляров аргументы параметра являются частью иерархически вложенной структуры, объявленной и определяемой моделью верхнего уровня. Ссылочная модель имеет доступ к значениям параметров через указатель в собственной структуре. Самоструктура указывает на подструктуру структуры, определяемую верхней моделью.
Для аргументов параметров, определенных в модели верхнего уровня, если аргумент не имеет класса хранения, он встроен. Если он имеет класс хранения, результирующий код зависит от значения параметра упаковки интерфейса Code:
Nonreusable function - параметр создается в структуре, определенной в верхней модели.
Reusable function - параметр генерируется в структуре, передаваемой как часть первого аргумента функции.
Чтобы понять поведение специфичных для экземпляра параметров в сгенерированном коде, рассмотрим эту ссылочную модель, которая определяет два аргумента параметра, gainArg и coeffArg.


Сначала рассмотрим случай, когда эта модель настроена на поддержку только одного экземпляра, а сопоставление по умолчанию для аргументов параметров модели не имеет класса хранения. В ex_arg_code_ref.h существует определение типа и объявление для специфичных для экземпляра параметров.


Когда верхняя модель ссылается на эту модель и предоставляет значения для параметров, специфичных для экземпляра, код для верхней модели определяет параметры, специфичные для экземпляра, используя значения, предоставленные верхней моделью.

Теперь рассмотрим, настроена ли ссылочная модель для поддержки нескольких экземпляров. ex_arg_code_ref.h содержит то же определение типа, что и одинарный экземпляр, но само по себе для модели также содержит указатель на экземпляр этой структуры данных. Отсутствует объявление указателя на автономную глобальную переменную этой структуры.

Верхняя модель объявляет родительскую структуру, включая экземпляр этой подструктуры, и инициализирует указатель в собственной структуре для ссылочной модели.

При настройке специфичного для экземпляра параметра для создания кода применяются следующие ограничения:
Сопоставление по умолчанию для аргументов параметров модели нельзя использовать повторно для параметров модели или внешних объектов параметров.
Значения параметров, специфичных для экземпляра, должны быть конечными.
Аргументы параметра с не -Auto классы хранения не поддерживаются для генерации кода C++ с интерфейсом кода класса C++.