Multiport Switch
제어 신호를 기반으로 출력 신호 선택
라이브러리:
Simulink /
Signal Routing
HDL Coder /
Signal Routing
Multiport Switch 블록의 대체 구성:
Index Vector
설명
Multiport Switch 블록은 이 블록에 대한 여러 입력 중 출력에 전달할 입력을 결정합니다. 이 블록은 첫 번째 입력의 값을 기반으로 이 결정을 내립니다. 첫 번째 입력은 제어 입력이고, 나머지 입력은 데이터 입력입니다. 제어 입력의 값에 따라 출력에 전달되는 데이터 입력이 결정됩니다.
Multiport Switch 블록과 Index Vector 블록은 동일한 블록의 대체 구성입니다.
Multiport Switch — 제어 신호를 기반으로 출력 신호 선택.
Index Vector — 첫 번째 입력의 값에 따라 서로 다른 입력 간 출력 전환.
다음 표에는 Multiport Switch 블록이 제어 입력을 해석하여 어떤 데이터 입력을 출력으로 전달할지 결정하는 방식이 요약되어 있습니다.
| 제어 입력 | 절단 | 데이터 포트 순서에 대한 설정 | 시뮬레이션 중의 블록 동작 | |
|---|---|---|---|---|
| 데이터 입력 선택을 위한 인덱싱 | 범위를 벗어난 조건 | |||
정수 값 | 안 함 | 0부터 시작하여 연속 | 0부터 시작하는 인덱싱 | 제어 입력이 |
1부터 시작하여 연속 | 1부터 시작하는 인덱싱 | 제어 입력이 | ||
인덱스 지정 | 사용자가 지정한 인덱스 | 제어 입력이 지정된 어떤 데이터 포트 인덱스와도 일치하지 않습니다. | ||
정수 값이 아님 | 블록은 값을 0 방향으로 반올림하여 정수가 되도록 합니다. | 0부터 시작하여 연속 | 0부터 시작하는 인덱싱 | 잘린 제어 입력이 |
1부터 시작하여 연속 | 1부터 시작하는 인덱싱 | 잘린 제어 입력이 | ||
인덱스 지정 | 사용자가 지정한 인덱스 | 잘린 제어 입력이 지정된 어떤 데이터 포트 인덱스와도 일치하지 않습니다. | ||
이 블록이 범위를 벗어난 조건을 처리하는 방법에 대한 자세한 내용은 블록이 범위를 벗어난 제어 입력을 처리하는 방법 항목을 참조하십시오.
Index Vector 블록으로 구성된 Multiport Switch 블록
Index Vector는 Multiport Switch 블록의 특수한 구성으로, 이 구성에서는 하나의 데이터 입력을 지정할 수 있으며 제어 입력이 0부터 시작합니다. 블록 출력은 입력 벡터에서 인덱스가 제어 입력과 일치하는 요소입니다. 예를 들어 입력 벡터가 [18 15 17 10]이고 제어 입력이 3이면, 인덱스 3(0부터 시작)과 일치하는 요소는 10이므로 이 값이 출력값이 됩니다.
Multiport Switch 블록이 Index Vector 블록처럼 동작하도록 구성하려면 데이터 포트 개수를 1로, 데이터 포트 순서를 0부터 시작하여 연속으로 설정하십시오.
블록이 범위를 벗어난 제어 입력을 처리하는 방법
intmax(‘int32’)보다 작은 정수 값이 포함된 입력에서는 이 값이 어떤 데이터 포트 인덱스와도 일치하지 않으면 입력은 범위를 벗어난 것입니다. 제어 입력이 정수 값이 아닌 경우에는, 해당 입력을 절단한 값이 어떤 데이터 포트 인덱스와도 일치하지 않으면 그 입력은 범위를 벗어난 것입니다. 두 경우 모두 블록 동작은 default case에 대한 데이터 포트 및 default case에 대한 진단 설정에 따라 달라집니다.
참고
제어 입력이 intmax(‘int32’)보다 크면 블록은 입력값을 정수로 래핑합니다.
다음 동작은 모델 시뮬레이션에만 적용됩니다.
| default case에 대한 데이터 포트 | default case에 대한 진단 | ||
|---|---|---|---|
| 안 함 | 경고 | 오류 | |
|
| 마지막 데이터 포트를 사용하고 경고나 오류를 보고하지 않습니다. | 마지막 데이터 포트를 사용하고 경고를 보고합니다. | 오류를 보고하고 시뮬레이션을 중지합니다. |
|
|
|
| 오류를 보고하고 시뮬레이션을 중지합니다. |
다음 동작은 모델에 대한 코드 생성에 적용됩니다.
| default case에 대한 데이터 포트 | default case에 대한 진단 | ||
|---|---|---|---|
| 안 함 | 경고 | 오류 | |
|
| 마지막 데이터 포트를 사용합니다. | 마지막 데이터 포트를 사용합니다. | 마지막 데이터 포트를 사용합니다. |
|
|
|
|
|
차원이 서로 다른 데이터 입력 사용하기
두 신호의 차원 개수나 차원 길이가 서로 다른 경우 신호를 Multiport Switch 블록에 대한 데이터 입력으로 사용할 수 있습니다. 블록 대화 상자에서 파라미터 서로 다른 데이터 입력 크기 허용을 선택하십시오. 이 경우 블록 출력은 가변 크기 신호입니다. 이 파라미터를 선택하지 않으면 블록에서 오류를 생성합니다.
이 파라미터에 대한 자세한 내용은 서로 다른 데이터 입력 크기 허용(가변 크기의 출력 신호 발생) 항목을 참조하십시오. 가변 크기 신호에 대한 자세한 내용은 Variable-Size Signal Basics 항목을 참조하십시오.
블록 동작을 결정하는 규칙
데이터 포트 개수를 사용하여 데이터 입력 개수를 지정할 수 있습니다.
데이터 포트 개수를 1로 설정하면, 블록은 Multiport Switch가 아니라 인덱스 선택기 또는 인덱스 벡터처럼 동작합니다. 자세한 내용은 Index Vector 블록으로 구성된 Multiport Switch 블록 항목을 참조하십시오.
데이터 포트 개수를 1보다 큰 정수로 설정하면, 블록은 Multiport Switch처럼 동작합니다. 블록 출력은 제어 입력의 값에 해당하는 데이터 입력입니다. 데이터 입력 중 하나 이상이 벡터인 경우 블록 출력은 벡터입니다. 이 경우 블록은 스칼라 입력을 벡터로 확장합니다.
모든 데이터 입력이 스칼라이면 출력은 스칼라입니다.
열거형 제어 포트에 대한 파라미터 설정 지침
Multiport Switch 블록의 제어 포트가 열거형이면 다음 지침을 따르십시오.
| 시나리오 | 수행할 작업 | 근거 |
|---|---|---|
| 열거형에 유효하지 않거나 범위를 벗어나거나 초기화되지 않은 값을 나타내는 값이 포함되어 있습니다. |
| 이 블록 구성은 열거형이 명시적으로 나타내는 유효하지 않은 값을 처리합니다. |
| 열거형에 유효한 열거형 값만 포함되어 있습니다. 데이터 입력 포트는 유효하지 않은 열거형 값을 가져올 수 없습니다. |
| 이 블록 구성은 불필요한 진단 동작을 방지합니다. |
| 블록에 열거형의 각 값에 대한 데이터 입력 포트가 없습니다. |
| 이 블록 구성은 데이터 입력 포트가 없는 열거형 값과 유효하지 않은 값을 함께 처리합니다. |
예제
확장 예제
제한 사항
Multiport Switch 블록에 대한 데이터 입력이 버스라면 두 버스의 요소 이름은 동일해야 합니다. 동일한 요소 이름을 사용하면 블록이 어느 입력 버스를 선택하더라도 출력 버스가 동일한 요소 이름을 갖게 됩니다. 모델이 이 요구 사항을 충족하도록 하려면 Bus 객체를 사용하여 버스를 정의하고 요소 이름 불일치 진단을
오류로 설정하십시오.버스로 구성된 배열의 경우 데이터 포트 개수를
2이상의 값으로 설정해야 합니다.
포트
입력
출력
파라미터
블록 특성
데이터형 |
|
직접 피드스루 |
|
다차원 신호 |
|
가변 크기 신호 |
|
영점교차 검출 |
|





