일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 오피스
- 비주얼베이직
- 아웃룩
- html
- Android
- 파이썬3
- python3
- VBA
- Excel
- pyqt5
- 안드로이드
- win32com
- 파이썬GUI
- 깃
- 파이썬
- office
- pythongui
- 문자열
- 윈도우11
- pandas
- 엑셀
- 파워포인트
- Outlook
- windows
- matlab
- git
- python
- 윈도우10
- Windows11
- Windows10
Appia의 IT세상
[Stateflow] Stateflow Logging방법 ,Super step 본문
오늘은 크게 2가지에 대해서 나누어서 살펴보고자 합니다. 하나는 Stateflow Logging방법이고 다른 하나는 Super step에 대해서 살펴보고자 합니다.
Stateflow Logging방법
예전에 코딩을 주로 했었던 시절에는 정상적으로 저의 코딩이 동작하는지 알아보기 위해서 디버깅 로그를 작성하여 코드 중간중간에 삽입하였습니다. 대부분은 printf를 이용한 콘솔 출력이 대부분이었습니다. Stateflow도 비슷한 방법으로 로깅을 할 수가 있습니다. 그 가장 기본 방법인 MATLAB에서 사용하는 disp 명령어 입니다.
disp(변수) - 변수에 저장된값을 표시하는 기능을 합니다. |
예전 버전에는 MATLAB Command Console에 관련된 표시를 하였지만 어느 순간 관련해서 변경되었습니다. 별도의 로깅 창으로 보게 되었습니다. 생각보다 관련해서 잘 모르시는 분들이 많음을 알게 되었고, 이 부분에 대해서 공유 드리고자 합니다.
일단 데모로 제공되는 모델에 disp함수로 디버깅 로그를 각각 넣어주었습니다. 각 State에 entry 부분에 State 이름과 Entry라는 글을 결합하여 입력하였습니다.
그런 후 상위의 플레이 버튼을 눌러서 시뮬레이션을 진행합니다. 시뮬레이션을 진행하면, 각 로직에 대해서 다음과 같이 파란색 상자로 현재의 상태에 대해서 볼 수 있습니다. 하지만, 사람인 즉, 매번 관련해서 지켜볼 수만은 없습니다. 그리고 또한 관련해서 시뮬레이션 속도에 따라서 관련된 부분들이 정상적으로 동작하는지 알 수 없습니다.
하단에 [View diagnostics]라는 파란색을 글씨를 클릭 해줍니다. 그러면 다음과 같은 disp 입력된 값들이 출력으로 표시된 것을 알 수 있습니다.
앞서서 봤던 Transition순서등을 스스로 로깅할 때도 도움이 많이 될 것이라고 봅니다.
Super step
일단 Superstep의 연속된 값 변화에 대해서 하나같이 처리 해주는 것을 의미합니다. 이런 부분에 대해서 말하는 것보다 실제 보는 것이 더욱 좋을 수 있을 것 같아서 다음과 같은 로직을 준비했습니다.
먼저, 다음 로직을 시뮬레이션을 하면 다음과 같이 결과가 다음과 같이 나옵니다.
그 이유는 값이 초기 값에서 Low로 갈때의 편차를 반영해버리는 것입니다. 이런 부분들이 시뮬레이션 과정에서 다음과 같이 나올 수 있습니다. 하지만, 이런 부분들을 바탕으로 코드 생성할 경우는 다음과 같우 경우가 없습니다. 그래서 이런 부분들에 대해서 해결 하고자 Superstep이라는 기능을 제공합니다.
먼저, 다음과 같이 빈 화면에 오른쪽 버튼을 누릅니다. 그리고 [Properties]를 선택해 주십니다.
여기서 Enable Super Step Semantics를 체크 해주시면됩니다. 여기서 보이는 Maximum Iterations in each super step는 Super step적용시 가능 횟수를 의미 합니다.
즉 보이는 그림에서는 1000번의 다음과 같은 값 변화에 대해서 하나같이 처리한다는 것을 의미합니다. 그리고 위의 설정을 적용하여 다시 시뮬레이션을 진행해보겠습니다.
앞서 본 그림과 차이가 시뮬레이션 결과와 명확한 차이가 있습니다.
오늘은 크게 2가지 주제 Stateflow Logging방법 ,Super step 에 대해서 살펴 보았습니다. 혹 궁금하신 점이나, 물어보시고 싶은 점이 있으시면 언제든지 댓글 및 방명록에 글 남겨 주시길 부탁드립니다.
'Programming > Stateflow' 카테고리의 다른 글
[Stateflow] Hierarchical State(State의 계층 구조) (0) | 2019.12.26 |
---|---|
[Stateflow] State안의 Flowchart, Mealy Chart, Moore Chart (0) | 2019.12.25 |
[Stateflow]State Action, Condition Action과 Transition Action (1) | 2019.12.24 |
[Stateflow] State label 입력을 위한 기본 문법 (0) | 2019.12.22 |
[Stateflow] State Machine 디자인에 앞서 State에 대하여.. (0) | 2019.12.20 |