Main Content

S-Function 콜백 메서드

콜백 메서드 개요

모든 S-Function은 콜백 메서드라고 하는 일련의 메서드를 구현해야 합니다. 이러한 메서드는 S-Function을 포함하는 모델을 시뮬레이션할 때 Simulink® 엔진이 호출합니다.

S-Function 콜백 메서드는 각 시뮬레이션 단계에서 필요한 작업을 수행합니다. 모델을 시뮬레이션하는 동안 각 시뮬레이션 단계에서 Simulink 엔진은 모델의 각 S-Function 블록에 대해 적절한 메서드를 호출합니다.

S-Function 콜백 메서드가 수행하는 작업은 다음과 같습니다.

  • 초기화 — 첫 번째 시뮬레이션 루프 전에 엔진이 다음을 포함하여 S-Function을 초기화합니다.

    • S-Function에 대한 정보가 포함된 시뮬레이션 구조체인 SimStruct 초기화

    • 입력 포트와 출력 포트의 개수 및 차원 설정

    • 블록 샘플 시간 설정

    • 저장 영역 할당

  • 다음 샘플 적중 계산 — 가변 샘플 시간 블록을 만든 경우 이 단계에서 다음 샘플 적중 시간을 계산합니다. 즉, 다음 스텝 크기를 계산합니다.

  • 주 시간 스텝에서 출력 계산 — 이 호출이 완료된 후에는 모든 블록 출력 포트가 현재 시간 스텝에 대해 유효합니다.

  • 주 시간 스텝에서 이산 상태 업데이트 — 이 호출에서 블록은 이산 상태 업데이트처럼 시간 스텝당 한 번 수행하는 작업들을 수행합니다.

  • 적분 — 연속 상태 및/또는 샘플링되지 않은 영점교차가 있는 모델에 적용됩니다. S-Function에 연속 상태가 있는 경우 엔진은 보조 시간 스텝에서 S-Function의 출력 및 도함수 부분을 호출합니다. 이는 솔버가 S-Function의 상태를 계산할 수 있도록 하기 위한 것입니다. S-Function에 샘플링되지 않은 영점교차가 있는 경우 엔진은 영점교차를 찾을 수 있도록 보조 시간 스텝에서 S-Function의 출력 및 영점교차 부분도 호출합니다.

    참고

    주 시간 스텝 및 보조 시간 스텝에 대한 설명은 Simulation Phases in Dynamic Systems 항목을 참조하십시오.

일부 콜백 메서드는 선택 사항입니다. 엔진은 S-Function이 콜백을 정의한 경우에만 선택적 콜백을 호출합니다.

C MEX S-Function에 대한 콜백 메서드

필수 콜백 메서드

C MEX S-Function은 다음 콜백 메서드를 구현해야 합니다.

  • mdlInitializeSizesSimStruct에 있는 다양한 파라미터의 크기를 지정합니다(예: 블록의 출력 포트 개수).

  • mdlInitializeSampleTimes – 블록의 샘플 시간을 지정합니다.

  • mdlOutputs – 블록의 출력을 계산합니다.

  • mdlTerminate – 시뮬레이션 종료 시 필요한 동작을 수행합니다. 필요한 동작이 없으면 이 함수를 스텁으로 구현할 수 있습니다.

선택적 콜백 메서드

다음 콜백 메서드는 선택 사항입니다. 엔진은 S-Function이 콜백을 정의한 경우에만 선택적 콜백을 호출합니다.

Level-2 MATLAB S-Function에 대한 콜백 메서드

필수 콜백 메서드

Level-2 MATLAB® S-Function은 다음 콜백 메서드를 구현해야 합니다.

  • setupSimStruct에 있는 다양한 파라미터의 크기를 지정합니다(예: 블록의 출력 포트 개수).

  • Outputs – 블록의 출력을 계산합니다.

  • Terminate – 시뮬레이션 종료 시 필요한 동작을 수행합니다. 필요한 동작이 없으면 이 함수를 스텁으로 구현할 수 있습니다.

콜백 메서드 작성에 대한 자세한 내용은 Write Level-2 MATLAB S-Functions 항목을 참조하십시오.

선택적 콜백 메서드

다음 콜백 메서드는 선택 사항입니다. 엔진은 S-Function이 콜백을 정의한 경우에만 선택적 콜백을 호출합니다.

참고 항목

| | |

관련 항목