Реализация типовых алгоритмов управления во встроенных системах

Идентификация моделей динамических систем. Исследование способов построения Интернет-соединения. Характеристика дискретного представления ПИД-регулятора. Особенность выбора микроконтроллерной платформы. Изучение погрешности при дифференцировании.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 04.12.2019
Размер файла 2,6 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

· при разработке имеется возможность использовать практически любой язык программирования;

· устройство поддерживает многопоточные приложения;

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

К ряду особенностей, присущих устройствам, реализованным на архитектуре SoC, можно отнести следующие:

· Повышенные требования к линиям питания - для подключения питания требуются более сложные преобразователи напряжения, ввиду непереносимостью минимальных скачков напряжения;

· Сложность работы с аналоговыми устройствами - большинство устройств не имеют предусмотренных производителем цифро-аналоговых преобразователей и аналоговых выходов;

· Низкая энергоэффективность - у устройств высокое энергопотребление, вследствие чего практически невозможно реализовать полностью автономное устройство, независимое от линий постоянного питания;

· Высокая стоимость, ввиду дороговизны используемых компонент.

Устройства, построенные на SoC-архитектуре, нашли массовое применение в системах, реализующих концепции «Умный дом» и «Интернет вещей», также нашли применение в области робототехники [25].

В качестве примера устройства на платформе Raspberry Pi можно привести Raspberry Pi Model 3 B+ - одно из наиболее распространённых и актуальных на момент написания работы устройств. В таблице 5 [26] приведены эксплуатационные характеристики данной модели устройства.

Таблица 5. Параметры платы Raspberry Pi Model 3 B+

Параметр

Значение

Микропроцессор

Broadcom BCM2837B0, Cortex-A53

Тактовая частота микропроцессора

1.4 ГГц

Разрядность микропроцессора

64 бит

ОЗУ

1 Гб

Поддерживаемый сетевой стандарт

IEEE 802.13b/n/ac

Интерфейс USB

4 порта версии 2.0

Прочие интерфейсы

HDMI, 3.5 audio

ОС

Debian

Рабочее напряжение

5 В

Цифровые входы/выходы

40 (1 из которых может использоваться как выход ШИМ)

Аналоговые выходы

Нет

Изображение платы Raspberry Pi Model 3 B+ представлено на рисунке 8.

Рисунок 8. Raspberry Pi Model 3 B+, вид сверху.

В разделе работы рассмотрены микроконтроллерные платформы Arduino, STM и Raspberry Pi, приведены эксплуатационные параметры наиболее распространённых плат, выполненных на этих платформах. Сравнивая эти характеристики, стоит отметить избыточную функциональность, предоставляемую платформой Raspberry Pi, при высокой стоимость данного решения. Большинство функциональны возможностей платформы Raspberry Pi направлено на работу с мультимедийными форматами. Высокая производительность и использование операционной системы, приводят к мысли, что использовать данную платформу целесообразно для реализации сервера, замыкающего на себе взаимодействие и обмен информацией с различными подсистемами, формирующими цельную, сложную систему, позволяющую решать множество различных задач.

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

В сравнении с платформой STM, платформа Arduino обладает схожими функциональными возможностями, при этом уступая по некоторым параметрам в производительности и имеет схожую стоимость. Однако процесс разработки на платформе Arduino заметно проще, в сравнении с STM, ввиду простого расширения функциональности и большего количества библиотек, разработанных сообществом разработчиков-пользователей и производителями, совместимых с любым устройством, реализованным на данной платформе. В сравнении с Raspberry Pi, микроконтроллерные платы, выполненные на платформе Arduino, обладают меньшими функциональными возможностями, однако их вполне достаточно для решения поставленной задачи, и, исходя при этом из меньшей стоимости решений на платформе Arduino, в качестве основы для реализации ПИД-регулятора с использованием сетевого подключения, по сравнению с платформой Raspberry Pi выбирается именно эта платформа.

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

4. Реализация

Процесс реализации ПИД-регулятора на микроконтроллерной платформе с использованием сетевого подключения можно разделить на несколько этапов:

· Выбор микроконтроллерной платформы

· Программная реализация возможности сетевого подключения

· Программная реализация алгоритмов ПИД-регулятора

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

· Возможность реализации подключения по сети;

· Низкие временные затраты на разработку, ввиду не высокой сложности;

· Большое количество программных библиотек, предоставляемых производителями и сообществом разработчиков;

· Удовлетворительную стоимость комплектующих;

· Высокий спрос на готовые решения на данной платформе;

· Распространенность применения решений, использующих данную платформу.

4.1 Реализация интернет-соединения

Для реализации интернет-соединений используется архитектура клиент-сервер, в которой роль сервера выполняет модуль, реализованный на плате Arduino Uno, роль клиента - веб-браузер пользователя.

Подключение по сети на платформе Arduino реализуется с использованием модуля расширения функциональных возможностей платы - Ethernet Shield W5100 [28]. Данный модуль совместим с платами Arduino Uno и более старшими моделями. Модуль подключается к основной плате посредством интерфейса SPI, задействуя выводы под номерами 10, 11, 12, 13. Внешнее подключение обеспечивается использованием стандартного интерфейса RJ45. Эксплуатационные характеристики платы расширения Ethernet Shield W5100 представлены в таблице 3.

Таблица 6. Эксплуатационные характеристики платы Ethernet Shield W5100

Параметр

Значение

Напряжение питания

5 В

Внутренний буфер

16 кбит

Скорость подключения

10 и 100 Мбит/с

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

· Ethernet - класс предоставляет реализацию базовых сетевых протоколов, и используется для установления сетевого подключения по протоколу TCP;

· EthernetUDP - класс используется для установления сетевого подключения по протоколу UDP;

· Client - класс реализующий обработку действий клиента в архитектуре клиент-сервер;

· Server - класс реализующий обработку действий сервера в архитектуре клиент-сервер;

В процессе разработки были задействованы классы Ethernet, Client, Server. Стоит отметить, что для нормального функционирования библиотеки Ethernet.h и работы с модулем расширения Ethernet Shield W5100 необходимо подключение дополнительной библиотеки SPI.h несмотря на то, что классы и функции, содержащиеся в ней, не используются в явном виде в коде программы.

Взаимодействие веб-браузера с сервером осуществляется посредством использования стандартный HTTP-запросов GET и POST. При первом подключении клиент передает запрос GET содержащий не более 255 символов, запрашивая основную веб-страницу, которую сервер формирует использую HTML разметку. В реализации не использовались CSS-стили и скрипты, выполняемые на стороне клиента, представляющие собой строковые константы, хранящиеся в памяти сервера, ввиду ограниченности объема ОЗУ, предоставляемого платформой Arduino. Отсутствие браузерных скриптов и CSS-стилей не сказывается на работоспособности страницы, однако без их использования практически невозможно реализовать современное, красивое оформление страницы. В результате взаимодействия пользователя с отображаемой веб-страницей веб-браузер формирует POST-запросы для передачи вводимой информации. Такое поведение браузера не требует специализированного кода, и является стандартным при поддержке HTML5. В качестве примера использования HTML5 для формирования POST-запросов можно привести фрагмент программного кода, формирующего текстовое поле для ввода данных и кнопку для формирования и отправки запроса:

где тег form используется для группировки объектов, обозначая ту часть вводимых данных, которую требуется передать серверу, action=”” означает, что ответ должен быть передан на тот же адрес, с которого была получена веб-страница, method=”post” - использование POST-запроса, input type = “text” name = “NewVal”- формирование на веб-странице текстового поля для ввода, при этом введенные данные будут переданы с названием NewVal в формате NewVal=«введенное значение» , button type=”submit” - формирование кнопки, при нажатии на которую будет сформирован и отправлен POST-запрос на сервер, содержащий информацию, введенную в границах тега form.

Для реализации сетевого соединения с использованием стека протоколов TCP/IP используется метод begin() класса Ethernet [28], в который в качестве параметров передаются заранее установленные константные значения MAC-адреса устройства и локальный IP-адрес сервера. Данный класс статичный и не требует инициализации экземпляра класса. Вызов метода begin() осуществляется один раз за время жизни программы в блоке setup(), при этом после вызова метода предусматривается задержка в 300 миллисекунд для нормального функционирования сетевого подключения.

Для реализации функциональности веб-сервера используется класс EthernetServer. Класс требует инициализации, принимая номер сетевого порта в качестве аргумента конструктора. При разработки задействуются следующие методы:

· begin() - инициирует работу веб-сервера, вызывается один раз за время жизни приложения в блоке setup().

· available() - метод возвращает экземпляр класса EthernetClient, при наличие в буфере некоторого количества байт для чтения, переданных серверу со стороны подключенного клиента. Используется в блоке loop() - выполняется бесконечное количество раз в течение всего времени жизни программы. Между вызовами установлена задержка в 50 миллисекунд.

Для реализации взаимодействия с подключенным к серверу клиентом используется класс EthernetClient. Экземпляр класса инициализируется один раз в блоке setup(), ввиду того, что в данном решении не требуется возможность подключения нескольких клиентов. При разработке задействованы следующие методы данного класса:

· connected() - метод, возвращающий истину или ложь, используется для проверки соединения с клиентом;

· available() - метод, возвращающий количество принятых байт в HTTP-запросе клиента, используется для идентификации получения запроса;

· read() - метод возвращает один символ из полученного запроса, используется для считывания полученного HTTP-запроса

· println() - метод, принимающий в качестве аргумента строку, используется передачи ответного HTTP-сообщения клиенту.

Для формирования HTML-страницы и ее передачи на сторону клиента реализованы 3 функции:

· PrintHTTPHeader() - функция формирует и передает на сторону клиента заголовочную часть HTTP сообщения. Формирование заголовочной части вынесено в отдельную функцию для уменьшения количества строковых констант, хранимых в оперативной памяти микропроцессора, поскольку данный блок идентичен для всех формируемых страниц. Заголовочный блок HTTP-сообщения содержит в себе метаинформацию о сообщении и код, передаваемый на сторону клиента служащий для идентификации успешности подключения, в конкретном случае - 200 OK, означающий, что подключение установлено - сервер доступен для обмена информацией.

· PrintBasePage() - функция формирует и передает на сторону клиента страницу, которая отображается при первом подключении к серверу.

· PrintPage() - функция формирует и передает на сторону клиента страницу, которая содержит основную информацию о настроенных коэффициента ПИД-регулятора, предельные значения воздействующего устройства, текущее и установленное значения управляемой величины, а также кнопки, при нажатии на которые изменяются настройки ПИД-регулятора.

Для реализации обработки получаемых на стороне сервера сообщений реализованы функции GetPostRequest() - отвечающая за посимвольное считывание полученного HTTP-сообщения и сохранение информации в строковую переменную, и функция PerformCommand() - анализирующая полученное сообщение, сохраненное в строковой переменной посредством поиска ключевых элементов с использованием методов базового класса String библиотеки Arduino.h, и на основании полученных данных вызывающая соответствующие функции настройки и обработки ПИД-регулятора.

Полученный интерфейс, отображаемый на странице в веб-браузере приведен на рисунке 9

Рисунок 9. Интерфейс отображаемой веб-страницы.

Где кнопка Refresh используется для обновления установленных значений коэффициентов ПИД-регулятора, введенные в строки P, I, D. В общем случае в данных строках отображаются текущие значения коэффициентов. Кнопка Set используется для установки нового значения управляемой величины, вводимый в строку Value. Текст HTML-разметки данной страницы приведен в Приложении 1.

1.2 Реализация ПИД-регулятора

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

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

· GetCurrentValue() - функция получения текущего значения управляемой величины, при использовании текущего программного кода, данная функция требует корректировки с учетом физической модели конкретного объекта управления, а также интерфейса взаимодействия с используемыми датчиками.

· ClearSettings() - функция сбрасывающая настройки ПИД-регулятора, принимающая в качестве аргумента указатель на структуру, содержащую данные настройки

· SetNewSettings() - функция устанавливающая настройки ПИД-регулятора принимающая в качестве аргумента указатель на структуру, в которую необходимо записать данные настройки.

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

Расчет управляющего воздействия реализован на основании формулы 37, описывающей дискретную форму ПИД-регулятора. Для упрощения формула была преобразована на основании выражения 21, с целью отказаться от интегрально коэффициента ПИД-регулятора, стоящего в знаменателе дроби [30]. При расчете управляющего воздействия ПИД-регулятора в функции CalcPIDOutput() используется метод алгоритмического ограничения интегрирования, снижающий до нуля влияние интегральной компоненты ПИД-регулятора, при достижении заданного значения, обусловленного техническими параметрами воздействующего устройства объекта управления. С учетом данного дополнения итоговое выражение принимает вид [30]:

,

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

В ходе разработки был реализован программной код реализующий алгоритм ПИД-регулятора с использованием сетевых технологий. При реализации был выбран ПИД-регулятор первого порядка, использующий простейшую математическую модель. Базовый алгоритм был дополнен алгоритмическим ограничения интегрирования. Реализация не является единственной возможной, и не представляет собой идеальную модель ПИД-регулятора, учитывающую все возможные нюансы, связанные с различиями в моделях возможных объектов управления, однако являющуюся универсальной. В работе не рассматривается пример непосредственного взаимодействия с реальным объектом управления.

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

Тестирование

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

· Синтезировать модель первого порядка объекта управления, для последующего расчета коэффициентов ПИД-регулятора;

· Рассчитать коэффициенты ПИД-регулятора;

· Подключить тестовый стенд к линиям питания, обеспечить подключение к сети, посредством интерфейса RJ45;

· Скорректировать значения IP-адреса в соответствии с текущими настройками локальной сети

· Скорректировать алгоритм получения значения выходной переменной объекта управления посредством дополнения программного кода функции GetCurrentValue();

· Запустить тестовый стенд

· В веб-браузере перейти на страницу, предоставляемую ПИД-регулятором, убедиться в доступности сервера, основанного на микроконтроллерной платформе;

· Ввести рассчитанные коэффициенты ПИД-регулятора, максимальное и минимальное возможное воздействие исходя из параметров физической модели и технических характеристик воздействующего объекта, нажать кнопку Refresh;

· ввести установленное значение управляемой величины, нажать кнопку Set;

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

Заключение

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

При написании работы был выбран ориентир, на разработку прототипа АСУ, которая была бы легко встраиваемая в современные разработки, используемые в концепциях «Умный дом» и «Интернет вещей». В качестве целей работы были поставлены и достигнуты следующие:

· Проведен анализ в области типовых алгоритмов управления теории автоматизированного управления

· Проведен анализ в области построения автоматизированных систем управления, использующих сетевые технологии

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

· Разработан прототип АСУ с использованием сетевого подключения

· Реализован типовой алгоритм управления - ПИД-регулятор

· Предложена методика тестирования разработанной системы

При проведении анализа были рассмотрены основные принципы построения моделей объектов управления, приведены математические выкладки, описывающие поведение таких моделей. Был рассмотрен алгоритм ПИД-регулятора, описаны принципы построения таких регуляторов, а также типовые проблемы возникающие при построении АСУ с использованием ПИД-регуляторов и приведены типовые способы их решения. В ходе работы описаны базовые принципы расчета коэффициентов ПИД-регулятора.

Рассмотрены принципы построения клиент-серверной архитектуры, с целью применить результаты проведенного анализа при реализации АСУ на микроконтроллерной платформе.

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

В ходе работы реализована АСУ, основанная на алгоритме ПИД-регулятора, мониторинг работы и настройка которой, производится посредством сетевого подключения. В такой АСУ микроконтроллеры выступает в роли веб-сервера в клиент-серверной архитектуре. Приведена методика тестирования разработанной системы.

При написании данной работы вводились ограничения. В рамках данной работы не рассматривается практическое построение модели объекта управления. Большинство рассмотренных в аналитической части алгоритмов являются базовыми, без рассмотрения частных случаев реализации. Разработанная система не гарантирует высокого качества регулирования и устойчивости, ввиду того что при разработки использовались общие принципы построения АСУ и типовые алгоритмы, без рассмотрения особенностей конкретных объектов управления.

Список литературы

Приложение

HTML-код разметки основной веб страницы.

Функция PrintHTTPHeader()

Функция CalcPidOutput()

Функция GetPostRequest()

Функция PerformCommand()

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.