Моделирование конечных автоматов в MATLAB Simulink

Заказать уникальную курсовую работу
Тип работы: Курсовая работа
Предмет: Автоматика
  • 46 46 страниц
  • 2 + 2 источника
  • Добавлена 27.12.2020
1 496 руб.
  • Содержание
  • Часть работы
  • Список литературы
  • Вопросы/Ответы
СОДЕРЖАНИЕ

СОДЕРЖАНИЕ 2
ВВЕДЕНИЕ 3
1. СОВРЕМЕННЫЕ СРЕДСТВА ДЛЯ ОТСЛЕЖИВАНИЯ ЗДОРОВЬЯ ЧЕЛОВЕКА. 4
1.1. Текущее положение в сфере. 4
1.2. Принцип работы и устройство фитнес-браслета. 6
2. ИДЕНТИФИКАЦИ И ОПИСАНИЕ МОДЕЛИ ФИТНЕС-БРАСЛЕТА. 9
2.1. Общее описание модели. 9
2.2. Датчики. 10
2.3. Модель СУ. 11
2.4. Модель интерфейса. 11
3. РЕАЛИЗАЦИЯ С ПОМОЩЬЮ STATEFLOW. 12
3.1. О среде разработки. 12
3.2. Симулятор человека. 13
3.2.1. Общее описание блока. 13
3.2.2. Автомат счётчика шагов. 15
3.2.3. Автомат выбора режима работы браслета. 16
3.3. Входные сигналы пользовательского интерфейса(UI). 20
3.4. Симулятор браслета. 21
3.4.1. Общее описание блока. 21
3.4.2. Состояние Rest. 23
3.4.3. Состояние Sleep. 25
3.4.4. Режимы Walk и Exercise. 26
3.4.5. Состояние Exercise. 28
3.5. Контроллер пользовательского интерфейса. 30
3.5.1. Общее описание. 30
3.5.2. Автомат Activity. 32
3.5.3. Автомат Notification and Lock. 33
3.5.4. Автомат Steps. 34
3.5.5. Автомат Vital. 35
4. ЗАПУСК МОДЕЛИ. 36
4.1. Разработка модели эксперимента. 36
4.2. Тестирование симулятора человека и симулятора часов. 38
4.3. Результаты для автомата пользовательского интерфейса. 40
4.3.1. Activity. 41
4.3.2. Steps. 42
4.3.3. Notification and Lock. 43
4.3.4. Vital. 44
ЗАКЛЮЧЕНИЕ 45
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 46
Фрагмент для ознакомления

В начале производится активизация состояния легкое упражнение, далее если скорость передвижения стала выше 5 шагов в секунду, то совершается переход в состояние средней загруженности – Athlete. Затем если скорость не упала ниже 5 шагов в секунду, то возможен переход в режим перегрузки:

[duration(heart_rate>HR_th)>1] – если в течении одной секунды пульс был выше чем установленный пользователем через интерфейс, то перейти в состояние перегрузки.

К слову переход из состояния перегрузки в состояние нормального режима происходит с точностью, да наоборот, как и в случае перехода из состояния средней загрузки в состояние лёгких упражнений.



Рис.3.4.7. – Принципиальная схема состояния Athlete.



На рисунке 3.4.7. – 3.4.8. изображены схемы для состояний Athlete и Overheat, которая работает по той же аналогии что и блок схема состояния Sleep.

Теперь после рассмотрения состояния Exercise, перейдём к рассмотрению вариантов перехода в это и из этого состояния. Вопросы по переходу в это состояние подробно расписаны в предыдущей главе. Касательно выхода из этого состояния, здесь всё достаточно однозначно:
[duration(speed2] – если скорость ниже либо равна скорости walk_speed совершить выход из этого состояния.


3.5. Контроллер пользовательского интерфейса.

3.5.1. Общее описание.



Рисунок 3.5.1. – Контроллер пользовательского интерфейса.

Ещё в первой вводной главе мы рассматривали основные элементы устройства и выяснили, что на самой вершине иерархической структуры модели фитнес-браслета находится интерфейс пользователя, благодаря которому пользователь может взаимодействовать с устройством. В данном симуляторе, на контроллер поступают как сигналы с симулятора человека, так и обработанные выходные сигналы с симулятора браслета. Благодаря использованию Stateflow инструментов, даже не обладая знаниями в области прототипирования и дизайна пользовательского интерфейса(User Interface) можно спроектировать простое GUI-приложение для отображения результатов работы часов в чём собственно и будет заключаться основная задача данного модуля.



Рисунок 3.5.2. – Принципиальная схема устройства.

Как видим из принципиальной схемы симулятор состоит из двух блоков, один из которых запускает и инициализирует приложение. Во втором присутствуют четыре блока, каждый из которых имеет свой собственный небольшой конечный автомат, выполняющий свою роль. О каждом из этих автоматов мы и поговорим в следующих четырёх главах
3.5.2. Автомат Activity.



Рисунок 3.5.3. – Автомат для идентификации режима.

Итак, данный автомат служит для идентификации текущего режима активности. Как и во всех предыдущих случаях рассмотрим его работу начиная с активизированной вершины.

Итак, после активизации состояния SetActivity, требуется выставить с помощью кнопок текущий режим активности с помощью entry, далее идентифицируется и отображается выставленный режим в приложении. Также совершается переход в вершину Idle, где обнуляются шаги steps = 0 и запускается таймер time = elapsed().


3.5.3. Автомат Notification and Lock.



Рисунок 3.5.4. – Автомат уведомлений и блокировки.

Как видим из рисунка с составе этого блока присутствует главный автомат с двумя вершинами и дочерний автомат в одной из вершин, с которой и начнём описание работы автомата, поскольку в тоже время она является также активизированной вершиной.

Из названия понятно, что вершина Clock отвечает за отображения времени. Это мы и наблюдаем в дочернем автомате в виде циклического графа, суть которого заключатся в совершении перехода из начальной в конечную вершину, которые являются одной вершиной, во время перехода обновляется время отображаем в приложении в секундах.

Также происходит безусловный переход в вершину Send_UI_Notification, отвечающую за отправку уведомлений в приложение. Обратный переход в начальную вершину происходит каждые 5 секунд.

3.5.4. Автомат Steps.



Рисунок 3.5.5. – Автомат обработки шагов.

Данный автомат предназначен для анимации шагов на браслете. Из начального состояния Still, активизированного сигналом при скорости большей чем 0.01 секунда происходит переход в вершину Move, где в дочернем автомате по аналогии с предыдущими автоматами каждую секунду происходит отображение пройденных шагов.


3.5.5. Автомат Vital.



Рисунок 3.5.5. – Автомат обработки текущей жизнедеятельности.

Данный блок хранит в себе циклический автомат с одной вершиной, за заданный интервал обновляет данные о сердцебиении и пульсе на браслете пользователя.
4. Запуск модели.

4.1. Разработка модели эксперимента.



Рисунок 4.1.1. – Модель фитнес-браслета.

Итак, собрав воедино нашу модель, запустим её и посмотрим результаты. Но перед тем как стоит определиться какую ситуацию мы будем рассматривать. Исходя из активизированных вершин и общей конфигурации автоматов рассмотрим следующее событие, которое поможет нам протестировать автомат во всех режимах работы:

Rest.
В начале пользователь находится в режиме отдыха, поскольку автоматы заточена на активизацию и отсчёт от этого режима, для ускорения режима моделирования пусть этот процесс длится 20 секунд, в принципе ничего меняться в результатах модели не будет и при 20 и более минутах.




Walk.
Затем пользователь переходит в режим прогулки, например, сидел дома и пришло время идти в зал, длительность путь в зал будет также 20 секунд.

Exercise.
После прихода в зал, пользователь начинает свои тренировки и каждые 10 секунд увеличивает сложность тренировки. Затем на максимальной сложности он будет находиться 10 секунд, после чего также каждые 10 секунд будет снижать интенсивность до единицы. К слову тренировка обычно так и проходит, особенно на беговой дорожке, с максимального темпа человек сразу не останавливается.

Walk и Sleep.
Далее человек обратно возвращается домой в течении 10 секунд, после чего ложиться спать и переходит в режим сна.

Таким образом при данном раскладе мы сможем протестировать систему во всех режимах и посмотреть на поведение автоматов и их выходных значений. Тестирование симулятора человека и симулятора часов.



Рисунок 4.2.1. – Результаты симуляции для основных сигналов симулятора часов и симулятора человека.

Итак, на рисунке мы наглядно можем наблюдать, процессы, происходящие с сигналами выбранных блоков. В верхнем график мы видим, как меняется пульс человека и так же мы можем наблюдать в какой момент этот пульс, превышает максимальный пульс, заданный пользователем, в модели он задавался как 145 ударов в минуту.

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

На графике скорости мы можем наблюдать как она изменятся в каждом режиме, к слову её динамика повторяет динамику пульса, что логично и отображает правильность работы соответствующих автоматов.

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



Рисунок 4.2.2. – График интенсивности упражнений.

К сожалению, не получилось разумно разместить этот график непосредственно под графиками рисунка 4.2.1., из-за ограничений в количестве сигналов Scope, однако это не отменяет факта правильности его отображения и согласованности с выше рассмотренными графиками. На нём мы видим, как с ростом интенсивности, растёт динамика подсчёта шагов, значений скорости и пульса.

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


Результаты для автомата пользовательского интерфейса.

Для просмотра работы автоматов симулятора контроллера пользовательского интерфейса предлагаю добавить дополнительные каналы на выходе модели контроллера и распределить их по группам для каждого блока: Activity, Notification and Lock, Steps, Vital.


Рисунок 4.3.1. – Исследование модели контроллера.

Таким образом мы сможем исследовать автомат каждого блока и понять насколько корректно они работают.



Рисунок 4.3.2. – Интерфейс.
Activity.



Рисунок 4.3.3. – Исследование Activity.

Как видим из рисунка, по графикам здесь наглядно показано как автомат реагирует на изменения режимов. Как мы помним из третьей главы где описывался автомат Activity, что при изменении активности из начальной вершины SetActivity автомат переходит в состояние Idle и начинает отсчёт времени, это мы и можем наблюдать на графиках.

Steps.



Рисунок 4.3.4. – Результаты работы автоматов блока Steps.

На рисунке мы видим, то происходит при изменении количества шагов. Также из третьей главы мы вспоминаем, что блок Steps состоял из родительского автомата Still – Move – Still и дочернего Idle – Update – Idle.

Итак, во-первых, мы сразу видим, что переходов не происходит в режимах сна и отдых, что собственно логично, человек не двигается с места. Однако дальше мы замечаем, как всё меняется при переходе в активные режимы.

Во-вторых, происходит переход из Still в Move и обратно при начале движения, и мы также видим постоянные переходы из Idle в Update и обратно, для отслеживания пройденных шагов. Что примечательно мы видим, как меняется динамика расчёта шагов, но мы также видим, что динамика переходов остаётся той же.
Это прежде всего связано с логикой автомата Idle – Update – Idle. Он каждую секунду отправляет данные о количестве пройденных шагов, поэтому и частота переходов не меняется, но разница между предыдущим отображённым на экране значении и новым, при переходе из режимов и изменении интенсивности тренировки меняется.


Notification and Lock.



Рисунок 4.3.5. – Исследования отправителя данных контроллера.

Каждые пять секунд проверялось, нужен ли переход из вершины Clock в состояние Send_UI_Notification в автомате Clock-Send_UI_Notification-Clock, чтобы отсылать сообщения. Что мы и видим на графиках.


Vital.



Рисунок 3.4.6. График обновления данных о жизнедеятельности.

Опять же вспоминая третью главу в блоке Vital находился циклический автомат и всё время совершал переход в самого себя что и видим на графике.

заключение

В процессе работы была предложена модель для исследования фитнес-браслета. Благодаря инструментарию Stateflow были построены и протестированы автоматы в модели. Таким образом была показана возможность использования конечных автоматах в проектировании и исследовании принципов работы фитнес часов.
список использованных источников


Марченков С. С.Конечные автоматы. М.: Физматлит, 2008. 56 с.
Документация MatLab // mathworks.com. URL: https://www.mathworks.com/products/stateflow.html (дата обращения: 17.11.2020).














44

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ


1. Марченков С. С.Конечные автоматы. М.: Физматлит, 2008. 56 с.
2. Документация MatLab // mathworks.com. URL: https://www.mathworks.com/products/stateflow.html (дата обращения: 17.11.2020).

Вопрос-ответ:

Для чего используется моделирование конечных автоматов в MATLAB Simulink?

Моделирование конечных автоматов в MATLAB Simulink используется для разработки и анализа систем, в которых поведение системы можно представить в виде последовательности состояний и переходов между ними.

Как работает фитнес браслет?

Фитнес браслеты работают путем измерения различных физиологических параметров человека, таких как пульс, активность, сон и т. д. Они оснащены различными датчиками, которые собирают данные, и затем обрабатывают их для получения информации о здоровье и активности человека.

Каково текущее положение в сфере разработки и отслеживания здоровья человека?

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

Какая модель используется для описания фитнес браслета?

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

Какие датчики используются в фитнес браслете?

Фитнес браслеты обычно оснащены датчиками пульса, акселерометром для измерения активности и движения, датчиком сна для отслеживания качества сна, а также иногда имеют GPS для отслеживания маршрута и расстояния.

Зачем нужно моделирование конечных автоматов в MATLAB Simulink?

Моделирование конечных автоматов в MATLAB Simulink позволяет создавать и анализировать сложные системы с изменяющимся состоянием. Это полезно для разработки и отладки программного обеспечения, контроля состояния системы и автоматического управления.

Какие существуют современные средства для отслеживания здоровья человека?

Современные средства для отслеживания здоровья человека включают в себя различные фитнес-браслеты, умные часы и медицинские устройства. Они позволяют измерять физическую активность, сердечный ритм, качество сна и другие параметры здоровья.

Каков принцип работы и устройство фитнес-браслета?

Фитнес-браслеты обычно оснащены различными датчиками, которые измеряют физическую активность пользователя, такую как шаги, расстояние, калории и пульс. Они также могут отслеживать качество сна и напоминать о физической активности. Информация с фитнес-браслета передается на смартфон или компьютер для анализа и отображения данных.