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

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

故障检测和管理

模式切换

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

相关推荐
<花开花落>12 天前
AI 辅助生成 Mermaid 流程图
ai·流程图·mermaid·tool
晓华-warm13 天前
Warm-Flow发布1.7.4, 设计器和流程图优化
java·中间件·流程图·组件·flowable·工作流·activities
邪恶马铃薯15 天前
Deepseek+墨刀,1min快速生成流程图!
流程图·墨刀
lgldl15 天前
AI自动生成复杂架构图,流程图,思维导图
人工智能·ai·流程图
蓝爱人15 天前
Vue3中使用 Vue Flow 流程图方法
javascript·vue.js·流程图
打码人的日常分享18 天前
智慧园区建设资料合集(Wordppt原件)
大数据·物联网·流程图·智慧城市·制造
小马爱打代码22 天前
计算机系统设计:E-R图、类图、时序图、功能结构图、流程图、用例图、架构图
流程图
꧁༺摩༒西༻꧂24 天前
DeepSeek生成流程图
流程图
斯内科24 天前
C#使用MindFusion.Diagramming框架绘制流程图(3):加权图的最短路径算法
流程图
向明天乄1 个月前
Maotu流程图编辑器:Vue3项目中的集成实战与自定义流程开发指南
javascript·编辑器·vue·流程图