Forum: Mikrocontroller und Digitale Elektronik 2-dimensionale Näherungsfunktion?


von Gerhard (Gast)


Lesenswert?

Hallo Leute!

Ich habe folgendes Problem: Ich muß relativ genau einen Absolutdruck 
messen (Gesamtfehler < 0,05% FSO) und das ganze noch in einem relativ 
weiten Temperaturbereich (realistisch etwa -20°C bis +50°C).

Die üblichen piezoresistiven Drucksensoren, egal ob preiswerte Consumer- 
oder hochwertige Industriesensoren im Edelstahlgehäuse, sind viel zu 
schlecht. Alle kommerziellen Lösungen beruhen darauf, einen schlechten 
Sensor genau zu vermessen und anschließend die bekannten Fehler zu 
kompensieren. Diese Lösungen sind für mich aber entweder zu groß oder 
viel zu teuer (Preise im mittleren vierstelligen Eurobereich pro Stück).

Deshalb möchte ich nun diesen Ansatz selbst verfolgen - mit einem 
preiswerten Sensor, der entsprechend kompensiert wird, gute Daten 
erreichen. Hardwareseitig ist das auch alle kein Problem. Der gewählte 
Sensor hat ausgezeichnete Eigenschaften in bezug auf nicht 
kompensierbare Fehler (Hysterese!) und besitzt sogar einen PTC "on 
chip", mit dem die Temperatur direkt an der Meßbrücke bestimmt werden 
kann. Ich habe ein Testboard mit einem Zweikanal-A/D-Wandler und die 
"rohen" (d.h. unkompensierten) Werte für Druck und Temperatur können 
digital ausgelesen werden.

Nun gehe ich in den Klimaschrank und schließe einen sehr genauen 
Referenzdruckgeber an mein Testboard an. Nun kann ich den gewünschten 
Temperaturbereich schrittweise alle paar Grad durchfahren und für jeden 
dieser Schritte den kompletten Druckbereich.

Daraus entsteht dann eine zweidimensionales Array mit den 
Korrekturwerten. Im Prinzip also eine Funktion:

echter_Druck = Funktion(gemessene Temperatur, gemessener Druck, 
Kompensationsarray).

Nun endlich zum eigentlichen Problem: Wenn ich einen kleinen µC habe mit 
nicht sehr viel Speicher und Rechenpower, wie kann ich diese 
Korrekturfunktion am besten implementieren? Im Prinzip bräuchte ich eine 
zweidimensionale Näherungsfunktion. Gibt es so etwas? Wie baut man sich 
so ein Polynom zusammen?

Versteht mich nicht falsch, ich möchte nicht, daß jemand meine Arbeit 
übernimmt, ich wäre schon für Literaturtips, den entsprechenden 
mathematischen Fachbegriff oder für den einen oder anderen kleinen Tip 
dankbar!

Grüße, der Gerhard.

von crazy horse (Gast)


Lesenswert?

Excel kann das.
Daten eintragen, Funktion bestimmen lassen.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Du koenntest die Tabelle im Controller speichern und z.B. bilinear 
interpolieren.

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
Noch kein Account? Hier anmelden.