Motståndsoptimerare
- HUGGBÄVERN
- Tidigare soundbrigade
- Inlägg: 34903
- Blev medlem: 23 augusti 2006, 22:44:11
- Ort: Lilla Paris
- Kontakt:
Hej.
Det var en rolig tråd det här.
Måste redan från början säja att jag inte har kollat på några länkar, så om jag slår in redan öppna dörrar må det vara hänt.
Jag skrev en gång för många år sedan ett BASIC program till min gamla hemdator (C 128) som tog fram lämpliga motståndsvärden att parallellkoppla för att komma så nära ett sökt värde som möjligt.
Tänkte beskriva programmet som en sorts pseudokod som inspiration för någon intresserad.
Programmet använde en kombination av en smart rutin och broat fors. Det vill säga testning av ett begränsat antal kombinationer.
Några definitioner:
* En tabell med alla motståndsvärden i en dekad. (1 till 10) Och en tillhörande metod att ta fram ett godtyckligt motståndsvärde ur godtycklig dekad. (Även under 1 ohm)
* Rx är det önskade eller resulterande värdet på parallellkombinationen.
* R1 och R2 är de framtagna förslagen till motståndsvärden.
* Programmet behöver plats för en lista där det kan lagra de fem bästa alternativen. Listan ska innehålla R1, R2, resulterande Rx med den kombinationen och den absoluta avvikelsen från det önskade Rxet, både som ohm och %.
Start...
# Programmet ber användaren ange önskar Rx värde.
# Programmet räknar ut en startpunkt, utifrån att man kan parallellkoppla två lika stora motstånd som är 2*Rx. Och sätter R1 till närmsta högre värde ur motståndstabellen.
# - Nu kommer en loop.
# Programmet räknar ut vad R2 borde vara med utgång från valt R1.
# Programmet tar närmsta högre motståndsvärde ur tabellen och testar som R2.
# Programmet jämför och sorterar in resultatet i listan över de fem bästa alternativen.
# Programmet tar närmsta lägre motståndsvärde ur tabellen och testar som R2.
# Programmet jämför och sorterar in resultatet i listan över de fem bästa alternativen.
# R1 stegas ned ett steg i listan med motståndsvärden.
# Programmet går ut ur loopen när R1 är < önskat Rx.
# - Här slutar/upprepas loopen.
# Programmet presenterar listan med de fem bästa alternativen.
Slut
Vid alla tester jag gjorde med programmet var alltid alla fem resultaten närmre det önskade värdet än toleransen på de ingående motstånden. Under förutsättning att rätt E-serie användes. Och snabbt gick det. Åtminstone för att vara en dator med klockfrekvens på 1MHz.
Det var en rolig tråd det här.
Måste redan från början säja att jag inte har kollat på några länkar, så om jag slår in redan öppna dörrar må det vara hänt.
Jag skrev en gång för många år sedan ett BASIC program till min gamla hemdator (C 128) som tog fram lämpliga motståndsvärden att parallellkoppla för att komma så nära ett sökt värde som möjligt.
Tänkte beskriva programmet som en sorts pseudokod som inspiration för någon intresserad.
Programmet använde en kombination av en smart rutin och broat fors. Det vill säga testning av ett begränsat antal kombinationer.
Några definitioner:
* En tabell med alla motståndsvärden i en dekad. (1 till 10) Och en tillhörande metod att ta fram ett godtyckligt motståndsvärde ur godtycklig dekad. (Även under 1 ohm)
* Rx är det önskade eller resulterande värdet på parallellkombinationen.
* R1 och R2 är de framtagna förslagen till motståndsvärden.
* Programmet behöver plats för en lista där det kan lagra de fem bästa alternativen. Listan ska innehålla R1, R2, resulterande Rx med den kombinationen och den absoluta avvikelsen från det önskade Rxet, både som ohm och %.
Start...
# Programmet ber användaren ange önskar Rx värde.
# Programmet räknar ut en startpunkt, utifrån att man kan parallellkoppla två lika stora motstånd som är 2*Rx. Och sätter R1 till närmsta högre värde ur motståndstabellen.
# - Nu kommer en loop.
# Programmet räknar ut vad R2 borde vara med utgång från valt R1.
# Programmet tar närmsta högre motståndsvärde ur tabellen och testar som R2.
# Programmet jämför och sorterar in resultatet i listan över de fem bästa alternativen.
# Programmet tar närmsta lägre motståndsvärde ur tabellen och testar som R2.
# Programmet jämför och sorterar in resultatet i listan över de fem bästa alternativen.
# R1 stegas ned ett steg i listan med motståndsvärden.
# Programmet går ut ur loopen när R1 är < önskat Rx.
# - Här slutar/upprepas loopen.
# Programmet presenterar listan med de fem bästa alternativen.
Slut
Vid alla tester jag gjorde med programmet var alltid alla fem resultaten närmre det önskade värdet än toleransen på de ingående motstånden. Under förutsättning att rätt E-serie användes. Och snabbt gick det. Åtminstone för att vara en dator med klockfrekvens på 1MHz.

Jag funderade från början på om man skulle göra nån "smart" algoritm eller så men jag kom fram till att bara våldsamt testa alla kombinationer av två och tre motstånd och det fungerade bra. Det blir inte så jättemånga kombinationer ändå. Sen satt man en dag och försökte komma på hur fan man gjorde gui i java, det var några år sen 

- HUGGBÄVERN
- Tidigare soundbrigade
- Inlägg: 34903
- Blev medlem: 23 augusti 2006, 22:44:11
- Ort: Lilla Paris
- Kontakt: