MATLAB Coder

주요 특징

  • ANSI/ISO 호환 C 및 C++ 코드 생성
  • 고정 소수점 및 부동 소수점 수학을 위한 MEX 함수 생성
  • 엔트리 포인트, 입력 데이터 속성, 기타 코드 생성을 위한 환경설정들을 구체적으로 설정하는 MATLAB Coder 응용 프로그램
  • 가변크기 데이터를 위한 정적 또는 동적 메모리 할당
  • Communications System Toolbox, Computer Vision System Toolbox, DSP System ToolboxPhased Array System Toolbox™의 많은 함수와 System Object를 위한 코드 생성 지원
  • 행렬 연산, 서브스크립팅, 프로그램 제어 명령(if, switch, for, while), 구조 등을 포함한 일반 MATLAB 언어 기능 지원

MATLAB Coder를 Simulink CoderEmbedded Coder와 함께 사용하면 MATLAB 코드가 포함된 Simulink® 모델로부터 C 코드를 생성할 수 있습니다. 생성된 C 코드는 다음 용도로 사용할 수 있습니다.

  • 독립 실행
  • 다른 소프트웨어와의 통합
  • MATLAB 알고리즘 가속
  • 내장형 구현
MATLAB Coder project manager interface and code generation report showing the generated C code.
MATLAB Coder 프로젝트 매니저 인터페이스(왼쪽) 및 생성된 C 코드를 보여주는 코드 생성 보고서(오른쪽)

코드 생성을 위한 MATLAB 언어 서브세트

MATLAB Coder는 대규모 시스템의 구성요소로서 알고리즘을 개발하는 설계 엔지니어들이 흔히 사용하는 MATLAB 언어 서브세트로부터 코드를 생성합니다. 지원되는 서브세트에는 MATLAB의 400개 이상의 연산자 및 함수가 포함됩니다.

Aerospace Toolbox, Fixed-Point Designer™, Image Processing Toolbox, Signal Processing ToolboxStatistics Toolbox™ 로부터의 코드 생성을 위해 일련의 제한된 함수가 지원됩니다. MATLAB Coder는 또한 Communications System Toolbox, Computer Vision System Toolbox, DSP System ToolboxPhased Array System Toolbox™ 에 있는 다수의 System Object 로부터의 코드 생성도 지원합니다.

MATLAB Coder는 알고리즘 개발을 위한 광범위한 MATLAB 언어 특성을 지원하며, 여기에는 다음이 포함됩니다.

행렬 및 배열: persistent 변수, 전역 변수, 행렬 연산, N차원 배열, 서브스크립팅, 프레임 등

클래스 및 데이터 유형: 복소수, 정수 조화, 단일/이중 정밀도, 고정 소수점 산술, 문자열, 구조체, 수치 클래스, 가변크기 데이터 등

프로그래밍 구성: MATLAB 프로그램 제어 명령(if, for, while, switch) 및 산술, 관계, 논리 연산자 등

함수: 함수 핸들, 서브 함수, MATLAB 함수 서브세트, 가변길이 입력/출력 인수 목록, MATLAB 함수 호출 기능 등

코드 생성을 위해 지원되는 MATLAB 언어 특성의 전체 목록을 참고하십시오.

MATLAB Coder의 사례 이용

MATLAB Coder를 사용하면 MATLAB에서 알고리즘을 개발 중인 설계 엔지니어가 해독과 이식이 가능한 C/C++ 코드를 생성할 수 있습니다. 이렇게 생성된 코드로 다음을 수행할 수 있습니다.

  • MATLAB 알고리즘을 PC에서 독립 실행 파일로 프로토타이핑하고 소프트웨어 엔지니어에게 설계 사양으로 전달합니다.
  • 컴파일된 C 또는 C++ 코드를 호출하는 자동 생성된 MATLAB 실행 파일(MEX 함수)을 MATLAB 코드 대신 사용하여 시뮬레이션 일부를 가속합니다.
  • MATLAB 알고리즘을 컴파일된 라이브러리 구성요소로서 맞춤형 시뮬레이터와 같은 다른 소프트웨어에 통합합니다.
  • 내장형 프로세서에서 MATLAB 알고리즘을 구현하고 검증합니다.
MATLAB Coder use cases.
MATLAB Coder에서 사례 활용

MATLAB에서 코드 생성

MATLAB 알고리즘을 C 코드로 변환하려면 구현 요구 사항을 지정해야 합니다. MATLAB Coder는 계속해서 MATLAB 언어를 사용하면서 이러한 반복 프로세스를 진행할 수 있도록 안내합니다. MATLAB 내에서 실행할 수 있도록 컴파일된 코드를 래핑하는 MEX 함수를 생성함으로써 설계한 알고리즘에 대한 코드 생성 호환성을 확인할 수 있게 합니다. MATLAB Coder는 MATLAB 알고리즘이 코드 생성에 호환되기 위해 수정해야 하는 모든 오류를 식별해주는 보고서를 생성합니다. MATLAB 알고리즘이 코드 생성에 적합할 때까지 오류 수정과 MEX 함수 재생성을 반복합니다. 

이제 MATALB 알고리즘으로부터 성능 목적으로 튜닝을 거친 C 또는 C++ 소스 코드 또는 MEX 함수를 만들 수 있습니다.

C 또는 C++ 소스 코드를 사용하여 다음을 수행할 수 있습니다.

  • PC에서의 프로토타이핑
  • 라이브러리 생성
  • 내장형 코드로 구현

MEX 함수는 원본 MATLAB 코드 대신 호출 가능하며, 다음을 수행할 수 있습니다.

  • 컴파일된 코드를 다시 MATLAB에서 검증
  • 실행 가속화
Three-step iterative workflow for generating code from MATLAB using  MATLAB Coder.
MATLAB Coder를 사용하여 MATLAB에서 코드를 생성하기 위한 3단계 반복 작업 흐름

MATLAB Coder와 Simulink Coder 및 Embedded Coder

시뮬레이션 및 코드 생성을 위한 MATLAB 함수 블록을 사용하면 MATLAB 코드를 Simulink 모델로 통합하기 위해 MATLAB 서브세트에서 작성된 MATLAB 알고리즘을 추가할 수 있습니다. Simulink Coder는 이처럼 MATLAB 코드가 포함된 Simulink 모델로부터 코드를 생성할 수 있습니다.

Radar tracking model in Simulink with a Kalman filtering algorithm that is written in MATLAB and called using the MATLAB Function block.
Simulink의 레이더 추적 모델. 이 모델은 MATLAB에서 작성하고 MATLAB 함수 블록을 사용하여 호출한 Kalman 필터링 알고리즘을 구현합니다.

Embedded Coder는 대량 생산에 사용되는 내장형 프로세서, on-target 래피드 프로토타이핑 보드, 마이크로프로세서를 위한 코드를 생성합니다. 또한 생성된 코드의 함수, 파일 및 데이터에 대한 세밀한 제어를 위한 구성 옵션 및 고급 최적화를 제공하여 MATLAB Coder 및 Simulink Coder를 확장합니다. Embedded Coder는 코드 효율을 높이고 양산에 사용되는 레거시 코드, 데이터 유형, 보정 매개변수와의 통합을 용이하게 합니다.

Embedded Coder로 생성한 코드는 파트너사 개발 환경으로 내보내 내장형 시스템에서 배포할 실행 파일의 생성을 자동화할 수 있습니다. 생성된 코드는 또한 프로세서에서 실행하여 작동 성능을 검증하고 PIL(processor-in-the-loop) 및 프로파일링 기술을 통해 리소스 활용 메트릭을 수집할 수 있습니다.

MATLAB Coder 평가판 사용

평가판 신청

무료 속성 가이드

가이드 보기