文档

重用组合逻辑定义真值表

真值表实现组合逻辑设计简洁,表格格式。只在Stateflow真值表支持金宝app®块的仿真软件金宝app®模型。真值表的典型应用包括:决策

  • 故障检测和管理

  • 模式切换

你可以添加一个真值表块直接仿真软件模型。金宝app您还可以定义一个真值表函数Stateflow图,状态,或子图表。函数的位置确定的状态和转换集可以调用该函数。

  • 如果你想调用这个函数只在一个国家或子图表及其亚态,将你的真值表函数的状态或子图表。这个函数将覆盖其他函数同名的父母和祖先的状态或子图表。

  • 如果你想在任何地方调用这个函数图,将你的真值表函数在表级别。

  • 如果你想调用该函数从任何图在你的模型中,把你的真值表在表级别,使绘图水位函数的输出。有关更多信息,请参见出口Stateflow功能以便重用

例如,这个事实表函数的名称ttable。这需要三个参数(x,y,z),并返回一个输出值(r)。

函数由这种安排条件,决定和行动。

条件

决定1

决定2

决定3

默认的决定

x = = 1

T

F

F

- - - - - -

y = = 1

F

T

F

- - - - - -

z = = 1

F

F

T

- - - - - -

行动

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

每一个进入的条件条件列必须求值为真(非零值)或false(零值)。结果为每个条件指定为T(真实),F (false),或者——(真或假)。每个决定列结合的结果为每个逻辑条件,复合条件,这被称为一个决定。

你评估一个真值表决定,开始决定1。的默认的决定涵盖了所有可能的剩余的决定。如果一个人的决定是正确的,你执行其行动,然后真值表执行完成。

例如,如果条件x = = 1y = = 1是错误的和条件z = = 1是真的,那么决定3是真的和变量r等于3。剩下的决定都不是真值表的测试和评估完成。如果前三的决定是错误的,那么默认的决定自动是真的及其操作(r = 4)执行。此表列出了伪代码对应的评价这真值表的例子。

伪代码

描述

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

如果决定1是真的,那么准备好了吗r = 1

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

如果决定2是真的,那么准备好了吗r = 2

elseif (!(x== 1) & !(y == 1) & (z == 1)) r = 3;

如果决定3是真的,那么准备好了吗r = 3

其他r = 4;endif

如果所有其他的决定是错误的默认的决定是真的。集r = 4

定义一个真值表函数

  1. 在对象面板,点击图标的真值表函数。移动你的新事实表函数指针指向的位置在你的图表。

  2. 为函数,输入签名标签中描述声明函数参数和返回值

  3. 程序事实表函数。有关更多信息,请参见计划一个真值表

  4. 在Model Explorer中,扩大图表对象并选择事实表函数。函数的参数和返回值的签名显示为数据项属于你的函数。参数的范围输入。返回值的范围输出

  5. 数据属性对话框中为每个参数和返回值,指定数据的属性,如中描述设置数据属性

  6. 创建需要的任何其他数据项的功能。有关更多信息,请参见通过模型浏览器中添加数据

    你的函数可以访问自己的数据或数据属于父状态或图表。数据项的函数可以有一个的范围:

    • 当地的——从一个函数调用本地数据持续到下一个函数调用。有效期为C的图表。

    • 常数常量数据保留其初始值通过函数调用。

    • 参数——参数数据保留其初始值通过函数调用。

    • 临时——临时数据初始化的函数调用。有效期为C的图表。

初始化函数数据

你可以初始化函数数据(除了参数和返回值)从MATLAB®工作区。有关更多信息,请参见从MATLAB基础工作空间初始化数据

定义临时数据

图表中使用C作为动作语言,定义您想要使用数据时临时数据,仅仅是一个函数执行时有效。例如,您可以指定一个循环计数器临时如果计数器值范围不需要持续函数完成后。

图表中使用MATLAB作为行动的语言,不需要定义临时函数数据。如果你使用一个未定义的变量,Stateflow创建一个临时变量。可用的变量是函数的其余部分。

声明函数参数和返回值

函数的函数签名标签指定一个名字和正式名称的参数和返回值。一个签名标签有语法:

(return_val1,return_val2,……]=function_name(__arg1,最长,……)
您可以指定多个返回值和多个输入参数。每一个返回值和输入参数可以是一个标量,矢量,或矩阵的值。函数只有一个返回值,省略括号的签名标签。

您可以使用相同的参数和返回值的变量名。例如,一个函数与这个签名标签使用的变量日元y2作为输入和输出:

(y1、y2、y3) = f (y1, u, y2)
如果这个函数导出到C代码,日元y2通过引用传递(指针),u通过价值。通过引用传递输入的次数,降低了中间数据生成的代码副本,从而导致更优化的代码。

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

你可以叫真值表函数操作的任何州或过渡。你也可以叫真值表函数与其他函数。如果你出口一个真值表函数,你可以叫它从任何图表模型中。

调用一个真值表函数的语法是一样的函数签名,与实际参数中指定取代正式的签名。如果数据类型的一个实际的和正式的参数不同,强制类型转换函数的实际参数类型正式论点。

提示

如果正式论点标量函数的签名,验证输入和输出标量函数调用遵守规则的扩张。有关更多信息,请参见赋值矩阵的所有元素

指定属性的真值表的功能

你能为你的真值表设置通用属性函数通过其属性对话框。打开功能属性对话框,右键单击真值表框和选择功能属性从上下文菜单中。

的名字

函数名。单击函数名称链接到把你的前景在本土图表。

内联函数的选择

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

  • 汽车——决定内联函数基于一个内部计算。

  • 内联——内联函数如果你不出口到其他图表和它不是一个递归的一部分。(如果你存在递归函数调用本身直接或间接通过另一个函数调用)。

  • 函数——不内联函数。

标签

函数签名标签。有关更多信息,请参见声明函数参数和返回值

不指定

控制水平的诊断不指定你的真值表的功能。有关更多信息,请参见正确的Overspecified和真值表

Overspecification

控制水平的诊断overspecification表函数在你的真理。有关更多信息,请参见正确的Overspecified和真值表

动作语言

控制的动作语言Stateflow真值表函数。MATLAB和c之间做出选择的更多信息,请参阅语言选项Stateflow真值表

描述

功能描述。您可以输入简短的描述功能的层次结构。

文档链接

链接到在线文档的功能。您可以输入一个web URL地址或MATLAB命令显示在合适的在线文档格式,比如HTML文件或文本在MATLAB命令窗口。当你点击文档链接超链接,Stateflow显示文档。

相关的话题