Simulink建模与仿真学习笔记之真值表(Truth Table)
?
1,用法
既可以在simulink中使用,也可以在stateflow中使用。
1.1 Simulink中使用真值表
Simulink中,選擇庫(kù)瀏覽器=》Stateflow => Truth Table
?
默認(rèn)只有一個(gè)輸入端口u和一個(gè)輸出端口y。如果要添加端口,先打開Model Explorer,再在其中添加數(shù)據(jù)。
添加后:
?
1.2?Stateflow的chart圖中使用真值表
點(diǎn)擊左邊的工具欄:
?
1.3?編輯真值表
雙擊打開真值表,可在其中編輯。
真值表主要分為3個(gè)部分:條件表(Condition Table)、動(dòng)作表(Action Table)、決策到動(dòng)作表的映射。
?
2,條件表
1,描述(Description)部分是可選的。生成代碼時(shí)會(huì)作為注釋。
2,條件(Condition)中也可以添加標(biāo)簽。比如:
?
3,動(dòng)作表
(1),可以使用標(biāo)簽。如果沒(méi)有標(biāo)簽,則用行號(hào)來(lái)引用。
(2),特殊的動(dòng)作標(biāo)簽:INIT和FINAL。
INIT的動(dòng)作會(huì)在初始化時(shí)自動(dòng)調(diào)用;FINAL的動(dòng)作會(huì)在結(jié)束前自動(dòng)調(diào)用。
?
4,真值表決策
(1)只能輸出T、F和-。分別表示TRUE、FALSE、NO_CARE(TRUE或者FALSE)。
(2)可以使用空格鍵來(lái)切換T/F/-。
(3)決策后的動(dòng)作:填寫動(dòng)作標(biāo)簽,或者行號(hào)。(簡(jiǎn)單的情況可以直接使用行號(hào),但不便于擴(kuò)展,因?yàn)椴迦胍恍泻?#xff0c;后面的動(dòng)作所對(duì)應(yīng)的行號(hào)會(huì)變化,此時(shí)應(yīng)該使用動(dòng)作標(biāo)簽。)
(4)決策動(dòng)作,可以指定多個(gè)動(dòng)作,以逗號(hào)、分號(hào)或者空格分開。
?
5,真值表執(zhí)行流程
真值表執(zhí)行期間,會(huì)按從左至右的順序進(jìn)行決策測(cè)試。決策內(nèi)各個(gè)條件結(jié)果的測(cè)試順序未定義。
當(dāng)實(shí)際結(jié)果與某一決策匹配時(shí),即會(huì)執(zhí)行在?Action Table?Actions?行中為該決策列指定的動(dòng)作。然后,結(jié)束并退出真值表的執(zhí)行。
?
?
6,查看生成的代碼。(View Auto-generated Content)
(1)?語(yǔ)言類型
真值表的語(yǔ)言類型也分為C語(yǔ)言和MATLAB語(yǔ)言。
?
(2)查看生成的內(nèi)容
點(diǎn)擊工具欄中的View Generated Context按鈕,可以查看生成的內(nèi)容。
如果動(dòng)作語(yǔ)言類型是MATLAB,則生成M腳本:
function c_codeINIT();C1 = false; C2 = false; C3 = false;% Condition C1C1 = logical(x==0);% Condition C2C2 = logical(y==0);% Condition C3C3 = logical(z==0);if (C1)A1(); elseif (~C1 && C2)A2(); elseif (~C1 && ~C2 && C3)A3(); else % DefaultDA(); endFINAL();如果動(dòng)作語(yǔ)言類型是C,則生成圖形函數(shù)。
?
7,語(yǔ)法檢查:
Diagnose the Truth Table
Run Diagnostics?checks the truth table for syntax errors. See?Debug a Truth Table.
?
附:隱含動(dòng)作:INIT和FINAL
添加初始動(dòng)作和最終動(dòng)作
除了為決策指定動(dòng)作外,您還可以為真值表函數(shù)添加初始動(dòng)作和最終動(dòng)作。初始動(dòng)作指定任何決策測(cè)試發(fā)生之前執(zhí)行的動(dòng)作。最終動(dòng)作指定在退出真值表之前作為最后一個(gè)動(dòng)作執(zhí)行的動(dòng)作。要為真值表指定初始動(dòng)作和最終動(dòng)作,在?Action?Table?中使用動(dòng)作標(biāo)簽?INIT?和?FINAL。
INIT和FINAL動(dòng)作也可用于Condition?Table的?Actions?行中的動(dòng)作設(shè)定符。
編寫真值表
https://ww2.mathworks.cn/help/stateflow/ug/programming-a-truth-table.html#mw_576a0b81-c4ce-4ed1-867a-170c9782336c
?
使用?Stateflow?真值表構(gòu)建模型
https://ww2.mathworks.cn/help/stateflow/ug/build-model-with-stateflow-truth-table.html
?
總結(jié)
以上是生活随笔為你收集整理的Simulink建模与仿真学习笔记之真值表(Truth Table)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 三星s6 android 5.1.1,三
- 下一篇: wsappx关不掉_win10的appm