exponenta event banner

Анализ архитектуры

Анализ является методом количественной оценки архитектуры для определенных характеристик. Статический анализ анализирует структуру системы. Статический анализ использует функцию анализа и параметрические значения свойств, захваченных в системной модели. Используйте анализ для расчета общей надежности, массового сворачивания, производительности или тепловых характеристик системы или для выполнения анализа SWaP.

Запись статических анализов на основе свойств элементов для выполнения основанных на данных торговых исследований и проверки требований к системе. Рассмотрим электромеханическую систему, в которой существует компромисс между стоимостью и весом, а более легкие компоненты, как правило, стоят дороже. Процесс принятия решения включает в себя анализ общей стоимости и веса системы на основе свойств ее элементов и повторение свойств для достижения решения, приемлемого как с точки зрения стоимости, так и с точки зрения веса.

Поток операций анализа состоит из следующих шагов:

  1. Определите профиль, содержащий набор стереотипов, описывающих некоторые анализируемые свойства (например, стоимость и вес).

  2. Примените профиль к архитектурной модели и добавьте стереотипы из этого профиля к элементам модели (компонентам, портам или соединителям).

  3. Укажите значения свойств этих элементов.

  4. Создайте экземпляр архитектурной модели, представляющий собой дерево элементов, соответствующее иерархии модели с развернутыми всеми общими архитектурами и примененной конфигурацией вариантов.

  5. Запишите функцию анализа для вычисления значений, необходимых для исследования. Это решатель статических ограничений для параметров и значений связанных свойств, захваченных в системной модели.

  6. Выполните функцию анализа.

Задать свойства для анализа

В этом примере показано, как включить анализ путем добавления стереотипов к элементам модели и установки значений свойств. Модель обеспечивает основу для анализа компромисса между общей стоимостью и весом компонентов в простой архитектурной модели роботизированной системы.

Загрузить модель

Откройте окно systemWithProps модель.

systemWithProps

Импорт профиля

Включите анализ свойств, предварительно импортировав профиль. В разделе «Профили» панели инструментов выберите «Управление» > «Импорт» и перейдите к профилю.

Применение стереотипов к элементам модели

Применение стереотипов ко всем элементам модели, которые являются частью анализа. Используйте пункты меню, которые применяют стереотипы ко всем элементам определенного типа. Выберите «Применить стереотипы» > «Применить к», а затем «Компоненты» > «Этот слой». Убедитесь, что стереотип применяется к компоненту верхнего уровня, если требуется вычислить совокупное значение.

Задать значения свойств

Задайте значения свойств для каждого элемента модели.

  1. Выберите элемент модели.

  2. В Инспекторе свойств разверните имя стереотипа и введите значения свойств.

Robot component stereotype displayed from the property inspector called Physical Component with properties named: unit cost 5000 dollars, volume 0 meters cubed, and weight 3 kilograms.

Создание экземпляра модели для анализа

Создайте экземпляр модели архитектуры, который можно использовать для анализа. Экземпляр является вхождением архитектурной модели в данный момент времени. Можно обновить экземпляр с изменениями в модели, но экземпляр не будет обновляться с изменениями в активных исполнениях или ссылках модели. Можно использовать экземпляр, сохраненный в .MAT файла модели архитектуры System Composer для анализа.

В разделе «Виды» выберите «Модель анализа» > «Модель анализа». В этом диалоговом окне укажите все параметры, необходимые для создания и просмотра модели анализа.

Instantiate Architecture Model window with stereotypes listed on the left and configure analysis on the right with analysis function, iteration order bottom-up, and instance model name system with props. Options are to cancel or instantiate.

В дереве стереотипов перечислены стереотипы всех профилей, загруженных в текущей сессии, и можно выбрать те, чьи свойства должны быть доступны в модели экземпляра. Можно найти функцию анализа, создать новую или пропустить анализ. Если для функции анализа требуются входные данные, отличные от элементов модели (например, валютный курс для вычисления стоимости), введите их в аргументах Function. Выберите режим итерации элементов модели, например: Bottom-up для перемещения от листьев дерева к корню.

Примечание

Строгий режим обеспечивает получение свойств экземплярами только в том случае, если в спецификации экземпляра применен стереотип.

Чтобы просмотреть экземпляр, щелкните Создать экземпляр.

Analysis output chart.

В окне «Просмотр анализа» отображаются все компоненты в первом столбце. Другие столбцы являются свойствами для всех стереотипов, выбранных для этого экземпляра. Если свойство не является частью стереотипа, применяемого к элементу, это поле затемняется. С помощью кнопки «Фильтр» можно скрыть свойства определенных стереотипов. При выборе элемента свойства экземпляра отображают его стереотипы и значения свойств. Можно сохранить экземпляр в MAT-файле и снова открыть его в средстве просмотра анализа.

Select an interface element in the analysis viewer to see the drop down option under Update to Update Element.

При внесении изменений в модель во время открытия экземпляра его можно синхронизировать с моделью. Обновление перемещает изменения из экземпляра в модель. Обновление обновляет экземпляр из модели. Несинхронизированные изменения отображаются другим цветом. При выборе одного элемента опция Обновляется элемент (Update Element).

Функция анализа записи

Напишите функцию для анализа модели архитектуры с помощью API экземпляра. Функции анализа - это функции MATLAB ®, вычисляющие значения, необходимые для оценки архитектуры с использованием свойств каждого элемента в экземпляре модели.

При настройке экземпляра анализа можно добавить функцию анализа. После выбора интересующих стереотипов создайте функцию шаблона, щелкнув рядом с полем Функция анализа. Созданный M-файл включает в себя код для получения всех значений свойств из всех стереотипов, которые подлежат анализу. Функция анализа работает с одним элементом - агрегатные значения генерируются путем итерации этой функции по всем элементам модели при выполнении анализа из Analysis Viewer.

function systemWithProps_1(instance,varargin)

if instance.isComponent()
    if instance.hasValue('SystemProfile.PhysicalElement.unitCost')
        sysComponent_unitPrice = instance.getValue('SystemProfile.PhysicalElement.unitCost');
    end
    for child = instance.Components
        comp_price = child.getValue('SystemProfile.PhysicalElement.unitCost');
        sysComponent_unitPrice = sysComponent_unitPrice + comp_price;
    end
   instance.setValue('SystemProfile.PhysicalElement.unitCost',sysComponent_unitPrice);
end

В созданном файле instance - экземпляр элемента, на котором в данный момент выполняется функция анализа. Для анализа можно выполнить следующие операции:

  • Доступ к свойству экземпляра: instance.getValue('<profile>.<stereotype>.<property>')

  • Задайте свойство экземпляра: instance.setValue('<profile>.<stereotype>.<property>',value)

  • Доступ к подкомпонентам компонента: instance.Components

  • Доступ к соединителям в компоненте: instance.Connectors

getValue генерирует ошибку, если свойство не существует. Вы можете использовать hasValue чтобы запросить, имеют ли элементы в модели свойства перед получением значения.

Например, этот код вычисляет вес компонента как сумму весов его подкомпонентов.

if instance.isComponent()
    if instance.hasValue('SystemProfile.PhysicalElement.weight')
        weight = instance.getValue('SystemProfile.PhysicalElement.weight');
    end
  for child = instance.Components
    subcomp_weight = child.getValue('SystemProfile.PhysicalElement.weight');
    weight = weight + subcomp_weight;
  end
  instance.setValue('SystemProfile.PhysicalElement.weight',weight)
end

После завершения функции анализа добавьте ее к анализу в поле Функция анализа (Analysis function). Функция анализа может принимать дополнительные входные аргументы, например, константу преобразования, если веса находятся в разных единицах в различных стереотипах. Когда этот код выполняется для всех компонентов рекурсивно, начиная с самых глубоких компонентов иерархии до верхнего уровня, общий вес системы присваивается weight свойства компонента верхнего уровня.

Выполнить функцию анализа

Запустите функцию анализа с помощью средства просмотра анализа.

  1. Выберите или измените функцию анализа с помощью меню Анализ (Analyze).

  2. Выберите метод итерации.

    • Pre-order - начать с верхнего уровня, перейти к дочернему компоненту, рекурсивно обработать подкомпоненты этого компонента перед переходом к одноуровневому компоненту.

    • Top-Down - Как предзаказ, но обработать все одноуровневые компоненты перед переходом к их субкомпонентам.

    • Post-order - начните с компонентов без подкомпонентов, обработайте каждый родственный узел, а затем переместите его в родительский.

    • Bottom-up - Как после порядка, но обрабатывать все подкомпоненты на одной глубине, прежде чем перейти к их родителям.

    Метод итерации зависит от вида выполняемого анализа. Например, для анализа, в котором вес компонента является суммой весов его компонентов, необходимо убедиться, что веса подкомпонентов вычислены первыми, поэтому метод итерации должен быть снизу вверх.

  3. Нажмите кнопку «Анализ».

System Composer выполняет функцию анализа над каждым элементом модели и вычисляет результаты. Вычисленные свойства отображаются в окне «Просмотр анализа» другим цветом.

The unit cost is computed and shown in yellow.

См. также

| | | | | | | | | | |

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