주요 콘텐츠

Multiport Switch

제어 신호를 기반으로 출력 신호 선택

  • Multiport Switch block

라이브러리:
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부터 시작하는 인덱싱

제어 입력이 0보다 작거나, 데이터 입력 개수에서 1을 뺀 값보다 큽니다.

1부터 시작하여 연속

1부터 시작하는 인덱싱

제어 입력이 1보다 작거나, 데이터 입력 개수보다 큽니다.

인덱스 지정

사용자가 지정한 인덱스

제어 입력이 지정된 어떤 데이터 포트 인덱스와도 일치하지 않습니다.

정수 값이 아님

블록은 값을 0 방향으로 반올림하여 정수가 되도록 합니다.

0부터 시작하여 연속

0부터 시작하는 인덱싱

잘린 제어 입력이 0보다 작거나, 데이터 입력 개수에서 1을 뺀 값보다 큽니다.

1부터 시작하여 연속

1부터 시작하는 인덱싱

잘린 제어 입력이 1보다 작거나, 데이터 입력 개수보다 큽니다.

인덱스 지정

사용자가 지정한 인덱스

잘린 제어 입력이 지정된 어떤 데이터 포트 인덱스와도 일치하지 않습니다.

이 블록이 범위를 벗어난 조건을 처리하는 방법에 대한 자세한 내용은 블록이 범위를 벗어난 제어 입력을 처리하는 방법 항목을 참조하십시오.

Index Vector 블록으로 구성된 Multiport Switch 블록

Index VectorMultiport 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 블록의 제어 포트가 열거형이면 다음 지침을 따르십시오.

시나리오수행할 작업근거

열거형에 유효하지 않거나 범위를 벗어나거나 초기화되지 않은 값을 나타내는 값이 포함되어 있습니다.

  • 데이터 포트 순서인덱스 지정으로 설정하십시오.

  • 이 값을 마지막 데이터 포트에 사용하도록 데이터 포트 인덱스를 설정하십시오.

  • default case에 대한 데이터 포트마지막 데이터 포트로 설정하십시오.

이 블록 구성은 열거형이 명시적으로 나타내는 유효하지 않은 값을 처리합니다.

열거형에 유효한 열거형 값만 포함되어 있습니다. 데이터 입력 포트는 유효하지 않은 열거형 값을 가져올 수 없습니다.

  • default case에 대한 데이터 포트마지막 데이터 포트로 설정하십시오.

  • default case에 대한 진단안 함으로 설정하십시오.

이 블록 구성은 불필요한 진단 동작을 방지합니다.

블록에 열거형의 각 값에 대한 데이터 입력 포트가 없습니다.

  • default case에 대한 데이터 포트추가 데이터 포트로 설정하십시오.

이 블록 구성은 데이터 입력 포트가 없는 열거형 값과 유효하지 않은 값을 함께 처리합니다.

예제

모두 확장

이 예제에서는 데이터 포트에 대해 비연속적인 정수 값을 지정하는 Multiport Switch 블록을 사용하는 방법을 보여줍니다. 인덱스 값은 데이터 포트 레이블에 표시됩니다. 각 데이터 포트에 매핑된 값을 확인하기 위해 블록 대화 상자를 열 필요가 없습니다.

default case에 대한 데이터 포트Additional data port로 설정하면 * 레이블이 있는 추가 포트가 표시됩니다. 이 포트는 default case에 해당하며, 제어 입력이 데이터 포트 인덱스 3, 5, 0 또는 18과 일치하지 않을 때 적용됩니다. 이 예제에서 이런 경우가 발생하면 Multiport Switch 블록은 값 1을 출력합니다.

이 예제는 세 개의 데이터 포트에 대해 연속적인 순서와 0부터 시작하는 인덱싱을 사용하는 Multiport Switch 블록을 보여줍니다.

인덱스는 데이터 포트 레이블에 표시됩니다. 데이터 포트가 0부터 시작하는 인덱싱을 사용하는지 아니면 1부터 시작하는 인덱싱을 사용하는지 확인하기 위해 블록 대화 상자를 열 필요가 없습니다.

default case에 대한 데이터 포트Last data port로 설정하면, 마지막 데이터 포트의 레이블에 *가 포함됩니다(이 경우 레이블은 *,2임). * 다음에 쉼표가 오면 데이터 포트 인덱스에 값이 있음을 나타냅니다. 이 포트는 default case에 해당하며, 제어 입력이 데이터 포트 인덱스와 일치하지 않을 때 적용됩니다. 이 예제에서 제어 입력이 데이터 포트 인덱스 0, 1 또는 2와 일치하지 않으면 Multiport Switch 블록은 값 -0.1을 출력합니다.

sf_semantics_hotel_checkin 모델은 Multiport Switch 블록을 사용합니다. 이 블록은 세 개의 데이터 포트에 대해 연속적인 순서와 1부터 시작하는 인덱싱을 사용합니다.

블록 아이콘의 크기를 늘리면 인덱스가 데이터 포트 레이블에 표시됩니다. 데이터 포트가 0부터 시작하는 인덱싱을 사용하는지 아니면 1부터 시작하는 인덱싱을 사용하는지 확인하기 위해 블록 대화 상자를 열 필요가 없습니다.

sldemo_fuelsys 모델은 fuel_rate_control/fuel_calc/feedforward_fuel_rate 서브시스템의 Multiport Switch 블록을 사용합니다. 이 블록은 열거형 sld_FuelModes를 사용하여 3개의 데이터 포트 인덱스 LOW, RICH, DISABLED를 지정합니다.

default case에 대한 데이터 포트Last data port로 설정하면, 마지막 데이터 포트의 레이블에 *가 포함됩니다. * 다음에 쉼표와 줄임표가 오면 데이터 포트 인덱스에 값이 있음을 나타냅니다. 이 포트는 default case에 해당하며, 제어 입력이 데이터 포트 인덱스 LOW, RICH 또는 DISABLED와 일치하지 않을 때 적용됩니다. 이 경우 Multiport Switch 블록은 값 0을 출력합니다.

확장 예제

제한 사항

  • Multiport Switch 블록에 대한 데이터 입력이 버스라면 두 버스의 요소 이름은 동일해야 합니다. 동일한 요소 이름을 사용하면 블록이 어느 입력 버스를 선택하더라도 출력 버스가 동일한 요소 이름을 갖게 됩니다. 모델이 이 요구 사항을 충족하도록 하려면 Bus 객체를 사용하여 버스를 정의하고 요소 이름 불일치 진단을 오류로 설정하십시오.

  • 버스로 구성된 배열의 경우 데이터 포트 개수2 이상의 값으로 설정해야 합니다.

포트

입력

모두 확장

제어 신호는 고정소수점 및 열거형을 비롯해 Simulink®에서 지원하는 모든 데이터형이 될 수 있습니다. 제어 입력이 정수 값이 아니면 블록은 값을 0 방향으로 반올림하여 정수가 되도록 합니다.

열거형의 제어 신호에 대한 자세한 내용은 열거형 제어 포트에 대한 파라미터 설정 지침 항목을 참조하십시오.

이 블록이 범위를 벗어난 조건을 처리하는 방법에 대한 자세한 내용은 블록이 범위를 벗어난 제어 입력을 처리하는 방법 항목을 참조하십시오.

제한 사항

  • 제어 신호가 숫자형이면 제어 신호는 복소수일 수 없습니다.

  • 제어 신호가 열거형 신호이면 블록은 기본 정수 값을 사용하여 데이터 포트를 선택합니다.

  • 기본 정수 값이 데이터 포트에 대응하지 않으면 오류가 발생합니다.

  • 제어 입력이 정수 데이터형 범위를 초과하는 부동소수점 값이면 Multiport Switch 블록에서 런타임 오류가 발생합니다. 이 범위에는 InfNaN이 포함됩니다.

데이터형: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | image

첫 번째 데이터 입력으로, 스칼라, 벡터, 행렬 또는 N차원 배열로 지정됩니다. 모든 입력 데이터 신호는 Simulink에서 지원하는 모든 데이터형이 될 수 있습니다.

  • 모든 데이터 입력이 스칼라이면 출력은 스칼라입니다.

  • 데이터 입력 중 하나 이상이 벡터인 경우 블록 출력은 벡터입니다. 이 경우 블록은 스칼라 입력을 벡터로 확장합니다.

  • 스칼라가 아닌 두 신호의 차원 개수나 차원 길이가 서로 다른 경우 서로 다른 데이터 입력 크기 허용 체크박스를 선택하십시오. 자세한 내용은 차원이 서로 다른 데이터 입력 사용하기 항목을 참조하십시오.

  • 데이터 신호 중 하나라도 열거형이면 나머지 모든 신호도 동일한 열거형이어야 합니다.

데이터형: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | string | image

두 번째 데이터 입력으로, 스칼라, 벡터, 행렬 또는 N차원 배열로 지정됩니다. 모든 입력 데이터 신호는 Simulink에서 지원하는 모든 데이터형이 될 수 있습니다.

  • 모든 데이터 입력이 스칼라이면 출력은 스칼라입니다.

  • 데이터 입력 중 하나 이상이 벡터인 경우 블록 출력은 벡터입니다. 이 경우 블록은 스칼라 입력을 벡터로 확장합니다.

  • 스칼라가 아닌 두 신호의 차원 개수나 차원 길이가 서로 다른 경우 서로 다른 데이터 입력 크기 허용 체크박스를 선택하십시오. 자세한 내용은 차원이 서로 다른 데이터 입력 사용하기 항목을 참조하십시오.

  • 데이터 신호 중 하나라도 열거형이면 나머지 모든 신호도 동일한 열거형이어야 합니다.

종속성

이 포트를 활성화하려면 데이터 포트 개수를 1보다 큰 정수로 설정하십시오.

데이터형: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | string | image

N번째 데이터 입력으로, 스칼라, 벡터, 행렬 또는 N차원 배열로 지정됩니다. 모든 입력 데이터 신호는 Simulink에서 지원하는 모든 데이터형이 될 수 있습니다.

  • 모든 데이터 입력이 스칼라이면 출력은 스칼라입니다.

  • 데이터 입력 중 하나 이상이 벡터인 경우 블록 출력은 벡터입니다. 이 경우 블록은 스칼라 입력을 벡터로 확장합니다.

  • 스칼라가 아닌 두 신호의 차원 개수나 차원 길이가 서로 다른 경우 서로 다른 데이터 입력 크기 허용 체크박스를 선택하십시오. 자세한 내용은 차원이 서로 다른 데이터 입력 사용하기 항목을 참조하십시오.

  • 데이터 신호 중 하나라도 열거형이면 나머지 모든 신호도 동일한 열거형이어야 합니다.

종속성

N번째 입력 포트를 활성화하려면 데이터 포트 개수N보다 크거나 같은 정수 값으로 설정하십시오.

데이터형: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | string | image

범위를 벗어난 제어 신호 입력에 대한 입력 데이터 포트로, 스칼라, 벡터, 행렬 또는 N차원 배열로 지정됩니다. 모든 입력 데이터 신호는 Simulink에서 지원하는 모든 데이터형이 될 수 있습니다. 데이터 신호 중 하나라도 열거형이면 나머지 모든 신호도 동일한 열거형이어야 합니다. 두 신호의 차원 개수나 차원 길이가 서로 다른 경우 서로 다른 데이터 입력 크기 허용 체크박스를 선택하십시오. 자세한 내용은 차원이 서로 다른 데이터 입력 사용하기 항목을 참조하십시오.

종속성

범위를 벗어난 제어 신호 입력에 대한 추가 데이터 포트를 만들려면 default case에 대한 데이터 포트추가 데이터 포트로 설정하십시오. default case에 대한 데이터 포트마지막 데이터 포트로 설정하면, 제어 신호 값이 어떤 데이터 포트 인덱스와도 일치하지 않을 경우 블록은 출력에 마지막 데이터 포트를 사용합니다.

데이터형: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus | image

출력

모두 확장

블록은 제어 신호 값에 따라 데이터 입력 중 하나를 선택하여 출력합니다. 출력은 대응하는 데이터 입력과 동일한 차원을 가집니다. 출력 데이터형은 입력 포트 중에서 가장 큰 메모리 공간을 필요로 하는 입력 포트의 데이터형이 됩니다. 서로 다른 데이터 입력 크기 허용 체크박스를 선택하면 블록의 출력은 가변 크기 신호입니다.

데이터형: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point | enumerated | string | image

파라미터

모두 확장

기본

데이터 입력 포트의 순서 지정 유형을 지정합니다.

  • 0부터 시작하여 연속 — 블록이 연속적인 데이터 포트의 순서를 지정할 때 0부터 시작하는 인덱싱을 사용합니다. 이는 Index Vector 블록의 디폴트 값입니다.

  • 1부터 시작하여 연속 — 블록이 연속적인 데이터 포트의 순서를 지정할 때 1부터 시작하는 인덱싱을 사용합니다. 이는 Multiport Switch 블록의 디폴트 값입니다.

  • 인덱스 지정 — 블록이 데이터 포트의 순서를 지정할 때 비연속 인덱싱을 사용합니다.

  • 제어 포트가 열거형이면 인덱스 지정을 선택하십시오.

  • 0부터 시작하여 연속 또는 1부터 시작하여 연속을 선택할 경우 제어 포트가 열거형이 아닌지 확인하십시오. 이 구성은 더 이상 사용되지 않으며 오류를 생성합니다. 모델에서 업그레이드 어드바이저를 실행하여, 이 구성의 각 Multiport Switch 블록을 데이터 포트 인덱스를 명시적으로 지정하는 블록으로 바꿀 수 있습니다. 모델 업그레이드 항목을 참조하십시오.

  • 시뮬레이션 또는 코드 생성 시 블록에 사용되지 않는 데이터 포트가 포함되어 있는 상황은 피하십시오. 제어 포트가 고정소수점 데이터형이거나 내장 데이터형인 경우 모든 데이터 포트 인덱스가 해당 데이터형으로 표현 가능한지 확인하십시오. 그렇지 않으면 다음 블록 동작이 발생합니다.

    사용되지 않는 데이터 포트가 블록에 포함되어 있고 데이터 포트 순서가 다음과 같을 경우블록에서 생성되는 결과
    0부터 시작하여 연속 또는 1부터 시작하여 연속 경고
    인덱스 지정 오류

종속성

0부터 시작하여 연속 또는 1부터 시작하여 연속을 선택하면 데이터 포트 개수 파라미터가 활성화됩니다.

인덱스 지정을 선택하면 데이터 포트 인덱스 파라미터가 활성화됩니다.

프로그래밍 방식의 사용법

블록 파라미터: DataPortOrder
유형: 문자형 벡터
값: 'Zero-based contiguous' | 'One-based contiguous' | 'Specify indices'
디폴트 값: 'One-based contiguous'(Multiport Switch) | 'Zero-based contiguous'(Index Vector)

블록에 대한 데이터 입력 포트 개수를 지정합니다. 총 입력 포트 개수는 지정된 개수에 제어 신호 입력 포트의 경우 1을 더하고 default case에 대한 데이터 포트추가 데이터 포트로 설정한 경우에는 1을 한 번 더 더합니다.

종속성

이 파라미터를 활성화하려면 데이터 포트 순서0부터 시작하여 연속 또는 1부터 시작하여 연속으로 설정하십시오.

프로그래밍 방식의 사용법

블록 파라미터: Inputs
유형: 문자형 벡터
값: 1과 65536 사이의 정수
디폴트 값: '3'(Multiport Switch) | '1'(Index Vector)

데이터 포트에 대한 인덱스로 구성된 배열을 지정합니다. 블록 아이콘은 지정한 데이터 포트 인덱스와 일치하도록 변경됩니다.

  • 열거형의 모든 값에 해당하는 인덱스로 구성된 배열을 지정하려면 enumeration('name of the type')을 입력하십시오.

    예를 들어 MyColors가 열거형 이름인 경우 enumeration('MyColors')는 유효한 항목입니다.

  • 열거형의 특정 값을 입력하려면 type_name.enumerated_name 형식을 사용하십시오. 기본 정수 값을 입력하지 마십시오.

    예를 들어 enumeration({MyColors.Red, MyColors.Green, MyColors.Blue})는 유효한 항목입니다.

  • 하나의 데이터 포트에 둘 이상의 값이 매핑됨을 나타내려면 대괄호를 사용하십시오.

    예를 들어, 다음은 모두 유효한 항목입니다.

    • enumeration({MyColors.Red, MyColors.Green, [MyColors.Blue, MyColors.Yellow]})

    • enumeration({[3,5],0,18})

  • 제어 포트가 고정소수점 데이터형이거나 내장 데이터형인 경우 데이터 포트 인덱스에 대한 값은 해당 데이터형으로 표현 가능해야 합니다. 그렇지 않으면, 사용되지 않는 데이터 포트가 있음을 알리기 위해 컴파일 시 오류가 표시됩니다.

  • 제어 포트가 열거형 데이터형인 경우 데이터 포트 인덱스에 대한 값은 해당 데이터형의 열거형 값이어야 합니다.

  • 데이터 포트 인덱스에 열거형 값이 포함된 경우 제어 포트는 해당 데이터형이어야 합니다.

종속성

이 파라미터를 활성화하려면 데이터 포트 순서인덱스 지정으로 설정하십시오.

프로그래밍 방식의 사용법

블록 파라미터: DataPortIndices
유형: 문자형 벡터
값: 인덱스로 구성된 배열
디폴트 값: '{1,2,3}'

범위를 벗어난 입력에 마지막 데이터 포트를 사용할지 아니면 추가 포트를 사용할지를 지정합니다. 포트 이름 옆에 별표(*)가 있는 경우, 제어 포트 값이 어떤 데이터 포트 인덱스와도 일치하지 않을 때 블록이 사용하는 포트임을 나타냅니다.

  • 마지막 데이터 포트 — 제어 포트 값이 어떤 데이터 포트 인덱스와도 일치하지 않을 경우 블록은 출력에 마지막 데이터 포트를 사용합니다.

  • 추가 데이터 포트 — 제어 포트 값이 어떤 데이터 포트 인덱스와도 일치하지 않을 경우 블록은 출력에 추가 데이터 포트를 사용합니다.

이 파라미터를 추가 데이터 포트로 설정했고 데이터 포트 개수3인 경우 블록의 입력 포트 개수는 5입니다. 첫 번째 입력은 제어 포트이고 그다음 3개 입력은 데이터 포트이며 5번째 입력은 범위를 벗어난 입력에 사용되는 디폴트 포트입니다.

프로그래밍 방식의 사용법

블록 파라미터: DataPortForDefault
유형: 문자형 벡터
값: 'Last data port' | 'Additional data port'
디폴트 값: 'Last data port'

제어 포트 값이 어떤 데이터 포트 인덱스와도 일치하지 않을 경우 수행할 진단 동작을 지정합니다.

  • 안 함 — 응답을 생성하지 않습니다.

  • 경고 — 경고를 표시하고 시뮬레이션을 계속합니다.

  • 오류 — 시뮬레이션을 종료하고 오류를 표시합니다. 이 경우 default case에 대한 데이터 포트는 코드 생성에만 사용되고 시뮬레이션에는 사용되지 않습니다.

자세한 내용은 블록이 범위를 벗어난 제어 입력을 처리하는 방법 항목을 참조하십시오.

프로그래밍 방식의 사용법

블록 파라미터: DiagnosticForDefault
유형: 문자형 벡터
값: 'None' | 'Warning' | 'Error'
디폴트 값: 'Error'

샘플 간의 시간 간격을 지정합니다. 샘플 시간을 상속하려면 이 파라미터를 -1로 설정하십시오. 자세한 내용은 샘플 시간 지정하기 항목을 참조하십시오.

종속성

이 파라미터는 -1 이외의 값으로 설정한 경우에만 표시됩니다. 자세한 내용은 Blocks for Which Sample Time Is Not Recommended 항목을 참조하십시오.

프로그래밍 방식의 사용법

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

파라미터: SampleTime
값: "-1" (디폴트 값) | scalar or vector in quotes

신호 특성

모든 데이터 입력 포트의 데이터형을 동일하게 하려면 이 체크박스를 선택하십시오. 이 체크박스의 선택을 해제하면 블록은 데이터 포트 입력이 서로 다른 데이터형을 가질 수 있도록 허용합니다.

프로그래밍 방식의 사용법

블록 파라미터: InputSameDT
유형: 문자형 벡터
값: 'off' | 'on'
디폴트 값: 'off'

소프트웨어에서 검사하는 출력 범위의 하한 값입니다.

이 최솟값을 사용하여 다음 작업이 수행됩니다.

출력 최솟값은 실제 출력 신호를 포화시키거나 자르지 않습니다. 대신 Saturation 블록을 사용하십시오.

프로그래밍 방식의 사용법

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

파라미터: OutMin
값: '[]' (디폴트 값) | scalar in quotes

소프트웨어에서 검사하는 출력 범위의 상한 값입니다.

이 최댓값을 사용하여 다음 작업이 수행됩니다.

출력 최댓값은 실제 출력 신호를 포화시키거나 자르지 않습니다. 대신 Saturation 블록을 사용하십시오.

프로그래밍 방식의 사용법

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

파라미터: OutMax
값: '[]' (디폴트 값) | scalar in quotes

출력의 데이터형을 선택합니다. 유형은 상속되거나 직접 지정되거나 Simulink.NumericType과 같은 데이터형 객체로 표현될 수 있습니다.

상속된 옵션을 선택하면 블록은 다음과 같이 동작합니다.

  • 상속: MSB 유지 — 연산 결과의 전체 범위를 유지하는 데이터형을 선택합니다. 하지만 해당 유형(full type)이 임베디드 타깃 하드웨어에 적합하지 않은 경우 범위를 줄입니다.

    이 규칙으로 인해 오버플로가 생성되는 일은 없습니다.

  • 상속: LSB 유지 — 소프트웨어는 연산 정밀도를 유지하는 데이터형을 선택합니다. 하지만 전체 유형이 임베디드 타깃 하드웨어에 적합하지 않은 경우 범위를 줄입니다. 이 규칙으로 인해 오버플로가 생성될 수 있습니다.

    임베디드 타깃 설정을 변경할 경우 그러한 내부 규칙을 통해 선택된 데이터형이 변경될 수 있습니다. 항상 코드 효율성과 수치적 정확도를 동시에 최적화할 수 있는 것은 아닙니다. 규칙이 수치적 정확도 또는 성능의 특정 요건에 부합되지 않으면 다음 옵션 중 하나를 사용하십시오.

    • 명시적으로 출력 데이터형을 지정합니다.

    • 상속: 첫 번째 입력과 동일이라는 간단한 옵션을 사용합니다.

    • 명시적으로 fixdt(1,32,16) 같은 디폴트 데이터형을 지정한 다음, 모델의 데이터형을 제안하는 고정소수점 툴을 사용합니다. 자세한 내용은 fxptdlg (Fixed-Point Designer) 항목을 참조하십시오.

    • 고유한 상속 규칙을 지정하려면 상속: 역전파를 통해 상속을 사용한 후 Data Type Propagation 블록을 사용합니다. 이 블록의 사용 방법에 대한 예는 Signal Attributes 라이브러리의 Data Type Propagation Examples 블록에서 볼 수 있습니다.

  • 상속: 내부 규칙을 통해 상속 — Simulink가 임베디드 타깃 하드웨어의 속성을 고려하면서도 수치적 정확도와 성능, 생성된 코드 크기 간에 균형을 이루도록 데이터형을 선택합니다. 임베디드 타깃 설정을 변경할 경우 내부 규칙을 통해 선택된 데이터형이 변경될 수 있습니다. 항상 코드 효율성과 수치적 정확도를 동시에 최적화할 수 있는 것은 아닙니다. 내부 규칙이 수치적 정확도 또는 성능의 특정 요건에 부합되지 않으면 다음 옵션 중 하나를 사용하십시오.

    • 명시적으로 출력 데이터형을 지정합니다.

    • 명시적으로 fixdt(1,32,16) 같은 디폴트 데이터형을 지정한 다음, 모델의 데이터형을 제안하는 고정소수점 툴을 사용합니다. 자세한 내용은 fxptdlg (Fixed-Point Designer) 항목을 참조하십시오.

    • 고유한 상속 규칙을 지정하려면 상속: 역전파를 통해 상속을 사용한 후 Data Type Propagation 블록을 사용합니다. 이 블록의 사용 방법에 대한 예는 Signal Attributes 라이브러리의 Data Type Propagation Examples 블록에서 볼 수 있습니다.

  • 상속: 역전파를 통해 상속 — 구동 블록의 데이터형을 사용합니다.

  • 상속: 첫 번째 데이터 입력과 동일 — 첫 번째 데이터 입력 포트의 데이터형을 사용합니다.

프로그래밍 방식의 사용법

블록 파라미터: OutDataTypeStr
유형: 문자형 벡터
: 'Inherit: Inherit via internal rule | 'Inherit: Inherit via back propagation' | 'Inherit: Same as first input' | 'double' | 'single' | 'half' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | 'string' | Simulink.ImageType(480,640,3) | '<data type expression>'
디폴트 값: 'Inherit: Inherit via internal rule'

고정소수점 툴과 고정소수점 어드바이저에 의해 변경되지 않도록 이 블록의 출력 데이터형 설정을 잠그려면 선택합니다. 자세한 내용은 Use Lock Output Data Type Setting (Fixed-Point Designer) 항목을 참조하십시오.

프로그래밍 방식의 사용법

블록 파라미터: LockScale
유형: 문자형 벡터
: 'off' | 'on'
디폴트 값: 'off'

다음 반올림 모드 중 하나를 선택합니다.

올림(Ceiling)

양수와 음수를 모두 양의 무한대 방향으로 올림합니다. MATLAB® ceil 함수와 동일합니다.

수렴(Convergent)

숫자를 표현 가능한 가장 가까운 값으로 반올림합니다. 반올림 경계에 놓인 숫자인 경우 가장 가까운 짝수로 반올림합니다. Fixed-Point Designer™ convergent 함수와 동일합니다.

내림(Floor)

양수와 음수를 모두 음의 무한대 방향으로 내림합니다. MATLAB floor 함수와 동일합니다.

최근접(Nearest)

숫자를 표현 가능한 가장 가까운 값으로 반올림합니다. 반올림 경계에 놓인 숫자인 경우 양의 무한대 방향으로 올림합니다. Fixed-Point Designer nearest 함수와 동일합니다.

반올림(Round)

숫자를 표현 가능한 가장 가까운 값으로 반올림합니다. 반올림 경계에 놓인 숫자인 경우 양수는 양의 무한대 방향으로 올림하고 음수는 음의 무한대 방향으로 내림합니다. Fixed-Point Designer round 함수와 동일합니다.

최대단순(Simplest)

가능한 한 가장 효율적인 반올림 코드를 생성하기 위해 내림과 0 방향으로의 올림/내림 중에서 자동으로 선택합니다.

0 방향(Zero)

숫자를 0 방향으로 반올림합니다. MATLAB fix 함수와 동일합니다.

프로그래밍 방식의 사용법

블록 파라미터: RndMeth
유형: 문자형 벡터
: 'Ceiling' | 'Convergent' | 'Floor' | 'Nearest' | 'Round' | 'Simplest' | 'Zero'
디폴트 값: 'Floor'

참고 항목

자세한 내용은 반올림 모드 (Fixed-Point Designer) 항목을 참조하십시오.

오버플로 시 포화시킬지 아니면 래핑할지를 지정합니다.

  • on — 오버플로 시 데이터형이 표현할 수 있는 최솟값 또는 최댓값으로 포화됩니다.

  • off — 오버플로 시 데이터형이 표현할 수 있는 적절한 값으로 래핑됩니다.

예를 들어, 부호 있는 8비트 정수 int8이 표현할 수 있는 최댓값은 127입니다. 블록 연산 결과가 이 최댓값보다 크면 8비트 정수 오버플로가 발생합니다.

  • 이 파라미터를 선택하면 블록 출력이 127에서 포화됩니다. 마찬가지로 블록 출력은 최소 출력값 -128에서 포화됩니다.

  • 이 파라미터를 선택 해제하면 오버플로를 일으키는 값이 int8형으로 해석되어 의도치 않은 결과가 발생할 수 있습니다. 예를 들어, int8형으로 표현된 130(2진수 1000 0010)의 블록 결과는 -126입니다.

  • 모델에 오버플로가 발생할 가능성이 있고 생성된 코드에서 포화 보호를 명시적으로 지정하려는 경우 이 파라미터를 선택해 보십시오.

  • 생성된 코드의 효율성을 최적화하려면 이 파라미터를 선택 해제하는 것이 좋습니다. 이 파라미터를 선택 해제하면 블록이 범위를 벗어난 신호를 처리하는 방법을 과도하게 지정하는 일이 방지됩니다. 자세한 내용은 Troubleshoot Signal Range Errors 항목을 참조하십시오.

  • 이 파라미터를 선택하는 경우 출력이나 결과뿐만 아니라 블록의 모든 내부 연산에 포화가 적용됩니다.

  • 일반적으로 코드 생성 프로세스는 오버플로가 발생할 가능성이 없는 경우를 감지할 수 있습니다. 이 경우, 코드 생성기는 포화 코드를 생성하지 않습니다.

프로그래밍 방식의 사용법

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

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

서로 다른 크기의 입력 신호를 허용하려면 이 체크박스를 선택하십시오.

  • On — 서로 다른 크기의 입력 신호를 허용하고 입력 신호 크기를 출력 신호에 전파합니다. 이 모드에서 블록은 가변 크기 출력 신호를 생성합니다.

  • Off — 모든 비 스칼라 데이터 입력 신호의 크기가 동일해야 합니다.

프로그래밍 방식의 사용법

파라미터: AllowDiffInputSizes
유형: 문자형 벡터
값: 'on' | 'off'
디폴트 값: 'off'

지정할 데이터 범주를 선택합니다.

  • 상속 — 데이터형에 대한 상속 규칙. Inherit을 선택하면 오른쪽에 있는 두 번째 메뉴/텍스트 상자가 활성화되며, 여기서 상속 모드를 선택할 수 있습니다.

  • 내장 — 내장 데이터형. Built in을 선택하면 오른쪽에 있는 두 번째 메뉴/텍스트 상자가 활성화되며, 여기서 내장 데이터형을 선택할 수 있습니다.

  • 고정소수점 — 고정소수점 데이터형. 고정소수점을 선택하면 고정소수점 데이터형을 지정하는 데 사용할 수 있는 추가 파라미터가 활성화됩니다.

  • 표현식 — 데이터형으로 평가되는 표현식. Expression을 선택하면 오른쪽에 있는 두 번째 메뉴/텍스트 상자가 활성화되며, 여기에 표현식을 입력할 수 있습니다.

자세한 내용은 Specify Data Types Using Data Type Assistant 항목을 참조하십시오.

종속성

이 파라미터를 활성화하려면 데이터형 도우미를 표시합니다 버튼을 클릭하십시오.

이 신호에 맞는 데이터형 재정의 모드를 선택합니다.

  • 상속을 선택하면 Simulink는 컨텍스트, 즉 신호를 사용하는 Simulink의 블록, Simulink.Signal 객체 또는 Stateflow® 차트에서 데이터형 재정의 설정을 상속합니다.

  • 끄기를 선택하면 Simulink는 컨텍스트의 데이터형 재정의 설정을 무시하고 신호에 대해 지정된 고정소수점 데이터형을 사용합니다.

자세한 내용은 Simulink 문서의 Specify Data Types Using Data Type Assistant 항목을 참조하십시오.

종속성

이 파라미터를 활성화하려면 모드내장 또는 고정소수점으로 설정하십시오.

개별 데이터형에 대해 데이터형 재정의를 끌 수 있는 기능은 데이터형 재정의를 적용할 때 모델의 데이터형을 더욱 세밀하게 제어할 수 있도록 합니다. 예를 들어, 이 옵션을 사용하여 데이터형 재정의 설정과 관계없이 데이터형이 다운스트림 블록의 요구 사항을 충족하도록 할 수 있습니다.

고정소수점 데이터가 부호 있는 데이터인지 또는 부호 없는 데이터인지를 지정합니다. 부호 있는 데이터는 양수 값과 음수 값을 표현할 수 있지만, 부호 없는 데이터는 양수 값만 표현합니다.

  • 부호 있음 - 고정소수점 데이터를 부호 있음으로 지정합니다.

  • 부호 없음 - 고정소수점 데이터를 부호 없음으로 지정합니다.

자세한 내용은 Specify Data Types Using Data Type Assistant 항목을 참조하십시오.

종속성

이 파라미터를 활성화하려면 모드Fixed point로 설정하십시오.

고정소수점 데이터 스케일링 방법을 지정하면 오버플로 조건이 발생하지 않도록 방지하고 양자화 오차를 최소화할 수 있습니다. 자세한 내용은 Specifying a Fixed-Point Data Type 항목을 참조하십시오.

종속성

이 파라미터를 활성화하려면 모드고정소수점으로 설정하십시오.

양자화된 정수를 저장하는 워드의 비트 크기를 지정합니다. 자세한 내용은 Specifying a Fixed-Point Data Type 항목을 참조하십시오.

종속성

이 파라미터를 활성화하려면 모드고정소수점으로 설정하십시오.

고정소수점 데이터형의 소수부 길이를 양의 정수 또는 음의 정수로 지정합니다. 자세한 내용은 Specifying a Fixed-Point Data Type 항목을 참조하십시오.

종속성

이 파라미터를 활성화하려면 스케일링이진 소수점으로 설정하십시오.

고정소수점 데이터형의 기울기를 지정합니다. 자세한 내용은 Specifying a Fixed-Point Data Type 항목을 참조하십시오.

종속성

이 파라미터를 활성화하려면 스케일링기울기 및 편향으로 설정하십시오.

고정소수점 데이터형의 편향을 임의의 실수로 지정합니다. 자세한 내용은 Specifying a Fixed-Point Data Type 항목을 참조하십시오.

종속성

이 파라미터를 활성화하려면 스케일링기울기 및 편향으로 설정하십시오.

블록 특성

데이터형

Boolean | bus | double | enumerated | fixed point | half | integer | single | string

직접 피드스루

다차원 신호

가변 크기 신호

영점교차 검출

아니요

대체 구성

모두 확장

Index Vector 블록을 사용하면 데이터 입력 하나를 지정할 수 있습니다. 제어 입력은 0부터 시작합니다. 블록 출력은 입력 벡터에서 인덱스가 제어 입력과 일치하는 요소입니다.

라이브러리:
Simulink / Signal Routing
HDL Coder / Signal Routing

확장 기능

모두 확장

C/C++ 코드 생성
Simulink® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.

PLC 코드 생성
Simulink® PLC Coder™를 사용하여 Structured Text 코드를 생성할 수 있습니다.

고정소수점 변환
Fixed-Point Designer™를 사용하여 고정소수점 시스템을 설계하고 시뮬레이션할 수 있습니다.

버전 내역

R2006a 이전에 개발됨

모두 확장

참고 항목

|