Профиль содержит набор стереотипов элементов модели с пользовательскими свойствами. Стереотип может быть применим к компонентам, портам, соединениям, интерфейсам и архитектурам, или может применяться только к определенному типу элемента, такому как компоненты. Когда к элементу модели применяется стереотип, можно задать значения свойств как часть его архитектурного определения. В дополнение к тому, что вы можете управлять свойствами, относящимися к спецификации системы, в рамках модели архитектуры, стереотипы и связанные свойства также облегчают анализ модели архитектуры.
Каждый профиль содержит набор стереотипов, а каждый стереотип содержит набор свойств.
Цель этого примера состоит в том, чтобы вычислить общую стоимость системы с учетом стоимости ее составляющих частей. Профиль примера ограничивается этой целью.
Загрузите профиль, чтобы сделать стереотипы доступными для элементов модели.
Запустите System Composer. Введите systemcomposer
в командной строке MATLAB.
На вкладке Modeling выберите Import а затем в раскрывающемся списке выберите Import.
Перейдите к папке примеров. <matlabroot>\toolbox\systemcomposer\examples
.
Выберите simpleProfile
.
На панели инструментов нажмите кнопку Import и выберите Edit, чтобы открыть Редактор профилей.
В профиле наблюдайте эти стереотипы.
Стереотип | Приложение | Свойства |
---|---|---|
sysGeneral | компоненты, порты, коннекторы |
|
| ||
sysComponent | компоненты |
|
| ||
sysConnector | соединители |
|
| ||
|
Импорт профиля делает стереотипы доступными для их применимых элементов.
sysGeneral
является общим стереотипом, применимым ко всем типам элементов, который позволяет добавлять родовые свойства, такие как Note
, какие представители проекта могут использовать для отслеживания любых проблем с элементом.
sysComponent
применяется только к компонентам и включает такие свойства, как вес и стоимость, которые способствуют общему весу и спецификациям затрат системы робота.
sysConnector
стереотип применяется к соединителям и включает в себя ценовые и весовые свойства, заданные на метр длины (при условии, что физический соединитель подобен проводу). Эти свойства помогают вычислить общий вес и стоимость проекта в этом конкретном примере.
sysPort
стереотипы применяются к портам и не содержат никаких свойств.
Примечание
Вы можете добавить значок стереотипа ко всем стереотипам уровня компонента. Вот ваш выбор:
Добавьте пользовательские свойства к элементу модели путем применения стереотипа из загруженного профиля. Эта процедура использует модель ex_RobotArch
.
open_system('ex_RobotArch')
На вкладке Modeling выберите Import а затем в раскрывающемся списке выберите Import.
Выберите simpleProfile
.
Откройте Sensors
компонент.
На вкладке Modeling выберите Apply Stereotypes.
В диалоговом окне «Применение стереотипов» и из списка Apply stereotype(s) to выберите All elements
. Из списка Scope выберите This layer
.
В списке доступных стереотипов выберите simpleProfile.sysGeneral
.
Нажмите Apply и закройте окно, чтобы выйти из диалогового окна.
Выберите GPS
компонент. Щелкните правой кнопкой мыши и выберите Apply Stereotype. Выберите simpleProfile.sysComponent
стереотипа.
Примечание
The sysComponent
стереотип используется для управления физическими свойствами и затратами.
Повторите для GyroData
и DataProcessing
компоненты.
Перейдите к верхней части модели. Применить sysComponent
стереотипа к Sensors
и Trajectory Planning
компоненты и модель архитектуры верхнего уровня. Щелкните правой кнопкой мыши каждый компонент или пространство верхнего уровня и выберите Apply Stereotype, чтобы убедиться simpleProfile.sysComponent
выбран.
Применить sysConnector
стереотип применяется ко всем соединителям в Sensors
слой, Trajectory Planning
слой и верхний слой модели. Нажмите и удерживайте Shift, чтобы выбрать несколько соединителей. Щелкните правой кнопкой мыши по выделенной области, нажмите Apply Stereotype и выберите sysConnector
стереотипа.
Установите значения свойств, чтобы включить анализ затрат. Последуйте этому примеру для GPS
модуль.
В Sensors
выберите компонент GPS
компонент.
Откройте Property Inspector. Щелкните раскрывающийся список в Design разделе панели инструментов и выберите Property Inspector.
Разверните sysComponent
стереотипа, чтобы увидеть свойства.
Задайте unitPrice
на 5
и нажмите Enter.
Выберите GPSData
соединитель портов. Проверяйте это length
установлено в 0.05
и unitPrice
на 0.1
.
Завершите модель, используя значения в этой таблице. Если свойства нет в таблице, можно оставить его пустым, так как это не влияет на анализ. Закрепите Property Inspector в редакторе, чтобы сделать его постоянно видимым во время этой операции.
Слой | Элемент | Свойство | Значение |
---|---|---|---|
Верхний слой | Encoder соединитель | длина | 0.5 |
unitPrice | 0.1 | ||
SensorData соединитель | длина | 0.6 | |
unitPrice | 0.2 | ||
MotionCommand соединитель | длина | 0.5 | |
unitPrice | 0.2 | ||
Sensors компонент | unitPrice | 5 | |
Trajectory Planning компонент | unitPrice | 500 | |
Motion компонент | unitPrice | 750 | |
Слой датчиков | GyroData компонент | unitPrice | 50 |
DataProcessing компонент | unitPrice | 500 | |
GPS компонент | unitPrice | 100 | |
GPSData соединитель | длина | 0.05 | |
unitPrice | 0.1 | ||
MotionData соединитель | длина | 0.05 | |
unitPrice | 0.1 | ||
RawData соединитель | длина | 0.05 | |
unitPrice | 0.1 |
Свойства уже заданы в ex_RobotArch_props.slx
. Откройте модель, чтобы выполнить анализ.
open_system('ex_RobotArch_props')
Проанализируйте общую стоимость для всех компонентов модели робота.
На вкладке Modeling и в разделе Views выберите Analysis Model, а затем из выпадающего списка выберите Analysis Model.
Добавьте функцию анализа. В поле функции Анализ введите имя функции ex_RobotArch_analysis
без внутреннего абонента, а затем нажмите кнопку. Файл функции MATLAB создается и сохраняется с именем ex_RobotArch_analysis.m
.
Функция анализа включает конструкции, которые получают свойства из элементов модели, заданные в качестве шаблона. Измените этот шаблон, чтобы добавить стоимость отдельных элементов для получения общих затрат для их родительской архитектуры. Эта функция вычисляет стоимость для одного элемента модели как общую сумму собственных затрат и стоимость всех его дочерних компонентов.
function ex_RobotArch_analysis(instance,varargin) if instance.isComponent() if instance.hasValue("sysComponent.unitPrice") sysComponent_unitPrice = instance.getValue("sysComponent.unitPrice"); for child = instance.Components if child.hasValue("sysComponent.unitPrice") comp_price = child.getValue("sysComponent.unitPrice"); sysComponent_unitPrice = sysComponent_unitPrice + comp_price; end end for child = instance.Connectors if child.hasValue("sysConnector.unitPrice") unitPrice = child.getValue("sysConnector.unitPrice"); length = child.getValue("sysConnector.length"); sysComponent_unitPrice = unitPrice*length + sysComponent_unitPrice; end end instance.setValue("sysComponent.unitPrice",sysComponent_unitPrice) end end
Вернитесь к экрану Instantiate Architecture Model и нажмите Instantiate. Средство просмотра анализа показывает свойства каждого элемента модели. Значения по умолчанию для начала анализа берутся из значений свойств, введенных при присоединении стереотипа к модели и редактировании их значений.
В Analysis разделе выберите BottomUp
в качестве метода итерации и нажмите кнопку Analyze.
Стоимость каждого элемента добавляется снизу вверх, чтобы найти стоимость системы. Результат записывается в образец анализа и отображается в Analysis Viewer.
applyProfile
| applyStereotype
| getValue
| hasValue
| instantiate
| iterate
| setProperty
| setValue