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