MATLAB 스크립트를 사용하여 차트 만들기
이 예제에서는 MATLAB® 함수 또는 스크립트에 Stateflow® API 명령을 포함하는 방법을 보여줍니다. API 명령 스크립트를 만들면 반복적인 차트 생성 단계를 피하고 단일 명령으로 동일한 모델을 다시 생성할 수 있습니다. 자세한 내용은 Overview of the 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