Simulink 사용시 보통 마우스를 사용하여 모델을 구성하곤 합니다.
하지만 이런 GUI 방식은 자동화를 위해서는 그리 좋은 방법은 아닙니다.
대량의 시스템 구성시 GUI 을 사용한 구성방식은 한없는 노가다일 수 있습니다.
단순 반복적인 작업들은 당연히 자동화를 해야 하고 이를 위해서는 Script 가 필수라고 할 수 있죠.
simulink 를 구성하기 위한 MATLAB 명령어들로는 add_block, add_line, new_system, open_system, delete_line, delete_block, replace_block, set_param 와 같은 명령어들이 있습니다.
new_system() 을 사용하여 Simulink 블록을 구성하고 open_system 명령어를 사용하여 해당 파일을 열 수 있습니다.
다음으로 add_block, add_line 함수를 활용하여 블록과 라인을 구성하고 delete_line, delete_block 함수를 활용하여 라인과 블록을 지울 수 있습니다.
다음으로 블록을 교체 하기 위해서는 replace_block 함수를 활용합니다.
위에 명령어들만 알면 기본적으로 Simulink 블록을 구성하는건 대부분 다 할 수 있을 것 같더군요.
마지막으로 set_param 함수를 사용하면 블록의 세세한 파라미터들을 설정 할 수 있습니다.
simulink 블록을 시뮬레이션 하는 명령어는 Sim() 이라는 명령어를 사용합니다.
아래 참고사이트에 나와 있는 예제를 실행해보면~ 아래 코드와 같습니다. Simulink 모델을 저장하기 위해 save_system 함수를 사용했습니다.
sys = 'testModel'; | |
new_system(sys) % Create the model | |
open_system(sys) % Open the model | |
x = 30; | |
y = 30; | |
w = 30; | |
h = 30; | |
offset = 60; | |
pos = [x y+h/4 x+w y+h*.75]; | |
add_block('built-in/Inport',[sys '/In1'],'Position',pos); | |
pos = [(x+offset) y (x+offset)+w y+h]; | |
add_block('built-in/Integrator',[sys '/Int1'],'Position',pos) | |
add_line(sys,'In1/1','Int1/1','autorouting','on') | |
pos = [(x+offset*2) y (x+offset*2)+w y+h]; | |
add_block('built-in/Integrator',[sys '/Int2'],'Position',pos) | |
add_line(sys,'Int1/1','Int2/1','autorouting','on') | |
pos = [(x+offset*2) y+offset (x+offset*2)+w (y+offset)+h]; | |
add_block('built-in/Scope',[sys '/Scope1'],'Position',pos) | |
add_line(sys,'Int1/1','Scope1/1','autorouting','on') | |
delete_line(sys,'Int1/1','Int2/1') | |
delete_block([sys '/Int2']) | |
pos = [(x+offset*2) y+h/4 (x+offset*2)+w y+h*.75]; | |
add_block('built-in/Outport',[sys '/Out1'],'Position',pos) | |
add_line(sys,'Int1/1','Out1/1') | |
replace_block(sys,'Name','In1','built-in/Sin','noprompt'); | |
set_param([sys '/In1'],'Position',[x y x+w y+h],'Name','Sine Wave'); | |
[t,x,y] = sim(sys); | |
plot(t,y), ylim([-.5 2.5]), grid on | |
save_system(sys) |
save_system 함수를 사용하여 모델을 저장하면 testModel.slx 라는 모델 파일이 만들어집니다.
위 코드를 실행해 보면 다음과 같은 Simulink 모델과 ~
다음과 같은 그래프를 MATLAB figure 그래프를 확인 할 수 있습니다.
참고 사이트
http://blogs.mathworks.com/seth/2010/01/21/building-models-with-matlab-code/
http://www.goddardconsulting.ca/simulink-creating-using-matlab-code.html
'programming language > MATLAB' 카테고리의 다른 글
MATLAB stateflow 현재 차트의 data 다 찾기 (0) | 2015.07.16 |
---|---|
MATLAB 으로 음계 재생 (2) | 2015.06.15 |
LMS Test Using Simulink (0) | 2015.06.14 |
무료 클라우드 MATLAB, freematlab (2) | 2015.06.07 |
MATLAB Command History 표시 방법 (0) | 2015.01.11 |
MATLAB dirac delta 함수 (0) | 2014.09.21 |
MATLAB OOP(Object-Oriented Programming) Filter Class (0) | 2014.07.09 |
MATLAB 16QAM AWGN & Flat Fading Diversity Simulation (0) | 2014.07.05 |
댓글