hasChanged
Stateflow 차트에서 마지막 시간 스텝 이후 데이터의 변경 감지
설명
는 현재 시간 스텝 시작 부분의 tf
= hasChanged(data
)data
값이 차트가 웨이크업 상태가 된 마지막 시간 스텝 시작 부분의 data
값과 다른 경우 1
(true
)을 반환합니다. 그렇지 않으면 연산자는 0
(false
)을 반환합니다.
예제
입력 인수
제한 사항
Stateflow 진리표 내에서는 사용할 수 없습니다.
팁
동일한 시간 스텝에서 여러 입력 이벤트가 발생하는 경우
hasChanged
연산자는 입력 이벤트 사이의 데이터 값 변경을 감지할 수 있습니다.차트가 데이터 객체에 쓰지만 데이터 값을 변경하지 않는 경우
hasChanged
연산자는false
를 반환합니다.Stateflow 차트의 유형에 따라 변경 감지 연산자에서 지원하는 데이터 범위가 결정됩니다.
MATLAB의 독립 실행형 Stateflow 차트:
로컬
만Simulink® 모델에서 MATLAB을 동작 언어로 사용하는 차트:
입력
만Simulink 모델에서 C를 동작 언어로 사용하는 차트:
입력
,출력
,로컬
또는데이터 저장소 메모리
MATLAB의 독립 실행형 차트에서 변경 감지 연산자는
step
함수 호출에 지정된 데이터의 변경을 감지할 수 있는데, 그 이유는 이러한 변경이 현재 시간 스텝의 시작 전에 발생하기 때문입니다. 예를 들어x
가 0인 경우 다음 명령으로 차트ch
를 실행하면 표현식hasChanged(x)
는true
를 반환합니다.이와 반대로 변경 감지 연산자는 동일한 시간 스텝에서 상태 동작 또는 천이 동작에서 대입으로 인해 발생하는 데이터의 변경을 감지할 수 없습니다. 대신 연산자는 다음 시간 스텝 시작 시 값의 변경을 감지합니다.step(ch,x=1);
Simulink 모델의 차트에서 차트 옵션 차트가 웨이크업 상태가 될 때마다 출력 초기화를 활성화한 경우
hasChanged
연산자의 인수로 출력을 사용하면 항상false
가 반환됩니다. 자세한 내용은 Initialize outputs every time chart wakes up 항목을 참조하십시오.hasChanged
를 사용하는 차트에서 행 우선 배열 레이아웃이 활성화되어 있으면 코드 생성 시 오류가 발생합니다.hasChanged
를 사용하는 차트에서 코드를 생성하기 전에 열 우선 배열 레이아웃을 활성화하십시오. Select Array Layout for Matrices in Generated Code 항목을 참조하십시오.
버전 내역
R2007a에 개발됨