MotorStapResponse

Uit RobotMC.be
Versie door BlueHaze (overleg | bijdragen) op 29 dec 2017 om 22:44
(wijz) ← Oudere versie | Huidige versie (wijz) | Nieuwere versie → (wijz)
Ga naar: navigatie, zoeken

Inleiding

01Opstelling.jpg

Met een H-brug en pwm kun je een motor aansturen. Langzaam of snel, vooruit of achteruit. Hiervan is een ontelbaar aantal voorbeelden te vinden op het Internet. Zodra dit werkt is de volgende stap vaak het regelen van de snelheid, zodat de robot goed onder controle is en bijvoorbeeld de Roborama opgaven tot een goed einde gebracht kunnen worden. Vaak blijkt dat het lastig is om de snelheid van de robot goed onder controle te krijgen...

Veel minder bekend is dat je bij de aansturing van de motoren een aantal opties hebt, die een grote invloed hebben op de prestaties van de snelheidsregeling. In dit en in dit artikel wordt het verschil in gedrag tussen de standaard 'pwm op enable' en 'harde aansturing' toegelicht. In dit artikel worden de experimenten beschreven over verschillen tussen de methodes bij de zogenaamde 'stap response'.

Stap response

De 'Stap response' laat zien hoe de uitgang van een 'systeem' reageert op een sprong op de ingangswaarde. Ons 'systeem' is de motor, met als ingangswaarde de PWM sturing via een van de twee methodes. De uitgang is het toerental. De testen laten dus zien hoe (snel) het toerental verandert als we de PWM waarde veranderen. Deze reactie is afhankelijk van het gewicht van de robot. Immers, de snelheid van een zware robot zal minder snel veranderen dan die van een vederlichte robot.

Om dit eenvoudig te meten is een testopstelling gemaakt van makerbeams, waarop verticaal een motor is gemonteerd. Haaks op de motor-as is een beugel gemaakt, waarop twee gewichten geplaatst kunnen worden. De beugel van ongeveer 100 gram stelt de lichte robot voor. Met twee gewichten van 300 gram wordt de zware robot gesimuleerd.

Grafiek1

Bovenstaande grafiek geeft het verloop van het toerental weer gedurende 1 seconde, nadat de pwm waarde een stap maakt 0% naar 25%. Het eerste wat opvalt is het verschil in eind-toerental (pijl (1)). Bij aansturing op enable (groene en paarse lijn) loopt dit op naar ongeveer 80, ofwel 50% van het maximale toerental van 160. Bij harde aansturing (blauwe en oranje lijn) loopt het toerental op tot 38, een kleine 25% van het maximale toerental. Dit verschil is al eerder beschreven, hier en hier.

Pijl (2) geeft een tweede verschil aan: de groene lijn - waarbij de motor op enable wordt aangestuurd en onbelast draait - draait na 0.05 seconde (50 miliseconden) op 63% en heeft na 0,2 secode de eindwaarde bereikt. De paarse lijn - ook aansturing op enable, maar belast met 2 gewichtjes van 300 gram - draait na 0,2 seconden pas op 63%. Het systeem reageert dus niet zo snel, zeker niet met een zware belasting

Bij harde aansturing reageert het systeem aanzienlijk sneller: na resp. ongeveer 12 en 30 miliseconden is het 63% punt bereikt. De robot reageert dus veel sneller op een verandering.

Het hele plaatje

In de test wordt 0%, 25% en 75% PWM afgewisseld. De dunne rode lijn in onderstaande grafiek geeft de waarde van de PWM aan. Het beeld is bij al deze overgangen vergelijkbaar: bij harde aansturing reageert de robot aanzienlijk sneller dan bij sturing op enable.

01Grafiek2.jpg

Dit effect geeft in de praktijk grote verschillen. Als we bijvoorbeeld naar de laatste overgang kijken (van 75% PWM naar 0%, ofwel stoppen), zien we dat de robot (met belasting) nog 318 mm doorrijdt, tegen 16 mm bij harde aansturing. Moet je je voorstellen: je wilt stoppen en rijdt nog 30 cm door!

Wellicht denk je, dan rem ik toch wat eerder af. Je bent dan wat minder wendbaar, maar het is een optie. Maar zelfs dan, als je op 25% van de maximale snelheid rijdt, heb je - bij sturing op enable - 30 mm nodig om tot stilstand te komen. Bij harde aansturing is dat 4 mm. Het verschil tussen netjes voor het blik stoppen of het omver rijden!

Tot slot: een stap response is een goede manier om het gedrag van een motor in kaart te brengen, maar heeft vervelende neven-effecten. Zo wordt je motor mechanisch zwaar belast en is de kans groot dat je wielen slippen. Eventuele plaatsbepaling op basis van odometrie wordt hierdoor minder nauwkeurig. Zorg er daarom voor dat je PWM waarde niet te snel verandert.

Conclusie

Op basis van bovenstaande test en deze test blijkt dat harde aansturing de volgende voordelen heeft:

  • het verband tussen de PWM waarde en toerental is vrijwel lineair
  • hierdoor is het toerental over een groot bereik te sturen
  • en is het toerental van de motoren nauwkeuriger regelbaar
  • de reactiesnelheid van de motoren is aanzienlijk groter

De prijs die je hiervoor betaalt is stroomverbruik: het overall verbruik is wat hoger en daarnaast komen, afhankelijk van de gekozen PWM waarde, hoge piekstromen voor. De voeding en H-brug moeten daarom zwaar genoeg zijn om de 'stall current' van de motoren langduring te kunnen verwerken. En de beloning? Een robot die strakker aan te sturen is, vlot van snelheid verandert, wendbaar is en nauwkeurig op het gewenste punt tot stilstand kan komen.

Kortom, de voordelen zijn veel groter dan de nadelen! Je vraagt je hoe men dit geheim in het Internet tijdperk zo goed heeft kunnen bewaren...

Joep