60
Simulink 강강 강강 강강 강 강 : 2007, 01, 30 강 : 강 강강

Simulink 강의 노트

  • Upload
    maddox

  • View
    176

  • Download
    10

Embed Size (px)

DESCRIPTION

Simulink 강의 노트. 작성 일자 : 2007, 01, 30 저 자 : 임 종수. 강의 순서. -- Section 1. 1. Simulink 의 특징과 install 시 주의사항 . 2. simple simulink model 개발 . 3. simulink 의 계산 방법 . 4. Triggered model concept. 5. Model workspace concept. 6. model parameter settings rule. 7. masking concept - PowerPoint PPT Presentation

Citation preview

Page 1: Simulink  강의 노트

Simulink 강의 노트

작성 일자 : 2007, 01, 30 저 자 : 임 종수

Page 2: Simulink  강의 노트

강의 순서-- Section 1.• 1. Simulink 의 특징과 install 시 주의사항 .• 2. simple simulink model 개발 .• 3. simulink 의 계산 방법 .• 4. Triggered model concept.• 5. Model workspace concept.• 6. model parameter settings rule.• 7. masking concept• 8. simulink library 개발 .

-- Section 2.• 1. matlab 과 simulink 의 연동 .• 2. simulink 의 third party 소개 .

Page 3: Simulink  강의 노트

Simulink 의 특징 .• Simulink 는 동적으로 데이터를 분석 .

-> step size.• 그래픽 언어 .

-> 알고리즘 개발보다는 구현 .( 즉 , 이론보다는 구현 위주 )• 조합회로에 해당 .

-> model 은 하나의 step size 에서 동시에 계산 .-> 순차회로는 stateflow 에서 수행 .

• 독특한 debugging 방법 .• C/C++, Ada, Fortran, M-file 과의 link

-> S-function

Page 4: Simulink  강의 노트

Simulink Install 방법 .• Matlab 버전과는 독립적으로 운영 .• Install 시 다음 사항에 주의 .

Page 5: Simulink  강의 노트

Simple Simulink Model(1)

Page 6: Simulink  강의 노트

Simple Simulink Model(2)• y=ksin(x) model 개발 :

① Sources Library 에 있는 Sine Wave block.② Sinks Library 에 있는 Scope block.③ Math Library 에 있는 Gain block.

Page 7: Simulink  강의 노트

Simple Simulink Model(3)

Page 8: Simulink  강의 노트

Simple Simulink Model(4)• 주석을 삽입할 수 있다 .-> 수학기호 및 다른 특수 문자 삽입가능 .

• Port Data type 표시 기능 .• Storage class 표시 기능 .• Sample Time Colors• Signal Dimension 표시 기능 .

Page 9: Simulink  강의 노트

Simple Simulink Model(5)

• 버전에 따라서 GUI 환경이 다름 .• install 한 toolbox 에 따라서 GUI 환경이 다름 .• model 에 대한 거의 모든 환경을 setting 할 수 있음 .

Page 10: Simulink  강의 노트

Simple Simulink Model(6)

Page 11: Simulink  강의 노트

Simple Simulink Model(7)

• >> simplot(ScopeData)-> simplot 사용 기능 .• simulation 결과 2 개의 경고문이 발생 . 1) continuous states 가 없음 . 2) maximum step size : 0.2

Page 12: Simulink  강의 노트

Simulink Model Ex1(1)

• Motion Equation :

-> 2 계 system 이므로 2 개의 적분 block 이 필요 .

• damping 계수 c=1.0 lb sec/ft, spring 상수 k=2 lb/ft, cart 의 질량 m=5 slugs. ->

Page 13: Simulink  강의 노트

Simulink Model Ex1(2)

Page 14: Simulink  강의 노트

Simulink Model Ex1(3)

Page 15: Simulink  강의 노트

Simulink Model Ex1(4)

Page 16: Simulink  강의 노트

Simulink Model Ex1(5)

Page 17: Simulink  강의 노트

Subsystem (1)

Page 18: Simulink  강의 노트

Subsystem (2)

Page 19: Simulink  강의 노트

Simulink & Matlab 데이터 교환(1)

% 시간 축의 범위는 0∼7 초이고 , % sampling frequency 는 100[Hz] 이다 .>> XTime=0:0.01:7; >> YData=sin(XTime);>> MatToSim=[XTime' YData'];

>> plot(XTime,YData,'k')>> set(gcf,'color','w','pos',[232 326 360 352],'units','pixels')>> axis([min(XTime) max(XTime) min(YData) max(YData)])>> grid on

Page 20: Simulink  강의 노트

Simulink & Matlab 데이터 교환(2)

Page 21: Simulink  강의 노트

Simulink & Matlab 데이터 교환(3)

Page 22: Simulink  강의 노트

Simulink 의 계산 방법 (1)• 초기화 과정에서 model 을 구성하는 blocks 의 실행 ( 즉 , 갱신 ) 순서를 정함 .-> Simulink 는 모든 inputs 에 대한 outputs 의 관계에 근거하여 model을 구성하는 block 들을 분류 . 1) direct-feedthrough port : 현재의 input port 값은 곧바로 block 의 현재 output port 값을 결정 . 예 : gain, Product. 등등

2) non-direct-feedthrough port : Integrator block 의 output port 는 입력이 아닌 , states 의 함수 , Constant block 은 입력을 가지고 있지 않으며 , Memory block 의 output 은 이전 time step 에서의 입력

• Simulink 는 direct-feedthrough port 를 갖지 않는 block 을 update 순서의 앞에 놓고 , direct-feedthrough port 를 갖는 block 을 update 순서의 뒤에 놓는 초기화 과정을 수행하고 나서 update 를 순서대로 수행 .

Page 23: Simulink  강의 노트

Simulink 의 계산 방법 (2)

Page 24: Simulink  강의 노트

Simulink 의 계산 방법 (3)

• Computability Model

Page 25: Simulink  강의 노트

Triggered Model Comcept(1)• Enabled Subsystem : control signal 이 positive 인 경우 , 각각의 simulation step 에서 실행 . 즉 , scalar 또는 vector 형태를 갖는 control signal 이 negative에서 positive 로 바뀌는 순간 실행을 시작하여 positive 에서 negative 로 바뀌는 경우 실행을 멈춤 .

• Triggered Subsystem : 임의의 trigger event 가 발생할 때마다 한번 실행한다 . rising edge 또는 falling edge 가 발생한 경우 .

Page 26: Simulink  강의 노트

Triggered Model Comcept(2)

Page 27: Simulink  강의 노트

Triggered Model Comcept(3)

Page 28: Simulink  강의 노트

Triggered Model Comcept(4)

Page 29: Simulink  강의 노트

Triggered Model Comcept(5)

• 실습 : subsystem 안의 unit delay 에 주의 .

Page 30: Simulink  강의 노트

Model Workspace Concept(1)• model workspace 에 있는 변수들은 단지 , 해당 model 의 범위에서만 볼

수 있으며 , model 이 loading 될 때 , 이들 변수에 관련된 데이터가 초기화됨 .

* Model Explorer : Simulink model 또는 Stateflow chart 의 elements 에 대한 위치를 찾거나 , 보거나 , 수정할 때 사용 .

Page 31: Simulink  강의 노트

Model Workspace Concept(2)

Page 32: Simulink  강의 노트

* Model workspace 에 새로운 변수 AmpVar 생성 .

* Model workspace 에 있는 AmpVar 를 Model 매개변수로 선언 .

Model Workspace Concept(3)

Page 33: Simulink  강의 노트

Model Workspace Concept(4)

Page 34: Simulink  강의 노트

Model Parameters Setting(1)

• Matlab Handle Graphics System– set.m, get.m

• Simulink Parameter based System– set_param, get_param– set_param('obj', 'parameter1', value1,

'parameter2', value2, ...) – get_param('obj', 'parameter')

Page 35: Simulink  강의 노트

Model Parameters Setting(2)

Page 36: Simulink  강의 노트

Model Parameters Setting(3)

Page 37: Simulink  강의 노트

Model Parameters Setting(4)

• sim command :– Model 을 matlab command window 에서 실행 .– sim(‘model name’)

• 예 제 :

Page 38: Simulink  강의 노트

Masking Concept(1)• Subsystems 에 대한 custom user interfaces( 즉 ,

masks) 를 새롭게 만드는 기법 .• Masked subsystem 의 요구 사항 :

– Mask Icon.– Mask Parameters– Mask Initialization Code– Mask Workspace

Page 39: Simulink  강의 노트

Masking Concept(2)

Page 40: Simulink  강의 노트

Masking Concept(3)

Page 41: Simulink  강의 노트

Masking Concept(4)

Page 42: Simulink  강의 노트

Masking Concept(5)

Page 43: Simulink  강의 노트

Masking Concept(6)

Page 44: Simulink  강의 노트

Masking Concept(7)

Page 45: Simulink  강의 노트

Masking Concept(8)

Page 46: Simulink  강의 노트

Masking Concept(9)

Page 47: Simulink  강의 노트

Masking Concept(10)

Page 48: Simulink  강의 노트

Masking Concept(11)

Page 49: Simulink  강의 노트

Masking Concept(12)

Page 50: Simulink  강의 노트

Masking Concept(13)

Page 51: Simulink  강의 노트

Simulink Library(1)

Page 52: Simulink  강의 노트

Simulink Library(2)

Page 53: Simulink  강의 노트

Simulink Library(3)function blkStruct=slblocks%SLBLOCKS Defines the block library for a specific Toolbox or Blockset.%% 2005, 6, 6 By Lim Jong Su%

blkStruct.Name=sprintf('Sim Library Test');blkStruct.OpenFcn='SimLibByLim';blkStruct.MaskInitialization=''; blkStruct.MaskDisplay=['disp(''Sim Library Test'')']; % Define the library list for the Simulink Library Browser.% Return the name of the library model and the name for it. Browser(1).Library='SimLibByLim';Browser(1).Name ='Sim Library Test'; blkStruct.Browser=Browser; %end of slblocks.m

Page 54: Simulink  강의 노트

Simulink Library(4)

• LimSimLib directory 를 matlab 경로에 첨가해 주어야 함 .

Page 55: Simulink  강의 노트

Simulink Library(5)

Page 56: Simulink  강의 노트

Simulink Library(6)

Page 57: Simulink  강의 노트

Matlab & Simulink 연동 (1)• Simulink model 과 Matlab GUI 기능을 link.

Page 58: Simulink  강의 노트

Matlab & Simulink 연동 (2)• Matlab 의 guide.m 함수로 GUI 개발 .

Page 59: Simulink  강의 노트

Matlab & Simulink 연동 (3)

• 소스 분석 .

Page 60: Simulink  강의 노트

Simulink 의 third Party•

http://www.mathworks.com/products/connections/company_name.html

• Xilinx Syste Generator, Altera DSP Builder, Synplify DSP, AccelChip etc.

• http://www.mathworks.com/matlabcentral/fileexchange/loadCategory.do

• http://www.mathworks.com/access/helpdesk/help/helpdesk.html