이 페이지는 기계 번역을 사용하여 번역되었습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
If-Else
이 예제는 Simulink ® 블록, Stateflow ® 차트 및 MATLAB ® 함수 블록을 사용하여 if-else 구문을 구현하는 방법을 보여줍니다.
C 구조
if (u1 > u2)
{
y1 = u1;
}
else
{
y1 = u2;
}
If-Else 모델링 패턴: Switch 블록
if-else 문장을 생성하는 한 가지 방법은 Simulink > 신호 라우팅 라이브러리의 Switch 블록을 사용하는 것입니다.
1. 열린 예시 모델 ex_if_else_SL.

이 모델에는 u2~=0의 블록 파라미터 첫 번째 입력 통과 기준을 가진 Switch 블록이 포함되어 있습니다. 소프트웨어는 u2가 TRUE인 경우 u1를 선택하고, 그렇지 않으면 u2가 통과합니다.
2. 모델을 구축하고 코드를 생성하려면 Ctrl+B를 누르십시오.
if-else 구문을 구현하는 코드는 ex_if_else_SL.c의 ex_if_else_SL_step 함수에 있습니다:
/* External inputs (root inport signals with default storage) */
ExternalInputs U;
/* External outputs (root outports fed by signals with default storage) */
ExternalOutputs Y;
/* Model step function */
void ex_if_else_SL_step(void)
{
/* Switch: '<Root>/Switch' incorporates:
* Inport: '<Root>/u1'
* Inport: '<Root>/u2'
* RelationalOperator: '<Root>/Relational Operator'
*/
if (U.u1 > U.u2) {
/* Outport: '<Root>/y1' */
Y.y1 = U.u1;
} else {
/* Outport: '<Root>/y1' */
Y.y1 = U.u2;
}
/* End of Switch: '<Root>/Switch' */
}
If-Else 모델링 패턴: Stateflow 차트
1. 열린 예시 모델 ex_if_else_SF.

해당 모델에는 차트 내에서 마우스 오른쪽 버튼을 클릭하여 추가하는 If-Else 결정 패턴이 포함되어 있습니다. > 차트에 패턴 추가 > 결정 > If-Else.
2. 모델을 구축하고 코드를 생성하려면 Ctrl+B를 누르십시오.
if-else 구문을 구현하는 코드는 ex_if_else_SF.c 내의 ex_if_else_SF_step 함수에 있습니다:
/* External inputs (root inport signals with default storage) */
ExternalInputs U;
/* External outputs (root outports fed by signals with default storage) */
ExternalOutputs Y;
/* Model step function */
void ex_if_else_SF_step(void)
{
/* Chart: '<Root>/Chart' incorporates:
* Inport: '<Root>/u1'
* Inport: '<Root>/u2'
*/
/* If-Else */
if (U.u1 >= U.u2) {
/* Outport: '<Root>/y1' */
Y.y1 = U.u1;
} else {
/* Outport: '<Root>/y1' */
Y.y1 = U.u2;
}
/* End of Chart: '<Root>/Chart' */
}
If-Else 모델링 패턴: MATLAB 함수 블록
1. 열린 예시 모델 ex_if_else_ML.

2. MATLAB 함수 블록에는 이 함수가 포함되어 있습니다:
function y1 = fcn(u1, u2) if u1 > u2; y1 = u1; else y1 = u2; end
2. 모델을 구축하고 코드를 생성하려면 Ctrl+B를 누르십시오.
if-else 구문을 구현하는 코드는 ex_if_else_ML.c 내의 ex_if_else_ML_step 함수에 있습니다:
/* External inputs (root inport signals with default storage) */
ExternalInputs U;
/* External outputs (root outports fed by signals with default storage) */
ExternalOutputs Y;
/* Model step function */
void ex_if_else_ML_step(void)
{
/* MATLAB Function: '<Root>/MATLAB Function' incorporates:
* Inport: '<Root>/u1'
* Inport: '<Root>/u2'
*/
if (U.u1 >= U.u2) {
/* Outport: '<Root>/y1' */
Y.y1 = U.u1;
} else {
/* Outport: '<Root>/y1' */
Y.y1 = U.u2;
}
/* End of MATLAB Function: '<Root>/MATLAB Function' */
}