Обнаружьте изменение в данных начиная с последнего временного шага
tf = hasChanged(u)tf = hasChanged( возвращает u)true, если значение u в начале шага текущего времени отличается от значения u в начале предыдущего временного шага. Если несколько входных событий имеют место в том же временном шаге, hasChanged возвращает true, когда значение u изменяется между входными событиями.
Аргумент u может быть:
Скалярная переменная.
Матрица или элемент матрицы. Смотрите Поддерживаемые Операции для Векторов и Матриц.
Структура или поле в структуре. Смотрите Значения Индекса и Присвоения к Структурам Stateflow.
Любая допустимая комбинация полей структуры или матричных индексов.
Индексы могут быть числами или выражениями, которые оценивают к скалярному значению. Если u является матрицей, hasChanged возвращает true, если какой-либо элемент u изменил значение начиная с последнего временного шага или ввел событие. Если u является структурой, hasChanged возвращает true, если какое-либо поле u изменило значение начиная с последнего временного шага или ввело событие.
Осциллограф u зависит от языка действия графика:
MATLAB® как язык действия: Input только.
C как язык действия: Input, Output, Local или Data Store Memory.
Аргумент u не может быть нетривиальным выражением или переменной пользовательского кода.
Оператор hasChanged возвращает false, если график пишет в данные, но не изменяет значение данных.
Если вы включаете опции графика Initialize Outputs Every Time Chart Wakes Up, не используйте вывод в качестве аргумента оператора hasChanged. С этой включенной опцией оператор hasChanged всегда возвращает false. Для получения дополнительной информации смотрите, Инициализируют Выходные параметры, которые Будит Каждая Временная диаграмма.
Оператор hasChanged поддерживается только в графиках Stateflow® в моделях Simulink®.