Hallo zusammen hab da mal eine Frage.. ich will die Geschwindigkeit einer Maschine berechnen (rpm).. hab einen 12 Bit wert der quasi meine strecke ist, jetzt benötige ich die Zeit um eine Geschwindigkeit zu ermitteln gibt es eine Möglichkeit einen Zeit mitlaufen zu lassen? meine idee ist es einen counter mit laufen zu lassen der bei erreichen des nächsten Digits mit dem Takt multipliziert wird und mir so eine Zeit ausgibt.. gibt es vielleicht noch eine leichtere lösung?
Das hängt u.a. von der Frequenz ab. Bei Frequenzen <1 Hz könnte es einfacher sein sich mit einer Stoppuhr neben die Maschine zu stellen...
Tim schrieb: > Hallo zusammen hab da mal eine Frage.. 1. Streich mal alle Gedanken über das Projekt aus deinem Kopf. 2. Lies dir deine Fragestellung durch. 3. Kannst du damit was anfangen?
Ja ich kann damit was anfangen.. ein Drehgeber (12 bit) gibt mir die lage und dadurch habe ich eine strecke jetzt brauche ich nur noch eine Zeit um die Geschwindigkeit zu ermitteln..
Tim schrieb: > ein Drehgeber (12 bit) gibt mir die > lage und dadurch habe ich eine strecke Ein Drehgeber gibt dir einen Winkel an. Dann einfach in einem definierten Zeitintervall die Winkeländerung aufnehmen, dann hast du deine Winkelgeschwindigkeit.
Wenn dich potientielle Helfer darauf hinweisen, daß deine Fragestellung nicht konkret genug ist, dann solltest du die Fragestellung überarbeiten und nicht verteidigen. Dein oller Encoder gibt dir (mit großer Wahrscheinlichkeit) keine Lage, sondern höchstens eine Frequenz. Aber mal ehrlich: angenommen die Maschine dreht mit 1 MHz (ähm...) und du hast 12 Bit, dann kommen die Signale vom Drehgeber mit 4,096 * 10^9 Hz, also über 4 Gigahertz. Damit solltest du vielleicht lieber ins HF-Forum...
erstmal danke für die schnellen antworten.. du hast recht ein Drehgeber gibt mir einen Winkel aus und mit hilfe eines Zeitintervalles kann ich die Winkelgeschwindigkeit berechnen.. mein Problem ist einfach das in eine Zeit umzurechnen.. deswegen die idee mit dem counter der mir sobald der nächste Winkel (Bit Wert) erreicht ist mir eine Zeit ausgeben soll. Da mein FPGA mit 25MHz Taktet wollte ich den counter hochzählen lassen und den wert mit 40us (25MHz) multiplizieren und so hätte ich eine Zeit und könnte so berechnen wie schnell er sich dreht als rpm.. Die Maschine (Reluktanzmaschien) die ich habe, hat zunächst eine konstante Drehzahl wird jedoch eine Last angehangen würde sich die Maschine langsamer drehen also die Winkelgeschwindigkeit geringer werden dies wiederrum möchte (muss)ich Regeln...
Tim schrieb: > Die Maschine (Reluktanzmaschien) die ich habe, hat zunächst eine > konstante Drehzahl wird jedoch eine Last angehangen würde sich die > Maschine langsamer drehen also die Winkelgeschwindigkeit geringer werden > dies wiederrum möchte (muss)ich Regeln... Deine Denke versteh ich nicht ganz. Bei einem Reluktanzmotor gibst du ja über die Schaltschritte der Wicklungen die Geschwindigkeit schon vor. Jetzt hat der Rotor 2 Möglichkeiten: 1. er dreht mit in der eingestellten Geschwindigkeit 2. er "schlupft" und macht wirres Zeug. :-) Außerdem brauchst du ja wahrscheinlich sowieso schon eine Art Rotorpositionserkennung, um die Weiterschaltung der Spulen zu steuern. Warum nicht einfach die mitzählen, um auf die Geschwindigkeit zu kommen?
Auch jetzt hast du wieder recht :) ich werde den Rotor Ausrichten müssen umd einen Start Punkt zu haben und von da an werde ich die Spulen abhängig von der Lage des Drehgebers bzw. Rotors bestromen damit ein sauberer umlauf ermöglicht wird. Jedoch hab ich da noch lange keine genaue angabe der Drehgeschwindigkeit im moment würde sie sich einfach nur drehen abhängig davon wie stark ich die Spulen bestrome.. wenn jetzt aber die Maschine belastet wird, würde sich die Drehgeschwindigkeit ändern das will ich erfassen!!! um dann den Strom so zu regeln das sie sich wieder so schnell dreht wie vorher. deshalb muss ich die Drehgeschwindigkeit bzw. Winkelgeschwindikeit ermitteln damit ich das darüber regeln kann..
Tim schrieb: > wenn jetzt aber die Maschine belastet wird, würde sich die > Drehgeschwindigkeit ändern das will ich erfassen!!! Was für einen Reluktanzmotor hast du denn? SR, Asynchron oder Schrittmotor?
gibt es eine asynchrone Reluktanzmaschine überhaupt :) na ja wie auch immer. ist eine geschaltete Reluktanzmaschien also Schrittmotor
Tim schrieb: > ist eine geschaltete Reluktanzmaschien also Schrittmotor Ok. > wenn jetzt aber die Maschine belastet wird, würde sich die > Drehgeschwindigkeit ändern das will ich erfassen!!! Du hast ja dann Positionsgeber, um den Zeitpunkt fürs Wicklungenumschalten herauszufinden. Un du willst eine konstante Geschwindigkeit haben. Also musst du den Strom so regeln, dass die Positionsgeber im im selben Takt anschlagen. Dafür musst du nichtmal wirklich die Geschwindigkeit wissen, sondern nur die Zeit, die du für einen Schaltwechsel brauchst. So wäre das Schaltverhalten direkt mit der Stromregelung zusammengeführt.
Also das mit der Konstanten Geschwindigkeit ist nur halb richtig.. es wird schon verschiedene Geschwindigkeitsstufen geben aber bei änderung der Last soll sich die Drehgeschwindigkeit der aktuellen stufe nicht ändern.. und ja mit Hilfe des Drehgebers hab ich die genauen Punkte wann die Wicklungen geschaltet werden. ich finde deine Idee ist ein zu großer Reglungtechnischer Aufwand da gefällt mir meine lösung mit der Messung der Geschwindigkeit besser :D Gibt es denn keine einfach Möglichkeit einen Timer zu starten der mir die Zeit misst bis der bei der nächsten Position ist? das reicht mir ja schon?
Tim schrieb: > Hallo zusammen hab da mal eine Frage... Was ist denn das hier für eine Salamitaktik? Das dauert erst mal 1 1/2 Stunden und 13 Beiträge, bis so etwa mal herausgekommen ist, was da gemacht werden soll, und dann ist immer noch eine Frage ungeklärt: In welcher Beschreibungssprache? Tim schrieb: > Gibt es denn keine einfach Möglichkeit einen Timer zu starten der mir > die Zeit misst bis der bei der nächsten Position ist? das reicht mir ja > schon? Doch. Das ist sehr einfach. Nur ist eine anschliessende Umrechung in U/min mit Verlaub unnötig und unsinnig, weil kein Teil der Prozesskette damit etwas anfangen kann (ausser einem Menschen, der aber normalerweise nicht teilnimmt).
Tim schrieb: > ne die Frequenz ist im MHz bereich Ein Motor mit einer drehgeschwindigkeit im MHz-Bereich würde ich wirklich gern mal sehen. M.W. hört das irgendwo bei 5kHz auf. Gruss Harald
oh sorry in VHDL.. also es wird später schon ein mensch die U/min sehen.. für das Programm ist es natürlich unwichtig..
Tim schrieb: > ein Drehgeber (12 bit) gibt mir die lage und dadurch habe ich eine > strecke jetzt brauche ich nur noch eine Zeit um die Geschwindigkeit > zu ermitteln.. Ja, nun: eine Zeit ist im FPGA einfach ein Zähler, der mit dem Systemtakt getaktet wird. Und dann mußt du nur beim Zurücksetzen des Zählers die Ausgangsposition speichern, anschliessend den Zähler bis zu seinem Endwert hochlaufen lassen, dann die gespeicherte Position von der aktuellen abziehen, und damit hast du die Geschwindigkeit (=Strecke pro Zeit). Der Trick: wenn du die Zeit günstig wählst, mußt du ausser dieser Subtraktion nichts mehr rechnen, denn alle Umrechungen (von Inkrementen nach Winkel nach Weg) lassen sich in der Messzeit unterbringen...
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.