Main Content

초기화 함수

초기화 함수(InitFcn)는 모델 컴파일 시작 시 실행되거나 평가되는 콜백의 한 유형입니다. InitFcn 콜백을 모델이나 블록 콜백으로 지정할 수 있습니다.

참고

Variant 제어는 모델 InitFcn 콜백에서만 정의할 수 있습니다.

모델 InitFcn 콜백

모델 InitFcn 콜백을 사용하여 다음과 같이 모델에 특화된 파라미터와 환경 설정을 초기화합니다.

  • 모델 파라미터에 사용되는 변수

  • 필요한 소프트웨어에 대한 라이선스 확인

Simulink® 툴스트립의 모델링 탭에서 모델 설정 화살표를 클릭한 다음 모델 속성을 클릭합니다. 모델 InitFcn 콜백은 모델 속성 대화 상자의 콜백 탭에 있습니다.

InitFcn in Model Properties dialog box

모델 InitFcn 콜백을 사용하여 다음과 같은 작업을 수행하지 마십시오.

  • 시뮬레이션 상태 가져오기. slbuild 함수로 모델을 시뮬레이션하거나 SIL(Software-in-the-Loop) 또는 고속 액셀러레이터 모드를 사용하면 모델 InitFcn 콜백 상태가 'stopped'로 표시될 수 있습니다.

  • 시뮬레이션 명령 실행하기. 예를 들어, 모델 InitFcn 콜백에서 set_param(ModelName,'SimulationCommand','start')set_param(ModelName,'SimulationCommand','update')와 같은 명령을 사용하면 안 됩니다.

  • 다른 모델 수정하기. 마찬가지로 Model 블록의 블록 InitFcn 콜백은 참조된 모델의 파라미터나 구조체를 수정하면 안 됩니다.

  • 참조된 모델에서 사용된 모든 변수 덮어쓰기. 예를 들어, 최상위 모델과 참조된 모델이 변수 k를 사용하는 경우 최상위 모델의 모델 InitFcn 콜백은 참조된 모델의 k를 수정하면 안 됩니다. 이러한 모델링 패턴에서는 다른 변수 이름이나 데이터 사전을 사용하십시오.

  • 모델의 구조체 편집하기(Variant 제어를 정의하는 작업은 제외). 예를 들어, 모델 InitFcn 콜백에서 add_line 또는 delete_line과 같은 함수를 사용하면 안 됩니다.

모델에 대해 InitFcn 콜백을 사용하는 경우 블록 파라미터에서 누락된 변수의 편집 시 검사가 전체 모델에 대해 비활성화됩니다.

Variant를 사용하는 모델 InitFcn 콜백의 예를 보려면 sldemo_variant_initFcn 모델을 엽니다. 그런 다음, 녹색 블록을 더블 클릭하여 권장 워크플로를 사용하는 모델을 엽니다. 열린 모델에는 Variant Subsystem 블록과 Variant Source 블록이 포함됩니다.

Model with Variant Subsystem and Variant Source blocks

이 모델에서 모델 InitFcn 콜백은 모델의 파라미터를 초기화하는 데 사용됩니다.

InitFcn that defines V, W, W.Value, and W.DataType

모델 PreLoadFcn 콜백이나 모델 PostLoadFcn 콜백에서 이러한 파라미터를 정의할 수 있지만 이러한 콜백은 모델을 불러오기 전이나 후에 실행됩니다. MATLAB® 작업 공간에서 파라미터를 지우고 모델을 시뮬레이션한다고 가정하겠습니다. 모델 PreLoadFcn 콜백과 모델 PostLoadFcn 콜백은 파라미터를 다시 만들지 않습니다. 모델 InitFcn 콜백에 파라미터를 정의하면 모델 업데이트 및 시뮬레이션에서 파라미터를 다시 만듭니다.

블록 InitFcn 콜백

블록 InitFcn 콜백을 사용하여 파라미터와 블록 설정을 초기화합니다.

블록을 마우스 오른쪽 버튼으로 클릭합니다. 그런 다음 속성을 클릭합니다. 블록 InitFcn 콜백은 블록 속성 대화 상자의 콜백 탭에 있습니다.

InitFcn in Block Properties dialog box

블록 InitFcn 콜백을 사용하여 다음과 같은 작업을 수행하지 마십시오.

  • 다른 블록의 파라미터(또는 변수) 수정하기. Subsystem 블록의 InitFcn 콜백을 사용하여 직계 자식 블록의 파라미터를 수정하는 경우는 예외입니다.

  • 구조적으로 변경하기. 예를 들어, 블록 InitFcn 콜백에서 add_block이나 delete_block과 같은 함수를 사용하면 안 됩니다.

  • 전역 변수 또는 다른 블록이 사용하는 모델 작업 공간의 변수 수정하기.

  • Model 블록이 참조하는 모델의 파라미터, 구조체 또는 설정 수정하기.

블록에 대해 InitFcn 콜백을 사용하는 경우 해당 블록에 대해 블록 파라미터의 누락된 변수에 대한 편집 시 검사가 비활성화됩니다.

관련 항목