Forum: Mikrocontroller und Digitale Elektronik Programmiertechnischer Trick / bessere Vorgehensweise bei Berechnung - analoger Ausgang 4-20mA


von Hans (Gast)


Lesenswert?

Guten Morgen Leute!

Ich versuche hier mal mein Glück, evtl. kann mir ja jemand helfen, bzw. 
mir ein wenig auf die Sprünge helfen.

Ich habe eine Schaltung für einen Sensor entwickelt, der mir 4-20mA in 
einer 2-Leiterschaltung erzeugt. Das ganze ist für einen keramischen 
Drucksensor, der relativ unlinear ist, seine Linearität liegt bei ca. 
0,4% über dem gesamten Messbereich.

Ich habe daher eine 5-Punkt-Kalibrierung vorgenommen, in der ich bei 0%, 
25%, 50%, 75% und 100% Messwerte auf einem Kalibrator aufnehme und dann 
intern mittels kubischer Spline-Interpolation eine Linearisierung 
durchführe. Das ganze funktioniert auch relativ gut - der 
Linearitätsfehler geht unter 0,03% (ohne Temperaturdrift).

Für den gesamten Messbereich ist das absolut in Ordnung, jetzt will ich 
aber noch den Bereich skalieren können, sprich von einer 1bar-Zelle z.B. 
nur 0-100mbar auf die 4-20mA abbilden.

Hierzu wird intern im Controller eine Verstärkung errechnet.

Vorgehensweise ist folgende:

Ich habe die 5 AD-Werte für 0%, ..., 100% - es wird jetzt ein Messwert 
aufgenommen und mittels der Spline-Interpolation der "richtige" 
Prozentwert errechnet. Auf Basis dieses Prozentwertes werden alle 
folgenden Berechnungen gemacht, also z.B. Ausgabe auf dem Display dann 
53,76% von 1000mbar = 537,6mbar.

Ebenso wird der Ausgangsstrom mit diesem Prozentwert generiert - ich 
habe einen DAC, bei dem vorher der Anfangswert und der Endwert 
kalibriert wurden und der dann halt durch 53,76% von der "Bit-Spanne" + 
Anfangswert seinen Wert zur Ausgabe erhält.

Das Problem ist jetzt die Ungenauigkeit beim runterskalieren, da kommt 
doch eine recht "wackelige" Kurve heraus. Hier wird

Als Beispiel: Ich habe alles auf 100mbar eingestellt und einen 
gemessenen Prozentwert von 7,6% (76mbar), dann ergibt sich:

Diese 76% gebe ich also an den DAC, der daraus die 4-20mA erzeugt. 
Leider ist der Fehler, der hier durch die Rechnung entsteht auch relativ 
groß, bzw. wird der Fehler halt auch um den Faktor 10 verstärkt, was 
auch hinkommt im Vergleich.

Gibt es daher ein Punkt an dem ich ansetzen kann, wodurch ich das ganze 
verbessern könnte?

Bin um jeden Tip dankbar.

von &KUNZderkann'z (Gast)


Lesenswert?

Der Nichtsahnende moechte 0,01% Fehler von 0 bis 1000 ....
und dann noch eine Lupe fuer noch genauere Werte .

Konzentriere dich doch nur auf den kleinen Bereich !

Hier sagt man: wer zu viel will kann nicht alles mit einer Hand halten.

von Hans (Gast)


Lesenswert?

&KUNZderkann'z schrieb:
> Der Nichtsahnende moechte 0,01% Fehler von 0 bis 1000 ....

Nein, möchte er nicht ;-)

Es kann ja nur sein, dass es Methoden gibt, die den Ausgang ggf. 
verbessern können.

&KUNZderkann'z schrieb:
> Konzentriere dich doch nur auf den kleinen Bereich !

Der große Bereich ist wichtiger, nur wäre es natürlich schön, wenn der 
kleine ein wenig besser sein könnte...:\

von Dieter W. (dds5)


Lesenswert?

Da hilft nur eine höhere Auflösung bei der Digitalisierung des 
Eingangssignals und dazu passende Auflösung der berechneten 
Zwischenergebnisse.

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.