exponenta event banner

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

Для построения модели 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.

Совет

Таблицы не содержат информации о визуальном макете модели. Компоненты можно расположить вручную или с помощью команды «Архитектура» > «Упорядочить» > «Упорядочить автоматически».

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

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

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

Чтобы определить интерфейсы, добавьте имена интерфейсов в 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

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

Можно добавить компоненты вариантов, как и любой другой компонент в 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

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

Укажите элементы в порту архитектуры

В 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.

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

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

model = systemcomposer.openModel('reqImportExample');

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

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

В модели выберите компонент, с которым требуется связать требование. В раскрывающемся списке выберите Требования > Связать выбор с 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');

См. также

| | |

Связанные темы