Controlul vitezei motorului DC folosind algoritmul PID (STM32F4)
Acasă » Blog » Controlul vitezei motorului DC folosind algoritmul PID (STM32F4)

Controlul vitezei motorului DC folosind algoritmul PID (STM32F4)

Vizualizări: 0     Autor: Site Editor Publicare Ora: 2020-09-02 Originea: Site

Întreba

Buton de partajare Facebook
Buton de partajare pe Twitter
Buton de partajare a liniei
Buton de partajare WeChat
Butonul de partajare LinkedIn
Butonul de partajare Pinterest
Butonul de partajare WhatsApp
Buton de partajare Kakao
Butonul de partajare Snapchat
Buton de partajare a telegramei
Buton de partajare Sharethis

Bună ziua tuturor, sunt Tahir ul Haq dintr -un alt proiect.
De data aceasta a fost momentul să facem MC care a fost folosit până în 2017-11-407.
Acesta este sfârșitul programului la jumătatea termenului.
Sper să vă placă.
Necesită o mulțime de concepte și teorii, așa că să -l privim mai întâi.
Odată cu apariția computerelor și a procesului industrializat, au existat cercetări în istoria ființelor umane pentru a dezvolta metode de redefinire a procesului și, mai important, pentru a utiliza mașini pentru a controla procesul autonom.
Scopul este de a reduce participarea umană la aceste procese, reducând astfel erorile în aceste procese.
Prin urmare, a apărut câmpul \ „Ingineria sistemului de control \”.
Ingineria sistemului de control poate fi definită ca utilizarea diferitelor metode pentru a controla lucrările procesului sau întreținerea unui mediu constant și preferat, fie manual sau automat.
Un exemplu simplu este controlul temperaturii camerei.
Controlul manual se referă la prezența unei persoane care verifică condițiile actuale pe site (senzor)
, cu așteptări (procesare)
și să ia măsuri adecvate pentru a obține valoarea dorită (actuator).
Problema acestei abordări este că nu este foarte fiabilă, deoarece unul este predispus la eroare sau neglijență la locul de muncă.
În plus, o altă problemă este că rata procesului pe care o începe actuatorul nu este întotdeauna uniformă, ceea ce înseamnă că uneori poate fi mai rapid decât viteza necesară și, uneori, poate fi lent.
Soluția la această problemă este de a utiliza un micro-controlor pentru a controla sistemul.
Conform specificației date, micro-controlorul este programat pentru a controla procesul de conectare în circuit (
discutați mai târziu)
valoarea sau condiția, controlând astfel procesul pentru a menține valoarea dorită.
Beneficiul acestui proces este că nu este nevoie de intervenție umană în acest proces.
În plus, viteza acestui proces este consecventă.
Înainte de a continua, este crucial să se stabilească diferiții termeni în acest moment: Control feedback: În acest sistem, intrarea la un anumit moment depinde de una sau mai multe variabile, inclusiv de ieșirea sistemului.
Feedback negativ: În acest sistem, referința (intrarea)
ca feedback, eroarea este scăzută și faza de intrare este de 180 de grade.
Feedback pozitiv: În acest sistem,
erorile de referință (de intrare) sunt adăugate atunci când feedback -ul și intrarea sunt în fază.
Semnal de eroare: diferența dintre ieșirea dorită și ieșirea reală.
Senzor: un dispozitiv utilizat pentru a detecta un anumit număr de dispozitive într -un circuit.
De obicei este plasat în ieșire sau oriunde vrem să facem unele măsurători.
Procesor: parte a sistemului de control care este procesat pe baza algoritmilor de programare.
Este nevoie de o anumită intrare și produce unele ieșiri.
Actuator: În sistemul de control, actuatorul este utilizat pentru a efectua evenimente bazate pe semnalul generat de micro-controlor pentru a afecta ieșirea.
Sistem cu buclă închisă: un sistem cu unul sau mai multe bucle de feedback.
Open Loop System: Nu există un sistem pentru bucla de feedback.
Timp de creștere: timpul necesar pentru ca producția să crească de la 10% din amplitudinea maximă a semnalului la 90%.
Timp de scădere: timpul necesar pentru ca ieșirea să scadă de la 90% la 10%.
Vârfuri de vârf: depășirea vârfului este cantitatea de producție care depășește valoarea sa de stare constantă (
normal în timpul răspunsului tranzitoriu al sistemului).
Timp stabil: timpul necesar pentru ca ieșirea să ajungă la o stare stabilă.
Eroare în stare constantă: diferența dintre ieșirea reală și ieșirea preconizată odată ce sistemul ajunge în stare constantă. Imaginea de mai sus arată o versiune foarte simplificată a sistemului de control.
Micro-controlor este nucleul oricărui sistem de control.
Aceasta este o componentă foarte importantă, deci ar trebui să fie selectată cu atenție în conformitate cu cerințele sistemului.
Micro-controlorul primește intrare de la utilizator.
Această intrare definește condițiile necesare pentru sistem.
Micro-controlorul primește, de asemenea, intrare de la senzor.
Senzorul este conectat la ieșire, iar informațiile sale sunt readuse la intrare.
Această intrare poate fi numită și feedback negativ.
Feedback -ul negativ a fost explicat anterior.
Pe baza programării sale, microprocesorul efectuează diverse calcule și ieșiri la actuator.
Uzina de control a actuatorului bazată pe ieșire încearcă să mențină aceste condiții.
Un exemplu poate fi șoferul motorului care conduce motorul, unde șoferul motorului este șoferul, iar motorul este fabrica.
Prin urmare, motorul se rotește cu o viteză dată.
Senzorul conectat citește starea fabricii curente și îl alimentează înapoi la micro controler.
Micro-controlorul este comparat din nou și calculat, astfel încât bucla se repetă.
Procesul este repetitiv și interminabil, iar micro-controlorul poate menține condițiile dorite.
Iată două moduri principale de a controla viteza motorului DC)
Controlul tensiunii manuale: în aplicațiile industriale, mecanismul de control al vitezei motorului DC este esențial.
Uneori este posibil să avem nevoie de viteze mai mari sau mai mici decât în ​​mod normal.
Prin urmare, avem nevoie de o metodă eficientă de control al vitezei.
Controlul tensiunii de alimentare este una dintre cele mai simple metode de control al vitezei.
Putem schimba tensiunea pentru a schimba viteza. b)
Controlează PWM folosind PID: Un alt mod mai eficient este să folosești un micro-controlor.
Motorul DC este conectat la micro controler prin intermediul șoferului motorului.
Driverul motorului este un IC care primește PWM (
modularea lățimii pulsului)
de la micro controler și ieșire la motorul DC în funcție de intrare. Figura 1.
2: Capitolul 1 din semnalul PWM.
Introducere 3 Având în vedere semnalul PWM, funcționarea PWM poate fi explicată mai întâi.
Este format din impulsuri continue pentru o anumită perioadă de timp.
Perioada de timp este timpul petrecut cu un punct care se deplasează la o distanță egală cu o lungime de undă.
Aceste impulsuri pot avea doar valori binare (mari sau mici).
De asemenea, avem alte două cantități, lățimea pulsului și ciclul de serviciu.
Lățimea pulsului este momentul în care ieșirea PWM este mare.
Ciclul de serviciu este procentul lățimii pulsului până la perioada de timp.
În restul perioadei de timp, producția este scăzută.
Ciclul de serviciu controlează direct viteza motorului.
Dacă motorul DC oferă o tensiune pozitivă într -o anumită perioadă de timp, acesta se va deplasa cu o anumită viteză.
Dacă tensiunea pozitivă este prevăzută pentru o perioadă mai lungă de timp, viteza va fi mai mare.
Prin urmare, ciclul de serviciu al PWM poate fi schimbat modificând lățimea pulsului.
Prin schimbarea ciclului de serviciu al motorului DC, viteza motorului poate fi modificată.
Controlul vitezei pentru problemele motorului DC: Problema cu prima metodă de control al vitezei este că tensiunea se poate schimba în timp.
Aceste modificări înseamnă o viteză neuniformă.
Prin urmare, prima metodă este nedorită.
Soluție: Folosim a doua metodă pentru a controla viteza.
Folosim algoritmul PID pentru a suplimenta a doua metodă.
PID reprezintă derivatul integral proporțional.
În algoritmul PID, viteza curentă a motorului este măsurată și comparată cu viteza dorită.
Această eroare este utilizată pentru calcule complexe pentru a modifica ciclul de serviciu al motorului în funcție de timp.
Există acest proces în fiecare ciclu.
Dacă viteza depășește viteza dorită, ciclul de serviciu este redus și ciclul de serviciu crește dacă viteza este mai mică decât viteza dorită.
Această ajustare nu se face până când nu se ajunge la cea mai bună viteză.
Verificați și controlați constant această viteză.
Iată componentele sistemului utilizate în acest proiect și o scurtă introducere la detaliile fiecărei componente.
STM 32F407: Micro-controlor proiectat de ST Micro-secțiune.
Funcționează pe Arm Cortex. M Arhitectură.
Își conduce familia cu o frecvență de ceas ridicată de 168 MHz.
Motor Driver L298N: Acest IC este utilizat pentru a rula motorul.
Are două intrări externe.
Unul de la micro controler.
Micro-controlor oferă un semnal PWM pentru acesta.
Viteza motorului poate fi reglată prin reglarea lățimii pulsului.
A doua intrare a acestuia este sursa de tensiune necesară pentru a conduce motorul.
DC Motor: Motorul DC funcționează pe sursa de alimentare cu curent continuu.
În acest experiment, motorul DC este operat folosind un cuplaj fotoelectric conectat la șoferul motorului.
Senzor infraroșu: Senzorul infraroșu este de fapt un transceiver infraroșu.
Trimite și primește unde infraroșii care pot fi utilizate pentru a îndeplini diverse sarcini.
Cuplajul optic al codificatorului IR 4N35: cuplajul optic este un dispozitiv utilizat pentru a izola partea de joasă tensiune a circuitului și a părții de înaltă tensiune.
După cum sugerează și numele, funcționează pe baza luminii.
Când partea de joasă tensiune primește semnalul, curentul curge în partea de înaltă tensiune.
Sistemul este un sistem de control al vitezei.
Așa cum am menționat anterior, sistemul este implementat folosind PID de integral proporțional și derivat.
Sistemul de control al vitezei are componentele de mai sus.
Prima parte este senzorul de viteză.
Senzorul de viteză este un emițător cu infraroșu și un circuit de receptor.
Când solidul trece prin fanta în formă de U, senzorul intră într-o stare scăzută.
În mod normal, este într -o stare înaltă.
Ieșirea senzorului este conectată la un filtru cu trecere mică pentru a elimina atenuarea cauzată de tranzitorul generat atunci când starea senzorului se schimbă.
Filtrul cu trecere mică este format din rezistențe și condensatoare.
Valorile au fost selectate după cum este necesar.
Condensatorul utilizat este 1100NF, iar rezistența folosită este de aproximativ 25 de ohmi.
Filtrul cu trecere scăzută elimină condițiile tranzitorii inutile care pot duce la lecturi suplimentare și valori de gunoi.
Filtrul cu trecere scăzută este apoi ieșit prin condensator la pinul digital de intrare al micro-controlorului STM.
Cealaltă parte este motorul controlat de PWM furnizat de STM Micro-Controller.
Această setare a fost prevăzută cu izolare electrică folosind cuplajul optic IC.
Cuplajul optic include un LED care emite lumină în pachetul IC, iar atunci când un puls mare este dat la terminalul de intrare, acesta a scurtcircurat terminalul de ieșire.
Terminalul de intrare dă PWM printr -un rezistor care limitează curentul LED -ului conectat la cuplajul optic.
O rezistență derulantă este conectată la ieșire, astfel încât atunci când terminalul este scurtcircuit, tensiunea este generată la rezistența derulantă și știftul conectat la terminalul de pe rezistență primește o stare ridicată.
Ieșirea cuplajului fotoelectric este conectată la IN1 a IC a șoferului motorului care menține înălțimea pinului de activare.
Când ciclul de serviciu PWM se schimbă la intrarea cuplajului optic, pinul șoferului motorului comută motorul și controlează viteza motorului.
După ce PWM prevăzut motorului, șoferul motorului oferă de obicei o tensiune de 12 volți.
Driverul motorului permite apoi funcționarea motorului.
Să introducem algoritmul pe care l -am folosit în implementarea acestui proiect de reglementare a vitezei motorii.
PWM -ul motorului este furnizat de un singur cronometru.
Configurația cronometrului este făcută și setată pentru a furniza PWM.
Când pornește motorul, rotește fanta atașată la arborele motorului.
Fanta trece prin cavitatea senzorului și produce un puls scăzut.
La impulsuri mici, codul pornește și așteaptă să se miște fanta.
Odată ce fanta dispare, senzorul oferă o stare ridicată și cronometrul începe să conteze.
Cronometrul ne oferă timpul dintre cele două fante.
Acum, când apare un alt puls scăzut, declarația IF se execută din nou, așteptând următoarea margine în creștere și oprind blatul.
După calcularea vitezei, calculați diferența dintre viteză și valoarea reală de referință și dați PID.
PID calculează valoarea ciclului de serviciu care atinge valoarea de referință la un moment dat.
Această valoare este furnizată CCR (
Registrul de comparație)
în funcție de eroare, viteza cronometrului este redusă sau crescută.
Codul atolic Truestudio a fost implementat.
Este posibil ca STM Studio să fie instalat pentru depanare.
Importați proiectul în STM Studio și importați variabilele pe care doriți să le vizualizați.
Ușoarea schimbare este pe 2017-11-4XX.
Schimbați frecvența ceasului exact într -un fișier H la 168 MHz.
Snippetul de cod a fost furnizat mai sus.
Concluzia este că viteza motorului este controlată folosind PID.
Cu toate acestea, curba nu este tocmai o linie netedă.
Există multe motive pentru acest lucru: deși senzorul conectat la filtrul cu trecere mică oferă în continuare anumite defecte, acestea se datorează unor motive inevitabile pentru rezistențe neliniare și dispozitive electronice analogice, motorul nu se poate roti lin la tensiune mică sau PWM.
Oferă funduri care pot determina sistemul să introducă o valoare greșită.
Datorită bruiajului, senzorul poate lipsi o fanta care oferă o valoare mai mare, iar motivul principal pentru o altă eroare poate fi frecvența de ceas de bază a STM.
Ceasul de bază al STM este de 168 MHz.
Deși această problemă a fost abordată în acest proiect, există un concept holistic al acestui model care nu oferă o frecvență atât de mare.
Viteza buclei deschise oferă o linie foarte lină, cu doar câteva valori neașteptate.
PID funcționează, de asemenea, și oferă un timp foarte scăzut de stabilitate a motorului.
PID -ul motorului a fost testat la diferite tensiuni care au menținut constantă viteza de referință.
Schimbarea tensiunii nu schimbă viteza motorului, ceea ce indică faptul că PID funcționează.
Iată câteva segmente ale producției finale a PID. a)
Buclă închisă @ 110 RPMB)
Buclă închisă @ 120 RPM. Proiectul nu a putut fi finalizat fără ajutorul membrilor grupului meu.
Vreau să le mulțumesc.
Vă mulțumim că ați vizionat acest proiect.
Sper să vă ajut.
Vă rugăm să așteptați cu nerăbdare mai multe.
Păstrează binecuvântarea înainte :)

Grupul Hoprio Un producător profesionist de controlor și motoare, a fost înființat în 2000. Sediul grupului din orașul Changzhou, provincia Jiangsu.

Link -uri rapide

Contactaţi-ne

WhatsApp: +86 18921090987 
Tel: +86-18921090987 
Adăugare: nr.19 Mahang South Road, districtul de înaltă tehnologie Wujin, orașul Changzhou, provincia Jiangsu, China 213167
Lăsaţi un mesaj
CONTACTAŢI-NE
Copyright © 2024 Changzhou Hoprio E-Commerce Co., Ltd. Toate drepturile rezervate. Sitemap | Politica de confidențialitate