- LiFePO4 Speicher Test         
Ergebnis 1 bis 10 von 21

Thema: Sinusfahrt mit DC-Motor

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein Avatar von Geistesblitz
    Registriert seit
    15.03.2011
    Ort
    Dresden
    Alter
    37
    Beiträge
    1.937
    Ah, also regelst du quasi auf Zeitebene anstatt auf Wegebene? Das ist auch mal ein interessanter Ansatz, an sowas hab ich noch gar nicht gedacht.

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    21.12.2007
    Beiträge
    117
    Die Werte oben(100 und 1000) waren nur Beispiele damit es besser nachvollziehbar ist. Die eigentlichen Werte sind 2798 Löcher bei 19.200.000 Takte(was bei 16Mhz 1,2 Sekunden entspricht).
    Die Gabellichtschranke der Lochscheibe ist am InputCaptureInterrupt angeschlossen und zählt mir so sehr genau die Takte zwischen den Löchern. Daher brauche ich also die Anzahl der Takte die zwischen den Löchern liegen.

    - - - Aktualisiert - - -


    Mit PI/1000 siehts jetzt so aus Anhang 24661
    Ist nur ne halbe Kurve

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von Geistesblitz
    Registriert seit
    15.03.2011
    Ort
    Dresden
    Alter
    37
    Beiträge
    1.937
    Ja, cih dachte auch, dass du nur von 0 bis 100 positionieren willst und die Sinuskurve als Bewegungsprofil heranziehen wolltest. Das Ganze geht aber natürlich auch für andere Werte, daher hab ich die Gleichungen ja auch hergeleitet. Wie du die Werte nun einsetzen musst, dass es deine Anforderungen erfüllt, kannst du sicherlich auch selber. Ich hab dir wohl schon genug Denkarbeit abgenommen, glaub ich.

    Wegen den anderen Werten: Klar, aber das Verhältnis bleibt ja ähnlich. Wird es dann so aussehen, dass bei jedem Interrupt von der Gabellichtschranke auch die Regelung erneut reagiert? Dann hast du eine variable Abtastzeit und ich weiß nicht, ob sich damit überhaupt gescheit rechnen lässt. Bei geringen Geschwindigkeiten dauert es dann nämlich länger, bis der Interrupt wieder ausgeläst wird und in dieser Zeit kann die Abweichung dann stärker wachsen als bei kürzeren Abtastzeiten. Wie sieht es eigentlich mit einer Vorsteuerung aus?

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    21.12.2007
    Beiträge
    117
    Habe mal versucht deine Formel so umzustellen das ich die Anzahl der Takte zwischen den Löchern raus bekomme. Bekomme es aber nicht hin. Kannst du mir da bitte vielleicht noch mal helfen?

    Ja, bei jedem Interrupt soll neu geregelt werden.
    Da die Bewegung immer annährend gleich bleibt, wollte ich die Kurve dann so oft abfahren und korrigierten bis sie nahzu stimmt und die Werte dann immer im EEPROM zwischenspeichern. Kleine Abweichungen sollen dann während des laufenden Betrieb's in "Echtzeit" korrigiert werden.

    Da ich die Geschwinigkeit nur über die Lochscheibe erfassen kann, ist die Zeit zwischen 2 Löcher die kleinste Einheit für mich.

    Was meinst du mit Vorsteuerung?

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von Geistesblitz
    Registriert seit
    15.03.2011
    Ort
    Dresden
    Alter
    37
    Beiträge
    1.937
    Die Umkehrfunktion vom Weg wäre
    t = arccos(1-s*w/vmax)/w
    Und dann eben die Abstände zwischen den einzelnen t ausrechnen.

    Das würde zwar nur für eine Halbwelle gehen, aber für die zweite Halbwelle bräuchtest du die Werte nur in umgekehrter Reihenfolge abzurufen. Letztendlich würde es sogar reichen, die Werte von einer Viertelwelle zu speichern und dann je nachdem, die Werte in umgekehrter Reihenfolge und/oder anderem Vorzeichen hernehmen.

    Mit Vorsteuerung meine ich, dass du aus dem gegebenen Geschwindigkeits und eventuell auch Beschleunigungsverlauf die Spannung ausrechnest, die der Motor bekommen müsste, um die entsprechende Bahn von alleine zu fahren. Die Regelung wird somit entlastet. Hab das selber schonmal an einem kleinen DC-Motor mit Lochscheibe getestet und die Regelgüte hatte sich dadurch stark verbessert.

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    21.12.2007
    Beiträge
    117
    Guten Morgen!

    Wenn ich das jetzt mal VMAX und w auflöse komme ich auf folgende Gleichung:

    Tges = Gesamte Anzahl der Takte
    s = Gesamte Anzahl der Löcher

    t = arccos(1-s*(pi/Tges)/( (s*pi)/(2*Tges) )/ (pi/Tges)

    Stimmt das so? Kann es erst später durchrechnen.


    Die Vorsteuerung will ich durch probieren herrausfinden. Die Werte werden dann gespeichert und können dann abgerufen werden. Die Motorbewegung kann ich beliebig oft abfahren und so schon mal die optimalen Werte ermitteln.
    Denke das müsste klappen.

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von Geistesblitz
    Registriert seit
    15.03.2011
    Ort
    Dresden
    Alter
    37
    Beiträge
    1.937
    Dürfte so etwa hinkommen, wobei es auch sein kann, dass man das noch irgendwie skalieren muss. Wie gesagt, die Rechnung ist noch auf meine erste falsche Annahme ausgerichtet, dass du damit positionieren willst und keine kontinuierliche Sinusbewegung erzeugen. Daher kann es sein, dass an den Faktoren noch ein wenig herumgespielt werden müsste. Das werde ich dir aber nicht vorrechnen.

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    21.12.2007
    Beiträge
    117
    Komme leider nicht mit zurecht. Habe hin und her gerechnet aber es kommt nichts gescheites bei raus. Habe auch nicht genug Matheunterricht gehabt um deine Formel zu verstehen und entsprechend zu korrieren.

  9. #9
    Erfahrener Benutzer Robotik Einstein Avatar von Geistesblitz
    Registriert seit
    15.03.2011
    Ort
    Dresden
    Alter
    37
    Beiträge
    1.937
    Nagut, ich versuche das nochmal von vorne durch zu gehen.
    Nun noch die Frage: die 19200000 Takte bei 16MHz sind die Periodendauer der Schwingung? Und die 2798 Löcher sind die AMplitude der Schwingung oder der gesamte Stellbereich?

    Wie dem auch sei, für den Fall, dass dein Weg der halben Amplitude (also Abstand zwischen oberer und unterer Sinuswellenspitze) und die Zeit der Periodendauer entsprechen sollten, würde die Gleichung dann so aussehen:

    t = Tges/(2*pi)*arccos(1-2*s/smax) für die Werte s=0...2798

    Ich hab das mal mit Matlab ausgerechnet und dargestellt:
    Klicke auf die Grafik für eine größere Ansicht

Name:	Sinus.png
Hits:	11
Größe:	11,9 KB
ID:	24669
    Oben ist der sinusförmige Wegverlauf für eine halbe Periode (die andere wäre einfach nur horizontal gespiegelt) über der Zeit, unten ist die Zeitdifferenz zwischen je 2 Wegpunkten über den Weg dargestellt.
    Geändert von Geistesblitz (26.02.2013 um 18:54 Uhr)

Ähnliche Themen

  1. Motor mit drehgeber?
    Von Razzorhead im Forum Motoren
    Antworten: 14
    Letzter Beitrag: 07.09.2010, 19:49
  2. Motor mit Steuerung
    Von Philie im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 9
    Letzter Beitrag: 27.07.2009, 16:21
  3. RN-Motor I2C Kommunikation klappt, am Motor tut sich nichts
    Von hspecht74 im Forum Bauanleitungen, Schaltungen & Software nach RoboterNetz-Standard
    Antworten: 1
    Letzter Beitrag: 24.11.2008, 13:04
  4. Kommunikationsproblem mit RN-Motor
    Von LotharM im Forum Motoren
    Antworten: 0
    Letzter Beitrag: 02.12.2006, 10:24
  5. DC Motor mit 5V
    Von DeltaEx im Forum Motoren
    Antworten: 14
    Letzter Beitrag: 31.07.2005, 22:37

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress