Ich habe einen PMDC-Motor, der elektronisch drehzahlgeregelt ist. Und es ist ein geschlossenes System. Ein Näherungssensor misst die Drehzahl des Motors und es sind 12 Schrauben an der Welle des Motors befestigt, so dass der Näherungssensor 12 Impulse pro Umdrehung erzeugt, wenn er sich dreht. Ich habe einen Code geschrieben, um die Drehzahl zu messen, in dem ich die Impulse in einer Sekunde zähle und so die Geschwindigkeit berechne. Aber das Problem ist, dass ich nur eine Auflösung von 5 U/min bekommen konnte. Gibt es überhaupt eine höhere Auflösung wie 1 U / min auf diesem System, ohne die Feedback-Technologie zu ändern?
Bei 500 U/min dreht sich die Welle 8,3333 Mal pro Sekunde, also zählt man in 1 Sekunde: -
12 x 8,33333 Impulse = 100 Impulse
Bei 505 U/min dreht sich die Welle 8,416667 Mal pro Sekunde, also zählen Sie in 1 Sekunde: -
12 x 8,41667 Impulse = 101 Impulse
Sie möchten eine höhere Auflösung, damit Sie mehr Schrauben hinzufügen können, ABER um eine Auflösung von 1 U / min zu erhalten, benötigen Sie 5 x 12 Schrauben, und das klingt unpraktisch.
Sie könnten eine fortlaufende Zählung über 5 Sekunden durchführen und jede Sekunde die älteste 1-Sekunden-Zählung wegwerfen und die neueste Zählung einführen, aber Sie haben immer noch einen trägen Mechanismus zum Messen der Drehzahl - Geschwindigkeitsänderungen werden nicht so dynamisch gesehen wie Sie vielleicht wollen.
Alternativ verwenden Sie eine Hochfrequenzuhr und messen die Anzahl der Zählungen zwischen den Impulsen. Sie können 12 Ergebnisse (eine volle Umdrehung) mitteln, um Positionsfehler der Schrauben zu reduzieren.
Wie schnell kannst du takten und zählen?
Antwort - Sie haben eine Uhr mit einer Periode von 256 usecs - das bedeutet, dass sie 3906 Mal in einer Sekunde umschaltet. Wenn Sie diese Taktwechsel alle 12 Impulse auf dem Näherungssensor (auch bekannt als eine Umdrehung der Welle) zählen, zählen Sie bei 500 U / min 0,12 Sekunden und akkumulieren insgesamt 469 Taktzyklen. Wenn Sie 468 Taktzyklen akkumulieren, entspricht dies 501 U / min.
Sie haben natürlich die Möglichkeit, zwei oder mehr Umdrehungen zu zählen, um bei höheren Geschwindigkeiten eine größere Auflösung zu erhalten. Bei deutlich niedrigeren Geschwindigkeiten möchten Sie möglicherweise auf das Zählen von Annäherungsimpulsen pro Sekunde ODER Taktzählungen für eine Teildrehung der Welle zurückgreifen.
Der genaueste Ansatz für Geschwindigkeiten in dem von Ihnen betrachteten Bereich besteht darin, dass jeder eingehende Impuls einen Zähler erhöht und den Wert eines Timers zwischenspeichert. Abtasten Sie regelmäßig die Zähler- und Latch-Timer-Werte, wobei Sie sicher sein müssen, dass die abgetasteten Werte "zusammenpassen". Wenn Sie beispielsweise einen Hardware-Impulserfassungszähler und eine Impulserfassungsschaltung mit demselben Eingang verdrahtet haben, können Sie den Zähler, dann den erfassten Zeitgeberwert und dann den Zähler erneut lesen. Wenn die beiden Zählerstände unterschiedliche Werte ergeben, wiederholen Sie den Vorgang. Die Zeit, um den Vorgang erneut zu versuchen, ist kürzer als die Mindestzeit zwischen Eingangsimpulsen, dann sollten beim zweiten Versuch beide Zeitgeberwerte übereinstimmen.
Sobald Sie dies getan haben, berechnen Sie Ihre Geschwindigkeit im gewünschten Aktualisierungsintervall in Impulsen pro Minute wie folgt:
Geschwindigkeit = (NewCount-EarlierCount) * TimerCountsPerMinute / (NewTimer-EarlierTimer)
Außer wenn NewCount gleich EarlyCount ist, ergibt dieser Ansatz einen Wert, dessen Genauigkeit +/- ein Timer-Tick beträgt. Anders ausgedrückt: Wenn die Eingangsgeschwindigkeit konstant ist und der Timer selbst genau ist, liegt der korrekte Messwert irgendwo dazwischen
Geschwindigkeit = (NewCount-EarlierCount) * TimerCountsPerMinute / (NewTimer-EarlierTimer-1)
Und
Geschwindigkeit = (NewCount-EarlierCount) * TimerCountsPerMinute / (NewTimer-EarlierTimer+1)
Wenn Sie eine Zeitbasis von 1 MHz verwenden, könnten Sie mit diesem Ansatz Ihre Anzeige zehnmal pro Sekunde aktualisieren, vorausgesetzt, Ihre Eingangsimpulse kommen mit 10 Hz oder schneller an und zeigen einen Wert an, der genau auf die Genauigkeit eines typischen Kristalls war. Je nachdem, was Sie tun, möchten Sie möglicherweise Aktualisierungen unterdrücken, es sei denn, die Gesamtdifferenz zwischen den angezeigten und den tatsächlichen Messwerten erreicht beispielsweise drei Einheiten auf der Anzeige (sodass sich bei schnellen Wertänderungen die Anzeigenummern schnell ändern, aber wenn ein Wert zwischen 123,4 und 123,5 wechselt, würde das Display genügend Zeit damit verbringen, jeden Wert anzuzeigen, damit eine Person ihn sehen kann).
Messen Sie die Zeit zwischen steigenden oder fallenden Impulsflanken. Sie erhalten eine Zeitschätzung, wie lange es dauert, mit jedem Impuls 1/12 Umdrehung zu machen.
Wenn die Mindestdrehzahl 20 U / min beträgt, erhalten Sie alle drei Sekunden eine Umdrehung und nur vier Impulse pro Sekunde. Sie können keine Auflösung (viel weniger Genauigkeit) von 1 U / min erhalten, indem Sie einfach Impulse pro Sekunde zählen. Um die gewünschte Auflösung bei einer sehr niedrigen Impulsfrequenz zu erhalten, müssen Sie die Periode zwischen den Impulsen bestimmen und daraus die Drehzahl berechnen. Um die Periode zu bestimmen, verwenden Sie die Impulse zum Starten/Stoppen eines Zählers. Der Zähler muss schnell genug getaktet werden, damit Sie immer noch mindestens 500 Zählwerte erhalten, wenn die Impulse mit 100 Hz (500 U / min) kommen, sodass der Zähler mit 50 kHz oder mehr laufen muss.
Kurt E. Tuchmacher
raforanz
raforanz
Kurt E. Tuchmacher
Platzhalter
Joe Hass
raforanz