真值表实现组合逻辑设计简洁,表格格式。真值表的典型应用包括:决策
故障检测和管理
模式切换
真值表只在仿真软件支持金宝app金宝app®。
你可以添加一个真值表块直接仿真软件模型,也可以定义一个真理Stat金宝appeflow表函数®图表、州或子图表。真值表块在仿真软件模型执行模型金宝app块,真值表函数在Stateflow图只有当你调用的真值表函数执行。函数的位置确定的状态和转换集可以调用该函数。
如果您想要调用的函数在一个州或子图表及其亚态,将你的真值表函数状态或子图表。这个函数将覆盖其他函数同名的父母和祖先的状态或子图表。
如果你想在任何地方调用这个函数在一个图表,将你的真值表函数在表级别。
如果你想调用该函数从任何图在你的模型中,把你的真值表在表级别,使绘图水位函数的输出。有关更多信息,请参见出口Stateflow功能以便重用。
请注意
真值表函数可以访问图和状态数据上面Stateflow层次结构。
这个事实表函数的名称ttable
。这需要三个参数(x
,y
,z
),并返回一个输出值(r
)。
函数由这种安排条件,决定和行动。
条件 |
决定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 |
每一个进入的条件条件列必须求值为真(非零值)或false(零值)。结果为每个条件指定为T(真实),F (false),或者——(真或假)。每个决定列结合的结果为每个逻辑条件,复合条件,这被称为一个决定。
你评估一个真值表决定,开始决定1。的决定4涵盖了所有可能的剩余的决定。如果一个人的决定是正确的,表执行相关操作,然后真值表执行完成。
例如,如果条件x = = 1
和y = = 1
是错误的和条件z = = 1
是真的,那么决定3是真的和变量r
等于3。剩下的决定都不是真值表的测试和评估完成。如果前三的决定是错误的,那么默认自动决定真正及其操作(r = 4
)执行。此表列出了伪代码对应的评价这真值表的例子。
伪代码 |
描述 |
---|---|
如果((x = = 1) & ! (y = = 1) & ! (z = = 1) r = 1; |
如果决定1是真的,那么准备好了吗 |
elseif (!(x = = 1) & (y = = 1) & ! (z = = 1) r = 2; |
如果决定2是真的,那么准备好了吗 |
elseif (!(x = = 1) & ! (y = = 1) & (z = = 1) r = 3; |
如果决定3是真的,那么准备好了吗 |
其他r = 4;endif |
如果所有其他的决定是错误的,那么默认的决定是正确的。集 |
定义一个真值表函数:
在对象面板,点击图标的真值表函数。移动你的新事实表函数指针指向的位置在你的图表。
输入函数的签名标签。
函数的函数签名标签指定一个名字和正式名称的参数和返回值。一个签名标签有语法:
[return_val1, return_val2,…]= function_name (__arg1,最长,…)
您可以使用相同的参数和返回值的变量名。例如,一个函数与这个签名标签使用的变量日元
和y2
作为输入和输出:
(y1、y2、y3) = f (y1, u, y2)
日元
和y2
通过引用传递(指针),u
通过价值。通过引用传递输入的次数,降低了中间数据生成的代码副本,从而导致更优化的代码。
请注意
不要使用图表符号的名称作为参数或返回值函数。例如,如果x
或y
图表数据,定义一个函数的签名y = f (x)
结果在一个运行时错误。
程序的功能,通过双击打开真值表编辑器框的函数。
在真值表编辑器中,添加条件下,决策和行动。有关更多信息,请参见计划一个真值表。
在Model Explorer中,扩大图表对象并选择事实表函数。函数的参数和返回值的签名显示为数据项属于你的函数。参数的范围输入
。返回值的范围输出
。
数据属性对话框中为每个参数和返回值,指定数据的属性,如中描述设置数据属性。
创建需要的任何其他数据项的功能。有关更多信息,请参见通过模型浏览器中添加数据。
你的函数可以访问自己的数据或数据属于父状态或图表。数据项的函数可以有一个的范围:
常数
常量数据保留其初始值通过函数调用。
参数
——参数数据保留其初始值通过函数调用。
当地的
——从一个函数调用本地数据持续到下一个函数调用。有效的只有事实表,使用C作为行动的语言。
临时
——临时数据初始化的函数调用。有效的只有事实表,使用C作为行动的语言。
在事实表函数,使用C作为动作语言,定义本地数据,当你想让你的数据值持续在整个模拟函数调用。定义临时数据当你想要初始化数据值的每一个函数调用。例如,您可以定义一个计数器当地的
如果你想跟踪范围的次数,你调用这个函数。相反,您可以指定一个循环计数器临时
如果你不需要计数器值范围持续函数完成后。
事实上使用MATLAB的表函数®作为动作语言,您不需要定义本地或临时数据的函数。如果你使用一个未定义的变量,Stateflow创建一个临时变量,其余的功能可用。存储值保存在函数调用你的函数可以访问本地数据在表级别。
提示
你可以初始化局部和暂时从MATLAB函数空间中的数据。有关更多信息,请参见从MATLAB基础工作空间初始化数据。
你可以叫真值表函数操作的任何州或过渡。你也可以叫真值表函数与其他函数。如果你出口一个真值表函数,你可以叫它从任何图表模型中。导出函数的更多信息,请参阅出口Stateflow功能以便重用。
调用一个真值表函数的语法是一样的函数签名,与实际参数中指定取代正式的签名。如果数据类型的一个实际的和正式的参数不同,强制类型转换函数的实际参数类型正式论点。
叫一个真值表函数,使用函数签名,包括实际的参数值为每一个正式的参数在函数签名。如果实际的和正式的参数的数据类型不同,函数将实际参数形式的类型参数。
您可以指定一个真理的属性表函数在Model Explorer或真值表的属性对话框。
使用模型资源管理器:
模型浏览器打开,建模选项卡上,选择模型浏览器。
在模型层次结构窗格中,选择事实表函数。
在真值表窗格中,编辑事实表函数属性。
用真值表属性对话框:
在Stateflow编辑器中,右键单击真值表函数。
选择属性。
编辑事实表函数属性。
您还可以指定真值表函数编程方式通过使用属性Stateflow.TruthTable
对象。关于Stateflow编程接口的更多信息,请参阅Stateflow API的概述。
函数名。单击函数名称链接到把你的前景在本土图表。
控制你的内联函数生成的代码:
汽车
——决定内联函数基于一个内部计算。
内联
——内联函数如果你不出口到其他图表和它不是一个递归的一部分。(如果你存在递归函数调用本身直接或间接通过另一个函数调用)。
函数
——不内联函数。
函数签名标签。函数的函数签名标签指定一个名字和正式名称的参数和返回值。
控制水平的诊断不指定你的真值表的功能。有关更多信息,请参见正确的Overspecified和真值表。
控制水平的诊断overspecification表函数在你的真理。有关更多信息,请参见正确的Overspecified和真值表。
控制的动作语言Stateflow真值表函数。MATLAB和c之间做出选择的更多信息,请参阅MATLAB和C之间的差异作为动作语言的语法。
功能描述。您可以输入简短的描述功能的层次结构。
链接到在线文档的功能。您可以输入一个web URL地址或MATLAB命令显示在合适的在线文档格式,比如HTML文件或文本在MATLAB命令窗口。当你点击文档链接超链接,Stateflow显示文档。
打开真值表属性对话框中,在建模选项卡上,单击表属性。
的属性真值表块的组合性质的事实表函数和图表,使用MATLAB作为行动的语言。每个属性的描述,请参阅指定属性的真值表的功能和指定属性Stateflow图表。
您还可以指定真值表块属性以编程方式使用Stateflow.TruthTableChart
对象。关于Stateflow编程接口的更多信息,请参阅Stateflow API的概述。