Main Content

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

블록을 서브시스템으로 그룹화하기

모델의 크기와 복잡도가 증가하면 블록을 여러 서브시스템으로 그룹화하여 모델을 단순화할 수 있습니다. Subsystem 블록은 모델의 일부를 포함하는 블록입니다. 한 모델에 여러 서브시스템을 포함시키거나 서브시스템을 다른 서브시스템 내부에 포함시킬 수 있습니다.

서브시스템을 사용할 때의 효과는 다음과 같습니다.

  • 계층 구조가 설정됩니다. 여기서 Subsystem 블록과 이 서브시스템을 구성하는 블록은 서로 다른 계층에 있습니다. 서브시스템으로 들어갈 때마다 계층 구조에서 하나 더 깊은 수준으로 들어가는 것입니다.

  • 기능적으로 연관된 블록이 함께 유지됩니다.

  • 모델 창에 표시되는 블록의 수를 줄이는 데 도움이 됩니다.

  • 입력 및 출력이 있는 인터페이스가 설정됩니다.

서브시스템의 복사본을 만든 경우 해당 복사본은 소스 서브시스템에 독립적입니다. 한 모델 내에서나 여러 모델 간에 서브시스템의 내용을 재사용하려면 참조된 서브시스템, 참조된 모델 또는 사용자 지정 라이브러리의 블록에 링크된 서브시스템을 사용해 보십시오. 자세한 내용은 Explore Types of Model Components 항목을 참조하십시오.

실행이 다른 컴포넌트에 종속되는 서브시스템을 만들려면 조건부 실행 서브시스템을 사용하십시오. 자세한 내용은 Explore Types of Subsystems 항목을 참조하십시오.

서브시스템 만들기

기존 모델의 일부를 서브시스템으로 변환하거나 Subsystem 블록을 모델에 추가하고 채워 서브시스템을 생성할 수 있습니다.

블록 다이어그램의 일부를 서브시스템으로 변환하려면 다음을 수행하십시오.

  1. Simulink® 캔버스에서 서브시스템에 포함시키려는 모델 요소 위로 선택 상자를 끕니다. 선택 상자 옆에 줄임표가 나타납니다.

    A Transfer Fcn block and a Gain block are selected in the model, and an ellipsis is next to the selection box

  2. 줄임표에 커서를 올려 놓습니다. 작업 모음이 확장됩니다.

    The action bar is expanded, with the Create Subsystem option selected

  3. 작업 모음에서 서브시스템 만들기 또는 다른 서브시스템 옵션을 클릭합니다.

    In the block diagram, the Transfer Fcn block and a Gain block are replaced by a single Subsystem block. The signal line that connected to the input port of the Transfer Fcn block now connects to the input port of the Subsystem block, and the signal line that connected to the output port of the Gain block now connects to the output port of the Subsystem block.

선택 영역에 입력 포트와 출력 포트에 해당하는 블록이 포함된 경우 그러한 블록의 복사본이 새 서브시스템에 포함됩니다. 제어 포트에 해당하는 블록의 복사본은 새 서브시스템에 포함되지 않습니다.

서브시스템을 처음부터 만들려면 다음을 수행하십시오.

  1. 생성할 서브시스템 유형을 결정합니다. 서브시스템 유형에 대한 자세한 내용은 Explore Types of Subsystems 항목을 참조하십시오.

    제어기와 기타 독립 실행형 컴포넌트의 경우, 비가상 서브시스템 또는 참조된 모델을 사용하여 관련 블록 주위에 절대적 경계(hard boundary)를 정의하십시오. 절대적 경계를 미리 정의하면 해당 컴포넌트의 코드를 생성하고자 할 때 리팩터링에 많은 비용을 들이는 일을 피할 수 있습니다.

  2. Simulink 캔버스를 더블 클릭하여 빠른 삽입 메뉴를 엽니다.

  3. 검색 상자에 모델에서 구현하려는 서브시스템 유형에 해당하는 블록의 이름을 입력하기 시작합니다.

  4. 표시되는 목록에서 블록 이름을 선택합니다. 화살표 키를 사용하고 Enter 키를 누르거나 블록을 클릭합니다.

서브시스템의 내용을 보거나 편집하려면 해당 블록을 더블 클릭하십시오. 서브시스템을 종료하려면 Simulink 도구 모음의 왼쪽 끝 아래에서 the Back button을 클릭하십시오. 서브시스템이 있는 모델의 계층 구조를 탐색하는 방법에 대한 자세한 내용은 Navigate Model Hierarchy 항목을 참조하십시오.

Subsystem 블록의 내용은 모델과 함께 저장됩니다. 내용을 별도의 파일에 저장하려면 Subsystem 블록을 Subsystem Reference 블록으로 변환하십시오. 자세한 내용은 Create and Use Referenced Subsystems in Models 항목을 참조하십시오.

서브시스템을 해당 내용으로 바꾸기

Subsystem 블록을 해당 내용으로 바꾸려면 Subsystem 블록을 선택하십시오. 그런 다음 Simulink 툴스트립의 Subsystem 블록 탭에서 확장을 클릭합니다.

서브시스템의 내용이 표시되고, 대체되는 블록의 이름이 레이블로 지정됩니다.

In the top image, a Sine Wave block connects to a Subsystem block that connects to a Scope block. In the bottom image, the Subsystem block is replaced by its contents. The contents are in an area labeled Subsystem.

자세한 내용은 Expand Subsystem Contents 항목을 참조하십시오.

서브시스템이 아토믹인지 여부 지정하기

모델에 Subsystem 블록을 추가하면 해당 블록이 가상 서브시스템을 생성합니다. 가상 서브시스템은 블록 다이어그램을 시각적으로 구성하는 데 도움이 됩니다. 가상 서브시스템은 시뮬레이션에서 능동적인 역할을 수행하지 않으며 시뮬레이션 결과에 영향을 주지 않습니다.

반대로, 아토믹 서브시스템은 부모 모델을 실행할 때 단일 블록, 즉 아토믹 단위로 실행됩니다. 아토믹 서브시스템은 시스템 시뮬레이션에서 능동적인 역할을 수행합니다. 아토믹 서브시스템을 추가하거나 제거하면 모델 동작이 변경됩니다. 아토믹 서브시스템의 또 다른 이름은 비가상 서브시스템입니다.

참고

조건부 실행 서브시스템은 본질적으로 아토믹이고 비가상입니다. 서브시스템 유형에 대한 자세한 내용은 Explore Types of Subsystems 항목을 참조하십시오.

서브시스템을 확장할 예정이라면 서브시스템이 블록을 기능적으로 그룹화하도록 서브시스템을 아토믹으로 만드십시오. 서브시스템을 아토믹으로 미리 지정하면 나중에 컴포넌트의 코드를 생성하고자 할 때 리팩터링에 많은 비용을 들이는 일을 피할 수 있습니다. 서브시스템을 모델 참조로 변환하려면 아토믹 동작이 필요합니다.

서브시스템을 아토믹으로 만들려면 캔버스에서 Subsystem 블록을 선택하십시오. 그런 다음 Simulink 툴스트립의 Subsystem 블록 탭에서 아토믹으로 설정을 클릭합니다.

서브시스템을 아토믹으로 만든 결과를 보여주기 위해 이 블록 다이어그램은 두 개의 Subsystem 블록을 포함하여 해당 블록의 실행 순서를 표시합니다.

Block diagram with block execution order displayed

Discrete Cruise Controller라는 Subsystem 블록의 경우 블록 다이어그램은 실행 순서 4를 표시합니다. 이 서브시스템은 비가상이며 아토믹 동작이 있습니다. 이 서브시스템 내의 블록들은 현재 블록 다이어그램의 실행 순서에 포함되지 않습니다. 대신, 이 서브시스템 내의 블록들은 서로 상대적인 실행 순서를 갖습니다.

Car Dynamics라는 Subsystem 블록의 경우 블록 다이어그램은 실행 순서 {1,5,6,...}을 표시합니다. 이 서브시스템은 가상이며 아토믹 동작이 없습니다. 표시된 실행 순서는 이 서브시스템 내의 블록들에 대한 것으로, 부모 블록 다이어그램을 기준으로 합니다.

Subsystem block diagram with block execution order displayed

자세한 내용은 Control and Display Execution Order 항목을 참조하십시오.

서브시스템 읽기/쓰기 권한 지정하기

서브시스템에 대해 다음의 읽기/쓰기 권한을 지정할 수 있습니다.

  • ReadWrite — 서브시스템 내용을 열고 수정할 수 있습니다.

  • ReadOnly — 서브시스템을 열 수 있지만 수정할 수는 없습니다.

  • NotReadorWrite — 서브시스템을 열거나 수정할 수 없습니다.

서브시스템에 허용되는 액세스 수준을 제어하려면 Subsystem 블록의 읽기/쓰기 권한 파라미터를 설정하십시오.

참고

읽기 또는 쓰기 권한을 제한하더라도 액세스 제한 사항을 변경하는 것이 방지되지는 않습니다. 사유 정보를 숨기려면 보호된 모델을 사용해 보십시오. 자세한 내용은 Explore Protected Model Capabilities 항목을 참조하십시오.

서브시스템이 사용자 지정 라이브러리에 저장된 경우 부모 라이브러리 블록의 읽기/쓰기 권한 파라미터를 사용하여 블록의 링크된 인스턴스에 대한 액세스를 제어할 수 있습니다. 라이브러리 링크가 그대로 유지되는 한, 제한된 액세스를 통해 사람들이 서브시스템 내용을 보거나 수정하는 것을 방지할 수 있습니다. 단, 모델에서 해당 서브시스템을 사용하는 것은 여전히 허용됩니다. 자세한 내용은 링크된 블록 항목을 참조하십시오.

서브시스템 사용자 지정하기

다른 블록에서 하듯이 Subsystem 블록의 이름을 변경하고 블록을 수정할 수 있습니다.

예를 들면 다음과 같습니다.

  • 블록 마스크를 적용하여 서브시스템 내용을 숨길 수 있습니다. 그러면 자체 아이콘과 파라미터 대화 상자가 있는 아토믹 블록의 모양이 표시됩니다. 자세한 내용은 마스크 처리 기본 사항 항목을 참조하십시오.

  • 블록 콜백을 사용하여 서브시스템 모델링 동작(예: 오류 처리, 서브시스템 내의 블록이나 선 삭제 또는 서브시스템 닫기)에 대한 응답으로 동작을 수행할 수 있습니다. 콜백과 같은 블록 속성에 대한 자세한 내용은 Specify Block Properties 항목을 참조하십시오.

참고 항목

블록

함수

관련 항목