Класс, который представляет архитектуру в аналитическом экземпляре
ArchitectureInstance
класс представляет экземпляр архитектуры.
Создайте экземпляр архитектуры.
instance = instantiate(model.Architecture,'LatencyProfile','NewInstance', ... 'Function',@calculateLatency,'Arguments','3','Strict',true, ... 'NormalizeUnits',false,'Direction','PreOrder')
Name
— Имя экземпляраИмя экземпляра в виде вектора символов.
Пример: 'NewInstance'
Типы данных: char
Components
— Дочерние компоненты экземпляраДочерние компоненты экземпляра в виде массива systemcomposer.analysis.ComponentInstance
объекты.
Ports
— Порты экземпляра архитектурыПорты экземпляра архитектуры в виде массива systemcomposer.analysis.PortInstance
объекты.
Connectors
— Коннекторы в экземпляре архитектурыКоннекторы в экземпляре архитектуры в виде массива systemcomposer.analysis.ConnectorInstance
объекты, соединяя дочерние компоненты.
Specification
— Ссылка на архитектуру в модели проектаОпорный элемент в модели проекта в виде systemcomposer.arch.Architecture
объект.
NormalizeUnits
— Нормированы ли модулиtrue
или 1 | false
или 0Нормируют ли модули значение свойств в инстанцировании в виде логической единицы (true
) или 0 (false
).
Типы данных: логический
IsStrict
— Получают ли экземпляры только свойства, если спецификации экземпляра применили стереотипtrue
или 1 | false
или 0Получают ли экземпляры только свойства, если спецификации экземпляра применили стереотип в виде логической единицы (true
) или 0 (false
).
Типы данных: логический
AnalysisFunction
— Аналитическая функцияАналитическая функция в виде указателя функции MATLAB, который будет выполняться, когда анализ запущен.
Пример: @calculateLatency
AnalysisDirection
— Аналитическое направлениеsystemcomposer.IteratorDirection.TopDown
| systemcomposer.IteratorDirection.BottomUp
| systemcomposer.IteratorDirection.PreOrder
| systemcomposer.IteratorDirection.PostOrder
Аналитическое направление в виде перечисления.
Пример: 'TopDown'
Пример: 'PreOrder'
Пример: 'PostOrder'
Пример: 'BottomUp'
Типы данных: enum
AnalysisArguments
— Аналитические аргументыАналитические аргументы в виде вектора символов дополнительных аргументов к аналитической функции.
Пример 3
Типы данных: char
ImmediateUpdate
— Обновляется ли аналитический экземпляр автоматически, когда модель проекта изменяетсяtrue
или 1 | false
или 0Обновляется ли аналитическое средство просмотра автоматически, когда модель проекта изменяется в виде логической единицы (true
) или 0 (false
).
Типы данных: логический
getValue | Получите значение свойства от экземпляра элемента |
setValue | Установите значение свойства для экземпляра элемента |
hasValue | Найдите, имеет ли экземпляр элемента значение свойства |
iterate | Выполните итерации по элементам модели |
lookup | Ищите элемент архитектуры |
save | Сохраните экземпляр архитектуры |
update | Обновите модель архитектуры |
refresh | Обновите экземпляр архитектуры |
isArchitecture | Найдите, является ли экземпляр экземпляром архитектуры |
isComponent | Найдите, является ли экземпляр экземпляром компонента |
isConnector | Найдите, является ли экземпляр экземпляром коннектора |
isPort | Найдите, является ли экземпляр экземпляром порта |
Этот пример показывает инстанцирование для анализа для системы с задержкой в ее проводном соединении. Используемые материалы являются медью, волокном и 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
Обзор
В этом примере показано, как смоделировать типичную автомобильную электрическую систему как архитектурную модель и запустить примитивный анализ. Элементы в модели могут быть широко сгруппированы или как источник или как загрузка. Различные свойства источников и загрузок установлены как часть стереотипа. Пример использует iterate
метод API спецификации, чтобы выполнить итерации через каждый элемент модели и анализа запуска с помощью стереотипных свойств.
Структура модели
Генератор заряжает батарею, в то время как механизм запускается. Батарея, наряду с генератором поддерживает электрические нагрузки в транспортном средстве, как ECU, радио и управление телом. Индуктивные нагрузки как двигатели и другие обмотки имеют InRushCurrent
стереотипируйте заданное свойство. На основе набора свойств на каждом компоненте выполняются следующие исследования:
Общий KeyOffLoad
.
Номер дней требуется для KeyOffLoad
разряжать 30% батареи.
Общий CrankingInRush
текущий.
Общий Cranking
текущий.
Способность батареи запустить транспортное средство в 0°F на основе холодных усилителей проворота (CCA) батареи. Время выброса вычисляется на основе коэффициента Puekert (k), который описывает отношение между уровнем выброса и полезной мощностью батареи.
Загрузите модель и запустите анализ
archModel = systemcomposer.openModel('scExampleAutomotiveElectricalSystemAnalysis'); % Instantiate battery sizing class used by the analysis function to store % analysis results. objcomputeBatterySizing = computeBatterySizing; % Run the analysis using the iterator. archModel.iterate('Topdown',@computeLoad,objcomputeBatterySizing); % Display analysis results. objcomputeBatterySizing.displayResults;
Total KeyOffLoad: 158.708 mA Number of days required for KeyOffLoad to discharge 30% of battery: 55.789. Total CrankingInRush current: 70 A Total Cranking current: 104 A CCA of the specifed battery is sufficient to start the car at 0 F.
Закройте модель
bdclose('scExampleAutomotiveElectricalSystemAnalysis');
Термин | Определение | Приложение | Больше информации |
---|---|---|---|
анализ | Анализ является методом для того, чтобы количественно оценить архитектуру для определенных характеристик. Статический анализ анализирует структуру системы. Статический анализ использует анализ функциональные и параметрические значения свойств, полученных в системной модели. | Используйте анализ, чтобы вычислить полную надежность, массовую свертку, эффективность или тепловые характеристики системы, или выполнить анализ SWaP. | Анализируйте архитектуру |
экземпляр | Экземпляр является вхождением модели архитектуры в данном моменте времени. | Можно обновить экземпляр с изменениями в модели, но экземпляр не обновится с изменениями в активных вариантах или моделях - ссылках. Можно использовать экземпляр, сохраненный в .MAT файл, модели архитектуры System Composer™ для анализа. | Создайте экземпляр модели для анализа |
Термин | Определение | Приложение | Больше информации |
---|---|---|---|
архитектура | Архитектура System Composer представляет систему компонентов и как они взаимодействуют через интерфейс друг с другом структурно и поведенчески. Можно представлять определенные архитектуры с помощью альтернативных представлений. | Различные типы архитектур описывают различные аспекты систем:
| Составьте архитектуру визуально |
модель | Модель System Composer является файлом, который содержит архитектурную информацию, включая компоненты, порты, коннекторы, интерфейсы и поведения. | Выполните операции на модели:
Модели System Composer хранятся как | Создайте модель архитектуры |
компонент | Компонент является нетривиальной, почти независимой, и заменимой частью системы, которая выполняет функцию clear в контексте архитектуры. Компонент задает элемент архитектуры, такой как функция, система, оборудование, программное обеспечение или другая концептуальная сущность. Компонент может также быть подсистемой или подфункцией. | Представленный как блок, компонент является частью модели архитектуры, которая может быть разделена на допускающие повторное использование артефакты. | Компоненты |
порт | Порт является узлом на компоненте или архитектуре, которая представляет точку взаимодействия с ее средой. Порт разрешает поток информации к и от других компонентов или систем. | Существуют различные типы портов:
| Порты |
коннектор | Коннекторы являются линиями, которые обеспечивают связи между портами. Коннекторы описывают как информационные потоки между компонентами или архитектурами. | Коннектор позволяет двум компонентам взаимодействовать, не задавая природу взаимодействия. Установите интерфейс на порте задавать, как компоненты взаимодействуют. | Связи |
deleteInstance
| instantiate
| loadInstance
| systemcomposer.analysis.ComponentInstance
| systemcomposer.analysis.ConnectorInstance
| systemcomposer.analysis.Instance
| systemcomposer.analysis.PortInstance
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.