Профиль содержит набор стереотипов элемента модели с пользовательскими свойствами. Стереотип может быть применим к компонентам, портам, связям и архитектурам, или он может сделанный применимым только к определенному типу элемента, такому как компоненты. Когда элементу модели применились к стереотипу это, можно задать значения свойств как часть его архитектурного определения. В дополнение к разрешению вам управлять свойствами, относящимися к системной спецификации в модели архитектуры, стереотипы и сопоставленные свойства также упрощают анализ модели архитектуры.
Каждый профиль содержит набор стереотипов, и каждый стереотип содержит набор свойств.
Цель этого примера состоит в том, чтобы вычислить общую стоимость системы, учитывая стоимость ее составных частей. Профиль в качестве примера ограничивается этой целью.
Загрузите профиль, чтобы сделать стереотипы доступными для элементов модели.
Запустите System Composer. Введите systemcomposer
в командной строке MATLAB.
Во вкладке Modeling выберите Import и затем от выпадающего, выберите Import .
Просмотрите к папке в качестве примера. <matlabroot>\toolbox\systemcomposer\examples
.
Выберите simpleProfile
.
От панели инструментов нажмите Import и выберите Edit, чтобы открыть Редактор Профиля.
В профиле наблюдайте эти стереотипы.
Стереотип | Приложение | Свойства |
---|---|---|
sysGeneral | компоненты, порты, коннекторы |
|
| ||
sysComponent | компоненты |
|
| ||
sysConnector | коннекторы |
|
| ||
|
Импорт профиля делает стереотипы доступными для их применимых элементов.
sysGeneral
общий стереотип, применимый ко всем типам элемента, который позволяет добавить типовые свойства, такие как Note
, который члены проекта могут использовать, чтобы отследить любые проблемы с элементом.
sysComponent
применяется только к компонентам и включает свойства, такие как вес и стоимость, которые способствуют общей массе и стоимости спецификаций системы робота.
sysConnector
стереотип применяется к коннекторам и включает цену и свойства веса, заданные на метр длины (принимающий физический коннектор как провод). Эти свойства помогают вычислить общую массу и стоимость проекта в этом конкретном примере.
Примечание
Можно добавить стереотипный значок во все стереотипы уровня компонента. Это ваш выбор:
Добавьте пользовательские свойства в элемент модели путем применения стереотипа от загруженного профиля. Эта процедура использует модель ex_RobotArch
.
Откройте компонент Sensors.
На вкладке Modeling выберите Apply Stereotypes.
В диалоговом окне Apply Stereotypes и из списка Apply to, выберите All elements
. Из списка in выберите This layer
.
В списке доступных стереотипов выберите simpleProfile.sysGeneral
.
Нажмите Apply и закройте окно, чтобы выйти из диалогового окна.
Выберите компонент GPS. Щелкните правой кнопкой и выберите Apply Stereotype. Проверяйте тот simpleProfile.sysComponent
выбран.
Примечание
sysComponent
стереотип используется для управления физические свойства и стоится.
Перейдите к верхней части модели. Проверяйте что sysComponent
стереотип применяется к Sensors и компонентам Trajectory Planning и модели архитектуры верхнего уровня. Щелкните правой кнопкой по каждому компоненту или пробелу на верхнем уровне, и выберите Apply Stereotype, чтобы гарантировать simpleProfile.sysComponent
выбран.
Проверяйте что sysConnector
стереотип применяется ко всем коннекторам в слое Sensors, слое Trajectory Planning и слое топ-модели. Нажмите и содержите Shift, чтобы выбрать несколько коннекторов. Щелкните правой кнопкой по выбору, нажмите Apply Stereotype и проверяйте, что стереотип выбран.
Установите значения свойств включать анализ затрат. Последуйте этому примеру для модуля GPS.
В компоненте Sensors выберите компонент GPS.
Откройте Property Inspector. Кликните по выпадающему в разделе Design панели инструментов и выберите Property Inspector.
Расширьте стереотип sysComponent, чтобы видеть свойства.
Установите unitPrice
к 5
и нажмите Enter.
Выберите разъем порта GPSData. Проверяйте тот length
установлен в 0.05
и unitPrice
к 0.1
.
Завершите модель с помощью значений в этой таблице. Если свойство не находится в таблице, можно оставить его незаполненный, когда это не оказывает влияния на анализ. Прикрепите Property Inspector к редактору, чтобы сделать его постоянно видимым во время этой операции.
Слой | Элемент | Свойство | Значение |
---|---|---|---|
Верхний слой | Коннектор энкодера | длина | 0.5 |
unitPrice | 0.1 | ||
Коннектор SensorData | длина | 0.6 | |
unitPrice | 0.2 | ||
Коннектор MotionCommand | длина | 0.5 | |
unitPrice | 0.2 | ||
Компонент датчиков | unitPrice | 5 | |
Компонент Планирования траектории | unitPrice | 500 | |
Компонент движения | unitPrice | 750 | |
Слой Sensors | Компонент 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
.
Анализируйте общую стоимость на все компоненты в модели робота.
На вкладке Modeling и в разделе Views, выберите Analysis Model, и затем из выпадающего списка выбирают Analysis Model.
Добавьте аналитическую функцию. В Аналитическом поле функции введите имя функции ex_RobotArch_analysis
без расширения, и затем нажимают кнопку. Файл функции MATLAB создается и сохранен с именем ex_RobotArch_analysis.m
.
Аналитическая функция включает построения, которые получают свойства от элементов модели, данных как шаблон. Измените этот шаблон, чтобы добавить стоимость отдельных элементов, чтобы получить общую стоимость на их родительскую архитектуру. Эта функция вычисляет стоимость для одного элемента модели как общее количество его собственной стоимости и стоимости всех его дочерних компонентов.
function ex_RobotArch_analysis(instance,varargin) if instance.isComponent() sysComponent_unitPrice = instance.getValue("sysComponent.unitPrice"); for child = instance.Components comp_price = child.getValue("sysComponent.unitPrice"); sysComponent_unitPrice = sysComponent_unitPrice + comp_price; 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
Возвратитесь к экрану Instantiate Architecture Model и нажмите Instantiate. Аналитическое Средство просмотра показывает свойства каждого элемента модели. Значения по умолчанию для запуска Анализа взяты из значений свойств, которые вы ввели, когда вы присоединили стереотип к модели и отредактировали их значения.
В разделе Analysis выберите BottomUp
как метод итерации и нажимают Analyze.
Стоимость каждого элемента добавляется восходящим способом, чтобы найти стоимость системы. Результат записан в аналитический экземпляр и отображается в Analysis Viewer.