exponenta event banner

Simulink. SubSystem.convertToModelReference

Преобразовать подсистему в ссылку на модель

Описание

пример

Simulink.SubSystem.convertToModelReference(gcb,'UseConversionAdvisor',true) открывает помощник по преобразованию привязок модели для выбранного блока подсистемы.

[tf,h] = Simulink.SubSystem.convertToModelReference(subsys,model) преобразует указанные подсистемы в ссылочные модели.

Для каждой подсистемы, которую преобразует функция, она:

  • Создание модели.

  • Копирование содержимого подсистемы в новую модель.

  • Обновление всех входных и выходных блоков корневого уровня и параметров конфигурации модели в соответствии с компилируемыми атрибутами исходной подсистемы.

  • Копирование содержимого рабочего пространства исходной модели в новую модель.

Перед использованием этой функции загрузите модель, содержащую подсистему.

пример

[tf,h] = Simulink.SubSystem.convertToModelReference(subsys,model,Name,Value) указывает параметры, использующие один или несколько аргументов пары имя-значение.

Примеры

свернуть все

Откройте окно f14 модель.

open_system('f14');

В f14 выберите выходной сигнал подсистемы контроллера и нажмите Log Signals.

В редакторе Simulink ® выберите подсистему контроллера. Откройте в командном окне Помощник по преобразованию привязок модели (Model Reference Conversion Advisor).

Simulink.SubSystem.convertToModelReference(gcb,'UseConversionAdvisor',true);

Выполните преобразование с помощью консультанта.

Преобразовать Bus Counter подсистема для ссылочной модели с именем bus_counter_ref_model.

open_system('sldemo_mdlref_conversion');
Simulink.SubSystem.convertToModelReference(...
   'sldemo_mdlref_conversion/Bus Counter', ...
   'bus_counter_ref_model', ...
   'AutoFix',true,...
   'ReplaceSubsystem',true,...
   'CheckSimulationResults',true);
### Successfully converted Subsystem block to Model block.

Преобразуйте две подсистемы с помощью одной команды.

open_system('f14');
set_param(gcs,'SaveOutput','on','SaveFormat','Dataset');
set_param(gcs,'SignalResolutionControl','UseLocalSettings');
Simulink.SubSystem.convertToModelReference(...
{'f14/Controller','f14/Aircraft Dynamics Model'},...
{'controller_ref_model','aircraft_dynamics_ref_model'},...
'ReplaceSubsystem',true,...
'AutoFix',true,...
'CheckSimulationResults',true)

Входные аргументы

свернуть все

Имена или дескрипторы подсистем, указанные как числовой массив, символьный вектор, массив ячеек символьных векторов или строковый массив.

Сведения о том, какие подсистемы можно преобразовать, см. в разделе Изменение ссылочных моделей для условного выполнения.

Типы данных: double | char | string

Ссылочные имена моделей, указанные как символьный вектор, массив ячеек символьных векторов или строковый массив. Имя каждой модели должно содержать не более 59 символов.

Если для преобразования указано несколько подсистем, укажите одинаковое количество имен ссылочных моделей. Каждое имя модели соответствует указанной подсистеме в том же порядке.

Типы данных: char | string

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: Simulink.SubSystem.convertToModelReference...(engineSubsys,engineModelRef,'ReplaceSubsystem',true)

Параметр для устранения всех проблем преобразования, которые могут быть исправлены автоматически, указанный как разделенная запятыми пара, состоящая из 'AutoFix' и true или false.

Если установить AutoFix кому true, функция исправляет все проблемы преобразования, которые она может исправить. Для проблем, которые функция не может устранить, процесс преобразования генерирует сообщения об ошибках, которые устраняются путем изменения модели.

Примечание

Если установить Force кому true, то функция не устраняет проблемы преобразования автоматически.

Типы данных: logical

Опция для завершения преобразования даже с ошибками, заданная как разделенная запятыми пара, состоящая из 'Force' и true или false.

Если true, функция возвращает ошибки преобразования в виде предупреждений и продолжает преобразование без исправления ошибок, даже если вы установили AutoFix кому true. Force позволяет использовать функцию для выполнения начальных шагов преобразования, а затем самостоятельно завершить процесс преобразования.

Типы данных: logical

Опция для копирования сопоставлений кода из родительской модели в новую преобразованную модель, заданную как разделенная запятыми пара, состоящая из 'CopyCodeMappings' и true или false.

Если true, функция копирует существующие конфигурации отображения кода из родительской модели в новую преобразованную ссылочную модель.

Если false, функция не копирует существующие конфигурации отображения кода из родительской модели в новую преобразованную модель.

Типы данных: logical

Опция для проверки результатов моделирования до и после преобразования, указанная как разделенная запятыми пара, состоящая из 'CheckSimulationResults' и true или false.

Перед выполнением преобразования:

  • Включение регистрации сигналов для выходных сигналов подсистемы, представляющих интерес в модели.

  • Набор CheckSimulationResults кому true.

  • Набор AbsoluteTolerance.

  • Набор RelativeTolerance.

  • Набор SimulationModes в режим моделирования, используемый исходной моделью.

Если разница между результатами моделирования превышает уровень допуска, функция выводит сообщение.

Типы данных: logical

Абсолютный допуск сигнала для сравнения, определяемый как разделенная запятыми пара, состоящая из 'AbsoluteTolerance' и числовой скаляр.

Используйте этот параметр, только если установлен CheckSimulationResults кому true.

Типы данных: double

Относительный допуск сигнала для сравнения, определяемый как разделенная запятыми пара, состоящая из 'RelativeTolerance' и числовой скаляр.

Используйте этот параметр, только если установлен CheckSimulationResults кому true.

Типы данных: double

Имя файла для хранения данных преобразования, указанного как разделенная запятыми пара, состоящая из 'DataFileName' и вектор символов. Можно указать абсолютный или относительный путь.

Данные преобразования можно сохранить в MAT-файле (по умолчанию) или в файле MATLAB ®. Если используется .m расширение файла, функция сериализует все переменные в файл MATLAB.

По умолчанию функция использует имя файла, состоящее из имени модели плюс _conversion_data.mat.

Типы данных: char

Опция для замены блоков подсистемы блоками модели, заданными как разделенная запятыми пара, состоящая из 'ReplaceSubsystem' и true или false.

Если задано значение trueперед преобразованием подсистем рекомендуется создать резервную копию исходной модели. Если требуется отменить преобразование, наличие резервной копии упрощает восстановление модели.

Если установить ReplaceSubsystem кому true, операция преобразования зависит от использования опций автоматического исправления.

  • При использовании автоматических исправлений преобразование заменяет блок «Подсистема» блоком «Модель», если автоматические исправления не изменяют входные или выходные порты. Если порты изменяются, то преобразование включает содержимое подсистемы в блоке Model, который вставляется в блок Subsystem.

  • Если автоматические исправления не используются, преобразование заменяет блок «Подсистема» блоком «Модель».

Типы данных: logical

Опция вставки подсистемы обертки для сохранения компоновки модели, заданной как разделенная запятыми пара, состоящая из 'CreateWrapperSubsystem' и true или false.

При преобразовании подсистемы в ссылочную модель можно вставить в процесс преобразования подсистему оболочки для сохранения компоновки модели. Оболочка подсистемы содержит блок Model из преобразования.

Преобразование автоматически создает подсистему оболочки, если преобразование изменяет интерфейс блока модели путем добавления портов.

Типы данных: logical

Режим моделирования для блоков модели, указанный как разделенная запятыми пара, состоящая из 'SimulationModes' и 'Normal' или 'Accelerator'. Настройка режима моделирования применяется к блокам модели, которые ссылаются на модели, создаваемые преобразованием.

Типы данных: char

Создаваемые цели привязки модели, указанные как пара, разделенная запятыми, состоящая из 'BuildTarget' и 'Sim' или 'Coder'.

  • 'Sim' - Эталонная имитационная цель модели

  • 'Coder' - Цель формирования кода

Типы данных: char

Выходные аргументы

свернуть все

Истинный или ложный результат, возвращенный как 1 или 0 типа данных logical.

Значение 1 указывает на успешное преобразование.

Если установить Force кому true, функция возвращает значение 1 если преобразование завершено. Однако результаты моделирования могут отличаться от результатов моделирования для модели до преобразования.

Дескрипторы созданных блоков модели, возвращаемые в виде числового массива.

Типы данных: double

Совет

  • Невозможно преобразовать родительскую подсистему и дочерний объект этой подсистемы одновременно.

  • Указание нескольких подсистем для преобразования одной командой может сэкономить время по сравнению с преобразованием каждой подсистемы по отдельности. Процесс преобразования нескольких подсистем компилирует модель один раз.

  • Если для преобразования указано несколько подсистем, процесс преобразования пытается преобразовать каждую подсистему. Успешно преобразованные подсистемы создают ссылочные модели, даже если преобразования других подсистем не выполняются.

  • При указании нескольких подсистем необходимо учитывать следующее:

    • Во входных аргументах, установка 'Autofix', 'ReplaceSubsystem', и 'CheckSimulationResults' кому true.

    • Установка в модели короткого времени моделирования.

  • Словарь данных сохраняет объекты шины, создаваемые в процессе преобразования при наличии обоих условий:

    • В верхней модели используется словарь данных.

    • Все изменения в верхней модели сохраняются.

  • Чтобы сохранить поведение маскированной подсистемы, выполните следующие дополнительные задачи:

    • Для маскированных обратных вызовов, значков, портов и документации создайте резервную копию маскированной подсистемы перед преобразованием ее в ссылочную модель. После преобразования скопируйте содержимое из редактора масок резервной маскированной подсистемы в редактор масок нового блока модели.

    • Замените параметры маски аргументами модели (см. раздел Параметризация экземпляров повторно используемой ссылочной модели).

    Примечание

    Ссылочные модели не поддерживают функциональность, которую можно достичь с помощью кода инициализации маски для создания маскированных параметров.

Вопросы совместимости

развернуть все

Не рекомендуется начинать с R2019a

Представлен в R2006a