Main Content

列挙型信号を使用したアルゴリズムの実行の制御

この例は、列挙データ型の信号を使用して、ブロック アルゴリズムの実行を制御する方法を示します。モデル内での列挙データ型の使用に関する基本的な情報については、Simulink モデルでの列挙型データの使用を参照してください。

列挙型の定義

列挙型定義 ex_SwitchCase_MyColors を、現在のフォルダーのスクリプト ファイルにコピーします。

classdef ex_SwitchCase_MyColors < Simulink.IntEnumType
  enumeration
    Red(0)
    Yellow(1)
    Blue(2)
    Mauve(3)
  end
end

代わりに、関数 Simulink.defineIntEnumType を使用して型を定義することもできます。

Simulink.defineIntEnumType('ex_SwitchCase_MyColors',...
{'Red','Yellow','Blue','Mauve'},[0;1;2;3])

モデル例の確認

モデル例 ex_enum_switch_case を開きます。

open_system('ex_enum_switch_case')

Enumerated Constant ブロックのダイアログ ボックスを開きます。定数の出力値は ex_SwitchCase_MyColors.Blue です。

Switch Case ブロックのダイアログ ボックスを開きます。[Case 条件] ボックスは、可能性のある 4 つの列挙型メンバーのうち 3 つを含む cell 配列として指定されます。ブロックは、指定された 3 つの列挙型メンバーおよび default ケースに対応する 4 つの出力を持ちます。

Switch Case Action Subsystem のブロックを開きます。各サブシステムには、異なる定数値を使用する Constant ブロックが含まれます。

シミュレーション中に実行を制御する

モデルのシミュレーションを実行します。Display ブロックには、値 5 が表示されます。これは、ケース ex_SwitchCase_MyColors.Blue に対応します。

Enumerated Constant ブロックのダイアログ ボックスで、[値]ex_SwitchCase_MyColors.Red に指定し、[適用] をクリックします。Display ブロックに 19 と表示されます。

[値]ex_SwitchCase_MyColors.Mauve に指定し、[適用] をクリックします。Display ブロックに 3 と表示されます。これは default ケースに対応します。