Робимо замкнутий контур струму для електродвигуна

Постановка завдання
Це друга, підсумкова стаття. Нагадую мета: є двигун постійного струму. Завдання — розробити, зібрати і протестувати пристрій, позволяющиее реалізувати контур струму стосовно до цього двигуна. Бажаний час перехідного процесу на застопоренном двигуні (без противо-ЕРС) — не більше 10мс.

Текст розбитий на дві статті:

Нагадую, як виглядає макет керуючого заліза:



Бажаний результат
Вся система як чорний ящик
Отже, вся справа полягає в тому, що я хочу прямо ставити силу струму, що протікає через мій двигун. Якщо об'єднати контролер і двигун воєдино, то я б хотів отримати приблизно наступне:


Тут J(t) — це завдання по току, I(t) — це струм, що протікає через двигун. Я б хотів, щоб вхідний і вихідний сигнали були б пов'язані за законом τ I'(t) + I(t) = J(t). Цей закон вибрано довільно, просто мені подобається таке диференціальне рівняння. Розумними словами воно називається аперіодіческій ланкою першого порядку.

Контролери, підпорядковується такому закону навіть мають свій власний символ на деяких схемах:

Ось реакція подібного ланки на одиничний східчастий вплив:


Це красива експоненціальна збіжність без різноманітних коливань, тому така форма була обрана. Постійна тау у формулі τ I'(t) + I(t) = J(t) називається постійною часу, це той час, за який процес досягне 63% свого кінцевого значення при реакції на одиничний стрибок. Якщо визначити час перехідного процесу як час досягнення 98% кінцевого значення, то це приблизно 5 тау. У постановці завдання у нас час перехідного процесу не повинно перевершувати 10мс, тому візьмемо τ = 0,002.

Відкриємо чорний ящик
Якщо ж чорний ящик відкрити, то виглядати він буде якось так:

На вхід чорного ящика подаємо сигнал J(t), на вихід отримуємо протікає струм I(t). Всередині чорної скриньки два подъящика: двигун зі своїм диффуром, що зв'язує напругу на клемах U(t) з протікає через нього струмом I(t), і безпосередньо регулятор, який повинен подавати напругу U(t) в залежності від завдання струму J(t) і реально протікаючого струму I(t).

Давайте скажемо, що регулятор бере на вхід помилку E(t) — це різниця між бажаною силою струму і реальної, і на вихід дає напругу U(t). Наше завдання знайти диффур, який пов'язує E(t) і U(t), тоді буде зрозуміло, як програмувати ардуину контролера.

Отже, ми хочемо, щоб завдання струму і реальний струм були б пов'язані з обраним нами закону:


Застосуємо до нього перетворення Лапласа (з нульовими початковими значеннями):


І складемо наступну пропорцію:


На всяк випадок, в теорії управління ця пропорція називається передатною функцією.

Визначимо помилку E(t) як різницю між бажаною і реальною силою струму:


Для налаштування контуру струму зафіксуємо вал двигуна, таким чином кутова швидкість йде з диффура двигуна:


У попередній статті ми вивели зв'язок між напругою на клемах двигуна і силою протікаючого струму (при зафіксованому роторі):


Давайте розділимо цю пропорцію на пропорцію з рівняння (1):


Майже закінчили, залишилося перейти від координат Лапласа до звичайних тимчасовим. Для початку розкриємо пропорцію:


Озброївшись таблицями перетворення Лапласа, можна побачити наступне:


А це означає, що напруга U(t) і помилка завдання E(t) повинні бути пов'язані за наступним законом:


Таким чином, вибравши поведінку всієї системи як апериодическое ланка першого порядку, ми отримуємо, що необхідний регулятор є не що інше, як звичайний ПІ-регулятор.

Втілення в життя
Сишный код регулятора можна подивитися тут. Програма цілком стандартна, єдине, що варто відзначити, так це те, що у атмеги не вистачає здоров'я працювати з плаваючими точками. Тому вся робота ведеться з фіксованою точкою і цілочисельними змінними.

Перевірка роботи регулятора
Для перевірки роботи регулятора задамо йому на вхід меандр і синусоїдальний сигнал.

Меандр
Ось тут можна взяти дані експерименту: з нульового початкового стану задамо бажану силу струму I0=4А і виміряємо реально протікає струм.

Потім давайте порахуємо на папері, за яким законом повинен бути змінені протікає струм в таких умовах. Це один-в-один збігається з тим, що ми робили в попередній статті:


Спробуємо підібрати значення параметра, щоб теоретична крива найкращому чином аппроксимировала реальні дані і порівняємо з обраної нами раніше постійної часу. Код підбору параметра можна взяти здесь.

Ось результат роботи керуючого контуру на полупериоде меандру:


Фиттинг параметра нам каже, що найкраще значення це .00184, що дуже близько до обраної нами постійної часу .002. Добре видно, що перехідний процес вклався в десять мілісекунд, які йому були відведені в постановці завдання.

Синусоїдальний сигнал
На всякий випадок друга перевірка, знову ж таки, обчислення все взято з попередньої статті. При синусоїдальній завданні сили струму I(t) має змінюватися за наступним законом:


Код підбору параметра теоретичної кривої можна взяти тут. Він нам каже, що постійна часу дорівнює .00196, що знову-таки близько до розрахункового параметру в 2мс.

Ось результат роботи керуючого контуру на синусоїдальній вхідному сигналі:

Висновок
Загалом, не так страшний чорт, як його малюють. Велике спасибі arastas за науку! Постараюся в осяжному майбутньому знайти трохи часу, щоб зібрати перевернутий маятник не так, як його робив (керуючи напругою), а керуючи безпосередньо силою струму, це повинно спростити розрахунки регулятора безпосередньо маятника.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.