Servus,
der Idiot bin ich. Ich bin kein Elektronikier und werde es sobald auch
nicht. Aber vielleicht mögt ihr mir bei diesen für euch bestimmt super
einfachem Problem helfen:
Ich habe eine ständig verändernde Spannung eines Sensors zwischen u_ein
= 0-5V. Diese Eingangsspannung möchte ich über eine Funktion in eine
Ausgangsspannung u_aus (zw. 0-5V) ausgeben. Die Funktion ist ein Polynom
4ten Grades, also
u_aus = p0 + p1 u_ein + p2 u_ein^2 + ... etc.
Das ist auch schon alles. Randbedingung wäre dann nur dass das
temperaturspabil bis 100°C funktioniert.
Wie würdet ihr das kostengünstig und platzsparend (soll in den
Motorraum) lösen?
Hintergrund:
Ich möchte bei einem alten Auto einen Sensor durch eine
moderne/zuverlässigere Variante ersetzen. Der neue Sensor hat aber eine
andere Kennlinie (Messwert zu Volt). Also muss ich, beim einsetzen des
neuen Sensors, dessen Ausgangswert so umrechnen, dass das Steuergerät
genkt, es wäre der alte Sensor dran.
Vielen Dank im Voraus - und ihr dürft gern lachen.. aber ich weiß echt
nicht wie's geht!
Gruß.
Ja was Du machen willst ist auf einem Mikrocontroller ziemlich einfach
umzusetzen, sofern man sich bereits damit auskennt.
Da Du mit 5V arbeiten möchtest, sollte der Mikrocontroller am besten
auch gleich mit 5V arbeiten, das vereinfacht die Schaltung.
Du hängst also den Sensor (falls nötig mit dessen Beschaltung) an den
Mikrocontroller, dieser wandelt kontinuierlich (per Timerinterrupt
beispielsweise) und gibt das Resultat kontinuierlich als PWM Signal
(auch mit einem Timer realisiert) aus, welches dann allenfalls noch mit
einem RC-Glied geglättet wird.
Hallo fuzzifikation,
Du schriebst ueber eine Temperaturmessung mit einem ominoesen Sensor...
> Die Funktion ist ein Polynom 4ten Grades...
...was sich für mich bis hierher nach Platinsensor angehorcht hatte.
> Das ist auch schon alles. Randbedingung wäre dann nur dass das> temperaturspabil bis 100°C funktioniert. Wie würdet ihr das kostengünstig> und platzsparend (soll in den Motorraum) lösen?
Hier wird es etwas abstrakter, denn du schreibst vom Motorraum. In
diesem Bereich betragen die Temperaturen selten unter Null Grad Celsius,
in diesen seltenen Faellen jedoch sind die Temperaturwerte irrelevant.
Fuer den Platinsensor gaebe es naemlich ein Polynom ersten Grades fuer
Temperaturen zwischen Null und Hundert Grad Celsius, bzw. eine
quadratische Funktion fuer erhoehte Genauigkeit in diesem gewuenschtem
Temperaturintervall.
> Hintergrund:
So hintergruendig wie sie sein koennten sind deine Hintergruende
nicht...
> Ich möchte bei einem alten Auto einen Sensor durch eine> moderne/zuverlässigere Variante ersetzen. Der neue Sensor hat aber eine> andere Kennlinie (Messwert zu Volt).
..., denn um welchen Wundersensor es sich denn nun konkret handelt
laesst Du auch hier im spekulativen Raum des Moeglichen offen.
> Also muss ich, beim einsetzen des neuen Sensors, dessen Ausgangswert so> umrechnen, dass das Steuergerät genkt, es wäre der alte Sensor dran.
Leyder kann der geneigte Leser auch hier nur ueber die Funktionsweise
des zu ersetzenden, hier als "alt" betitelten Sensors mutmaßen.
> ...ich weiß echt nicht wie's geht!
Ich wuerde folgenden Aufbau Vorschlagen: Sensor -> MCU -> Steuergeraet.
Dazu zwei moegliche Behandlungsweysen des technischen Problems:
a) Deine MCU ist rechentechnisch fit im Schritt: Direkte Berechnung des
Ausgabepegels aus den eingelesenen Sensordaten mit anschließender
Spannungsausgabe an das Steuergeraet.
b) Dein Kontrolleur verfügt nicht über die entsprechden mathematischen
Fähigkeiten bzw. deine Kuenste der Programmierung erlauben nicht die
Implementation der fortlaufenden Berechnung aus den Sensordaten:
Einmalige Vorberechnung und Speicherung der Ausgangsspannung fuer
plausible Sensordaten unter Zuhilfenahme einer elektronischen
DV-Anlage. Kontrolleur liest Sensordatum ein und vergleicht mit
gespeycherten Werten. Passendes Ausgabedatum finden. Sodann Ausgabe
an das Steuergeraet.
Beide Behandlungsweysen lassen sich einfachst auf verschiedensten
Controllerfamilien implementieren, sowohl a) als auch b) ist z.ß. auf
den PMS/MSP430 von TI moeglich und wurde von mir auch schon gemacht.
> Gruß.
Selbiges zurueck, hth, Иван
Zu den Hintergründen (wenn's denn hylft)..
Die Hintergründe dachte ich als ausreichend, da damit die Specs geklärt
wurden. Aber gut: Es handelt sich um sog. Luftmassenmesser, in beiden
Fällen (alt wie neu). Beide liefern einen Spannungswert von 0V-5V in
Abhängigkeit des Luftmassenstroms (kg/h).
Der alte wird nur nicht mehr gefertigt und ist als aufbereitete Variante
selten und dann teuer (wir sprechen von 800EUR alt gegen 400EUR neu).
Zu mir: ich kann durchaus programmieren. Das sollte die Schwachstelle
nicht sein. Mein fehlendes Wissen dreht sich um Platinenentwicklung.
D.h.: Hätte ich eine Platine mit DAC, Mikrocontroller und ADC, die mit
BAtteriespannung (zw. 10-15V, schwankend) auskommt, dann ist die
Programmierung kein Problem mehr.
Zu der Hilfe:
Gibt es denn solch fertige Platinen (mit Betriebstemp von -10°C..+100°C)
und solcher Bestückung? Die würde ich sofort kaufen!
Klugscheißmodus an
Nur so zur Info: im automotiv-Bereich ist die Temperturanforderung im
Motorraum -45°C bis +150°C spezifiziert.
Klugscheißmodus aus
Was mich nun stutzig macht ist
1. dass der LMM nicht mehr gefertigt wird. Mein Auto wird jetzt 18 Jahre
und das Teil ist nach wie vor erhältlich.
2. wieso der LMM so teuer ist. Meiner kostet bei Audi als Neutteil 230€
und der ist schätzungsweise sogar größer wie dein Luftmassenmesser
Was immer noch sehr hilfreich wäre ist, wie du an dein Polynom 4. Grades
gekommen bist. Darüberhinaus kann ich mir nicht vorstellen dass das
wirklch stimmen kann
Nur eine kurze Bemerkung zur Berechnung:
Wie schon erwähnt wurde, würde ich auch zu einer Look-Up-Table raten.
Also passende Ausgangswerte zu den entsprechenden Eingangsdaten zuvor
berechnen und dann ggf. inter- bzw. extrapolieren.
Von Polynomfunktionen (4. Grades) während des Betriebs zu berechnen
würde ich aus Performanz-technischen Gründen abraten, wenn nicht ein
entsprechend schneller DSP eingesetzt wird.
Zum Controller,
würde auch nach einem Controller mit der passenden Eingangsspannung und
DAC / ADC als Peripherie suchen. Auf Auflösung und
Wandlungsgeschwindigkeit achten.
MFG
Ich habe so eine Schaltung fertig hier.
Die Eingangsspannung 0-5V wird mit einem OP gepuffert, von einem PIC
gelesen, die 5V Versorgung können auch aus der Bordspannung generiert
werden, eine 2,5V-Referenz wird für Vergleichsmessungen herangezogen und
ein 10-Bit-DA-Wandler ist auch drauf, dessen Wert dann über einen OP
gepuffert ausgegeben wird.
Der PIC (28 Pin) kann einfach sein (16F872) oder rattenschnell
(18F2431).
Die Schaltung wird schon hundertfach in Fahrzeugen/Maschinen eingesetzt
und sollte die Temperaturen abkönnen.
Mail mich mal an !
>Manche Controller bezeichnen sich als automotive-tauglich.
Das würden vernünftige Controller nie von sich selbst behaupten...;-)
Sie können sich selbst besser einschätzen als ihre
Entwicklungs-Ingenieure.
MfG Paul
Hallo fuzzifikation, Du schriebst:
> Es handelt sich um sog. Luftmassenmesser, in beiden Fällen (alt wie> neu). > Beide liefern einen Spannungswert von 0V-5V in Abhängigkeit des> Luftmassenstroms (kg/h).
Ich kenn mich mit der Autoelektronik nicht so aus, aber irgendwo im
Luftmassennmesser muesste doch die Kennlinie (eventuell in einem EPROM)
gespeychert sein. Sind die verschiedenen LMM kompatibel koennte man sich
den ganzen Aufwand durch Kopieren dieses Speychers ersparen. Inwieweyt
dies moeglich ist entzieht sich jedoch meyner Kenntnis.
> Zu mir: ich kann durchaus programmieren. Das sollte die Schwachstelle> nicht sein.
Wunderbar, das sind die besten Voraussetzungen zum basteln :-)
> Mein fehlendes Wissen dreht sich um Platinenentwicklung.
Das soll Dir keyn Hinderungsgrund seyn.
> D.h.: Hätte ich eine Platine mit DAC, Mikrocontroller und ADC, die mit> Batteriespannung (zw. 10-15V, schwankend) auskommt, dann ist die> Programmierung kein Problem mehr.
Welchen Controller wuerdest Du denn gerne verwenden? Traust Du Dir zu,
die Platine zumindest in einem dafuer phorgesehenen Programm zu
"layouten"?
> Zu der Hilfe: Gibt es denn solch fertige Platinen (mit Betriebstemp von> -10°C..+100°C) und solcher Bestückung? Die würde ich sofort kaufen!
Klar gibts sowas, jedes beliebige Demoboard eines Controllers mit
integriertem ADC/DAC und einer halbwegs brauchbaren Spannungsregelung
sollte das eigentlich hinbekommen. Die Platine selbst wuerde ich Dir
sogar machen wenn mein Equiptment nicht die nächsten Wochen nicht
erreichbar für mich waere. Ich bin mir sicher, daß sich hier in
Forum/Platinen eventuell jemand findet, der Dir solch eine Platine
belichtet und aetzt. Falls Du Glueck haben solltest findet sich
vielleicht sogar jemand, der Dir dein Einzelstueck bestueckt, falls er
die notwendigen Bauteile hat.
Irgendwie kriegen wir das schon gedeichselt,
viel Glueck wuenscht Иван
Vielen Dank Iwan und Bernd, und die anderen hier,
ich hab mich jetzt mal angemeldet und werde mich dann per mail an Bernd
wenden.
Wäre super, wenn eine fertige Platine da wäre, denn ich traue mir nicht
zu, eine vernünftige Platine selbst zu layouten! Der Controller wäre mir
- insofern ich ihn mit C per PC (Windows - leider) programmieren kann -
egal. Das Programmiergerät kann ich mir kaufen..
Zum HFM: meine Angaben zu Preisen und keine Neuteilfertigung stimmen so
schon. Das Polynom habe ich per pseudoinverse Alte/Neue Kennlinie
gefittet. Ein Lookup-Table ist natürlich auch kein Problem!
Danke erstmal - schön, dass ihr ein Herz für Nicht-Elektroniker habt ;-)
Gruß
Hi,
leider hat Bernd bisher keine Zeit dafür gefunden.. ich stehe noch immer
vor dem Problem. Jederlei Hilfe ist nach wie vor sehr willkommen..!
Gerne übrigens auch Buchvorschläge, damit ich mich selbst einlernen
versuchen könnte..
Vielen Dank!!
Wenn der eingebaute 10 Bit AD-Wandler reicht, die Ausgabe auch per PWM
erfolgen kann, dann würde ein AVR mit Ausgangstiefpass reichen.
10 Bit sind nur 1024 Tabellenwerte, die könnten im Flash stehen, für
eine höhere Auflösung ist ein ATMega mit Multiplizierer sinnvoll um die
Kurve zu berechnen. Das wären dann 16-Bit-Multiplikationen, dazu gibts
Applikationen von Atmel.
10 Bit würden mir schon reichen!
Welches Board würdes Du vorschlagen? Gibt es eines mit Tiefpass schon
drangebaut? Wenn ja, dann isses die Lösung für mein Problem!
Bedenke bei der Schaltung dass 9..15V zwar der Betriebsbereich ist, aber
bis 40V möglich sind und (schnelle) Spitzen bis 400V auch schon gesehen
wurden. Also ist auch eine vernünftige Spannungsstabilisierung/filterung
nötig!
Beim Starten gehts dann zeitweise auch auch 6V bzw. 4V runter (OK dann
gehts starten auch nicht mehr).
JL
P.S. mir wärs persönlich zuviel Aufwand, es sei denn es fänden sich mehr
Betroffene die diese Bastellösung wollen.
es gibt auf jeden Fall mehr Betroffene! Wieviel brauchst Du denn? Und
wievel Aufwand wäre es denn (in Stunden).. oder anders gesagt: Wieviel
Geld möchtest Du?
Zu den Spannungsspitzen: Du hast vollkommen Recht! Normalerweise
benötigt man eine sog. "Loaddump Diode" um die Schaltung gegen diese
Spannungsspitzen zu schützen.