Eigenbau Messeinrichtung für Rollenprüfstand, neue Anpassungen

#1 von Bunte-Bahn , 22.10.2023 19:56

Hallo Zusammen

in diesen Thread habe ich über den Bau meines universellen Rollenprüfstands berichtet:
Universalprüfstand für H0 Lokomotiven gebaut, Funktionsupdate

Was mir wie dort beschrieben noch fehlte, war eine Messeinrichtung zum bestimmen der Fahrgeschwindigkeiten von Lokomotiven. Das ist nützlich zum genauen Einmessen, Überprüfen und Abstimmen von Loks (Geschwindigkeit, Gleichlauf etc…)
Zunächst hatte ich es auf die von Märklin in der Vergangenheit angebotene Messeinrichtung abgesehen (78111 oder 78158). Die sind jedoch schon lange vergriffen.
Kürzlich habe ich mir noch den Messwagen 49960 besorgt, um mal zu sehen wie das mit der Messung seitens Märklin überhaupt umgesetzt wurde und wie sich das real darstellt. Ergebnis:
Ist alles „ganz nett“ aber doch recht grob, speziell im langsamen Geschwindigkeitsbereich. Unter (umgerechnet aufs Vorbild) 3,6 km/h ist nichts zu messen. Kein Wunder: Es gibt nur drei Messimpulse pro Radumdrehung. Die Messzeit ist ca. 1s. Es kann also minimal 1 Puls pro Sekunde aufgelöst werden. Das Rad der Messachse des Wagens hat 10mm Durchmesser. Das gibt also als minimal zu messende Geschwindigkeit ganz grob „echte“ 10 mm/s.
Aufs Vorbild umgesetzt (*87) sind das 3,12 km/h. Das passt ganz gut zu der minimalen Anzeige von 3,6 km/h.
Wie dem auch sei: Dem Techniker ist das alles viel zu grob und zu undynamisch. Es musste was besseres her :D.
Für den von mir benutzten Rollenprüfstand(Märklin) kann man nichts kaufen. Auch für andere Prüfstände gibt es meiner Ansicht nach nur unzulänglichen Mist für genaue Messungen. Und ich hab ja nunmal auch den Märklin/SMT Prüfstand. Funktional, optisch und von der Stabilität der Beste.
Demnach: Selber was bauen, was meinem Anspruch gerecht wird und zuverlässig und genau funktioniert.

Die Hardware:

Als Messcomputer und Controller kommt zunächst (für die Testphase) ein Arduino UNO zum Einsatz. Der bietet zwei interruptfähige Eingänge (später mehr dazu) und ist mit 16 MHz mehr als schnell genug.
Der Geber ist ein industrieller Inkrementalencoder (Megatron MIB22) mit 100 Pulsen je Umdrehung. Der Encoder ist 2-kanalig, bei voller Auswertung sind das dann 400 Zustandsänderungen je Umdrehung.
Die Welle des Gebers fungiert gleichzeitig als Messwelle. Eine aufgepresste Hülse mit 6mm Außendurchmesser gleicht den Durchmesser dem der übrigen Laufrollen des Prüfstands an. Da die Geberwelle sehr leicht läuft wird sie sicher vom drehenden Rad der Lok mitgenommen und angetrieben.
An den Prüfstand wird der Geber über ein gedrucktes Teil angeflanscht. Das Adapterteil ersetzt dabei einen kompletten Rollenbock eines Rollenbockpaares. Bedingt durch den Geber musste das Adapterstück etwas breiter werden als die originalen Böcke. Auch bei engen Achsständen geht das aber trotzdem noch auf.
Komplettiert wird der Messaufbau durch ein paar Knöpfe und ein LC-Display zur Ausgabe der Messwerte an den Benutzer (also an mich :D)

Messwertaufnahme /-auswertung /-ausgabe:

Der Geber gibt wie berichtet 400 Zustandsänderungen je Umdrehung aus, 200 pro Umdrehung auf jedem Kanal.
Die müssen jetzt in den Arduino. Das geschieht über 2 digitale Eingänge. Jeder Eingang ist so beschaltet:
2,2kOhm externer Pull-up auf 5V (hier optimaler Wert für steile, „eckige“, Signalflanken)
Der jeweilige Kanal des Gebers ist ein Open Collector, be aktivem Kanal wird der Ausgang auf Ground gezogen. Der verbundene Digitale Eingang des Arduino wird LOW.
Dieses Wechselspiel passiert dann wie gesagt 200 mal je Kanal und Umdrehung des Gebers.
Jetzt muss der Arduino das auch mitbekommen. Dafür die Interrupts. Auf dem Arduino läuft ein Programm, welches die Messwerte verwertet, umrechnet und ausgibt. Das läuft in einer Dauerschleife (Ablaufprogramm).
Kommt nun eine Zustandsänderung über einen Geberkanal rein, unterbricht der Arduino das, was auch immer er gerade tut und führt prioritär ein Unterprogramm aus, was mit dem Interrupt verknüpft ist (InterruptServiceRoutine, ISR). Hier: Speichere (zähle) den die Änderung am Eingang als Wert in einer Variablen. Mehr nicht.

Und jetzt gehts los. Wir zählen nun alle eingehenden Zustandsänderungen (ich nenn es ab jetzt einfach Pulse). Fein. Um eine Geschwindigkeits- bzw. Drehfrequenzinformation zu bekommen benötigen wir noch eine Zeitinformation (Geschwindigkeit = Weg/Zeit)
Wir summieren in meinem Fall die Pulse pro Zeit. Die Pulse sind durch den bekannten Umfang der Messwelle direkt in eine Weginformation umzurechnen.
Die Messperiode beträgt 60ms. Jede Messperiode wird über einen Timerinterrupt genau eingehalten. Fünf aufeinander folgende Messperioden werden gemittelt (glätten der Werte). Dann wird der Mittelwert in verschiedene Abrufgrößen umgerechnet (km/h Vorbild, m/s Real, 1/min) Auch die gesamte Strecke wird summiert. Je nach gewählter Betriebsart werden die Werte dann auf dem LCD ausgegeben.
Durch die Mittelwertbildung aus 5 Perioden à 60ms erfolgt ein Refresh der Anzeige alle 300ms. Das ist dynamisch und trotzdem stabil für saubere Werte ohne gezitter.

Auflösung / Genauigkeit:

Die Messwelle hat 6mm Durchmesser, der Umfang ist demnach rund 18,84mm. Jeder Puls (400 pro Umdrehung) löst demnach auf 0,047mm auf.
Pro Messperiode wird mindestens 1 Puls benötigt um was messen zu können. Die kleinste theoretische Geschwindigkeit ist demnach 0,047mm/60ms….oder handlicher 0,785mm/s
Aufs Vorbild sind das 0,25 km/h.
Das ist wenig genug um den von mir angestrebten Wunsch vmin= 1km/h sicher erfassen zu können.
Die Messung ist präzise sofern das drehende Rad der Lok steif mit dem Geber verbunden wäre. Hier haben wir aber einen Reibradantrieb: das drehende Rad der Lok nimmt die Geberwelle aufgrund der Reibung zwischen den beiden mit. Dadurch ist immer ein gewisser Schlupf vorhanden. Den Wert kann ich nicht bestimmen. Er ist für jede Lok anders (Gewicht, Schwerpunkt, Achslast, Treibraddurchmesser, Zustand der Haftreifen). Dazu müsste man direkt an der Motorwelle der Lok, drehsteif gekuppelt, eine vergleichende Messung machen. Damit könnte man den Schlupf berechnen. Darauf verzichte ich. Die Lok soll „wie sie ist“ vermessen werden können.
Tests ergeben, dass die Geberwelle dynamisch und dauerhaft folgt. Kleinste Geschwindigkeiten stehen stabil (da würde man starken Schlupf zumindest sehen können). Eine sorgfältige Positionierung der Rollenbockpaare vor Messbeginn ist obligatorisch.
Zusammenfassend denke ich, dass eine Genauigkeit von +/- 1km/h (Vorbild) realistisch darstellbar ist.

Grenzen

Nach unten ist die Grenze aufgrund der Auflösung des Gebers wie beschrieben bei 0,25km/h. Nach oben wird der maximale Messwert durch die mechanische Grenzdrehfrequenz des Gebers bestimmt: 6000 1/min. Die maximale Messgeschwindigkeit liegt demnach bei 590km/h (Vorbild). Das ist schnell genug für jeden Rekordzug und schnell genug für mich :D.

Hier folgen nun noch einige Bilder zur Verdeutlichung:

Bild entfernt (keine Rechte)
->Die Elektronikeinheit als Testaufbau. Momentan Batteriegespeist (der Encoder braucht mindestens 8V Versorgungsspannung).

Bild entfernt (keine Rechte)
->Hier seht ihr die Encodersignale bei sich drehendem Encoder, dargestellt auf dem Oszilloskop. Die oberen beiden Linien stellen Kanal A dar, die unteren beiden Kanal B. Sehr schön kann man die um 90° Phasenversetzt laufenden Signale sehen. Die Flankenanstiege und -abfälle sind scharf und steil, so wie es sein soll. Fehlerpeaks, oder sonstige Störungen sind nicht zu sehen. Eine Fehlerkorrektur der Signale wird nicht durchgeführt.

Bild entfernt (keine Rechte)
-> Lokrad und Messwelle mit Encoder im Detail

Bild entfernt (keine Rechte)
-> Hier nochmal von der Innenseite. Der gedruckte Rollenbock ist gut zu erkennen. Rechts neben der Messwelle ein normales Kugellager auf seinem Lagerzapfen. Die Aussparung über dem rechten Kugellager dient der Erreichbarkeit der Befestigungsschraube. Die Welle des Encoders ist selbst mit 2 Kugellagern gelagert. Die ist stabil genug um die Last aufnehmen zu können. Zu meinem Encoder lässt sich das Datenblatt zur zulässigen Radiallast nicht aus. Der Nachfolgetyp ist beim Hersteller mit bis zu 80N angegeben. Wenn mein Geber nur 10 Prozent davon hätte, wäre es immernoch genug... das passt also, auch für den Dauergebrauch

Bild entfernt (keine Rechte)
-> Hier mal eine Übersicht zur Größeneinordnung. Der Encoder hat einen Außendurchmesser von nur 22mm.

Bild entfernt (keine Rechte)
-> Hier noch ein Bild aus dem frühen Prototypenstadium: Drahtverhau auf dem Steckbrett.


Was ist noch zu tun?

Was jetzt noch folgt ist weitere Optimierung des Programmcodes (im Rahmen meiner eher grundlegenden Kenntnisse).
Außerdem muss noch eine hübsche „Verpackung“ gebaut werden um das Produkt komplett zu machen. Da werde ich nochmal überlegen. Das zeig ich gern auch wenn es fertig ist.

Vielleicht ist das ja Anregung für euch, um sowas auch selbst in Angriff zu nehmen. Ich muss zugeben, dass der passende Geber (Baugröße, Schnittstelle etc.) genau im richtigen Moment in der Bucht auftauchte und ich gleich beide verfügbaren eingekauft habe (es gibt weitere Ideen :D) Diese industriellen Teile sind von privat schwer zu bekommen. Viele Hersteller liefern nur B to B.

Zur Ergänzung noch:
Ich habe im Vorfeld zunächst mit einem Hall Sensor (A3144) und Neodymmagneten, die ich an eine Motorwelle geklebt habe, experimentiert um das Prinzip für mich zu validieren. Das entspricht dem Märklin Konzept und auch bei anderen hab ich das schon so gesehen. Da hab ich mir das abgeschaut. Hier das schöne Beispiel vom Mitglied Uwe (Bubikopf) hier aus dem Forum wie mit wenig Hardwareaufwand ein kompakter Messwagen entstehen kann:

RE: Arduino - Messwagen "kompakt" - Neue Fotos vom fertigen Wagen!

Mein erworbener Geber arbeitet nach dem gleichen Prinzip, nur mit höherer Auflösung (feine Magnetisierung, mehrkanalige Auswertung).
Wer eine geringe Auflösung oder eine lange Messperiode toleriert ist sicher auch mit der „Bordmittelmethode“ sehr gut bedient!

Viele Grüße,
Daniel

Angefügte Bilder:
Sie haben nicht die nötigen Rechte, um die angehängten Bilder zu sehen

ModellbahnTom, 2ndreality und KaRoRail haben sich bedankt!
Bunte-Bahn  
Bunte-Bahn
RegionalExpress (RE)
Beiträge: 74
Registriert am: 07.10.2015
Gleise Märklin C
Spurweite H0
Steuerung Intellibox
Stromart Digital

zuletzt bearbeitet 11.11.2023 | Top

RE: Eigenbau Messeinrichtung für Rollenprüfstand

#2 von ModellbahnTom , 23.10.2023 22:47

Hallo Daniel,

was du da umgesetzt hast ist ja mal genial

Dein in die Praxis umgesetztes Projekt kommt mir gerade zur rechten Zeit - ich bin seit einiger Zeit dabei mir Gedanken zu machen, wie ich die Geschwindigkeit der Loks auf dem Rollenprüfstand messe. Ich nenne auch einen von SMT mein Eigen - allerdings den "Mobilen" mit den einzelnen Rollböcken zum aufsetzen auf das Gleis.

Mal sehen, ob ich deine Idee in mein Projekt umsetzen kann - ich hoffe du hast nichts gegen diesen "Ideendiebstahl"

Bisher habe ich die Geschwindigkeit mittels Lichtschranken-Messstrecke und Arduino nach MoBa-Speed gemessen. Geht sehr gut und hat den Vorteil, dass man die Geschwindigkeit und realen Betriebsbedingungen (mit Zug als Last) messen kann. Dennoch wäre eine sofortige Erfassung der programmierten Geschwindigkeit auf dem Prüfstand nicht schlecht.

Ich werde mich gleich mal auf die Suche nach passender Hardware machen müssen...


Viele Grüße
Thomas


ModellbahnTom  
ModellbahnTom
InterRegio (IR)
Beiträge: 216
Registriert am: 01.06.2021
Gleise C- und K-Gleis
Spurweite H0
Steuerung CS2
Stromart Digital


RE: Eigenbau Messeinrichtung für Rollenprüfstand

#3 von gima , 29.10.2023 09:17

Moin

Über die Elektronik meines 3D Druckers bin ich auf einen Chip gestossen, der per Magnet berührungslos Rotation misst.
(Closed Loop in X und Y von Duet3D)
Jetzt wäre meine Idee, dies mit dem gleichen Chip, dem AS5047D zu machen.
https://ams.com/as5047d/
Was denkt Ihr über eine solche Lösung, auf USB, oder standalone über einen z.B. UNO mit Display

Manuel


gima  
gima
InterRegio (IR)
Beiträge: 168
Registriert am: 12.02.2020
Ort: Stodo
Spurweite H0e
Stromart Digital


RE: Eigenbau Messeinrichtung für Rollenprüfstand

#4 von Bunte-Bahn , 04.11.2023 10:09

Hallo Manuel,

das wäre sicher interessant, eine Umsetzung mit diesem Baustein für die Praxis zu sehen. Die mechanische Verbindung zum Rollenbock ist da sicher ein wichtiger Punkt.
Diesen Baustein auszuwerten scheint mir beim Überfliegen der Daten recht einfach zu machen zu sein (dazu gibt es sogar Bibliotheken in der Arduino Umgebung)

Thomas,

klar kannst du dir das „abgucken“. Dafür zeig ichs ja gern. Ich bin ja auch selbst nicht der Erfinder des Rades :D, und adaptier gern Ideen :D
Ich hoffe, du findest einen passenden Geber.

Viele Grüße
Daniel


Bunte-Bahn  
Bunte-Bahn
RegionalExpress (RE)
Beiträge: 74
Registriert am: 07.10.2015
Gleise Märklin C
Spurweite H0
Steuerung Intellibox
Stromart Digital


RE: Eigenbau Messeinrichtung für Rollenprüfstand

#5 von Bunte-Bahn , 11.11.2023 14:19

Hallo Zusammen,

hier noch ein kleiner Nachtrag zum Eingangsbeitrag:

Messaufbau:
Die Radwelle, also die Geberwelle mit der Adapterhülse auf 6mm, musste noch einmal nachgearbeitet werden: Die Geberwelle ist bauartbedingt auf Gehäusepotential (= Schirm). Wenn die auf der Rolle laufende Lok Kontakt mit der Geberwelle bekommt, sind eingestreute Störungen zu beobachten. Diese Störungen verursachen eine hohe Frequenz an "Fehlimpulsen". Das fiel erst auf, als einmal eine Lok mit blankem Rad auf der Welle lief. Die Geberwelle lässt sich auch nicht einfach grounden, da die Lokräder nicht auf Groundbezug laufen. Das gibt einen Kurzschluss. Weiterhin war die Kraftübertragung von Lokrad auf Geberwelle nicht immer ganz zufriedenstellend. So gab es auch hier Fehlmessungen.
Abhilfe schafft für beide Probleme eine Isolierung der Geberwelle. Die Adapterhülse habe ich daher entsprechend abgedreht und eine Bandage aus Polyurethan aufgebracht. Das ist recht griffig und isoliert. Das Stück Polyurethan ist ein ganz ordinäres Stück Druckluftschlauch. Nach dem Aufziehen auf die Geberwelle wurde die Bandage dann noch mit abgedreht für die Maßhaltigkeit.

Messauswertung:
Ich habe die Auswertung noch dahingehend angepasst, dass jede Betriebsart (Km/h Vorbild, m/s, Drehfrequenz) eine jeweils angepasste Messzeit erhält. Auch wurde die Sampleanzahl zur Mittelwertbildung auf 10 erhöht. So werden beispielsweise die Werte in Km/h immer auf 0,5 Km/h genau und m/s auf 0,001 m/s genau angezeigt. Die Drehfrequenz hat eine kürzere Samplezeit und wird alle 200ms aktualisiert.

So werden praktisch gut handhabbare Ergebnisse ausgegeben. Mit der m/s Betriebsart lassen sich Lokomotiven sehr genau abstimmen (auf 0,001m/s genau). Beispielsweise für die genaue Einstellung des Trimms für Vorwärts/Rückwärtsfahrt. Gut zu gebrauchen um z.B. Mehrfachtraktionen genau abzustimmen.
Einige Loks habe ich testhalber schon entsprechend vermessen. Eine gut laufende Lok (hier Märklin 110, 39124, Allachsantrieb über Mittelmotor, Motor Faulhaber Glockenanker) ließ sich so in beide Richtungen auf 0,001m/s genau hintrimmen (vorwärts/rückwärts abgleich und v absolut). Kalibriert wird die Lok mithilfe der Decoder CV, die entsprechend verändert werden.

Eine Unterscheidung von vorwärts/rückwärts gibt es nun auch. D.h. der Wegstreckenzähler zählt je nach Drehrichtung der Lok nach "+" oder nach "-".
Das ist hilfreich um z.B. den Kupplungswalzer genau einzustellen. Die Weginformation erfolgt auf dem Display in m mit 3 Nachkommastellen. Die Ausgabeauflösung ist demnach 1mm. Damit kann man entsprechend genau feststellen, wie weit z.B. angedrückt uns abgerückt wird. Auch die Wiederholbarkeit kann so gut geprüft werden. Die Werte können dann ebenfalls über die Decoder CV angepasst werden, bis man zufrieden ist.

Inzwischen bin ich bei Softwareversion 29, ich habe also schon viel dran "gebastelt". Bis hierher bin ich gut zufrieden.

Viele Grüße
Daniel

*Edit: Info zur Drehrichtungserkennung ergänzt


Bunte-Bahn  
Bunte-Bahn
RegionalExpress (RE)
Beiträge: 74
Registriert am: 07.10.2015
Gleise Märklin C
Spurweite H0
Steuerung Intellibox
Stromart Digital

zuletzt bearbeitet 11.11.2023 | Top

   

S-Bahn Berlin – ein neuer Antrieb muss her
Brawa 44262 Talent 4124/4024 Öbb Umbau von DC auf AC

  • Ähnliche Themen
    Antworten
    Zugriffe
    Letzter Beitrag
Xobor Einfach ein eigenes Forum erstellen
Datenschutz