Project/#5 ILCFF

+Simulink에서 C/C++ 함수 실행하기

얼죽아여뜨샤 2023. 12. 19. 16:34

1.  C caller란?

C Caller block을 사용해 C/C++코드를 simulink모델에 통합해 사용할 수 있다.

C Caller 블록은 소스 C 코드를 확인하고 Simulink 모델에서 활용할 함수를 추출한다.

 

2. 사용방법 예시

*두 입력을 받아 덧셈을 해주는 함수 만드는 예제*

(1) 소스파일 만들기

visual studio를 사용해 c언어 함수를 생성해준다.

(파일명을 .c로 변경해야 c++에서 c로 변경됨)

#include "Test.h""

double add(double u1, double u2)
{
	return u1 + u2;
}

함수를 시뮬링크에서 C caller 함수가 인식하도록 하려면 헤더파일에서 extern으로 설정 해줘야 한다.

 

(2) 헤더파일 만들기

#ifndef _TEST_H_
#define _TEST_H_

extern double add(double u1, double u2);

#endif

 

(3) Simulink 생성

C Caller함수를 가져오고 block을 눌러서 설정 (톱니바퀴 모양) 창을 들어간다.

구성 파라미터에서 언어는 C언어, include 헤더와 소스파일을 추가한다.

 

만든 block에 새로고침을 하면 함수 add가 뜨면 사용할 수 있다.

**주의** 소스파일과 헤더파일이 matlab simulink의 파일과 같은 위치에 있어야 인식하여 들어간다.

 

시뮬레이션을 실행시키면 다음과 같이 값이 display에 뜬다.