Simulink. SubSystem.convertToModelReference

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

Синтаксис

Simulink.SubSystem.convertToModelReference(gcb,'UseConversionAdvisor',true)
[success,mdlRefBlkHs] = Simulink.SubSystem.convertToModelReference(subsys,mdlRefs)
[success,mdlRefBlkHs] = Simulink.SubSystem.convertToModelReference(subsys,mdlRefs,Name,Value)

Описание

пример

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

[success,mdlRefBlkHs] = Simulink.SubSystem.convertToModelReference(subsys,mdlRefs) преобразовывает заданные подсистемы в модели, на которые ссылаются, с помощью значения mdlRefs.

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

  • Создает модель

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

  • Обновления любой корневой уровень Inport, Выходной порт, Триггер, и Позволяют блокам и параметрам конфигурации модели совпадать со скомпилированными атрибутами исходной подсистемы

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

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

пример

[success,mdlRefBlkHs] = Simulink.SubSystem.convertToModelReference(subsys,mdlRefs,Name,Value) дополнительные опции использования заданы одним или несколькими аргументами пары Name,Value.

Примеры

свернуть все

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

open_system('f14');

В модели f14 выберите выходной сигнал Подсистемы контроллера, кликните по стрелке кнопки Simulation Data Inspector и выберите Log Selected Signals.

В Редакторе Simulink® выберите подсистему Controller. Затем откройте Советника по вопросам Преобразования Модели - ссылки из командной строки.

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 to Model reference 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

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

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

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

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

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

Примечание

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

Типы данных: логический

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

Если вы устанавливаете Force на true, то функция не устраняет проблемы преобразования, даже если вы устанавливаете 'AutoFix' на true. Однако выходным аргументом success является true, независимо от того, произошли ли какие-либо ошибки преобразования.

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

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

Для команды Simulink.SubSystem.convertToModelReference, набора:

  • 'CheckSimulationResults' к true

  • 'AbsoluteTolerance'

  • 'RelativeTolerance'

  • 'SimulationModes' к тому же самому как режим симуляции как в исходной модели

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

Абсолютный допуск сигнала к сравнению, заданному как двойное. Используйте опцию, только если вы устанавливаете CheckSimulationResults на true.

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

Относительный допуск сигнала к сравнению, заданному как двойное. Используйте опцию, только если вы устанавливаете CheckSimulationResults на true.

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

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

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

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

Замените блоки подсистемы на блоки Model, заданные как true или false. Блок Model ссылается на модель, на которую ссылаются.

По умолчанию функция отображает модели, на которые ссылаются, в отдельных окнах Simulink Editor.

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

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

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

  • Если вы не используете автоматические меры, то преобразование заменяет блок Subsystem на блок Model.

Типы данных: логический

Вставьте подсистему обертки, чтобы сохранить макет модели, заданный как true или false. Когда вы преобразовываете подсистему в модель, на которую ссылаются, у вас может быть процесс преобразования, вставляют подсистему обертки, чтобы сохранить размещение модели. Обертка подсистемы содержит блок Model от преобразования.

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

Типы данных: логический

Режим Simulation для блоков Model, заданных как 'Normal' или 'Accelerator'. Установка режима симуляции применяется к блокам Model, которые ссылаются на модели, которые создает преобразование.

Цели модели-ссылки, чтобы сгенерировать.

  • \sim Цель симуляции модели - ссылки

  • 'Coder' — Цель генерации кода

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

свернуть все

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

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

Указатели созданных блоков Model, возвращенных как двойной массив или массив ячеек.

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

Советы

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

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

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

  • Если вы задаете несколько подсистем, рассматриваете:

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

    • В модели, устанавливая короткое время симуляции.

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

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

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

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

    Примечание

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

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

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

Не рекомендуемый запуск в R2019a

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