用真值表模型组合逻辑
真值表实现组合逻辑设计以表格格式。您可以使用Stateflow®真值表为故障检测模型决策和管理和模式切换。
真值表函数Stateflow图只有当你调用的真值表函数执行。您可以定义一个事实表函数Stateflow图,状态,或子图表。函数的位置确定的状态和转换集可以调用该函数。
如果您想要调用的函数在一个州或子图表及其亚态,将你的真值表函数状态或子图表。这个函数将覆盖其他函数同名的父母和祖先的状态或子图表。
如果你想在任何地方调用这个函数在一个图表,将你的真值表函数在表级别。
如果你想调用该函数从任何图在你的模型中,把你的真值表在表级别,使绘图水位函数的输出。有关更多信息,请参见出口Stateflow功能以便重用。
真值表函数可以访问图和状态数据上面Stateflow层次结构。
另外,对于一个更直接的决策逻辑的实现,您可以添加一个真值表块直接向你的仿真软件万博1manbetx®模型。实现控制逻辑,真值表块使用MATLAB®作为动作语言。
真值表的布局
这个事实表函数的名称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
作为就地参数以引用的方式传递。使用就地数据的次数,降低了中间数据生成的代码副本,从而更高效的代码。在符号面板和Model Explorer,函数的参数和返回值的签名显示为数据项属于你的函数。参数的范围
输入
。返回值的范围输出
。指定数据属性为每个参数和返回值,所述设置数据属性。当一个参数和一个返回值具有相同的名称,您可以编辑属性的参数。返回值的属性是只读的。
程序的功能,通过双击打开真值表编辑器框的函数。
在真值表编辑器中,添加条件下,决策和行动。有关更多信息,请参见计划一个真值表。
创建需要的任何其他数据项的功能。有关更多信息,请参见通过模型浏览器中添加数据。
你的函数可以访问自己的数据或数据属于父状态或图表。数据项的函数可以有一个的范围:
常数
常量数据保留其初始值通过函数调用。参数
——参数数据保留其初始值通过函数调用。当地的
——从一个函数调用本地数据持续到下一个函数调用。有效的只有事实表,使用C作为行动的语言。临时
——临时数据初始化的函数调用。有效的只有事实表,使用C作为行动的语言。
在事实表函数,使用C作为动作语言,定义本地数据,当你想让你的数据值持续在整个模拟函数调用。定义临时数据当你想要初始化数据值的每一个函数调用。例如,您可以定义一个计数器
当地的
如果你想跟踪范围的次数,你调用这个函数。相反,您可以指定一个循环计数器临时
如果你不需要计数器值范围持续函数完成后。在事实表函数,使用MATLAB作为动作语言,您不需要定义本地或临时数据的函数。相反,在这些函数中,您可以使用未定义的变量来存储值只能在其他函数调用。存储值保存在函数调用,使用本地数据在表级别。
提示
你可以初始化局部和暂时从MATLAB函数空间中的数据。有关更多信息,请参见从MATLAB基础工作空间初始化数据。
调用真值表函数的状态和转换
你可以叫真值表函数操作的任何州或过渡或从其他函数。如果你出口一个真值表函数,你可以叫它从任何图表模型中。导出函数的更多信息,请参阅出口Stateflow功能以便重用。
叫一个真值表函数,使用函数签名,包括实际的参数值为每一个正式的参数在函数签名。
[return_val1, return_val2,…]= function_name (__arg1,最长,…)
如果实际的和正式的参数的数据类型不同,函数将实际参数形式的类型参数。
指定属性的真值表的功能
下面列出的属性指定一个真值表函数与其他组件的交互Stateflow图表。您可以修改这些属性属性检查器、Model Explorer或真值表的属性对话框。
使用属性检查器:
在建模选项卡,在设计数据中,选择属性检查器。
在Stateflow编辑器中,选择事实表函数。
在属性检查器、编辑事实表函数属性。
使用模型资源管理器:
在建模选项卡,在设计数据中,选择模型浏览器。
在模型层次结构窗格中,选择事实表函数。
在对话框窗格中,编辑事实表函数属性。
用真值表属性对话框:
在Stateflow编辑器中,右键单击真值表函数。
选择属性。
在properties对话框中,编辑事实表函数属性。
您还可以修改这些属性以编程方式使用Stateflow.TruthTable
对象。关于Stateflow编程接口的更多信息,请参阅Stateflow API的概述。
的名字
函数名。单击函数名称链接到把你的前景在本土图表。
内联函数的选择
控制你的内联函数生成的代码:
汽车
——决定内联函数基于一个内部计算。内联
——内联函数如果你不出口到其他图表和它不是一个递归的一部分。(如果你存在递归函数调用本身直接或间接通过另一个函数调用)。函数
——不内联函数。
这个属性是不可用的属性检查器。
标签
函数签名标签。函数的函数签名标签指定一个名字和正式名称的参数和返回值。这个属性是不可用的属性检查器。
不指定
控制水平的诊断不指定你的真值表的功能。有关更多信息,请参见正确的Overspecified和真值表。
Overspecification
控制水平的诊断overspecification表函数在你的真理。有关更多信息,请参见正确的Overspecified和真值表。
动作语言
控制的动作语言Stateflow真值表函数。MATLAB和C之间做出选择该属性只能在图表,使用C作为行动的语言。有关更多信息,请参见MATLAB和C之间的差异作为动作语言的语法。
描述
真值表的描述函数。
文档链接
链接到事实表函数的在线文档。您可以输入一个web URL地址或MATLAB命令显示文档作为一个HTML文件或文本在MATLAB命令窗口。当你点击文档链接超链接,Stateflow评估和显示文档的链接。
为真值表块指定属性
真值表块属性指定你的真值表接口与仿真软件模型。万博1manbetx您可以修改这些属性属性检查器、Model Explorer或真值表的属性对话框。
使用属性检查器:
在建模选项卡,在设计数据中,选择属性检查器。
在Stateflow编辑器中,单击真值表。
在属性检查器、编辑的真值表的属性。
使用模型资源管理器:
在建模选项卡,在设计数据中,选择模型浏览器。
在模型层次结构窗格中,选择真值表。
在对话框窗格中,编辑真值表的属性。
用真值表属性对话框:
打开Stateflow编辑器。
在建模选项卡上,单击表属性。
在properties对话框中,编辑真值表的属性。
您还可以修改这些属性以编程方式使用Stateflow.TruthTableChart
对象。关于Stateflow编程接口的更多信息,请参阅Stateflow API的概述。
提示
真值表块属性是真理的属性表函数的组合和图表,使用MATLAB作为行动的语言。每个属性的描述,请参阅指定属性的真值表的功能和指定属性Stateflow图表。
另请参阅
块
对象
工具
- 模型浏览器(万博1manbetx模型)