Simulink의 기본 개념적인 설명과 UI에 대한 설명은 메뉴를 제외하고는 최소화 하였으며, 버전 차이를 최소화 하였고, 이 책을 통해 Simulink의 기본을 배울 수 있도록 구성하였으며, Simulink의 가장 기본적인 내용들로 정리 하였다. Simulink는 국방/항공(DO-178C), 자동차(ISO 26262), 철도(EN 50128), 의료 기계(IEC 62304)에 소프트웨어 개발에 많이 사용되고 있다.
목차
1. Simulink 모델을 만들어 보자 1
1.1 기본적인 Simulink 모델 작성 및 실행 1
1.1.1 MATLAB과 Simulink 1
1.1.2 Simulink Library Browser와 기본 라이브러리 3
1.1.3 Simulink 모델 만들기 6
1.2 자유 낙하 운동에 대한 모델링 12
1.2.2 스마트 에디팅 14
1.2.2.1 자유 낙하 운동 속도식에 대한 모델링 15
1.2.2.2 자유 낙하 운동 높이에 대한 모델링 19
1.2.3 Simulation Data Inspector(SDI) 20
1.2.3.1 시뮬레이션 완료 후 값을 보는 법 20
1.2.3.2 시물레이션 중에 SDI를 이용하여 데이터 보기 26
1.2.3.3 SDI의 Comparisons 사용하기 27
1.2.3.4 데이터 로깅한 후 SDI를 사용하는 법 29
1.2.3.5 SDI 데이터 저장하기 32
1.2.4 Scope 블록 35
1.2.4.1 Scope 블록의 옵션 35
1.2.4.2 두 개 이상의 시그널을 하나의 Scope에서 보기 40
1.2.5 시그널과 파라메타 41
1.2.5.1 시그널 이름 지정 41
1.2.5.2 Tunable 파라메타와 Non-tunable 파라메타 42
2. 상미분 방정식의 모델링 45
2.1 시간에 대한 ODE 모델링 방법 45
2.2 Integrator 블록을 이용한 자유 낙하 운동 모델링 46
2.3 진자 운동 모델링 47
2.4 기계적 시스템의 모델링 51
2.4.1 라플라스 변환을 이용한 모델링 54
2.4.1.1 전달 함수 변환 55
2.4.1.2 Transfer Fcn 블록의 사용 55
2.4.2 상태 공간 방정식의 모델링 57
2.5 Simulink의 시물레이션 실행 순서 60
2.5.1 Model Compilation 61
2.5.2 Link Phase 62
2.5.3 Block Sorted Order 63
2.5.3.1 Block Sorted Order 확인 하는 법 64
2.5.3.2 Block Sorted Order 변경 하는 법 65
2.5.4 Virtual Subsystem과 Non-Virtual Subsystem 66
2.5.4.1 Virtual Subsystem 67
2.5.4.2 Non-Virtual Subsystem 69
2.5.4.3 서브시스템과 Block Sorted Order와의 관계 70
2.5.5 Simulation Loop Phase 71
2.5.5.1 Loop Initialization 단계 71
2.5.5.2 Loop Interation 단계 72
2.6 Solver에 대한 이해 73
2.6.1 Variable Step Solver와 Fixed Step Solver 73
2.6.2 Continuous Solver와 Discrete Solver 75
2.6.3 Zero Crossing이란? 76
2.6.3.1 Zero-crossing에 대한 기본 이해 76
2.6.3.2 Zero-crossing을 위한 옵션 78
2.6.4 적합한 Solver 선택하기 80
3. Signal Routing 라이브러리와 Lookup Tables 라이브러리 81
3.1 Signal Routing 라이브러리 81
3.1.1 Switch 관련 블록들 82
3.1.1.1 Manual Switch 블록 82
3.1.1.2 Switch 블록 83
3.1.1.3 Multiport Switch 블록 85
3.1.2 시그널 묶음 블록 87
3.1.2.1 Mux 블록과 Demux 블록 88
3.1.2.2 Bus Creator 블록과 Bus Selector 블록 89
3.1.3 Goto 블록과 From 블록 91
3.2 Lookup Tables 라이브러리 93
3.2.1 1-D Lookup Table 93
3.2.2 2-D Lookup Table 98
4. 입력, 출력, 시그널 저장 101
4.1 입력, 출력, 시그널 저장을 위한 데이터 포맷 101
4.1.1 배열 포맷 102
4.1.2 구조체 포맷 102
4.1.3 timeseries 포맷 103
4.2 Inport와 Outport 블록의 활용 104
4.2.1 Inport 블록을 활용한 인풋 입력 104
4.2.2 Outport 블록을 활용한 아웃풋 저장 107
4.2.3 Inport 블록의 보간법 (Interpolation) 111
4.3 시그널 로깅 113
4.4 외부 데이터를 MATLAB으로 가져 오기 115
4.4.1 uiimport() 함수 사용법 116
4.5 Signal Builder 블럭 117
4.5.1 직접 Signal Builder에서 인풋 만들기 118
4.5.1.1 원하는 데로 시그널 변경하기 120
4.5.1.2 포인트 추가 122
4.5.1.3 시그널의 추가/삭제 및 대체 123
4.5.1.4 인풋 그룹 추가 및 그룹 이름 변경 125
5. Ports & Subsystems 라이브러리 127
5.1 조건에 의해 실행되는 서브시스템 127
5.1.1 Triggered Subsystem 블록 129
5.1.1.1 Triggered 서브시스템의 아웃풋과 state의 값 130
5.1.1.2 Triggered 서브시스템의 제약 조건 131
5.1.2 Enabled Subsystem 131
5.1.2.1 Enabled 서브시스템의 아웃풋과 state의 값 133
5.1.2.2 Enabled 서브시스템의 제약 조건 134
5.1.3 Enabled and Triggered Subsystem 134
5.2 반복을 위한 서브시스템 136
5.2.1 For Iterator Subsystem 136
5.2.2 While Iterator Subsystem 140
5.3 if, switch 블록 및 서브시스템 142
5.3.1 If 블록과 If Action Subsystem 142
5.3.2 Switch Case 블록과 Switch Case Action Subsystem 145
6. Simulink의 다양한 기능들 147
6.1 Algebraic Loop이란? 147
6.1.1 Direct Feedthrugho 14
6.1.2 Algebraic Loop 147
6.2 Multirate 시스템에 대한 모델링 150
6.2.1 Sample Time에 대한 이해 150
6.2.2 Multirate 시스템 151
6.2.2.1 Variable-step 솔버를 사용하는 Multirate 시스템 151
6.2.2.2 Fixed-step 솔버를 사용하는 Multirate 시스템 153
6.2.3 Multirate 시스템에 Rate Transition 블록을 사용하는 경우 154
6.2.3.1 빠른 sample time에서 느린 sample time으로 연결 156
6.2.3.2 느린 sample time에서 빠른 sample time으로 연결 157
6.2.3.3 두 개의 Rate Transition 연결 159
6.2.3.4 공통 되는 sample time으로 연결 159
6.2.4 Multirate 시스템에 모델 전체 옵션을 이용는 경우 162
6.3 Block Annotation과 Model Callback 163
6.3.1 Block Annotation을 이용한 블록의 속성 표시 163
6.3.2 Model Callbacks 166
6.3.2.1 Pre/Post Load Function 167
6.3.2.2 Init/Start/Stop Function 16
6.3.2.3 Pre/Post Save/Close Function 168
6.4 디버깅을 위한 기능들 168
6.4.1 Simulation Stepper 기능과 중지점 설정 168
6.4.2 시그널 추적 하이라이트 기능 172
6.5 영역 주석과 Masking 173
6.5.1 영역 주석 174
6.5.2 Masking 177