Создание экземпляра анализа из спецификации
создает экземпляр модели для анализа.instance = instantiate(model,properties,name)
Эта функция является частью API экземпляра, который можно использовать для итеративного анализа модели по элементам. 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 хранятся как | Создание модели архитектуры |
| компонент | Компонент является нетривиальной, почти независимой и заменяемой частью системы, которая выполняет четкую функцию в контексте архитектуры. Компонент определяет элемент архитектуры, такой как функция, система, аппаратное обеспечение, программное обеспечение или другой концептуальный объект. Компонент также может быть подсистемой или подфункцией. | Представленный в виде блока компонент является частью архитектурной модели, которую можно разделить на многократно используемые артефакты. | Компоненты |
| порт | Порт - это узел компонента или архитектуры, представляющий собой точку взаимодействия с его средой. Порт разрешает поток информации в другие компоненты или системы и из них. | Существуют различные типы портов:
| Порты |
| соединитель | Соединители - это линии, обеспечивающие соединения между портами. Соединители описывают потоки информации между компонентами или архитектурами. | Соединитель позволяет двум компонентам взаимодействовать без определения характера взаимодействия. Задайте интерфейс порта для определения способа взаимодействия компонентов. | Связи |
| Термин | Определение | Приложение | Дополнительные сведения |
|---|---|---|---|
| стереотип | Стереотип - это пользовательское расширение языка моделирования. Стереотипы обеспечивают механизм расширения языковых элементов архитектуры путем добавления метаданных, специфичных для конкретного домена. | Применение стереотипов к архитектуре корневого уровня, архитектуре компонентов, соединителям, портам и интерфейсам модели. Стереотипы обеспечивают элементы модели в рамках архитектуры общим набором полей свойств, таких как масса, стоимость и мощность. | Определение профилей и стереотипов |
| профиль | Профиль - это пакет стереотипов для создания самосогласованной области типов элементов модели. | Примените профили к модели с помощью редактора профилей. Стереотипы для проекта можно хранить в одном профиле или в нескольких. Профили хранятся в .xml при сохранении файлов. | Использование стереотипов и профилей |
| собственность | Свойство - это поле в стереотипе. Для каждого элемента модели применяется стереотип, указываются конкретные значения свойств. | Используйте свойства для хранения количественных характеристик, таких как вес или скорость, связанных с элементом модели. Свойства также могут быть описательными или представлять статус. | Задать свойства |
| Термин | Определение | Приложение | Дополнительные сведения |
|---|---|---|---|
| анализ | Анализ является методом количественной оценки архитектуры для определенных характеристик. Статический анализ анализирует структуру системы. Статический анализ использует функцию анализа и параметрические значения свойств, захваченных в системной модели. | Используйте анализ для расчета общей надежности, массового сворачивания, производительности или тепловых характеристик системы или для выполнения анализа SWaP. | Анализ архитектуры |
| случай | Экземпляр является вхождением архитектурной модели в данный момент времени. | Можно обновить экземпляр с изменениями в модели, но экземпляр не будет обновляться с изменениями в активных исполнениях или ссылках модели. Можно использовать экземпляр, сохраненный в .MAT файла модели архитектуры System Composer для анализа. | Создание экземпляра модели для анализа |
deleteInstance | iterate | loadInstance | save | systemcomposer.analysis.Instance | update
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.