본문 바로가기

Software/MATLAB

MATLAB/Simulink Scope 창에서 데이터 축출하기

 오늘도 그냥 허덥한 MATLAB 팁하나 끄적거려 볼까합니다^^.
 보통 MATLAB의 Simulink를 사용한다면 당연히 Scope는 필수로 사용하게 되겠죠. 아마 가장 사용빈도가 높은 블럭중 하나일텐데요. 예네가 까망 바탕화면이라 이런 프리젠테이션이나 프린터로 출력할때 난감한 상황이 가끔생기지요. 물론 어떤분들은 간단히 그래픽툴로 간단히 반전시키기도 하시고, 또 Workspace 블럭으로 데이터를 저장하기도 하는데요.
 Workspace블럭을 사용하지 않아도 Scope에서 간단히 Workspace로 저장할 수 있습니다. 아... 미리 말씀드리지만.. 뭐 월래 팁들이라는게 그런거지만 꼭 사용해야한다 뭐 그런건 아닙니다. 그저 좀 편하다는거... 사실 가장 편한건 자기 손에 익은 방법이겠지만요...^^


위의 시뮬링크화일에서 Scope를 더블클릭해보면요.


저렇게 출력결과가 나오죠. 아까도 말했지만 저 까망바탕화면이 좀 거슬릴때가 있거든요. 혹은 그냥 출력데이터를 Workspace에 저장하고 싶기도 하겠죠. 그러면 위의 그림에서 프린터아이콘 옆에 보시된 서류철처럼 생긴 Parameters 아이콘을 클릭하세요


저렇게 뜨는데요. 상단의 Data history 탭을 클릭하시구요


아 저기 표시된건 Scope가 원래 데이터를 5000만 보여주는건데 시뮬레이션 시간이 길거나하면 저거 때문에 짤리거든요. 저걸 클릭해서 해제하시구요



그다음 Save data to workspace를 클릭하시면 됩니다. 그러면 활성화되는 두개의 옵션은 저장할 데이터의 이름과 format을 잡아줘야하는데, 그냥 Structure with time으로 두도록 하죠.



그러고 다시 시뮬레이션을 하면 ScopeData란 이름의 Structure가 Workspace에 저장되어 있습니다.


위에 보시다시피....^^ 저장할때 Structure로 저장했으니 저렇게 보이는데요. 그걸 더블클릭해보면...


위에서 처럼 time과 signals가 보입니다. time은 느낌그대로 시간축이구요. signals는 다시 structure로 되어있네요. 다시 더블클릭해보면


values가 보이네요. 물론 처음의 시뮬링크 화일을 보시면 알겠지만, Demux로 scope에 신호를 두개 줬거든요. 그러니 values도 2개의 열로 구성되어있음을 알 수 있습니다.

이걸 plot해보면

plot(ScopeData.time, ScopeData.signals.values)


위와 같이 호출하시면 되구요.


위와같이 나타납니다. 앗 grid는 다시 명령을 줘야겠지요^^ 전 보통 grid on 이라는 명령을 일일이 쳐주길 싫어해서, 2009/04/15 - [공학기초/MATLAB] - Short Cuts 활용하기에서 이야기 한데로 전 short cut에다가 grid on을 넣어두거든요^^


위에서 처럼요....^^ 근데... 이왕 초보스런 팁 이야기하는거니 더 초보스럽게 가면, 위에서처럼도 프리젠테이션이나 리포트에는 쓰질 않습니다.


Figure의 Edit에 Copy Figure를 누르고 내부그림만 사용을 하죠...



위에서 처럼요.... 뭐 타이틀이나 legend 등등은 뭐 알아서들 넣어서 구미에 맞게 요리하시면 되겠습니다....^^

반응형