Main Content

MATLAB 스크립트를 사용하여 차트 만들기

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

MATLAB 함수 실행하기

이 페이지의 아래쪽에 정의된 함수 makeMyModel은 사용자가 만드는 애플리케이션의 템플릿으로 재사용할 수 있는 "기본" Stateflow 차트를 생성합니다.

ch = makeMyModel;
view(ch)

Stateflow chart with a hierarchy of states. The outer state is called A. It contains two inner states called A1 and A2.

기본 차트 함수 만들기

이 함수는 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

참고 항목

함수

객체

관련 항목