Импортируйте и экспортируйте модели архитектуры

Чтобы создать модель System Composer™, можно импортировать информацию о компонентах, портах и соединениях в предопределенном формате с помощью MATLAB® объекты таблицы. Можно расширить эти таблицы и добавить такую информацию, как примененные стереотипы, значения свойств, связанные модели-ссылки, компоненты вариантов, интерфейсы и связи требований.

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

Определите базовую архитектуру

Минимальная необходимая структура для модели System Composer состоит из следующих наборов информации:

  • Таблица компонентов

  • Таблица портов

  • Таблица соединений

Чтобы импортировать дополнительные элементы, необходимо добавить столбцы в таблицы и добавить определенные значения для этих элементов.

Таблица компонентов

Информация о компонентах передается в виде значений в таблице MATLAB по предопределенным именам столбцов, где:

  • Name - имя компонента.

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

  • ParentID - идентификатор родительского компонента.

Для примера, Component_1_1 и Component_1_2 являются детьми Component_1.

ИмяЯ быParentID
root0 
Component_110
Component_1_121
Component_1_231
Component_240

Таблица портов

Информация о портах передается как значения в таблице MATLAB по предопределенным именам столбцов, где:

  • Name - имя порта.

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

  • ID - определяемый пользователем идентификатор порта, используемый для сопоставления портов с соединениями портов.

  • CompID - идентификатор компонента, к которому добавляется порт. Это компонент, переданный в таблице компонентов.

ИмяНаправлениеЯ быCompID
Port1Output11
Port2Input24
Port1_1Output32
Port1_2Input43

Таблица соединений

Информация о соединениях передается как значения в таблице MATLAB по предопределенным именам столбцов, где:

  • Name - имя соединения.

  • ID - идентификатор соединения, используемый для проверки правильности создания соединений в процессе импорта.

  • SourcePortID - идентификатор исходного порта.

  • DestPortID - идентификатор порта назначения.

ИмяЯ быSourcePortIDDestPortID
Conn1112
Conn2234

Импорт базовой архитектуры

Импортируйте базовую архитектуру из таблиц, созданных выше, в System Composer из Командного окна MATLAB.

systemcomposer.importModel('importedModel',components,ports,connections)

Откроется модель базовой архитектуры.

Basic architecture model.

Совет

Таблицы не содержат информацию о визуальном размещении модели. Можно расположить компоненты вручную или использовать Architecture > Arrange > Arrange Automatically.

Расширение импорта базовой архитектуры

Можно импортировать другие элементы модели в таблицы основных структур.

Импорт интерфейсов и сопоставление портов с интерфейсами

Чтобы определить интерфейсы, добавьте имена интерфейсов в ports таблица для связи портов с соответствующими portInterfaces таблица. Составьте таблицу, подобную components, ports, и connections. Информация, такая как имя интерфейса, имя связанного элемента вместе с типом данных, размерностями, модулями, сложностью, минимальным и максимальным значениями, передается в importModel функция в формате таблицы, показанном ниже.

ИмяЯ быParentIDDataTypeРазмерностиМодулиСложностьМинимумМаксимум
interface11       
elem12interface1interface31""real"[]""[]"
interface23 11""real"[]""[]"
elem24interface111""real"[]""[]"

Примечание

Анонимные интерфейсы не могут быть вложенными. Вы не можете задать анонимный интерфейс как тип данных элементов.

Чтобы сопоставить добавленный интерфейс с портами, добавьте столбца InterfaceID в ports таблица для определения интерфейса, который будет связан. Для примера, interface1 сопоставлен с Port1 как показано ниже.

ИмяНаправлениеЯ быCompIDInterfaceID
Port1Output11interface1
Port2Input24interface2
Port1_1Output32""
Port1_2Input43interface1

Импорт компонентов варианта, поведения Stateflow или ссылочных компонентов

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

Добавьте компонент варианта VarComp использование типа компонента Variant с вариантами Choice1 и Choice2. Задайте Choice2 как активный выбор.

Как добавить ссылку на Simulink® модель, измените тип компонента на Behavior и задайте имя образца модели simulink_model.

Как добавить Stateflow® Поведение графика в компоненте, измените тип компонента на StateflowBehavior. Если System Composer не обнаруживает лицензию или установку Stateflow, Composition вместо этого импортируется компонент.

ИмяЯ быParentIDReferenceModelNameComponentTypeActiveChoiceVariantControlVariantCondition
root0      
Component1C10simulink_modelBehavior   
VarCompV20 VariantChoice2  
Choice1C6V2   petrol 
Choice2C7V2   diesel 
Component3C30 StateflowBehavior   
Component1_1C4C1     
Component1_2C5C1     

Передайте измененный components таблица вместе с ports и connections таблицы в importModel функция.

Применение стереотипов и задание значений свойств к импортированной модели

Чтобы применить стереотипы к компонентам, портам и соединениям, добавьте StereotypeNames столбец в components таблица. Чтобы задать свойства стереотипов, добавьте столбец с именем, заданным с помощью имени профиля, имени стереотипа и имени свойства. Для примера назовите столбец UAVComponent_OnboardElement_Mass для UAVComponent профиль, a OnBoardElement стереотипа и Mass свойство.

Значения свойств устанавливаются в формате value{units}. Модули измерения и значения заполняются значениями по умолчанию, заданными в загруженном файле профиля.

ИмяЯ быParentIDStereotypeNamesUAVComponent_OnboardElement_MassUAVComponent_OnboardElement_Power
root0    
Component_110UAVComponent.OnboardElement0.93{kg}0.65{mW}
Component_1_121   
Component_1_231UAVComponent.OnboardElement0.93{kg}""
Component_240   

Присвоение ссылок требования к импортированной модели

Чтобы назначить ссылки требований модели, добавьте requirementLinks таблица с этими необходимыми столбцами:

  • Label - имя требования.

  • ID - идентификатор требования.

  • SourceID - элемент архитектуры, к которому присоединено требование.

  • DestinationType как сохраняются требования.

  • DestinationID где находится требование.

  • Type является типом требования.

МеткаЯ быSourceIDDestinationTypeDestinationIDНапечатать
rset#11components:1 linktype_rmi_slreqC:\Temp\rset.slreqx#1Implement
rset#22components:0 linktype_rmi_slreqC:\Temp\rset.slreqx#2Implement
rset#33ports:1linktype_rmi_slreqC:\Temp\rset.slreqx#3Implement
rset#44ports:3linktype_rmi_slreqC:\Temp\rset.slreqx#4Implement

Для импорта ссылок требований в модель архитектуры System Composer требуется Simulink Requirements™ лицензия.

Задайте элементы на архитектурном порте

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

Interface design with nested interface.

Элемент вложенного интерфейса mobile.elem является исходным элементом для соединения между портом архитектуры и портом компонента. Вложенный элемент mobile.alt является элементом назначения для соединения между портом архитектуры и портом компонента. Элемент интерфейса mobile и вложенный элемент mobile.alt являются исходными элементами для соединения между двумя портами архитектуры одной архитектуры.

ИмяЯ быSourcePortIDDestPortIDSourceElementDestinationElement
RootToComp1154mobile.elem 
RootToComp2251mobile.alt 
Comp1ToRoot326 interface
Comp2ToRoot436 mobile.alt
RootToRoot556mobile,mobile.alt 

Экспорт архитектуры

Чтобы экспортировать модель, передайте имя модели и как аргумент в exportModel функция. Функция возвращает структуру, содержащую четыре таблицы components, ports, connections, portInterfaces, и requirementLinks.

>> exportedSet = systemcomposer.exportModel(modelName)

Можно экспортировать набор в таблицы MATLAB, а затем преобразовать эти таблицы во внешние форматы файлов, включая Microsoft® Excel® или баз данных.

Five tables in a structure called components, ports, connections, port interfaces, and requirement links.

Обновление ссылок на требования к ссылкам из импортированного файла

После импорта ссылок на требования из файла обновляйте ссылки на ссылки для модели, чтобы в полной мере использовать функциональность Requirements™ Simulink ®.

model = systemcomposer.openModel('reqImportExample');

Импорт ссылок требования из файла Word

Откройте файл Microsoft ® Word Functional_Requirements.docx с перечисленными требованиями. Выделите требование к соединению.

В модели выберите компонент, с которым необходимо связать требование. В раскрывающемся списке выберите Requirements > Link Selection to Word.

Экспорт модели и сохранение во внешние файлы

Экспортируйте модель и сохраните во внешний файл.

exportedSet = systemcomposer.exportModel('reqImportExample');
SaveToExcel('exportedModel',exportedSet);

Импортируйте ссылки требования из файла и импортируйте в модель

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

structModel = ImportModelFromExcel('exportedModel.xls','Components','Ports', ...
'Connections','PortInterfaces','RequirementLinks');
structModel.readTableFromExcel;

arch = systemcomposer.importModel('reqNewExample',structModel.Components, ...
structModel.Ports,structModel.Connections,structModel.Interfaces,structModel.RequirementLinks);

Обновление ссылок на ссылочные требования

Чтобы интегрировать ссылки требования к модели, обновляйте ссылки в модели.

close(model);
model2 = systemcomposer.openModel('reqNewExample');
systemcomposer.updateLinksToReferenceRequirements('reqNewExample','linktype_rmi_word','Functional_Requirements.docx');

См. также

| | |

Похожие темы