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

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

故障检测和管理

模式切换

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

相关推荐
檐下翻书17318 小时前
流程图配色与美化:让你的图表会“说话”
论文阅读·人工智能·信息可视化·流程图·论文笔记
不爱学习的YY酱1 天前
告别局域网束缚!Excalidraw结合cpolar随时随地画流程图
安全·流程图·cpolar
secondyoung1 天前
Mermaid流程图高效转换为图片方案
c语言·人工智能·windows·vscode·python·docker·流程图
wfsm1 天前
flowable05外置表单和绘制流程图
流程图
TomCode先生2 天前
MES 学习方法深度落地指南:流程图绘制、系统支撑分析、角色场景模拟
流程图·学习方法·mes
AscendKing4 天前
开源白板工具(SaaS),一体化白板,包含思维导图、流程图、自由画等
开源·流程图·好好学电脑·hhxdn.com
程思扬5 天前
开源 + 实时 + 无网络限制:Excalidraw 是流程图协作新选择
网络·人工智能·阿里云·ai·开源·流程图
程途拾光1585 天前
用流程图优化工作流:快速识别冗余环节,提升效率
大数据·论文阅读·人工智能·流程图·论文笔记
SHIPKING3936 天前
【python】全流程图文安装教程
流程图
Crazy Struggle8 天前
WPF 如何支撑一个灵活的流程图编辑器?
.net·wpf·流程图