exponenta event banner

Моделирование фитнес-приложения с помощью автономных диаграмм

В этом примере показано, как создать приложение, состоящее из нескольких автономных диаграмм Stateflow ® и приложения MATLAB ®. Автономные диаграммы моделируют системы управления и установки для приложения и интерфейса с приложением MATLAB. Дополнительные сведения о подключении автономной диаграммы к приложению MATLAB см. в разделе Проектирование логики интерфейса человека и машины с помощью Statef Версию этого примера, использующую диаграммы Stateflow в модели Simulink ®, см. в разделе Модель фитнес-трекера.

В этом примере приложение MATLAB моделирует фитнес-трекер. При запуске приложения можно настроить параметры трекера и выбрать действие (Сон, Отдых, Прогулка или Упражнение). При выборе Упражнение, вы также можете установить интенсивность тренировки.

Автономная диаграмма sf_fitness_interface обеспечивает двунаправленное соединение между приложением MATLAB и другими автономными диаграммами в примере, sf_fitness_human и sf_fitness_tracker. Эти диаграммы моделируют симулятор человека и обеспечивают основную логику для фитнес-трекера соответственно. Когда вы взаимодействуете с виджетами в приложении, sf_fitness_interface диаграмма передает выбранные элементы другим диаграммам в примере. И наоборот, диаграмма использует выходные данные фитнес-трекера для обновления числовых и текстовых полей в приложении.

Эта принципиальная схема иллюстрирует передачу информации между приложением и диаграммами в примере.

Для запуска примера выполните команду sf_fitness_sfx_app app. Приложение создает объект диаграммы для sf_fitness_interface. Эта диаграмма, в свою очередь, создает объекты диаграммы для двух других диаграмм в примере. Диаграмма также создает MATLAB timer объект, который выполняет все три диаграммы с частотой, пропорциональной частоте сердечных сокращений в диаграмме симулятора человека. Во время выполнения примера одна секунда моделирования представляет одну минуту времени упражнения. Чтобы остановить пример, закройте приложение.

Подключение диаграммы к приложению MATLAB

Диаграмма sf_fitness_interface настроен для связи с приложением MATLAB sf_fitness_sfx_app.

  • Диаграмма использует локальный объект данных app для взаимодействия с приложением MATLAB. Диаграмма использует этот локальный объект данных при вызове вспомогательных функций updateStatus, updateClock, updateText, updateSteps, и updateHeartRate. В приложении эти вспомогательные функции изменяют содержимое полей состояния активности, часов и счетчиков шагов, а также создают анимационные эффекты на экранах контрольного сигнала и шагов. Например, когда появляется новое уведомление от фитнес-трекера, подсостояние MainDisplay вызывает функцию помощника updateText. Эта функция заменяет содержимое дисплея часов пользовательским уведомлением. После небольшой задержки подсостояние вызывает функцию помощника updateClock для восстановления отображения тактового сигнала.

  • Приложение использует свойство с именем chart для взаимодействия с диаграммой. Приложение использует это свойство для чтения локальных данных диаграммы. Например, вспомогательные функции updateHeartRate и updateSteps считывать локальные данные диаграммы heart_rate и total_stepsсоответственно. Кроме того, при закрытии приложения UIFigureCloseRequest обратный вызов использует chart для остановки выполнения диаграмм в примере путем удаления их объектов-диаграмм.

Дополнительные сведения о том, как создать двунаправленное соединение между приложением MATLAB и автономной диаграммой Stateflow, см. в разделе Проектирование логики человеко-машинного интерфейса с помощью диаграмм Stateflow.

Чтобы установить связь с человеческим тренажером и картами фитнес-трекера, sf_fitness_interface диаграмма сохраняет объекты диаграммы в виде локальных данных human и tracker. Функции MATLAB на уровне диаграммы updateHuman и updateTracker используйте эти объекты для записи и чтения из локальных данных в диаграммах. Например, при выборе нового действия или изменении интенсивности тренировки на панели «Симулятор человека» приложения, updateHuman устанавливает значение локальных данных activity и intensity на карте симулятора человека. Аналогично, при изменении значения одного из полей на панели «Параметры» приложения updateTracker обновляет значение соответствующих локальных данных в диаграмме фитнес-трекера.

Моделирование показателей жизнедеятельности на основе активности

Схема имитатора человека sf_fitness_human моделирует жизненно важные признаки человека, участвующего в деятельности, которую вы выбираете в приложении. На диаграмме эти жизненно важные признаки (представляющие частоту сердечных сокращений, скорость и количество шагов, которые вы предприняли) хранятся в виде локальных переменных, к которым может получить доступ фитнес-трекер. Когда вы выбираете новое действие или настраиваете интенсивность тренировки, диаграмма вызывает функцию transition обеспечить постепенное изменение этих жизненно важных признаков с течением времени. Чтобы обнаружить изменения в активности или интенсивности упражнений, диаграмма вызывает hasChanged оператор. Дополнительные сведения см. в разделе Обнаружение изменений в значениях данных.

Определение выходных данных фитнес-трекера

Диаграмма sf_fitness_tracker моделирует основную логику фитнес-трекера. Диаграмма состоит из четырех подчастей, которые соответствуют возможным действиям. Диаграмма регистрирует состояние вашей активности на основе частоты сердечных сокращений и скорости, полученных с помощью диаграммы симулятора человека, и переходов между этими подшаблонами. Для фильтрации шума сигнала на диаграмме используется count для реализации простой логики отладки. Например, когда вы находитесь в состоянии покоя, вы можете сделать некоторые быстрые и внезапные движения, которые не соответствуют упражнениям. Диаграмма определяет, что вы идете или выполняете упражнения, только если ваше движение длится дольше двух оценок объекта диаграммы.

Диаграмма использует другие операторы временной логики для отслеживания времени, затрачиваемого на каждое действие, и определения времени отправки уведомлений в приложение:

  • Действия выхода в каждом подшарте вызывают elapsed , чтобы определить, как долго был активен подшаг.

  • Диаграмма использует after оператор определяет, когда вы спите или ходите дольше пяти минут, отдыхаете или выполняете упражнения дольше порога, указанного в приложении, или выполняете упражнения с высокой интенсивностью (делая более 4 шагов в секунду) дольше 15 минут. В каждом из этих случаев диаграмма обновляет значение локальных данных. notification. sf_fitness_interface диаграмма считывает это значение и вызывает появление уведомления на главном экране приложения. В зависимости от типа уведомления кнопка уведомления меняет цвет.

См. также

| |

Связанные темы