人在仿真软件金宝app

金宝appSimulink &基于模型的设计

变体:在R2018b中有哪些选项?

我发布了关于变体在过去,但事情已经发生了很大的变化,所以我认为这将是一个好主意来审查R2018b的变体可用的选项。

不同的子系统

如果您不熟悉变体的概念,我建议您从文档页面开始什么是变体,什么时候使用它们.简而言之,变体的概念允许您拥有模型中存在但有条件编译的块和子系统。

对于变体子系统,它可以包含一组变体实现,并且一次只能有一个是活动的。下面是一个图像,给出了变体子系统的概述。

不同的子系统

变型汇源

变体水槽块是具有多个输入和一个输出(Source)或一个输入和多个输出(Sink)的块。根据我将在后面讨论的不同条件,只有一个端口是活动的,并且在模型编译期间不包括连接到其他端口的块。

在下面的示例中,第一个输入是活动的。正弦波,“原罪”和平方根是不活跃的和灰色的,因为他们不需要。

变异来源

现在,让我们看看可用的选项来控制哪个变体是活动的。

使用标签模式控制变量

以前叫“覆盖不同的条件”,标签模式主要针对那些希望通过交互方式指定活动变体的用户。

当你打开一个变量的块参数对话框(子系统,源,或Sink——它们都工作相同),你可以使用以下步骤配置变量:

配置标签模式

一旦配置了块,你可以通过右键单击块上显示的变量徽章来更改活动变量:

配置标签模式

如果你更喜欢,也可以用set_param以编程方式更改活动变体。

使用表达式模式控制变量

使用表达式模式,可以为每个变量指定一个表达式。该表达式必须是一个有效的MATLAB表达式,计算结果为真或假。

配置的表达模式

代码生成

当变量由表达式控制时,您就有了与代码生成相关的附加功能。最重要的是生成预处理条件

在下一张图片中,我指定了“a==1”和“a==2”作为变量源和Sink块中的条件,我定义了“a”作为Simulink。金宝app参数对象。在生成代码时,这两个条件都是存在的,并受到预处理条件的保护。这允许您只生成一次代码,然后构建不同的配置。

生成预处理条件

手动变型接收器和源

最后要强调的一项:Manual Variant水槽块。

这些块的用法非常简单:双击块来切换哪个分支是活动的。

手动变体

在模型编译期间,只有连接到活动分支的块才会被编译。

现在轮到你了

请让我们知道您对这些选项的看法,以及您如何控制模型中的变体。

|

评论

要留下评论,请点击在这里登录到您的MathWorks帐户或创建一个新帐户。