Simuleren balancerende robot
Daan stelde deze vraag op 11 januari 2021 om 08:40.Hallo allemaal,
Voor een school project moet ik een simulatie van een zelf balancerende robot maken in excel. De bedoeling is dat de robot PID geregeld word om continu de hoek met de verticale as te herstellen tot 0 graden
Ik ben zelf al begonnen aan de constante te formuleren in excel:
Massa robot m = 0.4kg
Hoogte robot h = 0.16m
Wiel diameter d = 65mm
Extra info volgens de leverancier:
Breedte 27 mm
Spanning 3 - 9 V DC (aanbevolen 4,5 V)
Stroomsterkte stationair-toestand: 160 - 200 mA
Toerental tijdens vrijloop: 90 - 300 omw/min (10% tolerantie)
Draaimoment: 800 - 1200 gf / cm en min
Ik weet niet hoe ik dit verder aan moet pakken en loop vast op het simuleren in excel. Alle hulp is welkom!
Alsvast bedankt
Reacties
Je model zal dus uitwijkingen/scheefstaan moeten gebruiken om de tegen- draaiimpuls te bepalen, de eruit voortvloeiende herstelkracht enz.
Met de gegevens die aangeleverd worden kunnen we niet veel. Draaimoment = arm x kracht (Nm of dyne cm), draaiimpuls = arm x impuls (kg m2/s of g cm2/s) dus wat geeft de fabrikant (m.i. ook nog verkeerd) aan?
Bedankt Theo ik zal eens kijken naar de werking van een vliegwiel.
Ik had zelf het idee om met koppel te werken en deze uit te rekenen met het vermogen van de 2 motoren voor de wielen. Ik heb een foto van de robot toegevoegd (hoe die uiteindelijk zou moeten worden) en een VLS
Het lijkt meer op een omgedraaide slinger. Om een lange stok te balanceren op je vinger beweeg je je vinger naar de plek (draaipunt) waar de linkerzijde naar beneden en de rechterzijde ook naar beneden wil draaien: evenwicht. Je beweegt je vinger in de richting van waarheen de stok wil vallen, want blijkbaar zit daar te veel massa (en dus, via gewicht, te veel moment).
Bij de robot is dat soortgelijk. Je moet bewegen in de richting van de val. Dus als ie voorover dreigt te vallen, versnel je de beweging naar voren, zodat je de val "inhaalt" en corrigeert. Het zwaartepunt van de hele robot moet precies boven het draaipunt (de wielas) blijven zitten of corrigeren dat dat weer zo is.
Boven op de robot zit een MPU 3-Assige gyro en versnellingsmeter.
en de wielen worden onafhankelijk van elkaar angedreven door middel van een L298N MOTOR DRIVER MODULE H-BRIDGE. Deze worden met een arduino aangestuurd, waarbij ik gebruik maak van 2 externe voedingen.
of https://maker.pro/arduino/projects/build-arduino-self-balancing-robot
Daar staan ook al stukken code gereproduceerd voor het aansturen van de wielen obv acceleratie-sensoren.
Of YouTube filmpjes (zoek op "self balancing robot") zoals
https://www.youtube.com/watch?v=aUbBUd-hBLI&ab_channel=MrInnovative
https://www.youtube.com/watch?v=UuwjnbXd3t4&ab_channel=ViralScience-ThehomeofCreativity
Bedankt in ieder geval en als er nog meer te vinden is of meer info hoor ik het natuurlijk graag.
Vriendelijke groet, Daan
Hooguit kun je hierin simuleren (door bepaalde beginwaarden te kiezen, bijv de hoek van de opbouw met de grond) wat er moet gebeuren om het zwaartepunt weer onder de as te krijgen.
Excel kan alleen maar "dom" rekenen en doet verder niks - zonder moeizame VBA code kan het ook vrijwel geen condities of andere beslispaden volgen.
Ik stel me zo voor dat die berekeningen beginnen met "beginstanden" zoals lengte/hoogte van de robot, massa, mate waarin hij voor- of achterover helt, maximale snelheid waarmee gecorrigeerd kan worden e.d. En dan laat rekenen om te zien wanneer zwaartepunt weer boven de as zit en blijft (en dus tijdig wordt gestopt met corrigeren, anders wordt het ook een ideale (ondersteboven zwaaiende) eeuwigdurende slinger)