Иерархия модели - ссылки должна удовлетворить различным требованиям Simulink® Coder™, как описано в этой теме. Модель, ссылающаяся на иерархию, которая будет обработана программным обеспечением Simulink Coder, должна также удовлетворить:
Требования Simulink, перечисленные в:
Ограничения Simulink перечислены в Требованиях Сигнала и Ограничениях
Ограничения Simulink Coder перечислены в Ограничениях Генерации кода для Модели - ссылки
Модель, на которую ссылаются, использует конфигурацию модели таким же образом, топ-модель делает. По умолчанию каждая модель в иерархии имеет свою собственную конфигурацию модели, которую она использует таким же образом, что она была бы если модель, выполняемая независимо.
Поскольку каждая модель может иметь свою собственную конфигурацию модели, значения параметра конфигурации могут отличаться в различных моделях. Кроме того, некоторые значения параметров внутренне несовместимы со ссылкой модели. Ответ генератора кода к противоречивому или неприменимому параметру конфигурации зависит от параметра:
Где несоответствие параметра не имеет никакого значения, генератор кода игнорирует или разрешает несоответствие, не отправляя предупреждение.
Где нетривиальное и возможно приемлемое решение существует к противоречивому параметру, генератор кода разрешает конфликт тихо; твердость это с предупреждением; или генерирует ошибку.
Если приемлемое разрешение не возможно, генератор кода производит ошибку. Необходимо затем изменить значения параметров, чтобы устранить проблему.
Когда иерархия модели - ссылки содержит много моделей, на которые ссылаются, которые имеют несовместимые значения параметров, или измененное значение параметров должно распространить ко многим моделям, на которые ссылаются, вручную устранение несовместимостей параметра конфигурации может быть длительным. Можно управлять или устранить такие издержки при помощи ссылок настройки, чтобы присвоить внешне сохраненную конфигурацию модели многоуровневым моделям. Для получения дополнительной информации смотрите Долю Настройка с Многоуровневыми моделями.
Чтобы выбрать цель генерации кода для иерархии модели - ссылки, не изменяя отдельные модели, используйте ссылку настройки в словаре данных Simulink. Для получения дополнительной информации смотрите Ссылку Настройки Использования, чтобы Выбрать Code Generation Target (Embedded Coder).
Следующие таблицы приводят параметры конфигурации, которые могут вызвать проблемы, если установлено определенными способами, или, если установлено по-другому в модели, на которую ссылаются, чем в родительской модели. Где возможно, нарушения твердости генератора кода этих требований, но большинство случаев требуют, чтобы вы внесли изменения в параметры в ваших моделях.
Требования по настройке для ссылки модели с системными конечными файлами
Панель диалогового окна | Опция | Требование |
---|---|---|
Solver | Start time | Некоторые системные конечные файлы требуют, чтобы время начала моделей было нулем. |
Hardware Implementation | Все опции | Значения должны быть тем же самым для главных и моделей, на которые ссылаются. |
Code Generation | System target file | Должно быть то же самое для главных и моделей, на которые ссылаются. |
Language | Должно быть то же самое для главных и моделей, на которые ссылаются. | |
Generate code only | Должно быть то же самое для главных и моделей, на которые ссылаются. | |
Identifiers | Maximum identifier length | Не может быть более длинным для модели, на которую ссылаются, чем для ее родительской модели. |
Interface | Code replacement library | Должно быть то же самое для главных и моделей, на которые ссылаются. |
Опции Generate C API for | Флажки C API, которые вы устанавливаете, должны быть тем же самым для главных и моделей, на которые ссылаются. | |
ASAP2 interface | Может быть |
Требования по настройке для ссылки модели с системными конечными файлами ERT (требует Embedded Coder),
Панель диалогового окна | Опция | Требование |
---|---|---|
Identifiers | Глобальные переменные Глобальные типы Методы подсистемы Локальные временные переменные Постоянные макросы | $R лексема должна быть включена. |
Signal naming | Должно быть то же самое для главных и моделей, на которые ссылаются. | |
M-функция | Если задано, должно быть то же самое для главных и моделей, на которые ссылаются. | |
Parameter naming | Должно быть то же самое для главных и моделей, на которые ссылаются. | |
#define naming | Должно быть то же самое для главных и моделей, на которые ссылаются. | |
Interface | Ignore custom storage classes | Должно быть то же самое для главных и моделей, на которые ссылаются. |
Support floating-point numbers | Должно быть то же самое для главных и моделей, на которые ссылаются. | |
Support non-finite numbers | Если | |
Support complex numbers | Если | |
Remove error status field in real-time model data structure | Если | |
Code Placement | Use owner from data object for data definition placement | Должно быть то же самое для главных и моделей, на которые ссылаются. |
Signal display level | Должно быть то же самое для главных и моделей, на которые ссылаются. | |
Parameter tune level | Должно быть то же самое для главных и моделей, на которые ссылаются. |
Для моделей, на которые ссылаются, если они Configuration Parameters> Code Generation> параметры Identifiers имеют настройки, которые не содержат $R
лексема (который представляет имя модели, на которую ссылаются), генерация кода предварительно ожидает $R
лексема к формату идентификатора:
Global variables (CustomSymbolStrGlobalVar
)
Global types (CustomSymbolStrType
)
Subsystem methods (CustomSymbolStrFcn
)
Constant macros (CustomSymbolStrMacro
)
Можно использовать Model Advisor, чтобы идентифицировать модели в модели, ссылающейся на иерархию, для которой генерация кода изменяет настройки параметра конфигурации.
В Редакторе Simulink, от вкладки Modeling, выбирают Model Advisor.
Выберите By Task.
Осуществите проверку Check code generation identifier formats used for model reference.
Если скрипт, который работает со сгенерированным кодом, использует форматы идентификатора, которые изменяет генерация кода, то обновите скрипт, чтобы использовать обновленный формат идентификатора (который включает добавленный $R
лексема).
Для получения дополнительной информации об идентификаторах, смотрите Управление форматом Идентификатора (Embedded Coder).
В модели, которая использует ссылку модели, не могут столкнуться имена составляющих моделей. Когда вы генерируете код из модели, которая использует ссылку модели, параметр Maximum identifier length должен быть достаточно большим, чтобы вместить корневое имя модели и искажающий имя текст. Ошибка генерации кода происходит, если Maximum identifier length не является достаточно большим.
Когда конфликт по совпадению имен находится между символом в рамках высокоуровневой модели и символом в рамках модели, на которую ссылаются, символ из модели, на которую ссылаются, сохраняется. Генератор кода выполняет искажение имени на символе из высокоуровневой модели.
Продукт Embedded Coder® позволяет вам управлять форматированием сгенерированных символов в намного больших деталях. Когда генерация кода с ERT предназначается из модели, которая использует ссылку модели:
$R
лексема (в дополнение к $M
лексема), должен быть включен в технические требования параметра управления форматом Идентификатора за исключением Shared utilities identifier format.
Максимальная длина идентификатора должна быть достаточно большой, чтобы вместить полные расширения $R
и $M
лексемы.
Для получения дополнительной информации смотрите Параметры конфигурации Модели: Идентификаторы Генерации кода.
Если у вас есть Embedded Coder, пользовательская цель должна удовлетворить различные требования к ссылке модели поддержки. Для получения дополнительной информации смотрите, что Модель поддержки Ссылается.
Минимизируйте случаи алгебраических циклов путем выбора параметра Minimize algebraic loop occurrences на панели Model Referencing. Установка этой опции влияет только на генерацию кода из модели. Для получения дополнительной информации о прямом канале через, смотрите Алгебраические Концепции Цикла.
Используйте Целочисленный параметр режима округления на блоках своей модели, чтобы симулировать округляющееся поведение компилятора C, который вы намереваетесь использовать, чтобы скомпилировать код, сгенерированный из модели. Эта установка появляется на панели Signal Attributes диалоговых окон параметра блоков, которые могут выполнить арифметику целого числа со знаком, такую как блоки n-D Lookup Table и Product.
Для большинства блоков значение Целочисленного режима округления полностью задает округление поведения. Для блоков, которые поддерживают данные фиксированной точки и Самый Простой режим округления, значение Signed integer division rounds to также влияет на округление. Для получения дополнительной информации смотрите Округление (Fixed-Point Designer).