Hallo allemaal, ik ben tahir ul haq van een ander project.
Deze keer was het tijd om MC te doen die werd gebruikt op 407-11-2017.
Dit is het einde van het tussentijdse programma.
Ik hoop dat je het leuk vindt.
Het vereist veel concepten en theorieën, dus laten we er eerst naar kijken.
Met de opkomst van computers en het geïndustrialiseerde proces is er in de geschiedenis van de mens onderzoek gedaan naar de ontwikkeling van methoden om het proces te herdefiniëren, en nog belangrijker, naar het gebruik van machines om het proces autonoom te besturen.
Het doel is om de menselijke deelname aan deze processen te verminderen, waardoor fouten in deze processen worden verminderd.
Daarom ontstond het vakgebied \'control system engineering\'.
Besturingssysteemtechniek kan worden gedefinieerd als het gebruik van verschillende methoden om de werking van het proces te controleren of om een constante en voorkeursomgeving in stand te houden, zowel handmatig als automatisch.
Een eenvoudig voorbeeld is het regelen van de temperatuur in de kamer.
Handmatige controle verwijst naar de aanwezigheid van een persoon die ter plaatse de huidige omstandigheden controleert (sensor)
, met verwachtingen (verwerking)
en passende actie onderneemt om de gewenste waarde te verkrijgen (actuator).
Het probleem met deze aanpak is dat deze niet erg betrouwbaar is, omdat men gevoelig is voor fouten of nalatigheid op het werk.
Bovendien is een ander probleem dat de snelheid van het proces dat de actuator start niet altijd uniform is, wat betekent dat het soms sneller kan zijn dan de vereiste snelheid, en soms langzaam.
De oplossing voor dit probleem is het gebruik van een microcontroller om het systeem te besturen.
Volgens de gegeven specificatie is de microcontroller geprogrammeerd om het proces van het verbinden in het circuit (
bespreek later)
de waarde of toestand te besturen, waardoor het proces wordt bestuurd om de gewenste waarde te behouden.
Het voordeel van dit proces is dat er geen menselijke tussenkomst in dit proces nodig is.
Bovendien is de snelheid van dit proces consistent.
Voordat we verder gaan, is het van cruciaal belang om op dit punt de verschillende termen te bepalen: Feedbackcontrole: In dit systeem is de input op een bepaald moment afhankelijk van een of meer variabelen, inclusief de output van het systeem.
Negatieve feedback: In dit systeem wordt referentie (invoer)
Als feedback wordt de fout afgetrokken en is de fase van de invoer 180 graden.
Positieve feedback: In dit systeem
worden referentie- (invoer)fouten toegevoegd wanneer feedback en invoer in fase zijn.
Foutsignaal: het verschil tussen de gewenste output en de daadwerkelijke output.
Sensor: een apparaat dat wordt gebruikt om een bepaald aantal apparaten in een circuit te detecteren.
Het wordt meestal in de uitvoer geplaatst of waar we ook metingen willen doen.
Processor: onderdeel van het besturingssysteem dat wordt verwerkt op basis van programmeeralgoritmen.
Het kost wat input en levert wat output op.
Actuator: in het besturingssysteem wordt de actuator gebruikt om gebeurtenissen uit te voeren op basis van het signaal dat door de microcontroller wordt gegenereerd om de uitvoer te beïnvloeden.
Closed-loopsysteem: een systeem met één of meer feedbacklussen.
Open-lussysteem: er is geen systeem voor feedbacklus.
Stijgtijd: De tijd die nodig is voordat de uitvoer stijgt van 10% van de maximale amplitude van het signaal naar 90%.
Drop Time: De tijd die nodig is om de output te laten dalen van 90% naar 10%.
Piekoverschrijding: piekoverschrijding is de hoeveelheid output die de steady-state-waarde overschrijdt (
normaal tijdens transiënte respons van het systeem).
Stabiele tijd: de tijd die nodig is voordat de uitvoer een stabiele toestand bereikt.
Steady-state error: het verschil tussen de werkelijke output en de verwachte output zodra het systeem de steady-state bereikt. De afbeelding hierboven toont een zeer vereenvoudigde versie van het besturingssysteem.
De microcontroller vormt de kern van elk besturingssysteem.
Dit is een zeer belangrijk onderdeel, dus het moet zorgvuldig worden geselecteerd op basis van de vereisten van het systeem.
De microcontroller ontvangt input van de gebruiker.
Deze invoer definieert de voorwaarden die vereist zijn voor het systeem.
De microcontroller ontvangt ook input van de sensor.
De sensor wordt op de uitgang aangesloten en de informatie wordt teruggekoppeld naar de ingang.
Deze input wordt ook wel negatieve feedback genoemd.
Negatieve feedback werd eerder uitgelegd.
Op basis van zijn programmering voert de microprocessor verschillende berekeningen uit en geeft hij uitvoer aan de actuator.
De op output gebaseerde actuatorbesturing probeert deze omstandigheden te handhaven.
Een voorbeeld hiervan kan zijn dat de motorbestuurder de motor aandrijft, waarbij de motorbestuurder de bestuurder is en de motor de fabriek.
Daarom draait de motor met een bepaalde snelheid.
De aangesloten sensor leest de status van de huidige fabriek en stuurt deze terug naar de microcontroller.
De microcontroller wordt opnieuw vergeleken en berekend, zodat de lus wordt herhaald.
Het proces is repetitief en eindeloos, en de microcontroller kan de gewenste omstandigheden handhaven.
Hier zijn twee manieren om de snelheid van de DC-motor te regelen)
Handmatige spanningsregeling: in industriële toepassingen is het snelheidsregelmechanisme van de DC-motor van cruciaal belang.
Soms hebben we snelheden nodig die hoger of lager zijn dan normaal.
Daarom hebben we een effectieve snelheidscontrolemethode nodig.
Het regelen van de voedingsspanning is een van de eenvoudigste methoden voor snelheidsregeling.
We kunnen de spanning veranderen om de snelheid te veranderen. b)
PWM besturen met PID: een andere, efficiëntere manier is het gebruik van een microcontroller.
De DC-motor is via de motordriver verbonden met de microcontroller.
De motordriver is een IC die PWM (
pulsbreedtemodulatie) ontvangt
van de microcontroller en wordt uitgevoerd naar de gelijkstroommotor volgens de invoer. Figuur 1.
2: Hoofdstuk 1 van PWM-signaal.
Inleiding 3 Gezien het PWM-signaal kan eerst de werking van PWM worden uitgelegd.
Het bestaat uit continue pulsen gedurende een bepaalde tijdsperiode.
De tijdsperiode is de tijd die een punt doorbrengt op een afstand gelijk aan een golflengte.
Deze pulsen kunnen alleen binaire waarden hebben (HOOG of LAAG).
We hebben ook nog twee andere grootheden, de pulsbreedte en de duty-cycle.
De pulsbreedte is de tijd waarop de PWM-uitgang hoog is.
De duty-cycle is het percentage van de pulsbreedte ten opzichte van de tijdsperiode.
Voor de rest van de periode is de output laag.
De duty-cycle regelt rechtstreeks de snelheid van de motor.
Als de gelijkstroommotor binnen een bepaalde tijd een positieve spanning levert, beweegt deze met een bepaalde snelheid.
Als er gedurende langere tijd een positieve spanning aanwezig is, zal de snelheid groter zijn.
Daarom kan de duty-cycle van PWM worden gewijzigd door de pulsbreedte te wijzigen.
Door de duty-cycle van de DC-motor te wijzigen, kan de snelheid van de motor worden gewijzigd.
Snelheidsregeling voor problemen met DC-motoren: het probleem met de eerste methode voor snelheidsregeling is dat de spanning in de loop van de tijd kan veranderen.
Deze veranderingen betekenen een ongelijkmatige snelheid.
Daarom is de eerste methode ongewenst.
Oplossing: We gebruiken de tweede methode om de snelheid te regelen.
We gebruiken het PID-algoritme als aanvulling op de tweede methode.
PID vertegenwoordigt de proportionele integrale afgeleide.
In het PID-algoritme wordt het huidige toerental van de motor gemeten en vergeleken met het gewenste toerental.
Deze fout wordt gebruikt voor complexe berekeningen om de duty-cycle van de motor in functie van de tijd te veranderen.
Dit proces vindt plaats in elke cyclus.
Als het toerental het gewenste toerental overschrijdt, wordt de duty-cycle verlaagd en neemt de duty-cycle toe als het toerental lager is dan het gewenste toerental.
Deze aanpassing wordt pas uitgevoerd als de beste snelheid is bereikt.
Controleer en controleer deze snelheid voortdurend.
Hier volgen de systeemcomponenten die in dit project zijn gebruikt en een korte introductie van de details van elke component.
STM 32F407: microcontroller ontworpen door ST Micro-section.
Het werkt op de ARM Cortex. M-architectuur.
Hij leidt zijn familie met een hoge klokfrequentie van 168 MHz.
Motordriver L298N: Dit IC wordt gebruikt om de motor te laten draaien.
Het heeft twee externe ingangen.
Eén van de microcontroller.
De microcontroller levert hiervoor een PWM-signaal.
Het motortoerental kan worden aangepast door de pulsbreedte aan te passen.
De tweede ingang is de spanningsbron die nodig is om de motor aan te drijven.
DC-motor: De DC-motor werkt op de DC-voeding.
In dit experiment wordt de gelijkstroommotor bediend met behulp van een foto-elektrische koppeling die is aangesloten op de motoraansturing.
Infraroodsensor: de infraroodsensor is eigenlijk een infraroodzendontvanger.
Het verzendt en ontvangt infraroodgolven die kunnen worden gebruikt om verschillende taken uit te voeren.
Optische koppeling IR-encoder 4N35: optische koppeling is een apparaat dat wordt gebruikt om het laagspanningsgedeelte van het circuit en het hoogspanningsgedeelte te isoleren.
Zoals de naam al aangeeft, werkt het op basis van licht.
Wanneer het laagspanningsgedeelte het signaal ontvangt, vloeit de stroom in het hoogspanningsgedeelte.
Het systeem is een snelheidscontrolesysteem.
Zoals eerder vermeld, wordt het systeem geïmplementeerd met behulp van PID van proportionele integraal en afgeleide.
Het snelheidsregelsysteem heeft de bovengenoemde componenten.
Het eerste deel is de snelheidssensor.
De snelheidssensor is een infrarood zender- en ontvangercircuit.
Wanneer de vaste stof door de u-vormige spleet gaat, komt de sensor in een lage toestand.
Normaal gesproken bevindt deze zich in een hoge staat.
De sensoruitgang is verbonden met een laagdoorlaatfilter om de verzwakking te elimineren die wordt veroorzaakt door de transiënt die wordt gegenereerd wanneer de toestand van de sensor verandert.
Het laagdoorlaatfilter bestaat uit weerstanden en condensatoren.
Waarden werden naar behoefte geselecteerd.
De gebruikte condensator is 1100 nf en de gebruikte weerstand is ongeveer 25 ohm.
Het laagdoorlaatfilter elimineert onnodige voorbijgaande omstandigheden die kunnen resulteren in extra metingen en rommelwaarden.
Het laagdoorlaatfilter wordt vervolgens via de condensator naar de digitale ingangspin van de stm-microcontroller gestuurd.
Het andere deel is de motor die wordt bestuurd door pwm, geleverd door een stm-microcontroller.
Deze instelling is galvanisch gescheiden door middel van de optische koppelaar ic.
De optische koppelaar bevat een led die licht uitzendt binnen het IC-pakket, en wanneer een hoge puls wordt gegeven aan de ingangsterminal, wordt de uitgangsterminal kortgesloten.
De ingangsterminal geeft pwm via een weerstand die de stroom beperkt van de led die is aangesloten op de optische koppeling.
Aan de uitgang is een drop-down-weerstand aangesloten, zodat wanneer de terminal wordt kortgesloten, de spanning wordt gegenereerd op de drop-down-weerstand en de pin die is verbonden met de terminal op de weerstand een hoge status krijgt.
De uitgang van de foto-elektrische koppeling is verbonden met de IN1 van de motoraandrijfeenheid die de hoogte van de activeringspin handhaaft.
Wanneer de pwm-werkcyclus verandert bij de ingang van de optische koppeling, schakelt de motoraandrijfpin de motor en regelt de snelheid van de motor.
Na de pwm die aan de motor wordt geleverd, levert de motoraansturing doorgaans een spanning van 12 volt.
De motoraansturing zorgt er vervolgens voor dat de motor kan werken.
Laten we het algoritme introduceren dat we hebben gebruikt bij de implementatie van dit motorsnelheidsregelingsproject.
De pwm van de motor wordt geleverd door een enkele timer.
De configuratie van de timer is gemaakt en ingesteld om pwm te leveren.
Wanneer de motor start, draait deze de gleuf die aan de motoras is bevestigd.
De spleet gaat door de sensorholte en produceert een lage puls.
Bij lage pulsen start de code en wacht tot de spleet beweegt.
Zodra de spleet verdwijnt, geeft de sensor een hoge status af en begint de timer te tellen.
De timer geeft ons de tijd tussen de twee spleten.
Wanneer er nu weer een lage puls verschijnt, wordt de IF-instructie opnieuw uitgevoerd, wachtend op de volgende stijgende flank en stopt de teller.
Bereken na het berekenen van de snelheid het verschil tussen de snelheid en de werkelijke referentiewaarde en geef de pid op.
Pid berekent de duty-cyclewaarde die op een bepaald moment de referentiewaarde bereikt.
Deze waarde wordt aan CCR (
vergelijkingsregister) doorgegeven
. Afhankelijk van de fout wordt de snelheid van de timer verlaagd of verhoogd.
De Atollic Truestudio-code is geïmplementeerd.
Voor foutopsporing moet mogelijk STM studio worden geïnstalleerd.
Importeer het project in STM studio en importeer de variabelen die u wilt bekijken.
De kleine verandering vindt plaats op 4xx-11-2017.
Wijzig de klokfrequentie nauwkeurig naar een h-bestand op 168 MHz.
Het codefragment is hierboven weergegeven.
De conclusie is dat de snelheid van de motor wordt geregeld met behulp van PID.
De curve is echter niet bepaald een vloeiende lijn.
Daar zijn veel redenen voor: hoewel de sensor die op het laagdoorlaatfilter is aangesloten nog steeds bepaalde defecten vertoont, zijn deze te wijten aan enkele onvermijdelijke redenen voor niet-lineaire weerstanden en analoge elektronische apparaten: de motor kan niet soepel draaien bij een lage spanning of pwm.
Het biedt klootzakken die ervoor kunnen zorgen dat het systeem een verkeerde waarde invoert.
Als gevolg van jitter kan de sensor een spleet missen die een hogere waarde oplevert, en de belangrijkste reden voor een andere fout kan de kernklokfrequentie van de stm zijn.
De kernklok van Stm is 168 MHz.
Hoewel dit probleem in dit project is aangepakt, bestaat er een holistisch concept van dit model dat niet zo'n hoge frequentie biedt.
De open-lussnelheid zorgt voor een zeer vloeiende lijn met slechts een paar onverwachte waarden.
De PID werkt ook en zorgt voor een zeer korte motorstabiliteitstijd.
De motor-PID werd getest bij verschillende spanningen die de referentiesnelheid constant hielden.
De spanningsverandering verandert de snelheid van de motor niet, wat aangeeft dat de PID werkt.
Hier zijn enkele segmenten van de uiteindelijke uitvoer van de PID. a)
Gesloten lus @ 110 rpmb)
Gesloten lus @ 120 rpmDit project zou niet voltooid kunnen worden zonder de hulp van mijn groepsleden.
Ik wil ze bedanken.
Bedankt voor het kijken naar dit project.
Ik hoop je te helpen.
Kijk uit naar meer.
Blijf daarvoor zegenen :)
HOPRIO-groep, een professionele fabrikant van controllers en motoren, werd opgericht in 2000. Hoofdkantoor van de groep in Changzhou City, provincie Jiangsu.