このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
MATLAB スクリプトを使用したチャートの作成
以下の例では、Stateflow® API コマンドを MATLAB® 関数またはスクリプトにインクルードする方法を説明します。API コマンドのスクリプトを作成すると、チャート作成ステップを繰り返さずにすみ、また 1 つのコマンドで同じモデルを再度作成することもできます。詳細については、Stateflow API の概要を参照してください。
MATLAB 関数の実行
関数 makeMyModel
はこのページの最後で定義されています。この関数により "ベース" Stateflow チャートが生成され、アプリケーションのテンプレートとして再使用できます。
ch = makeMyModel; view(ch)
ベース チャート関数の作成
この関数は Stateflow チャートを作成し、対応する Stateflow.Chart
オブジェクトを返します。
function ch = makeMyModel
モデルを作成し、新しい Stateflow.Chart
オブジェクトにアクセスします。
rt = sfroot; prev_machines = find(rt,"-isa","Stateflow.Machine"); sfnew; curr_machines = find(rt,"-isa","Stateflow.Machine"); m = setdiff(curr_machines,prev_machines); ch = find(m,"-isa","Stateflow.Chart");
チャートでステート A
を作成します。
sA = Stateflow.State(ch);
sA.Name = "A";
sA.Position = [50 50 310 200];
ステート A
の中にステート A1
を作成します。
sA1 = Stateflow.State(ch);
sA1.Name = "A1";
sA1.Position = [80 120 90 60];
ステート A
の中にステート A2
を作成します。
sA2 = Stateflow.State(ch);
sA2.Name = "A2";
sA2.Position = [240 120 90 60];
A1
から A2
への遷移を作成します。
tA1A2 = Stateflow.Transition(ch); tA1A2.Source = sA1; tA1A2.Destination = sA2; tA1A2.SourceOClock = 3; tA1A2.DestinationOClock = 9;
ステート A
にデフォルト遷移を追加します。
dtA = Stateflow.Transition(ch); dtA.Destination = sA; dtA.DestinationOClock = 0; dtA.SourceEndPoint = dtA.DestinationEndpoint-[0 30]; dtA.MidPoint = dtA.DestinationEndpoint-[0 15];
ステート A1
にデフォルト遷移を追加します。
dtA1 = Stateflow.Transition(ch);
dtA1.Destination = sA1;
dtA1.DestinationOClock = 0;
dtA1.SourceEndPoint = dtA1.DestinationEndpoint-[0 30];
dtA1.MidPoint = dtA1.DestinationEndpoint-[0 15];
end