Poti-Wert ohne Tabelle linearisieren

Gast #4081859
Lesenswert?

Machen wir's mal ganz einfach:
auf einer Skala von 0..100% soll die Stellung des Schleifkontakts eines 
Schiebepotis abgebildet werden. Der Poti wird über eine AD-Wandler 
eingelesen.
Dummerweise fängt der Poti aber nicht bei 0 an und hört bei 10 kOhm auf 
sondern beginnt bei 130 Ohm ("Offset") und endet bei 9620 Ohm.

Einfache Proportionalisierung minus Offset geht nicht, ich habe schon 
mehrere Varianten probiert, da kam stets Nonsens raus. Wie kann ich 
diesen unlinearen Zusammenhang ohne Tabelle lösen? Ist da eine 
mathematische Folge in der Art 1/x + 1/x^2 + 1/x^3 drin versteckt?
#4081862
Lesenswert?

ist es ein linear Poti ?

-> halber Weg, halbe Ohm?

dann Geradengleichung Y = m * X + b

klappt ganz gut bei fast jeder AD - Wandlung, sprich Spannungsmessung

Georg Simon Ohm schrieb:
> Einfache Proportionalisierung minus Offset geht nicht, ich habe schon
> mehrere Varianten probiert, da kam stets Nonsens raus.

also nicht, dann wirds ein log. Poti sein (pos. oder neg.)

wenn du keine Tabelle willst musst du halt mit dem Log. rechnen 
(Math.LIB, + floating Point) auf AVR möglicherweise Speicher fressend, 
aber über den Prozzi schweigst du ja.

Evtl. geht Teilstücke zu linearisieren in bekannten Fehlergrenzen

wenn A-B
Geradengleichung Y = m1 * X + b1
wenn C-D
Geradengleichung Y = m2 * X + b2

usw.
Gast #4081863
Lesenswert?

Das Poti hat einfach eine elektrische Mittelstellung bei R/2. Du 
definierst diese elektrische Mittelstellung einfach auch als mechanische 
Mittelstellung und bist fertig.

Klar ist, dass mechanischer Anfang und Ende, das sind die Stellen, an 
welchen der Schleifer blockiert, nicht mit elektischem Anfang und Ende 
übereinstimmen.
Gast #4081885
Lesenswert?

Das Poti ist linear.

Diese y= mx+b Geschichte habe ich als erstes aufgegriffen und eine 
Stunde lang in unterschiedlichen Kombinationen untersucht - es kamen 
aber immer starke Verfälschungen an den Skalenenden raus.

Machen wir's mal etwas einfacher:
1
Potiwert : 10..200 Ohm, linearisiert auf 0..100%
2

3
Meßendwert = 200 Ohm
4
Skalenendwert = 100%
5
Offset = 10 Ohm
6

7
Skalierungsfaktor = (Meßendwert - Offset) / Skalenendwert = (200-10) / 100 = 0.5263
8

9
0.5263 * 10 Ohm = 0 = 0%  |ok
10
0.5263 *200 Ohm =  105.26%  |Schrott

Ich könnte das Ganze natürlich in viele kleine Intervalle aufteilen bis 
der Fehler nicht mehr auffällt... - aber gibt's an der Stelle nix 
eleganteres?
Gast #4081898
Lesenswert?

>Du darfst dann natürlich nur *190 rechnen
Das ist ja das was ich meine. Mit vielen Intervallen geht das. Aber 
wollen wir das wirklich? Deswegen meine Eingangsfrage: Kann man das 
Problem mit einer geometrischen Folge erschlagen? Im grunde genommen ist 
das ein Problem das sehr oft auftritt, beispielsweise bei 
berührungsempfindlichen Grafik-Panels - dort muß pixelgenau der 
Widerstandswert der resistiven Folie für den Stift (Stylus) zugewiesen 
werden. Und jede Folie ist ein bissel anders...
#4081920
Lesenswert?

Georg Simon Ohm schrieb:
> auf einer Skala von 0..100% soll die Stellung des Schleifkontakts eines
> Schiebepotis abgebildet werden. Der Poti wird über eine AD-Wandler
> eingelesen.

DAS Potentiometer. DER AD-Wandler.

Und was soll "eingelesen" heißen? Normal würde man die beiden Enden des 
Potis an GND und U_ref legen und den Schleifer an den ADC-Eingang. U_ref 
kann dabei auch die Betriebsspannung sein (vorausgesetzt der ADC kann 
die Betriebsspannung als Referenz verwenden). Eventuell noch ein 
RC-Filter zwischen Schleifer und ADC gegen Rauschen/Einstreuungen.

Dann bekommt man für ein ideales Potentiometer und einen idealen ADC den 
Wert 0 für das untere Ende des Potis und den Wert ADC_max (also z.B. 255 
bei einem 8-Bit ADC) für das "obere" Ende.

> Dummerweise fängt der Poti aber nicht bei 0 an und hört bei 10 kOhm auf
> sondern beginnt bei 130 Ohm ("Offset") und endet bei 9620 Ohm.

Ja. Und?

> Einfache Proportionalisierung minus Offset geht nicht, ich habe schon
> mehrere Varianten probiert, da kam stets Nonsens raus.

Das liegt dann aber nicht am Verfahren, sondern daran daß du es falsch 
verwendest.

Nemen wir einfach an, daß dein ADC den Wert MIN für das "untere" Ende 
des Potis liefert und den Wert MAX für das "obere" Ende. Oder anders 
ausgedrückt: MIN ~= 0% und MAX ~= 100%. Für alle Zwischenwerte X ergibt 
sich dann ein linearer Zusammenhang:

PROZENT = (X-MIN)/(MAX-MIN)*100
#4082053
Lesenswert?

Axel Schwenke schrieb:
> Das liegt dann aber nicht am Verfahren, sondern daran daß du es falsch
> verwendest.

offensichtlich :-)

für die Steigung m gilt dY/dX

also
Messwert 1 Schleifer unten (0% Schiebeweg oder Ohm) = y1 (Spannung) vom 
Schleifer nach unten (GND?) messen
Messwert 2 Schleifer oben (100% Schiebeweg oder Ohm) = y2 (Spannung) 
Schleifer nach unten (GND?) messen

das bildet dir
x1 als ADC y1 (digital Wert) ab
x2 als ADC y2 (digital Wert) ab

dann hast du m = (y2-y1) / (x2-x1)

nun kannst du x und m einsetzen und b ermitteln, sollte für jeden Fall 
gleich eine Konstante sein + Messfehler

bei mir immer genügend genau (gutes Messgerät vorausgesetzt), oft besser 
als der ADC für b1 und b2 -> Abweichung b1 zu b2 deutlich unter 1%

8-bit dac rechnerisch 0,4% (1/256)
10-bit dac rechnerisch 0,1% (1/1024)
Gast #4082090
Lesenswert?

Jeder 4 Euro Schultaschenrechner kann mittlerweile
lineare Regression.

Einfach bei Nullanschlag und Endanschlag des Potis
die Ist- und die WunschWerte eintippen.

Und den Taschenrechner den Rest machen lassen...
Gast #4082184
Lesenswert?

Joachim B. schrieb:
> kann das einer mal übersetzen?
>
> wie soll das gehen ohne Tabelle für andere Werte bei log. Potis?

Kollege, ein linearer Zusammenhang zwischen Weg und Widerstand existiert 
nur bei linearen Potis.

Was gibt's da groß zu übersetzten? Ist doch ganz einfach, ich habe das 
Verfahren beschrieben, welches für potentiometrische Wegsensoren benutzt 
wird. Das trifft das Problemchen ganz gut. Wahrscheinlich bist du 
übertrainiert :-)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren