Для построения модели System Composer™ можно импортировать информацию о компонентах, портах и соединениях в предопределенном формате с помощью объектов таблицы MATLAB ®. Можно расширить эти таблицы и добавить такие сведения, как применяемые стереотипы, значения свойств, связанные ссылки на модель, компоненты исполнения, интерфейсы и связи требований.
Аналогичным образом можно экспортировать информацию о компонентах, иерархии компонентов, портах компонентов, соединениях между компонентами, привязках связанных моделей, исполнениях, стереотипах элементов, интерфейсах и связях требований.
Минимально необходимая структура для модели System Composer состоит из следующих наборов информации:
Таблица компонентов
Таблица портов
Таблица соединений
Для импорта дополнительных элементов необходимо добавить столбцы в таблицы и добавить определенные значения для этих элементов.
Информация о компонентах передается в виде значений в таблице MATLAB относительно предварительно определенных имен столбцов, где:
Name - имя компонента.
ID - определяемый пользователем идентификатор, используемый для отображения дочерних компонентов и добавления портов к компонентам.
ParentID является идентификатором родительского компонента.
Например, Component_1_1 и Component_1_2 являются детьми Component_1.
| Имя | Я бы | ParentID |
|---|---|---|
root | 0 | |
Component_1 | 1 | 0 |
Component_1_1 | 2 | 1 |
Component_1_2 | 3 | 1 |
Component_2 | 4 | 0 |
Информация о портах передается в виде значений в таблице MATLAB относительно предварительно определенных имен столбцов, где:
Name - имя порта.
Direction - направление входного или выходного порта.
ID - определяемый пользователем идентификатор порта, используемый для сопоставления портов с портовыми соединениями.
CompID - идентификатор компонента, к которому добавлен порт. Это компонент, переданный в таблице компонентов.
| Имя | Направление | Я бы | CompID |
|---|---|---|---|
Port1 | Output | 1 | 1 |
Port2 | Input | 2 | 4 |
Port1_1 | Output | 3 | 2 |
Port1_2 | Input | 4 | 3 |
Информация о соединениях передается в виде значений в таблице MATLAB относительно предварительно определенных имен столбцов, где:
Name - имя подключения.
ID - идентификатор соединения, используемый для проверки правильности создания соединений в процессе импорта.
SourcePortID - идентификатор исходного порта.
DestPortID - идентификатор порта назначения.
| Имя | Я бы | SourcePortID | DestPortID |
|---|---|---|---|
Conn1 | 1 | 1 | 2 |
Conn2 | 2 | 3 | 4 |
Импортируйте базовую архитектуру из таблиц, созданных выше, в System Composer из окна команд MATLAB.
systemcomposer.importModel('importedModel',components,ports,connections)Откроется базовая модель архитектуры.

Совет
Таблицы не содержат информации о визуальном макете модели. Компоненты можно расположить вручную или с помощью команды «Архитектура» > «Упорядочить» > «Упорядочить автоматически».
В базовые таблицы структуры можно импортировать другие элементы модели.
Чтобы определить интерфейсы, добавьте имена интерфейсов в ports таблица для связывания портов с соответствующими portInterfaces таблица. Создание таблицы, аналогичной components, ports, и connections. Информация, такая как имя интерфейса, имя связанного элемента вместе с типом данных, размерами, единицами измерения, сложностью, минимальным и максимальным значениями, передается в importModel в формате таблицы, показанном ниже.
| Имя | Я бы | ParentID | DataType | Размеры | Единицы | Сложность | Минимум | Максимум |
|---|---|---|---|---|---|---|---|---|
interface1 | 1 | |||||||
elem1 | 2 | interface1 | interface3 | 1 | "" | real | "[]" | "[]" |
interface2 | 3 | 1 | 1 | "" | real | "[]" | "[]" | |
elem2 | 4 | interface1 | 1 | 1 | "" | real | "[]" | "[]" |
Примечание
Анонимные интерфейсы не могут быть вложенными. Анонимный интерфейс нельзя определить как тип данных элементов.
Чтобы сопоставить добавленный интерфейс с портами, добавьте столбец InterfaceID в ports для указания интерфейса, который необходимо связать. Например, interface1 сопоставлен с Port1 как показано ниже.
| Имя | Направление | Я бы | CompID | InterfaceID |
|---|---|---|---|---|
Port1 | Output | 1 | 1 | interface1 |
Port2 | Input | 2 | 4 | interface2 |
Port1_1 | Output | 3 | 2 | "" |
Port1_2 | Input | 4 | 3 | interface1 |
Можно добавить компоненты вариантов, как и любой другой компонент в components за исключением указания имени активного варианта. Добавьте варианты в качестве дочерних компонентов к компонентам исполнения. Укажите варианты в качестве строковых значений в VariantControl столбец. Можно ввести выражения в VariantCondition столбец.
Добавление компонента варианта VarComp использование типа компонента Variant с выбором Choice1 и Choice2. Набор Choice2 как активный выбор.
Чтобы добавить ссылочную модель Simulink ®, измените тип компонента на Behavior и укажите имя ссылочной модели simulink_model.
Чтобы добавить поведение диаграммы Stateflow ® для компонента, измените тип компонента на StateflowBehavior. Если System Composer не обнаруживает лицензию или установку Stateflow, Composition вместо этого импортируется компонент.
| Имя | Я бы | ParentID | ReferenceModelName | ComponentType | ActiveChoice | VariantControl | VariantCondition |
|---|---|---|---|---|---|---|---|
root | 0 | ||||||
Component1 | C1 | 0 | simulink_model | Behavior | |||
VarComp | V2 | 0 | Variant | Choice2 | |||
Choice1 | C6 | V2 | petrol | ||||
Choice2 | C7 | V2 | diesel | ||||
Component3 | C3 | 0 | StateflowBehavior | ||||
Component1_1 | C4 | C1 | |||||
Component1_2 | C5 | C1 |
Передача измененного components таблица вместе с ports и connections таблицы в importModel функция.
Чтобы применить стереотипы к компонентам, портам и соединениям, добавьте StereotypeNames к столбцу components таблица. Чтобы задать свойства для стереотипов, добавьте столбец с именем, определенным с помощью имени профиля, имени стереотипа и имени свойства. Например, назовите столбец UAVComponent_OnboardElement_Mass для UAVComponent профиль, a OnBoardElement стереотипа и Mass собственность.
Значения свойств задаются в формате value{units}. Единицы измерения и значения заполняются из значений по умолчанию, определенных в загруженном файле профиля.
| Имя | Я бы | ParentID | StereotypeNames | UAVComponent_OnboardElement_Mass | UAVComponent_OnboardElement_Power |
|---|---|---|---|---|---|
root | 0 | ||||
Component_1 | 1 | 0 | UAVComponent.OnboardElement | 0.93{kg} | 0.65{mW} |
Component_1_1 | 2 | 1 | |||
Component_1_2 | 3 | 1 | UAVComponent.OnboardElement | 0.93{kg} | "" |
Component_2 | 4 | 0 |
Чтобы назначить модели связи требований, добавьте requirementLinks с этими обязательными столбцами:
Label - имя требования.
ID - идентификатор требования.
SourceID - элемент архитектуры, к которому прилагается требование.
DestinationType это способ сохранения требований.
DestinationID это место, где находится требование.
Type является типом требования.
| Этикетка | Я бы | SourceID | DestinationType | DestinationID | Напечатать |
|---|---|---|---|---|---|
rset#1 | 1 | components:1 | linktype_rmi_slreq | C:\Temp\rset.slreqx#1 | Implement |
rset#2 | 2 | components:0 | linktype_rmi_slreq | C:\Temp\rset.slreqx#2 | Implement |
rset#3 | 3 | ports:1 | linktype_rmi_slreq | C:\Temp\rset.slreqx#3 | Implement |
rset#4 | 4 | ports:3 | linktype_rmi_slreq | C:\Temp\rset.slreqx#4 | Implement |
Лицензия Simulink Requirements™ необходима для импорта ссылок требований в архитектурную модель System Composer.
В connections В таблице можно указать различные типы элементов сигнального интерфейса в качестве исходных или целевых элементов. Соединения могут формироваться от порта корневой архитектуры к порту компонента, от порта компонента к порту корневой архитектуры или между двумя портами корневой архитектуры одной архитектуры.

Вложенный элемент интерфейса mobile.elem является исходным элементом для соединения между архитектурным портом и портом компонента. Вложенный элемент mobile.alt является элементом назначения для соединения между портом архитектуры и портом компонента. Элемент интерфейса mobile и вложенный элемент mobile.alt являются исходными элементами для соединения между двумя архитектурными портами одной архитектуры.
| Имя | Я бы | SourcePortID | DestPortID | SourceElement | DestinationElement |
RootToComp1 | 1 | 5 | 4 | mobile.elem | |
RootToComp2 | 2 | 5 | 1 | mobile.alt | |
Comp1ToRoot | 3 | 2 | 6 | interface | |
Comp2ToRoot | 4 | 3 | 6 | mobile.alt | |
RootToRoot | 5 | 5 | 6 | mobile,mobile.alt |
Чтобы экспортировать модель, передайте имя модели и в качестве аргумента exportModel функция. Функция возвращает структуру, содержащую четыре таблицы components, ports, connections, portInterfaces, и requirementLinks.
>> exportedSet = systemcomposer.exportModel(modelName)
Можно экспортировать набор в таблицы MATLAB, а затем преобразовать их во внешние форматы файлов, включая Microsoft ® Excel ® или базы данных.

После импорта ссылок на требования из файла обновите ссылки на требования к ссылкам для модели, чтобы в полной мере использовать функциональность 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');
exportModel | importModel | systemcomposer.io.ModelBuilder | updateLinksToReferenceRequirements