주요 콘텐츠

Simulink 모델을 빌드할 때 일반적인 고려 사항

유효하지 않은 루프 방지하기

블록의 출력을 직접 또는 간접적으로(즉, 다른 블록을 통해) 블록 자신의 입력에 연결할 수 있으며, 이를 통해 루프가 생성됩니다. 루프는 매우 유용할 수 있습니다. 예를 들어 루프를 사용하여 미분 방정식을 다이어그램 방식으로 풀거나(Model a Continuous System 항목 참조) 피드백 제어 시스템을 모델링할 수 있습니다. 그러나 시뮬레이션할 수 없는 루프가 생성되는 경우도 있습니다. 유효하지 않은 루프의 일반적인 유형은 다음과 같습니다.

  • 유효하지 않은 함수 호출 연결을 만드는 루프 또는 함수 호출의 입력/출력 인수를 수정하려고 시도하는 루프(Function-Call Subsystem에 대한 설명은 Function-Call Subsystem 사용하기 항목 참조)

  • 자체 트리거되는 서브시스템 및 래치가 설정되지 않은 Triggered Subsystem이 포함된 루프(Triggered Subsystem에 대한 설명은 Simulink® 문서의 Triggered Subsystem 사용하기 항목 참조, 래치된 입력에 대한 설명은 Simulink 도움말 문서의 Inport 참조)

  • Action Subsystem이 포함된 루프

Triggered Subsystem과 Function-Call Subsystem 예제는 Simulink 서브시스템 의미 체계 항목을 참조하십시오.

이 예제들을 참고하면 자신의 모델에서 잘못된 루프가 생성되지 않도록 하는데 도움이 될 수 있습니다.

유효하지 않은 루프 감지하기

모델에 유효하지 않은 루프가 포함되어 있는지 감지하려면 툴스트립의 모델링 탭에서 모델 업데이트를 선택합니다. 모델에 유효하지 않은 루프가 포함되어 있으면 그러한 루프가 강조 표시됩니다. 다음 모델은 이를 보여줍니다.

그리고 진단 뷰어에 오류 메시지가 표시됩니다.

가려진 파일(Shadowed Files)

MATLAB® 경로에 동일한 이름의 모델 파일(예: mylibrary.slx)이 두 개 있으면 더 상위 경로에 있는 파일이 로드되고 더 하위 경로에 있는 파일은 "가려집니다(shadowed)".

가려진 파일 문제를 방지하려면 Simulink 기본 설정에서 MATLAB 경로에서 가려진 모델을 불러오지 않음을 켜십시오. Do not load models that are shadowed on the MATLAB path 항목을 참조하십시오.

Simulink에서 모델 파일을 검색할 때 사용하는 규칙은 MATLAB에서 사용하는 규칙과 비슷합니다. MATLAB 검색 경로란? 항목을 참조하십시오. 그러나 Simulink 블록 다이어그램과 MATLAB 함수가 처리되는 방식에는 중요한 차이점이 있습니다. MATLAB 경로상의 위치와 상관없이, 로드된 블록 다이어그램이 로드되지 않은 블록 다이어그램보다 우선합니다. 이는 Simulink의 점진적 로딩 방식의 일환으로, 성능상의 이유로 수행됩니다.

로드된 블록 다이어그램이 다른 블록 다이어그램보다 우선시되는 것은 중요한 의미를 가질 수 있습니다. 이는 특히 블록 다이어그램이 Simulink 창에 표시되지 않은 상태에서도 로드될 수 있기 때문입니다.

올바른 블록 다이어그램이 로드되었는지 확인하기

라이브러리와 참조된 모델을 사용할 때, 블록 다이어그램을 해당 창에 표시하지 않고도 로드할 수 있습니다. 블록 다이어그램이 메모리에 있는 상태에서 MATLAB 경로나 현재 MATLAB 폴더가 변경되면, 이 블록 다이어그램은 동일한 이름의 다른 파일을 사용하는 데 방해가 될 수 있습니다.

예를 들어 mylib 라이브러리가 있는 모델을 열고 다른 폴더로 변경한 다음, 같은 이름의 또 다른 mylib 라이브러리가 있는 다른 모델을 엽니다. 첫 번째 모델을 실행하면 두 번째 모델과 연결된 라이브러리가 사용됩니다.

이로 인해 다음과 같은 문제가 발생할 수 있습니다.

  • 시뮬레이션 오류

  • 라이브러리 링크가 있는 블록에 "연결이 맺어지지 않은 링크" 아이콘 표시

  • 잘못된 결과

문제를 감지하고 해결하기

가려진 파일 문제를 방지하려면 Simulink 기본 설정에서 MATLAB 경로에서 가려진 모델을 불러오지 않음을 켜면 됩니다. Do not load models that are shadowed on the MATLAB path 항목을 참조하십시오.

블록 다이어그램을 업데이트할 때, Simulink는 MATLAB 경로에서 해당 파일의 위치를 확인하여 동일한 이름의 다른 파일이 존재하고 그 파일이 MATLAB 경로에서 더 상위에 있는 것을 감지하면 경고를 발생시킵니다. 경고는 다음과 같습니다.

The file containing block diagram 'mylibrary' is shadowed 
by a file of the same name higher on the MATLAB path.
이는 mylibrary.slx라는 잘못된 파일이 사용되고 있다는 의미일 수 있습니다. 어느 mylibrary.slx 파일이 메모리에 로드되었는지 보려면 다음을 입력하십시오.

 which mylibrary

C:\work\Model1\mylibrary.slx
MATLAB 경로에서 이름이 mylibrary인 파일을 MATLAB 스크립트까지 포함하여 모두 보려면 다음을 입력하십시오.

which -all mylibrary

C:\work\Model1\mylibrary.slx
C:\work\Model2\mylibrary.slx  % Shadowed

mylibrary 블록 다이어그램을 닫고 Simulink가 MATLAB 경로에서 가장 상위에 있는 파일을 불러오도록 하려면 다음을 입력하십시오.
close_system('mylibrary')

모델 빌드에 대한 팁

다음은 모델을 빌드할 때 유용한 몇 가지 힌트입니다.

  • 메모리 문제

    일반적으로 메모리가 많을수록 성능이 향상됩니다.

  • 계층 구조 사용

    복잡한 모델의 경우, 모델에 서브시스템 계층 구조를 추가하면 도움이 될 때가 많습니다. 블록을 그룹화하면 모델의 최상위 수준이 간단해져 모델을 더 쉽게 읽고 이해할 수 있습니다. 자세한 내용은 블록을 서브시스템으로 그룹화하기 항목을 참조하십시오. 모델 브라우저는 복잡한 모델에 대한 유용한 정보를 제공합니다(Simulink 편집기 참조).

  • 모델 정리하기

    잘 구성되고 문서화된 모델은 더 쉽게 읽고 이해할 수 있습니다. 신호 레이블과 모델 주석을 사용하면 모델에서 수행되는 작업을 설명할 수 있습니다. 자세한 내용은 Signal Names and Labels 항목과 Annotate Models 항목을 참조하십시오.

  • 모델링 전략

    여러 모델에서 동일한 블록을 사용하는 경우, 이러한 블록들을 저장해두면 손쉽게 재사용할 수 있습니다. 예를 들어, 블록 모음을 사용자 지정 라이브러리에 저장할 수 있습니다. 그러면 새 모델을 빌드할 때 이 라이브러리에서 이 블록들을 복사할 수 있습니다.

    일반적으로 모델을 빌드할 때는 먼저 종이에 설계한 다음 컴퓨터에서 작성합니다. 그런 다음 블록을 조합해 모델을 만들 때는, 먼저 모델 창에 블록들을 추가한 후 이들을 연결하는 선을 추가합니다. 이렇게 하면 블록 라이브러리를 자주 열 필요가 줄어듭니다.

참고 항목

도움말 항목