Stap 7: Laden weerstand niet lineariteit berekeningen
Gewoon om te bewijzen dat wiskunde leuk daadwerkelijk kan zal ik je vertellen dat hoe ik ontdekte de niet-lineariteit aanpassing formule door middel van diagrammen.
Aanvankelijk heb ik niet heb uiteengezet om te ontdekken de formule - mij uitsluitend wilden voor het visualiseren van de niet-lineariteit gemaakt door de weerstand van de belasting (ook bekend als een 'pull-down' resistor). Ik wilde proberen en isoleren van de kromme en de plot als een grafiek in Microsoft excel.
In de eerste plaats ik uitgezet de werkelijke curve, die de totale is weerstand gemaakt door de combinatie van de windvaan en de belasting... en ik noemde het 'Total (RT)'. Ik was in eerste instantie teleurgesteld als ik niet werkelijk ieder zien kon kromme helemaal niet, dus dan mij gewijzigde naar de beide assen voor log10. Hey presto! Ik kan zien een kromme! (De blauwe curve aan de linkerkant in het bovenstaande diagram).
De totale weerstand wordt gegeven door deze formule:
RT = (Rw * R L ) / (Rw + RL)
- waar:
- RT is de totale weerstand
- RW is de weerstand van de Wisser
- RL is de weerstand van de belasting
OK, zover zodoende zoet - niet te ingewikkeld?
Volgende, ik wilde zien hoe mijn mooie nieuwe curve keek naast een saaie rechte lineaire curve, net alsof de resultaten waren niet helemaal eigenlijk een curve, maar een rechte lijn. De formule hiervoor is:
RLIN = (Rw * RTMAX) / RWMAX
- waar:
- RLIN is de hypothetische lineaire weerstand (de 'imaginaire' weerstand)
- RW is de weerstand van de Wisser
- RTMAX is de maximale waarde van de totale weerstand
- RWMAX is de maximumwaarde van het verzet van de Wisser
Dit is allemaal goed en wel, maar waar gaan we de waarde van de totale weerstand uit te halen? Ik echt hoewel dit was gonna be gemakkelijker dan dit, maar toen realiseerde me dat we al deze bovenstaande waarde hebt berekend, is het gewoon de maximale waarde van RT . Maar gewoon voor de verduidelijking, hier is de formule:
RTMAX = (RWMAX * R L ) / (RWMAX + RL)
- Dus, nu, als we uit RTMAX vervangen krijgen we:
RLIN = (RW * RTMAX) / RWMAX = (RW / RWMAX) * (RWMAX * RL) / (RWMAX + RL) = (RW * RL) / (RWMAX + RL)
Nu we kunnen onze lineaire 'curve' (in rood uitzetten) en zien of het merkbaar anders dan de bochtige curve is... en ja... zolang we bedriegen met behulp van de log10, kunnen wij het verschil zien. Als we het openen van het excel-bestand, kunnen we de waarde van de lading weerstand omzetten in iets dom klein en krijgen sommige behoorlijk gek bochten geproduceerd.
Tenslotte, realiseerde ik me dat we konden dan aftrekken van de niet-lineaire curve van de lineaire curve en krijg een eindresultaat: het werkelijke niet-lineariteit, of het 'verschil' tussen de lineaire en niet lineaire resultaten. Dit is de mooie blus-curve aan de rechterkant en wordt gegeven door:
RDIFF = RT - RLIN = (RW * RL) / (RW + RL) - (RW * RL) / (RWMAX + RL)
Deze vergelijking kan verder worden verminderd, maar de arduino nano is al gaan naar strijd met enkele van de grote getallen geproduceerd, dus we moeten helpen het langs een beetje.
De formule wordt uiteindelijk vertaald arduino code:
U ziet dat de code meer 'onhandig' dan de formule is en ik heb gehad om te delen door 5 om de grootte van een aantal van de nummers. Maar het werkt!
Hopelijk, ik heb nu ook bleek niet dat alleen dat wiskunde leuk maar ook relevant zijn voor de echte wereld kan worden! Maar wat al dit werk eigenlijk bereiken?
Als we niet van eerder vergeten, de aanbevolen minimale last weerstand was 100K, maar als we deze Ohm verminderen kunnen we de lezingen aanzienlijk stabieler in de buurt van de dode zone. Ik probeerde veel verschillende permutaties en, met behulp van de bovenstaande formule te ontkennen van de niet-lineariteit, uiteindelijk heb ik met behulp van een super nauwkeurige (+ - 0,1%) 30K Ohm weerstand en heb nog steeds goede lezingen op vervaldatums Zuid.