주요 콘텐츠

Function Caller

Simulink 함수 호출

  • Function Caller block

라이브러리:
Simulink / User-Defined Functions

설명

Function Caller 블록은 Simulink® 함수를 호출하고 실행합니다. Simulink 함수는 함수 이름, 입력 인수, 출력 인수를 포함하는 함수 프로토타입을 지정합니다. 예를 들어, Function Caller 블록이 프로토타입 y = f(u)를 갖는 함수를 호출하면, Function Caller 블록의 입력은 Simulink 함수의 입력 인수 u이고, Simulink 함수의 출력 인수 yFunction Caller 블록의 출력입니다.

아래 예시에서, Function Caller 블록은 Simulink Function 블록에 정의된 Simulink 함수 y = timestwo(x)를 호출하고 실행하도록 구성되어 있습니다. 함수 호출을 테스트하기 위해, Sine Wave 블록이 입력 포트 x에 연결되어 입력 데이터를 제공하고, Scope 블록이 출력 포트 y에 연결되어 출력 결과를 확인합니다.

A Sine Wave block is the input to the Function Caller block which sends output to a Scope block.

Simulink Function 블록에 정의된 Simulink 함수를 호출하거나, Stateflow® Chart (Stateflow)에서 내보낸 Simulink 함수를 호출하거나, S-Function 블록에 정의된 Simulink 함수를 호출할 수 있습니다. Simulink 함수를 정의하는 방법에 대한 자세한 내용은 Define a Simulink Function in a Model 항목을 참조하십시오.

자세한 내용은 Simulink Functions Overview 항목을 참조하십시오.

Function Caller 블록을 사용하여 모델 계층 구조 외부의 함수를 호출할 수 있습니다.

자세한 내용은 Simulink Function Blocks in Referenced Models 항목을 참조하십시오.

Simulink Function 블록과 Function Caller 블록을 사용한 코드 생성

Simulink Coder™ 또는 Embedded Coder®가 있는 경우 Simulink 함수를 포함하는 모델에서 코드를 생성할 수 있습니다. 자세한 내용은 Simulink Function Blocks and Code Generation (Embedded Coder) 항목과 Configure Entry-Point Function Interfaces for Simulink Function and Function Caller Blocks (Embedded Coder) 항목을 참조하십시오.

예제

포트

입력

모두 확장

함수로 전송되는 입력 인수에 대한 입력 신호입니다.

함수 프로토타입은 Function Caller 블록에 표시되는 입력 포트의 개수와 이름을 결정합니다. 함수 입력 인수를 통해 함수로 데이터를 전송하려면 신호 선을 입력 포트에 연결하십시오.

예를 들어, y = myfunction(u)는 Function Caller 블록에 하나의 입력 포트(u)를 만듭니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus

출력

모두 확장

함수가 반환하는 출력 인수에 대한 출력 신호입니다.

함수 프로토타입은 Function Caller 블록에 표시되는 출력 포트의 개수와 이름을 결정합니다. 함수 출력 인수를 통해 함수로부터 데이터를 수신하려면 신호 선이나 메시지 선을 출력 포트에 연결하십시오. Function Caller 블록은 함수 호출을 비동기식으로 실행 체크박스를 선택한 경우 메시지를 출력합니다.

예를 들어, y = myfunction(u)Function Caller 블록에 하나의 출력 포트(y)를 만듭니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus

파라미터

모두 확장

Function Caller 블록과 Simulink 함수 간 함수 프로토타입을 지정합니다.

참고

Simulink Function 블록에 정의된 함수를 호출하려면 다음을 충족해야 합니다.

  • 함수 호출 인수 이름은 함수 인수와 일치해야 합니다.

  • 함수 이름, 입력 인수, 출력 인수는 유효한 MATLAB® 식별자여야 합니다.

프로그래밍 방식의 사용법

블록 파라미터: FunctionPrototype
유형: 문자형 벡터
: 'y=f(u)' | function prototype
디폴트 값: 'y=f(u)'

정규화된 함수 이름으로, 문자형 벡터 또는 string형으로 지정됩니다.

함수 이름은 블록 아이콘에 표시됩니다. 블록 아이콘에서 파라미터 값을 클릭하고 새 값을 입력하여 이름을 편집할 수 있습니다.

참고

이 파라미터는 Function Caller 블록의 함수 프로토타입 파라미터와 자동으로 동기화됩니다.

정규화(qualification)을 통해 함수를 해석(결정)하는 방법에 대한 자세한 내용은 Scoped Simulink Function Blocks in Models 항목과 Scoped Simulink Function Blocks in Subsystems 항목을 참조하십시오.

프로그래밍 방식의 사용법

블록 파라미터: ScopedFunctionName
유형: 문자형 벡터
값: 'f' | 'Client.f' | function name
디폴트 값: 'f'

각 입력 인수에 대해 데이터형, 차원, 실수/복소수 여부(실수부 또는 허수부)를 결합한 MATLAB 표현식을 쉼표로 구분된 목록으로 지정합니다. 예시는 Argument Specification for Simulink Function Blocks 항목을 참조하십시오.

참고

이 사양은 Argument Inport 블록의 데이터형 파라미터로 지정된 Simulink Function 블록 데이터형과 일치해야 합니다.

프로그래밍 방식의 사용법

블록 파라미터: InputArgumentSpecifications
유형: 문자형 벡터
: '' | MATLAB expression
디폴트 값: ''

각 출력 인수에 대해 데이터형, 차원, 실수/복소수 여부(실수부 또는 허수부)를 결합한 MATLAB 표현식을 쉼표로 구분된 목록으로 지정합니다. 예시는 Argument Specification for Simulink Function Blocks 항목을 참조하십시오.

참고

이 사양은 Argument Outport 블록의 데이터형 파라미터로 지정된 Simulink Function 블록 데이터형과 일치해야 합니다.

프로그래밍 방식의 사용법

블록 파라미터: OutputArgumentSpecifications
유형: 문자형 벡터
: '' | MATLAB expression
디폴트 값: ''

Simulink 함수 호출 간의 시간 간격을 지정합니다.

기본적으로 블록은 모델의 블록 컨텍스트에 따라 샘플 시간을 상속합니다. 다른 샘플 시간을 설정하려면 샘플 시간 지정하기 항목에 있는 표의 샘플 시간 형식을 사용하여 값을 입력하십시오.

Function Caller 블록에 입력이 있는 경우 이는 소스 블록이 아니므로 샘플 시간을 -1로 설정해야 합니다.

프로그래밍 방식의 사용법

블록 파라미터: SampleTime
유형: string형 | 문자형 벡터
: 스칼라 | 벡터 | sample time
디폴트 값: '-1'

Function Caller 블록과 연결된 Simulink Function 블록을 비동기식으로 실행할지 여부를 지정합니다.

  • 비동기식 실행을 활성화하려면 함수 호출을 비동기식으로 실행을 선택하십시오.

    비동기식 실행은 호출자가 함수를 호출하면 함수가 우선 순위 순서에 따라 실행되고 호출자에게 출력 인수를 반환합니다. 함수는 스케줄 편집기에 정의된 순서에 따라 실행된 후 호출자에게 출력 인수를 반환합니다. 블록은 메시지 출력 포트를 사용하여 이러한 인수를 출력합니다.

    • 함수 출력 인수가 하나인 경우, 출력 인수가 메시지 페이로드가 됩니다.

    • 함수 출력 인수가 두 개 이상인 경우, Function Caller 블록은 출력 인수를 구조체로 묶으며, 이 구조체가 메시지 페이로드가 됩니다.

    즉시 모드에 있는 Message Triggered Subsystem 블록에 메시지 출력 포트를 연결하십시오. Message Triggered Subsystem 블록은 함수의 콜백 역할을 합니다.

  • 동기식 실행을 활성화하려면 함수 호출을 비동기식으로 실행 옵션을 선택 해제하십시오.

    동기식 실행은 호출자가 함수를 호출하면 함수가 즉시 실행되고 호출자에게 출력 인수를 반환합니다.

프로그래밍 방식의 사용법

블록 파라미터: AsynchronousCaller
유형: 문자형 벡터
: 'on' | 'off'
디폴트 값: 'off'

블록 특성

데이터형

Boolean | bus | double | enumerated | fixed point | integer | single

직접 피드스루

다차원 신호

가변 크기 신호

아니요

영점교차 검출

아니요

확장 기능

모두 확장

고정소수점 변환
Fixed-Point Designer™를 사용하여 고정소수점 시스템을 설계하고 시뮬레이션할 수 있습니다.

버전 내역

R2014b에 개발됨

모두 확장