主要内容

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

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/Bdoc26a_3233028_3140804/tp1d8ac732/slcoverage-ex66778043 -c /tmp/Bdoc26a_3233028_3140804/tpb59b6909_d555_4137_b196_226bb99be085/counterbus.c -outdir /tmp/Bdoc26a_3233028_3140804/tpc44a4540_8f19_4db2_a956_9ddd2ae1d752
Building with 'gcc'.
MEX completed successfully.
mex -I/tmp/Bdoc26a_3233028_3140804/tp1d8ac732/slcoverage-ex66778043 /tmp/Bdoc26a_3233028_3140804/tpb59b6909_d555_4137_b196_226bb99be085/tp651ed3a2_8852_4341_9c20_e673911cd223.c /tmp/Bdoc26a_3233028_3140804/tpc44a4540_8f19_4db2_a956_9ddd2ae1d752/counterbus.o -L/mathworks/devel/bat/filer/batfs2566-0/Bdoc26a.3233028/build/runnable/matlab/bin/glnxa64 -lmwsl_sfcn_cov_bridge -output slcoverage_sfun_counterbus
Building with 'gcc'.
MEX completed successfully.
mex -I/tmp/Bdoc26a_3233028_3140804/tp1d8ac732/slcoverage-ex66778043 -c /tmp/Bdoc26a_3233028_3140804/tp1d8ac732/slcoverage-ex66778043/counterbus.c -outdir /tmp/Bdoc26a_3233028_3140804/tpc44a4540_8f19_4db2_a956_9ddd2ae1d752
Building with 'gcc'.
MEX completed successfully.
mex -I/tmp/Bdoc26a_3233028_3140804/tp1d8ac732/slcoverage-ex66778043 /tmp/Bdoc26a_3233028_3140804/tpb59b6909_d555_4137_b196_226bb99be085/slcoverage_sfun_counterbus.c /tmp/Bdoc26a_3233028_3140804/tpb59b6909_d555_4137_b196_226bb99be085/tpf249ef9d_971c_4336_be35_721628a3b837.c /tmp/Bdoc26a_3233028_3140804/tpb59b6909_d555_4137_b196_226bb99be085/tp82bb671a_edbc_4de6_953b_a3141f5f2cfa.c /tmp/Bdoc26a_3233028_3140804/tpc44a4540_8f19_4db2_a956_9ddd2ae1d752/counterbus.o -L/mathworks/devel/bat/filer/batfs2566-0/Bdoc26a.3233028/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 中推出