Модель-ссылка предлагает преимущества для моделирования больших, сложных систем и для командной разработки. Многие большие модели используют комбинацию подсистем и ссылочных моделей. Чтобы решить, преобразовывать ли подсистему в модель-ссылку, смотрите Выбор среди типов компонентов модели.
Подготовка подсистемы к преобразованию может устранить или уменьшить количество проблем, выявленных во время преобразования. Решение этих проблем перед преобразованием может быть более эффективным, чем повторное переключение между диагностическими сообщениями и Simulink® Редактор.
Для подготовки подсистемы:
Установите параметр конфигурации resolution configuration на Explicit only
или None
.
Совет
Вы можете автоматически устранить эту проблему во время преобразования.
Сконфигурируйте интерфейс блока Subsystem.
Совет
Можно автоматически устранить эти проблемы с интерфейсом во время преобразования.
Интерфейс подсистемы | Что искать | Модификация модели |
---|---|---|
Goto или From блоки | Goto или From блоки, пересекающие контур подсистемы | Замените блоки From которые имеют соответствующий Goto блок, который пересекает контур подсистемы, на Inport блок. Замените каждый Goto блок, который имеет соответствующие From блоков, которые пересекают контур подсистемы, на Outport блок. Соедините Inport и Outport блоки с соответствующими портами подсистемы. |
Хранилища данных | Data Store Memory блоки, к которым Data Store Read или Data Store Write блоки извне подсистемы | Замените блок Data Store Memory на глобальные данные хранилище. Определите хранилище глобальных данных с помощью |
Настраиваемые параметры | Глобальные настраиваемые параметры в диалоговом окне, открытом с помощью кнопки Configuration Parameters > Code Generation > Optimization > Configure | Как создать The Для получения дополнительной информации см. раздел «Параметризация Образцов переиспользуемых ссылочных Параметров модели и настраиваемых параметров». |
Сконфигурируйте содержимое Subsystem блоков.
Строение подсистемы | Что искать | Модификация модели |
---|---|---|
Блокируйте порядок выполнения | Виртуальная подсистема, которая не заставляет блоки выполнять последовательно. | Выберите блок Subsystem, а затем на вкладке Subsystem Block выберите Is Atomic Subsystem. |
Вызовы функций | Сигналы вызова функции, которые пересекают контуры виртуальной подсистемы | Переместите Function-Call Generator блок в подсистему, которую вы хотите преобразовать. Примечание Если вы преобразовываете подсистему экспорт функций, то вам не нужно перемещать блок Function-Call Generator. |
Function-call выходы | Измените выходы вызова функции на триггеры данных. | |
Широкие порты вызова функций | Устранение широких сигналов для подсистем вызова функций. | |
Шаги расчета | Шаг расчета Inport блока, который не совпадает со временем расчета блока, управляющего блоком Inport | При необходимости вставьте Rate Transition блоки. |
Блоки Inport | Объединенные блоки Inport | Сконфигурируйте модель, чтобы избежать слияния блоков Inport. См. документацию по Merge блокам. |
Постоянные блоки | Constant блоки, которые обеспечивают вход для подсистем | Переместите Constant блоки в подсистему. |
Автобусы | Шины, которые заходят и выходят из подсистемы | Совпадайте с именами сигналов и именами элементов шины для блоков внутри подсистемы. Чтобы найти имена сигналов, которые не совпадают с именами элементов шины, используйте диагностику несоответствия меток сигнала. |
Повторяющиеся имена сигналов в шинах | Сделать имена сигналов элементов шины уникальными. | |
Имена сигналов, которые не являются допустимыми MATLAB® идентификаторы. Допустимым идентификатором является вектор символов, которая удовлетворяет следующим условиям:
| Измените все недопустимые имена сигналов на действительные идентификаторы MATLAB. |
Убедитесь, что модель, содержащая подсистему, которую вы хотите преобразовать, успешно скомпилирована.
Чтобы преобразовать подсистему в ссылочную модель, откройте Model Reference Conversion Advisor, выбрав блок Subsystem и на вкладке Subsystem Block, выбрав Convert > Model Block. Модель-ссылка Conversion Advisor позволяет вам в интерактивном режиме задавать параметры преобразования и устранять проблемы, которые находит советник.
Чтобы ускорить процесс преобразования:
В окне Модель-ссылка Conversion Advisor выберите Fix errors automatically (if possible). Эта опция автоматически устраняет некоторые проблемы преобразования, но вы не управляете исправлениями.
Закройте все открытые Scope блочные окна перед началом преобразования.
Чтобы оставить Subsystem блок на месте и создать отдельную модель из содержимого Subsystem блока, очистите Replace the content of a subsystem with a Model block.
Чтобы сравнить результаты моделирования верхней модели до и после преобразования:
Включите регистрацию сигнала для интересующих выходных сигналов.
Выберите Check simulation results after conversion и Replace the content of a subsystem with a Model block.
Установите Stop time, Absolute tolerance и Relative tolerance.
Установите опцию Model block simulation mode в советнике в том же режиме симуляции, что и исходная модель.
После установки параметров преобразования щелкните Convert и устраните выявленные проблемы.
Кроме того, в командном окне MATLAB используйте Simulink.SubSystem.convertToModelReference
функция. Можно преобразовать несколько блоков Subsystem с помощью одного Simulink.SubSystem.convertToModelReference
команда. Однако преобразовать родительскую подсистему и дочерний элемент этой подсистемы одновременно невозможно.
После прохождения всех проверок преобразования, Simulink:
Создает ссылку на модель из подсистемы.
Создает Simulink.Bus
объекты, Simulink.Signal
объекты и настраиваемые параметры, которые требуются ссылочной модели.
По умолчанию заменяет Subsystem блок на Model блок, который ссылается на новую модель.
Вставляет Model блок в Subsystem блок, если автоматическое исправление добавленных портов к интерфейсу Model блока.
Создает сводный отчет преобразования HTML в slprj
папка. В этом отчете результирующие результаты процесса преобразования, включая результаты исправлений, выполненных консультантом. Этот отчет также описывает элементы, которые он копирует.
Опционально проверяет согласованность результатов симуляции до и после преобразования.
Simulink копирует следующие элементы из исходной модели в новую ссылочную модель.
Конфигурация модели - Если родительская модель использует:
При конфигурации модели, которая не является ссылочной конфигурацией модели, советник копирует всю конфигурацию модели в ссылку модели
Ссылочная конфигурация модели, затем и родительская, и ссылочная модели используют ту же ссылку конфигурации модели
Переменные - советник копирует только переменные рабочего пространства модели, которые подсистема использовала в исходной модели, в рабочее пространство модели ссылочной модели. Если модель, которая содержала подсистему, использует словарь данных, то ссылочная модель использует тот же словарь данных.
Ссылки требований - советник копирует ссылки требований, созданные с помощью программного обеспечения Simulink Requirements™, в блок Model из исходного блока Subsystem.
После успешного завершения преобразования используйте Click here to view the comparison results ссылку. Результаты отображаются в Simulation Data Inspector. Зеленая галочка указывает, что результаты симуляции находятся в пределах допуска между базовой моделью и моделью с новой ссылочной моделью.
Для получения дополнительной информации см. «Сравнение данных моделирования».
Если вы не удовлетворены результатами преобразования, можно восстановить модель в ее начальном состоянии. Используйте один из следующих подходов:
В любой точке во время преобразования выберите File > Load Restore Point.
После успешного запуска проверки Complete conversion используйте Click here to restore the original model ссылку.
После завершения преобразования обновите модель по мере необходимости, чтобы соответствовать вашим требованиям к моделированию. Для примера можно вручную заменить Subsystem блок на Model блок, который ссылается на созданные ссылочные модели.
Если вы хотите симулировать модель с внешними данными, проверяйте, что корневые блоки Inport в новой модели-ссылке имеют соответствующую настройку параметра Interpolate data. Смотрите документацию для параметра Interpolate data блока Inport.