Создайте аналитический экземпляр из спецификации
создает экземпляр instance
= instantiate(model
,properties
,name
)instance
названный name
из архитектуры модели model
со свойствами properties
для анализа.
Эта функция является частью 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('LatencyProfileC'); % 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',... 'LatencyProfileC.LatencyBase'); connLatency.addProperty('secure','Type','boolean','DefaultValue','true'); connLatency.addProperty('linkDistance','Type','double'); % Add component stereotype with properties nodeLatency = profile.addStereotype('NodeLatency','Parent',... 'LatencyProfileC.LatencyBase'); nodeLatency.addProperty('resources','Type','double','DefaultValue','1'); % Add port stereotype with properties portLatency = profile.addStereotype('PortLatency','Parent',... 'LatencyProfileC.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('LatencyProfileC'); % 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','LatencyProfileC.NodeLatency'); batchApplyStereotype(arch,'Port','LatencyProfileC.PortLatency'); batchApplyStereotype(arch,'Connector','LatencyProfileC.ConnectorLatency'); % Instantiate using the analysis function instance = instantiate(model.Architecture,'LatencyProfileC','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('LatencyProfileC.NodeLatency.resources')
defaultResources = 1
defaultSecure = instance.Connectors(1).getValue('LatencyProfileC.ConnectorLatency.secure')
defaultSecure = logical
1
defaultQueueDepth = instance.Components(1).Ports(1).getValue('LatencyProfileC.PortLatency.queueDepth')
defaultQueueDepth = 4.2900
Очистка
Не прокомментируйте следующий код и запуск, чтобы очистить артефакты, созданные этим примером.
% bdclose('archModel') % systemcomposer.profile.Profile.closeAll
model
— Архитектура моделиАрхитектура модели, от которой экземпляр сгенерирован в виде systemcomposer.arch.Architecture
объект.
Пример: model.Architecture
properties
— Стереотипируйте свойстваСтереотипируйте свойства в виде структуры, содержащей профиль, стереотип и информацию о свойстве. Используйте properties
задавать, какие стереотипы и свойства нужно инстанцировать.
Типы данных: struct
name
— Имя экземпляраИмя экземпляра, сгенерированного из модели в виде вектора символов или строки.
Пример: 'NewInstance'
Типы данных: char |
string
profile
— Профилируйте имяПрофилируйте имя в виде вектора символов или строки.
Пример: 'LatencyProfile'
Типы данных: char |
string
Задайте дополнительные разделенные запятой пары 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Нормировать ли значение на основе модулей, если таковые имеются, заданный в определении свойства после инстанцирования в виде логической единицы (true
) нормировать или 0 (false
) ничего не сделать.
Пример: instantiate(model.Architecture,'LatencyProfile','NewInstance','NormalizeUnits',true)
Типы данных: логический
Function
— Аналитическая функцияАналитическая функция в виде MATLAB® указатель на функцию, который будет выполняться, когда анализ запущен.
Arguments
— Аналитические аргументыАналитические аргументы в виде вектора символов, строки, массива строк или массива ячеек из символьных векторов дополнительных аргументов к аналитической функции.
Типы данных: char |
string
Direction
— Аналитическое направление'TopDown'
| 'PreOrder'
| 'PostOrder'
| 'BottomUp'
Аналитическое направление в виде вектора символов или строки.
Типы данных: char |
string
Strict
— Условие для экземпляров, получающих свойстваfalse
или 0 (значений по умолчанию) | true
или 1Условие для экземпляров, получающих свойства, только если спецификации экземпляра применили стереотип в виде логического.
Типы данных: логический
instance
— Экземпляр архитектурыЭкземпляр архитектуры, возвращенный как systemcomposer.analysis.ArchitectureInstance
объект.
Термин | Определение | Приложение | Больше информации |
---|---|---|---|
архитектура | Архитектура System Composer™ представляет систему компонентов и как они взаимодействуют через интерфейс друг с другом структурно и поведенчески. Можно представлять определенные архитектуры с помощью альтернативных представлений. | Различные типы архитектур описывают различные аспекты систем:
| Составьте архитектуру визуально |
модель | Модель System Composer является файлом, который содержит архитектурную информацию, включая компоненты, порты, коннекторы, интерфейсы и поведения. | Выполните операции на модели:
Модели System Composer хранятся как файлы SLX. | Создайте модель архитектуры со ссылками требования и интерфейсами |
компонент | Компонент является нетривиальным, почти независимая, и заменимая часть системы, которая выполняет функцию clear в контексте архитектуры. Компонент задает элемент архитектуры, такой как функция, система, оборудование, программное обеспечение или другая концептуальная сущность. Компонент может также быть подсистемой или подфункцией. | Представленный как блок, компонент является частью модели архитектуры, которая может быть разделена на допускающие повторное использование артефакты. | Компоненты |
порт | Порт является узлом на компоненте или архитектуре, которая представляет точку взаимодействия с ее средой. Порт разрешает поток информации к и от других компонентов или систем. | Существуют различные типы портов:
| Порты |
коннектор | Коннекторы являются линиями, которые обеспечивают связи между портами. Коннекторы описывают как информационные потоки между компонентами или архитектурами. | Коннектор позволяет двум компонентам взаимодействовать, не задавая природу взаимодействия. Установите интерфейс на порте задавать, как компоненты взаимодействуют. | Связи |
Термин | Определение | Приложение | Больше информации |
---|---|---|---|
стереотип | Стереотип является пользовательским расширением языка моделирования. Стереотипы обеспечивают механизм, чтобы расширить элементы языка архитектуры путем добавления проблемно-ориентированных метаданных. | Примените стереотипы к элементам: архитектура корневого уровня, компонентная архитектура, коннекторы, порты, интерфейсы данных и типы значения модели. Элемент модели может иметь несколько стереотипов. Стереотипы предоставляют элементам модели единый набор полей свойства, таким как масса, стоят, и степень. | Расширьте архитектурный проект Используя стереотипы |
свойство | Свойство является полем в стереотипе. Для каждого элемента применяются к стереотипу, определенные значения свойств заданы. | Используйте свойства сохранить количественные характеристики, такие как вес или скорость, которые сопоставлены с элементом модели. Свойства могут также быть описательными или представлять состояние. Можно просмотреть и отредактировать свойства каждого элемента в модели архитектуры использование Property Inspector. | |
профиль | Профиль является пакетом стереотипов, чтобы создать последовательную область типов элемента. | Профили автора и применяют профили к модели с помощью Редактора Профиля. Можно сохранить стереотипы для проекта в одном профиле или в нескольких. Профили хранятся в XML-файлах, когда они сохранены. |
Термин | Определение | Приложение | Больше информации |
---|---|---|---|
анализ | Анализ является методом для того, чтобы количественно оценить архитектуру для определенных характеристик. Статический анализ анализирует структуру системы. Статический анализ использует анализ функциональные и параметрические значения свойств, полученных в системной модели. | Используйте исследования, чтобы вычислить полную надежность, массовую свертку, эффективность или тепловые характеристики системы, или выполнить анализ SWaP. | |
аналитическая функция | Аналитической функцией является функция MATLAB, которая вычисляет значения, необходимые, чтобы оценить свойства использования архитектуры каждого элемента в экземпляре модели. | Используйте аналитическую функцию, чтобы вычислить результат анализа. | Запишите аналитическую функцию |
модель экземпляра | Модель экземпляра является набором экземпляров. | Можно обновить модель экземпляра с изменениями в модели, но модель экземпляра не обновится с изменениями в активных вариантах или моделях - ссылках. Можно использовать модель экземпляра, сохраненную в .MAT файл, модели архитектуры System Composer для анализа. | Запустите аналитическую функцию |
экземпляр | Экземпляр является вхождением элемента модели архитектуры в определенный момент времени. | Экземпляр замораживает активную различную или модель - ссылку компонента в модели экземпляра. | Создайте экземпляр модели для анализа |
systemcomposer.analysis.Instance
| deleteInstance
| loadInstance
| save
| update
| iterate
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.