Main Content

If

if-else 구문과 유사한 논리를 사용하여 서브시스템 실행 선택

  • 라이브러리:
  • Simulink / Ports & Subsystems

  • If block

설명

If 블록은 Action Port 블록을 포함하는 If Action Subsystem 블록과 함께 if-else 논리를 구현하여 서브시스템 실행을 제어합니다. If 블록을 사용하는 예제는 Select Subsystem Execution 항목을 참조하십시오.

제한 사항

If 블록에는 다음과 같은 제한 사항이 있습니다.

  • 조정 가능형 파라미터를 지원하지 않습니다. if 또는 elseif 표현식의 값은 표준 또는 액셀러레이터 모드에서 시뮬레이션 중이거나 생성된 코드를 실행하는 중에 조정될 수 없습니다.

    조정 가능형 if-else 표현식을 구현하려면 If 블록 외부에서 표현식을 조정하십시오. 예를 들어, Relational Operator 블록을 사용하여 If 블록 외부의 표현식을 평가하거나 조정 가능형 파라미터를 If 블록의 입력값으로 추가하면 됩니다.

  • 사용자 지정 스토리지 클래스를 지원하지 않습니다. Organize Parameter Data into a Structure by Using Struct Storage Class (Embedded Coder) 항목을 참조하십시오.

  • If 표현식Elseif 표현식+, -, *, /와 같은 특정 연산자를 사용할 수 없습니다.

포트

입력

모두 확장

입력값 u1,u2,...,un은 동일한 데이터형을 사용해야 합니다. 입력값은 열거형과 같은 사용자 정의 유형이 될 수 없습니다.

If 블록은 고정소수점 데이터형을 직접 지원하지 않습니다. 하지만, Compare To Constant 블록을 사용하여 이 제한 사항을 해결할 수 있습니다. Select Subsystem Execution의 고정소수점 데이터형 지원을 참조하십시오.

If 블록은 부울 데이터형을 지원하지 않습니다. If 블록에 부울 신호를 입력하려면 Data Type Conversion 블록을 사용하여 신호를 정수형으로 변환하십시오.

데이터형: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

출력

모두 확장

if, elseelseif 포트의 출력은 If Action Subsystem 블록에 대한 동작 신호입니다.

파라미터

모두 확장

1

하나의 입력 포트를 지정합니다.

정수

입력 포트의 개수를 지정합니다. 블록 포트는 'u' 문자 뒤에 숫자 1,2,...,n이 오도록 레이블이 지정되어 있으며, 여기서 n은 사용자가 지정한 입력의 개수와 같습니다.

프로그래밍 방식의 사용법

블록 파라미터: NumInputs
유형: 문자형 벡터
: '1' | '<integer>'
디폴트 값: '1'

if 포트에 연결된 If Action Subsystem은 연결된 표현식이 true일 때 실행됩니다.

u1 > 0

입력값 u10보다 크면 출력 포트에서 동작 신호를 보내도록 지정합니다.

논리식

논리식을 지정합니다. 이 표현식은 if 출력 포트에 인접한 If 블록에 표시됩니다.

이 표현식에는 <, <=, ==, ~=, >, >=, &, |, ~, (), unary-minus 연산자만 포함될 수 있습니다. +, -, *, /^와 같은 연산자는 허용되지 않습니다. 표현식은 데이터형 표현식(예: int8(6))을 포함해서는 안 되며 데이터형이 double 또는 single이 아닌 작업 공간 변수를 참조해서는 안 됩니다.

프로그래밍 방식의 사용법

블록 파라미터: IfExpression
유형: 문자형 벡터
: 'u1 > 0' | '<logical expression>'
디폴트 값: 'u1 > 0'

elseif 포트에 연결된 If Action Subsystem은 그 표현식이 true로 평가되고 모든 if 표현식과 elseif 표현식이 false이면 실행됩니다.

비어 있음

논리식이 지정되지 않았습니다.

논리식 목록

쉼표로 구분된 논리식 목록을 지정합니다. 표현식은 else 조건 표시 체크박스를 선택한 경우 if 포트 아래와 else 포트 위의 If 블록에 표시됩니다.

표현식은 <, <=, ==, ~=, >, >=, &, |, ~, (), unary-minus 연산자만 포함할 수 있습니다. +, -, *, /^와 같은 연산자는 허용되지 않습니다. 표현식은 데이터형 표현식(예: int8(6))을 포함해서는 안 되며 데이터형이 double 또는 single이 아닌 작업 공간 변수를 참조해서는 안 됩니다.

프로그래밍 방식의 사용법

블록 파라미터: ElseIfExpressions
유형: 문자형 벡터
: '' | '<list of logical expressions>'
디폴트 값: ''

if 포트와 모든 elseif 포트 표현식이 false이면 else 포트는 동작 신호를 전송하여 연결된 If Action Subsystem 블록을 실행합니다.

켜기

else 포트를 표시합니다.

끄기

else 포트를 숨깁니다.

프로그래밍 방식의 사용법

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

영점교차 검출을 제어합니다.

켜기

영점교차를 검출합니다.

끄기

영점교차를 검출하지 않습니다.

프로그래밍 방식의 사용법

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

블록 특성

데이터형

Boolean | double | integer | single

직접 피드스루

다차원 신호

아니요

가변 크기 신호

아니요

영점교차 검출

확장 기능

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

버전 내역

R2006a 이전에 개발됨