시뮬링크
1. 개요
시뮬링크(Simulink)는 그래픽 블록 다이어그램 인터페이스와 사용자 정의 블록 라이브러리를 제공하는 시스템 모델링 및 시뮬레이션 도구이다. MATLAB 환경에서 작동하며, 제어 이론, 디지털 신호 처리 등 다양한 분야에서 멀티도메인 시뮬레이션 및 설계를 위해 사용된다. MathWorks 및 타사 제품을 통해 Stateflow를 사용한 상태 머신 및 순서도 개발, 자동 코드 생성, 실시간 시뮬레이션, 모델 검증 및 유효성 검사, SimEvents를 사용한 대기 시스템 모델링 등 기능을 확장할 수 있다.
| 유형 | 프로그래밍 환경 |
|---|---|
| 개발사 | MathWorks |
| 최초 출시 | 1984년 |
| 최신 버전 | 10.7 (R2023a의 일부) |
| 최신 출시일 | 2023년 3월 16일 |
| 운영체제 | 리눅스, macOS, 마이크로소프트 윈도우 |
| 라이선스 | 사유 소프트웨어 |
| 웹사이트 | mathworks.com |
-
수학적 모델링 -
분석
분석은 대상의 내용을 구성 요소로 나누어 속성, 관계 등을 밝히는 방법으로, 다양한 분야에서 활용되며 사회과학에서는 사실 해명적 분석과 규범적 분석으로 나뉜다. -
수학적 모델링 -
통계 모델
통계 모델은 사건의 확률을 계산하기 위한 통계적 가정의 집합으로, 표본 공간과 확률 분포의 집합으로 표현되며, 모수적, 비모수적, 준모수적 모델로 분류된다. -
시뮬레이션 소프트웨어 -
컴퓨터 시뮬레이션
컴퓨터 시뮬레이션은 시스템 동작 파악을 위해 방정식 풀이 알고리즘을 실행하는 과정으로, 2차 세계 대전 핵무기 개발 모델링에서 시작되어 컴퓨터 성능 발전과 함께 다양한 분야에서 활용되며, 모델 유형에 따라 확률/결정, 정상/동적, 연속/이산 등으로 나뉘고, 과학, 공학, 사회과학 등에서 활용되며 한국에서는 정부 주도로 기술 개발에 투자하고 있다. -
시뮬레이션 소프트웨어 -
Folding@home
Folding@home은 단백질 폴딩 연구를 위해 전 세계 컴퓨터 자원을 활용하여 알츠하이머병, 헌팅턴병 등 질병 연구에 기여하는 분산 컴퓨팅 프로젝트이다. -
시각적 프로그래밍 언어 -
맥스 (소프트웨어)
맥스는 시각적 프로그래밍 기반의 실시간 음향 및 영상 처리 소프트웨어로, MSP와 Jitter 모듈 추가를 통해 기능이 확장되었으며, 음악 제작, 사운드 디자인, 인터랙티브 아트 등 다양한 분야에서 활용되고 Ableton Live와의 통합으로 활용 범위가 넓어졌다. -
시각적 프로그래밍 언어 -
래더 로직
래더 로직은 PLC 프로그래밍에 사용되는 그래픽 기반 언어로, 릴레이 회로를 연상시키는 접점과 코일을 사용하여 AND, OR, NOT 등의 논리 연산을 구현, 자동화 시스템을 제어한다.
2. 주요 기능
시뮬링크의 주요 인터페이스는 그래픽 블록 다이어그램 툴과 사용자 정의가 가능한 블록 라이브러리 세트이다.
MathWorks사에서는 전문 분야별로 블록이 정리된 블록 세트(blockset)를 다수 제공하고 있지만, 블록 세트에 따라 특정 툴박스가 필요할 수도 있다. 예를 들어 디지털 신호 처리에서 자주 사용되는 DSP System Toolbox를 사용하려면, Signal Processing Toolbox가 반드시 필요하다.
2.1. MATLAB과의 연동
시뮬링크는 MATLAB 환경에서 제공되며 MATLAB과 긴밀하게 연동되어 데이터 분석, 시각화, 알고리즘 개발 등 MATLAB의 기능을 활용할 수 있다. 시뮬링크는 멀티도메인 시뮬레이션 및 설계를 위해 제어 이론, 디지털 신호 처리 등의 분야에서 널리 사용된다.
2.2. 멀티도메인 시뮬레이션
시뮬링크는 제어 이론, 디지털 신호 처리 등 여러 분야에서 사용되는 멀티도메인 시뮬레이션 및 설계를 지원한다. 이를 통해 복잡한 시스템의 동작을 정확하게 예측하고 분석할 수 있다.
주요 인터페이스는 그래픽 블록 다이어그램 도구와 사용자 정의 가능한 블록 라이브러리 세트이다. 시뮬링크는 MATLAB 환경에서 제공되며 MATLAB과 함께 작동한다.
MathWorks사에서는 전문 분야별로 블록이 정리된 블록 세트(blockset)를 다수 제공하지만, 블록 세트에 따라 특정 툴박스가 필요할 수도 있다. 예를 들어 디지털 신호 처리에서 자주 사용되는 DSP System Toolbox를 사용하려면, Signal Processing Toolbox가 반드시 필요하다.
3. 애드온 제품
매스웍스(MathWorks) 및 기타 타사 하드웨어 및 소프트웨어 제품은 시뮬링크와 함께 사용할 수 있다. 예를 들어, Stateflow는 상태 머신 및 순서도를 개발하기 위한 설계 환경으로 시뮬링크를 확장한다.
시뮬링크 리얼-타임(Simulink Real-Time, 이전 xPC Target)은 x86 기반 실시간 시스템에서 시뮬링크 및 Stateflow 모델을 실시간으로 시뮬레이션하고 테스트하는 환경이다. 또 다른 매스웍스 제품은 특정 임베디드 대상을 지원한다.
시뮬링크 검증 및 유효성 검사(Simulink Verification and Validation)는 모델 스타일 검사, 요구사항 추적성 및 모델 커버리지 분석을 통해 모델의 체계적인 검증 및 유효성 검사를 가능하게 한다. 시뮬링크 디자인 검증기(Simulink Design Verifier)는 형식적 방법을 사용하여 정수 오버플로우, 0으로 나누기 및 데드 로직과 같은 설계 오류를 식별하고 시뮬링크 환경 내에서 모델 검사를 위한 테스트 사례 시나리오를 생성한다.
SimEvents는 대기 시스템을 모델링하기 위한 그래픽 빌딩 블록 라이브러리를 시뮬링크 환경에 추가하고, 시뮬링크의 시간 기반 시뮬레이션 엔진에 이벤트 기반 시뮬레이션 엔진을 추가하는 데 사용된다.
3.1. Stateflow
Stateflow는 상태 머신 및 순서도를 개발하기 위한 설계 환경으로 시뮬링크를 확장한다. 매스웍스(MathWorks)는 시뮬링크가 시스템의 자동으로 C 코드 소스 코드를 실시간 컴퓨팅 구현을 위해 자동 코드 생성할 수 있다고 주장한다. 코드의 효율성과 유연성이 향상됨에 따라, 임베디드 시스템 설계 작업의 도구일 뿐만 아니라 신속한 반복을 위한 유연성과 역량 때문에 생산 시스템에서도 널리 채택되고 있다. 임베디드 코더(Embedded Coder)는 임베디드 시스템에서 사용하기에 충분히 효율적인 코드를 생성한다. 다른 일반 제품과 함께 사용하면, 시뮬링크와 Stateflow는 논리 합성 가능한 VHDL 및 Verilog를 자동으로 생성할 수 있다.
3.2. 코드 생성
매스웍스(MathWorks)는 시뮬링크를 통해 시스템의 C 코드 소스 코드를 실시간 컴퓨팅 구현을 위해 자동 코드 생성할 수 있다고 주장한다. 코드의 효율성과 유연성이 향상됨에 따라, 임베디드 시스템 설계뿐만 아니라 신속한 반복을 위한 유연성과 역량 때문에 생산 시스템에서도 널리 채택되고 있다. 임베디드 코더는 임베디드 시스템에 사용하기에 충분히 효율적인 코드를 생성한다.
시뮬링크와 Stateflow는 다른 일반 제품과 함께 사용하면 논리 합성 가능한 VHDL 및 Verilog를 자동으로 생성할 수 있다.
Simulink Coder는 매스웍스 제품으로, 시뮬링크에서 생성된 블록 다이어그램 모델로부터 C 언어 코드를 자동 생성하여 시스템을 실시간으로 실행할 수 있게 한다. 코드 효율성과 유연성이 향상되어 임베디드 시스템 설계 작업을 위한 일반적인 도구일 뿐만 아니라 널리 사용되고 있다.
또한, Embedded Coder는 임베디드 시스템용 효율적인 코드를 생성하며, 텍사스 인스트루먼트와 같은 마이크로컨트롤러를 포함하여 특정 Embedded Target을 지원하는 애드온이 있다.
매스웍스의 HDL Coder를 사용하면 시뮬링크 블록 다이어그램 모델 및 Stateflow 차트로부터 VHDL 및 Verilog를 자동으로 생성할 수 있다.
3.2.1. 실시간 시스템 지원
시뮬링크 리얼-타임(Simulink Real-Time, 이전 xPC Target)은 x86 기반 실시간 시스템에서 시뮬링크 및 Stateflow 모델을 실시간으로 시뮬레이션하고 테스트하는 환경이다.
3.3. 검증 및 유효성 검사
시뮬링크 검증 및 유효성 검사(Simulink Verification and Validation)는 모델 스타일 검사, 요구사항 추적성 및 모델 커버리지 분석을 통해 모델의 체계적인 검증 및 유효성 검사를 가능하게 한다.
3.3.1. 설계 오류 검출
시뮬링크 디자인 검증기(Simulink Design Verifier)는 형식적 방법을 사용하여 정수 오버플로우, 0으로 나누기 및 데드 로직과 같은 설계 오류를 식별하고, 시뮬링크 환경 내에서 모델 검사를 위한 테스트 사례 시나리오를 생성한다.
3.4. SimEvents
SimEvents는 대기 시스템을 모델링하기 위한 그래픽 빌딩 블록 라이브러리를 시뮬링크 환경에 추가하고, 시뮬링크의 시간 기반 시뮬레이션 엔진에 이벤트 기반 시뮬레이션 엔진을 추가하는 데 사용된다.
4. 출시 역사
매트랩과 함께 1984년에 처음 출시되었다. 1992년에는 시뮬랩(Simulab)에서 시뮬링크(SIMULINK)로 이름이 변경되었다.
4.1. 주요 버전
시뮬링크는 매트랩의 발전에 따라 새로운 기능이 추가되고 성능이 개선되어 왔다. 각 버전별 자세한 내용은 아래 표를 참고할 수 있다.