Українська   English
 

Реферат по теме выпускной работы

При написании данного реферата магистерская работа еще не завершена. Окончательное завершение: июнь 2021 года. Полный текст работы и материалы по теме могут быть получены у автора или его руководителя после указанной даты.

Содержание

Введение

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

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

1. Классификация систем распознавания

Существует несколько основных алгоритмов обнаружения объектов, которые можно разделить на две группы:

  1. Алгоритмы, основанные на классификации.

    Они реализуются в два этапа. Сначала алгоритм выбирает интересующие области на изображении. После чего, классифицируют эти области с помощью сверточных нейронных сетей. Это решение может быть медленным, потому что нам нужно выполнять прогнозы для каждого выбранного региона. Широко известным примером этого типа алгоритма является сверточная нейронная сеть на основе регионов (RCNN) и ее родичи Fast-RCNN, Faster-RCNN и последнее дополнение к семейству: Mask-RCNN. Или же – RetinaNet.

    Архетектура на основе R-CNN (Regions with Convolution Neural Networks features): R-CNN, Fast R-CNN, Faster R-CNN, Mask R-CNN. Для обнаружения объекта на изображении с помощью механизма Region Proposal Network (RPN) выделяются ограниченные регионы (bounding boxes). Первоначально вместо RPN применялся более медленный механизм Selective Search. Затем выделенные ограниченные регионы подаются на вход обычной нейросети для классификации. В архитектуре R-CNN есть явные циклы for перебора по ограниченным регионам, всего до 2000 прогонов через внутреннюю сеть AlexNet. Из-за явных циклов for замедляется скорость обработки изображений. Количество явных циклов, прогонов через внутреннюю нейросеть, уменьшается с каждой новой версией архитектуры, а также проводятся десятки других изменений для увеличения скорости и для замены задачи обнаружения объектов на сегментацию объектов в Mask R-CNN.

  2. Алгоритмы, основанные на регрессии.

    Вместо выбора интересных частей изображения они определяют классы за один прогон алгоритма. Двумя наиболее известными примерами из этой группы являются алгоритмы семейства YOLO (You Only Look Once) и SSD (Single Shot Multibox Detector). Обычно используются для обнаружения объектов в реальном времени, поскольку, как правило, они жертвуют точностью ради значительного повышения скорости.

    YOLO – первая нейронная сеть, которая распознавала объекты в реальном времени на мобильных устройствах. Отличительная особенность: различение объектов за один прогон (достаточно один раз посмотреть). То есть в архитектуре YOLO нет явных циклов for, из-за чего сеть работает быстро. Например, такая аналогия: в NumPy при операциях с матрицами тоже нет явных циклов for, которые в NumPy реализуются на более низких уровнях архитектуры через язык программирования С. YOLO использует сетку из заранее заданных окон. Чтобы один и тот же объект не определялся многократно, используется коэффициент перекрытия окон (IoU, Intersection over Union). Данная архитектура работает в широком диапазоне и обладает высокой робастностью: модель может быть обучена на фотографиях, но при этом хорошо работать на рисованных картинах.

    SSD – используются хаки архитектуры YOLO (например, non-maximum suppression) и добавляются новые, чтобы нейросеть быстрее и точнее работала. Отличительная особенность: различение объектов за один прогон с помощью заданной сетки окон (default box) на пирамиде изображений. Пирамида изображений закодирована в сверточных тензорах при последовательных операциях свертки и пулинга (при операции max-pooling пространственная размерность убывает). Таким образом определяются как большие, так и маленькие объекты за один прогон сети.

2. Распознавание в реальном времени

В случае распознавания в реальном времени используют алгоритмы, основанные на регрессии, так как вместо выбора интересных частей изображения они определяют классы за один прогон алгоритма что существенно увеличивает скорость. При выходе YOLOv1 в 2016 году показатели точность-скорость были сопоставимы с показателями SSD, к тому же YOLOv1 более проста в применении. YOLO активно поддерживается и улучшается, и с каждым новым поколением становится быстрее, точнее. Улучшенная YOLOv2 превышала по скорости SSD, а специальная конфигурация с аббревиатурой –tiny разработанная для применений в мобильных устройствах существенно увеличивала скорость работы, но жертвовала точностью. –tiny так же получила свое продолжение в последующих поколениях. YOLOv3 шагнула еще дальше увеличив свои показатели и по точности и по скорости работы. Бесспорно, последнее поколение YOLOv4 является самой быстрой и точно системой распознавания объектов среди своих конкурентов. Очевидный выбор для распознавания в реальном времени это YOLO. Все потому что YOLO специально разработанный для применения в мобильных устройствах вовсе не имеет в себе явных циклов for, и к тому же полностью написан на языке C, что является одним из удачных решений для скоростной системы распознавания.

Как уже было сказано это алгоритм, основанный на регрессии, вместо выбора интересных частей изображения и классификации их он определяет классы путем сканирования всего изображения за один прогон алгоритма. Процесс сканирования всего изображения начинается с предварительно определенного окна n*n пикселей, которое выдает логический результат, который принимает значение true, если указанный объект присутствует в отсканированной части изображения, и значение false, если это не так. После сканирования всего изображения алгоритм увеличивает размер окна, которое используется для повторного сканирования изображения. Методы на основе деформируемых моделей частей для обнаружения объектов (DPM), используют эту технику, которая называется скользящим окном. Модель YOLO была разработана для нейронной сети с открытым кодом на основе DarkNet. Но одним DarkNet реализация не ограничивается, YOLO можно реализовать и на Keras и на том же Tensorflow. Но DarkNet полностью отвечает требованиям, так как так же полностью написан на C, а значит быстродействие в рамках реального железа гарантированно.

Скользящее окно

Рисунок 1 – Скользящее окно (анимация: 98 кадров, 6 циклов, 277 кбайт)

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

Задачи подобного рода требуют соответствующего оборудования, а в случае автоматизации производственной линии, становится вопрос о рентабельности и соотношении цена-скорость подобного рода системы. Поэтому будут рассмотрены решения, направленные на использование максимально дешевого оборудования. Представленный подход подойдёт для практически любого оборудования, будь то ноутбук со встроенным графическим ядром, или же Raspberry-pi. Так как в нашей реализации вместо рекомендованного и быстрого GPU используется CPU. Это негативно скажется на скорости работы, буквально в десятки раз. Но даст возможность изучить особенности и реализовать систему буквально всем.

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

Правило выбора GPU для машинного обучения следующее:

  1. показатели пропускной способности, работа с RNN;
  2. показатели FLOPS, работа со сверткой;
  3. используйте тензорные ядра, если можете себе позволить.
Статистика производительности

Рисунок 2 – Статистика производительности

Из этих данных видно, что RTX 2070 является более экономичным, чем RTX 2080 или RTX 2080Ti. Почему это так? Способность выполнять 16-битные вычисления с Tensor Cores намного более ценна, чем просто наличие большого количества тензорных ядер. С RTX 2070 вы получаете эти функции по самой оптимальной цене. В данное сравнение не включены новые карты серии RTX 30xx, так как данных по ним еще недостаточно.

4. Подготовка набора данных

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

Рабочее окно программы LabelImg

Рисунок 3 – Рабочее окно программы LabelImg

Файл .txt хранит в себе данные для каждого объекта в новой строке в заданном порядке:

[object-class] [x] [y] [width] [height], где:

[object-class] – целое число объектов для распознавания от 0 до (N-1).

[x] [y] – это центр прямоугольника.

[width] [height] – значения с плавающей запятой относительно ширины и высоты изображения, в диапазоне от 0,0 до 1,0.

Пример такого файла:

2 0.703750 0.208437 0.430833 0.353125

3 0.276667 0.330937 0.395000 0.291875

0 0.572917 0.513437 0.222500 0.096875

1 0.479583 0.687187 0.165833 0.233125

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

Так же рекомендую сделать зеркальные копии по горизонтали или же вертикали и классифицировать и их. Нейросеть распознает данные изображения как новые, что положительно скажется на распознавании в разных плоскостях. Зная, как формируется файл меток, и немного разобравшись в нескольких библиотеках python можно написать простенькую программку, которая отзеркалит изображение по оси X и Y и по нужным правилам создаст для них метки в отдельном .txt файле. В этой части работы каждый волен изгаляется по-своему, описывать свою программу не буду, не по теме.

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

Созданная база данных должна быть разделена на данные на которых непосредственно будет проводиться обучение, и данные для валидации.

5. Облачное обучение нейронной сети

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

Google Colab — это бесплатный облачный сервис на основе Jupyter Notebook с поддержкой Python 2–3, из коробки. Google Colab предоставляет всё необходимое для машинного обучения прямо в браузере, даёт бесплатный доступ к невероятно быстрым GPU и TPU. Но к сожалению накладывает некоторые ограничения, такие как ограничение по времени в 12 часов, по прошествии которых вас отключат от виртуальной машины, и возможность использовать только один графический процессор, предоставленный вам из числа свободных на данный момент. У таких GPU есть минимальные требования, которые соответствуют требованиям обучения, но все же они обладают разными характеристиками.

Так как реализация проводится в рамках использования маломощного оборудования то используем DarkNet, и файл весов darknet53.conv.74. Прежде чем начать обучение необходимо убедится что ваш блокнот Google Colab использует GPU, так же необходимо сделать перекомпиляцию Makefile с учетом используемых мощностей, создать свою конфигурацию yolov3_training.cfg желательно основанную на оригинале yolov3.cfg или же yolov4.cfg если используется более новая версия.

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

Обучение займет весьма большое количество времени, и чаще всего для реально точных показателей потребуется гораздо больше 12 часов выделенных Google Colab, поэтому рекомендую делать пересохранение файла весов .cfg каждые 100 эпох в так же облачный ресурс Google Drive. Это облегчит процесс в разы, благодаря этому при выбросе по истечению 12 часов, а чаще всего даже раньше вы не потеряете данные и сможете основываясь уже на этом файле весов продолжить обучение. Но следует учесть что Google Drive имеет ограничение в 15Gb поэтому рекомендую очищать устаревшие файлы весов.

6. Описание проекта лабораторной установки

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

Упрощенная конструкция лабораторной установки

Рисунок 4 – Упрощенная конструкция лабораторной установки

Набор датчиков используемых в системе:

Для сигнализации поступления и ухода объекта сортировки используются оптические датчики, или датчики давления.

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

Для управления приводами необходимо использовать датчик Холла или же энкодер.

Важно уточнить если данная конструкция намеренно будет использоваться в рамках производства то связь между системой распознавания и микроконтроллером реализованная по Serial Port или же SPI весьма нестабильное решение. Именно поэтому необходимо сделать переход от Serial Port (USART RS-232) к промышленному стандарту RS-485 и протоколу ModBus.

7. RS-485 и протокол ModBus RTU

7.1 Описание RS-485

Интерфейс RS-485 (другое название – EIA/TIA-485) – один из наиболее распространенных стандартов физического уровня связи. Физический уровень – это канал связи и способ передачи сигнала (1 уровень модели взаимосвязи открытых систем OSI).

Сеть, построенная на интерфейсе RS-485, представляет собой приемопередатчики, соединенные при помощи витой пары – двух скрученных проводов. В основе интерфейса RS-485 лежит принцип дифференциальной (балансной) передачи данных. Суть его заключается в передаче одного сигнала по двум проводам. Причем по одному проводу (условно A) идет оригинальный сигнал, а по другому (условно B) – его инверсная копия. Другими словами, если на одном проводе 1, то на другом 0 и наоборот. Таким образом, между двумя проводами витой пары всегда есть разность потенциалов: при 1 она положительна, при 0 – отрицательна.

Соединенные при помощи витой пары

Рисунок 5 – Соединенные при помощи витой пары

Именно этой разностью потенциалов и передается сигнал. Такой способ передачи обеспечивает высокую устойчивость к синфазной помехе. Синфазной называют помеху, действующую на оба провода линии одинаково. К примеру, электромагнитная волна, проходя через участок линии связи, наводит в обоих проводах потенциал. Если сигнал передается потенциалом в одном проводе относительно общего, как в RS-232, то наводка на этот провод может исказить сигнал относительно хорошо поглощающего наводки общего (земли). Кроме того, на сопротивлении длинного общего провода будет падать разность потенциалов земель – дополнительный источник искажений. А при дифференциальной передаче искажения не происходит. В самом деле, если два провода пролегают близко друг к другу, да еще перевиты, то наводка на оба провода одинакова. Потенциал в обоих одинаково нагруженных проводах изменяется одинаково, при этом информативная разность потенциалов остается без изменений.

Аппаратная реализация интерфейса – микросхемы приемопередатчиков с дифференциальными входами/выходами (к линии) и цифровыми портами (к портам UART контроллера). Существуют два варианта такого интерфейса: RS-422 и RS-485.

RS-422 – полнодуплексный интерфейс. Прием и передача идут по двум отдельным парам проводов. На каждой паре проводов может быть только по одному передатчику.

RS-485 – полудуплексный интерфейс. Прием и передача идут по одной паре проводов с разделением по времени. В сети может быть много передатчиков, так как они могут отключаются в режиме приема.

RS-422 и RS-485

Рисунок 6 – RS-422 и RS-485

D (driver) – передатчик;

R (receiver) – приемник;

DI (driver input) – цифровой вход передатчика;

RO (receiver output) – цифровой выход приемника;

DE (driver enable) – разрешение работы передатчика;

RE (receiver enable) – разрешение работы приемника;

A – прямой дифференциальный вход/выход;

B – инверсный дифференциальный вход/выход;

Y – прямой дифференциальный выход (RS-422);

Z – инверсный дифференциальный выход (RS-422).

Остановлюсь поподробнее на приемопередатчике RS-485. Цифровой выход приемника (RO) подключается к порту приемника UART (RX). Цифровой вход передатчика (DI) к порту передатчика UART (TX). Поскольку на дифференциальной стороне приемник и передатчик соединены, то во время приема нужно отключать передатчик, а во время передачи – приемник. Для этого служат управляющие входы – разрешение приемника (RE) и разрешения передатчика (DE). Так как вход RE инверсный, то его можно соединить с DE и переключать приемник и передатчик одним сигналом с любого порта контроллера. При уровне 0 – работа на прием, при 1 – на передачу.

Соединение RS-485

Рисунок 7 – Соединение RS-485

Приемник, получая на дифференциальных входах (AB) разность потенциалов (UAB) переводит их в цифровой сигнал на выходе RO. Чувствительность приемника может быть разной, но гарантированный пороговый диапазон распознавания сигнала производители микросхем приемопередатчиков пишут в документации. Обычно эти пороги составляют ± 200 мВ. То есть, когда UAB >+ 200 мВ – приемник определяет 1, когда UAB <= 200 мВ – приемник определяет 0. Если разность потенциалов в линии настолько мала, что не выходит за пороговые значения – правильное распознавание сигнала не гарантируется. Кроме того, в линии могут быть и не синфазные помехи, которые исказят столь слабый сигнал.

Все устройства подключаются к одной витой паре одинаково: прямые выходы (A) к одному проводу, инверсные (B) – к другому.

Входное сопротивление приемника со стороны линии (RAB) обычно составляет 12 КОм. Так как мощность передатчика не беспредельна, это создает ограничение на количество приемников, подключенных к линии. Согласно спецификации RS-485 c учетом согласующих резисторов передатчик может вести до 32 приемников. Однако есть ряд микросхем с повышенным входным сопротивлением, что позволяет подключить к линии значительно больше 32 устройств.

Максимальная скорость связи по спецификации RS-485 может достигать 10 Мбод/сек. Максимальное расстояние – 1200 м. Если необходимо организовать связь на расстоянии большем 1200 м или подключить больше устройств, чем допускает нагрузочная способность передатчика – применяют специальные повторители (репитеры).

7.2 Описание ModBus RTU

Протокол Modbus предполагает, что только одно ведущее устройство (контроллер) и до 247 ведомых (модулей ввода-вывода) могут быть объединены в промышленную сеть. Обмен данными всегда инициируется ведущим. Ведомые устройства никогда не начинают передачу данных, пока не получат запрос от ведущего. Ведомые устройства также не могут обмениваться данными друг с другом. Поэтому в любой момент времени в сети Modbus может происходить только один акт обмена.

Адреса с 1 по 247 являются адресами Modbus устройств в сети, а с 248 по 255 зарезервированы. Ведущее устройство не должно иметь адреса и в сети не должно быть двух устройств с одинаковыми адресами.

Ведущее устройство может посылать запросы всем устройствам одновременно (широковещательный режим) или только одному. Для широковещательного режима зарезервирован адрес 0 (при использовании в команде этого адреса она принимается всеми устройствами сети).

В протоколе Modbus RTU сообщение начинает восприниматься как новое после паузы (тишины) на шине длительностью не менее 3,5 символов (14 бит), т. е. величина паузы в секундах зависит от скорости передачи.

Формат кадра показан на рисунке:

Формат кадра протокола Modbus RTU

Рисунок 8 – Формат кадра протокола Modbus RTU

PDU – Protocol Data Unitэлемент данных протокола;

ADU – Application Data Unitэлемент данных приложения

Поле адреса всегда содержит только адрес ведомого устройства, даже в ответах на команду, посланную ведущим. Благодаря этому ведущее устройство знает, от какого модуля пришел ответ.

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

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

Поле Контрольная сумма содержит контрольную сумму CRC длиной 2 байта.

В режиме RTU данные передаются младшими разрядами вперед.

Последовательность битов в режиме RTU

Рисунок 9 – Последовательность битов в режиме RTU

По умолчанию в RTU режиме бит паритета устанавливают равным 1, если количество двоичных единиц в байте нечетное, и равным 0, если оно четное. Такой паритет называют четным (even parity) и метод контроля называют контролем четности.

При четном количестве двоичных единиц в байте бит паритета может быть равен 1. В этом случае говорят, что паритет является нечетным (odd parity).

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

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

Сообщения Modbus RTU передаются в виде кадров, для каждого из которых известно начало и конец. Признаком начала кадра является пауза (тишина) продолжительностью не менее 3,5 шестнадцатеричных символов (14 бит). Кадр должен передаваться непрерывно. Если при передаче кадра обнаруживается пауза продолжительностью более 1,5 шестнадцатеричных символа (6 бит), то считается, что кадр содержит ошибку и должен быть отклонен принимающим модулем. Эти величины пауз должны строго соблюдаться при скоростях ниже 19200 бит/с, однако при более высоких скоростях рекомендуется использовать фиксированные значения паузы, 1,75 мс и 750 мкс соответственно.

В режиме RTU имеется два уровня контроля ошибок в сообщении:

  1. контроль паритета для каждого байта (опционно);
  2. контроль кадра в целом с помощью CRC метода.

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

Стартовые, стоповые биты и бит паритета в вычислении CRC не участвуют.

7.3 Реализация на микроконтроллере stm32

За основу я взял порт FreeModbus от китайского товарища Armink.

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

Файл mb.c\mb.h и функция инициализации, в файле mbport.h, появились новые объявления которые используется в mbrtu.c на подправленном участке кода функции xMBRTUTransmitFSM, файл порта porttimer.c, теперь появилась возможность полностью абстрагироваться от конкретного таймера, portevent_m.c пришлось адаптировать для работы без RTOS. Файл порта portserial.c, тут добавились макросы для RTS линии, функции инициализации, переключения потока, приёма и отправки (а также добавилась новая – xMBPortSerialPutBytes) тоже упростились. И еще куча мелочей.

В общем все это проводилось для унификации: Организовать возможность использования HAL с минимальными изменениями в файлах portserial и porttimer. Убрать инициализацию периферии из файлов portserial и porttimer, т. к. при использовании HAL она уже происходит до вызова инициализации FreeModbus. Добавить отправку пакета в portserial целиком, а не пулингом по одному байту. Добавить приём байт по DMA или прерыванию, а не пулингом по одному.

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

8.1 Синтез одноконтурной системы управления с дискретным ПИ-РС

Обобщенная структурная схема КРС

Рисунок 10 – Обобщенная структурная схема КРС

ПФ разомкнутой системы РС:

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

Тогда РКС по модульному оптимуму:

В итоге ПФ-РС имеет вид:

Пропорциональный коэффициент kp и интегральный ki имеют вид:

Полная модель одноконтурной САР скорости, составленная в пакете MATLAB Simulink

Рисунок 11 – Полная модель одноконтурной САР скорости, составленная в пакете MATLAB Simulink

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

Существует несколько основных подстановочных методов дискретизации непрерывных объектов:

Метод Эйлера

Метод обратных разностей

Метод Тастина

Используя метод Тастина, или как его еще называют методом трапеций дискретный ПИ регулятор будет иметь вид:

Дискретный ПИ-РС

Рисунок 12 – Дискретный ПИ-РС

Разложим выражение на простые множители и воспользуемся правилами z-преобразования, чтобы перейти от операторной формы к виду решетчатой функции:

8.2 Синтез ПД регулирования положения следящей системы

Основной регулируемой координатой в таких системах является положение (перемещение) исполнительного органа (ИО) рабочей машины. В качестве датчиков положения(ДП) принимают устройства двух типов, устанавливаемые на валу двигателя или ИО – аналоговые или дискретные.

Обобщенная структурная схема системы регулирования положения (системы слежения)

Рисунок 13 – Обобщенная структурная схема системы регулирования положения (системы слежения)

Построение системы регулирования положения заключается в организации внешнего по отношению к контуру скорости контура регулирования, замкнутого по перемещению вала двигателя или ИО. В качестве системы регулирования скорости (СРС) принципиально может использоваться любая из возможных, в нашем случае используем вышеописанную систему для управления лентой конвейера. Выход регулятора положения (РП) ограничивается на уровне, соответствующем максимально допустимому значению скорости (с учетом запаса на перерегулирование в динамике, который следует выбирать с учетом величины статической нагрузки, что обычно составляет 1…5%).

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

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

Объект управления

Рисунок 14 – Объект управления

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

Тогда получим структурную схем с принятыми допущениями:

Следящая система позиционирования с ПД-регулятором

Рисунок 15 – Следящая система позиционирования с ПД-регулятором

ПФ такой системы имеет вид:

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

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

8.3 Дискретный задатчик положения

Структурная схема задатчика положения

Рисунок 16 – Структурная схема задатчика положения

Учитывая, что параметры ЗИ:

Выходной сигнал ЗП:

Это позволяет задать идеальную диаграмму изменения регулируемой координаты (положения) при безынерционной подчиненной системе регулирования положения.

При этом отпадает необходимость использования ЗИ на входе контура регулирования скорости.

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

С помощью этих сигналов реализуют принцип комбинированного управления, позволяющий обеспечить достаточно высокое быстродействие контура регулирования положения (КРП). Данный принцип при регулировании положения оказывается очень важным (так как эквивалентная инерционность системы регулирования положения уже довольно существенна).

Структурная схема СРП с ЗП

Рисунок 17 – Структурная схема СРП с ЗП

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

Используя метод Эйлера структурная схема дискретного ЗП будет иметь вид:

Структурная схема дискретного ЗП

Рисунок 18 – Структурная схема дискретного ЗП

Заключение

В данном реферате были представлены общие описания основных составляющих дипломной работы. Способы согласования оборудования и описания программ микроконтроллеров приведено не было, в силу громоздкости и отсутствия желания. Вкратце, все сигналы были согласованны по уровням. К примеру сигналы ШИМ управляющие драйвером двигателям были преобразованы с логической единицы микроконтроллера stm32 которое составляет 3.3 вольта в логическую единицу драйвера 5 вольт. Благодаря MOSFET N-канальным транзисторам с как можно меньшим вольтажом на затворе (пр. IRL3502 или BSS138).

Так же планируется введение отдельного пульта управления связанным посредством UART с основным контроллером. Пульт будет представлять собой отдельный микроконтроллер на котором планируется подключение SPI TFT ili9341 дисплея и соответственно простенькая клавиатура, возможно сенсор. Но дойдет ли это до реализации пока не понятно.

При написании данного реферата магистерская работа еще не завершена. Окончательное завершение: июнь 2021 года. Полный текст работы и материалы по теме могут быть получены у автора или его руководителя после указанной даты.

Список источников

  1. Основные типы сортировочных конвейеров В. Голышев [Электронный ресурс]. Режим доступа: https://sitmag.ru/article/10018-osnovnye-tipy-sortirovochnyh-konveyerov(дата обращения 28.11.2020).
  2. YOLO Real Time Object Detection on CPU [Электронный ресурс]. Режим доступа: https://pysource.com/2019/07/08/yolo-real-time-detection-on-cpu/(дата обращения 28.11.2020).
  3. YOLO: Real-Time Object Detection [Электронный ресурс]. Режим доступа: https://github.com/tzutalin/labelImg(дата обращения 28.11.2020).
  4. RM0090 Reference manual STM32F405/415, STM32F407/417, STM32F427/437 and STM32F429/439 advanced Arm®-based 32-bit MCUs / www.st.com, February 2019. – 1749 с.
  5. DoclD022152 Datasheet STM32F405xx STM32F407xx ARM Cortex-M4 32b MCU+FPU, 210DMIPS, up to 1MB Flash/192+4KB RAM, USB OTG HS/FS, Ethernet, 17 TIMs, 3 ADCs, 15 comm. interfaces & camera / www.st.com, September. - 202 с.
  6. FreeModbus datasheet [Электронный ресурс]. Режим доступа: https://www.embedded-solutions.at/files/freemodbus-v1.6-apidoc/, (дата обращения 28.11.2020).
  7. Инструкция по работе с TensorFlow Object Detection API [Электронный ресурс]. Режим доступа: https://habr.com/ru/company/nix/blog/422353/, (дата обращения 28.11.2020).