Salutare tuturor, sunt tahir ul haq dintr-un alt proiect.
De data aceasta a fost momentul să faci MC care a fost folosit până în 2017-11-407.
Acesta este sfârșitul programului intermediar.
Sper să vă placă.
Necesită o mulțime de concepte și teorii, așa că să ne uităm mai întâi la el.
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, de a folosi mașini pentru a controla procesul în mod autonom.
Scopul este de a reduce participarea umană la aceste procese, reducând astfel erorile în aceste procese.
Prin urmare, domeniul \'inginerii sistemelor de control\' a luat ființă.
Ingineria sistemului de control poate fi definită ca utilizarea diferitelor metode pentru a controla activitatea procesului sau menț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 la fața locului (senzor)
, Cu așteptări (procesare)
Și ia măsurile corespunzătoare pentru a obține valoarea dorită (actuator).
Problema cu această abordare este că nu este foarte fiabilă, deoarece cineva este predispus la erori sau neglijență la locul de muncă.
În plus, o altă problemă este că rata procesului pornit de actuatorul nu este întotdeauna uniformă, ceea ce înseamnă că uneori poate fi mai rapidă decât viteza necesară, iar uneori poate fi lentă.
Soluția la această problemă este utilizarea unui micro-controler pentru a controla sistemul.
Conform specificației date, micro-controlerul este programat să controleze procesul de conectare în circuit (
Discutați mai târziu)
Valoarea sau starea, controlând astfel procesul pentru a menține valoarea dorită.
Beneficiul acestui proces este că nu este nevoie de intervenția umană în acest proces.
În plus, viteza acestui proces este constantă.
Înainte de a continua, este crucial să stabilim diferiții termeni în acest moment: Controlul feedback-ului: Î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ță (intrare)
Ca feedback, eroarea este scăzută și faza de intrare este de 180 de grade.
Feedback pozitiv: În acest sistem,
erorile de referință (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 folosit pentru a detecta un anumit număr de dispozitive dintr-un circuit.
De obicei este plasat în ieșire sau oriunde dorim să facem unele măsurători.
Procesor: parte a sistemului de control care este procesată pe baza algoritmilor de programare.
Este nevoie de ceva intrare și produce o ieșire.
Actuator: în sistemul de control, actuatorul este utilizat pentru a efectua evenimente bazate pe semnalul generat de microcontroler pentru a afecta ieșirea.
Sistem în buclă închisă: un sistem cu una sau mai multe bucle de feedback.
Sistem cu buclă deschisă: nu există un sistem pentru bucla de feedback.
Timp de creștere: timpul necesar pentru ca ieșirea să crească de la 10% din amplitudinea maximă a semnalului la 90%.
Timp de scădere: timpul necesar pentru ca rezultatul să scadă de la 90% la 10%.
Depășirea vârfului: depășirea vârfului este cantitatea de ieșire care depășește valoarea de stare staționară (
Normal în timpul răspunsului tranzitoriu al sistemului).
Timp stabil: timpul necesar pentru ca ieșirea să atingă o stare stabilă.
Eroare la starea de echilibru: diferența dintre ieșirea reală și ieșirea așteptată odată ce sistemul ajunge la starea de echilibru. Imaginea de mai sus prezintă o versiune foarte simplificată a sistemului de control.
Microcontrolerul este nucleul oricărui sistem de control.
Aceasta este o componentă foarte importantă, așa că trebuie selectată cu atenție în funcție de cerințele sistemului.
Micro-controlerul primește intrare de la utilizator.
Această intrare definește condițiile necesare pentru sistem.
Microcontrolerul primește, de asemenea, intrare de la senzor.
Senzorul este conectat la ieșire și informațiile sale sunt transmise înapoi la intrare.
Această intrare poate fi numită și feedback negativ.
Feedbackul negativ a fost explicat mai devreme.
Pe baza programării sale, microprocesorul efectuează diverse calcule și ieșiri către actuator.
Instalația de control al actuatorului pe bază de ieșire încearcă să mențină aceste condiții.
Un exemplu poate fi driverul care conduce motorul, unde driverul este conducătorul și motorul este fabrica.
Prin urmare, motorul se rotește cu o viteză dată.
Senzorul conectat citește starea fabricii curente și o transmite înapoi microcontrolerului.
Microcontrolerul este comparat din nou și calculat, astfel încât bucla se repetă.
Procesul este repetitiv și nesfârșit, iar microcontrolerul poate menține condițiile dorite.
Iată două moduri principale de a controla viteza motorului de curent continuu)
Control manual al tensiunii: în aplicațiile industriale, mecanismul de control al vitezei motorului de curent continuu este critic.
Uneori 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)
Controlați PWM folosind PID: o altă modalitate mai eficientă este utilizarea unui micro-controler.
Motorul de curent continuu este conectat la microcontroler prin driverul motorului.
Driverul motorului este un IC care primește PWM (
modularea lățimii impulsului)
Intrare de la microcontroler și ieșire către motorul de curent continuu în funcție de intrare. Figura 1.
2: Capitolul 1 al semnalului PWM.
Introducere 3 având în vedere semnalul PWM, funcționarea PWM poate fi explicată mai întâi.
Constă din impulsuri continue pentru o anumită perioadă de timp.
Perioada de timp este timpul petrecut de un punct care se deplasează la o distanță egală cu o lungime de undă.
Aceste impulsuri pot avea doar valori binare (HIGH sau LOW).
Avem și alte două cantități, lățimea impulsului și ciclul de lucru.
Lățimea impulsului este momentul în care ieșirea PWM este mare.
Ciclul de lucru este procentul dintre lățimea impulsului față de perioada de timp.
În restul perioadei de timp, producția este scăzută.
Ciclul de lucru controlează direct viteza motorului.
Dacă motorul de curent continuu oferă o tensiune pozitivă într-o anumită perioadă de timp, se va mișca cu o anumită viteză.
Dacă o tensiune pozitivă este furnizată pentru o perioadă mai lungă de timp, viteza va fi mai mare.
Prin urmare, ciclul de lucru al PWM poate fi modificat prin modificarea lățimii impulsului.
Prin schimbarea ciclului de lucru al motorului de curent continuu, viteza motorului poate fi modificată.
Controlul vitezei pentru probleme cu motorul de curent continuu: problema cu prima metodă de control al vitezei este că tensiunea se poate modifica în timp.
Aceste modificări înseamnă viteză neuniformă.
Prin urmare, prima metodă este nedorită.
Soluție: Folosim a doua metodă pentru a controla viteza.
Folosim algoritmul PID pentru a completa cea de-a doua metodă.
PID reprezintă derivata 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 funcționare al motorului în funcție de timp.
Există acest proces în fiecare ciclu.
Dacă viteza depășește viteza dorită, ciclul de lucru este redus și ciclul de lucru crește dacă viteza este mai mică decât viteza dorită.
Această reglare nu se face până când nu se atinge cea mai bună viteză.
Verificați și controlați în mod constant această viteză.
Iată componentele sistemului utilizate în acest proiect și o scurtă introducere în detaliile fiecărei componente.
STM 32F407: micro-controler proiectat de ST Micro-section.
Funcționează pe ARM Cortex. M Arhitectură.
Își conduce familia cu o frecvență mare de ceas de 168 MHz.
Driver de motor L298N: Acest IC este folosit pentru a porni motorul.
Are două intrări externe.
Unul de la microcontroler.
Microcontrolerul oferă un semnal PWM pentru acesta.
Viteza motorului poate fi reglată prin reglarea lățimii impulsului.
A doua intrare este sursa de tensiune necesară pentru a conduce motorul.
Motor DC: Motorul DC funcționează pe sursa de alimentare DC.
În acest experiment, motorul de curent continuu este acționat folosind un cuplaj fotoelectric conectat la driverul motorului.
Senzor infrarosu: senzorul infrarosu este de fapt un transceiver infrarosu.
Trimite și primește unde infraroșii care pot fi folosite pentru a îndeplini diverse sarcini.
Cuplaj optic codificator IR 4N35: cuplajul optic este un dispozitiv folosit pentru a izola partea de joasă tensiune a circuitului și partea de înaltă tensiune.
După cum sugerează și numele, funcționează pe baza luminii.
Când partea de joasă tensiune primește semnal, curentul circulă în partea de înaltă tensiune.
Sistemul este un sistem de control al vitezei.
După cum am menționat mai devreme, 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 circuit transmițător și receptor în infraroșu.
Când solidul trece prin fanta în formă de U, senzorul intră într-o stare scăzută.
În mod normal, este într-o stare ridicată.
Ieșirea senzorului este conectată la un filtru trece-jos pentru a elimina atenuarea cauzată de tranzitoriul generat atunci când starea senzorului se schimbă.
Filtrul trece jos este format din rezistențe și condensatoare.
Valorile au fost selectate conform cerințelor.
Condensatorul folosit este de 1100nf, iar rezistența folosită este de aproximativ 25 ohmi.
Filtrul trece-jos elimină condițiile tranzitorii inutile, care pot duce la citiri suplimentare și valori de gunoi.
Filtrul trece-jos este apoi scos prin condensator la pinul digital de intrare al micro-controlerului stm.
Cealaltă parte este motorul controlat de pwm furnizat de micro-controlerul stm.
Această setare a fost asigurată cu izolare electrică utilizând circuitul de cuplare optic.
Cuplajul optic include un led care emite lumină în pachetul IC, iar atunci când este dat un impuls ridicat la terminalul de intrare, acesta a scurtcircuitat terminalul de ieșire.
Terminalul de intrare dă pwm printr-un rezistor care limitează curentul led-ului conectat la cuplajul optic.
Un rezistor drop-down este conectat la ieșire, astfel încât atunci când terminalul este scurtcircuitat, tensiunea este generată la rezistorul drop-down și pinul conectat la terminalul de pe rezistor primește o stare ridicată.
Ieșirea cuplajului fotoelectric este conectată la IN1 al driverului motorului care menține înălțimea pinului de activare.
Când ciclul de lucru pwm se modifică la intrarea cuplajului optic, pinul de antrenare a motorului comută motorul și controlează viteza motorului.
După PWM furnizat motorului, driverul motorului oferă de obicei o tensiune de 12 volți.
Driverul motorului permite apoi motorului să funcționeze.
Să introducem algoritmul pe care l-am folosit în implementarea acestui proiect de reglare a vitezei motorului.
Pwm-ul motorului este asigurat de un singur temporizator.
Configurația temporizatorului este făcută și setată să furnizeze pwm.
Când motorul pornește, acesta rotește fanta atașată la arborele motorului.
Fanta trece prin cavitatea senzorului și produce un puls scăzut.
La impulsuri scăzute, codul pornește și așteaptă ca fanta să se miște.
Odată ce fanta dispare, senzorul oferă o stare ridicată și temporizatorul începe să conteze.
Cronometrul ne oferă timpul dintre cele două fante.
Acum, când apare un alt puls scăzut, instrucțiunea IF se execută din nou, așteptând următorul front crescător și oprind contorul.
După calcularea vitezei, calculați diferența dintre viteză și valoarea de referință reală și dați pid-ul.
Pid calculează valoarea ciclului de lucru 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 Atollic Truestudio a fost implementat.
STM Studio poate fi necesar să fie instalat pentru depanare.
Importați proiectul în STM studio și importați variabilele pe care doriți să le vizualizați.
Ușoară modificare este pe 2017-11-4xx.
Schimbați frecvența ceasului exact la un fișier h la 168 MHz.
Fragmentul 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 aceasta: deși senzorul conectat la filtrul trece-jos încă prezintă 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ă idioți care pot determina sistemul să introducă o valoare greșită.
Din cauza jitterului, senzorul poate pierde o fantă care oferă o valoare mai mare, iar motivul principal pentru o altă eroare poate fi frecvența ceasului de bază a stm.
Ceasul de bază al lui 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 în buclă deschisă oferă o linie foarte netedă, cu doar câteva valori neașteptate.
PID-ul 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ță.
Modificarea tensiunii nu modifică viteza motorului, indicând faptul că PID-ul funcționează.
Iată câteva segmente ale rezultatului final al PID. a)
Buclă închisă la 110 rpm)
Buclă închisă la 120 rpm. Acest proiect nu ar putea fi finalizat fără ajutorul membrilor grupului meu.
Vreau să le mulțumesc.
Vă mulțumim că ați urmărit acest proiect.
Sper să vă ajute.
Vă rugăm să așteptați mai multe.
Continuă să binecuvântezi înainte de asta :)