Создайте аналитический экземпляр из спецификации
создает экземпляр 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.