이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
If
if-else
구문과 유사한 논리를 사용하여 서브시스템 실행 선택
라이브러리:
Simulink /
Ports & Subsystems
설명
If 블록은 Action Port 블록을 포함하는 If Action Subsystem 블록과 함께 if-else 논리를 구현하여 서브시스템 실행을 제어합니다. If 블록을 사용하는 예제는 Select Subsystem Execution 항목을 참조하십시오.
예제
Simulink 서브시스템 의미 체계
이 예제 세트는 다양한 Simulink® 서브시스템 유형과 이러한 서브시스템을 시뮬레이션할 때 사용되는 의미 체계를 보여줍니다. 각 예제는 모델과 모델 실행 방법의 세부 사항에 대한 설명을 제공합니다.
If-Then-Else 블록
이 예제에서는 사인파를 If Action Subsystem 블록에 전달했을 때 미치는 영향을 보여줍니다. 이 예제는 If Action Subsystem 블록과 Enabled Subsystem 블록 간의 유사성을 보여주기 위해 설계되었습니다.
Modeling Clutch Lock-Up Using If Blocks
Use If/Else subsystems to build a clutch model. An 'If' subsystem models the clutch dynamics in the locked position while an 'Else' subsystem models the unlocked position. One or the other is enabled using the 'If' block. The dot-dashed lines from the 'If' block denote control signals, which are used to enable If/Else (or other conditional) subsystems. Checking any of the boxes on the GUI produces a plot of any of the selected variables (versus time).
제한 사항
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 표현식은
+
,-
,*
,/
와 같은 특정 연산자를 사용할 수 없습니다.
포트
입력
Logical operands — 논리식 평가를 위한 값
스칼라 | 벡터
입력값 u1,u2,...,un
은 동일한 데이터형을 사용해야 합니다. 입력값은 열거형과 같은 사용자 정의 유형이 될 수 없습니다.
If 블록은 고정소수점 데이터형을 직접 지원하지 않습니다. 하지만, Compare To Constant 블록을 사용하여 이 제한 사항을 해결할 수 있습니다. Select Subsystem Execution의 고정소수점 데이터형 지원을 참조하십시오.
If 블록은 부울 데이터형을 지원하지 않습니다. If 블록에 부울 신호를 입력하려면 Data Type Conversion 블록을 사용하여 신호를 정수형으로 변환하십시오.
데이터형: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
출력
Action — If Action Subsystem 블록의 동작 신호
스칼라
if
, else
및 elseif
포트의 출력은 If Action Subsystem 블록에 대한 동작 신호입니다.
파라미터
입력 개수 — 입력 포트의 개수 지정
1
(디폴트 값) | 정수
1
하나의 입력 포트를 지정합니다.
- 정수
입력 포트의 개수를 지정합니다. 블록 포트는
'u'
문자 뒤에 숫자1,2,...,n
이 오도록 레이블이 지정되어 있으며, 여기서n
은 사용자가 지정한 입력의 개수와 같습니다.
프로그래밍 방식의 사용법
블록 파라미터: NumInputs |
유형: 문자형 벡터 |
값: '1' | '<integer>' |
디폴트 값: '1' |
If 표현식 — 논리식 지정
u1 > 0
(디폴트 값) | 논리식
if
포트에 연결된 If Action Subsystem은 연결된 표현식이 true일 때 실행됩니다.
u1 > 0
입력값
u1
이0
보다 크면 출력 포트에서 동작 신호를 보내도록 지정합니다.- 논리식
논리식을 지정합니다. 이 표현식은 if 출력 포트에 인접한 If 블록에 표시됩니다.
이 표현식에는
<, <=, ==, ~=, >, >=, &, |, ~, (), unary-minus
연산자만 포함될 수 있습니다.+, -, *, /
및^
와 같은 연산자는 허용되지 않습니다. 표현식은 데이터형 표현식(예:int8(6)
)을 포함해서는 안 되며 데이터형이double
또는single
이 아닌 작업 공간 변수를 참조해서는 안 됩니다.
프로그래밍 방식의 사용법
블록 파라미터: IfExpression |
유형: 문자형 벡터 |
값: 'u1 > 0' | '<logical expression>' |
디폴트 값: 'u1 > 0' |
Elseif 표현식 — 논리식 지정
비어 있음 (디폴트 값) | 논리식 목록
elseif 포트에 연결된 If Action Subsystem은 그 표현식이 true
로 평가되고 모든 if
표현식과 elseif
표현식이 false이면 실행됩니다.
- 비어 있음
논리식이 지정되지 않았습니다.
- 논리식 목록
쉼표로 구분된 논리식 목록을 지정합니다. 표현식은 else 조건 표시 체크박스를 선택한 경우 if 포트 아래와 else 포트 위의 If 블록에 표시됩니다.
표현식은
<, <=, ==, ~=, >, >=, &, |, ~, (), unary-minus
연산자만 포함할 수 있습니다.+, -, *, /
및^
와 같은 연산자는 허용되지 않습니다. 표현식은 데이터형 표현식(예:int8(6)
)을 포함해서는 안 되며 데이터형이double
또는single
이 아닌 작업 공간 변수를 참조해서는 안 됩니다.
프로그래밍 방식의 사용법
블록 파라미터: ElseIfExpressions |
유형: 문자형 벡터 |
값: '' | '<list of logical expressions>' |
디폴트 값: '' |
else 조건 표시 — else 포트의 표시 제어
on (디폴트 값) | off
if 포트와 모든 elseif 포트 표현식이 false
이면 else 포트는 동작 신호를 전송하여 연결된 If Action Subsystem 블록을 실행합니다.
- 켜기
else 포트를 표시합니다.
- 끄기
else 포트를 숨깁니다.
프로그래밍 방식의 사용법
블록 파라미터: ShowElse |
유형: 문자형 벡터 |
값: 'on' | 'off' |
디폴트 값: 'on' |
영점교차 검출 활성화 — 영점교차 검출 제어
켜기 (디폴트 값) | 끄기
영점교차 검출을 제어합니다.
- 켜기
영점교차를 검출합니다.
- 끄기
영점교차를 검출하지 않습니다.
프로그래밍 방식의 사용법
블록 파라미터: ZeroCross |
유형: 문자형 벡터 |
값: 'on' | 'off' |
디폴트 값: 'on' |
블록 특성
데이터형 |
|
직접 피드스루 |
|
다차원 신호 |
|
가변 크기 신호 |
|
영점교차 검출 |
|
확장 기능
C/C++ 코드 생성
Simulink® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
HDL 코드 생성
HDL Coder™를 사용하여 FPGA 및 ASIC 설계를 위한 VHDL, Verilog 및 SystemVerilog 코드를 생성할 수 있습니다.
HDL Coder™는 HDL 구현과 합성된 논리에 영향을 주는 추가 구성 옵션을 제공합니다.
이 블록에는 하나의 디폴트 HDL 아키텍처가 있습니다.
ConstrainedOutputPipeline | 기존 지연을 설계 내부로 이동하여 출력에 배치하는 레지스터 개수입니다. 분산된 파이프라이닝은 이러한 레지스터를 다시 분산하지 않습니다. 디폴트 값은 |
InputPipeline | 생성된 코드에 삽입할 입력 파이프라인 단계의 개수입니다. 분산 파이프라이닝과 제약이 있는 출력 파이프라이닝은 이러한 레지스터를 이동할 수 있습니다. 디폴트 값은 |
OutputPipeline | 생성된 코드에 삽입할 출력 파이프라인 단계의 개수입니다. 분산 파이프라이닝과 제약이 있는 출력 파이프라이닝은 이러한 레지스터를 이동할 수 있습니다. 디폴트 값은 |
버전 내역
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)