Moin moin zusammen, ich hatte bereits zu diesem Thema viele Foreneinträge durchstöbert und vieles hat mir auch weitergeholfen - jetzt gerade bin ich allerdings an einem Punkt, an dem ich mal gut ein bisschen "maßgeschneidertere Hilfe" benötige. Es geht um folgendes: Ich bau derzeit ein Lenkrad, in welches irgendwann auch Force Feedback integriert werden soll. Momentan geht es aber im wesentlichen um zwei Betriebsmodi. - Modus 1: Ich kann das Lenkrad drehen wie ich will und es verharrt in dieser Position. - Modus 2: Ich lenke das Lenkrad aus und es verfährt wieder in die Nullposition (geradeaus). Ich realisiere dies mit Hilfe eines NEMA 34 Schrittmotors, einem entsprechendem Treiber (DM860), einem Potentiometer, welches an die Lenkradwelle gekoppelt ist, zum Auslesen der Position und ein Arduino Uno als Controller. Für Modus 1 schalte ich den Motor einfach aus - das Rastmoment des Motors reicht zum arretieren aus. Modus 2 bereitet mir Probleme. Momentan sieht mein Code schematisch so aus: WENN: ( IstPosition < Soll Position ) DANN: DREH MOTOR IM UHRZEIGERSINN SONST WENN: ( IstPosition > Soll Position ) DANN: DREH MOTOR GEGEN UHRZEIGERSINN SONST: BLEIB Problem hierbei ist, dass ich erstens bei dem NEMA 34 sehr stark gegen halten muss und zweitens die Schritte sehr stark spüre - das will ich natürlich nicht. Dank eines Projektes auf Hackaday weiß ich, dass das was ich machen will auf jeden Fall realisierbar ist: https://www.youtube.com/watch?v=gG_dbnKfH5Q&feature=emb_title In dem Video sieht man bei ca. 1.20 genau was ich will. Die meisten DIY FFB Projekte nutzen allerdings fertige Software. Ich will das selbst programmieren. Meine Frage daher an euch: Was mache ich falsch bzw. wie könnte ich das besser realisieren? Danke im Voraus für die Hilfe Marco
einfach "gegenlenken" wird nicht gehen, musst auch die Differenz zur Sollposition berücksichtigen und mitm Strom dann runtergehen. (Gefällt mir gut, was man da im Video sah. Sehr bemerkenswert, solch einen riesigen Industriemotor für so ne Spielerei zu verwenden. Will garnicht wissen, was die Chinesen alles so kopieren: diese Motore hätte man vor 10Jahren sicher nicht unter 1000€ bekommen)
Okay, ja an einen PID Regler hatte ich auch schon gedacht. Würde ich dann das Drehmoment über die Geschwindigkeit regeln? Das Problem was ich nur habe ist, dass ich auf den Strom ja an sich keinen wirklichen Einfluss habe oder? Ich kann zwar beim Treiber einen maximalen Strom einstellen - minimal sind das beim DM860 2.0A, aber auch das ist beim NEMA 34 schon ordentlich was... Und ja das ganze Projekt von dem Ersteller des Youtube Videos ist echt der Hammer.
:
Bearbeitet durch User
Beitrag #6594227 wurde von einem Moderator gelöscht.
Dein Problem ist der Schrittmotor. Marco D. schrieb: > Drehmoment über die Geschwindigkeit regeln? Das wird nicht funktionieren. Bei Lenkrädern möchte man erstmal nicht die Position regeln, sondern das Drehmoment (umgangssprachlich auch als Kraft bezeichnet). Deswegen FORCE Feedback. Das hast du ja schon erkannt! Du kannst einen Stepper aber nicht Drehmomentregeln, zumindest nicht gut genug. Du schreibst oben, dass du bei deinem Stepper zu stark gegenhalten musst. Wenn du den Strom reduzierst, musst du weniger stark drehen um den Stepper zu bewegen, hast dann aber ein "Ruckeln" bzw. "Rasten" durch den Schrittverlust. Das ist aber absolut nicht das, was du willst. Der Typ aus dem Video verwendet KEINEN Stepper Motor, sondern einen SERVOMOTOR. Großer Unterschied, da sich Servomotoren perfekt für eine Drehmomentregelung eignen. Das Drehmoment ist fast perfekt proportional zum Spulenstrom. Paar Stichworte für die nächsten Steps (pun intended): - Schau dir an, was Drehmomentregelung genau bedeutet - Schau dir den Unterschied zwischen Steppermotor und Servomotor an. - Lies dich in paar Projekte ein, die Motoren mit Drehmomentsignalen und Positionsfeedback steuern können. Bestes Projekt ist vermutlich der Odrive (odriverobotics.com) - Besorg dir einen entsprechenden Motor mit Controller. - Bau Software dafür. Interface Odrive <> Arduino ist easy. - Bau dir einen Regelkreis auf. Beachte, dass du vermutlich mehr als nur eine reine Drehmomentregelung benötigst, sondern auch weitere Regler für Geschwindigkeit und Position. Stichwort "Kaskadenregler". Ist ein super spannendes Thema, ich hab beruflich damit zu tun und deswegen leider nicht wirklich Lust auf Hobbyprojekte in dem Bereich... Leider :-/ Viele Grüße und viel Erfolg.
Upps, Habe die eine Stelle grad nochmal angeschaut, und das ist tatsächlich ein Stepper Motor. Naja, deswegen muss er das Lenkrad auch immer wieder loslassen, weil das Lenkrad halt feste Positionen anfährt? Was soll das für einen Sinn machen? Ergibt irgendwie wenig Sinn für mich. Dein oben beschriebener "Regelalgorithmus" scheint schon richtig zu sein und sollte theoretisch funktionieren. Die von dir beschriebenen Schwächen liegen aber am Schrittmotor und du wirst sie nur bedingt beseitigen können...
Mike schrieb: > Upps, > Habe die eine Stelle grad nochmal angeschaut, und das ist tatsächlich > ein Stepper Motor. > Naja, deswegen muss er das Lenkrad auch immer wieder loslassen, weil das > Lenkrad halt feste Positionen anfährt? Was soll das für einen Sinn > machen? Ergibt irgendwie wenig Sinn für mich. Ein Stepper mit encoder. Wenn der encoder deutlich höher aufgelöst ist als der Stepper, ist es eigentlich auch kein Problem ein Drehmoment zu stellen. Ein Stepper ist auch nur ein Synchronmotor mit sehr hoher polpaarzahl. Man muss sich halt von dem Gedanken lösen, dass der Motor dort steht wo es der Schrittzähler suggeriert.
Karl schrieb: > Ein Stepper ist auch nur ein Synchronmotor mit sehr hoher > polpaarzahl. Naja, nur teilweise. Eigentlich nicht. Die spezielle Konstruktion sorgt dafür, dass der Stepper auch ein unglaublich hohes Rastmoment und Torque-Ripple hat. Genau das will man bei Servomotoren und auch bei Force-Feedback Wheels nicht. Karl schrieb: > Man muss sich halt von dem Gedanken lösen, dass der Motor > dort steht wo es der Schrittzähler suggeriert. Absolut richtiger Einwurf! Encoder ist also immer Pflicht bei solchen Anwendungen. @TO, eventuell macht es auch Sinn, hier keinen Poti sondern was "anständiges" zu verwenden. Problem ist nur, dass der Stepper beim "durchrutschen", also beim Schrittverlust, plötzlich ein völlig anderes Verhalten und Drehmoment aufweist. => Hast du schonmal einen Stepper durchgedreht? Hat sich das bei den Schrittverlusten auch nur im Entferntesten irgendwie wie ein Lenkrad angefühlt? => Servomotor.
Mike schrieb: > Naja, nur teilweise. Eigentlich nicht. > Die spezielle Konstruktion sorgt dafür, dass der Stepper auch ein > unglaublich hohes Rastmoment und Torque-Ripple hat. Genau das will man > bei Servomotoren und auch bei Force-Feedback Wheels nicht. Das lässt sich in quasi stationären Anwendungen wie hier zum Teil kompensieren. Gewollt ist es sicher nicht für ein Ffb Lenkrad. Ändert aber nichts an der Tatsache, dass ein Stepper eine synchronmaschine ist, einfach weil das Geld synchron zur Welle dreht. Mike schrieb: > Problem ist nur, dass der Stepper beim "durchrutschen", also beim > Schrittverlust, plötzlich ein völlig anderes Verhalten und Drehmoment > aufweist Das darf nicht passieren, weil dann ist es nicht mehr synchron. Die Ansteuerung muss die tatsächliche Rotorposition schon berücksichtigen. Also Vektorregelung für einen Stepper sozusagen. Abgesehen vom Preis ist ein Stepper sicher nicht die richtige Wahl für so eine Anwendung.
Karl schrieb: > dass ein Stepper eine synchronmaschine ist, > einfach weil das Geld synchron zur Welle dreht. Ja stimmt, da hast du absolut recht! Mea culpa. Manchmal ist man doch zu tief in seinem Feld drin und etwas "Betriebsblind" :) Karl schrieb: > Also Vektorregelung für einen Stepper sozusagen. Ja moin, klingt kompliziert (aber sicherlich möglich!). Hast du da mehr erfahrung, würd mich schon interessieren! @TO, schau dir den Odrive mal an, das ist genau das richtige für dich. Passender Motor ~ 30-50€ und dann noch eine Riemenstufe dahinter für genug Drehmoment. Dann kannst du mit den meisten kommerziellen Lösungen locker mithalten. Mike
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.