合并的信号

该模型展示了以下Simulink®概念:金宝app

型号说明

该模型的左侧包含两个块,例如重复序列块,从所述的Simulink源库。金宝app每个块生成所述块的图标显示的形态的一个标量输出信号。

这两个信号被馈送到不同的子系统启用,其概述了用粗线。

启用的(或有条件执行的)子系统由离散脉冲发生器块生成的信号控制。

这个块的输出每5秒在0和1之间切换一次。当离散脉冲发生器模块的输出为正时,对顶层启用子系统进行仿真。当离散脉冲发生器模块输出为零时,底层启用子系统进行仿真。

为了强制底层启用子系统模拟离散脉冲发生器块的输出为零时的情况,输出通过设置为NOT操作符的逻辑操作符块进行传递。当输入为0时,NOT块输出值为1。

两个使能的子系统的输出被馈送到合并块。

合并块的输出是最后,显示在Simulink的范围。金宝app

您可以运行仿真看到示波器上的合并块的输出。请注意,在范围那样的波形类型每五秒钟改变。这是由于合并块的行为。

有条件执行子系统

合并块例如包含两个有条件地执行的子系统。

一个有条件执行的子系统是一个仅在模拟期间的特定时间执行的子系统,即。,当满足某些条件时。在这种情况下,子系统是启用的子系统,由它们的图标和块的顶部或底部的附加输入端口来区分,如下所示。

送入附加端口的信号称为控制信号。这个信号的值规定,确定子系统是否被执行,或没有,在任何给定时间步骤中的条件。当控制信号是严格正启用子系统执行。

在这个例子中,您要执行当控制信号为正启用的子系统之一,另当控制信号为零。您可以使用Simulink中的逻辑运算模块做到这一点。金宝app

逻辑算符块

在Simulink的逻辑运算模块为您提供了整合的逻辑运算符和金宝app布尔信号到您的Simulink图的方法。

您可以打开逻辑运算符块地看到,在下拉菜单中列出了不同的运营商。当输入信号是非零的,或0(FALSE)时,输入信号是严格为零的NOT当前设置返回1(或TRUE)。

在本例中,您可以通过维护NOT的当前操作符设置并关闭对话框,在控制信号变为0时使用此特性生成正值。

注意:在Simuli金宝appnk编辑器中调试选项卡中,信息覆盖菜单提供用于框图上显示信号和端口属性的选项。

布尔信号在Simulink®金宝app

你必须有Simulink中使用布尔或双值输入和逻辑运算块金宝app的输出,使用以下步骤的选项。

1.要打开“配置参数”对话框,请在Simulink编辑器中打开金宝app造型选项卡,选中模型设置

2.转到配置参数对话框的优化页面。

3.看到实现逻辑信号作为布尔数据(相对于双)参数已启用。这种优化告诉Simulink中它是否应该允许一个金宝app信号,其数据类型是双传递进出支持布尔数据类型块。金宝app

4.单击好吧按钮配置参数对话框

通过在离散脉冲发生器块之后使用数据类型转换块,可以避免逻辑操作符块期望布尔输入信号的错误。

合并块和交替启用子系统

您可以使用Merge块来创建单个信号,其值等于当前正在执行的任何启用的子系统的输出。以下步骤。

1.打开合并块的块参数对话框由块上双击。

2.指定输入数量作为要合并其输出的已启用子系统的数量。在本例中,您希望将*Number of input *设置为2。

3.保留初始输出场为空,以指定合并块将其初始输出设置为其输入信号之一的初始值。在这种情况下,输出将是模拟启动时启用的子系统的初始值。

4.关闭合并块的块参数对话框。

5.连接两个有条件执行子系统合并块的输入的输出。

和以前一样,当你运行仿真,合并块的输出是什么条件执行子系统在任何时间点执行的价值。

有趣的特性:以编程方式更改块的背景颜色

在运行模拟时,您应该注意到当前正在执行的有条件执行的子系统的颜色发生了变化。这并所有有条件地执行子系统自动发生。它使用的是S-功能和MATLAB®代码实现了!

如果你的开放的一个在Simulink图中的块上启用子系统通过双击,你会看到它包含以下。金宝app

1.一个Enable块,它使这个子系统成为一个有条件执行的子系统,并为控制信号添加输入端口

2.一个二级MATLAB文件s -函数块,运行MATLAB文件s -函数mergefcn.m

在每个时间步骤中,执行s函数的mdlUpdate子函数。它使用以下命令根据当前是否正在执行来设置子系统的BackgroundColor属性。

set_param( 'mergedemo /子系统', 'BACKGROUNDCOLOR', '绿色')

有关如何写MATLAB文件S-功能的详细信息,请参阅文档。