本例指导您完成多次引用另一个模型的模型的模拟和代码生成。在本例中,Simulink®生成用于加速模拟的代码,Simulink®编码器™ 生成可在独立应用程序中部署的代码。万博1manbetx
模型参考相对于子系统有几个优点:
您可以独立于使用它的模型来开发引用的模型。
您可以在另一个模型中多次引用一个模型,而不必进行冗余复制。
多个模型可以引用单个模型。
引用的模型直到需要时才加载。这种增量加载加快了模型加载时间。
如果模型在加速模式中被引用,Simulink会创建用于仿真的特殊二进制文件。万博1manbetx如果自创建二进制文件以来引用的模型没有更改,因此二进制文件是最新的,那么在模拟或编译使用这些二进制文件的模型时,不会发生代码生成。这个过程叫做增量的代码生成.使用二进制文件可以更快地更新和模拟模型,并提高代码生成的模块化程度。
使用model块为模型生成代码也利用了增量代码生成的优势。
打开示例模型。
开放式系统(“sldemo_mdlref_basic”)
此模型包含三个模型块:计数器A、计数器B和计数器C。这些块引用相同的模型,sldemo_mdlref_counter
,这是一个单独的模型,而不是sldemo_mdlref_基本
.
要确定在打开模型层次结构中的顶层模型后,哪些模型被加载到内存中,输入以下命令:
get_param 万博1manbetx(Simulink.allBlockDiagrams“名字”)
ans='sldemo\U mdlref\U basic'
没有列出引用的模型,因为它没有被加载。
通过双击任何model块或输入以下命令打开引用的模型:
开放式系统(“sldemo_mdlref_counter”)
再次查询内存中加载的模型。
get_param 万博1manbetx(Simulink.allBlockDiagrams“名字”)
ans=2x1单元数组{'sldemo\u mdlref\u计数器'}{'sldemo\u mdlref\u基本'}
现在列出了引用的模型,说明模型是根据需要以增量方式加载的。
导航回父模型sldemo_mdlref_基本
.
sldemo_mdlref_基本
配置为在编译时显示采样时间颜色。上调试选项卡上,单击更新模型.
模型块继承不同的采样时间,因为引用的模型sldemo_mdlref_counter
没有明确指定示例时间。
模型块具有模拟模式控制如何模拟参照模型的参数。如果参数设置为正常的
时,以解释模式模拟参考模型。如果设置为加速器
通过代码生成对参考模型进行了仿真。此过程使用名为模拟目标加速器模式中所引用的每个独特型号。生成仿真目标不需要Simulink Coder许可证。万博1manbetx
在此模型中,计数器A和计数器B引用sldemo_mdlref_counter
在普通模式下,由Model块图标上的空心角表示。另一个实例CounterC引用sldemo_mdlref_counter
加速模式,由模型块图标上的填充角指示。
的模拟目标sldemo_mdlref_counter
通过执行以下任一操作进行建模:
更新sldemo_mdlref_基本
模拟sldemo_mdlref_基本
要以编程方式构建模拟目标,请使用以下命令:
slbuild('sldemo\u mdlref\u计数器','ModelReferenceSimTarget')
一旦建立仿真目标,随后进行仿真或更新sldemo_mdlref_基本
不触发模拟目标的重建,除非sldemo_mdlref_counter
已经改变了。
如果将引用模型的所有三个实例都设置为在正常模式下进行模拟,则不会构建模拟目标。
创建独立的可执行文件时sldemo_mdlref_基本
的代码和二进制文件模型参考编码器目标属于sldemo_mdlref_counter
.生成模型参考编码器目标需要Simulink coder许可证。万博1manbetx
您可以为其构建模型参考编码器目标sldemo_mdlref_counter
以及的独立可执行文件sldemo_mdlref_基本
通过执行以下任一操作:
为。构建独立的可执行文件sldemo_mdlref_基本
.
目标参考编码器模型的建立sldemo_mdlref_counter
,然后为其构建独立的可执行文件sldemo_mdlref_基本
.
要以编程方式构建独立的可执行文件,请使用以下命令:
slbuild('sldemo\U mdlref\U basic','StandaloneCoderTarget')
一旦构建了模型参考编码器目标,随后构建sldemo_mdlref_基本
不会触发模型引用编码器目标的重建,除非sldemo_mdlref_counter
已更改。为引用模型生成的代码sldemo_mdlref_counter
是重用。
的代码生成报告sldemo_mdlref_基本
链接到报告sldemo_mdlref_counter
在参考模型部分