Simulink 를 사용하면서 shift register 가 필요한 경우가 종종 있는데 개인적으로는 unit delay 를 사용하여 shift register 를 구성하곤 합니다. 그런데 shift register 의 사이즈가 얼마 안된다면 그냥 노가다로도 만들수 있지만 그 사이즈가 커 진다면 이렇게 일일이 만들어서 사용하는것이 힘들더군요. 그래서 오늘은 unit delay 를 사용한 shift register 를 자동으로 만들어주는 스크립트를 소개하려 합니다.


shiftRegisterGeneration 함수를 만들었고 코드는 아래와 같습니다.



아래 명령어는 shiftRegisterGeneration 함수를 사용하여 15 사이즈의 shift register 를 만드는 명령어 입니다. MATLAB Command Window 에서 아래 명령을 실행하면

shiftRegisterGeneration(15)

아래와 같이 ShiftRegister15 라는 이름의 subsystem 이 만들어 지고~

해당 subsystem 을 들어가 보면 아래와 같이 unit delay 로 구성된 shift register 가 만들어 집니다.



Simulink 를 사용하다보면 다양한 subsystem 을 사용하게 되고 이에 대해 공부하고 싶다면 메뉴얼 또는 demo 파일들을 확인하는 것이 좋습니다. 이를 위해 MATLAB 에는 명령어를 제공해 주는데 MATLAB command line 에 sl_subsys_semantics 이라고 명령하면 아래와 같은 Subsystem Semantics Simulink 창을 확인 할 수 있습니다. Simulink Library Browser 에서 subsystem 으로 검색을 해서 "Subsystem Examples" 라고 되어 있는 라이브러리를 확인해도 됩니다.

Simulink 에는 아래와 같이 9 개의 subsystem 이 있는 것을 확인 할 수 있고 내역은 아래와 같습니다.

lf and switch-case action subsystems, Triggered subsystems, Resettable subsystems, While subsystems, Function-call subsystems, Enabled with trigger subsystems, Enabled subsystems, For Each subsystems, For subsystems

그 중에 자신이 궁금한 subsystem 을 클릭하고 들어가면 이미 만들어진 다양한 예를 볼 수가 있고 직접 실행시키면서 해당 subsystem 에 대해 이해를 할 수가 있습니다. 아래 그림은 Function-call subsystems 의 다양한 예입니다.

초록색은 정상적인 예이고 빨간색은 잘못 사용된 경우에 대한 예이니 참조하시기 바랍니다. 각 블록을 들어가시면 아래와 같이 구체적인 모델을 확인 할 수 있습니다.



+ Recent posts