Ekvationslösning för att finna resistans

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Användarvisningsbild
mrfrenzy
Co Admin
Inlägg: 14850
Blev medlem: 16 april 2006, 17:04:10

Ekvationslösning för att finna resistans

Inlägg av mrfrenzy »

Jag har en tempgivare X ansluten med tre ledare som alla har samma (okända) resistans Y.
Min mikrokontroller har två ADC som mäter spänning Ua och Ub.
Empiriskt kan jag simulera och räkna fram ungefär hur jag ska multiplicera dessa spänningar för att få fram X, men skulle gärna vilja ha hjälp att lösa ut en formel för det:
circuit-20211010-1353.png
Är det någon som kan komma med lite tips?
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
ghu
Inlägg: 588
Blev medlem: 6 juni 2010, 14:28:18

Re: Ekvationslösning för att finna resistans

Inlägg av ghu »

Det blir en del algebra. Enklast är nog s k nodanalys, d v s använd kirschoffs strömlag i alla noder (knutpunkter).

NODANALYS
Beräkningsjorda ledaren längst ner i figuren
Sätt potentialen i noden där resistanser Y, Y och X är sammankopplade till Uc.

Nodanalys ger följande 2 ekvationer:
1. (5-Ua)/3,9k = Ua/36k +(Ua-Uc)/Y

2. (Ua-Uc)/Y = Uc/(Y+36k) + Uc/(X+Y)

Spänningsdelning ger:

3. Ub =Uc *36k/(36k+Y)

Det är alltså 3 ekvationer och 3 obekanta X, Y och Uc. Kan alltså lösas.

Förslag till lösning:
Lös ur Uc ur ekvation 3 och sätt in i ekvation 1. Då kan du lösa ut Y ur den erhållna ekvationen.
Därefter kan X lösas ur ekvation 2.
Användarvisningsbild
mrfrenzy
Co Admin
Inlägg: 14850
Blev medlem: 16 april 2006, 17:04:10

Re: Ekvationslösning för att finna resistans

Inlägg av mrfrenzy »

Tack för inriktningen, jag försökte först få till det med bara två ekvationer men det går ju inte.

Oavsett detta så blir det mer komplicerat än jag hade hoppats på, antagligen har jag gjort fel någonstans...
Till att börja med så bytte jag namn på spänningarna till a, b, c för att förenkla, och 3,9k motståndet ändrades till 3,6k.
circuit-20211010-1827.png
Nodanalys ger följande 2 ekvationer:
1. (5-a)/3600 = a/36000 +(a-c)/Y

2. (a-c)/Y = c/(Y+36000) + c/(X+Y)

Spänningsdelning ger:

3. b = c * 36000/(36000+Y)

Lös ut c ur ekvation 3:
b = c * 36000/(36000+Y)
c=b(36000+Y)/36000

Sätt in c i ekvation 1:
(5-a)/3600 = a/36000 +(a-c)/Y
(5-a)/3600 = a/36000 +(a-b(36000+Y)/36000)/Y

Lös ut Y ur nya ekvation 1:
(5-a)/3600 = a/36000 +(a-b(36000+Y)/36000)/Y
Y=(36000a-36000b)/(-11a+b+50)

Sätt in c i ekvation 2:
(a-c)/Y = c/(Y+36000) + c/(X+Y)
(a-b(36000+Y)/36000)/Y = (b(36000+Y)/36000)/(Y+36000) + (b(36000+Y)/36000)/(X+Y)

Sätt in Y i nya ekvation 2:
(a-b(36000+(36000a-36000b)/(-11a+b+50))/36000)/((36000a-36000b)/(-11a+b+50)) = (b(36000+(36000a-36000b)/(-11a+b+50))/36000)/((36000a-36000b)/(-11a+b+50)+36000) + (b(36000+(36000a-36000b)/(-11a+b+50))/36000)/(X+(36000a-36000b)/(-11a+b+50))

Nu börjar det bli alldeles för många termer för att jag ska ha en chans att försöka lösa ut X, så jag fuskar och tar hjälp av symbolab.com
Det hittar visserligen en lösning men det är absurt många termer:
\(X=\frac{43560000a^5-126720000a^4b-613800000a^4+86400000a^3b^2+1803600000a^3b+2880000000a^3-2880000a^2b^3-1224000000a^2b^2-8550000000a^2b-4500000000a^2-360000ab^4+32400000ab^3+5760000000ab^2+13500000000ab+1800000b^4-90000000b^3-9000000000b^2}{10\left(-11a+b+50\right)\left(a^2b^2-8000a^2+1705a^3-121a^4+5b^3-ab^3+12500a-12500b-1705a^2b+121a^3b-5ab^2+8000ab\right)}\)

Det är så många termer så det är nästan omöjligt att räkna manuellt utan att göra fel för att se om det stämmer...
Har jag gjort fel, eller är detta "enklaste" lösningen? Kan man förenkla genom att inte kräva ett exakt svar utan nöja sig med två decimaler?
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
ghu
Inlägg: 588
Blev medlem: 6 juni 2010, 14:28:18

Re: Ekvationslösning för att finna resistans

Inlägg av ghu »

Jag varnade för att det blir en del algebra.
Det blir jättestora uttryck om du försöker skriva X som en funktion av Ua och Ub.

Det blir betydligt enklare om du först beräknar Y som en funktion av Ua och Ub
och sedan beräknar X som funktion av Ua, Ub och Y.
Användarvisningsbild
mrfrenzy
Co Admin
Inlägg: 14850
Blev medlem: 16 april 2006, 17:04:10

Re: Ekvationslösning för att finna resistans

Inlägg av mrfrenzy »

Japp ser helt klart att det blir massor av algebra :)

Absolut kan man ha det som två formler och två steg men jag lyckas inte lösa ut X som en funktion av a, b, Y.
Menar du att jag ska göra det en gång med känt Y och skriva ner alla steg, sedan låta mikroprocessorn göra alla stegen varje gång mätningen har gjorts?

Edit: jag kan ju bortse från ekvationerna och skriva en ny formel baserat på schemat som utgår från att Y är känd, provar detta nu.
Edit2: Jag får inte till det. Om jag applicerar Kirchoffs lag och försöker räkna ut X så slutar det ju bara med att jag skriver ut samma ekvation du började med.
ghu
Inlägg: 588
Blev medlem: 6 juni 2010, 14:28:18

Re: Ekvationslösning för att finna resistans

Inlägg av ghu »

Man kan ju förenkla innan man börja räkna.
Hur stor är resistansen Y ungefär?
Om den är extremt mycket mindre än 36 kohm kan man ju försumma spänningdelningen och man behöver inte införa den obekanta potentialen Uc och det blir bara 2 ekvationer och 2 obekanta.

Ett annat sätt att bara få 2 ekvationer och 2 obekanta är att före mätning av Ub sätta in en Op kopplad som spänningsföljare mellan Y och 36 kohm.
Senast redigerad av ghu 10 oktober 2021, 21:47:03, redigerad totalt 1 gång.
Användarvisningsbild
mrfrenzy
Co Admin
Inlägg: 14850
Blev medlem: 16 april 2006, 17:04:10

Re: Ekvationslösning för att finna resistans

Inlägg av mrfrenzy »

Y är 0-10 Ohm, vi behöver inte veta vad Y är i verkligheten (fast det var ju uppenbarligen den enkla biten).
X är 90-200 Ohm, önskar bestämma X med två decimaler.

Har ingen möjlighet att sätta in någon operationsförstärkare, då hade det hela blivit mycket enklare och man hade sluppit avancerad algebra.
ghu
Inlägg: 588
Blev medlem: 6 juni 2010, 14:28:18

Re: Ekvationslösning för att finna resistans

Inlägg av ghu »

Om Y är max 10 ohm så borde man kunna försumma spänningsdelningen mellan Y och 36 kohm och bara få 2 ekvationer med 2 obekanta. D v s byt ut Uc mot Ub i ekvationerna 1 och 2. Strunta i ekvation 3
Användarvisningsbild
mrfrenzy
Co Admin
Inlägg: 14850
Blev medlem: 16 april 2006, 17:04:10

Re: Ekvationslösning för att finna resistans

Inlägg av mrfrenzy »

Även om man gör så och skippar c blir det en lång formel med väldigt stora tal i slutändan:
\(X=\frac{1188000ab^2-5400000b^2+7128000a^2b-72000000ab+180000000b-3960000a^3+37800000a^2-90000000a}{2\left(62500+8525a^2-605a^3-2500b-40000a-121a^2b+1100ab\right)}\)

Jag provar att göra lite curve fitting.

Följande enkla formel ger X ifrån b när Y=0:
X = 0.3016439 + 714.9197*b + 199.3765*b^2
Om Y=1 gäller följande:
X = -0.693086 + 715.1008*b + 199.6127*b^2
Om Y=5 gäller följande:
X = -4.664814 + 715.7605*b + 200.6567*b^2
Om Y=10 gäller följande:
X = -9.630866 + 716.6124*b + 201.8735*b^2

Första parametern kan vi kalla e, den passar följande kurva:
e = -0.9931827*Y + 0.3009503
Andra parametern kan vi kalla f, den passar följande kurva:
f = 714.9197 + 0.1862556*Y - 0.005539667*Y^2 + 0.0003841111*Y^3
Tredje parametern kan vi kalla g, den passar följande kurva:
g = 199.3765 + 0.22778*Y + 0.009112*Y^2 - 0.000692*Y^3

Då blir alltså:
X = e + f*b + g*b^2

Detta blir ju ganska många steg:
Först räkna ut Y från a och b
Sedan räkna ut e, f och g från Y
Slutligen beräkna X från b med konstanterna e, f, g
Användarvisningsbild
mrfrenzy
Co Admin
Inlägg: 14850
Blev medlem: 16 april 2006, 17:04:10

Re: Ekvationslösning för att finna resistans

Inlägg av mrfrenzy »

Jag hittade ett intressant program som heter GraphPad Prism, det gick att ladda ner i testversion.
Enligt instruktionerna här kan man göra curve fitting med två oberoende ingångsvariabler: https://www.graphpad.com/guides/prism/l ... wo_or_.htm

Jag använde metoden med diagonala värden i tabellen och följande ekvation för att köra analysen:
Y=B0 + B1*X + B2*X^2 + B3*X^3 + B4*a + B5*a^2 + B6*a^3

I resultatet blir formeln såhär:
\(X=0,1608 + 1437*b + 185,7*b^2 -18,81*b^3 -719,6*a + 0,2863*a^2 + 41,98*a^3\)


Resultat: värdet på X (90-200) stämmer för alla värden på Y (0-10) med ett största fel på +0,006 Ohm.
ghu
Inlägg: 588
Blev medlem: 6 juni 2010, 14:28:18

Re: Ekvationslösning för att finna resistans

Inlägg av ghu »

Det känns ju onödigt bra med 0,006 ohms fel.
Har du provat med gradtal 2?
Haralt
Inlägg: 2473
Blev medlem: 15 november 2016, 00:19:11

Re: Ekvationslösning för att finna resistans

Inlägg av Haralt »

När man ska börja teckna ekvationerna kan det vara olämpligt att ha samma beteckningen "Y" för flera olika motstånd som sitter på olika ställen.
De har ju olika funktion även om de i detta fallet råkar ha samma Ohm-värde.
Det är nog bättre att kalla dem RY1, RY2 och RY3 eller liknande.

Motstånden med kända värden, kan man kalla R1, R2 och R3. Då slipper man hantera siffervärden vid utbrytningar och omskrivning av ekvationer.
Användarvisningsbild
mrfrenzy
Co Admin
Inlägg: 14850
Blev medlem: 16 april 2006, 17:04:10

Re: Ekvationslösning för att finna resistans

Inlägg av mrfrenzy »

Tredje graden var mycket riktigt onödigt bra.
Andra graden ger ett fel på 0,08 Ohm vilket är en magnitud bättre än upplösningen på ADC.

(Nu också ändrat till 1k pullup för att få bättre upplösning)
\(X = 3,351+391,3*b+55,75*b^2-207,4*a+10,06*a^2\)

Haralt: tretrådsmätningen av PT100 bygger just på att alla "Y" är identiska, det är tre stycken lika långa ledare av samma material och med samma typ av skarvar.
Ser inte vad man skulle vinna på att dela upp dessa, då blir ekvationen bara svårare att förenkla.
Skriv svar