부모 및 자식 동작 모드 만들기
Stateflow® 차트에서는 기존 상태의 테두리 내에 상태를 배치하여 중첩된 동작 모드를 만들 수 있습니다. 기존 상태를 부모 상태라고 하며, 부모 상태에 포함되는 상태를 자식 상태라고 합니다.
부모 상태의 내용은 작은 차트처럼 작동합니다. 차트와 마찬가지로, 부모 상태에는 디폴트 천이가 포함되어 있습니다. 부모 상태가 활성화되면 디폴트 천이에 연결된 자식 상태도 활성화됩니다. 그런 다음 차트는 자식 상태 간에 천이합니다. 부모 상태가 비활성화되면 자식 상태도 비활성화됩니다.
예를 들어, 다음 구급차 비상등 모델에서 On 상태에는 자식 상태 Red와 White가 있습니다. On이 활성화되면 구급차는 Red 상태부터 시작하여 색상등 간을 전환합니다. On이 비활성화되면 두 색상등이 모두 비활성화됩니다.

이 예제에서는 자식 상태를 사용하여 이차전지(충전식 배터리) 시스템의 가변 충전 속도를 모델링합니다.
모델 열기
sfGetStartedBattery 모델은 이차전지 시스템의 제어 논리를 나타냅니다. 모델을 빌드하려면 튜토리얼의 이전 단계에 있는 지침을 따릅니다.

Chart 블록을 더블 클릭하여 Battery 차트로 들어갑니다.

상태 Charge와 Discharge는 배터리 시스템의 동작 모드를 나타냅니다. 입력 데이터 isCharging은 활성 상태를 결정합니다. 출력 데이터 sentPower와 로컬 데이터 charge는 배터리의 출력 와트수와 충전 수준을 나타냅니다.
모델 계층 구조에 자식 상태 추가하기
현재 배터리 시스템은 완전히 충전되어도 계속 충전되고 완전히 방전되어도 계속 방전됩니다. 완전 충전, 완전 방전, 중간 충전 모드를 나타내기 위해 배터리 시스템에는 다음과 같은 추가 동작 모드가 필요합니다.
| 부모 모드 | 자식 모드 | 동작 | 종료 조건 |
|---|---|---|---|
Charge | FastCharge | 활성화되어 있는 동안 충전 수준을 4% 속도로 증가 | 충전 수준이 80%를 초과하면 SlowCharge로 이동 |
Charge | SlowCharge | 활성화되어 있는 동안 충전 수준을 1% 속도로 증가 | 충전 수준이 100%이면 Full로 이동 |
Charge | Full | 없음 | 없음 |
Discharge | Powered | 활성화되어 있는 동안 충전 수준을 3% 속도로 감소 | 충전 수준이 3% 이하이면 Empty로 이동 |
Discharge | Empty | 진입 시 출력 와트수를 0으로 설정 | 없음 |
고속 충전을 나타내는 상태를 추가합니다.
Charge상태와Discharge상태에서during동작을 제거합니다.최대 3개의 자식 상태를 포함할 수 있도록
Charge상태와Discharge상태를 확장합니다. 상태의 크기를 조정하려면 코너를 클릭하고 바깥쪽으로 끌어서 놓습니다.Charge내에 이름이FastCharge인 자식 상태를 추가합니다. 자식 상태는 부모 상태로 완전히 둘러싸여 있어야 합니다. 자식 상태와 부모 상태의 테두리는 겹칠 수 없습니다.FastCharge내에 데이터charge를4씩 증가시키는during동작을 추가합니다.

저속 충전과 일시 중지된 충전을 나타내는 두 가지 상태를 추가합니다.
이름이
SlowCharge인 자식 상태를 추가합니다.charge를1씩 증가시키는during동작을 추가합니다.charge가80을 초과하면 실행되는,FastCharge에서SlowCharge로의 천이를 추가합니다.이름이
Full인 자식 상태를 추가합니다.charge가100이 되면 실행되는,SlowCharge에서Full로의 천이를 추가합니다.

일반 방전과 일시 중지된 방전을 나타내는 두 가지 상태를 추가합니다.
Discharge내에 이름이Powered인 자식 상태를 추가합니다.charge를3씩 감소시키는during동작을 추가합니다.이름이
Empty인 다른 자식 상태를 추가합니다.sentPower를0으로 설정하는entry동작을 추가합니다.charge가3이하이면 실행되는,Powered에서Empty로의 천이를 추가합니다.

모델 시뮬레이션하기
차트가 자식 상태 간에 어떻게 천이하는지 관찰합니다.
Simulink 편집기에서 Manual Switch 블록이
1로 설정되어 있는지 확인합니다.시뮬레이션 탭에서 실행을 클릭하여 모델을 시뮬레이션합니다. 첫 번째 스텝에서
Charge와FastCharge가 모두 활성화됩니다.charge가 증가함에 따라 차트는 자식 상태SlowCharge와Full로 천이합니다. 기호 창에서charge는100을 초과하지 않습니다.최상위 Simulink 모델로 돌아갑니다. Manual Switch 블록을 더블 클릭하여 블록의 값을 전환합니다.
차트로 진입합니다. 차트가 상태
Discharge와 자식 상태Powered를 활성화합니다.charge가3미만으로 감소하면 차트가Powered에서Empty로 천이합니다. 기호 창에서charge는0아래로 내려가지 않습니다.
이제 배터리 모델이 보다 현실적입니다. 그러나 설계에는 여전히 문제가 있습니다. 예를 들어, 연결된 장치가 3.5와트 미만의 전력을 요구하는 경우 배터리 출력이 변경되지 않습니다.
튜토리얼의 다음 단계에서는 연결된 장치의 요구량에 따라 배터리 시스템의 전력 출력을 변화시키는 플로우 차트를 만듭니다.