人在仿真软件金宝app

金宝app仿真软件和基于模型的设计

这个模型有多少块?

我的同事山姆和我想找到一个例子模型大约有10000块。我建议从航空Blockset HL-20模型,asbhl20.mdl。山姆决定测量块通过运行的总数sldiagnostics:

> > (t, s) = sldiagnostics (“asbhl20”,“CountBlocks”);
(1)
ans =
isMask: 0
类型:“asbhl20总块”
数:5700

山姆快寄给我一个消息说HL-20模型只有5700块。到底发生了什么事?

SLDIAGNOSTICS是什么?

首先,让我们讨论一个小的历史sldiagnostics。多年来,仿真软件开发人员已经与许金宝app多客户合作,了解他们的建模风格和协助调试问题。不幸的是一些客户无法分享他们的模型,因为它们可能包含专有信息。解决这些开发人员创建一系列脚本,就会快速收集信息模型没有任何模型算法信息。这些收集脚本然后成为了sldiagnostics函数。因为这些脚本的输出一般没有任何专有数据,甚至顾客无法分享他们的模型能够提供诊断信息。

大多数所做的检查sldiagnostics帮你收集模型作为一个整体的理解。这是一个很大的帮助在学习模型,而不必浏览每个系统一个接一个。

CountBlocks

山姆的诊断信息收集是CountBlocks的输出。这是一个文本报告HL-20模型的一部分。

完成了数块“asbhl20”。
发现了5700块。

asbhl20总块:5700
前言:16
ActionPort: 11
断言:2
偏见:6
BusCreator: 46
BusSelector: 126
<剪>
尺寸:1175
InportShadow: 49
积分器:43
Interpolation_n-D: 1
逻辑:6
查找:6
Lookup_n-D: 6
数学:59
记忆:4
合并:4
极大极小:4
ModelReference: 9
MultiPortSwitch: 1
Mux: 141
外港:669
<剪>

HL-20包括模型参考

HL-20模型包括9 ModelReference块。(我介绍了一些基本的模型参考以前的文章)。你可以看到模型的层次结构视图依赖查看器实例。

模型参考从航空Blockset ASBHL20模型层次结构。

当我想到一个模型,我想收集到的网络功能为代表。我认为块的数量用于创建模型是一个简单的测量有多少功能/算法。模型参考块包含整个模型的功能,他们参考,但是,sldiagnostics计算模型对比试块只有一个块。

我真正寻找的是子系统的测量等效模型中所有模块的实现。为HL-20得到这个模型,你需要计算块内每个模型引用和乘以实例的数量。我写了一个MATLAB函数:

函数totalBlocks = mdlrefCountBlocks (mdl)
% mdlrefCountBlocks计算子系统同等数量的块
%在参考模型的层次结构。

% 2009年版权MathWorks公司

% %打开模型
open_system (mdl)

% %获得实例信息
[mDep, mInst] = find_mdlrefs (mdl);
%开放依赖模型
i = 1:长度(mDep)
load_system (mDep{我})
结束

% %每个依赖项的计算实例的数量
mCount = 0(大小(mDep));
mCount(结束)= 1;%是顶级模特,最后一个元素只有一个实例
i = 1:长度(mInst)
mod = get_param (mInst {},“ModelName”);
mDep mCount = mCount + strcmp (mod);
结束
% %
i = 1:长度(mDep)
disp ([num2str (mCount(我))“实例”mDep{我}])
结束
disp (' ')

% %循环依赖关系,得到块的数量
s =细胞(大小(mDep));
i = 1:长度(mDep)
(t, s{我})= sldiagnostics (mDep {},“CountBlocks”);
disp ([mDep{我}“已经”num2str (s{我}(1).count)“块”])
结束

% %的块,数量乘以模型计算,增加总
totalBlocks = 0;
i = 1:长度(mDep)
totalBlocks = totalBlocks +{我}(1)。数* mCount(我);
结束

disp (' ')
disp ([“总块:”num2str (totalBlocks)))

总块

下面是这个函数运行的结果:

> > = mdlrefCountBlocks(总“asbhl20”);
3 asbhl20_FCSApp实例
3 asbhl20_FDIRApp实例
3 asbhl20_GuidanceApp实例
1的实例asbhl20

asbhl20_FCSApp有115块
asbhl20_FDIRApp有1248块
asbhl20_GuidanceApp有388块
asbhl20有5700块

总:10953

现在轮到你了

最后,我们可以看到HL-20模型几乎11 k块。你用模型参考吗?总共有多少块最大的层次结构模型?使用上面的脚本收集数据和文章的这里的评论

|

评论

留下你的评论,请点击在这里MathWorks账户登录或创建一个新的。