Моделируйте Fitness Tracker

В этом примере показано, как создать интерфейс между графиком Stateflow ® и приложением MATLAB ®, созданным в App Designer. Для других примеров, которые показывают, как соединить диаграмму Stateflow с приложением MATLAB, смотрите Модель Контроллера Степени и Симуляция Медиаплеера. Для версии этого примера, которая использует автономные диаграммы в MATLAB, смотрите Модель приложения Fitness при Помощи автономных диаграмм.

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

Диаграмма Stateflow App Interface обеспечивает двунаправленное соединение между приложением MATLAB и системами управления и объекта в модели Simulink ®. Когда вы взаимодействуете с виджетами в приложении, график связывает ваши выборки с другими графиками в модели. И наоборот, график использует выход фитнес-трекера, чтобы обновить числовое и текстовое поля в приложение.Для примера, когда вы нажимаете кнопку Rest в приложении, App Interface график устанавливает значение выхода activity к перечисленному значению Activity.Rest. The Human Simulator график реагирует, создавая значения жизненно важных признаков, которые моделируют человека в рест. Fitness Tracker график анализирует эти значения и устанавливает выходной сигнал status на Activity.Rest. The App Interface график контролирует этот сигнал и обновляет содержимое поля Status в приложении, чтобы Rest.

Чтобы запустить пример, откройте модель Simulink и нажмите запуск. График App Interface открывает приложение и инициализирует Human Simulator и Fitness Tracker чарты. В то время как пример работает, одна секунда симуляции представляет одну минуту времени упражнения. Чтобы остановить симуляцию, нажмите кнопку Остановить или закрыть приложение.

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

График App Interface настроена для связи с приложением MATLAB sf_fitness_app.

  • Приложение использует свойство под названием chart для взаимодействия с графиком App Interface. Коллбэки приложения используют это свойство, чтобы считать входы графика и записать в выходы графика. Для примера при изменении значения одного из полей на панели Settings коллбэка обновляет значение соответствующего поля структуры output threshold. Точно так же, когда вы выбираете новое действие или изменяете интенсивность тренировки на панели Human Simulator, коллбэк устанавливает значение выходов графика activity и intensity. Наконец, когда вы закрываете приложение, UIFigureCloseRequest коллбэк устанавливает значение вывода на графике stop на true.

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

Для получения дополнительной информации о том, как создать двунаправленное соединение между приложением MATLAB и диаграммой Stateflow, смотрите Модель Контроллера Окна Степени и Симуляция Медиаплеера.

Функции, используемые для взаимодействия с приложением, не поддерживаются для генерации кода, поэтому InterfaceWithApp состояние сначала вызывает coder.extrinsic функция для объявления их внешним кодом MATLAB. Для получения дополнительной информации смотрите Вызов внешних функций MATLAB в диаграммах Stateflow.

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

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

Определите выход Fitness Tracker

График Fitness Tracker моделирует базовую логику фитнес-трекера. График состоит из четырёх субдиаграмм, которые соответствуют возможным действиям. График регистрирует ваш статус активности на основе частоты сердечных сокращений и скорости, произведенных Human Simulator график и переходы между этими субдиаграммами. Чтобы отфильтровать шум сигнала, график использует duration оператор для реализации простой логики демпфирования. Например, когда вы находитесь в покое, можно сделать некоторые быстрые и внезапные движения, которые не соответствуют упражнениям. График определяет, что вы идете или выполняете упражнения, только если ваше движение длится больше двух минут (или двух секунд времени симуляции). График контролирует активное дочернее состояние и передает эту информацию в App Interface отобразить через выходные данные status. Для получения дополнительной информации смотрите Мониторинг активности состояния через данные активного состояния.

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

  • Действия выхода в каждой субдиаграмме вызывают elapsed оператор, чтобы определить, как долго субдиаграмма был активная. График сообщает это значение, наряду с другой информацией, такой как частота сердечных сокращений и общее количество шагов, App Interface график через структуру output display.

  • На графике используются after оператор, чтобы определить, когда вы спите или ходите дольше пяти минут, отдыхаете или упражняетесь дольше, чем порог, указанный вами в приложении, или упражняетесь с высокой интенсивностью (делая более 4 шагов в секунду) в течение более 15 минут. В каждом из этих случаев график отправляет Notification сообщение. The App Interface график получает это сообщение и приводит к появлению уведомления на главном отображении приложения. В зависимости от типа уведомления кнопка уведомления изменяет цвет.

См. также

| | | | (MATLAB CODER) | (Simulink)

Похожие темы