주요 콘텐츠

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

관계 연산자와 논리 연산자

이 예제는 Simulink® 블록, Stateflow® 차트 및 MATLAB® 함수 블록을 사용하여 관계 연산자와 논리 연산자를 구현하는 방법을 보여줍니다.

관계 연산자 또는 논리 연산자를 위한 모델 패턴 — Simulink 블록

모델에 논리 연산을 포함하려면 논리 및 비트 연산 라이브러리의 Logical Operator 블록을 사용하십시오.

1. 예제 모델 ex_data_type_SL을 엽니다.

Logical Operator 블록은 모델 내에서 OR 연산을 수행합니다. 연산자를 변경하려면 블록을 더블 클릭한 다음, 연산자 필드를 메뉴에 있는 연산자 중 하나로 설정하십시오.

Logical Operator 블록을 Relational Operator 블록으로 대체하면 관계 연산자를 구현할 수 있습니다.

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

논리 연산자 OR을 구현하는 코드는 ex_logical_SL.c 파일 내의 ex_logical_SL_step 함수에 있습니다.

/* Exported block signals */
boolean_T u1;                          /* '<Root>/u1' */
boolean_T u2;                          /* '<Root>/u2' */
boolean_T y1;                          /* '<Root>/y1' */

/* Model step function */
void ex_logical_SL_step(void)
{
  /* Outport: '<Root>/y1' incorporates:
   *  Inport: '<Root>/u1'
   *  Inport: '<Root>/u2'
   *  Logic: '<Root>/Logical Operator'
   */
  y1 = (u1 || u2);
}

관계 연산자 및 논리 연산자를 위한 모델 패턴 — Stateflow 차트

1. 예제 모델 ex_data_type_SF를 엽니다.

Stateflow 차트에서, 관계 연산 또는 논리 연산 작업은 한 접합점에서 다른 접합점으로의 전이에서 이루어집니다. 관계 진술은 전환을 조건부로 허용하기 위한 조건을 명시합니다. 이 경우, 문장은 대괄호 안에 들어갑니다.

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

논리 연산자 OR을 구현하는 코드는 ex_logical_SF.c 파일 내의 ex_logical_SF_step 함수에 있습니다.

/* Exported block signals */
boolean_T u1;                          /* '<Root>/u1' */
boolean_T u2;                          /* '<Root>/u2' */
boolean_T y1;                          /* '<Root>/Logical Operator' */

/* Model step function */
void ex_logical_SF_step(void)
{
  /* Chart: '<Root>/Logical Operator' incorporates:
   *  Inport: '<Root>/u1'
   *  Inport: '<Root>/u2'
   */
  y1 = (u1 || u2);
}

관계 연산자 및 논리 연산자를 위한 모델링 패턴 — MATLAB 함수 블록

이 예제는 관계 연산자를 사용하여 생성된 코드에 연산자를 포함시키는 MATLAB 함수 블록의 방법을 보여줍니다.

1. 예제 모델 ex_logical_ML을 엽니다.

2. MATLAB 함수 블록에는 이 함수가 포함되어 있습니다:

function y1 = fcn(u1, u2)
y1 = u1 > u2; 
end

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

코드 생성은 ex_data_type_ML.c에 표시됩니다:

/* Exported block signals */
real_T u1;                             /* '<Root>/u1' */
real_T u2;                             /* '<Root>/u2' */
boolean_T y;                           /* '<Root>/MATLAB Function' */

/* Model step function */
void ex_logical_ML_step(void)
{
  /* MATLAB Function: '<Root>/MATLAB Function' incorporates:
   *  Inport: '<Root>/u1'
   *  Inport: '<Root>/u2'
   */
  y = (u1 > u2);
}

참고 항목