Создайте образец анализа из спецификации
создает образец модели для анализа.instance
= instantiate(model
,properties
,name
)
Эта функция является частью образец, который можно использовать, чтобы итерационно анализировать модель, элемент за элементом. instance
ссылается на образец элемента, на котором выполняется итерация.
создает образец модели для анализа с дополнительными аргументами.instance
= instantiate(___,Name,Value
)
Создайте экземпляры всех свойств стереотипа, которые будут применяться к конкретным элементам во время создания экземпляра.
Создайте профиль для признаков задержки.
profile = systemcomposer.profile.Profile.createProfile('LatencyProfile'); % Add base stereotype with properties latencybase = profile.addStereotype('LatencyBase'); latencybase.addProperty('latency','Type','double'); latencybase.addProperty('dataRate','Type','double','DefaultValue','10'); % Add connector stereotype with properties connLatency = profile.addStereotype('ConnectorLatency','Parent',... 'LatencyProfile.LatencyBase'); connLatency.addProperty('secure','Type','boolean'); connLatency.addProperty('linkDistance','Type','double'); % Add component stereotype with properties nodeLatency = profile.addStereotype('NodeLatency','Parent',... 'LatencyProfile.LatencyBase'); nodeLatency.addProperty('resources','Type','double','DefaultValue','1'); % Add port stereotype with properties portLatency = profile.addStereotype('PortLatency','Parent',... 'LatencyProfile.LatencyBase'); portLatency.addProperty('queueDepth','Type','double'); portLatency.addProperty('dummy','Type','int32');
Создайте экземпляры всех свойств стереотипа.
model = systemcomposer.createModel('archModel',true); % Create new model model.applyProfile('LatencyProfile'); % Apply profile to model % Specify type of elements each stereotype can be applied on NodeLatency = struct('elementKinds',['Component']); ConnectorLatency = struct('elementKinds',['Connector']); LatencyBase = struct('elementKinds',['Connector','Port','Component']); PortLatency = struct('elementKinds',['Port']); % Create the analysis structure LatencyAnalysis = struct('NodeLatency',NodeLatency, ... 'ConnectorLatency',ConnectorLatency, ... 'PortLatency',PortLatency, ... 'LatencyBase',LatencyBase); % Create the properties structure properties = struct('LatencyProfile',LatencyAnalysis); % Instantiate all properties of stereotype instance = instantiate(model.Architecture,properties,'NewInstance')
Создайте экземпляры определенных свойств стереотипа, которые будут применяться к конкретным элементам во время создания экземпляра.
Создайте профиль для признаков задержки.
profile = systemcomposer.profile.Profile.createProfile('LatencyProfile'); % Add base stereotype with properties latencybase = profile.addStereotype('LatencyBase'); latencybase.addProperty('latency','Type','double'); latencybase.addProperty('dataRate','Type','double','DefaultValue','10'); % Add connector stereotype with properties connLatency = profile.addStereotype('ConnectorLatency','Parent',... 'LatencyProfile.LatencyBase'); connLatency.addProperty('secure','Type','boolean'); connLatency.addProperty('linkDistance','Type','double'); % Add component stereotype with properties nodeLatency = profile.addStereotype('NodeLatency','Parent',... 'LatencyProfile.LatencyBase'); nodeLatency.addProperty('resources','Type','double','DefaultValue','1'); % Add port stereotype with properties portLatency = profile.addStereotype('PortLatency','Parent',... 'LatencyProfile.LatencyBase'); portLatency.addProperty('queueDepth','Type','double'); portLatency.addProperty('dummy','Type','int32');
Создайте экземпляры определенных свойств стереотипа.
model = systemcomposer.createModel('archModel',true); % Create new model model.applyProfile('LatencyProfile'); % Apply profile to model % Specify some properties of stereotypes NodeLatency = struct('elementKinds',["Component"], ... 'properties',struct('resources',true)); ConnectorLatency = struct('elementKinds',["Connector"], ... 'properties',struct('secure',true,'linkDistance',true)); LatencyBase = struct('elementKinds',[], ... 'properties',struct('dataRate',true,'latency',false)); PortLatency = struct('elementKinds',["Port"], ... 'properties',struct('queueDepth',true)); LatencyAnalysis = struct('NodeLatency',NodeLatency, ... 'ConnectorLatency',ConnectorLatency, ... 'PortLatency',PortLatency, ... 'LatencyBase',LatencyBase); % Create the properties structure properties = struct('LatencyProfile',LatencyAnalysis); % Instantiate some properties of stereotype instance = instantiate(model.Architecture,properties,'NewInstance')
Создайте все стереотипы уже в профиле, который будет применен к элементам во время создания экземпляра.
Создайте профиль для признаков задержки.
profile = systemcomposer.profile.Profile.createProfile('LatencyProfile'); % Add base stereotype with properties latencybase = profile.addStereotype('LatencyBase'); latencybase.addProperty('latency','Type','double'); latencybase.addProperty('dataRate','Type','double','DefaultValue','10'); % Add connector stereotype with properties connLatency = profile.addStereotype('ConnectorLatency','Parent',... 'LatencyProfile.LatencyBase'); connLatency.addProperty('secure','Type','boolean'); connLatency.addProperty('linkDistance','Type','double'); % Add component stereotype with properties nodeLatency = profile.addStereotype('NodeLatency','Parent',... 'LatencyProfile.LatencyBase'); nodeLatency.addProperty('resources','Type','double','DefaultValue','1'); % Add port stereotype with properties portLatency = profile.addStereotype('PortLatency','Parent',... 'LatencyProfile.LatencyBase'); portLatency.addProperty('queueDepth','Type','double'); portLatency.addProperty('dummy','Type','int32');
Создайте все стереотипы в профиле.
model = systemcomposer.createModel('archModel',true); % Create new model model.applyProfile('LatencyProfile'); % Apply profile to model % Instantiate all stereotypes in profile instance = instantiate(model.Architecture,'LatencyProfile','NewInstance')
Этот пример показывает экземпляр для анализа для системы с задержкой в проводке. Используемыми материалами являются медь, волокно и WiFi.
Создайте профиль задержки со стереотипами и свойствами
Создайте профиль System Composer с основой, соединителем, компонентом и стереотипом порта. Добавьте свойства со значениями по умолчанию к каждому стереотипу по мере необходимости для анализа.
profile = systemcomposer.profile.Profile.createProfile('LatencyProfile'); % Add base stereotype with properties latencybase = profile.addStereotype('LatencyBase'); latencybase.addProperty('latency','Type','double'); latencybase.addProperty('dataRate','Type','double','DefaultValue','10'); % Add connector stereotype with properties connLatency = profile.addStereotype('ConnectorLatency','Parent',... 'LatencyProfile.LatencyBase'); connLatency.addProperty('secure','Type','boolean','DefaultValue','true'); connLatency.addProperty('linkDistance','Type','double'); % Add component stereotype with properties nodeLatency = profile.addStereotype('NodeLatency','Parent',... 'LatencyProfile.LatencyBase'); nodeLatency.addProperty('resources','Type','double','DefaultValue','1'); % Add port stereotype with properties portLatency = profile.addStereotype('PortLatency','Parent',... 'LatencyProfile.LatencyBase'); portLatency.addProperty('queueDepth','Type','double','DefaultValue','4.29'); portLatency.addProperty('dummy','Type','int32');
Создание экземпляров с помощью функции анализа
Создайте новую модель и примените профиль. Создайте компоненты, порты и соединения в модели. Применить стереотипы к элементам модели. Наконец, создайте экземпляр с помощью функции анализа.
model = systemcomposer.createModel('archModel',true); % Create new model arch = model.Architecture; model.applyProfile('LatencyProfile'); % Apply profile to model % Create components, ports, and connections components = addComponent(arch,{'Sensor','Planning','Motion'}); sensorPorts = addPort(components(1).Architecture,{'MotionData','SensorData'},{'in','out'}); planningPorts = addPort(components(2).Architecture,{'SensorData','MotionCommand'},{'in','out'}); motionPorts = addPort(components(3).Architecture,{'MotionCommand','MotionData'},{'in','out'}); c_sensorData = connect(arch,components(1),components(2)); c_motionData = connect(arch,components(3),components(1)); c_motionCommand = connect(arch,components(2),components(3)); % Clean up canvas Simulink.BlockDiagram.arrangeSystem('archModel'); % Batch apply stereotypes to model elements batchApplyStereotype(arch,'Component','LatencyProfile.NodeLatency'); batchApplyStereotype(arch,'Port','LatencyProfile.PortLatency'); batchApplyStereotype(arch,'Connector','LatencyProfile.ConnectorLatency'); % Instantiate using the analysis function instance = instantiate(model.Architecture,'LatencyProfile','NewInstance', ... 'Function',@calculateLatency,'Arguments','3','Strict',true, ... 'NormalizeUnits',false,'Direction','PreOrder')
instance = ArchitectureInstance with properties: Specification: [1x1 systemcomposer.arch.Architecture] IsStrict: 1 NormalizeUnits: 0 AnalysisFunction: @calculateLatency AnalysisDirection: PreOrder AnalysisArguments: '3' ImmediateUpdate: 0 Components: [1x3 systemcomposer.analysis.ComponentInstance] Ports: [0x0 systemcomposer.analysis.PortInstance] Connectors: [1x3 systemcomposer.analysis.ConnectorInstance] Name: 'NewInstance'
Смотрите образцы компонентов, портов и коннекторов
Получите свойства из образцов компонентов, портов и коннекторов.
defaultResources = instance.Components(1).getValue('LatencyProfile.NodeLatency.resources')
defaultResources = 1
defaultSecure = instance.Connectors(1).getValue('LatencyProfile.ConnectorLatency.secure')
defaultSecure = logical
1
defaultQueueDepth = instance.Components(1).Ports(1).getValue('LatencyProfile.PortLatency.queueDepth')
defaultQueueDepth = 4.2900
Очистка
Раскомментируйте следующий код и запуск, чтобы очистить программные продукты, созданные этим примером:
% bdclose('archModel') % systemcomposer.profile.Profile.closeAll
model
- Архитектура моделиАрхитектура модели, из которой генерируется образец, задается как systemcomposer.arch.Architecture
объект.
Пример: model.Architecture
properties
- Свойства стереотипаСвойства стереотипа, заданные как структура, содержащая информацию о профиле, стереотипе и свойствах. Использование properties
чтобы указать, какие стереотипы и свойства необходимо создать.
Типы данных: struct
name
- Имя образцаИмя образца, сгенерированного из модели, задается как вектор символов.
Пример: 'NewInstance'
Типы данных: char
profile
- Имя профиляИмя профиля, заданное как вектор символов.
Пример: 'LatencyProfile'
Типы данных: char
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
instantiate(model.Architecture,'LatencyProfile','NewInstance','Function',@calculateLatency,'Arguments','3','Strict',true,'NormalizeUnits',false,'Direction','PreOrder')
'NormalizeUnits'
- Нормализовать ли значение на основе модулейfalse
или 0 (по умолчанию) | true
или 1Нормализовать ли значение на основе модулей, если таковое имеется, задается в определении свойства при экземпляре, заданном как разделенная разделенными запятой парами, состоящая из 'NormalizeUnits'
и логический 1 (true
) для нормализации или 0 (false
) ничего не делать.
Пример: instantiate(model.Architecture,'LatencyProfile','NewInstance','NormalizeUnits',true)
Типы данных: logical
'Function'
- Функция анализаФункция анализа, заданная как разделенная разделенными запятой парами, состоящая из 'Function'
и указатель на функцию MATLAB, который будет выполнен при запуске анализа.
'Arguments'
- Аргументы анализаАргументы анализа, заданные как разделенная разделенными запятой парами, состоящая из 'Arguments'
и вектор символов или массив ячеек из векторов символов необязательных аргументов в функцию анализа.
Типы данных: char
'Direction'
- Направление анализа'TopDown'
| 'PreOrder'
| 'PostOrder'
| 'BottomUp'
Направление анализа, заданное как разделенная разделенными запятой парами, состоящая из 'Direction'
и вектор символов.
Типы данных: char
'Strict'
- Получают ли образцы только свойства, если в спецификации образца применен стереотипfalse
или 0 (по умолчанию) | true
или 1Получают ли образцы свойства, если в спецификации образца применен стереотип, заданный как разделенная разделенными запятой парами, состоящая из 'Strict'
и логический 1 (true
) или 0 (false
).
Типы данных: logical
instance
- образец элементаОбразец элемента, возвращенный как systemcomposer.analysis.ArchitectureInstance
объект.
Термин | Определение | Приложение | Дополнительная информация |
---|---|---|---|
архитектура | Архитектура System Composer™ представляет систему компонентов и то, как они взаимодействуют друг с другом структурно и поведенчески. Представлять определенные архитектуры можно с помощью альтернативных представлений. | Различные типы архитектур описывают различные аспекты систем:
| Составьте архитектуру визуально |
модель | Модель System Composer является файлом, содержащим архитектурную информацию, включая компоненты, порты, соединители, интерфейсы и поведение. | Выполните операции над моделью:
Модели System Composer хранятся как | Создайте модель Архитектуры |
компонент | Компонент является нетривиальной, почти независимой и заменяемой частью системы, которая удовлетворяет функцию clear в контексте архитектуры. Компонент определяет элемент архитектуры, такой как функция, система, оборудование, программное обеспечение или другая концептуальная сущность. Компонент может также быть подсистемой или подфункцией. | Представленный как блок, компонент является частью модели архитектуры, которая может быть разделена на переиспользуемые программные продукты. | Компоненты |
порт | Порт является узлом компонента или архитектуры, который представляет точку взаимодействия с его окружением. Порт разрешает поток информации к другим компонентам или системам и из них. | Существуют различные типы портов:
| Порты |
соединитель | Коннекторы являются линиями, которые обеспечивают соединения между портами. Коннекторы описывают, как информация переходит между компонентами или архитектурами. | Соединитель позволяет двум компонентам взаимодействовать, не определяя характер взаимодействия. Установите интерфейс на порте, чтобы определить, как взаимодействуют компоненты. | Связи |
Термин | Определение | Приложение | Дополнительная информация |
---|---|---|---|
стереотип | Стереотип является пользовательским расширением языка моделирования. Стереотипы обеспечивают механизм расширения элементов языка архитектуры путем добавления специфичных для домена метаданных. | Примените стереотипы к архитектуре корневого уровня, архитектуре компонентов, коннекторам, портам и интерфейсам модели. Стереотипы обеспечивают элементы модели в архитектуре общим набором полей свойств, таких как масса, стоимость и степень. | Определение профилей и стереотипов |
профиль | Профиль является пакетом стереотипов, чтобы создать самосогласованную область типов элементов модели. | Применить профили к модели можно с помощью редактора профилей. Стереотипы для проекта можно хранить в одном профиле или в нескольких. Профили хранятся в .xml файлы при их сохранении. | Использование стереотипов и профилей |
свойство | Свойство является полем в стереотипе. Для каждого элемента модели, к которому применяется стереотип, заданы определенные значения свойств. | Используйте свойства для хранения количественных характеристик, таких как вес или скорость, которые связаны с элементом модели. Свойства также могут быть описательными или представлять статус. | Задание свойств |
Термин | Определение | Приложение | Дополнительная информация |
---|---|---|---|
анализ | Анализ является методом количественной оценки архитектуры для определенных характеристик. Статический анализ анализирует структуру системы. Статический анализ использует функцию анализа и параметрические значения свойств, захваченных в системную модель. | Используйте анализ для вычисления общей надежности, массового свертывания, эффективности или тепловых характеристик системы или для выполнения анализа SWaP. | Анализируйте архитектуру |
образец | Образец является вхождением модели архитектуры в заданную точку времени. | Можно обновить образец с изменениями в модели, но образец не будет обновляться с изменениями в активных вариантах или моделях-ссылках. Можно использовать образец, сохраненный в .MAT файл модели архитектуры System Composer для анализа. | Создайте образец модели для анализа |
deleteInstance
| iterate
| loadInstance
| save
| systemcomposer.analysis.Instance
| update
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.