用真值表建立组合逻辑模型

真值表以简洁的表格格式实现组合逻辑设计。真值表的典型应用包括:

  • 故障检测与管理

  • 模式切换

真值表仅在Simulink中受支持万博1manbetx万博1manbetx®.

您可以添加真值表直接阻塞到Simulink模型,或者可以在St万博1manbetxateflow中定义真值表函数®图表、状态或子图表。真值表Simulink模型中的万博1manbetx块作为Simulink块执行,而Stateflow图中的真值表函数仅在调用真值表函数时执行。函数的位置决定了可以调用函数的状态集和转换集。

  • 如果要在图表中的任何位置调用函数,请将真值表函数置于图表级别。

  • 如果要从一个状态或子图表及其子图表中调用函数,请将真值表函数置于该状态或子图表中。该函数重写该状态或子图表的父级和父级中同名的任何其他函数。

  • 如果要从模型中的任何图表调用函数,请将真值表置于图表级别,并启用图表级别函数的导出。有关详细信息,请参见导出Stateflow函数以供重用.

无论您的真值表是作为Simulink模型中的一个块存在,还是作为Stateflow图表中的一个函数存在,万博1manbetx您都可以用相同的方式对它们进行编程。

真值表的布局

这个真值表函数的名称是. 需要三个论点(,是的,和z轴)并返回一个输出值().

该功能由条件、决策和操作的这种安排组成。

条件

决定1

决定2

决定3

决定4

x==1

T型

F型

F型

-

y==1

F型

T型

F型

-

z==1

F型

F型

T型

-

行动

r=1 r=2 r=3 r=4

在中输入的每个条件条件列的计算结果必须为true(非零值)或false(零值)。每个条件的结果都指定为T(真)、F(假)或-(真或假)。每个decision列将每个条件的结果与一个逻辑条件和一个复合条件相结合,称为decision。

你一次评估一个真相表一个决定,从决定1. 这个决定4涵盖所有可能的剩余决策。如果其中一个决策是真的,那么表执行相关的操作,然后真值表执行就完成了。

例如,如果条件x==1y==1都是假的z==1是真的,那么决定3是真的,变量设置为3。剩下的决策没有经过测试,真相表的评估也完成了。如果前三个决策是错误的,那么默认决策将自动为真并执行其操作(r=4)被处决。此表列出与此真值表示例的计算相对应的伪代码。

伪码

说明

如果((x==1)&!(y==1)&!(z==1)r=1;

如果决定1是真的,然后设定r=1.

否则(!(x==1)&(y==1)&!(z==1)r=2;

如果决定2是真的,然后设定r=2.

否则(!(x==1)&!(y==1)和(z==1)r=3;

如果决定3是真的,然后设定r=3.

否则r=4;endif

如果所有其他决策都是错误的,那么默认决策是正确的。套r=4.

定义真值表函数

定义真值表函数:

  1. 声明真值表函数参数和返回值。

  2. 编程真值表函数。见编制真值表.

  3. 使用“属性检查器和符号”窗格为每个参数和返回值指定数据属性。

  4. 使用“符号”窗格创建函数所需的任何其他数据项。您的函数可以访问自己的数据或属于父状态或图表的数据。

声明函数参数和返回值

函数签名标签为函数指定一个名称,并为其参数和返回值指定形式名称。签名标签具有以下语法:

[返回值1,返回值2,...]=函数名(arg1,arg2,…)
可以指定多个返回值和多个输入参数。每个返回值和输入参数可以是标量、向量或值矩阵。对于只有一个返回值的函数,省略签名标签中的括号。

参数和返回值可以使用相同的变量名。例如,具有此签名标签的函数使用y2年作为输入和输出:

[y1,y2,y3]=f(y1,u,y2)
如果将此函数导出为C代码,y2年通过引用传递(作为指针),并且u型按值传递。通过引用传递输入可以减少生成的代码复制中间数据的次数,从而产生更优化的代码。

在状态和转换中调用真值表函数

您可以从任何状态或转换的操作调用真值表函数。也可以从其他函数调用真值表函数。如果导出真值表函数,则可以从模型中的任何图表调用它。有关导出函数的详细信息,请参见导出Stateflow函数以供重用.

调用真值表函数的语法与函数签名相同,实际参数替换签名中指定的形式参数。如果实际参数和形式参数的数据类型不同,则函数将实际参数强制转换为形式参数的类型。

如果函数签名的形式参数是标量,请验证函数调用的输入和输出是否遵循标量扩展规则。有关详细信息,请参见为矩阵的所有元素赋值.

指定真值表函数的属性

可以通过真值表的“属性”对话框为真值表函数设置常规属性。若要打开“函数属性”对话框,请右键单击“真值表”函数框并选择属性从上下文菜单。

姓名

函数名。单击“函数名”链接将函数置于其本机图表的前台。

函数内联选项

在生成的代码中控制函数的内联:

  • 自动-确定是否基于内部计算内联函数。

  • 内联-如果不将函数导出到其他图表并且它不是递归的一部分,则将函数内联。(如果函数通过另一个函数调用直接或间接调用自身,则存在递归。)

  • 功能-不内联您的函数。

标签

功能的签名标签。有关详细信息,请参见声明函数参数和返回值.

规格不足

控制真值表函数中未指定的诊断级别。有关详细信息,请参见修正过指定和欠指定的真值表.

超规格

控制真值表函数中过度指定的诊断级别。有关详细信息,请参见修正过指定和欠指定的真值表.

动作语言

控制Stateflow真值表函数的操作语言。在MATLAB中选择®或C.有关详细信息,请参见MATLAB与C作为动作语言语法的区别.

说明

功能描述。可以在层次结构中输入函数的简要说明。

文档链接

链接到函数的联机文档。您可以输入web URL地址或MATLAB命令,该命令以适当的联机格式显示文档,例如在MATLAB命令窗口中输入HTML文件或文本。当您单击文档链接超链接,Stateflow显示文档。

相关主题