主要内容

本页采用了机器翻译。点击此处可查看英文原文。

slvnvextract

将原子子系统或子图内容提取到新模型中

说明

newModel = slvnvextract(subcomponent) 提取原子 Subsystem 模块或原子子图 subcomponent 的内容并创建一个模型。slvnvextractnewModel 中返回新模型的名称。如果模型名称已经存在,slvnvextract 将使用子系统或子图名称作为模型名称,并在模型名称后附加数字。

注意

如果原子子图调用子图之外的导出图形函数,slvnvextract 会创建模型,但新模型不会编译。

如果将 showModel 设置为 true,则 newModel = slvnvextract(subcomponent,showModel) 打开提取的模型。仅当您将 showModel 设置为 false 时,才会加载提取的模型。

newModel = slvnvextract(modelmissingslfunctiondef) 为模型 modelmissingslfunctiondef 提取一个桩件模型,该模型缺少 Simulink® Design Verifier™ 分析所需的 Simulink 函数定义。返回 newModel 中新模型的名称。sldvextract 使用输入模型名称加上后缀 SldvStub 作为提取的模型名称,如果该模型名称已存在,则在模型名称后附加数字。

如果将 showModel 设置为 true,则 newModel = slvnvextract(modelmissingslfunctiondef, showModel) 打开提取的模型。仅当 showModel 设置为 false 时,才会加载提取的模型。

示例

全部折叠

此示例展示如何从模型中提取原子子系统并使用 slvnvextract 将其复制到新模型。

加载 sldemo_lct_bus 模型。

modelName = 'slcoverage_lct_bus';
load_system(modelName);
load slcoverage_lct_data.mat

slcoverage_lct_bus 模型有一个 S-Function。使用 legacy_code 构建 S-Function。

def = legacy_code('initialize');
def.SFunctionName = 'slcoverage_sfun_counterbus';
def.OutputFcnSpec = ...
    ['void counterbusFcn(COUNTERBUS u1[1], '...
    'int32 u2, COUNTERBUS y1[1], int32 y2[1])'];
def.HeaderFiles   = {'counterbus.h'};
def.SourceFiles   = {'counterbus.c'};
def.Options.supportCoverage = true;
legacy_code('generate_for_sim', def);
### Start Compiling slcoverage_sfun_counterbus
mex -I/tmp/Bdoc25b_2988451_562900/tp58b68c03/slcoverage-ex66778043 -c /tmp/Bdoc25b_2988451_562900/tp2d3dd7a7_e51b_4078_b168_19a764e26ddd/counterbus.c -outdir /tmp/Bdoc25b_2988451_562900/tp3a2e3c4a_3c40_4595_acfa_9bf466a755fa
Building with 'gcc'.
MEX completed successfully.
mex -I/tmp/Bdoc25b_2988451_562900/tp58b68c03/slcoverage-ex66778043 /tmp/Bdoc25b_2988451_562900/tp2d3dd7a7_e51b_4078_b168_19a764e26ddd/tp758b42a9_2a58_470a_98ac_add753f5a841.c /tmp/Bdoc25b_2988451_562900/tp3a2e3c4a_3c40_4595_acfa_9bf466a755fa/counterbus.o -L/mathworks/devel/bat/filer/batfs2566-0/Bdoc25b.2988451/build/runnable/matlab/bin/glnxa64 -lmwsl_sfcn_cov_bridge -output slcoverage_sfun_counterbus
Building with 'gcc'.
MEX completed successfully.
mex -I/tmp/Bdoc25b_2988451_562900/tp58b68c03/slcoverage-ex66778043 -c /tmp/Bdoc25b_2988451_562900/tp58b68c03/slcoverage-ex66778043/counterbus.c -outdir /tmp/Bdoc25b_2988451_562900/tp3a2e3c4a_3c40_4595_acfa_9bf466a755fa
Building with 'gcc'.
MEX completed successfully.
mex -I/tmp/Bdoc25b_2988451_562900/tp58b68c03/slcoverage-ex66778043 /tmp/Bdoc25b_2988451_562900/tp2d3dd7a7_e51b_4078_b168_19a764e26ddd/slcoverage_sfun_counterbus.c /tmp/Bdoc25b_2988451_562900/tp2d3dd7a7_e51b_4078_b168_19a764e26ddd/tpcc1de9d5_0cb9_46c7_9ffa_07b1869b09c0.c /tmp/Bdoc25b_2988451_562900/tp2d3dd7a7_e51b_4078_b168_19a764e26ddd/tp53f1aee3_646a_4024_83e3_99658a67690d.c /tmp/Bdoc25b_2988451_562900/tp3a2e3c4a_3c40_4595_acfa_9bf466a755fa/counterbus.o -L/mathworks/devel/bat/filer/batfs2566-0/Bdoc25b.2988451/build/runnable/matlab/bin/glnxa64 -lmwsl_sfcn_cov_bridge -output slcoverage_sfun_counterbus
Building with 'gcc'.
MEX completed successfully.
### Finish Compiling slcoverage_sfun_counterbus
### Exit

从模型中提取 slCounter 子系统并将其复制到新模型。

newModel = slvnvextract([modelName,'/slCounter'],true)
newModel =

    'slCounter'

此示例显示如何从模型中提取原子 Stateflow® 图并使用 slvnvextract 将其复制到新模型。

加载 slvnvdemo_covfilt 模型。

modelName = 'slvnvdemo_covfilt';
load_system(modelName);

从模型中提取模式逻辑原子子图并将其复制到新模型中。

newModel = slvnvextract([modelName,'/Mode Logic'],true)
newModel =

    'ModeLogic'

输入参数

全部折叠

提取内容的原子子系统或原子子图的完整路径。

指定是否要显示提取的模型。

缺失的 Simulink 函数模型的完整路径,指定为字符向量或字符串标量。

输出参量

全部折叠

报告由 slvnvextract 创建的新提取模型的名称。

版本历史记录

在 R2010b 中推出