Switch
두 번째 입력의 값에 따라 첫 번째 입력과 세 번째 입력 간 출력 전환

라이브러리:
Simulink /
Commonly Used Blocks
Simulink /
Signal Routing
HDL Coder /
Commonly Used Blocks
HDL Coder /
Signal Routing
설명
블록 입력의 유형
Switch 블록은 두 번째 입력의 값에 따라 첫 번째 입력 또는 세 번째 입력을 전달합니다. 첫 번째 입력과 세 번째 입력은 데이터 입력이라고 합니다. 두 번째 입력은 제어 입력이라고 합니다. 첫 번째 입력 전달 조건 파라미터와 임계값 파라미터를 사용하여 블록이 첫 번째 입력을 전달할 조건을 지정합니다.
알려진 출력 데이터형을 첫 번째 입력 포트 및 세 번째 입력 포트로 즉시 역전파하려면 출력 데이터형 파라미터를 상속: 내부 규칙을 통해 상속
으로 설정하고 모든 데이터 포트 입력의 데이터형이 동일해야 함 체크박스를 선택하십시오.
데이터 입력에 대한 제한 사항
서로 다른 데이터 입력 크기 허용을 선택하면 두 데이터 입력의 크기가 다를 수 있습니다. 그러나 이 블록은 가변 크기 입력 신호를 지원하지 않습니다. 따라서 시뮬레이션 중에 각 입력의 크기를 변경할 수 없습니다.
Switch 블록에 대한 데이터 입력이 버스라면 두 버스의 요소 이름은 동일해야 합니다. 동일한 요소 이름을 사용하면 블록이 어느 입력 버스를 선택하더라도 출력 버스가 동일한 요소 이름을 갖게 됩니다. 모델이 이 요구 사항을 충족하도록 하려면 Bus 객체를 사용하여 버스를 정의하고 요소 이름 불일치 진단을 오류
로 설정하십시오. 자세한 내용은 Model Configuration Parameters: Connectivity Diagnostics 항목을 참조하십시오.
블록 아이콘 모양
블록 아이콘을 사용하면 블록 대화 상자를 열지 않고도 첫 번째 입력 전달 조건 및 임계값을 식별할 수 있습니다.
다양한 블록 방향의 포트 순서에 대한 자세한 내용은 Identify Port Location on Rotated or Flipped Block 항목을 참조하십시오.
부울 제어 입력에 대한 블록 동작
제어 입력이 Boolean
신호인 경우 조건과 임계값의 다음 조합 중 하나를 사용하십시오.
u2 >= 임계값
, 여기서 임계값은1
과 같음u2 > 임계값
, 여기서 임계값은0
과 같음u2 ~= 0
그렇지 않으면 Switch 블록은 임계값을 무시하고 신호 라우팅에 부울 입력을 사용합니다. 제어 입력 1
의 경우 블록은 첫 번째 입력을 전달하고 제어 입력 0
의 경우 블록은 세 번째 입력을 전달합니다. 이 경우 블록 아이콘은 컴파일 시점 이후에 변경되며 T
및 F
를 사용하여 각각 첫 번째 입력 및 세 번째 입력에 레이블이 지정됩니다.
데이터형 지원
제어 입력은 고정소수점 및 열거형을 비롯해 Simulink®에서 지원하는 모든 데이터형이 될 수 있습니다. 제어 입력은 복소수일 수 없습니다. 제어 입력이 열거형인 경우 임계값 파라미터는 동일한 열거형 값이어야 합니다.
데이터 입력은 Simulink에서 지원하는 모든 데이터형이 될 수 있습니다. 데이터 입력 중 하나가 열거형이면 다른 입력도 동일한 열거형이어야 합니다.
출력이 열거형인 경우 두 데이터 입력 모두 출력과 동일한 열거형을 사용해야 합니다.
자세한 내용은 Simulink에서 지원되는 데이터형 항목을 참조하십시오.
예제
포트
입력
Port_1 — 첫 번째 데이터 입력 신호
스칼라 | 벡터
두 개의 데이터 입력 중 첫 번째 데이터 입력입니다. 블록은 첫 번째 또는 두 번째 데이터 입력을 출력에 전파합니다. 블록은 제어 입력을 기반으로 어느 입력을 전달할지 선택합니다. 첫 번째 입력 전달 조건 파라미터와 임계값 파라미터를 사용하여 제어 입력이 첫 번째 입력을 전달하기 위한 조건을 지정합니다.
데이터형: single
| double
| half
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
| enumerated
| bus
| image
Port_2 — 제어 입력 신호
스칼라 | 벡터
블록이 첫 번째 데이터 입력을 출력에 전달할지 아니면 두 번째 데이터 입력을 출력에 전달할지 결정하는 데 사용하는 제어 신호입니다. 제어 입력이 첫 번째 입력 전달 조건 파라미터에 설정된 조건을 충족하면 블록은 첫 번째 데이터 입력을 전달합니다. 그렇지 않으면 블록은 두 번째 데이터 입력을 전달합니다.
데이터형: single
| double
| half
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
| enumerated
| bus
| image
Port_3 — 두 번째 데이터 입력 신호
스칼라 | 벡터
두 개의 데이터 입력 중 두 번째 데이터 입력입니다. 블록은 첫 번째 또는 두 번째 데이터 입력을 출력에 전파합니다. 블록은 제어 입력을 기반으로 어느 입력을 전달할지 선택합니다. 첫 번째 입력 전달 조건 파라미터와 임계값 파라미터를 사용하여 제어 입력이 첫 번째 또는 두 번째 입력을 전달하기 위한 조건을 지정합니다.
데이터형: single
| double
| half
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
| enumerated
| bus
| image
출력
Port_1 — 출력 신호
스칼라 | 벡터
제어 신호 값을 기반으로 첫 번째 입력 신호나 두 번째 입력 신호로부터 전파된 출력 신호입니다.
데이터형: single
| double
| half
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
| enumerated
| bus
| image
파라미터
기본
첫 번째 입력 전달 조건 — 첫 번째 데이터 입력을 전달하기 위한 선택 기준
u2 > 임계값
(디폴트 값) | u2 >= 임계값
| u2 ~= 0
블록이 첫 번째 데이터 입력을 전달할 조건을 선택합니다. 제어 입력이 첫 번째 입력 전달 조건 파라미터에 설정된 조건을 충족하면 블록은 첫 번째 입력을 전달합니다. 그렇지 않으면 블록은 입력 Port_3
으로부터 두 번째 데이터 입력 신호를 전달합니다.
-
u2 >= 임계값
제어 입력이 임계값보다 크거나 같은지 확인합니다.
-
u2 > 임계값
제어 입력이 임계값보다 큰지 확인합니다.
-
u2 ~= 0
제어 입력이 0이 아닌지 확인합니다.
참고
Switch 블록은 열거형 데이터형에
u2 ~= 0
모드를 지원하지 않습니다.
팁
제어 입력이 부울 신호인 경우 조건과 임계값의 다음 조합 중 하나를 사용하십시오.
u2 >= 임계값
(여기서 임계값은 1)u2 > 임계값
(여기서 임계값은 0)u2 ~= 0
그렇지 않으면 Switch 블록은 임계값을 무시하고 신호 라우팅에 부울 값을 사용합니다. 값이 1이면 블록은 첫 번째 입력을 전달하고, 값이 0이면 블록은 세 번째 입력을 전달합니다. 또한 이 동작을 설명하는 경고 메시지가 MATLAB® 명령 창에 표시됩니다.
프로그래밍 방식의 사용법
블록 파라미터: Criteria |
유형: 문자형 벡터 |
값: 'u2 >= Threshold' | 'u2 > Threshold' | 'u2 ~= 0' |
디폴트 값: 'u2 > Threshold' |
임계값 — 기준에 사용되는 임계값
0
(디폴트 값) | scalar
블록이 출력에 전달할 입력을 결정하는 첫 번째 입력 전달 조건에 사용되는 임계값을 할당합니다. 임계값은 출력 최솟값보다 크고 출력 최댓값보다 작아야 합니다.
비 스칼라 임계값을 지정하려면 대괄호를 사용하십시오. 예를 들어, 다음은 유효한 항목입니다.
[1 4 8 12]
[MyColors.Red, MyColors.Blue]
종속성
첫 번째 입력 전달 조건을 u2 ~= 0
으로 설정하면 이 파라미터는 비활성화됩니다.
프로그래밍 방식의 사용법
블록 파라미터: Threshold |
유형: 문자형 벡터 |
값: 스칼라 |
디폴트 값: '0'
|
영점교차 검출 활성화 — 영점교차 검출 활성화
on
(디폴트 값) | off
영점교차 검출을 활성화하도록 선택합니다. 자세한 내용은 Zero-Crossing Detection 항목을 참조하십시오.
프로그래밍 방식의 사용법
블록 파라미터: ZeroCross |
유형: 문자형 벡터 | string형 |
값: 'off' | 'on' |
디폴트 값: 'on' |
신호 특성
데이터형 도우미를 사용하면 데이터 특성을 쉽게 설정할 수 있습니다. 데이터형 도우미를 사용하려면 데이터형 도우미를 표시합니다 를 클릭하십시오. 자세한 내용은 Specify Data Types Using Data Type Assistant 항목을 참조하십시오.
모든 데이터 포트 입력의 데이터형이 동일해야 함 — 데이터 포트의 데이터형이 동일해야 함
off
(디폴트 값) | on
모든 데이터 입력은 동일한 데이터형을 사용해야 합니다.
프로그래밍 방식의 사용법
블록 파라미터: InputSameDT |
유형: 문자형 벡터 |
값: 'off' | 'on' |
디폴트 값: 'off' |
출력 최솟값 — 범위 검사를 위한 최소 출력값
[]
(디폴트 값) | 스칼라
Simulink에서 검사하는 출력 범위의 하한 값입니다.
Simulink는 이 최솟값을 사용하여 다음 작업을 수행합니다.
일부 블록에 대해 파라미터 범위 검사(Specify Minimum and Maximum Values for Block Parameters 참조).
시뮬레이션 범위 검사(Specify Signal Ranges 및 Enable Simulation Range Checking 참조).
고정소수점 데이터형의 자동 스케일링.
모델에서 생성한 코드 최적화. 이 최적화 작업은 알고리즘의 코드를 제거하고, SIL 또는 외부 모드 같은 일부 시뮬레이션 모드의 결과에 영향을 줄 수 있습니다. 자세한 내용은 Optimize using the specified minimum and maximum values (Embedded Coder) 항목을 참조하십시오.
참고
출력 최솟값은 실제 출력 신호를 포화시키거나 자르지 않습니다. 대신 Saturation 블록을 사용하십시오.
프로그래밍 방식의 사용법
블록 파라미터: OutMin |
유형: 문자형 벡터 |
값: '[ ]' | 스칼라 |
디폴트 값: '[ ]' |
출력 최댓값 — 범위 검사를 위한 최대 출력값
[]
(디폴트 값) | 스칼라
Simulink에서 검사하는 출력 범위의 상한 값입니다.
Simulink는 이 최댓값을 사용하여 다음 작업을 수행합니다.
일부 블록에 대해 파라미터 범위 검사(Specify Minimum and Maximum Values for Block Parameters 참조).
시뮬레이션 범위 검사(Specify Signal Ranges 및 Enable Simulation Range Checking 참조).
고정소수점 데이터형의 자동 스케일링.
모델에서 생성한 코드 최적화. 이 최적화 작업은 알고리즘의 코드를 제거하고, SIL 또는 외부 모드 같은 일부 시뮬레이션 모드의 결과에 영향을 줄 수 있습니다. 자세한 내용은 Optimize using the specified minimum and maximum values (Embedded Coder) 항목을 참조하십시오.
참고
출력 최댓값은 실제 출력 신호를 포화시키거나 자르지 않습니다. 대신 Saturation 블록을 사용하십시오.
프로그래밍 방식의 사용법
블록 파라미터: OutMax |
유형: 문자형 벡터 |
값: '[ ]' | 스칼라 |
디폴트 값: '[ ]' |
출력 데이터형 — 출력 데이터형
상속: 내부 규칙을 통해 상속
(디폴트 값) | 상속: 역전파를 통해 상속
| 상속: 첫 번째 입력과 동일
| 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
| Enum: <class name>
| <데이터형 표현식>
| Simulink.ImageType(480,640,3)
출력 데이터형을 지정합니다.
-
상속: 내부 규칙을 통해 상속
다음 규칙을 사용하여 출력 데이터형을 결정합니다.
첫 번째 입력 포트의 데이터형 출력 데이터형 세 번째 입력 포트보다 더 큰 양수 범위를 가짐 첫 번째 입력 포트에서 상속됨 세 번째 입력 포트와 동일한 양수 범위를 가짐 세 번째 입력 포트에서 상속됨 세 번째 입력 포트보다 더 작은 양수 범위를 가짐 부울 값이고 세 번째 입력 포트는 uint8
형임uint8
형이고 세 번째 입력 포트는 부울 값임부울 값이고 다른 입력 포트는 int8
형임부울 값으로 설정됨 uint8
형이고 다른 입력 포트는 부울 값임두 입력 포트의 데이터형 출력 데이터형 입력 유형 중 하나는 부울 값이고 다른 하나는 uint8
형임세 번째 데이터 포트의 데이터형으로 설정됨 입력 유형 중 하나는 부울 값이고 다른 하나는 int8
형임부울 값으로 설정됨 -
상속: 역전파를 통해 상속
구동 블록의 데이터형을 사용합니다.
-
상속: 첫 번째 입력과 동일하게 상속
첫 번째 데이터 입력 포트의 데이터형을 사용합니다.
-
double
출력 데이터형을
double
형으로 지정합니다.-
single
출력 데이터형을
single
형으로 지정합니다.-
half
출력 데이터형을
half
형으로 지정합니다.-
int8
출력 데이터형을
int8
형으로 지정합니다.-
uint8
출력 데이터형을
uint8
형으로 지정합니다.-
int16
출력 데이터형을
int16
형으로 지정합니다.-
uint16
출력 데이터형을
uint16
형으로 지정합니다.-
int32
출력 데이터형을
int32
형으로 지정합니다.-
uint32
출력 데이터형을
uint32
형으로 지정합니다.-
int64
출력 데이터형을
int64
형으로 지정합니다.-
uint64
출력 데이터형을
uint64
형으로 지정합니다.-
fixdt(1,16,0)
출력 데이터형을 고정소수점
fixdt(1,16,0)
으로 지정합니다.-
fixdt(1,16,2^0,0)
출력 데이터형을 고정소수점
fixdt(1,16,2^0,0)
으로 지정합니다.-
Enum: <class name>
열거형 데이터형을 사용합니다(예:
Enum: BasicColors
).-
Simulink.ImageType(480,640,3)
Computer Vision Toolbox™가 있을 경우
Simulink.ImageType
(Computer Vision Toolbox) 객체를 사용합니다.-
string
출력 데이터형을 string형으로 지정합니다.
-
<데이터형 표현식>
데이터형 객체를 사용합니다(예:
Simulink.NumericType
).
팁
출력이 열거형인 경우 두 데이터 입력 모두 출력과 동일한 열거형을 사용해야 합니다.
프로그래밍 방식의 사용법
블록 파라미터: 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)' | Enum: <class name> | Simulink.ImageType(480,640,3) | 'string' | '<data type expression>' |
디폴트 값: 'Inherit: Inherit via internal rule' |
고정소수점 툴에 의해 변경되지 않도록 데이터형 설정 잠금 — 고정소수점 툴에 의해 데이터형이 재정의되지 않도록 방지
off
(디폴트 값) | on
블록에 지정한 데이터형이 고정소수점 툴에 의해 재정의되지 않도록 방지하려면 이 파라미터를 선택합니다. 자세한 내용은 Lock the Output Data Type Setting (Fixed-Point Designer) 항목을 참조하십시오.
프로그래밍 방식의 사용법
블록 파라미터: LockScale |
유형: 문자형 벡터 |
값: 'off' | 'on' |
디폴트 값: 'off' |
정수 반올림 모드 — 고정소수점 연산의 반올림 모드 지정
내림(Floor)
(디폴트 값) | 올림(Ceiling)
| 가장 가까운 짝수로(Convergent)
| 양의 방향 정수로(Nearest)
| 반올림(Round)
| 최대단순(Simplest)
| 0 방향의 가장 가까운 정수로(Zero)
다음 반올림 모드 중 하나를 선택합니다.
올림(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' |
참고 항목
자세한 내용은 Rounding (Fixed-Point Designer) 항목을 참조하십시오.
정수 오버플로 시 포화 — 오버플로 동작 방법
off
(디폴트 값) | on
오버플로 시 포화시킬지 아니면 래핑할지를 지정합니다.
off
— 오버플로 시 데이터형이 표현할 수 있는 적절한 값으로 래핑됩니다.예를 들어, 숫자 130은 부호 있는 8비트 정수에 맞지 않으므로 -126으로 래핑됩니다.
on
— 오버플로 시 데이터형이 표현할 수 있는 최솟값 또는 최댓값으로 포화됩니다.예를 들어, 부호 있는 8비트 정수와 연관된 오버플로가 발생할 경우 -128 또는 127로 포화될 수 있습니다.
팁
모델에 오버플로가 발생할 가능성이 있고 생성된 코드에서 포화 보호를 명시적으로 지정하려는 경우 이 체크박스를 선택해 보십시오.
생성된 코드의 효율성을 최적화하려면 이 체크박스를 선택 해제하는 것이 좋습니다.
이 체크박스를 선택 해제하면 블록이 범위를 벗어난 신호를 처리하는 방법을 과도하게 지정하는 일이 방지됩니다. 자세한 내용은 Troubleshoot Signal Range Errors 항목을 참조하십시오.
이 체크박스를 선택하는 경우 출력이나 결과뿐만 아니라 블록의 모든 내부 연산에 포화가 적용됩니다.
일반적으로 코드 생성 프로세스는 오버플로가 발생할 가능성이 없는 경우를 감지할 수 있습니다. 이 경우, 코드 생성기는 포화 코드를 생성하지 않습니다.
프로그래밍 방식의 사용법
블록 파라미터: SaturateOnIntegerOverflow |
유형: 문자형 벡터 |
값: 'off' | 'on' |
디폴트 값: 'off' |
서로 다른 데이터 입력 크기 허용 — 서로 다른 데이터 입력 크기 허용
off
(디폴트 값) | on
서로 다른 크기의 입력 신호를 허용하려면 이 체크박스를 선택하십시오. 블록은 입력 신호 크기를 출력 신호에 전파합니다. 두 데이터 입력이 가변 크기 신호인 경우 신호의 최대 크기는 같거나 다를 수 있습니다.
프로그래밍 방식의 사용법
블록 파라미터: AllowDiffInputSizes
|
유형: 문자형 벡터 |
값: 'on' | 'off' |
디폴트 값: 'off'
|
블록 특성
데이터형 |
|
직접 피드스루 |
|
다차원 신호 |
|
가변 크기 신호 |
|
영점교차 검출 |
|
확장 기능
C/C++ 코드 생성
Simulink® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
생성된 코드는 특정 조건에서 memcpy
함수 또는 memset
함수(string.h)를 사용합니다.
HDL 코드 생성
HDL Coder™를 사용하여 FPGA나 ASIC 설계용의 Verilog 코드나 VHDL 코드를 생성할 수 있습니다.
HDL Coder™는 HDL 구현과 합성된 논리에 영향을 주는 추가 구성 옵션을 제공합니다.
이 블록에는 하나의 디폴트 HDL 아키텍처가 있습니다.
ConstrainedOutputPipeline | 기존 지연을 설계 내부로 이동하여 출력에 배치하는 레지스터 개수입니다. 분산된 파이프라이닝은 이러한 레지스터를 다시 분산하지 않습니다. 디폴트 값은 |
InputPipeline | 생성된 코드에 삽입할 입력 파이프라인 단계의 개수입니다. 분산 파이프라이닝과 제약이 있는 출력 파이프라이닝은 이러한 레지스터를 이동할 수 있습니다. 디폴트 값은 |
OutputPipeline | 생성된 코드에 삽입할 출력 파이프라인 단계의 개수입니다. 분산 파이프라이닝과 제약이 있는 출력 파이프라이닝은 이러한 레지스터를 이동할 수 있습니다. 디폴트 값은 |
이 블록은 복소 신호를 위한 코드 생성을 지원합니다.
PLC 코드 생성
Simulink® PLC Coder™를 사용하여 Structured Text 코드를 생성할 수 있습니다.
고정소수점 변환
Fixed-Point Designer™를 사용하여 고정소수점 시스템을 설계하고 시뮬레이션할 수 있습니다.
버전 내역
R2006a 이전에 개발됨
참고 항목
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)