주요 콘텐츠

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

If

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

  • If block

라이브러리:
Simulink / Ports & Subsystems

설명

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

Model ex_if_block

예제

제한 사항

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의 고정소수점 데이터형 지원을 참조하십시오.

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

출력

모두 확장

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

파라미터

모두 확장

1

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

정수

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

프로그래밍 방식의 사용법

블록 파라미터: NumInputs
유형: 문자형 벡터
: '1' | 따옴표로 묶인 정수
디폴트 값: '1'

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

on

else 포트를 표시합니다.

off

else 포트를 숨깁니다.

프로그래밍 방식의 사용법

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

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

켜기

영점교차를 검출합니다.

끄기

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

프로그래밍 방식의 사용법

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

R2025a 이후

If 블록에서 생성된 코드에 if-else 문만 포함되도록 하려면 이 파라미터를 선택합니다.

on

생성 코드에 if-else 문만 포함시킵니다. 이 옵션은 생성 코드에 switch-case 문은 포함시키지 않습니다.

off

이 파라미터가 off이면 If 블록에서 생성된 코드에 switch-case 문을 포함시켜서 If 블록과 동일한 작업을 수행하도록 할 수 있습니다.

프로그래밍 방식의 사용법

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

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

if 포트에 연결된 If Action Subsystem 블록은 연관된 if 표현식이 true로 평가될 때 실행됩니다.

u1 > 0

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

논리식

참고

R2025a부터는 디폴트 if 표현식(u1 > 0)을 편집하려면 표현식 테이블을 사용합니다. 여러 입력과 연산자가 포함된 복잡한 표현식의 경우, if 표현식을 선택하고 표현식 편집기 상자에서 편집하십시오.

R2025a 이전 버전에서 이 파라미터는 블록 대화 상자에서 If 표현식으로 표시됩니다. 이 파라미터를 사용하여 논리식을 지정할 수 있습니다.

그러나 모든 Simulink® 버전에서 이 표현식은 If 블록에서 if 출력 포트 바로 옆에 표시됩니다.

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

프로그래밍 방식의 사용법

블록 파라미터: IfExpression
유형: 문자형 벡터
: 'u1 > 0' | 따옴표로 묶인 논리식
디폴트 값: 'u1 > 0'

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

비어 있음

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

논리식 목록

참고

R2025a부터는 elseif 표현식을 추가하고 편집하려면 표현식 테이블을 사용합니다. 이 테이블 왼쪽에 있는 동작 버튼을 사용하여 표현식을 추가, 삭제, 이동할 수 있습니다. 이 테이블을 사용하면 쉼표로 구분된 목록 대신에 각 elseif 표현식을 개별적으로 쓸 수 있으며 모델링 요구 사항에 따라 표현식을 구성할 수 있습니다. 여러 입력과 연산자가 포함된 복잡한 표현식의 경우, 해당 elseif 표현식이 포함된 행을 선택하고 표현식 편집기 상자에서 편집하십시오.

R2025a 이전 버전에서 이 파라미터는 블록 대화 상자에서 Else 표현식으로 표시됩니다. 이러한 버전에서는 논리식을 쉼표로 구분된 목록으로 지정하십시오.

그러나 모든 Simulink 버전에서, else 조건 표시 체크박스를 선택하면 이 표현식은 If 블록에서 if 포트 아래, else 포트 위에 표시됩니다.

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

프로그래밍 방식의 사용법

블록 파라미터: ElseIfExpressions
유형: 문자형 벡터
: '' | 따옴표로 묶이고 쉼표로 구분된 논리식 목록
디폴트 값: ''

블록 특성

데이터형

Boolean | double | integer | single

직접 피드스루

다차원 신호

아니요

가변 크기 신호

아니요

영점교차 검출

확장 기능

모두 확장

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

버전 내역

R2006a 이전에 개발됨

모두 확장