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

Theo de Klerk op 11 januari 2021 om 12:49
Daar gaat dus de proef over. We hebben geen idee hoe die robot eruit ziet, wat ie doet etc. Maar uiteindelijk zal het gaan om behoud van draaiimpuls (zoek eens op "vliegwiel"). Zo gauw de robot wat schuin staat verandert de richting van de draaiimpuls. Dat veroorzaakt een tegen impuls om de gezamelijke verandering nul te laten blijven (behoud). Daardoor gaat de robot weer meer rechtop.
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?
Daan op 11 januari 2021 om 13:25

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



Theo de Klerk op 11 januari 2021 om 13:35
Hier lijkt geen vliegwiel of draaiimpuls aan te pas te komen. Een stilstaande robot zal met een klein zetje bovenaan ook gewoon omvallen omdat er geen (rotatie)evenwicht is, maar omdat de som van de momenten (linksom en rechtsom) elkaar niet meer in evenwicht houden. Het verschil tussen de momenten moet dan worden opgeheven door een extra kracht die het juiste moment levert zodat linksom en rechtsom weer in evenwicht zijn (nadat eerst de extra kracht een te groot moment had zodat de robot weer terugbeweegt in richting).

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.
Daan op 11 januari 2021 om 14:19

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.

 

Theo de Klerk op 11 januari 2021 om 14:22
Al eens gekeken bij https://www.instructables.com/Arduino-Self-Balancing-Robot-1/ ?
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
Daan op 11 januari 2021 om 14:29
Ik heb al een aantal sites gevonden hoe deze robot in elkaar zit, het bouwen ervan moet ook wel goed komen. Ik loop alleen vast met de simulatie maken in excel, maar met uw uitleg ben ik in ieder geval al geholpen.

Bedankt in ieder geval en als er nog meer te vinden is of meer info hoor ik het natuurlijk graag.
Vriendelijke groet, Daan
Theo de Klerk op 11 januari 2021 om 14:32
In Excel gaat dat niet werken als het om het aansturen van een robot gaat.
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.
Daan op 11 januari 2021 om 14:48
Het is ook de bedoeling dat Excel uiteindelijk alleen "dom rekent" en ik hierbij een grafiek kan plotten met daarin het verloop hoe de robot reageert. Hierin moet later nog wel de P, I en D waarde in verwerkt worden
Theo de Klerk op 12 januari 2021 om 09:45
Maar dat "domme rekenen" , aangevuld met "intelligente beslissingen" doet ook de programmacode waarmee de robot zichzelf overeind houdt. Dus als je die code doorgrondt (ipv blindelings overneemt) dan is het schrijven van een Excel blad met berekeningen ook niet onmogelijk.
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)

Plaats een reactie

+ Bijlage

Bevestig dat je geen robot bent door de volgende vraag te beantwoorden.

Ariane heeft achtentwtintig appels. Ze eet er eentje op. Hoeveel appels heeft Ariane nu over?

Antwoord: (vul een getal in)