一旦您创建了一个新的真值表,您就可以根据您的规范对它进行编程以执行它。要编写真值表,你需要添加条件、决策和操作。有关创建真值表的更多信息,请参见使用真值表对组合逻辑进行建模.
独立的statflow不支持真值表金宝app®在MATLAB图表®.有关更多信息,请参见使用真值表对组合逻辑进行建模.
在图表或Simulink中创建并标记真值表之后金宝app®模型,则指定其逻辑行为。这些规范适用于Simulink模型中的真值表块和状态流图中的真值表函数。金宝app在本例中,您指定真值表函数的行为。
要打开真值表,双击真值表函数,ttable
你所创造的使用真值表对组合逻辑进行建模.
默认情况下,真值表包含条件表和一个动作表,每个都有一行。的条件表包含单个决策列,D1,以及单个操作行。
如果真值表在一个使用C作为动作语言的状态流图中,你可以为你的状态流真值表指定动作语言:
打开属性检查器。在建模选项卡,在设计数据中,选择属性检查器.
下属性部分中,选择C或MATLAB作为行动语言。
使用MATLAB作为动作语言的状态流程图只支持使用MATLAB作为动作语言的真值表。金宝app
条件是在真值表中指定逻辑行为的起点。打开新的真值表,ttable
,进行编辑。你开始编程的行为ttable
通过指定条件。
输入条件条件列的条件表.对于您输入的每个条件,您可以在描述列。为真值表输入条件ttable
:
单击条件表你想要添加的。
单击添加一行按钮在侧板上放了两次。
属性的底部追加两行条件表.
单击并拖动分隔条件表和动作表向下窗格以扩大条件表窗格。
在条件表的顶部单元格描述列。
单元格中出现一个闪烁的文本光标,并突出显示。
输入文本:
X等于1
单击右边的下一个单元格,在条件列。.
在第一个单元格条件列中,输入:
XEQ1:
此文本是一个可选标签,您可以将其包含在条件中。每个标签必须以字母字符([a - z]的[a -ž]
),后跟任意数量的字母数字字符([a - z] [a - z] [0 - 9]
)或下划线(_
).
新闻输入这文本:
x = = 1
这段文字是实际情况。您输入的每个条件必须计算为零(假)或非零(真)。您可以在条件中使用可选的括号(例如,[x = = 1]
).
在真值表条件中,可以使用通过参数传递给真值表函数的数据。前面的条件测试实参是否x
等于1。还可以使用为真值表的父对象(包括图表)定义的数据。
重复以上步骤,输入另外两个条件。
每个决定栏(D1,D2等)将一组条件结果与与关系绑定到一个决策中。决策中条件结果的可能值是T
(真正的),F
(假),-
(真或假)。在进入真值表条件,为真值表输入条件ttable
.继续在决策列中输入值:
的决策列条件表你想要添加的。
单击添加一列按钮在侧板上放了三次。
单击decision列的顶部单元格D1.
按空格键,直到值为T
出现了。
按空格键将通过的可能值进行切换F
,T
,-
.您也可以直接输入这些字符。按1将值设置为T
,而按0则将值设置为F
.紧迫的x
将值设置为-
.
输入决策列的其余值:
在执行真值表时,决策测试按从左到右的顺序进行。在决策中对单个条件结果的测试顺序是未定义的。真值表按自顶向下的顺序评估每个决策的条件(第一个条件1,然后是条件2,依此类推)。因为这个实现在将来可能会发生变化,所以不要依赖于特定的评估顺序。
最后一个决定栏ttable
,D4,是这个真值表的默认决定。默认决策涵盖了在前面的决策列中没有测试的任何决策。通过在最右边的决策列的每个单元格中输入-来创建默认决策。这个条目表示条件的任何结果,T
或F
.属性中右侧的最后一列是默认的决策列条件表.
在执行真值表时,决策测试按从左到右的顺序进行。当发生决策匹配时,动作表中指定的行动执行该决策列的行。然后真值表退出。
在进入真值表决策,在真值表中输入决策。下一步是为每个决定输入您希望发生的动作动作表.稍后,您将这些操作分配到行动行条件表.
单击行动作表你想要添加的。
单击添加一行按钮在侧板上放了三次。
为真值表编写操作程序。
对于使用MATLAB作为操作语言的真值表,您可以编写MATLAB代码来编写您的操作。使用此代码,您可以添加控制流逻辑和直接调用MATLAB函数。在下面的过程中,您将在真值表中编写一个操作ttable
,利用MATLAB语法的以下特点:
持续的变量
如果……其他的……结束
控制流
为
循环
遵循以下步骤:
的顶部单元格描述列的动作表.
单元格中出现一个闪烁的文本光标,并突出显示。
输入描述:
维护一个计数器和一个长度为6的圆向量。每次调用这个动作时,输出r取向量的下一个值。
中按右箭头键选择右边的下一个单元格行动列。
输入以下文本:
A1:
操作以可选标签开头,后面跟着冒号(:
).稍后,将这些标签输入行动行条件表为每个决策列指定操作。与条件标签一样,操作标签必须以字母字符([a - z]的[a -ž]
),后跟任意数量的字母数字字符([a - z] [a - z] [0 - 9]
)或下划线(_
).
新闻输入并输入以下文本:
持久值计数器;周期= 6;coder.extrinsic(“阴谋”);if isempty(counter) %将counter初始化为0 counter = 0;否则,自增counter counter = counter + 1;end if isempty(values) % values是一个向量,从1到cycle values = 0 (1, cycle);For I = 1:循环值(I) = I;为了调试的目的,调用MATLAB %函数“plot”来显示值plot(values);end % Output r接受values中的下一个值vector r = values(mod(counter, cycle) + 1);
在真值表操作中,可以使用通过参数和返回值传递给真值表函数的数据。前面的操作设置返回值r
等于向量的下一个值值
.还可以使用为真值表的父对象(包括图表)定义的数据指定操作。真值表操作还可以广播或发送为真值表或父表(如图表本身)定义的事件。
将其余的操作输入动作表如图所示:
如果行动A1
执行仿真时,绘制出的图值
向量出现:
现在您可以将行动分配给决策了。
您必须分配至少一个操作动作表每个决定条件表.真值表使用此关联来确定当决策测试为真时执行什么操作。
当你在真值表中为决策分配行动时,以下规则适用:
属性中输入行号或标签来指定决策操作行动决策列的行单元格。
如果使用标签说明符,则标签必须与操作一起出现在动作表.
您必须为每个决策指定至少一个操作。
决定的行动不是可选的。每个决策必须至少有一个动作说明符指向动作表.如果希望为决策指定不操作,请指定不包含操作语句的行。
可以使用逗号、分号或空格分隔的多个说明符为决策指定多个操作。
例如,对于决策列D1,你可以指定A1, A2, A3
或1; 2; 3
在做决定时执行前三个动作D1是真的。
您可以以任何顺序交替地混合行号和标签操作说明符。
下面的示例同时使用行和标签操作说明符。
您可以为多个决策指定相同的操作,如下所示:
中的行号操作说明符行动行条件表自动调整到更改的行顺序动作表.
本节描述如何在真值表中为决策分配操作ttable
.在这个例子中行动中的每个决策列的行单元格包含为每个操作指定的标签动作表.遵循以下步骤:
单击decision列的底部单元格D1,第一个细胞行动行条件表.
输入操作说明符A1
决定列D1.
当D1是真的,行动A1
在动作表执行。
为剩下的决策列输入操作说明符:
现在,您已经准备好执行编写真值表的最后一步。
除了用于决策的操作,您还可以向真值表函数添加初始和最终操作。初始操作指定在任何决策测试发生之前执行的操作。Final action指定在真值表退出之前执行的最后一个操作。要为真值表指定初始和最终操作,请使用操作标签初始化
和最后
在动作表.
使用此程序添加初始和最终操作,在执行真值表之前和之后在MATLAB命令窗口中显示诊断消息ttable
:
在真值表中,右键单击动作表并选择插入行.
控件的顶部出现空白行动作表.
在建模选项卡上,选择添加一行.
控件的底部出现一个空白行动作表.
单击并拖动真值表的底部边框以显示动作表:
在第1行中添加初始动作如下:
描述 | 行动 |
---|---|
最初的行动: 显示消息 |
|
在第6行添加最后一个动作,如下所示:
描述 | 行动 |
---|---|
最后的行动: 显示消息 |
|
属性的第一行和最后一行显示前面真值表示例的初始和最终操作动作表,您可以在任何一行中输入这些操作。您还可以使用操作说明符将初始和最终操作分配给决策初始化
或最后
在行动行条件表.