공기 온도 조절기 모델링하기
이 예제에서는 물리적 플랜트에서 공기 온도를 120도로 유지하는 공기 조절기를 모델링하기 위해 병렬 분해를 사용합니다.
Air Controller 차트의 최상위 수준에는 PowerOff와 PowerOn이라는 두 가지 배타적 상태가 있습니다. 조절기를 동시에 켜고 끌 수는 없으므로 차트는 배타적(OR) 분해를 사용합니다.

조절기는 두 개의 팬을 작동합니다. 첫 번째 팬은 공기 온도가 120도를 넘으면 켜집니다. 두 번째 팬은 공기 온도가 150도를 넘으면 추가적인 냉각을 제공합니다. 차트는 최상위 상태 PowerOn의 병렬 하위 상태인 FAN1과 FAN2로 이 두 팬을 모델링합니다. 팬은 필요한 냉각량에 따라 켜지거나 꺼지는 독립적인 컴포넌트로 동작하므로 PowerOn은 조절기가 켜지면 두 하위 상태가 모두 활성화되도록 하기 위해 병렬(AND) 분해를 사용합니다.
동작 임계값을 제외하고, 팬은 두 가지 팬 동작 모드인 On과 Off를 반영하여 하위 상태와 천이가 동일하게 구성된 상태로 모델링되어 있습니다. 두 팬 모두 동시에 켜지거나 꺼질 수 없으므로 FAN1과 FAN2는 배타적(OR) 분해를 갖습니다.
PowerOn에서 SpeedValue라는 세 번째 병렬 상태는 각 시간 스텝에서 켜진 팬의 수를 계산하는 독립적인 서브시스템을 나타냅니다. 부울 표현식 in(FAN1.On)은 FAN1의 On 상태가 활성화되면 값 1을 갖습니다. 그렇지 않으면 in(FAN1.On)은 0입니다. 마찬가지로 in(FAN2.On)의 값은 FAN2가 켜진 상태인지 꺼진 상태인지를 나타냅니다. 이러한 표현식의 합은 각 시간 스텝 중에 켜진 팬의 수를 나타냅니다.
병렬 상태의 실행 순서 지정하기
상태 FAN1, FAN2, SpeedValue는 동시에 활성화되어 있지만 이 상태들은 시뮬레이션 중에 순차적으로 실행됩니다. 상태의 오른쪽 위 코너에 있는 번호는 실행 순서를 지정합니다. 이 실행 순서의 근거는 다음과 같습니다.
FAN1은FAN2보다 낮은 온도에서 켜지므로 첫 번째로 실행됩니다.FAN2가 켜졌든 꺼졌든 상관없이 켜질 수 있습니다.FAN2는FAN1보다 높은 온도에서 켜지므로 두 번째로 실행됩니다.FAN1이 이미 켜져 있는 경우에만 켜질 수 있습니다.SpeedValue는FAN1과FAN2의 가장 최신 상태를 관측할 수 있도록 마지막에 실행됩니다.
기본적으로 Stateflow는 병렬 상태를 차트에 추가하는 순서에 따라 실행 순서를 할당합니다. 병렬 상태의 실행 순서를 변경하려면 상태를 마우스 오른쪽 버튼으로 클릭하고 실행 순서 드롭다운 목록에서 값을 선택합니다.
물리적 플랜트 모델링하기
이 예제에는 Air Controller라는 Stateflow 차트와 Physical Plant라는 Simulink® 서브시스템이 포함되어 있습니다.

차트는 물리적 플랜트의 공기 온도에 따라 팬을 켜고 작동 중인 팬의 수인 airflow를 서브시스템으로 출력합니다. 이 값은 다음 규칙에 따라 냉각 활동 인자
을 결정합니다.
airflow= 0 — 작동 중인 팬이 없습니다.
이므로 공기 온도가 낮아지지 않습니다.airflow= 1 — 팬 1개가 작동 중입니다. 냉각 활동 인자
에 따라 공기 온도가 낮아집니다.airflow= 2 — 팬 2개가 작동 중입니다. 냉각 활동 인자
에 따라 공기 온도가 낮아집니다.
Physical Plant 서브시스템은 다음 방정식에 따라 플랜트 내부 공기 온도인
를 업데이트합니다.


여기서 각각은 다음과 같습니다.
은 초기 온도입니다. 디폴트 값은 70°입니다.
는 주변 온도입니다. 디폴트 값은 160°입니다.
는 플랜트의 열 전달 인자입니다. 디폴트 값은 0.01입니다.
은 airflow와 부합하는 냉각 활동 인자입니다.
새 온도는 시뮬레이션의 다음 시간 스텝에서의 냉각량을 결정합니다.