真值表以简洁的表格格式实现组合逻辑设计。真值表的典型应用包括:
故障检测与管理
模式切换
真值表仅在Simulink中受支持万博1manbetx万博1manbetx®.
您可以添加真值表直接阻塞到Simulink模型,或者可以在St万博1manbetxateflow中定义真值表函数®图表、状态或子图表。真值表Simulink模型中的万博1manbetx块作为Simulink块执行,而Stateflow图中的真值表函数仅在调用真值表函数时执行。函数的位置决定了可以调用函数的状态集和转换集。
如果要在图表中的任何位置调用函数,请将真值表函数置于图表级别。
如果要从一个状态或子图表及其子图表中调用函数,请将真值表函数置于该状态或子图表中。该函数重写该状态或子图表的父级和父级中同名的任何其他函数。
如果要从模型中的任何图表调用函数,请将真值表置于图表级别,并启用图表级别函数的导出。有关详细信息,请参见导出Stateflow函数以供重用.
无论您的真值表是作为Simulink模型中的一个块存在,还是作为Stateflow图表中的一个函数存在,万博1manbetx您都可以用相同的方式对它们进行编程。
这个真值表函数的名称是表
. 需要三个论点(十
,是的
,和z轴
)并返回一个输出值(右
).
该功能由条件、决策和操作的这种安排组成。
条件 |
决定1 |
决定2 |
决定3 |
决定4 |
---|---|---|---|---|
x==1 |
T型 |
F型 |
F型 |
- |
y==1 |
F型 |
T型 |
F型 |
- |
z==1 |
F型 |
F型 |
T型 |
- |
行动 |
r=1 |
r=2 |
r=3 |
r=4 |
在中输入的每个条件条件列的计算结果必须为true(非零值)或false(零值)。每个条件的结果都指定为T(真)、F(假)或-(真或假)。每个decision列将每个条件的结果与一个逻辑条件和一个复合条件相结合,称为decision。
你一次评估一个真相表一个决定,从决定1. 这个决定4涵盖所有可能的剩余决策。如果其中一个决策是真的,那么表执行相关的操作,然后真值表执行就完成了。
例如,如果条件x==1
和y==1
都是假的z==1
是真的,那么决定3是真的,变量右
设置为3。剩下的决策没有经过测试,真相表的评估也完成了。如果前三个决策是错误的,那么默认决策将自动为真并执行其操作(r=4
)被处决。此表列出与此真值表示例的计算相对应的伪代码。
伪码 |
说明 |
---|---|
如果((x==1)&!(y==1)&!(z==1)r=1; |
如果决定1是真的,然后设定 |
否则(!(x==1)&(y==1)&!(z==1)r=2; |
如果决定2是真的,然后设定 |
否则(!(x==1)&!(y==1)和(z==1)r=3; |
如果决定3是真的,然后设定 |
否则r=4;endif |
如果所有其他决策都是错误的,那么默认决策是正确的。套 |
定义真值表函数:
声明真值表函数参数和返回值。
编程真值表函数。见编制真值表.
使用“属性检查器和符号”窗格为每个参数和返回值指定数据属性。
使用“符号”窗格创建函数所需的任何其他数据项。您的函数可以访问自己的数据或属于父状态或图表的数据。
函数签名标签为函数指定一个名称,并为其参数和返回值指定形式名称。签名标签具有以下语法:
[返回值1,返回值2,...]=函数名(arg1,arg2,…)
参数和返回值可以使用相同的变量名。例如,具有此签名标签的函数使用一
和y2年
作为输入和输出:
[y1,y2,y3]=f(y1,u,y2)
一
和y2年
通过引用传递(作为指针),并且u型
按值传递。通过引用传递输入可以减少生成的代码复制中间数据的次数,从而产生更优化的代码。
您可以从任何状态或转换的操作调用真值表函数。也可以从其他函数调用真值表函数。如果导出真值表函数,则可以从模型中的任何图表调用它。有关导出函数的详细信息,请参见导出Stateflow函数以供重用.
调用真值表函数的语法与函数签名相同,实际参数替换签名中指定的形式参数。如果实际参数和形式参数的数据类型不同,则函数将实际参数强制转换为形式参数的类型。
如果函数签名的形式参数是标量,请验证函数调用的输入和输出是否遵循标量扩展规则。有关详细信息,请参见为矩阵的所有元素赋值.
可以通过真值表的“属性”对话框为真值表函数设置常规属性。若要打开“函数属性”对话框,请右键单击“真值表”函数框并选择属性从上下文菜单。
函数名。单击“函数名”链接将函数置于其本机图表的前台。
在生成的代码中控制函数的内联:
自动
-确定是否基于内部计算内联函数。
内联
-如果不将函数导出到其他图表并且它不是递归的一部分,则将函数内联。(如果函数通过另一个函数调用直接或间接调用自身,则存在递归。)
功能
-不内联您的函数。
功能的签名标签。有关详细信息,请参见声明函数参数和返回值.
控制真值表函数中未指定的诊断级别。有关详细信息,请参见修正过指定和欠指定的真值表.
控制真值表函数中过度指定的诊断级别。有关详细信息,请参见修正过指定和欠指定的真值表.
控制Stateflow真值表函数的操作语言。在MATLAB中选择®或C.有关详细信息,请参见MATLAB与C作为动作语言语法的区别.
功能描述。可以在层次结构中输入函数的简要说明。
链接到函数的联机文档。您可以输入web URL地址或MATLAB命令,该命令以适当的联机格式显示文档,例如在MATLAB命令窗口中输入HTML文件或文本。当您单击文档链接超链接,Stateflow显示文档。