Модель - ссылка предлагает преимущества для моделирования больших, сложных систем и для основанной на команде разработки. Много больших моделей используют комбинацию подсистем и моделей, на которые ссылаются. Чтобы решить, преобразовать ли подсистему в модель, на которую ссылаются, смотрите, Выбирают Among Types of Model Components.
Подготовка подсистемы для преобразования может устранить или сократить количество проблем, идентифицированных во время преобразования. При решении этих проблем, прежде чем преобразование может неоднократно быть более эффективным, чем переключение между диагностическими сообщениями и Simulink® Редактор.
Подготовить подсистему:
Установите параметр конфигурации разрешения Сигнала на 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 | Создать
Для получения дополнительной информации смотрите, Параметрируют Экземпляры Допускающей повторное использование Модели, на которую Ссылаются, и Настраиваемых параметров. |
Сконфигурируйте содержимое блока Subsystem.
Настройка подсистемы | Что искать | Модификация модели |
---|---|---|
Блокируйте порядок выполнения | Виртуальная подсистема, которая не обеспечивает содержавшие блоки, чтобы выполниться последовательно. | Выберите блок Subsystem, и затем на вкладке Subsystem Block, выберите Is Atomic Subsystem. |
Вызовы функции | Вызов функции сигнализирует что перекрестные виртуальные контуры подсистемы | Переместите блок Function-Call Generator в подсистему, которую вы хотите преобразовать. Примечание Если вы преобразуете подсистему экспорта функций, то вы не должны перемещать блок Function-Call Generator. |
Вызов функции выходные параметры | Измените вызов функции выходные параметры в триггеры данных. | |
Широкие порты вызова функции | Устраните широкие сигналы для подсистем вызова функций. | |
Шаги расчета | Шаг расчета блока Inport, который не совпадает с шагом расчета блока, управляющего блоком Inport | Вставьте блоки Rate Transition, где это необходимо. |
Inport блоки | Объединенные блоки Inport | Сконфигурируйте модель, чтобы избежать объединенных блоков Inport. См. документацию блока Merge. |
Постоянные блоки | Блоки Constant, которые обеспечивают вход для подсистем | Переместите блоки Constant в подсистему. |
Шины | Шины, которые вводят и выходят из подсистемы | Совпадайте с именами сигнала и соедините шиной имена элементов для блоков в подсистеме. Чтобы найти имена сигнала, которые не совпадают с именами элементов шины, используйте диагностику несоответствия метки Signal. |
Дублирующийся сигнал называет в шинах | Сделайте имена сигнала элементов шины уникальными. | |
Имена сигнала, которые не являются допустимым MATLAB® идентификаторы. Допустимый идентификатор является вектором символов, который удовлетворяет этим условиям:
| Поменяйте любые недопустимые имена сигнала, чтобы быть допустимыми идентификаторами MATLAB. |
Убедитесь, что модель, содержащая подсистему, что вы хотите преобразовать компиляции успешно.
Чтобы преобразовать подсистему в модель, на которую ссылаются, откройте Model Reference Conversion Advisor путем выбора блока Subsystem и, на вкладке Subsystem Block, выбора Convert> Model Block. Советник по вопросам Преобразования Модели - ссылки позволяет вам в интерактивном режиме задать параметры преобразования и устранить проблемы, которые находит советник.
Сделать процесс преобразования быстрее:
В Советнике по вопросам Преобразования Модели - ссылки выберите 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.