通过定义真值表函数重用组合逻辑

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

故障检测和管理

模式切换

例如,此真值表函数的名称为ttable。它接受三个参数(x、y和z),并返回一个输出值(r)。

该功能由条件、决策和动作组成。

在"Condition "列中输入的每个条件都必须计算为true(非零值)或false(零值)。每个条件的结果指定为T(真)、F(假)或-(真或假)。每个决策列将每个条件的结果与逻辑AND组合成复合条件,称为决策。

从决策1开始,一次评估一个决策的真值表。默认决策涵盖了所有可能的剩余决策。如果其中一个决策为真,则执行其操作,然后完成真值表执行。

例如,如果条件x1和y1为假,条件z==1为真,则决策3为真,变量r设置为3。其余的决定没有经过测试,真值表的评估已经完成。如果前三个决策为假,则默认决策自动为真,并执行其操作(r=4)。此表列出了与此真值表示例的评估相对应的伪代码。

定义真值表函数

1、在对象选项板中,单击真值表函数图标。将指针移动到图表中新真值表函数的位置。

2 输入函数的签名标签,如声明函数参数和返回值中所述。

3 对真值表函数进行编程。

4 在模型资源管理器中,展开图表对象并选择真值表函数。函数签名的参数和返回值显示为属于函数的数据项。参数的作用域为Input。返回值的作用域为Output。

5 在每个参数和返回值的"data properties"对话框中,指定数据属性。

6 创建你的函数所需的任何其他数据项。

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

Local------本地数据从一个函数调用持续到下一个函数调用。仅适用于C图表。

Constant ------常量数据在所有函数调用中都保持其初始值。

Parameter ------参数数据在所有函数调用中都保持其初始值。

Temporary ------临时数据在每次函数调用开始时初始化。仅适用于C图表。

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

你可以从MATLAB工作区初始化函数数据(参数和返回值除外)。

声明函数参数和返回值

函数签名标签指定了函数的名称及其参数和返回值的正式名称。签名标签具有以下语法:

matlab 复制代码
[return_val1, return_val2,...] = function_name(arg1, arg2,...)

您可以指定多个返回值和多个输入参数。每个返回值和输入参数都可以是标量、向量或值矩阵。对于只有一个返回值的函数,省略签名标签中的括号。

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

matlab 复制代码
[y1, y2, y3] = f(y1, u, y2)

如果将此函数导出为C代码,y1和y2将通过引用(作为指针)传递,u将通过值传递。通过引用传递输入可以减少生成的代码复制中间数据的次数,从而得到更优化的代码。

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

您可以从任何状态或转换的操作中调用真值表函数。您还可以从其他函数调用真值表函数。如果导出真值表函数,则可以从模型中的任何图表调用它。

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

如果函数签名的形式参数是标量,请验证函数调用的输入和输出是否遵循标量展开的规则。

指定真值表函数的属性

您可以通过真值表函数的属性对话框为其设置常规属性。要打开函数属性对话框,请右键单击真值表函数框,然后从上下文菜单中选择Properties 。

Name

函数名称。单击函数名称链接,将你的函数带到其本图表前面。

Function Inline Option

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

Auto --确定是否根据内部计算内联函数。

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

Function ------不内联你的函数。

Label

功能的签名标签。

Underspecification

控制真值表函数中未指定的诊断级别。

Overspecification

控制真值表功能中超速诊断的级别。有关详细信息,请参阅更正过指定和未指定的真值表。

Action Language

控制Stateflow真值表函数的操作语言。在MATLAB或C之间进行选择。

Description

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

Document Link

链接到该功能的在线文档。您可以输入web URL地址或MATLAB命令,以适当的在线格式显示文档,例如HTML文件或MATLAB命令窗口中的文本。单击"Document link"超链接时,Stateflow将显示文档。

相关推荐
GIS开发特训营3 天前
常见二三维GIS数据分类及处理流程图
学习·流程图·gis·gis开发·webgis
JZC_xiaozhong10 天前
OA 审批流与业务流程引擎区别:企业流程自动化进阶
运维·自动化·流程图·bpm·业务流程管理·流程设计可视化·流程监控
杨筱毅13 天前
【Android】Handler/Looper机制相关的类图和流程图
android·java·流程图
时光追逐者13 天前
一个使用 WPF 开发的 Diagram 画板工具(包含流程图FlowChart,思维导图MindEditor)
c#·.net·wpf·流程图
helloworddm14 天前
Orleans 流系统握手机制流程图
流程图
做科研的周师兄19 天前
【机器学习入门】8.2 主成分分析:一文吃透主成分分析(PCA)—— 从原理到核心逻辑
人工智能·算法·决策树·机器学习·流程图
做科研的周师兄23 天前
【机器学习入门】7.1 决策树 —— 像 “判断流程图” 一样做分类
决策树·机器学习·流程图
东风西巷24 天前
draw.io(免费流程图制作工具) 中文绿色版
学习·电脑·流程图·软件需求·draw.io
aesthetician1 个月前
ReactFlow:构建交互式节点流程图的完全指南
前端·流程图·react
fish-man1 个月前
测试流程图展示问题
linux·服务器·流程图