Een robotarm bestaat uit verschillende servomotoren aangestuurd door een microcontroller (met behulp van een PWM). Het is belangrijk om rekening te houden met de mechanische vertraging.

Volstaat een standaard digitale servomotor (aangestuurd door PWM)? Indien een PID-regelaar toegevoegd moet worden, moet deze dan de pulsen regelen of dient deze op andere parameters in te werken?

Alvast bedankt voor jullie hulp!

Wat voor servomotoren bedoel je? Want modelbouwservo's geef je door middel van die pulsjes gewoon een positieopdracht, niks meer aan doen.

Een digitale servomotor die je echt gaat PWM'en klinkt als een industriele servomotor. Dan heb je wel meer dan één PID nodig.

Dus eigenlijk is de vraag: wat voor motor gaat het om?

Dit heb ik ondertussen door opzoekingswerk gevonden:

Een microcontroller stuurt een signaal naar de servomotor, de servomotor beweegt naar de overeenkomstige positie. Een positiesensor geeft een parameter terug aan de microcontroller, waardoor de fout berekent kan worden. Het signaal dat de servomotor vervolgens ontvangt is PID-geregeld via de software. Deze cyclus wordt herhaald volgens een sampling rate tot de static error aanvaardbaar is.

1. Klopt deze redenering?
2. Het signaal is in theorie een continu signaal (bijvoorbeeld 2V = 0° en 5V = 90°), maar servomotoren worden toch gestuurd door middel van pulssignalen?

ligt er nog steeds aan of je modelbouw servo's of industriele voorhebt

bij de modelbouw is het zo dat de terugkoppeling al in de servo inzit
dus je geeft hem pulsen ( die een bepaalde stand voorstellen) en hij beweegt naar die stand

industriele ben ik minder bekend maar hier werd dit matstal nog door een losse sturing gedaan al weet ik dan niet hoe je dan aan de ic verbind

Een microcontroller stuurt een signaal naar de servomotor, de servomotor beweegt naar de overeenkomstige positie. Een positiesensor geeft een parameter terug aan de microcontroller, waardoor de fout berekent kan worden. Het signaal dat de servomotor vervolgens ontvangt is PID-geregeld via de software. Deze cyclus wordt herhaald volgens een sampling rate tot de static error aanvaardbaar is.

Dit klopt ( is de uitleg hoe een servo werkt)
en het signaal is zeker geen continuu signaal, het is een signaal van 5v dat door pulsbretes de positie aangeeft

Op 28 april 2011 21:59:19 schreef Megatron:
Dit heb ik ondertussen door opzoekingswerk gevonden:...

Nou weten we nog niet waar je het over hebt: een modelbouwservo of een ander type. Een servo is alles dat je naar een bepaalde positie kunt sturen gecontroleerd door een of andere terugkoppeling.

Bij een serieuze servo is die ene PID die je noemt wat minder eenzaam en komt er een heel kistje PID's aan te pas.
De gemiddelde servo is tegenwoordig een AC servo. Dat lijkt op een BLDC motor maar het ijzerwerk tussen de wikkelingen is wat anders ivm de iets andere aansturing (sinus vs blokgolf)

Zou het niet kunnen dat de TS wil weten wanneer de servo op z'n positie is aangekomen en niet zozeer de positie zelf. In het geval van een robotarm kan ik me voorstellen dat je moet wachten totdat een bepaalde servo op zn positie is aangekomen voordat een andere in beweging wordt gezet.

Welke servomotor ik gebruik is nog niet bepaald, het belangrijkste is dat de beweging geregeld kan worden met een PID-regelaar zodat een hoge nauwkeurigheid en en een vlotte beweging bekomen kunnen worden.

Aangezien er momenteel meer en meer AC-servomotoren worden gebruikt, zal ik eerder dit type kiezen.

Hoe wordt zo'n motor aangestuurd (bvb door een stuurkaart met microcontroller)? Hoe zit het met de terugkoppeling (bvb de positiesensor)? Hoe worden beide signalen in de PID-regeling verwerkt (wat voor signalen zijn stuur- en sensorsignaal)? Het gebrek aan kennis maakt de vraag misschien onduidelijk.

De meest gebruikte terugkoppeling is een gewone encoder. Deze is noodzakelijk voor de positie maar ook om te weten in welke positie de rotor ten opzichte van de stator staat, anders weet je niet hoe je hem moet aansturen.
Op plaatsen waar de omstandigheden wat minder vrolijk zijn: temperatuur, hevige schokken enz word geen encoder gebruikt maar een resolver.
Verder heb je PID's voor de stroom en voor het toerental. De reis naar de wenspositie word gemaakt door de motor een bepaalde snelheid in de juiste richting mee te geven. Deze snelheid zal vlak bij de wenspositie moeten worden teruggebracht volgens een ingegeven profiel.

Dat betekend dat de positie zoals die geregeld word continue word aangepast en gevolgd d.m.v. snelheidveranderingen. Je kunt dus op ieder moment een afwijking hebben van die positie waar je op dat moment eigenlijk zou moeten zijn.

[Bericht gewijzigd door GJ_ op (15%)]