Смоделируйте средство отслеживания фитнеса

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

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

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

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

Соедините график с приложением MATLAB

График App Interface сконфигурирован, чтобы передать с приложением MATLAB sf_fitness_app.

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

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

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

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

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

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

Определите средство отслеживания фитнеса Выход

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

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

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

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

Смотрите также

| | | | | (MATLAB Coder)

Похожие темы