systemcomposer.allocation.AllocationSet
组配置场景
描述
一个AllocationSet
对象定义了一组两个系统作曲家™模型之间的分配情况。
创建
创建一个配置设置名称myNewAllocation
使用systemcomposer.allocation.createAllocationSet
函数。
systemcomposer.allocation.createAllocationSet (“myNewAllocation”,…“Source_Model_Allocation”,“Target_Model_Allocation”);
属性
的名字
- - - - - -分配组的名字
特征向量
分配组的名称,指定为一个特征向量。
例子:“MyNewAllocation”
数据类型:字符
SourceModel
- - - - - -源分配模型
模型对象
源模型分配,指定为一个systemcomposer.arch.Model
对象。
TargetModel
- - - - - -目标分配模型
模型对象
目标分配模型,指定为一个systemcomposer.arch.Model
对象。
场景
- - - - - -分配方案
配置场景对象的数组
分配情况,指定为数组systemcomposer.allocation.AllocationScenario
对象。
描述
- - - - - -描述的配置设置
特征向量
描述分配设置,指定为一个特征向量。
数据类型:字符
NeedsRefresh
- - - - - -分配组是否过时了
真正的
或1|假
或0
是否配置设置的日期与源模型、目标模型,或者两者兼有,指定为一个逻辑。
数据类型:逻辑
脏
- - - - - -分配是否有未保存的更改
真正的
或1|假
或0
分配组是否有未保存的更改,指定为一个逻辑。
数据类型:逻辑
UUID
- - - - - -通用唯一标识符
特征向量
通用唯一标识符分配设置,指定为一个特征向量。
例子:91 d5de2c-b14c-4c76-a5d6-5dd0037c52df
数据类型:字符
对象的功能
createScenario |
创建新的空配置场景 |
getScenario |
得到分配情况 |
deleteScenario |
删除配置场景 |
synchronizeChanges |
同步更改模型的配置设置 |
找到 |
找到加载配置设置 |
保存 |
保存配置设置为文件 |
关闭 |
关闭配置设置 |
closeAll |
关闭所有打开的配置集 |
例子
分配在轮胎压力监测系统体系结构
使用配置来分析轮胎压力监测系统。
概述
在系统工程中,通常用来描述一个系统在不同级别的抽象。例如,您可以描述一个系统的高级功能。这些功能可能没有与之相关的任何行为,但最有可能追溯到一些操作系统必须满足的要求。我们称这一层(或建筑)功能体系结构。在这个例子中,一个汽车轮胎压力监测系统在三个不同的体系结构描述:
功能体系结构,描述了系统的高级功能。连接显示功能之间的依赖关系。
逻辑架构,描述了系统的逻辑组件以及它们之间的数据交换。此外,该架构指定模型仿真的行为。
所需的物理硬件平台的体系结构,描述了系统在一个较高的水平。
分配过程被定义为连接这三个完全描述系统架构。连接捕捉每个架构层的信息,使其可以访问。
使用此命令打开项目。
scExampleTirePressureMonitorSystem
打开FunctionalAllocation.mldatx
文件,显示分配TPMS_FunctionalArchitecture
来TPMS_LogicalArchitecture
在配置编辑器。的元素TPMS_FunctionalArchitecture
显示在第一列中。的元素TPMS_LogicalArchitecture
显示在第一行。箭头表示模型元素之间的分配。
箭头显示分配组件模型中。你可以观察分配模型中每个元素的层次结构。
其余的例子展示了如何使用这个配置信息来进一步分析模型。
功能逻辑分配和覆盖率分析
本节将展示如何执行覆盖分析来验证所有的功能分配。这一过程需要使用功能和逻辑体系结构之间的指定配置信息。
开始分析,负荷分配。
allocSet = systemcomposer.allocation.load (“FunctionalAllocation”);场景= allocSet.Scenarios;
确认系统中每个函数分配。
进口systemcomposer.query。*;[~,allFunctions] = allocSet.SourceModel.find (HasStereotype (IsStereotypeDerivedFrom (“TPMSProfile.Function”)));unAllocatedFunctions = [];为i = 1:元素个数(allFunctions)如果isempty (scenario.getAllocatedTo (allFunctions (i))) unAllocatedFunctions = [unAllocatedFunctions allFunctions (i)];结束结束如果isempty (unAllocatedFunctions)流(所有的功能都分配的);其他的流(% d函数没有被分配的元素个数(unAllocatedFunctions));结束
所有的功能分配
结果显示所有的功能分配
验证系统中所有功能分配。
分析供应商提供的功能
本节展示了如何确定哪些功能将由供应商使用指定的分配。因为供应商将提供这些组件的系统集成商,供应商信息存储在逻辑模型。
供应商= {“供应商”,“Supplier B”,“供应商C”,《供应商D '};functionname = arrayfun (@ x (x)。名称、allFunctions“UniformOutput”、假);numFunNames =长度(allFunctions);numSuppliers =长度(供应商);allocTable =表(“大小”(numFunNames numSuppliers),“VariableTypes”repmat (“替身”1、numSuppliers));allocTable.Properties。VariableNames =供应商;allocTable.Properties。RowNames = functionname;为i = 1: numFunNames elem = scenario.getAllocatedTo (allFunctions(我));为j = 1:元素个数(elem) elemSupplier = elem (j) .getEvaluatedPropertyValue (“TPMSProfile.LogicalComponent.Supplier”);allocTable{我strcmp (elemSupplier、供应商)}= 1;结束结束
供应商负责的表显示相应的功能。
allocTable
allocTable =8×4表供应商供应商B供应商C供应商D __________ __________ __________ __________报告轮胎压力水平1 0 0 0计算如果压力低1 0 0 0测量轮胎压力0 0 0 0测量轮胎压力0 0 1 0测量轮胎的温度0 0 0 1测量旋转0 1 0 0报告低胎压1 0 0 0计算轮胎压力0 1 0 0
分析软件部署策略
你可以确定发动机控制单元(ECU)有足够的房子所有的软件组件的能力。软件组件分配给核心本身,但ECU是预算的组件属性。
平台架构。
platformArch = systemcomposer.loadModel (“PlatformArchitecture”);
负载分配。
softwareDeployment = systemcomposer.allocation.load (“SoftwareDeployment”);frontECU = platformArch.lookup (“路径”,“PlatformArchitecture / ECU面前”);rearECU = platformArch.lookup (“路径”,“PlatformArchitecture /后方ECU”);scenario1 = softwareDeployment.getScenario (场景1的);scenario2 = softwareDeployment.getScenario (场景2的);frontECU_availMemory = frontECU.getEvaluatedPropertyValue (“TPMSProfile.ECU.MemoryCapacity”);rearECU_availMemory = rearECU.getEvaluatedPropertyValue (“TPMSProfile.ECU.MemoryCapacity”);frontECU_memoryUsed1 = getUtilizedMemoryOnECU (frontECU scenario1);frontECU_isOverBudget1 = frontECU_memoryUsed1 > frontECU_availMemory;rearECU_memoryUsed1 = getUtilizedMemoryOnECU (rearECU scenario1);rearECU_isOverBudget1 = rearECU_memoryUsed1 > rearECU_availMemory;frontECU_memoryUsed2 = getUtilizedMemoryOnECU (frontECU scenario2);frontECU_isOverBudget2 = frontECU_memoryUsed2 > frontECU_availMemory;rearECU_memoryUsed2 = getUtilizedMemoryOnECU (rearECU scenario2);rearECU_isOverBudget2 = rearECU_memoryUsed2 > rearECU_availMemory;
建立一个表展示结果。
softwareDeploymentTable =表([frontECU_memoryUsed1; frontECU_availMemory;…frontECU_isOverBudget1; rearECU_memoryUsed1 rearECU_availMemory; rearECU_isOverBudget1),…[frontECU_memoryUsed2;frontECU_availMemory;frontECU_isOverBudget2; rearECU_memoryUsed2;…rearECU_availMemory;rearECU_isOverBudget2),…“VariableNames”,{场景1的,场景2的},…“RowNames”,{“前面ECUMemory使用(MB)”,“前面ECU内存(MB)”,“前面ECU超载”,…“使用后ECU内存(MB)”,“后方ECU内存(MB)”,“后方ECU超载”})
softwareDeploymentTable =6×2表场景1场景2 __________ __________面前ECUMemory使用(MB) 110 90前ECU内存(MB) 100 100前ECU超载1 0后ECU内存使用量(MB) 0 20后方ECU内存(MB) 100 100后ECU重载0 0
函数场景memoryUsed = getUtilizedMemoryOnECU (ecu)
每个组件的ECU,积累所需的二进制大小为每个软件组件分配。
coreNames = {“Core1”,“嵌”,“Core3”,“Core4”};memoryUsed = 0;为i = 1:元素个数(coreNames)核心= ecu.Model.lookup (“路径”,(ecu.getQualifiedName' / 'coreNames{我}]);allocatedSWComps = scenario.getAllocatedFrom(核心);为j = 1:元素个数(allocatedSWComps) binarySize = allocatedSWComps (j) .getEvaluatedPropertyValue (“TPMSProfile.SWComponent.BinarySize”);memoryUsed = memoryUsed + binarySize;结束结束结束
更多关于
定义
术语 | 定义 | 应用程序 | 更多的信息 |
---|---|---|---|
分配 | 一个分配从建筑元素——组件建立直接关系,港口,和连接器,在另一个模型架构元素模型。 |
资源分配允许您配置功能架构元素逻辑体系结构元素和逻辑架构元素物理架构元素。 |
分配在轮胎压力监测系统体系结构 |
分配情况 | 一个分配情况包含一组的源和目标之间的分配模型。 |
模型元素之间的分配在一个分配的分配情况。默认的分配情况 |
创建和管理分配 |
分配组 | 一个分配组由一个或多个配置场景描述各种源和目标之间的分配模型。 |
创建一组分配的分配方案配置编辑器。 |
SoC系统工程方法的应用程序 |
版本历史
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。