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

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

故障检测和管理

模式切换

例如,此真值表函数的名称为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将显示文档。

相关推荐
秋92 天前
AI快速生成可编辑的流程图的方法
流程图
宁静致远20212 天前
Mermaid VSCode插件制作流程图保存方法
ide·vscode·流程图
min1811234564 天前
小型网站开发简易流程步骤 在线画图工具快速生成开发流程图方法
论文阅读·信息可视化·毕业设计·流程图·论文笔记
DYuW5gBmH5 天前
Kafka 成功消费消息的完整流程图
分布式·kafka·流程图
数说星榆1817 天前
无人员伤亡车辆事故处理流程图 快速结案流程
架构·电脑·流程图·职场发展·课程设计
dajun1811234567 天前
信息系统运维管理全流程详解 在线画图工具绘制运维流程图表技巧
运维·数据库·信息可视化·流程图·旅游·论文笔记
数说星榆1817 天前
罕见病例报告流程图学术论文用
论文阅读·人工智能·流程图
fish-man8 天前
测试流程图显示
流程图
橙色日落8 天前
Vue2 + LogicFlow 实现可视化流程图编辑功能+常用属性大全
前端·vue·流程图·logicflow
数说星榆1819 天前
油气勘探数据可视化流程图制作
论文阅读·信息可视化·毕业设计·流程图·论文笔记·毕设