Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

초기화 함수

초기화 함수(InitFcn)는 모델 컴파일 시작 시 실행되거나 평가되는 콜백의 한 유형입니다. 모델(모델 InitFcn) 또는 블록(블록 InitFcn)에서 InitFcn을 사용할 수 있습니다.

참고

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

모델 InitFcn

모델 InitFcn 콜백은 사용된 모델 전용 파라미터 및 환경 설정을 초기화하는 데 사용됩니다.

참고

시뮬레이션 상태를 가져오려고 모델 InitFcn 콜백을 사용하는 것은 권장되지 않습니다. slbuild, SIL(software-in-the-loop) 또는 고속 액셀러레이터 모드에서 모델을 시뮬레이션할 경우 모델 InitFcn 콜백 상태가 'stopped'로 표시될 수 있습니다. 모델 InitFcn 콜백은 사용된 모델 전용 파라미터 및 환경 설정을 초기화하는 데만 사용해야 합니다.

모델 InitFcn 사용을 위한 모범 사례

  • 모델에 필요한 데이터를 초기화하는 데 모델 InitFcn을 사용하십시오. 예를 들면 다음을 초기화할 수 있습니다.

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

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

  • 자신 이외의 모델을 수정하기 위해 모델 InitFcn을 사용하지 마십시오. 이는 또한 Model 블록의 블록 InitFcn이 참조된 모델의 파라미터(및 구조)를 수정해서는 안 된다는 것을 의미합니다.

  • 참조된 모델에서 사용된 어떤 변수를 덮어쓰기 위해 최상위 모델에서 모델 InitFcn을 사용하지 마십시오. 예를 들어 최상위 모델과 참조된 모델이 변수 ‘k’를 사용하는 경우 최상위 모델의 모델 InitFcn은 참조된 모델의 ‘k’를 수정해서는 안 됩니다. 이러한 모델링 패턴에서는 다른 변수 이름을 사용하는 것이 좋습니다. 또는 데이터 사전을 사용할 수 있습니다.

  • 모델 InitFcn에서 시뮬레이션 명령을 사용하지 마십시오. 예를 들어 모델 InitFcn에서 set_param(ModelName, 'SimulationCommand', 'start') 또는 set_param(ModelName, 'SimulationCommand', 'update')와 같은 명령을 사용하는 것은 권장되지 않습니다.

  • 모델이 최상위 모델에서 참조되는 경우 add_line 또는 delete_line처럼 모델의 구조를 편집하기 위해 모델 InitFcn 함수를 사용하지 마십시오.

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

모델 InitFcn을 사용하는 Variant

모델 속성을 사용하여 모델에 대한 콜백을 정의할 수 있습니다. 예를 들면 PreLoadFcn, PostLoadFcn, InitFcn 콜백을 정의할 수 있습니다. 모델 속성은 모델 정보, 설명, 이력 및 콜백 함수를 보기 위해 사용됩니다. 속성 인스펙터를 사용하여 모델 버전 속성, 설명 이력 및 콜백 함수를 보고 편집할 수 있습니다. 모델 속성에 대한 자세한 내용은 Manage Model Properties 항목을 참조하십시오.

Variant Subsystem 블록 및 Variant Source 블록이 있는 모델을 고려해 보십시오. Variant - InitFcn을 예로 들 수 있습니다.

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

이와 유사하게, 이러한 파라미터는 PreLoadFcn 또는 PostLoadFcn에서 정의할 수도 있습니다.

그러나 InitFcn 콜백에서 파라미터가 정의된 경우 Clear 명령을 사용하여 MATLAB® 작업 공간을 지우면 작업 공간에 있는 항목이 지워졌다가 모델을 시뮬레이션할 때 다시 생성됩니다. PreLoadFcn 또는 PostLoadFcn에서 파라미터가 정의된 경우에는 지워진 항목이 다시 생성되지 않습니다.

블록 InitFcn

블록 InitFcn 콜백은 블록별 파라미터 및 설정을 초기화하는 데 사용됩니다.

블록 InitFcn 사용을 위한 모범 사례

  • 자신 이외 블록의 파라미터(또는 변수)를 수정하기 위해 블록 InitFcn을 사용하지 마십시오.

  • 부모 서브시스템 블록 또는 다른 자식 블록의 파라미터를 수정하기 위해 자식 블록에서 블록 InitFcn을 사용하지 마십시오. 그러나 부모 서브시스템 블록에서 블록 InitFcn을 사용하여 직계 자식 블록의 파라미터를 수정할 수 있습니다.

  • 블록 추가(add_block) 또는 블록 삭제(delete_block)와 같은 구조적 변경을 수행하기 위해 블록 InitFcn을 사용하지 마십시오.

  • 참조된 모델의 파라미터(및 구조)를 수정하기 위해 Model 블록에서 블록 InitFcn을 사용하지 마십시오.

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

관련 항목