주요 콘텐츠

이 페이지는 기계 번역을 사용하여 번역되었습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

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 블록이 포함되어 있습니다. 소프트웨어는 u2TRUE인 경우 u1를 선택하고, 그렇지 않으면 u2가 통과합니다.

2. 모델을 구축하고 코드를 생성하려면 Ctrl+B를 누르십시오.

if-else 구문을 구현하는 코드는 ex_if_else_SL.cex_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' */
}

참고 항목

도움말 항목