DC-servomotor: constructie, werking, interface met Arduino en zijn toepassingen

Probeer Ons Instrument Voor Het Oplossen Van Problemen





EEN servomotor of servo is een type elektrische motor die wordt gebruikt om de machineonderdelen met hoge precisie te roteren. Deze motor bevat een regelcircuit dat feedback geeft over de huidige locatie van de as van de motor, zodat deze feedback deze motoren eenvoudig met hoge precisie laat draaien. Een servomotor is handig bij het roteren van een object op een bepaalde afstand of hoek. Deze motor is ingedeeld in twee typen AC-servomotor en DC-servomotor. Als een servomotor gelijkstroom gebruikt om te werken, wordt de motor een DC-servomotor genoemd, terwijl als deze op wisselstroom werkt, deze bekend staat als een AC-servomotor. Deze tutorial geeft beknopte informatie over de DC-servomotor – werken met applicaties.


Wat is DC-servomotor?

Een servomotor die DC elektrische input gebruikt om mechanische output zoals positie, snelheid of versnelling te produceren, wordt een DC-servomotor genoemd. Over het algemeen worden dit soort motoren gebruikt als prime movers in numeriek bestuurde machines, computers en nog veel meer waar starts en stops worden gemaakt. precies & heel snel.



  DC-servomotor
DC-servomotor

Constructie en werking van DC-servomotor

De DC-servomotor is opgebouwd uit verschillende componenten die in het volgende blokschema worden weergegeven. In dit diagram worden hieronder elk onderdeel en zijn functie besproken.

  Blokschema DC-servomotor
Blokschema DC-servomotor

De motor die hierbij wordt gebruikt is een typische gelijkstroommotor inclusief de veldwikkeling die afzonderlijk wordt bekrachtigd. Dus afhankelijk van de aard van de excitatie, kan verder worden gecategoriseerd als ankergestuurde en veldgestuurde servomotoren.



De belasting die hierbij wordt gebruikt, is een eenvoudige ventilator of industriële belasting die eenvoudig is aangesloten op de mechanische as van de motor.

De versnellingsbak in deze constructie werkt als een mechanische transducer om de output van de motor, zoals acceleratie, positie of snelheid, te veranderen, afhankelijk van de toepassing.

  PCBWay

De belangrijkste functie van een positiesensor is om het feedbacksignaal gelijk te krijgen aan de huidige positie van de last. Over het algemeen is dit een potentiometer die wordt gebruikt om een ​​spanning te leveren die evenredig is met de absolute hoek van de motoras door het versnellingsmechanisme.

De comparatorfunctie is om de o/p van een positiesensor en een referentiepunt te vergelijken om het foutsignaal te produceren en aan de versterker te geven. Als de DC-motor met nauwkeurige besturing werkt, is er geen fout. De positiesensor, versnellingsbak en comparator maken het systeem tot een gesloten lus.

De versterkerfunctie is om de fout van de comparator te versterken en naar de DC-motor te voeren. Het presteert dus als een proportionele controller, waar de versterking ook wordt versterkt, zodat er geen stationaire fout optreedt.

Het gecontroleerde signaal geeft de invoer aan PWM (pulsbreedtemodulator), afhankelijk van het feedbacksignaal, zodat het de invoer van de motor moduleert voor nauwkeurige regeling, anders geen stationaire fout. Verder gebruikt deze pulsbreedtemodulator een referentiegolfvorm en comparator om pulsen te produceren.

Door het gesloten-lussysteem te maken, wordt versnelling, snelheid of exacte positie verkregen. Zoals de naam al doet vermoeden, is de servomotor een gecontroleerde motor die de gewenste output levert vanwege het feedback- en controllereffect. Het foutsignaal wordt simpelweg versterkt en gebruikt om de servomotor aan te drijven. Afhankelijk van het stuursignaal en de pulsbreedtemodulator-producerende aard, hebben deze motoren superieure gecontroleerde methoden met FPGA-chips of digitale signaalprocessors.

De werking van de DC-servomotor is; telkens wanneer het ingangssignaal op de gelijkstroommotor wordt toegepast, roteert het de as en tandwielen. Dus in feite wordt de rotatie van de tandwieluitgang teruggevoerd naar de positiesensor (potentiometer) waarvan de knoppen draaien en hun weerstand veranderen. Telkens wanneer de weerstand wordt gewijzigd, wordt een spanning gewijzigd, wat een foutsignaal is dat in de controller wordt ingevoerd en als gevolg daarvan wordt PWM gegenereerd.

Raadpleeg deze link voor meer informatie over de typen DC-servomotoren: Verschillende soorten servomotoren .

Overdrachtsfunctie van DC-servomotor

De overdrachtsfunctie kan worden gedefinieerd als de verhouding van de Laplace-transformatie (LT) van de o/p-variabele tot de LT ( Laplace-transformatie ) van de i/p-variabele. Over het algemeen verandert de gelijkstroommotor de energie van elektrisch naar mechanisch. De toegevoerde elektrische energie aan de ankerklemmen wordt omgezet in gecontroleerde mechanische energie.

De ankergestuurde overdrachtsfunctie van de DC-servomotor wordt hieronder weergegeven.

  Ankergestuurd DC-servomotorblokschema
Ankergestuurd DC-servomotorblokschema

θ(s)/Va(s) = (K1/(Js2 + Bs)*(Las + Ra)) /1 + (K1KbKs)/(Js2 + Bs)*(Las+Ra)

De veldgestuurde DC-servomotor-overdrachtsfunctie wordt hieronder weergegeven.

  Blokschema voor veldgestuurde DC-servomotor
Blokschema voor veldgestuurde DC-servomotor

θ(s)/Vf (s) = Kf / (sLf + Rf) * (s2J + Bs)

De ankergestuurde gelijkstroom-servomotor biedt superieure prestaties vanwege het gesloten-lussysteem in vergelijking met veldgestuurde gelijkstroom-servomotor, het open-lussysteem. Bovendien is de reactiesnelheid laag binnen het veldbesturingssysteem. In het geval van een ankerbesturing is de inductantie van het anker verwaarloosbaar, terwijl deze in het geval van de veldbesturing niet hetzelfde is. Maar bij Infield-besturing is verbeterde demping niet haalbaar, terwijl dit bij armatuurbesturing wel kan worden bereikt.

Specificaties

De DC-servomotor biedt prestatiespecificaties, waaronder het volgende. Deze specificaties moeten worden afgestemd op basis van de belastingsbehoeften van de toepassing om een ​​motor correct te dimensioneren.

  • Assnelheid definieert simpelweg de snelheid waarop de as draait, uitgedrukt in RPM (rotaties per minuut).
  • Gewoonlijk is de door de fabrikant aangeboden snelheid de onbelaste snelheid van de O/P-as of de snelheid waarbij het uitgaande koppel van de motor nul is.
  • Klemspanning is de ontwerpspanning van de motor die het motortoerental bepaalt. Deze snelheid wordt eenvoudig geregeld door de aan de motor geleverde spanning te verhogen of te verlagen.
  • Het roterende krachtachtige koppel wordt gegenereerd door de as van de DC-servomotor. Het vereiste koppel voor deze motor wordt dus simpelweg bepaald door de snelheid-koppelkarakteristieken van de verschillende belastingen die worden ervaren binnen de doeltoepassing. Deze koppels zijn twee soorten startkoppel en continu koppel.
  • Het startkoppel is het benodigde koppel bij het starten van de servomotor. Dit koppel is normaal gesproken hoger in vergelijking met continu koppel.
  • Het continue koppel is het uitgangskoppel dat de capaciteit van de motor is bij constante bedrijfsomstandigheden.
  • Deze motoren moeten voldoende toerental- en koppelcapaciteit hebben voor de toepassing, inclusief een marge van 20 tot 30% tussen de benodigde belasting en motorvermogens om betrouwbaarheid te garanderen. Wanneer deze marges te veel overschrijden, zal de effectiviteit van de kosten worden verminderd specificaties van de 12V DC Coreless DC Servomotor van Faulhaber zijn:
  • Versnellingsbakverhouding is 64: l Planetaire drietraps versnellingsbak.
  • Belastingstroom is 1400 mA Vermogen.
  • Het vermogen is 17W.
  • Snelheid is 120 RPM.
  • Geen laadstroom is 75mA.
  • Het type encoder is optisch.
  • De resolutie van de Encoder is 768CPR van O/P-schacht.
  • De doorsnee bedraagt ​​30 mm.
  • De lengte bedraagt ​​42 mm.
  • De totale lengte is 85 mm.
  • De schachtdiameter is 6 mm.
  • De schachtlengte is 35 mm.
  • De stall Torque is 52kgcm.

Kenmerken

De kenmerken van een DC-servomotor omvatten het volgende.

  • Het ontwerp van de DC-servomotor is vergelijkbaar met een permanente magneet of een afzonderlijk bekrachtigde DC-motor.
  • De snelheidsregeling van deze motor wordt gedaan door de ankerspanning te regelen.
  • De servomotor is ontworpen met een hoge ankerweerstand.
  • Het zorgt voor een snelle koppelrespons.
  • Een stapsgewijze verandering binnen de ankerspanning genereert een snelle verandering in de snelheid van de motor.

AC-servomotor versus DC-servomotor

Het verschil tussen een DC-servomotor en een AC-servomotor omvat het volgende.

AC-servomotor

DC-servomotor

Een soort servomotor die AC elektrische input gebruikt om mechanische output te genereren, wordt een AC-servomotor genoemd. Een soort servomotor die DC-elektrische input gebruikt om mechanische output te genereren, wordt een DC-servomotor genoemd.
AC-servomotor levert een laag uitgangsvermogen. DC-servomotor levert een hoog uitgangsvermogen.
Deze motoren zijn instelbaar voor bedrijfsomstandigheden met hoge snelheden. Deze motoren zijn instelbaar voor bedrijfsomstandigheden met lage snelheid.
Dit type motoren ontwikkelt een hoog koppel. Dit type motoren ontwikkelt een laag koppel.
De werking van deze motor is stabiel, soepel en minder geruisloos. De werking van deze motor is minder stabiel en luidruchtig.
Deze motoren hebben een lager rendement. Deze motoren hebben een hoog rendement.
Deze motoren hebben minder stabiliteitsproblemen. Deze motoren hebben meer stabiliteitsproblemen.
In deze motoren is er geen probleem met elektronische ruis. Bij deze motoren is er een probleem met elektronische ruis door de aanwezigheid van borstels.
Het onderhoud van deze motoren is minder. Het onderhoud van deze motoren is hoog door de aanwezigheid van borstels & commutator.
Deze zijn lichtgewicht en in kleine maten. Deze zijn zwaar en groot.
Deze motoren zijn geschikt voor toepassingen met een laag vermogen. Deze motoren zijn geschikt voor toepassingen met een hoog vermogen.

DC-servomotorinterface met Arduino

Om een ​​DC-servomotor in een exacte en vereiste hoek te besturen, kan een Arduino-bord of een andere microcontroller worden gebruikt. Dit bord heeft analoge o/p die een PWM-signaal genereert om de servomotor in een precieze hoek te draaien. U kunt de hoekpositie van de servomotor ook verplaatsen met een potentiometer of drukknoppen met behulp van een Arduino.

De servomotor kan ook worden bestuurd met een IR-afstandsbediening die direct verkrijgbaar is. Deze afstandsbediening is handig bij het verplaatsen van de DC-servomotor naar een specifieke hoek of het lineair vergroten of verkleinen van de hoek van de motor met een IR-afstandsbediening.

Hier zullen we bespreken hoe de servomotor met behulp van een IR-afstandsbediening met behulp van Arduino onder een specifieke hoek kan worden verplaatst en ook hoe de hoek van de servomotor met de afstandsbediening met de klok mee en tegen de klok in kan worden vergroot of verkleind. Het interfaceschema van de DC-servomotor met Arduino en IR-afstandsbediening wordt hieronder weergegeven. De verbindingen van deze interface volgen als;

  Interface DC-servomotor met Arduino
Interface DC-servomotor met Arduino

Deze interface maakt voornamelijk gebruik van drie essentiële componenten, zoals een DC-servomotor, een Arduino-bord en een TSOP1738 IR-sensor. Deze sensor heeft drie terminals zoals Vcc, GND & output. De Vcc-aansluiting van deze sensor is verbonden met 5V van het Arduino Uno-bord, de GND-aansluiting van deze sensor is verbonden met de GND-aansluiting van het Arduino-bord en de uitgangsterminal is verbonden met pin 12 (digitale ingang) van het Arduino-bord.

Digitale uitgangspen 5 is eenvoudigweg verbonden met de signaalingangspen van de servomotor om de motor aan te drijven
De DC-servomotor + ve-pin wordt gegeven aan de externe 5V-voeding en de GND-pin van de servomotor wordt gegeven aan de GND-pin van Arduino.

Werken

De IR-afstandsbediening wordt gebruikt om twee acties uit te voeren: 30 graden, 60 graden en 90 graden, en ook om de hoek van de motor te vergroten/verkleinen van 0 tot 180 graden.

De afstandsbediening bevat veel knoppen zoals cijferknoppen (0-9), knoppen voor hoekregeling, pijltjestoetsen, omhoog/omlaag-knoppen, enz. Zodra een cijferknop van 1 – 5 is ingedrukt, zal de DC-servomotor daar naartoe gaan exacte hoek en wanneer de hoek omhoog/omlaag knop wordt ingedrukt dan kan de hoek van de motor exact worden ingesteld op ±5 graden.

Zodra de knoppen zijn bepaald, moeten de codes van deze knoppen worden gedecodeerd. Zodra op een willekeurige knop van de afstandsbediening wordt gedrukt, wordt één code verzonden om de vereiste actie uit te voeren. Om deze afstandsbedieningscodes te decoderen, wordt een IR-afstandsbedieningsbibliotheek van internet gebruikt.

Upload het volgende programma naar Arduino en sluit de IR-sensor aan. Plaats nu de afstandsbediening in de richting van de IR-sensor en druk op de knop. Open daarna de seriële monitor en controleer de code van de ingedrukte knop in de vorm van cijfers.

Arduino-code

#include // IR-bibliotheek op afstand toevoegen
#include // servomotorbibliotheek toevoegen
Servicedienst1;
int IRpin = 12; // pin voor de IR-sensor
int motorhoek=0;
IRrecv onrecv(IRpin);
decode_results resultaten;
ongeldige instellingen ()
{
Serieel.begin(9600); // initialiseer seriële communicatie
Serial.println ('IR op afstand bestuurbare servomotor'); // bericht weergeven
onherroep.enableIRIn(); // Start de ontvanger
servo1.toevoegen(5); // declareer de servomotorpin
servo1.schrijven(motorhoek); // verplaats de motor naar 0 graden
Serial.println ('Servomotorhoek 0 graden');
vertraging (2000);
}
ongeldige lus()
{
while(!(irrecv.decode(&resultaten))); // wacht tot er geen knop wordt ingedrukt
if (irrecv.decode(&results)) // wanneer de knop wordt ingedrukt en de code wordt ontvangen
{
if(results.value==2210) // controleer of cijfer 1 knop is ingedrukt
{
Serial.println ('servomotorhoek 30 graden');
motorhoek = 30;
servo1.schrijven(motorhoek); // verplaats de motor naar 30 graden
}
else if(results.value==6308) // als cijfer 2 knop wordt ingedrukt
{
Serial.println ('servomotorhoek 60 graden');
motorhoek = 60;
servo1.schrijven(motorhoek); // verplaats de motor naar 60 graden
}
else if(results.value==2215) // op dezelfde manier voor alle cijfertoetsen
{
Serial.println ('hoek servomotor 90 graden');
motorhoek = 90;
servo1.schrijven(motorhoek);
}
anders als(resultaten.waarde==6312)
{
Serial.println ('servomotorhoek 120 graden');
motorhoek = 120;
servo1.schrijven(motorhoek);
}
anders als(resultaten.waarde==2219)
{
Serial.println ('hoek servomotor 150 graden');
motorhoek = 150;
servo1.schrijven(motorhoek);
}
else if(results.value==6338) // als de knop Volume OMHOOG is ingedrukt
{
if(motor_hoek<150) motor_hoek+=5; // verhoog de motorhoek
Serial.print ('Motorhoek is');
Serial.println(motorhoek);
servo1.schrijven(motorhoek); // en verplaats de motor naar die hoek
}
else if(results.value==6292) // als de knop Volume omlaag is ingedrukt
{
if(motor_angle>0) motor_angle-=5; // verklein de motorhoek
Serial.print ('Motorhoek is');
Serial.println(motorhoek);
servo1.schrijven(motorhoek); // en verplaats de motor naar die hoek
}
vertraging(200); // wacht 0,2 sec
onherroep.hervatten(); // wees weer klaar om de volgende code te ontvangen
}
}

De voeding naar de DC-servomotor wordt geleverd door de externe 5V en de voeding naar de IR-sensor en het Arduino-bord wordt geleverd via USB. Zodra de servomotor stroom krijgt, beweegt deze naar 0 graden. Daarna wordt het bericht weergegeven als 'hoek servomotor is 0 graden' op de seriële monitor.

Nu op de afstandsbediening, zodra knop 1 wordt ingedrukt, zal de DC-servomotor 30 graden bewegen. Evenzo, zodra knoppen zoals 2, 3, 4 of 5 zijn ingedrukt, beweegt de motor met de gewenste hoeken zoals 60 graden, 90 graden, 120 graden of 150 graden. Nu zal de seriële monitor de hoekpositie van de servomotor weergeven als 'servomotorhoek xx graden'

Zodra de knop Volume omhoog is ingedrukt, wordt de hoek van de motor met 5 graden vergroot, wat betekent dat als deze 60 graden is, deze naar 65 graden zal gaan. De positie van de nieuwe hoek wordt dus weergegeven op de seriële monitor.

Evenzo, als de knop Hoek omlaag eenmaal is ingedrukt, wordt de hoek van de motor met 5 graden verkleind, wat betekent dat als de hoek 90 graden is, deze naar 85 graden zal gaan. Het signaal van de IR-afstandsbediening wordt gedetecteerd door de IR-sensor. Klik om te weten hoe het voelt en hoe de IR-sensor werkt hier

De positie van de nieuwe hoek wordt dus weergegeven op de seriële monitor. Daarom kunnen we eenvoudig de hoek van de DC-servomotor regelen met Arduino & IR-afstandsbediening.

Klik voor meer informatie over het koppelen van DC-motor met de 8051-microcontroller hier

Voordelen van DC-servomotor

De voordelen van DC-servomotoren omvatten het volgende.

  • De werking van de DC-servomotor is stabiel.
  • Deze motoren hebben een veel hoger uitgangsvermogen dan de grootte en het gewicht van de motor.
  • Wanneer deze motoren op hoge snelheden draaien, genereren ze geen geluid.
  • Deze motorwerking is trillings- en resonantievrij.
  • Dit soort motoren hebben een hoge verhouding tussen koppel en traagheid en ze kunnen zeer snel ladingen oppikken.
  • Ze hebben een hoog rendement.
  • Ze geven snelle reacties.
  • Deze zijn draagbaar en lichtgewicht.
  • De werking van Vier Kwadranten is mogelijk.
  • Bij hoge snelheden zijn deze hoorbaar stil.

De nadelen van DC-servomotoren omvatten het volgende.

  • Het koelmechanisme van de DC-servomotor is inefficiënt. Deze motor raakt dus snel vervuild als hij eenmaal geventileerd is.
  • Deze motor genereert een maximaal uitgangsvermogen bij een hogere koppelsnelheid en heeft een regelmatige overbrenging nodig.
  • Deze motoren kunnen beschadigd raken door overbelasting.
  • Ze hebben een complex ontwerp en hebben een encoder nodig.
  • Deze motoren moeten worden afgesteld om de feedbacklus te stabiliseren.
  • Het vereist onderhoud.

DC-servomotortoepassingen

De toepassingen van DC-servomotoren omvatten het volgende.

  • DC-servomotoren worden gebruikt in werktuigmachines voor het snijden en vormen van metaal.
  • Deze worden gebruikt voor antennepositionering, printen, verpakken, houtbewerking, textiel, productie van touw of touw, CMM (coördinatenmeetmachines), hanteren van materialen, polijsten van de vloer, openen van deuren, X-Y-tafel, medische apparatuur en het draaien van wafels.
  • Deze motoren worden gebruikt in vliegtuigbesturingssystemen waar ruimte- en gewichtsbeperkingen motoren nodig hebben om een ​​hoog vermogen te leveren voor elk volume-eenheid.
  • Deze zijn van toepassing waar een hoog startkoppel nodig is, zoals ventilatoren en ventilatoren.
  • Deze worden ook voornamelijk gebruikt voor robotica, programmeerapparatuur, elektromechanische actuatoren, werktuigmachines, procescontrollers, enz.

Dit is dus een overzicht van de dc servomotor - werkend met applicaties. Deze servomotoren worden in diverse industrieën gebruikt om de oplossing te bieden voor vele mechanische bewegingen. De kenmerken van deze motoren maken ze zeer efficiënt en krachtig. Hier is een vraag voor u, wat is een AC-servomotor?