주요 콘텐츠

after

R2026b

이벤트 브로드캐스트 또는 지정된 시간 후에 차트 실행

설명

after(n,E)는 관련 상태가 활성화된 후 이벤트 E가 최소 n번 이상 발생한 경우 true를 반환합니다. 그 외에는 연산자가 false를 반환합니다.

예제

after(n,tick)은 관련 상태가 활성화된 후 차트가 최소 n번 이상 웨이크업 상태가 된 경우 true를 반환합니다. 그 외에는 연산자가 false를 반환합니다.

Simulink® 모델의 Stateflow® 차트에 입력 이벤트가 있는 경우 묵시적 이벤트 tick은 지원되지 않습니다.

예제

after(n,time_unit)은 관련 상태가 활성화된 후 최소 n 단위의 시간이 경과한 경우 true를 반환합니다. 그 외에는 연산자가 false를 반환합니다.

Simulink 모델의 차트에서는 time_unit을 초(sec), 밀리초(msec) 또는 마이크로초(usec)로 지정합니다. n을 표현식으로 지정하면 시뮬레이션 중에 표현식의 값이 변경됨에 따라 차트가 시간 지연을 조정합니다.

MATLAB®의 독립 실행형 차트에서는 n을 0.001보다 크거나 같은 값으로 지정하고 time_unit을 초(sec)로 지정합니다. 연산자는 차트를 웨이크업 상태로 만들기 위한 묵시적 이벤트를 생성하는 MATLAB timer 객체를 만듭니다. MATLAB timer 객체의 정밀도는 1밀리초로 제한됩니다. 자세한 내용은 Events in Standalone Charts 항목을 참조하십시오.

  • timer 객체는 차트가 관련 상태와 그 하위 상태의 entry 동작 실행을 마칠 때 만들어집니다. n을 차트 실행 중에 값이 변경되는 표현식으로 지정하면 차트는 timer 객체의 시간 지연을 조정하지 않습니다.

  • 관련 상태가 활성화되면 차트 스텝의 끝에서 timer 객체가 실행되기 시작합니다. 이 스텝에는 차트에 있는 다른 병렬 상태의 실행이 포함될 수 있습니다.

  • timer 객체로부터 묵시적 이벤트를 수신할 때 다른 작업을 처리 중인 경우 차트는 이벤트를 큐에 넣습니다. 차트는 현재 스텝이 완료되면 해당 이벤트를 처리합니다.

  • 차트가 묵시적 이벤트를 처리하기 전에 시간 논리 연산자와 연결된 상태가 비활성화되면 이벤트는 차트를 웨이크업 상태로 만들지 않습니다.

예제

예제

모두 확장

상태가 활성화된 후 E의 세 번째 브로드캐스트부터 시작하여 차트가 이벤트 E의 브로드캐스트를 처리할 때 상태 메시지를 표시합니다.

on after(3,E):
   disp("ON");

Stateflow chart that uses the after operator in a state.

상태가 활성화된 후 E의 다섯 번째 브로드캐스트부터 시작하여 차트가 이벤트 E의 브로드캐스트를 처리할 때 관련 상태에서 천이됩니다.

after(5,E)

Stateflow chart that uses the after operator in a transition.

상태가 이벤트 E의 최소 5회 이상의 브로드캐스트 동안 활성화되어 있었던 경우 관련 상태에서 천이됩니다.

Simulink 모델의 차트에 다음을 입력합니다.

[after(5,E)]

Stateflow chart that uses the after operator in a transition.

MATLAB의 독립 실행형 차트에서는 시간 논리 연산자에 대한 조건부 표기법이 지원되지 않습니다.

상태가 활성화된 후 차트가 적어도 일곱 번째로 웨이크업 상태가 될 때 관련 상태에서 천이되지만, 변수 temp가 98.6보다 큰 경우에만 천이됩니다.

after(7,tick)[temp > 98.6]

Stateflow chart that uses the after operator in a transition.

최소 12.3초 동안 관련 상태가 활성화되어 있을 때 시작하여 차트가 웨이크업 상태가 될 때마다 temp 변수를 LOW로 설정합니다.

on after(12.3,sec):
   temp = LOW;

Stateflow chart that uses the after operator in a state.

팁

  • 따옴표를 사용하여 키워드 'tick', 'sec', 'msec', 'usec'를 묶을 수 있습니다. 예를 들어, after(5,'tick')은 after(5,tick)과 같습니다.

  • Stateflow 차트는 관련 상태가 다시 활성화될 때마다 after 연산자가 사용하는 카운터를 재설정합니다.

  • 절대시간 시간 논리 연산자의 타이밍은 Stateflow 차트의 유형에 따라 달라집니다.

    • Simulink 모델의 차트는 시뮬레이션 시간의 관점에서 절대시간 시간 논리를 정의합니다.

    • MATLAB의 독립 실행형 차트는 절대시간 시간 논리를 1밀리초의 정밀도로 제한되는 wall-clock 시간의 관점에서 정의합니다.

    타이밍의 차이가 차트의 작동 방식에 영향을 미칠 수 있습니다. 예를 들어 이 차트가 상태 A의 during 동작을 실행한다고 가정하겠습니다.

    Stateflow chart with two states. The during action in state A calls a function f. The transition to state B uses the expression after(2,sec). The entry action in state B displays the elapsed time.

    • Simulink 모델에서 f에 대한 함수 호출은 단일 시간 스텝에서 실행되며 시뮬레이션 시간에 기여하지 않습니다. 상태 A에서 상태 B로의 천이는 차트가 처음 웨이크업 상태가 되고 상태 A가 최소 2초 동안 활성화되었을 때 발생합니다. 상태 B에서 entry 동작에 의해 표시되는 값은 Simulink 솔버에서 사용하는 스텝 크기에 의해서만 달라집니다.

    • 독립 실행형 차트에서 f에 대한 함수 호출은 완료되는 데 몇 초의 wall-clock 시간이 걸릴 수 있습니다. 호출이 2초 이상 지속될 경우 차트는 after 연산자와 관련된 묵시적 이벤트를 큐에 넣습니다. 상태 A에서 상태 B로의 천이는 함수 f의 실행이 끝날 때 일어납니다. 상태 B에서 entry 동작에 의해 표시되는 값은 f에 대한 함수 호출이 완료되는 데 걸리는 시간에 따라 달라집니다.

버전 내역

R2014b에 개발됨