천이를 연결하여 경로와 플로우 차트 만들기
연결점을 사용하면 여러 천이를 단일 경로, 분기 경로 또는 플로우 차트로 연결할 수 있습니다.
Stateflow®에서 경로는 소스를 대상에 연결하는 하나 이상의 천이입니다. 각 천이를 연결점에 연결하여 천이가 여러 개 있는 경로를 만들 수 있습니다. 연결점은 의사 결정 지점을 나타내는 그래픽 객체이며, 캔버스에서 원으로 표시됩니다. 예를 들어, 아래 차트에서 여러 천이와 연결점은 한 상태에서 다른 상태로의 단일 경로를 형성합니다.

차트가 경로를 평가할 때는 동일한 시간 스텝에서 연결된 각 천이를 소스에서 대상 순서로 평가하고, 발견한 모든 조건 동작을 실행합니다. 차트는 false 조건을 발견하면 경로 평가를 중단합니다. 차트가 경로를 따라가면서 false 조건을 발견하지 못하면 소스에서 대상으로 이동합니다.
예를 들어, 위 차트에서 천이가 여러 개 있는 경로가 소스 상태를 대상 상태에 연결합니다. 경로상의 모든 조건이 true이면 차트는 x를 차례대로 0, 1, 2로 설정합니다. 그런 다음 동일한 스텝에서 차트는 소스 상태에서 나와 대상 상태로 진입합니다.
그러나 a와 c는 0보다 크지만 b는 그렇지 않은 경우, 차트는 x를 0으로 설정하고 경로 평가를 중지합니다.
상태나 연결점으로 가는 천이 또는 상태나 연결점에서 나오는 천이를 여러 개 만들 수 있습니다. 하나의 상태나 연결점에서 나가는 천이가 여러 개 있는 경우, 차트는 평가 순서를 표시합니다. 차트가 경로 중 하나를 따라 이동하는 경우, 나머지 경로는 평가하지 않습니다. 순서를 변경하려면 천이를 마우스 오른쪽 버튼으로 클릭하고 실행 순서를 클릭한 다음 새 순서를 선택합니다.
예를 들어, 아래 차트는 상태 A에서 상태 C로의 경로를 평가하기 전에 상태 A에서 상태 B로의 경로를 평가합니다.

Stateflow에서 플로우 차트는 자식이 연결점과 천이로만 구성된 차트나 상태를 의미합니다. 플로우 차트의 모든 경로는 하나의 공유 연결점에서 종료되어야 합니다. 차트 계층 구조의 모든 수준에서 플로우 차트를 만들 수 있습니다.

이 예제에서는 이차전지(충전식 배터리) 시스템의 모델에 플로우 차트를 추가합니다. 플로우 차트는 배터리의 한도를 초과하지 않으면서 배터리 시스템의 출력을 연결된 장치의 요구량에 맞춥니다.
모델 열기
모델을 빌드하려면 튜토리얼의 이전 단계에 있는 지침을 따릅니다. 또는 위의 모델 열기 버튼을 사용하여 sfGetStartedFlowchart 모델을 엽니다.

Chart 블록을 더블 클릭하여 Battery 차트로 진입합니다.

상태 Charge와 Discharge는 배터리 시스템의 동작 모드를 나타냅니다. 각 상태에는 배터리가 충전되거나 방전될 때의 충전 속도와 방전 속도를 나타내는 자식 상태가 포함되어 있습니다. 입력 isCharging은 활성 상태를 결정합니다. 데이터 sentPower와 charge는 배터리의 출력 와트수와 충전 수준을 나타냅니다.
플로우 차트 만들기
현재, 배터리가 방전되면서 동시에 전원을 공급받는 경우 배터리는 항상 동일한 와트수를 출력합니다. Powered 상태에서, 최댓값을 초과하지 않으면서 배터리 출력을 연결된 장치의 요구량에 맞추는 플로우 차트를 만듭니다.
장치가 요구하는 전력이 배터리가 제공할 수 있는 전력보다 높은 경우를 나타내는 경로를 추가합니다.
Discharge상태에서entry동작을 제거합니다.Powered상태에서during동작을 제거합니다.Powered상태 내에 첫 번째 연결점을 추가합니다. 팔레트에서 연결점 아이콘을 클릭합니다. 연결점을Powered상태에 배치합니다.첫 번째 연결점 오른쪽에 두 번째 연결점을 추가합니다.
두 번째 연결점 아래에 세 번째 연결점을 추가합니다.
첫 번째 연결점에서 두 번째 연결점으로의 천이를 그립니다. 조건
[deviceDemand>maxPower]를 추가합니다.두 번째 연결점에서 세 번째 연결점으로의 천이를 그립니다. 동작
{sentPower=maxPower;}를 추가합니다.

배터리 한도 내 전력 요구량을 나타내는 경로를 추가합니다.
첫 번째 연결점 아래에 네 번째 연결점을 추가합니다.
첫 번째 연결점에서 네 번째 연결점으로의 천이를 그립니다. 동작
{sentPower=deviceDemand;}를 추가합니다.세 번째 연결점에서 네 번째 연결점으로의 천이를 만듭니다.
첫 번째 연결점에 있는 숫자는 평가 순서를 나타냅니다. [deviceDemand>maxPower]로 레이블이 지정된 천이의 순서 레이블은 1이며, 이는 첫 번째로 평가됨을 나타냅니다. {sentPower=deviceDemand;}로 레이블이 지정된 천이의 순서 레이블은 2이며, 이는 두 번째로 평가됨을 나타냅니다.

종단 연결점은 나가는 천이가 없는 연결점입니다. 두 경로를 공유 종단 연결점에 연결합니다. 종단 연결점으로 가는 천이에서, 출력 와트수에 비례하여 배터리 충전량을 줄입니다.
네 번째 연결점 아래에 다섯 번째 연결점을 추가합니다.
네 번째 연결점에서 다섯 번째 연결점으로의 천이를 만듭니다. 동작
{charge=charge-sentPower;}를 추가합니다.

내부 천이를 사용하여 활성 스텝 동안 평가하기
내부 천이는 during 동작을 그래픽적으로 나타낸 것입니다. 상태에 내부 천이가 포함되어 있으면 내부 천이는 상태가 활성화되어 있는 모든 스텝에서 평가되지만, 상태가 활성화되거나 비활성화되는 스텝에서는 평가되지 않습니다. 상태에 내부 천이와 자식 상태 간 천이가 모두 포함되어 있으면 내부 천이가 먼저 평가됩니다. 상태의 가장자리에서 해당 상태 내의 객체로 천이를 그리면 내부 천이를 만들 수 있습니다.
Powered 상태의 가장자리에서 첫 번째 연결점으로 가는 내부 천이를 그립니다.

차트 데이터 정의하기
플로우 차트에서 만든 데이터를 정의합니다.
기호 창에서
maxPower행의 유형 아래에서 아이콘을 클릭하고Local Data를 선택합니다. 값을3.5로 설정합니다.deviceDemand행의 유형 아래에서 아이콘을 클릭하고Input Data를 선택합니다.charge행에서 값을100으로 설정합니다.

deviceDemand 입력 포트에 연결되는 블록을 추가합니다.
최상위 모델을 엽니다.
Sine Wave 블록을 추가합니다. 출력 포트를
Battery차트의 deviceDemand 포트에 연결합니다.사인파가
0에서 시작하여 최댓값5에 도달하도록 지정합니다. 블록을 더블 클릭하여 블록 대화 상자를 연 다음 진폭과 편향 파라미터를2.5로 설정합니다. 위상 파라미터를-pi/4로 설정합니다.Sine Wave 블록에서
Battery차트로 연결되는 신호 선을 마우스 오른쪽 버튼으로 클릭하고 선택한 신호 기록을 클릭합니다.Battery차트에서 Scope 블록으로 연결되는 신호 선에 대해 이 단계를 반복합니다.

모델 시뮬레이션하기
모델을 시뮬레이션하고 결과를 관찰합니다.
모델을 시뮬레이션하려면 시뮬레이션 탭에서 실행을 클릭합니다.
시뮬레이션 데이터 인스펙터를 열려면 시뮬레이션 탭에서 데이터 인스펙터를 클릭합니다.
검사 탭에서
Battery:1과Sine Wave:1을 선택합니다.

배터리의 출력 와트수는 전력 소모량의 상승 및 하강에 맞춰 따라가며, 최대 3.5입니다. 시뮬레이션 종료 직전 배터리의 전력이 소진되어 출력 와트수가 0으로 떨어집니다.
배터리 시스템은 예상대로 전력을 출력합니다. 그러나 배터리의 전력이 소진되면 시스템은 더 이상 동작할 수 없습니다.
튜토리얼의 다음 단계에서는 주 배터리가 완전히 방전되는 경우 필수 기능을 유지하는 비상 일차전지(비충전식 배터리)를 추가합니다. 배터리의 동시 동작을 모델링하기 위해 병렬 상태와 이벤트를 사용합니다.