주요 콘텐츠

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

Subsystem

블록을 그룹화하여 모델 계층 구조 만들기

  • Subsystem block

라이브러리:
Simulink / Commonly Used Blocks
Simulink / Ports & Subsystems
HDL Coder / Ports & Subsystems

설명

Subsystem 블록은 모델이나 시스템 내 블록의 일부를 포함합니다. Subsystem 블록은 가상 서브시스템이나 비가상 서브시스템을 표현할 수 있습니다.

  • 가상 서브시스템은 블록 다이어그램을 시각적으로 구성하는 데 도움이 됩니다. 가상 서브시스템에서 블록을 그룹화하거나 가상 서브시스템을 확장하면 블록 경로가 변경되어 블록의 실행 순서에 영향을 미칠 수 있습니다. 가상 서브시스템은 조건부로 실행되거나 아토믹 단위로 실행되지 않습니다. 가상 서브시스템에는 체크섬이 없습니다.

  • Atomic Subsystem이라고도 하는 비가상 서브시스템은 블록 다이어그램을 기능적으로 구성하는 데 도움이 됩니다. 비가상 서브시스템에서 블록을 그룹화하거나 비가상 서브시스템을 확장하면 모델 동작이 변경됩니다. 각 비가상 서브시스템은 부모 모델을 실행할 때 단일 블록, 즉 아토믹 단위로 실행됩니다. 비가상 서브시스템의 블록은 연속적으로 실행됩니다.

비가상 서브시스템의 유형에 대한 자세한 내용은 서브시스템 유형 살펴보기 항목을 참조하십시오.

서브시스템이 가상인지 비가상인지 확인하려면 다음 전략 중 하나를 사용하십시오.

  • 블록의 테두리를 확인합니다. 가상 서브시스템을 표현하는 블록은 테두리가 얇습니다. 비가상 서브시스템을 표현하는 블록은 테두리가 두껍습니다.

    Virtual and nonvirtual subsystem blocks

  • get_param 함수를 사용하여 부울 블록 파라미터 IsSubsystemVirtual을 쿼리합니다.

Subsystem 블록의 포트는 서브시스템 내의 블록에 대응됩니다. 자세한 내용은 Connect Subsystems 항목을 참조하십시오.

Subsystem 블록은 서브시스템 Inport 블록과 Outport 블록을 통한 신호 레이블 전파를 지원합니다. 자세한 내용은 신호 레이블 전파 항목을 참조하십시오.

예제

모두 확장

Subsystem 블록을 추가한 다음 서브시스템에 내용을 추가하여 서브시스템을 만들 수 있습니다.

모델에 Subsystem 블록을 삽입합니다.

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

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

  2. 검색 상자에 블록의 이름을 입력하기 시작합니다. 예를 들어 subsystem을 입력합니다.

  3. 표시되는 목록에서 모델에 구현하려는 서브시스템 유형의 블록을 선택합니다. 화살표 키를 사용하고 Enter 키를 누르거나 블록을 클릭합니다.

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

기존 모델의 일부를 서브시스템으로 변환하여 서브시스템을 만들 수 있습니다.

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

Model contains a Transfer Fcn block and a Gain block selected, and an ellipsis next to the selection box

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

Ellipsis replaced by an action bar, with the Create Subsystem option selected

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

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.

서브시스템에서 들어가고 나가는 신호에 대한 인터페이스를 제공하기 위해, Subsystem 블록에는 입력 포트와 출력 포트에 해당하는 블록이 포함되어 있습니다.

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

Subsystem 블록을 해당 내용으로 바꾸려면 서브시스템을 확장하면 됩니다.

Subsystem 블록을 선택합니다. 그런 다음 Simulink 툴스트립의 Subsystem 블록 탭에서 확장을 클릭합니다.

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

The top image show a Sine Wave block connected to a Subsystem block connected to a Scope block. The bottom image show the same block diagram with the Subsystem block replaced by its contents. The contents are in an area labeled Subsystem.

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

서브시스템이 가상인지 확인하려면, get_param 함수를 부울 블록 파라미터 IsSubsystemVirtual과 함께 사용하십시오.

예제를 엽니다. 그런 다음 SubsystemExecution 모델을 엽니다.

open_system("SubsystemExecution");

discrete cruise controller라는 이름의 Subsystem 블록이 가상인지 확인합니다.

get_param("SubsystemExecution/discrete cruise controller",...
    "IsSubsystemVirtual")
ans = 
'off'

이 서브시스템은 비가상입니다. 블록 아이콘의 두꺼운 테두리는 서브시스템이 가상임을 나타냅니다.

car dynamics라는 이름의 Subsystem 블록이 가상인지 확인합니다.

get_param("SubsystemExecution/car dynamics","IsSubsystemVirtual")
ans = 
'on'

이 서브시스템은 가상입니다.

확장 예제

포트

입력

모두 확장

서브시스템 내에 Inport 또는 In Bus Element 같은 블록을 배치하면 Subsystem 블록에 외부 입력 포트가 추가됩니다.

로컬 환경으로부터 신호를 받으려면 Inport 블록이나 In Bus Element 블록을 사용하십시오.

자세한 내용은 Connect Subsystems 항목을 참조하십시오.

데이터형: half | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus | image
복소수 지원 여부:

재초기화 이벤트 포트는 서브시스템 재초기화 이벤트를 트리거하는 함수 호출 제어 신호를 제공하며, 이를 통해 서브시스템의 상태를 재설정합니다.

R2025a 이전 버전에서는, 서브시스템 안에 각 서브시스템 재초기화 이벤트에 해당하는 Reinitialize Function 블록이 있어야 합니다. 포트 이름을 지정하려면, Reinitialize Function 블록 안에 있는 Event Listener 블록에서 이벤트 이름 파라미터를 사용합니다. 자세한 내용은 Reinitialize States of Blocks in Subsystem 항목을 참조하십시오.

참고

R2025a부터는 더 이상 재초기화 이벤트 포트를 표시하기 위해 Atomic Subsystem 내에 Reinitialize Function 블록을 배치할 필요가 없습니다.

종속성

이 포트 유형을 활성화하려면 아토믹 단위로 처리를 선택한 다음 서브시스템 재초기화 포트 표시를 선택하십시오.

출력

모두 확장

서브시스템 내에 Outport 또는 Out Bus Element 같은 블록을 배치하면 Subsystem 블록의 출력 포트가 추가됩니다.

로컬 환경으로 신호를 보내려면 Outport 블록이나 Out Bus Element 블록을 사용하십시오.

자세한 내용은 Connect Subsystems 항목을 참조하십시오.

데이터형: half | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus | image
복소수 지원 여부:

파라미터

모두 확장

블록 파라미터를 대화형 방식으로 편집하려면 속성 인스펙터를 사용합니다. Simulink 툴스트립의 시뮬레이션 탭에 있는 준비 갤러리에서 속성 인스펙터를 선택하십시오.

기본

Subsystem 블록 아이콘에 포트 레이블을 표시하는 방법을 선택합니다.

  • 안 함 — 포트 레이블을 표시하지 않습니다.

  • FromPortIcon — 해당 포트 아이콘에 신호 이름이 표시되면 Subsystem 블록에 신호 이름을 표시합니다. 그렇지 않은 경우 포트 블록 이름을 표시하거나, 블록 이름이 디폴트 이름이면 포트 번호를 표시합니다.

  • FromPortBlockNameSubsystem 블록에 해당 포트 블록의 이름을 표시합니다.

  • SignalName — 포트에 연결된 신호가 명명된 경우 Subsystem 블록에 신호의 이름을 표시합니다. 그렇지 않은 경우 해당 포트 블록의 이름을 표시합니다.

Subsystem 블록의 포트 레이블 편집에 대한 자세한 내용은 Edit Port Labels on Subsystem Blocks 항목을 참조하십시오.

프로그래밍 방식의 사용법

프로그래밍 방식으로 블록 파라미터 값을 설정하려면 set_param 함수를 사용하십시오.

파라미터: ShowPortLabels
값: 'FromPortIcon' (디폴트 값) | 'FromPortBlockName' | 'SignalName' | 'none'

서브시스템의 내용에 대한 사용자 액세스를 제어합니다.

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

  • ReadOnly — 서브시스템을 열 수 있지만 수정할 수는 없습니다. 서브시스템이 블록 라이브러리에 있는 경우 서브시스템에 대한 링크를 만들고 열 수 있으며 서브시스템의 로컬 복사본을 만들고 수정할 수 있습니다. 하지만 원래 라이브러리 인스턴스의 내용을 수정하거나 권한을 변경할 수는 없습니다.

  • NoReadOrWrite — 서브시스템을 열거나 수정할 수 없습니다. 서브시스템이 라이브러리에 있는 경우 모델의 서브시스템에 대한 링크를 만들 수 있지만 열거나 수정하거나 권한을 변경하거나 서브시스템의 로컬 복사본을 만들 수는 없습니다.

읽기/쓰기 권한 파라미터가 NoReadOrWrite로 설정된 서브시스템의 내용을 보려고 시도해도 반응이 없습니다. 예를 들어, 이러한 서브시스템을 더블 클릭해도 해당 서브시스템이 열리지 않으며 어떤 메시지도 표시되지 않습니다.

프로그래밍 방식의 사용법

프로그래밍 방식으로 블록 파라미터 값을 설정하려면 set_param 함수를 사용하십시오.

파라미터: Permissions
값: 'ReadWrite' (디폴트 값) | 'ReadOnly' | 'NoReadOrWrite'

서브시스템이 실행되는 동안 오류가 발생할 경우 호출할 함수의 이름을 입력합니다.

서브시스템의 핸들과 오류 유형을 지정하는 문자형 벡터, 이렇게 두 인수가 함수에 전달됩니다. 지정된 함수가 없는 경우 서브시스템 실행 시 오류가 발생하면 일반 오류 메시지가 표시됩니다.

프로그래밍 방식의 사용법

프로그래밍 방식으로 블록 파라미터 값을 설정하려면 set_param 함수를 사용하십시오.

파라미터: ErrorFcn
값: '' (디폴트 값) | function name in quotes
데이터형: char | string

이 서브시스템에서 참조하는 작업 공간 변수의 이름과 연결을 맺어야 할지 여부를 선택합니다.

자세한 내용은 Symbol ResolutionSymbol Resolution Process 항목을 참조하십시오.

  • 모두 — 블록 파라미터 값과 Simulink 데이터 객체를 지정하는 데 사용되는 변수를 포함하여 이 서브시스템에서 사용되는 모든 작업 공간 변수의 이름과 연결을 맺습니다(예: Simulink.Signal 객체).

  • ExplicitOnly — 블록 파라미터 값, 데이터 저장소 메모리(블록이 없는 경우), 신호, 그리고 “연결이 맺어져야 함”으로 표시된 상태를 지정하는 데 사용되는 작업 공간 변수의 이름과만 연결을 맺습니다.

  • 안 함 — 어떠한 작업 공간 변수 이름과도 연결을 맺지 않습니다.

프로그래밍 방식의 사용법

프로그래밍 방식으로 블록 파라미터 값을 설정하려면 set_param 함수를 사용하십시오.

파라미터: PermitHierarchicalResolution
값: 'All' (디폴트 값) | 'ExplicitOnly' | 'None'

이 파라미터를 선택하면 블록 메서드의 실행 순서를 결정할 때 서브시스템이 하나의 단위로 처리됩니다.

  • off — 블록 메서드 실행 순서를 결정할 때 서브시스템의 모든 블록을 모델 계층 구조에서 서브시스템과 동일한 수준에 있는 것으로 처리합니다. 이로 인해 서브시스템 내부의 블록 메서드의 실행이 서브시스템 외부의 블록 메서드의 실행과 인터리빙될 수 있습니다.

  • on — 블록 메서드의 실행 순서를 결정할 때 서브시스템을 하나의 단위로 처리합니다. 예를 들어 서브시스템의 출력을 계산해야 할 때, Subsystem 블록과 동일한 수준에 있는 다른 블록의 출력 메서드를 호출하기 전에 서브시스템 내 모든 블록의 출력 메서드가 호출됩니다.

디폴트 값은 블록 구성에 따라 달라집니다. 예를 들어 Subsystem 블록의 디폴트 값은 off입니다. Atomic Subsystem 블록의 디폴트 값은 on입니다.

프로그래밍 방식의 사용법

프로그래밍 방식으로 블록 파라미터 값을 설정하려면 set_param 함수를 사용하십시오.

파라미터: TreatAsAtomicUnit
값: 'off' | 'on'

재초기화 이벤트 포트를 표시하려면 이 파라미터를 선택하십시오. 포트를 제거하려면 이 파라미터를 선택 해제하십시오.

종속성

이 파라미터를 활성화하려면 아토믹 단위로 처리를 선택하십시오.

프로그래밍 방식의 사용법

프로그래밍 방식으로 블록 파라미터 값을 설정하려면 set_param 함수를 사용하십시오.

파라미터: ShowSubsystemReinitializePorts
값: 'off' (디폴트 값) | 'on'

Atomic Subsystem을 포함하는 인위적 대수 루프의 제거를 시도합니다.

  • off — Atomic Subsystem을 포함하는 인위적 대수 루프를 제거하려고 시도하지 않습니다.

  • on — Atomic Subsystem을 포함하는 인위적 대수 루프를 제거하려고 시도합니다.

종속성

이 파라미터를 활성화하려면 아토믹 단위로 처리를 선택하십시오.

프로그래밍 방식의 사용법

프로그래밍 방식으로 블록 파라미터 값을 설정하려면 set_param 함수를 사용하십시오.

파라미터: MinAlgLoopOccurrences
값: 'off' (디폴트 값) | 'on'

서브시스템을 스케줄링하는 방법을 지정합니다.

  • 샘플 시간 — 이 서브시스템의 모든 블록이 동일한 레이트로 실행되어야 하는지 아니면 서로 다른 레이트로 실행될 수 있는지 지정합니다.

  • 주기적 분할 — 서브시스템을 주기적 분할로 스케줄링합니다. 분할 이름과 분할이 실행되는 레이트에 해당하는 샘플 시간을 지정합니다.

  • 비주기적 분할 — 서브시스템을 비주기적 분할로 스케줄링합니다. 분할 이름을 지정합니다.

종속성

이 파라미터를 활성화하려면 아토믹 단위로 처리를 선택하십시오.

프로그래밍 방식의 사용법

프로그래밍 방식으로 블록 파라미터 값을 설정하려면 set_param 함수를 사용하십시오.

파라미터: ScheduleAs
값: 'Sample time' (디폴트 값) | 'Periodic partition' | 'Aperiodic partition'

서브시스템의 분할 이름을 지정합니다.

종속성

이 파라미터를 활성화하려면 아토믹 단위로 처리를 선택하고 스케줄링 방법주기적 분할이나 비주기적 분할로 설정하십시오.

프로그래밍 방식의 사용법

프로그래밍 방식으로 블록 파라미터 값을 설정하려면 set_param 함수를 사용하십시오.

파라미터: PartitionName
값: '' (디폴트 값) | partition name in quotes
데이터형: char | string

이 서브시스템의 모든 블록이 동일한 레이트로 실행되어야 하는지 아니면 서로 다른 레이트로 실행될 수 있는지 지정합니다.

  • -1 — 상속된 샘플 시간입니다.

  • [Ts 0] — 주기적인 샘플 시간입니다.

서브시스템의 블록이 서로 다른 레이트로 실행될 수 있는 경우 서브시스템 샘플 시간을 상속됨(-1)으로 지정하십시오.

모든 블록이 동일한 레이트로 실행되어야 하는 경우 이 레이트에 해당하는 샘플 시간을 샘플 시간 파라미터 값으로 지정하십시오.

서브시스템의 블록 중 하나라도 -1 또는 inf 이외의 다른 샘플 시간이 지정되면, 모델을 업데이트하거나 시뮬레이션할 때 오류 메시지가 표시됩니다. 예를 들어 서브시스템의 모든 블록이 초당 5회 실행되어야 한다고 가정해 보겠습니다. 이 레이트를 보장하려면 서브시스템의 샘플 시간을 0.2로 지정하십시오. 이 예시에서 서브시스템의 블록 중 하나라도 0.2, -1 또는 inf 이외의 샘플 시간이 지정되면, 모델을 업데이트하거나 시뮬레이션할 때 오류가 표시됩니다.

종속성

이 파라미터를 활성화하려면 아토믹 단위로 처리를 선택하십시오.

프로그래밍 방식의 사용법

프로그래밍 방식으로 블록 파라미터 값을 설정하려면 set_param 함수를 사용하십시오.

파라미터: SystemSampleTime
값: '-1' (디폴트 값) | '[Ts 0]'

Variant 조건을 Variant Source 블록에서 전파받거나 Variant Sink 블록으로 전파할 때 서브시스템을 하나의 단위로 처리할지 여부를 지정합니다.

  • on — Variant 조건을 Variant Source 블록에서 전파받거나 Variant Sink 블록으로 전파할 때 서브시스템을 하나의 단위로 처리합니다. 예를 들어 서브시스템의 Variant 조건을 계산할 때 해당 조건이 서브시스템의 모든 블록에 전파됩니다.

  • off — 서브시스템의 Variant 조건을 결정할 때 서브시스템의 모든 블록이 모델 계층 구조에서 서브시스템 자신과 동일한 수준에 있는 것으로 처리합니다.

프로그래밍 방식의 사용법

프로그래밍 방식으로 블록 파라미터 값을 설정하려면 set_param 함수를 사용하십시오.

파라미터: TreatAsGroupedWhenPropagatingVariantConditions
값: 'on' (디폴트 값) | 'off'

종속성

이 파라미터를 활성화하려면 아토믹 단위로 처리 파라미터를 선택 해제하십시오.

코드 생성

코드 생성 탭의 파라미터를 사용하려면 Simulink Coder™ 라이선스 또는 Embedded Coder® 라이선스가 필요합니다.

아토믹(비가상) 서브시스템에 대해 생성할 코드 형식을 선택합니다.

  • 자동 — 모델에 존재하는 서브시스템 인스턴스의 유형과 수를 기반으로 최적의 형식이 선택됩니다.

  • 인라인 — 서브시스템이 무조건 인라인으로 처리됩니다.

  • 재사용 불가 함수파일 이름 옵션자동으로 설정된 경우 모델 파일 내에 개별 함수들이 패키징됩니다. 파일 이름 옵션서브시스템 이름 사용, 함수 이름 사용 또는 사용자 지정으로 설정되어 각기 다른 파일 이름이 사용되는 경우 개별 함수들이 각각의 개별 파일로 패키징됩니다.

    이 설정을 사용하는 서브시스템은 함수 인터페이스 파라미터 설정에 따라 인수를 가질 수 있는 함수를 생성합니다. 함수 이름 파라미터 및 파일 이름(확장자 없음) 파라미터를 각각 사용하여, 생성되는 함수와 파일의 이름을 지정할 수 있습니다. 이러한 함수는 재진입 함수가 아닙니다.

  • 재사용 가능 함수 — 모델에 서브시스템의 인스턴스가 여러 개 포함된 경우 서브시스템 코드 재사용을 허용하는 인수가 있는 함수가 생성됩니다.

    또한 이 옵션을 선택할 경우, 생성되는 함수는 참조된 모델 전체에 서브시스템의 인스턴스가 여럿 포함된 모델 참조 계층 구조의 생성된 코드에서 서브시스템 코드를 재사용하는 것을 허용하는 인수를 갖게 됩니다. 이 경우 서브시스템은 라이브러리에 있어야 합니다.

자세한 내용은 다음 항목을 참조하십시오.

디폴트 값은 블록 구성에 따라 달라집니다. 예를 들어, Subsystem 블록의 디폴트 값은 자동입니다. CodeReuseSubsystem 블록의 디폴트 값은 재사용 가능 함수입니다.

  • 서브시스템의 여러 인스턴스를 하나의 재사용 가능 함수로 표현하려는 경우 각각을 자동 또는 재사용 가능 함수로 지정할 수 있습니다. 두 옵션을 모두 사용하면 지정할 때마다 하나씩 두 개의 재사용 가능 함수가 생성되므로 둘 중 하나만 사용하는 것이 좋습니다. 이러한 옵션의 결과는 재사용이 불가능할 때만 다릅니다. 자동을 선택하면 서브시스템 코드의 함수나 파일 이름을 제어할 수 없습니다.

  • 재사용 가능 함수 옵션과 자동 옵션은 둘 다 서브시스템의 여러 인스턴스가 존재하는지 여부와 코드 재사용 가능 여부를 확인하려고 합니다. 각 옵션 동작의 차이점은 재사용이 불가능할 때 다음과 같이 나타납니다.

    • 자동을 선택하면 인라인 코드가 생성되며, 인라인이 금지되는 상황이라면 각 서브시스템 인스턴스에 대해 별개의 함수가 생성됩니다.

    • 재사용 가능 함수를 선택하면 모델의 각 서브시스템 인스턴스에 대해 인수를 포함한 별개의 함수가 생성됩니다.

  • 생성된 코드가 소스 컨트롤 상태에 있는 동안 재사용 가능 함수를 선택하는 경우 파일 이름 옵션서브시스템 이름 사용, 함수 이름 사용 또는 사용자 지정으로 설정하십시오. 그러지 않으면 모델을 수정할 때마다 코드 파일의 이름이 변경되어 파일에 소스 컨트롤을 적용할 수 없게 됩니다.

  • 자동 또는 인라인 이외의 옵션과 함께 모델 구성 파라미터 상태를 선택하면 코드 생성기는 별개의 출력 메서드와 업데이트 메서드를 생성합니다. 코드 생성기는 코드 생성 및 시뮬레이션을 위한 출력 메서드와 업데이트 메서드의 결합 사양을 고려하지 않습니다.

종속성

  • 이 파라미터는 코드 생성 시 Simulink Coder 라이선스가 필요합니다.

  • 이 파라미터를 활성화하려면 아토믹 단위로 처리를 선택하십시오.

프로그래밍 방식의 사용법

프로그래밍 방식으로 블록 파라미터 값을 설정하려면 set_param 함수를 사용하십시오.

파라미터: RTWSystemCode
값: 'Auto' | 'Inline' | 'Nonreusable function' | 'Reusable function'

소프트웨어가 서브시스템에 대해 생성하는 함수를 명명하는 방법을 선택합니다.

Embedded Coder 라이선스가 있는 경우 구성 파라미터 코드 생성 > 식별자 창의 옵션을 사용하여 함수 이름을 제어할 수 있습니다.

  • 자동 — 디폴트 명명 규칙인 model_subsystem()을 사용하여 고유한 함수 이름을 할당합니다. 여기서 model은 모델 이름이고 subsystem은 서브시스템의 이름이거나, 코드가 재사용되는 경우 동일한 서브시스템의 이름입니다.

    함수 패키징 파라미터에 재사용 가능 함수를 선택하고 모델 참조 계층 구조에 재사용 가능한 서브시스템의 인스턴스가 여럿 포함되어 있는 경우 서브시스템에 재사용 가능한 코드를 생성하려면 함수 이름 옵션자동으로 설정해야 합니다.

  • 서브시스템 이름 사용 — 서브시스템 이름을 함수 이름으로 사용합니다. 기본적으로, 함수 이름은 명명 규칙 model_subsystem을 사용합니다.

    서브시스템이 라이브러리 블록에 있고 서브시스템 파라미터 함수 패키징재사용 가능 함수로 설정되어 있는 경우 서브시스템 이름 사용 옵션을 설정하면 코드 생성기는 서브시스템 함수 이름과 파일 이름으로 라이브러리 블록 이름을 사용합니다.

  • 사용자 지정함수 이름 필드를 활성화합니다. 유효한 C 또는 C++ 함수 이름을 입력합니다. 이때 함수 이름은 고유해야 합니다.

자세한 내용은 Generate Subsystem Code as Separate Function and Files (Simulink Coder) 항목을 참조하십시오.

디폴트 값은 블록 구성에 따라 달라집니다. 예를 들어, Subsystem 블록의 디폴트 값은 자동입니다. CodeReuseSubsystem 블록의 디폴트 값은 서브시스템 이름 사용입니다.

종속성

  • 이 파라미터에는 Simulink Coder 라이선스가 필요합니다.

  • 이 파라미터를 활성화하려면 함수 패키징재사용 불가 함수 또는 재사용 가능 함수로 설정하십시오.

프로그래밍 방식의 사용법

프로그래밍 방식으로 블록 파라미터 값을 설정하려면 set_param 함수를 사용하십시오.

파라미터: RTWFcnNameOpts
값: 'Auto' | 'Use subsystem name' | 'User specified'

서브시스템 코드에 대해 고유하고 유효한 C 또는 C++ 함수 이름을 지정합니다.

Simulink Coder 코드 생성기가 자동 생성된 자체 이름을 할당하거나 서브시스템 이름을 사용하게 두지 않고 함수에 특정 이름을 지정하려면 이 파라미터를 사용하십시오. 자세한 내용은 Generate Subsystem Code as Separate Function and Files (Simulink Coder) 항목을 참조하십시오.

종속성

  • 이 파라미터에는 Simulink Coder 라이선스가 필요합니다.

  • 이 파라미터를 활성화하려면 함수 이름 옵션사용자 지정으로 설정하십시오.

프로그래밍 방식의 사용법

프로그래밍 방식으로 블록 파라미터 값을 설정하려면 set_param 함수를 사용하십시오.

파라미터: RTWFcnName
값: '' (디폴트 값) | function name in quotes
데이터형: char | string

서브시스템에 대한 함수를 생성할 때 적용되는, 함수의 개별 파일에 대한 명명 방법을 선택합니다.

  • 자동 — 서브시스템 구성과 모델에 있는 인스턴스 수에 따라 자동을 선택한 결과가 달라집니다.

    • 코드 생성기가 서브시스템에 대한 별개의 파일을 생성하지 않는 경우 서브시스템 코드는 서브시스템의 부모 시스템에서 생성된 코드 모듈 내에 생성됩니다. 서브시스템 부모가 모델 자체인 경우 model.c 또는 model.cpp 내에 서브시스템 코드가 생성됩니다.

    • 함수 패키징 파라미터에 재사용 가능 함수를 선택하고 생성된 코드가 소스 컨트롤 상태에 있는 경우 파일 이름 옵션자동 이외의 값을 지정해 보십시오. 이렇게 하면 생성된 파일 이름이 관련 없는 모델 수정으로 인해 변경되어 소스 컨트롤을 사용하여 구성을 관리할 때 문제가 되는 상황을 방지할 수 있습니다.

    • 함수 패키징 파라미터에 재사용 가능 함수를 선택하고 모델 참조 계층 구조에 재사용 가능한 서브시스템의 인스턴스가 여럿 포함되어 있는 경우 서브시스템에 재사용 가능한 코드를 생성하려면 파일 이름 옵션자동으로 설정해야 합니다.

  • 서브시스템 이름 사용 — 코드 생성기는 서브시스템(또는 라이브러리 블록) 이름을 파일 이름으로 사용하여 별개의 파일을 생성합니다.

    파일 이름 옵션서브시스템 이름 사용으로 설정되어 있으면, 모델에 Model 블록이 포함되어 있거나 모델에 대한 모델 참조 타깃이 생성되는 경우 서브시스템 파일 이름이 변형됩니다. 이런 경우 서브시스템의 파일 이름은 서브시스템 이름 앞에 모델 이름이 오는 형태로 구성됩니다.

  • 함수 이름 사용 — 코드 생성기는 함수 이름 옵션에서 지정한 함수 이름을 파일 이름으로 사용합니다.

  • 사용자 지정 — 이 옵션을 선택하면 파일 이름(확장자 없음) 텍스트 입력 필드가 활성화됩니다. 코드 생성기는 사용자가 입력하는 이름을 파일 이름으로 사용합니다. 파일 이름을 입력하되, .c 또는 .cpp 확장자(또는 기타 확장자)를 포함하지 마십시오. 이 파일 이름은 고유하지 않아도 됩니다.

    서브시스템 소스 파일 이름은 고유하지 않아도 되지만, 순환 종속 관계를 초래하는 고유하지 않은 이름을 입력하면 안 됩니다. 예를 들어, sys_a.h에는 sys_b.h가 포함되고, sys_b.h에는 sys_c.h가 포함되며, sys_c.h에는 sys_a.h가 포함되는 경우가 이에 해당합니다.

디폴트 값은 블록 구성에 따라 달라집니다. 예를 들어, Subsystem 블록의 디폴트 값은 자동입니다. CodeReuseSubsystem 블록의 디폴트 값은 함수 이름 사용입니다.

종속성

  • 이 파라미터에는 Simulink Coder 라이선스가 필요합니다.

  • 이 파라미터를 활성화하려면 함수 패키징재사용 불가 함수 또는 재사용 가능 함수로 설정하십시오.

프로그래밍 방식의 사용법

프로그래밍 방식으로 블록 파라미터 값을 설정하려면 set_param 함수를 사용하십시오.

파라미터: RTWFileNameOpts
값: 'Auto' | 'Use subsystem name' | 'Use function name' | 'User specified'

고유한 파일 이름을 지정할 필요가 없습니다. 하지만 순환 종속 관계를 초래하는 고유하지 않은 이름을 입력하지는 마십시오. 예를 들어, sys_a.h에는 sys_b.h가 포함되고, sys_b.h에는 sys_c.h가 포함되며, sys_c.h에는 sys_a.h가 포함되는 경우가 이에 해당합니다.

자세한 내용은 Generate Subsystem Code as Separate Function and Files (Simulink Coder) 항목을 참조하십시오.

종속성

  • 이 파라미터에는 Simulink Coder 라이선스가 필요합니다.

  • 이 파라미터를 활성화하려면 파일 이름 옵션사용자 지정으로 설정하십시오.

프로그래밍 방식의 사용법

프로그래밍 방식으로 블록 파라미터 값을 설정하려면 set_param 함수를 사용하십시오.

파라미터: RTWFileName
값: '' (디폴트 값) | filename in quotes
데이터형: char | string

생성된 함수에 인수를 사용하는 방법을 선택합니다.

  • void_void — 인수 없이 함수를 생성하고 데이터를 전역 변수로 전달합니다. 예를 들면 다음과 같습니다.

    void subsystem_function(void)

  • 인수 허용(최적화됨) — 데이터를 전역 변수로 전달하는 대신 인수를 사용하는 함수를 생성합니다. 이 옵션을 지정하면 전역 RAM이 줄어듭니다. 이 옵션을 사용하면 코드 크기가 감소하고 실행 속도가 향상되며 코드 생성기가 최적화를 추가로 적용하도록 할 수 있습니다. 예를 들면 다음과 같습니다.

    void subsystem_function(real_T rtu_In1, real_T rtu_In2, 
                            real_T *rty_Out1)

    일부 경우에는 최적화된 코드를 생성할 때 코드 생성기가 인수를 갖는 함수를 생성하지 않을 수도 있습니다.

  • 인수 허용(그래픽 인터페이스와 일치)Subsystem 그래픽 블록 인터페이스와 일치하는 인수를 사용하는 함수 인터페이스를 생성합니다. 생성된 함수 인터페이스는 예측 가능하며 변경되지 않습니다. 예측 가능한 인터페이스는 코드를 디버깅 및 테스트하고 외부 애플리케이션과 통합하는 데 유용할 수 있습니다. 예를 들어 모델에 Inport 블록 2개와 Outport 블록 2개가 있는 경우 생성되는 함수 인터페이스는 다음과 같습니다.

    void subsystem_function(real_T rtu_In1, real_T rtu_In2, 
                            real_T *rty_Out1, real_T *rty_Out2)

자세한 내용은 다음 항목을 참조하십시오.

종속성

  • 이 파라미터에는 Embedded Coder 라이선스와 ERT 기반 시스템 타깃 파일이 필요합니다.

  • 이 파라미터를 활성화하려면 함수 패키징재사용 불가 함수로 설정하십시오.

프로그래밍 방식의 사용법

프로그래밍 방식으로 블록 파라미터 값을 설정하려면 set_param 함수를 사용하십시오.

파라미터: FunctionInterfaceSpec
값: 'void_void' (디폴트 값) | 'Allow arguments (Optimized)' | 'Allow arguments (Match graphical interface)'

Atomic Subsystem에 대한 내부 데이터가 부모 모델로부터 분리되 서브시스템의 소유가 되는 서브시스템 함수 코드를 생성합니다.

  • off — Atomic Subsystem에 대한 내부 데이터가 부모 모델로부터 분리되어 서브시스템의 소유가 되는 서브시스템 함수 코드를 생성하지 않습니다.

  • on — Atomic Subsystem에 대한 내부 데이터가 부모 모델로부터 분리되어 서브시스템의 소유가 되는 서브시스템 함수 코드를 생성합니다. 서브시스템 데이터 구조체는 부모 모델 데이터 구조체와는 별개로 선언됩니다. 별도의 데이터를 갖는 서브시스템은 자체의 블록 I/O 및 DWork 데이터 구조체를 가집니다. 결과적으로, 서브시스템에 대해 생성된 코드를 더 쉽게 추적하고 테스트할 수 있습니다. 또한 데이터 분리에 의해 여러 데이터 구조체로 분할되기 때문에 보통은 모델 전체에서 전역 데이터 구조체의 최대 크기가 줄어들게 됩니다.

Atomic Subsystem의 모듈식 함수 코드를 생성하는 방법에 대한 자세한 내용은 Generate Modular Function Code for Nonvirtual Subsystems (Embedded Coder) 항목을 참조하십시오.

Atomic Subsystem에 메모리 섹션을 적용하는 방법에 대한 자세한 내용은 Override Default Memory Placement for Subsystem Functions and Data (Embedded Coder) 항목을 참조하십시오.

종속성

  • 이 파라미터에는 Embedded Coder 라이선스와 ERT 기반 시스템 타깃 파일이 필요합니다.

  • 이 파라미터를 활성화하려면 함수 패키징재사용 불가 함수로 설정하십시오.

프로그래밍 방식의 사용법

프로그래밍 방식으로 블록 파라미터 값을 설정하려면 set_param 함수를 사용하십시오.

파라미터: FunctionWithSeparateData
값: 'off' (디폴트 값) | 'on'

서브시스템 초기화 함수 및 종료 함수에 메모리 섹션을 적용하는 방법을 선택합니다.

  • 모델에서 상속 — 서브시스템 함수 코드에 루트 모델 메모리 섹션을 적용합니다.

  • 디폴트 값 — 서브시스템 시스템 코드에 메모리 섹션을 적용하지 않으며 모델 수준 사양은 무시됩니다.

  • 모델 메모리 섹션 중 하나를 서브시스템에 적용합니다.

종속성

  • 이 파라미터에는 Embedded Coder 라이선스와 ERT 기반 시스템 타깃 파일이 필요합니다.

  • 이 파라미터를 활성화하려면 함수 패키징재사용 불가 함수 또는 재사용 가능 함수로 설정하십시오.

프로그래밍 방식의 사용법

프로그래밍 방식으로 블록 파라미터 값을 설정하려면 set_param 함수를 사용하십시오.

파라미터: RTWMemSecFuncInitTerm
값: 'Inherit from model' (디폴트 값) | 'Default' | model memory section in quotes

Embedded Coder가 서브시스템 실행 함수에 메모리 섹션을 적용하는 방법을 선택합니다.

  • 모델에서 상속 — 서브시스템 함수 코드에 루트 모델 메모리 섹션을 적용합니다.

  • 디폴트 값 — 서브시스템 시스템 코드에 메모리 섹션을 적용하지 않으며 모델 수준 사양은 무시됩니다.

  • 모델 메모리 섹션 중 하나를 서브시스템에 적용합니다.

종속성

  • 이 파라미터에는 Embedded Coder 라이선스와 ERT 기반 시스템 타깃 파일이 필요합니다.

  • 이 파라미터를 활성화하려면 함수 패키징재사용 불가 함수 또는 재사용 가능 함수로 설정하십시오.

프로그래밍 방식의 사용법

프로그래밍 방식으로 블록 파라미터 값을 설정하려면 set_param 함수를 사용하십시오.

파라미터: RTWMemSecFuncExecute
값: 'Inherit from model' (디폴트 값) | 'Default' | model memory section in quotes

소프트웨어가 서브시스템 상수에 메모리 섹션을 적용하는 방법을 선택합니다.

  • 모델에서 상속 — 서브시스템 데이터에 루트 모델 메모리 섹션을 적용합니다.

  • 디폴트 값 — 서브시스템 데이터에 메모리 섹션을 적용하지 않으며 모델 수준 사양은 무시됩니다.

  • 모델 메모리 섹션 중 하나를 서브시스템에 적용합니다.

  • 여기서 지정하는 메모리 섹션이 생성된 코드의 해당 전역 데이터 구조체에 적용됩니다. Atomic Subsystem에 대해 생성된 전역 데이터 구조체에 대한 기본 정보는 Standard Data Structures (Simulink Coder) 항목을 참조하십시오.

  • 가능한 값은 모델 구성에 대해 설정한 메모리 섹션 패키지(있는 경우)에 따라 달라집니다. Control Data and Function Placement in Memory by Inserting Pragmas (Embedded Coder) 항목을 참조하십시오.

  • 패키지로 모델을 구성하지 않은 경우에는 모델에서 상속 값만 사용할 수 있습니다. 그 외의 경우에는 목록에 디폴트 값과 모델 패키지에 있는 모든 메모리 섹션이 포함됩니다.

  • 이러한 옵션은 지정된 서브시스템의 모델 메모리 섹션 설정을 재정의하는 데 유용할 수 있습니다. Atomic Subsystem에 메모리 섹션을 적용하는 방법에 대한 자세한 내용은 Override Default Memory Placement for Subsystem Functions and Data (Embedded Coder) 항목을 참조하십시오.

종속성

  • 이 파라미터에는 Embedded Coder 라이선스와 ERT 기반 시스템 타깃 파일이 필요합니다.

  • 이 파라미터를 활성화하려면 함수 패키징재사용 불가 함수로 설정하고 별도의 데이터를 갖는 함수 파라미터를 선택하십시오.

프로그래밍 방식의 사용법

프로그래밍 방식으로 블록 파라미터 값을 설정하려면 set_param 함수를 사용하십시오.

파라미터: RTWMemSecDataConstants
값: 'Inherit from model' (디폴트 값) | 'Default' | model memory section in quotes

서브시스템 내부 데이터에 메모리 섹션을 적용하는 방법을 선택합니다.

  • 모델에서 상속 — 서브시스템 데이터에 루트 모델 메모리 섹션을 적용합니다.

  • 디폴트 값 — 서브시스템 데이터에 메모리 섹션을 적용하지 않으며 모델 수준 사양은 무시됩니다.

  • 모델 메모리 섹션 중 하나를 서브시스템에 적용합니다.

  • 여기서 지정하는 메모리 섹션이 생성된 코드의 해당 전역 데이터 구조체에 적용됩니다. Atomic Subsystem에 대해 생성된 전역 데이터 구조체에 대한 기본 정보는 Standard Data Structures (Simulink Coder) 항목을 참조하십시오.

  • 가능한 값은 모델 구성에 대해 설정한 메모리 섹션 패키지(있는 경우)에 따라 달라집니다. Control Data and Function Placement in Memory by Inserting Pragmas (Embedded Coder) 항목을 참조하십시오.

  • 패키지로 모델을 구성하지 않은 경우에는 모델에서 상속 값만 사용할 수 있습니다. 그 외의 경우에는 목록에 디폴트 값과 모델 패키지에 있는 모든 메모리 섹션이 포함됩니다.

  • 이러한 옵션은 지정된 서브시스템의 모델 메모리 섹션 설정을 재정의하는 데 유용할 수 있습니다. Atomic Subsystem에 메모리 섹션을 적용하는 방법에 대한 자세한 내용은 Override Default Memory Placement for Subsystem Functions and Data (Embedded Coder) 항목을 참조하십시오.

종속성

  • 이 파라미터에는 Embedded Coder 라이선스와 ERT 기반 시스템 타깃 파일이 필요합니다.

  • 이 파라미터를 활성화하려면 함수 패키징재사용 불가 함수로 설정하고 별도의 데이터를 갖는 함수 파라미터를 선택하십시오.

프로그래밍 방식의 사용법

프로그래밍 방식으로 블록 파라미터 값을 설정하려면 set_param 함수를 사용하십시오.

파라미터: RTWMemSecDataInternal
값: 'Inherit from model' (디폴트 값) | 'Default' | model memory section in quotes

서브시스템 파라미터에 메모리 섹션을 적용하는 방법을 선택합니다.

  • 모델에서 상속 — 서브시스템 함수 코드에 루트 모델 메모리 섹션을 적용합니다.

  • 디폴트 값 — 서브시스템 시스템 코드에 메모리 섹션을 적용하지 않으며 모델 수준 사양은 무시됩니다.

  • 모델 메모리 섹션 중 하나를 서브시스템에 적용합니다.

  • 여기서 지정하는 메모리 섹션이 생성된 코드의 해당 전역 데이터 구조체에 적용됩니다. Atomic Subsystem에 대해 생성된 전역 데이터 구조체에 대한 기본 정보는 Standard Data Structures (Simulink Coder) 항목을 참조하십시오.

  • 가능한 값은 모델 구성에 대해 설정한 메모리 섹션 패키지(있는 경우)에 따라 달라집니다. Control Data and Function Placement in Memory by Inserting Pragmas (Embedded Coder) 항목을 참조하십시오.

  • 패키지로 모델을 구성하지 않은 경우에는 모델에서 상속 값만 사용할 수 있습니다. 그 외의 경우에는 목록에 디폴트 값과 모델 패키지에 있는 모든 메모리 섹션이 포함됩니다.

  • 이러한 옵션은 지정된 서브시스템의 모델 메모리 섹션 설정을 재정의하는 데 유용할 수 있습니다. Atomic Subsystem에 메모리 섹션을 적용하는 방법에 대한 자세한 내용은 Override Default Memory Placement for Subsystem Functions and Data (Embedded Coder) 항목을 참조하십시오.

종속성

  • 이 파라미터에는 Embedded Coder 라이선스와 ERT 기반 시스템 타깃 파일이 필요합니다.

  • 이 파라미터를 활성화하려면 함수 패키징재사용 불가 함수로 설정하고 별도의 데이터를 갖는 함수 파라미터를 선택하십시오.

프로그래밍 방식의 사용법

프로그래밍 방식으로 블록 파라미터 값을 설정하려면 set_param 함수를 사용하십시오.

파라미터: RTWMemSecDataParameters
값: 'Inherit from model' (디폴트 값) | 'Default' | model memory section in quotes

서브시스템 참조

참조하려는 서브시스템 파일을 지정합니다. 서브시스템 참조에 대한 자세한 내용은 Create and Use Referenced Subsystems in Models 항목을 참조하십시오.

종속성

이 파라미터에 액세스하려면 서브시스템 참조 섹션에서 변환을 클릭하십시오.

서브시스템을 참조된 서브시스템으로 변환하는 방법에 대한 자세한 내용은 Convert Subsystem to a Referenced Subsystem 항목을 참조하십시오.

프로그래밍 방식의 사용법

프로그래밍 방식으로 블록 파라미터 값을 설정하려면 set_param 함수를 사용하십시오.

파라미터: ReferencedSubsystem
값: '' (디폴트 값) | subsystem filename in quotes
데이터형: char | string

블록 특성

데이터형

Booleana | busa | doublea | enumerateda | fixed pointa | halfa | imagea | integera | singlea | stringa

직접 피드스루

아니요

다차원 신호

a

가변 크기 신호

a

영점교차 검출

아니요

a 실제 데이터형 또는 기능 지원은 블록 구현에 따라 달라집니다.

대체 구성

모두 확장

Atomic Subsystem 블록은 아토믹 단위로 처리 파라미터를 선택합니다.

라이브러리:
Simulink / Ports & Subsystems
HDL Coder / Ports & Subsystems

Subsystem Reference 블록은 서브시스템 파일(.slx)에 저장된 서브시스템을 참조합니다. 자세한 내용은 Create and Use Referenced Subsystems in Models 항목을 참조하십시오.

라이브러리:
Simulink / Ports & Subsystems

Enabled SubsystemEnable 블록을 포함하는 템플릿입니다.

라이브러리:
Simulink / Ports & Subsystems
HDL Coder / Ports & Subsystems

Triggered Subsystem트리거 유형상승으로 설정된 Trigger 블록을 포함하는 템플릿입니다.

라이브러리:
Simulink / Ports & Subsystems
HDL Coder / Ports & Subsystems

Enabled and Triggered SubsystemEnable 블록과 트리거 유형상승으로 설정된 Trigger 블록을 포함하는 템플릿입니다.

라이브러리:
Simulink / Ports & Subsystems

Resettable SubsystemReset 블록을 포함하는 템플릿입니다.

라이브러리:
Simulink / Ports & Subsystems

If Action SubsystemIf 블록으로 실행이 제어되는 서브시스템을 만들기 위한 템플릿입니다. 서브시스템에는 Action Port 블록이 포함되어 있습니다.

라이브러리:
Simulink / Ports & Subsystems

Switch Case Action SubsystemSwitch Case 블록으로 실행이 제어되는 서브시스템을 만들기 위한 템플릿입니다. 서브시스템에는 Action Port 블록이 포함되어 있습니다.

라이브러리:
Simulink / Ports & Subsystems

Function-Call Subsystem트리거 유형함수 호출로 설정된 Trigger 블록을 포함하는 템플릿입니다.

라이브러리:
Simulink / Ports & Subsystems

For Iterator SubsystemFor Iterator 블록을 포함하는 템플릿입니다.

라이브러리:
Simulink / Ports & Subsystems

While Iterator SubsystemWhile Iterator 블록을 포함하는 템플릿입니다.

라이브러리:
Simulink / Ports & Subsystems

For Each SubsystemFor Each 블록을 포함하는 템플릿입니다.

라이브러리:
Simulink / Ports & Subsystems
HDL Coder / Ports & Subsystems

R2022a 이후

Message Polling Subsystem트리거 유형메시지로 설정되고 트리거 시간샘플 시간 적중 시로 설정된 Trigger 블록을 포함하는 템플릿입니다. Trigger 블록은 Inport 블록을 대체합니다.

라이브러리:
Simulink / Messages & Events

R2022a 이후

Message Triggered Subsystem트리거 유형메시지로 설정되고 트리거 시간메시지 제공 시로 설정된 Trigger 블록을 포함하는 템플릿입니다. Trigger 블록은 Inport 블록을 대체합니다.

라이브러리:
Simulink / Messages & Events

CodeReuseSubsystem 블록은 아토믹 단위로 처리 파라미터를 선택하고 함수 패키징재사용 가능 함수로 설정합니다.

라이브러리:
Simulink / Ports & Subsystems

R2022b 이후

Neighborhood Processing SubsystemNeighborhood 블록을 포함하는 템플릿입니다.

라이브러리:
Simulink / Matrix Operations

  • Signal Viewing Subsystem은 외부 모드에서 타깃 시스템으로부터 수신한 신호의 처리와 확인을 캡슐화하는 Atomic Subsystem입니다. Atomic Subsystem을 Signal Viewing Subsystem으로 지정하려면 SimViewingDevice'on'으로 설정하십시오. 자세한 내용은 Signal Viewing Subsystems (Simulink Coder) 항목을 참조하십시오.

확장 기능

모두 확장

버전 내역

R2007a에 개발됨