主要内容

选择子系统执行

一个逻辑上执行子系统块在当前时间步上运行一次或多次控制块.控制块实现的控制逻辑类似于编程语言语句(例如,if-then, switch, while, for)。

选择子系统是逻辑执行子系统的一种类型,它在一个时间步长中执行一次,以响应来自位于子系统外部的控制块的动作信号。金宝app动态仿真模块®金宝app支持两种选择子系统结构,if-else和switch-case。

具有If-Else结构的模型

If Action Subsystem块是一个子系统块,预先配置为创建子系统的起点,该子系统的执行由如果块。

一个外部如果块控制执行。If块对逻辑表达式求值,然后根据求值的结果,将动作信号输出给如果行动子系统块。

考虑以下模型。打开模型,看ex_if_block

在这个模型中,输入如果块提供表示为输出端口的逻辑表达式的操作数值。每个输出端口连接到如果行动子系统块。其中的表达式如果块自顶向下计算如果表达式。当表达式的计算结果为true时,它对应的如果行动子系统执行,而不计算其余表达式。

if - else模型中的结构可以用下面的伪代码表示。

IF u1 > 0 THEN子系统1 ELSEIF u2 > 0子系统2 ELSE子系统3结束IF

使用If-Else结构创建模型

要创建示例模型,请使用以下过程。

  1. 一个地方如果块在Simulink编辑器金宝app中。双击块,打开块参数对话框。

  2. 输入数量框中,输入2

    两个输入端口被添加到块中。输入端口用于包含操作数值的信号,而不是操作数的数量。输入信号可以是一个矢量。例如,可以将表达式中向量u的第5个元素指定为u (5) > 0

  3. 如果表达式文本框中,输入u1 > 0

    输出端口被添加到带有标签的块中如果(u1 > 0).该端口是唯一需要的输出如果块。

  4. Elseif表达式文本框中,输入u2 > 0

    可以输入多个“elseif”表达式,用逗号分隔。的输出端口如果用表单的标签块elseif(表达)

  5. 检查显示其他条件复选框。

    输出端口被添加到带有标签的块中其他的

  6. 添加三个如果行动子系统块。

    这些块子系统块一个行动的港口块。当你放置一个行动的港口块,一个名为Action的输入端口被添加到块中。

  7. 连接每个输出端口从如果块的动作端口如果行动子系统块。

    当您建立连接时,如果行动子系统块被重命名为附加到它的表达式类型。

  8. 在每一个如果行动子系统块,输入要为它处理的条件执行的Si金宝appmulink块。

  9. 连接输出从如果行动子系统块一个合并块。

  10. 运行一个仿真。

    动作信号线之间如果块和如果行动子系统块从实线变为虚线。

请注意

函数中的所有块如果行动子系统由If块驱动的块必须以与驱动块相同的速度运行。

具有开关外壳结构的型号

开关箱动作子系统块是一个子系统块,预先配置为创建子系统的起点,该子系统的执行由开关情况块。

一个外部开关情况块控制执行。的开关情况块计算案例索引,然后根据所选案例,将动作信号输出给开关箱动作子系统块。

考虑下面的模型开关结构。打开模型,看ex_switch_case_block

在这个模型中,输入开关情况块提供用于选择表示为输出端口的案例的索引值。每个输出端口连接到如果行动子系统块。当一个案例被选中时,它是相应的如果行动子系统是执行。

开关模型中的结构可以用下面的伪代码表示。

CASE u1 u1 = 1: subsystem_1 break u1 = 2或3:subsystem_2_3 break u1 = OTHER VALUES: subsystem_default break END CASE

用开关盒结构创建模型

要创建示例模型,请使用以下过程。

  1. 放置一个开关情况块在Simulink编辑器金宝app中。双击块,打开块参数对话框。

  2. 情况下条件框中,输入{1, 2, 3]}

    定义了两种情况。第一种情况是输入值为1,第二种情况是输入值为23..情况可以是单值或多值,并显示为输出端口开关情况块。非整数输入值被截断为整数。

  3. 选择显示默认情况下复选框。

    输出端口默认值:添加到块中。如果不选择其他情况,此端口将发送动作信号。

  4. 添加三个开关箱动作子系统块。

    这些块子系统块一个行动的港口块。当你放置一个行动的港口块,一个名为Action的输入端口被添加到块中。

  5. 连接每个输出端口从开关情况块的动作端口开关箱动作子系统块。

    当您建立连接时,开关箱动作子系统块被重命名为附加到它的表达式类型。

  6. 在每一个开关箱动作子系统块,输入要为它处理的情况执行的Si金宝appmulink块。

  7. 运行一个仿真。

    动作信号线之间开关情况块和开关箱动作子系统块从实线变为虚线。

请注意

在特定情况的子系统执行之后,隐含的break终止开关情况块。金宝app动态仿真模块开关情况块不表现出C的跌落行为开关语句。

模型的例子

另请参阅