차트 기록, 검증, 디버그하기
Stateflow®에서 데이터와 상태를 기록하여 시뮬레이션 중에 데이터와 상태가 언제 어떻게 변경되는지 이해할 수 있습니다. 상태 또는 천이에 중단점을 추가하여 실행을 일시 중지할 수 있습니다. 이러한 기법을 결합하여 차트 논리를 검증하고 디버그할 수 있습니다.
이 예제에서는 차트의 상태 활동과 데이터 값을 기록하여 이차전지(충전식 배터리) 모델의 설계 문제를 식별합니다. 그런 다음, 중단점을 사용하여 설계 문제가 발생하는 상태와 시간 스텝을 식별합니다.
모델 열기
모델을 빌드하려면 튜토리얼의 이전 단계에 있는 지침을 따릅니다. 또는 MATLAB® 명령 프롬프트에서 sfGetStartedBattery 모델을 엽니다.
MATLAB 명령 프롬프트에서 다음을 입력합니다.
openExample("sfGetStartedBattery")
Manual Switch 블록을 전환하여 배터리를 충전하거나 방전시킬 수 있습니다.
Chart 블록을 더블 클릭하여 Stateflow 편집기로 들어갑니다.

상태
Charge와Discharge는 배터리 시스템의 동작 모드를 나타냅니다. 입력isCharging은 활성 상태를 결정합니다. 데이터sentPower와charge는 배터리의 출력 와트수와 충전 수준을 나타냅니다.
상태 및 데이터 기록하기
배터리 시스템은 다음과 같은 요구 사항을 갖습니다.
isCharging이 true이면 배터리를 충전합니다.isCharging이 false이면 배터리를 방전시킵니다.배터리 충전율은 100%에서 0% 사이로 유지되어야 합니다.
차트의 활성 상태와 charge 입력값을 시뮬레이션 데이터 인스펙터에 기록하여 요구 사항을 확인합니다.
차트의 활성 상태를 기록하려면 시뮬레이션 탭의 준비 섹션에서 활성 상태 기록을 클릭합니다. 캔버스의 왼쪽 아래 코너에 기록 배지
가 나타납니다.기호 창에서
charge를 마우스 오른쪽 버튼으로 클릭하고 검사를 클릭합니다. 속성 인스펙터가 열립니다.속성 인스펙터에서 기록 섹션을 확장하고 신호 데이터 기록을 선택합니다.
Simulink® 편집기로 돌아갑니다.
Manual Switch 블록에서 차트로 연결되는 신호 선을 마우스 오른쪽 버튼으로 클릭하고 선택한 신호 기록을 클릭합니다.
모델을 시뮬레이션하려면 시뮬레이션 탭에서 실행을 클릭합니다. 중지를 누를 때까지 모델이 시뮬레이션됩니다.
Discharge상태로 천이하려면 Manual Switch 블록을 더블 클릭합니다. 몇 초간 기다린 후 Manual Switch 블록을 다시 전환합니다. 여러 번 반복합니다. 마지막 전환에서 Manual Switch 블록을0으로 되돌립니다.시뮬레이션 탭에서 중지를 클릭하여 시뮬레이션을 종료합니다.
시뮬레이션 탭의 결과 검토 섹션에서 데이터 인스펙터를 클릭합니다.
시뮬레이션 데이터 인스펙터에서 시각화 및 레이아웃
을 클릭합니다. 기본 레이아웃 섹션에서 2x1레이아웃
을 클릭합니다.차트의 활성 상태를 표시하려면 상단 그래프를 클릭합니다. 그런 다음, 검사 탭에서 Stateflow 섹션을 확장하고
Battery:ActiveChild를 선택합니다.Manual Switch 블록의 출력을 표시하려면 하단 그래프를 클릭합니다. 그런 다음, 검사 탭에서 신호 섹션을 확장하고
Manual Switch:1을 선택합니다.
Manual Switch 블록을 전환하면 차트가 예상대로
Charge와Discharge사이를 천이합니다.charge의 값을 표시하려면 하단 그래프를 클릭합니다. 그런 다음, 검사 탭에서charge를 선택하고Manual Switch:1을 선택 해제합니다.
배터리가 100% 초과 및 0% 미만으로 충전되어 요구 사항과 상충됩니다.
중단점 설정하기
상태 및 천이에 중단점을 설정하여 설계 문제가 발생하는 시간 스텝을 식별할 수 있습니다.
차트에서
Discharge상태를 마우스 오른쪽 버튼으로 클릭한 다음 중단점 설정을 클릭합니다. 상태에 빨간색의 원형 중단점 배지가 나타납니다. 기본적으로, 상태에 설정된 중단점은 차트가 상태로 진입하거나 유지될 때 트리거됩니다.차트가 상태로 진입할 때 중단점이 트리거되지 않도록 하려면 중단점 배지를 클릭합니다. Discharge 중단점 대화 상자에서 상태 진입 시 트리거를 선택 해제합니다.
Charge에서Discharge로의 천이를 마우스 오른쪽 버튼으로 클릭한 다음 중단점 설정을 클릭합니다. 중단점은 차트가 천이를 따라 이동할 때 트리거됩니다.디버그 탭에서 중단점 목록을 클릭합니다.
중단점 목록 창에서 중단점을 활성화하거나 비활성화하고, 중단점이 트리거되는 조건을 변경할 수 있습니다.
배터리 충전량이 음수일 때만
Discharge중단점이 트리거되도록 지정합니다.Discharge상태의 테이블 행에서 조건 열을 더블 클릭하고charge<0을 입력합니다.
모델을 시뮬레이션합니다.
Charge와Discharge사이의 천이에서 시뮬레이션이 일시 중지됩니다.
시뮬레이션을 재개하려면 시뮬레이션 탭에서 계속을 클릭합니다.
charge가 음수가 되는 스텝에서 시뮬레이션이 일시 중지됩니다.
계속을 다시 클릭합니다.
charge가 여전히 음수이므로 다음 스텝에서Discharge중단점이 트리거됩니다.시뮬레이션을 중지합니다.
중단점을 제거하려면 각 중단점 배지를 마우스 오른쪽 버튼으로 클릭한 다음 중단점 지우기를 선택합니다.
튜토리얼의 다음 단계에서는 배터리가 특정 충전 수준에 도달할 경우 충전 또는 방전 속도를 늦추거나 중지하는 중첩된 동작 모드를 추가하여 설계 문제를 해결합니다.