Projektstatus: Aktuell

HLM steht für HitzdrahtLuftMassenmesser. Die Funktionsweise ist relativ einfach, ein Draht wird auf 100°C aufgeheizt und durch die den Draht passierende Luft wieder abgekühlt. Der Strom, der notwendig ist um den Draht bei 100°C zu halten ist das Maß für die Luftmasse. Mit der Zeit verschmutzt der Draht und muss freigebrannt werden. Das passiert indem er auf ca 1000°C aufgeheizt wird. Und genau hier liegt auch die Schwachstelle der HLM, die Anzahl der Freibrennzyklen ist endlich, Bosch gibt im Datenblatt 10000 Zyklen an.

Ersatz für die HLM gibt es nicht mehr. Eine Zeit lang gab es von Bosch generalüberholte HLM für 800€ das Stück. Ein M70 hat zwei Stück davon. Aber mittlerweile sind sie auch nicht mehr verfügbar. Es muss also ein Ersatz her, der nachhaltig ist.

Die Antwort drauf heißt HFM, ein HeißFilmMassenmesser. Die Funktionsweise ist der eines HLM ähnlich, außer dass ein Film aufgeheizt wird und vor allem, der Sensor kriegt nicht den ganzen Luftstrom ab, der Sensor sitzt im Bypass.

Als Ersatz habe ich mich für einen HFM7 mit digitalen Schnittstelle entschieden, bzw. einen HFM7-ID mit einem integrierten Temperatursensor. Warum HFM7? Nun, die Kennlinie des neuen LMM muss angepasst werden, damit sie der originalen entspricht. Ein analoger HFM (HFM5, HFM6 oder aber auch ein analoger HFM7) würde den Einsatz eines ADC erfordern und Arbeit mit Näherungswerten, darauf habe ich keine Lust. Die Kennlinie des digitalen HFM7 ist durch einen Polynom der dritten Ordnung (f(x) = ax³+bx²+cx+d) beschrieben. Am Ausgang des LMMs liegt eine Frequenz zwischen 1,8kHz und ca 14kHz an. Die Periodendauer kann man mit einem Mikrocontroller direkt abtasten (über input capture) und die Luftmasse berechnen.

Hier sieht man das Signal des HFM im Leerlauf (Luftmasse = 0kg/h) mit einem Pullup an 5V:

hfm7 oszi

HFM7 im Leerlauf mit einem Pullup an 5V und einem Tiefpass:

hfm7 5v lp

HFM7 im Leerlauf mit einem Pullup an 3,3V und einem Tiefpass:

hfm7 33v lp

HFM7 Kennlinie:

hfm plot

Die Kennlinie des HFM7 von Bosch ist tabellarisch definiert und orientiert sich am Polynom 3. Ordnung. Die Stützpunkte sind die blauen Punkte im Diagramm, die orangefarbene Linie ist das hergeleitete Polynom. Wie man sieht, liegt die Linie perfekt auf den Punkten.

Die X-Achte ist die Periodendauer und Y-Achse ist die entsprechende Luftmasse. Die kürzere Periodendauer (= höhere Frequenz) entspricht der größeren Luftmasse.

HLM Kennlinie:

hlm plot

Die Kennlinie des HLM2 von Bosch ist ebenfalls tabellarisch definiert. Die blaue Punkte sind die Werte aus dem Datenblatt. Höhere Spannung am Ausgang des LMMs entspricht der größeren Luftmasse.

HLM Daten:

  • Abmessungen: 130mm lang, 70mm Durchmesser
  • Nennluftmassendurchsatz: 470kg/h
  • Ausgang: Spannung zwischen 0V und 5V

HFM Daten:

  • Abmessungen: 96mm lang, 70mm Durchmesser
  • Nennluftmassendurchsatz: 480kg/h, maximal 620kg/h
  • Ausgang: Frequenz zwischen 1,5kHz und 14kHz und Widerstand zwischen 40kOhm und 97Ohm

Damit die Motronic 1.7 des M70-Motors die Daten des neuen HFM7 versteht, muss das Signal entsprechend angepasst werden, sprich die Frequenz muss in die Spannung umgewandelt werden. Dazu wird die Periodendauer des HFM7 erfasst und daraus die Luftmasse abgeleitet. Nun wird für die gegebene Luftmasse die entsprechende Spannung gefunden. Dazu habe ich diesen Plot hier erstellt:

hlm_plot

Der Plot bedient sich derselben Wertetabelle wie auch der HLM2 Plot, aber die Achsen sind vertauscht. Da sich die Kennlinie durch keine Funktion halbwegs genau abbilden lies, bin ich den anderen Weg gegangen. Zuerst habe ich den Messbereich (0 bis 500kg/h) in 1000 Abschnitte zerlegt (also 1000 X-Werte) und anschließend habe ich mich der Spline-Interpolation bedient. Das Ergebnis davon ist die orangefarbene Linie. Nun werden die 1000 X-Werte (mit dem HFM7 gemessene Luftmasse) und die dazugehörenden 1000 Y-Werte (die dazu passende Spannung des HLM2, bzw. die DAC-Werte, die diesen Spannungen entsprechen) in eine Lookup Tabelle gepackt.

Die Auswertung und Umwandlung sieht dann so aus:

  • Periodendauer wird gemessen
  • daraus wird die Luftmasse berechnet
  • mit dem Luftmassenwert wird in die Lookup Tabelle reingegriffen und der Spannungswert (= DAC-Wert) rausgeholt
  • sollte sich kein 1:1 passender Wert in der Lookup Tabelle befinden, so wird er aus den beiden benachbarten Werten durch die lineare Interpolation abgeleitet
  • DAC-Wert wird in den DAC geschrieben

Das Blockschaltbild könnte zum Beispiel so aussehen:

  • Eingang: hier werden die beiden Signale erfasst (die Frequenzen über input capture mit 0,016666(6)µS Auflösung)
  • Buffer: Wandeln die Pegel von 5v in 3,3v um
  • Rechenblock: Hier werden die erfassten Werte umgewandelt
  • Buffer: Wandeln die Pegel von 3,3v in 5v um, da die Referenzspannung der DACs 5v beträgt
  • Ausgang: Hier befinden sich zwei DACs, die aus den umgerechneten Werten die jeweilige Spannungen erzeugen

Hier geht es weiter zum "HFM7 Adapter".