Inhoudsopgave:

DC Motor Speed Drive - Ajarnpa
DC Motor Speed Drive - Ajarnpa

Video: DC Motor Speed Drive - Ajarnpa

Video: DC Motor Speed Drive - Ajarnpa
Video: Swave-W Speed เทพ บนรถ MiniZ PN Racing by Ajarn So 2024, Juli-
Anonim
DC-motorsnelheidsaandrijving
DC-motorsnelheidsaandrijving
DC-motorsnelheidsaandrijving
DC-motorsnelheidsaandrijving

Deze instructable gaat dieper in op het ontwerp, de simulatie, het bouwen en testen van een DC-naar-DC-omzetter en regelsysteemcontroller voor een DC-motor. Deze omvormer wordt dan gebruikt voor de digitale aansturing van een shunt-gelijkstroommotor met belasting. De schakeling wordt in verschillende fasen ontwikkeld en getest.

De eerste fase is het bouwen van een converter die op 40V werkt. Dit wordt gedaan om ervoor te zorgen dat er geen parasitaire inductie is van draden en andere circuitcomponenten die de driver bij hoge spanningen kunnen beschadigen. In de tweede fase zal de omvormer de motor op 400 V met maximale belasting laten draaien. De laatste fase is om de snelheid van de motor te regelen met een variabele belasting, waarbij de Arduino een pwm-golf bestuurt om de spanning aan te passen.

Componenten zijn niet altijd goedkoop en daarom is geprobeerd het systeem zo goedkoop mogelijk te bouwen. Het eindresultaat van dit practicum zal zijn om een dc-dc-omvormer en een regelsysteemcontroller te bouwen om het toerental van de motor binnen 1% te regelen op een instelpunt in stabiele toestand en om het toerental binnen 2 s in te stellen met een variabele belasting.

Stap 1: Componentselectie en specificaties

Componentselectie en specificaties
Componentselectie en specificaties

De motor die ik beschikbaar had had de volgende specificaties.

Motorspecificaties: Anker: 380 Vdc, 3,6 A

Bekrachtiging (shunt): 380 Vdc, 0,23 A

Nominale snelheid: 1500 omw/min

Vermogen: ≈ 1,1 kW

DC Motor voeding = 380V

Optocoupler en driver voeding = 21V

Dit zou impliceren dat de maximale stroom- en spanningswaarden van componenten die zijn aangesloten op of die de motor besturen, hogere of gelijkwaardige waarden zouden hebben.

De vrijloopdiode, aangeduid als D1 in het schakelschema, wordt gebruikt om de omgekeerde emf van de motor een pad te geven om te voorkomen dat de stroom omkeert en componenten beschadigt wanneer de stroom is uitgeschakeld en de motor nog draait (generatormodus Het is geschikt voor een maximale sperspanning van 600 V en een maximale voorwaartse gelijkstroom van 15 A. Daarom kan worden aangenomen dat de vliegwieldiode in staat zal zijn om op een voldoende spannings- en stroomniveau te werken voor deze taak.

De IGBT wordt gebruikt om de stroom naar de motor te schakelen door een 5V pwm-signaal van de Arduino te ontvangen via de optocoupler en de IGBT-driver om de zeer grote 380V-motorvoedingsspanning te schakelen. De gebruikte IGBT heeft een maximale continue collectorstroom van 4,5A bij een junctietemperatuur van 100°C. De maximale collector-emitterspanning is 600V. Daarom kan worden aangenomen dat de vliegwieldiode in staat zal zijn om op een voldoende spannings- en stroomniveau te werken voor de praktijk. Het is belangrijk om een koellichaam aan de IGBT toe te voegen, bij voorkeur een grote. Als IGBT's niet beschikbaar zijn, kan een snel schakelende MOSFET worden gebruikt.

De IGBT heeft een gate-drempelspanning tussen 3,75 V en 5,75 V en er is een driver nodig om deze spanning te leveren. De frequentie waarop de schakeling zal werken is 10 kHz, dus de schakeltijden van de IGBT moeten sneller zijn dan 100 us, de tijd van één volledige golf. De schakeltijd voor de IGBT is 15ns wat voldoende is.

De gekozen TC4421 driver heeft schakeltijden van minimaal 3000 keer de PWM-golf. Dit zorgt ervoor dat de bestuurder snel genoeg kan schakelen voor de circuitwerking. De driver is nodig om meer stroom te leveren dan de Arduino kan geven. De driver haalt de benodigde stroom om de IGBT te laten werken uit de voeding in plaats van hem uit de Arduino te trekken. en getest).

De driver wordt geïsoleerd van de microcontroller die de PWM-golf levert met behulp van een optocoupler. De optocoupler isoleerde de Arduino volledig, het belangrijkste en meest waardevolle onderdeel van uw circuit.

Voor motoren met verschillende parameters hoeft alleen de IGBT te worden gewijzigd in een IGBT met vergelijkbare kenmerken als de motor die de benodigde sperspanning en continue collectorstroom aankan.

Een WIMA-condensator wordt gebruikt in combinatie met een elektrolytische condensator over de motorvoeding. Dit slaat een lading op om de voeding te stabiliseren en helpt vooral om de inductanties van de kabels en connectoren in het systeem te elimineren

Stap 2: Gebouw en lay-out

Gebouw en indeling
Gebouw en indeling

De lay-out van de schakeling is opgesteld om de afstand tussen de componenten te minimaliseren om onnodige inductanties te elimineren. Dit gebeurde vooral in de lus tussen de IGBT-driver en de IGBT. Er is een poging gedaan om ruis en rinkelen te elimineren met grote weerstanden die waren geaard tussen de Arduino, Optocoupler, Driver en IGBT.

De componenten zijn gesoldeerd op een Veroboard. Een eenvoudige manier om de schakeling te bouwen, is door de componenten van het schakelschema op het veroboard te tekenen voordat u gaat solderen. Soldeer in een goed geventileerde ruimte. Kras het geleidende pad van met een bestand om een opening te creëren tussen componenten die niet moeten worden aangesloten. Gebruik DIP-pakketten zodat componenten eenvoudig kunnen worden vervangen. Dit helpt wanneer componenten er niet in slagen ze niet uit te solderen en het vervangende onderdeel opnieuw te solderen.

Ik gebruikte banaanstekkers (zwarte en rode stopcontacten) om mijn voedingen gemakkelijk op het veroboard aan te sluiten, dit kan worden overgeslagen en de draden direct op de printplaat gesoldeerd.

Stap 3: Programmeren van de Arduino

De pwm-golf wordt gegenereerd door de Arduino PWM-bibliotheek op te nemen (bijgevoegd als een ZIP-bestand). Een proportionele integrale regelaar (PI-regelaar) wordt gebruikt om het toerental van de rotor te regelen. De proportionele en integrale versterking kan worden berekend of geschat totdat voldoende insteltijden en overshoots zijn verkregen.

De PI-controller is geïmplementeerd in de while()-lus van de Arduino. De toerenteller meet de snelheid van de rotor. Deze meetinvoer naar de arduino in een van de analoge ingangen met behulp van analogRead. De fout wordt berekend door de huidige rotorsnelheid af te trekken van de ingestelde rotorsnelheid en gelijk te stellen aan de fout. De tijdsintegratie werd gedaan door elke lus de bemonsteringstijd toe te voegen aan de tijd en deze gelijk te stellen aan de tijd en dus te verhogen met elke iteratie van de lus. De duty cycle die de Arduino kan uitvoeren varieert van 0 tot 255. De duty cycle wordt berekend en uitgevoerd naar de geselecteerde digitale output PWM-pin met pwmWrite uit de PWM-bibliotheek.

Implementatie van PI-controller

dubbele fout = ref - rpm;

Tijd = Tijd + 20e-6;

dubbele pwm = initiaal + kp * fout + ki * Tijd * fout;

Implementatie van PWM

dubbele sensor = analoog lezen (A1);

pwmWrite(3, pwm-255);

De volledige projectcode is te zien in het bestand ArduinoCode.rar. De code in het bestand is aangepast voor een inverterende driver. De inverterende driver had het volgende effect op de duty cycle van het circuit, wat betekent new_dutycycle = 255 -dutycycle. Dit kan worden gewijzigd voor niet-inverterende drivers door de bovenstaande vergelijking om te keren.

Stap 4: Testen en conclusie

Testen en conclusie
Testen en conclusie
Testen en conclusie
Testen en conclusie
Testen en conclusie
Testen en conclusie

De schakeling is uiteindelijk getest en er zijn metingen verricht om te bepalen of het gewenste resultaat is behaald. De controller is ingesteld op twee verschillende snelheden en geüpload naar de Arduino. De voedingen zijn ingeschakeld. De motor accelereert snel voorbij de gewenste snelheid en komt vervolgens tot rust op de geselecteerde snelheid.

Deze techniek voor het besturen van een motor is zeer effectief en zou werken op alle gelijkstroommotoren.

Aanbevolen: