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

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

故障检测和管理

模式切换

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

相关推荐
zzywxc7872 天前
自动化测试框架是软件测试的核心基础设施,通过预设规则和脚本自动执行测试用例,显著提高测试效率和覆盖率。
运维·人工智能·自动化·prompt·测试用例·流程图
TextIn智能文档云平台2 天前
产品无法正确解析复杂表格和流程图,有什么替代方案或优化方法?
流程图
coder_lorraine2 天前
Drawnix:开源一体化白板工具,让你的创意无限流动!
开源·流程图
m0_555762903 天前
项目1——单片机程序审查,控制系统流程图和时序图
单片机·mongodb·流程图
zzywxc7875 天前
AI在金融、医疗、教育、制造业等领域的落地案例
人工智能·机器学习·金融·prompt·流程图
趣学习6 天前
A043基于博途西门子1200PLC自动售货机系统仿真A043自动售货机+S71200+HMI+主电路图+外部接线图+流程图+IO分配表
毕业设计·流程图·课程设计·plc·西门子
kebeiovo8 天前
项目必备流程图,类图,E-R图实例速通
开发语言·r语言·流程图
晋人在秦 老K8 天前
入梦工具箱怎么检测硬件?3步完成CPU-Z跑分测试 硬件检测总出错?图吧工具箱免费功能实测 draw.io 部署指南:私有化流程图服务搭建教程
测试工具·流程图·工具·draw.io
zzywxc7879 天前
AI在金融、医疗、教育、制造业等领域的落地案例(含代码、流程图、Prompt示例与图表)
人工智能·spring·机器学习·金融·数据挖掘·prompt·流程图
ui小新11 天前
什么是流程图:流程六要素、三大结构及绘制规范总结
流程图·设计工具·流程图设计