主要内容

选择子系统执行

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

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

具有If-Else结构的模型

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

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

考虑下面的模型。要打开模型,请参见ex_if_block

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

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

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

用If-Else结构创建模型

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

  1. 一个地方如果块在Simulink编辑器万博1manbetx。双击块,打开块参数对话框。

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

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

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

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

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

    可以输入多个elseif表达式,以“,”分隔。属性中添加一个输出端口如果块,使用窗体的标签elseif(表达)

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

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

  6. 添加三个If动作子系统块。

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

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

    的图标If动作子系统块被重命名为附加到它的表达式的类型。

  8. 在每一个If动作子系统block,输入要为它处理的条件执万博1manbetx行的Simulink块。

  9. 连接输出If动作子系统块到合并块。

  10. 运行一个模拟。

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

请注意

所有的块If动作子系统由If块驱动的块必须以与驱动块相同的速率运行。

型号与开关箱结构

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

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

考虑下面的模型开关结构。要打开模型,请参见ex_switch_case_block

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

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

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

创建开关箱结构模型

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

  1. 放置一个开关情况块在Simulink编辑器万博1manbetx。双击块,打开块参数对话框。

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

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

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

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

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

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

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

    的图标开关案例动作子系统块被重命名为附加到它的表达式的类型。

  6. 在每一个开关案例动作子系统block,输入要为它处理的案例执万博1manbetx行的Simulink块。

  7. 运行一个模拟。

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

请注意

的子系统执行后,隐含的中断将终止开关情况块。万博1manbetx动态仿真模块开关情况block不表现出C的fall -through行为开关语句。

模型的例子

另请参阅