Obsah:

Robot s vlastním vyvažováním - Algoritmus řízení PID: 3 kroky
Robot s vlastním vyvažováním - Algoritmus řízení PID: 3 kroky

Video: Robot s vlastním vyvažováním - Algoritmus řízení PID: 3 kroky

Video: Robot s vlastním vyvažováním - Algoritmus řízení PID: 3 kroky
Video: Řídící a regulační technika. Mechatronika. Průmysl 4.0 1SI 2023/24 2024, Listopad
Anonim
Robot s vlastním vyvažováním - řídicí algoritmus PID
Robot s vlastním vyvažováním - řídicí algoritmus PID

Tento projekt byl koncipován, protože jsem měl zájem dozvědět se více o řídicích algoritmech a o tom, jak efektivně implementovat funkční smyčky PID. Projekt je stále ve fázi vývoje, protože ještě bude přidán modul Bluetooth, který umožní ovládání robota ze smartphonu s podporou Bluetooth.

Použité stejnosměrné motory N20 byly relativně levné, a proto v nich bylo značné množství vůle. To vede k malému trhnutí, protože motory překonávají „vůli“, protože na kola působí točivým momentem. Proto je téměř nemožné dosáhnout dokonale plynulého pohybu. Kód, který jsem napsal, je poměrně jednoduchý, ale účinně ukazuje schopnosti algoritmu PID.

Shrnutí projektu:

Podvozek robota je 3D vytištěn pomocí tiskárny Ender 3 a je navržen tak, aby do sebe zapadal.

Robot je řízen Arduino Uno, které odebírá data ze senzoru z MPU6050 a ovládá stejnosměrné motory prostřednictvím externího ovladače motoru. Běží na 7,4 V, 1 500 mAh baterii. Ovladač motoru to reguluje na 5 V pro napájení Arduina a dodává 7,4 V do motorů.

Software byl napsán od začátku pomocí knihoven 'Arduino-KalmanFilter-master' a 'Arduino-MPU6050-master' od gitHub.

Zásoby:

  • 3D tištěné díly
  • Arduino UNO
  • 6osý snímač MPU6050
  • Řidič motoru DC
  • Motory N20 DC (x2)
  • 9V baterie

Krok 1: Robot Build

Robot Build
Robot Build
Robot Build
Robot Build
Robot Build
Robot Build

Tisk a montáž

Celá konstrukce by měla být lisovaná, ale já jsem použil superglue k zajištění komponentů, aby byl robot při vyvažování zcela tuhý.

Navrhl jsem součásti ve Fusion 360 a optimalizoval každý díl pro tisk bez podpůr, aby byly zajištěny přísnější tolerance a čistší povrchová úprava.

Nastavení použitá na tiskárně Ender 3 byla: 0,16 mm výšky vrstev @ 40% výplň pro všechny díly.

Krok 2: 3D Print Robot

3D tiskový robot
3D tiskový robot

Podvozek (x1)

Levé kolo (x2)

Levý kryt motoru (x2)

Pouzdro Arduino (x1)

Krok 3: Algoritmus řízení PID

Algoritmus řízení PID
Algoritmus řízení PID

Napsal jsem algoritmus řízení PID od začátku pomocí knihoven 'Arduino-KalmanFilter-master' a 'Arduino-MPU6050-master' z gitHub.

Předpoklad Algoritmu je následující:

  • Přečtěte si nezpracovaná data z MPU6050
  • Pomocí Kalmanova filtru analyzujte data z gyroskopu i akcelerometru a zrušte nepřesnosti ve čtení gyroskopu v důsledku zrychlení senzoru. Tím se vrátí relativně vyhlazená hodnota rozteče senzoru ve stupních na dvě desetinná místa.
  • Vypočítejte chybu v úhlu, tj.: Úhel mezi snímačem a požadovanou hodnotou.
  • Vypočítejte proporcionální chybu jako (Konstanta proporcionality x chyba).
  • Vypočítejte integrální chybu jako průběžný součet (chyba konstanty integrace x).
  • Vypočítejte derivační chybu jako konstantu jako [(diferenciační konstanta) x (změna chyby / změna času)]
  • Sečtěte všechny chyby, abyste získali výstup rychlosti, který má být odeslán do motorů.
  • Vypočítejte, kterým směrem se mají otáčet motory na základě znaménka úhlu chyby.
  • Smyčka poběží po neomezenou dobu a bude se stavět na výstupu, protože vstup se mění. Jedná se o smyčku zpětné vazby využívající výstupní hodnoty jako nové vstupní hodnoty pro další iteraci.

Posledním krokem je vyladění parametrů Kp, Ki & Kd smyčky PID.

  1. Dobrým výchozím bodem je pomalu zvyšovat Kp, dokud robot nekmitá kolem bodu vyvážení a nemůže zachytit pád.
  2. Dále spusťte Kd na přibližně 1% hodnoty Kp a pomalu zvyšujte, dokud oscilace nezmizí a robot při tlačení hladce klouže.
  3. Nakonec začněte s Ki kolem 20% Kp a měňte, dokud robot „nepřestřelí“požadovanou hodnotu, aby aktivně zachytil pád a vrátil se do svislé polohy.

Doporučuje: