Чтобы создать модель 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)
Откроется модель базовой архитектуры.
Совет
Таблицы не содержат информацию о визуальном размещении модели. Можно расположить компоненты вручную или использовать Architecture > Arrange > Arrange Automatically.
Можно импортировать другие элементы модели в таблицы основных структур.
Чтобы определить интерфейсы, добавьте имена интерфейсов в 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 |
Для импорта ссылок требований в модель архитектуры System Composer требуется Simulink Requirements™ лицензия.
В 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® или баз данных.
После импорта ссылок на требования из файла обновляйте ссылки на ссылки для модели, чтобы в полной мере использовать функциональность 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');
exportModel
| importModel
| systemcomposer.io.ModelBuilder
| updateLinksToReferenceRequirements