Русский   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).