Satura rādītājs:

Pašbalansējošs robots, izmantojot PID algoritmu (STM MC): 9 soļi
Pašbalansējošs robots, izmantojot PID algoritmu (STM MC): 9 soļi

Video: Pašbalansējošs robots, izmantojot PID algoritmu (STM MC): 9 soļi

Video: Pašbalansējošs robots, izmantojot PID algoritmu (STM MC): 9 soļi
Video: Instructional video - Folkrace robot 2024, Novembris
Anonim
Pašbalansējošs robots, izmantojot PID algoritmu (STM MC)
Pašbalansējošs robots, izmantojot PID algoritmu (STM MC)

Nesen tika veikts liels darbs objektu līdzsvarošanā. Pašbalansēšanas jēdziens sākās ar apgrieztā svārsta līdzsvarošanu. Šī koncepcija attiecās arī uz lidmašīnu dizainu. Šajā projektā mēs esam izstrādājuši nelielu pašbalansējoša robota modeli, izmantojot PID (proporcionālo, integrālo, atvasināto) algoritmu. Kopš tā laika šī metode ir rūpniecisko procesu kontroles sistēmu jaunā seja. Šajā ziņojumā ir apskatītas metodes, kas saistītas ar objektu līdzsvarošanu. Šis projekts tika veikts kā semestra projekts, lai izprastu PID korelāciju ar dažādu rūpniecisko procesu efektivitāti. Šeit mēs koncentrējamies tikai uz īsu pārskatu par PID kontroles efektivitāti un pielietojumu. Šis dokuments ir izstrādāts, sniedzot īsu ievadu kontroles sistēmās un ar tām saistītajā terminoloģijā, pievienojot projekta motivāciju. Ir veikti eksperimenti un novērojumi, aprakstīti nopelni un trūkumi, beidzot ar turpmākajiem uzlabojumiem. Tika izstrādāts pašbalansējoša robota modelis, lai izprastu PID efektivitāti vadības sistēmas pasaulē. Veicot dažus stingrus testus un eksperimentus, tika atklāti PID kontroles sistēmas plusi un mīnusi. Tika konstatēts, ka, neraugoties uz daudzajām PID kontroles priekšrocībām salīdzinājumā ar iepriekšējām metodēm, šī sistēma tomēr prasa daudz uzlabojumu. Cerams, ka lasītājs labi sapratīs pašbalansēšanas nozīmi, PID kontroles efektivitāti un trūkumus

1. darbība. Ievads

Līdz ar datoru parādīšanos un procesu industrializāciju visā cilvēces vēsturē vienmēr ir veikti pētījumi, lai izstrādātu veidus, kā uzlabot procesus un, vēl svarīgāk, tos kontrolēt, izmantojot mašīnas autonomi. Mērķis ir samazināt cilvēku iesaistīšanos šajos procesos, tādējādi samazinot kļūdu šajos procesos. Tādējādi tika izstrādāta vadības sistēmu inženierijas joma. Vadības sistēmu inženieriju var definēt kā dažādu metožu izmantošanu, lai kontrolētu procesa darbību vai uzturētu nemainīgu un vēlamo vidi, neatkarīgi no tā, vai tā ir manuāla vai automātiska.

Vienkāršs piemērs varētu būt temperatūras kontrole telpā. Manuālā vadība nozīmē personas klātbūtni objektā, kas pārbauda pašreizējos apstākļus (sensoru), salīdzina to ar vēlamo vērtību (apstrāde) un veic atbilstošas darbības, lai iegūtu vēlamo vērtību (izpildmehānisms). Šīs metodes problēma ir tā, ka tā nav ļoti uzticama, jo cilvēks ir pakļauts kļūdām vai nolaidībai savā darbā. Vēl viena problēma ir tā, ka izpildmehānisma uzsāktā procesa ātrums ne vienmēr ir vienāds, tas nozīmē, ka dažreiz tas var notikt ātrāk nekā nepieciešams vai dažreiz tas var būt lēns. Šīs problēmas risinājums bija izmantot mikrokontrolleri, lai kontrolētu sistēmu. Mikrokontrolleris ir

ir ieprogrammēts, lai kontrolētu procesu saskaņā ar dotajām specifikācijām, savienots ķēdē (tiks apspriests vēlāk), barots ar vēlamo vērtību vai apstākļiem un tādējādi kontrolē procesu, lai saglabātu vēlamo vērtību. Šī procesa priekšrocība ir tā, ka šajā procesā nav nepieciešama cilvēka iejaukšanās. Turklāt procesa ātrums ir vienāds

Pamata vadības sistēma

Iepriekšējā diagramma parāda ļoti vienkāršotu vadības sistēmas versiju. Mikrokontrolleris ir jebkuras vadības sistēmas pamatā. Tā ir ļoti svarīga sastāvdaļa, tāpēc tās izvēle ir rūpīgi jāizvēlas, pamatojoties uz sistēmas prasībām. Mikrokontrolleris saņem ievadi no lietotāja. Šī ievade nosaka vēlamo sistēmas stāvokli. Mikrokontrolleris arī saņem atgriezenisko saiti no sensora. Šis sensors ir pievienots sistēmas izejai, kuras informācija tiek ievadīta atpakaļ ievadē. Mikroprocesors, pamatojoties uz tā programmēšanu, veic dažādus aprēķinus un nodrošina izpildmehānisma izvadi. Izpildmehānisms, pamatojoties uz izeju, kontrolē iekārtu, lai mēģinātu saglabāt šos apstākļus. Piemērs varētu būt motora vadītājs, kurš vada motoru, ja motora vadītājs ir izpildmehānisms un motors ir iekārta. Tādējādi motors griežas ar noteiktu ātrumu. Pievienotais sensors nolasa iekārtas pašreizējo stāvokli un nosūta to atpakaļ mikrokontrolleram. Mikrokontrolieris atkal salīdzina, veic aprēķinus un tādējādi cikls atkārtojas. Šis process ir atkārtots un bezgalīgs, un mikrokontrolleris saglabā vēlamos apstākļus

2. darbība: uz PID balstīta vadības sistēma

PID vadības sistēma
PID vadības sistēma
PID vadības sistēma
PID vadības sistēma

PID algoritms ir efektīva vadības sistēmas projektēšanas metode.

Definīcija

PID apzīmē proporcionālu, integrālu un atvasinātu. Šajā algoritmā ievadītais kļūdas signāls ir ieeja. Un kļūdas signālam tiek piemērots šāds vienādojums

U (t) = Kp ∗ e (t) + Kd ∗ d/dt (e (t)) + Ki ∗ integrālis (e (t)) (1.1)

Īss skaidrojums

Kā redzams iepriekš minētajā vienādojumā, tiek aprēķināts kļūdu signālu integrālis un atvasinājums, kas reizināts ar to attiecīgajām konstantēm un pievienots kopā ar konstanti Kp, kas reizināta ar e (t). Pēc tam izeja tiek ievadīta pievadā, kas liek sistēmai darboties. Tagad apskatīsim katru funkcijas daļu pēc kārtas. Šī funkcija tieši ietekmē pacelšanās laiku, krituma laiku, maksimālo uzņemšanas laiku, nostādināšanas laiku un līdzsvara stāvokļa kļūdu.

• Proporcionālā daļa: proporcionālā daļa samazina pacelšanās laiku un samazina līdzsvara stāvokļa kļūdu. Tas nozīmē, ka sistēmai būs vajadzīgs mazāk laika, lai sasniegtu maksimālo vērtību, un, sasniedzot līdzsvara stāvokli, līdzsvara stāvokļa kļūda būs zema. Tomēr tas palielina maksimālo pārsniegumu.

• Atvasinātā daļa: atvasinātā daļa samazina pārsniegumu un nostādināšanas laiku. Tas nozīmē, ka pārejošais sistēmas stāvoklis būs vairāk slāpēts. Turklāt sistēma īsā laikā sasniegs līdzsvara stāvokli. Tomēr tas neietekmē pieauguma laiku vai līdzsvara stāvokļa kļūdu.

• Neatņemamā daļa: neatņemamā daļa samazina pacelšanās laiku un pilnībā novērš līdzsvara stāvokļa kļūdu. Tomēr tas palielina pīķa pārsniegumu un nostādināšanas laiku.

• Noskaņošana: Labai vadības sistēmai būs zems pacelšanās laiks, nostādināšanas laiks, maksimālā pārsniegšana un stabila stāvokļa kļūda. Tāpēc Kp, Kd, Ki ir pilnībā jāpielāgo, lai pielāgotu iepriekš minēto faktoru ieguldījumu, lai iegūtu labu kontroles sistēmu.

Pievienots attēls, kas parāda dažādu parametru maiņas ietekmi PID algoritmā.

3. darbība: pašsabalansējošs robots

Pašbalansējošs robots
Pašbalansējošs robots

Pašbalansējošs robots ir daudzslāņu divu riteņu robots.

Robots mēģinās līdzsvaroties, pielietojot nevienādu (-us) spēku (-us). Tas līdzsvaros sevi, pielietojot spēku, kas stājas pretī robota spēku radītājam.

Pašbalansēšanas metodes

Ir četras robotu pašbalansēšanas metodes. Tie ir šādi:

Pašbalansēšana, izmantojot divus IR slīpuma sensorus

Tas ir viens no vissmagākajiem veidiem, kā līdzsvarot robotu, jo tas prasa ļoti mazāk aparatūras un salīdzinoši vienkāršu algoritmu. Šajā pieejā tiek izmantoti divi sasvērti IR sensori, lai izmērītu attālumu starp zemi un robotu. Pamatojoties uz aprēķināto attālumu, PID var izmantot, lai vadītu motorus, lai attiecīgi līdzsvarotu robotu. Viens no šīs metodes trūkumiem ir tas, ka IR sensors var palaist garām dažus rādījumus. Vēl viena problēma ir tā, ka attāluma aprēķināšanai ir nepieciešams pārtraukums un cilpas, kas palielina algoritma laika sarežģītību. Tādējādi šī robota līdzsvarošanas metode nav īpaši efektīva.

Pašbalansēšana, izmantojot akselerometru

Akselerometrs dod mums ķermeņa paātrinājumu 3 asīs. Paātrinājums, kas orientēts uz y asi (uz augšu) un x asi (uz priekšu), dod mums mēru, lai aprēķinātu smaguma virzienu un līdz ar to arī slīpuma leņķi. Leņķi aprēķina šādi:

θ = arktāns (Ay/Ax) (1.2)

Šīs metodes izmantošanas trūkums ir tāds, ka robota kustības laikā rādījumiem tiks pievienots arī horizontālais paātrinājums, kas ir augstfrekvences troksnis. Tādējādi slīpuma leņķis būs neprecīzs.

Pašbalansēšana, izmantojot žiroskopu

Žiroskopu izmanto, lai aprēķinātu leņķiskos ātrumus pa trim asīm. Slīpuma leņķi iegūst, izmantojot šādu vienādojumu.

θp (i) = θp (i − 1) + 1/6 (vali − 3 + 2vali − 2 + 2vali − 1 + vali) (1.3)

Viens liels žiroskopa izmantošanas trūkums ir tas, ka tam ir mazs līdzstrāvas slīpums, kas ir zemas frekvences troksnis, un pēc dažām reizēm atgrieztās vērtības ir pilnīgi nepareizas. Tas pēc integrācijas izraisīs nulles punkta attālināšanos. Tā rezultātā robots kādu laiku paliks vertikālā stāvoklī un nokritīs, tiklīdz dreifs nāks.

Pašbalansēšana, izmantojot gan akselerometru, gan žiroskopu

Kā minēts iepriekš, tikai akselerometra vai žiroskopa izmantošana nedos mums pareizo slīpuma leņķi. Lai to ņemtu vērā, tiek izmantots gan akselerometrs, gan žiroskops. Tie abi ir iegulti MPU6050. Tādējādi mēs iegūstam datus no abiem un pēc tam sapludinām, izmantojot Kalmana filtru vai papildu filtru.

• Kalmana filtrs: Kalmana filtrs no trokšņainiem mērījumiem aprēķina labāko dinamiskās sistēmas stāvokļa novērtējumu, samazinot aprēķina vidējo kļūdu kvadrātā. Tas darbojas divos posmos - prognozēšana un korekcija, ņemot vērā diskrētos stohastiskos vienādojumus, kas raksturo sistēmas dinamiku. Tomēr tas ir ļoti sarežģīts algoritms, ko ieviest, jo īpaši ierobežotā mikrokontrollera aparatūrā.

• Papildu filtrs: Šis algoritms galvenokārt izmanto no žiroskopa iegūtos datus un laika gaitā tos integrē, lai iegūtu slīpuma leņķi. Tas izmanto arī nelielu akselerometra rādījumu daļu. Papildu filtrs faktiski samazina akselerometra augstfrekvences troksni un žiroskopa zemfrekvences troksni un pēc tam tos sakausē, lai iegūtu vislabāko precīzo slīpuma leņķi.

4. solis: robota projektēšana

Robota dizains
Robota dizains

Mēs esam izstrādājuši pašbalansējošu robotu, izmantojot proporcionālo atvasināto kontrolieri, ko ieviesis MPU6050 papildu filtrs. Šis mazais pašbalansējošā robota modelis parādīs mums vadības sistēmu lietderību robotu pašbalansēšanā.

Sistēmas ieviešana:

Sistēma ir pašbalansējošs robots. Tas tiek īstenots, izmantojot PID kontrolieri, kas ir proporcionāls integrālais atvasinātais kontrolieris. Mēs līdzsvarojam robotu, dzenot tā riteņus tā krišanas virzienā. To darot, mēs cenšamies noturēt robota smaguma centru virs pagrieziena punkta. Lai virzītu riteņus tā krišanas virzienā, mums vajadzētu zināt, kur robots krīt un kādā ātrumā tas krīt. Šie dati tiek iegūti, izmantojot MPU6050, kuram ir akselerometrs un žiroskops. MPU6050 mēra slīpuma leņķi un nodod tā izvadi mikrokontrolleram. MPU6050 ir savienots ar STM valdi, izmantojot I2C. I2C viens vads ir pulkstenim, kas nosaukts kā SCL. Otrs ir paredzēts datu pārsūtīšanai, kas ir SDA. Šajā gadījumā tiek izmantota galvenā vergu komunikācija. Sākuma adrese un beigu adrese ir norādīta, lai zinātu, no kurienes dati sākas un kur beidzas. Šeit mēs esam ieviesuši papildu filtru MPU6050, kas ir matemātikas filtrs, lai apvienotu akselerometra un žiroskopa izejas. Pēc datu iegūšanas no MPU6050 mikrokontrolleris veiks aprēķinus, lai uzzinātu, kur tas nokrīt. Pamatojoties uz aprēķiniem, STM mikrokontrolleris sniegs komandas motora vadītājam vadīt transportlīdzekļus krišanas virzienā, kas līdzsvaros robotu.

5. solis: projekta sastāvdaļas

Projekta sastāvdaļas
Projekta sastāvdaļas
Projekta sastāvdaļas
Projekta sastāvdaļas
Projekta sastāvdaļas
Projekta sastāvdaļas

Pašbalansējošā robota projektā tika izmantoti šādi komponenti:

STM32F407

Mikrokontrolleris, ko izstrādājis ST Microelectronics. Tas darbojas uz ARM Cortex-M arhitektūras.

Motora vadītājs L298N

Šo IC izmanto motora darbināšanai. Tam ir divas ārējas ieejas. Viens no mikrokontrollera, kas tam piegādā PWM signālu. Pielāgojot impulsa platumu, var regulēt motora apgriezienu skaitu. Tā otrā ieeja ir sprieguma avots, kas nepieciešams motora darbināšanai, kas mūsu gadījumā ir 12 V akumulators.

Līdzstrāvas motors

Līdzstrāvas motors darbojas ar līdzstrāvas avotu. Šajā eksperimentā līdzstrāvas motors darbojas, izmantojot optoelementus, kas savienoti ar motora draiveri. Motora vadīšanai esam izmantojuši motora piedziņu L298N.

MPU6050

MPU6050 tiek izmantots, lai iegūtu informāciju par to, kur robots krīt. Tas mēra slīpuma leņķi attiecībā pret nulles slīpuma punktu, kas ir MPU6050 stāvoklis, kad programma sāk darboties.

MPU6050 ir 3 asu akselerometrs un 3 asu žiroskops. Akselerometrs mēra paātrinājumu pa trim asīm, un žiroskops mēra leņķisko ātrumu ap trim asīm. Lai apvienotu izvadi, mums jāfiltrē abu trokšņi. Lai filtrētu trokšņus, mums ir Kalmans un papildu filtrs. Savā projektā esam ieviesuši papildu filtru.

Opto pāris 4N35

Optrona ir ierīce, ko izmanto, lai izolētu ķēdes zemsprieguma daļu un augstsprieguma daļu. Kā norāda nosaukums, tas darbojas, pamatojoties uz gaismu. Kad zemsprieguma daļa saņem signālu, augstsprieguma daļā plūst strāva

6. darbība: robota struktūra

Robota struktūra ir izskaidrota šādi:

Fiziskā struktūra

Pašbalansējošais robots sastāv no diviem slāņiem, kas izgatavoti no caurspīdīga plastmasas stikla. Sīkāka informācija par diviem slāņiem ir sniegta zemāk:

Pirmais slānis

Pirmā slāņa apakšējā daļā mēs esam ievietojuši šūnu, lai darbinātu STM plāksni. Katrā pusē ir novietoti arī divi 4 voltu motori ar piestiprinātām riepām, lai robots varētu pārvietoties. Pirmā slāņa augšējā daļā motoru darbināšanai ir ievietotas divas 4 voltu baterijas (kopā 8 volti) un motora draiveris IC (L298N).

Otrais slānis

Robota augšējā slānī mēs esam ievietojuši STM paneli uz Perf Board. Uz augšējā slāņa ir novietota vēl viena 4 opto savienotāju perforatora plāksne. Žiroskops tiek novietots arī uz robota augšējā slāņa no apakšējās puses. Abas sastāvdaļas ir novietotas vidusdaļā tā, lai smaguma centrs būtu pēc iespējas zemāks.

Robota smaguma centrs

Smaguma centrs tiek uzturēts pēc iespējas zemāk. Šim nolūkam uz apakšējā slāņa esam ievietojuši smagas baterijas un augšējā slānī vieglas sastāvdaļas, piemēram, STM plāksni un optronus.

7. darbība: kods

Kods tika apkopots vietnē Atollic TrueStudio. STM studija tika izmantota atkļūdošanas nolūkos.

8. solis. Secinājums

Pēc daudziem eksperimentiem un novērojumiem mēs beidzot nonākam pie tā, ka apkopojam savus rezultātus un apspriežam, cik tālu mums izdevās ieviest un izstrādāt sistēmas efektivitāti.

Vispārīgs pārskats

Eksperimenta laikā motora ātrumu veiksmīgi kontrolēja, izmantojot PID algoritmu. Tomēr līkne nav gluži taisna taisna līnija. Tam ir daudz iemeslu:

• Lai arī sensors ir pievienots zemas caurlaides filtram, tas joprojām nodrošina zināmu galīgo atkāpšanos; to iemesls ir nelineāras pretestības un daži neizbēgami analogās elektronikas iemesli.

• Motors negriežas vienmērīgi zemā spriegumā vai PWM. Tas nodrošina saraustījumus, kas var izraisīt nepareizas sistēmas ievadītās vērtības.

• Svārstīšanās dēļ sensors var palaist garām dažas spraugas, kas nodrošina augstākas vērtības. • Vēl viens būtisks kļūdu iemesls var būt STM mikrokontrollera galvenā pulksteņa frekvence. Šis STM mikrokontrollera modelis nodrošina galveno pulksteni 168 MHz. Lai gan šī problēma tika risināta šajā projektā, par šo modeli ir vispārējs priekšstats, ka tas precīzi nenodrošina tik augstu frekvenci.

Atvērtā cikla ātrums nodrošina ļoti gludu līniju ar tikai dažām neparedzētām vērtībām. PID algoritms arī strādā, nodrošinot ļoti mazu motora nostādināšanas laiku. Motora PID algoritms tika pārbaudīts pie dažādiem spriegumiem, saglabājot nemainīgu atsauces ātrumu. Sprieguma maiņa nemaina motora ātrumu, parādot, ka PID algoritms darbojas

Efektivitāte

Šeit mēs apspriežam PID regulatora efektivitāti, ko novērojām eksperimenta laikā.

Vienkārša ieviešana

Eksperimentu un novērojumu sadaļā mēs redzējām, ka PID kontrolieri ir ļoti viegli ieviest. Tam ir nepieciešami tikai trīs parametri vai konstantes, kas jāiestata, lai būtu ātruma kontroles sistēma

Nepārspējama efektivitāte lineārajām sistēmām

Lineārais PID regulators ir visefektīvākais kontrolieru saimē, jo loģika ir ļoti vienkārša un pielietojums ir plaši izplatīts lineāru vai diezgan lineāru lietojumu gadījumā.

Ierobežojumi

Mēs abstrakti paskaidrojām par šīs sistēmas ierobežojumiem. Šeit mēs apspriežam dažus no tiem, kurus mēs novērojām.

Konstantu izvēle

Mēs esam redzējuši, ka, lai gan PID kontrolieri ir viegli ieviest, tomēr sistēmas galvenais trūkums ir tas, ka konstantu vērtības izvēles posms ir darbietilpīgs; jo ir jāveic dažādi aprēķini. Otrs veids ir trāpījuma un izmēģinājuma metode, taču tā arī nav efektīva.

Konstantes ne vienmēr ir nemainīgas

Eksperimentālie rezultāti parādīja, ka dažādām motora atsauces ātruma vērtībām PID regulators darbojās nepareizi attiecībā uz tām pašām PID konstantēm. Dažādiem ātrumiem konstantes bija jāizvēlas atšķirīgi, un tas eksponenciāli palielina skaitļošanas izmaksas.

Nelineāri

Mūsu gadījumā izmantotais PID regulators ir lineārs, tāpēc to var izmantot tikai lineārām sistēmām. Nelineārām sistēmām kontrolieris ir jāievieš atšķirīgi. Lai gan ir pieejamas dažādas nelineāras PID metodes, tām ir jāizvēlas vairāk parametru. Tas atkal padara sistēmu nevēlamu augsto skaitļošanas izmaksu dēļ.

Nepieciešams sākotnējais spiediens

Eksperimentu sadaļā mēs parādījām, ka diezgan mazam atsauces ātrumam, kurā kļūda sākumā ir diezgan maza, PID piegādātais PWM ir tik mazs, ka tas nerada motoram nepieciešamo starta griezes momentu. Tātad motors dažos izmēģinājumos nedarbojas vai citos izmēģinājumos nodrošina lielu pārsniegumu un ilgāku nostādināšanas laiku.

9. darbība. Īpašs paldies

Īpašs paldies maniem grupas dalībniekiem, kuri man palīdzēja šajā projektā.

Drīz augšupielādēšu saiti uz videoklipu.

Es ceru, ka jums šī pamācība šķiet interesanta.

Tas ir Tahir Ul Haq no UET parakstīšanās. Priekā !!!

Ieteicams: