Colpitts oscillator in LTSpice

hennep

Golden Member

Ik merk een afwijking op in LTSPice wanneer ik een Colpitts oscillator probeer samen te stellen.

Het plan is om een meetapparaatje te maken waarmee ik ringkernen kan testen. Het bereik zal dan waarschijnlijk tussen de 10nH en 1uH liggen voor een enkele wikkeling door een kern. Ik wil met een microcontroller de frequentie meten en dan een waarde op een lcd display zetten. De nauwkeurigheid is niet echt belangrijk, het gaat om een idee te krijgen van de eigenschappen van de kern.

De schakeling is te zien in de bijgevoegde plaatjes. Bij het narekenen liep ik tegen verschillen aan en daarom kan ik nog niet aan het programma beginnen.

Wat me opviel is een verschil tussen de getoonde frequentie in LTSpice en de berekening van de website:
https://www.petervis.com/Education/colpitts-oscillator/colpi...lator.html

Als ik de berekening van die website vergelijk met https://www.fxsolver.com/solve/ dan komen de websites overeen.

Wat is er mis?
Zit er een fout in LTSpice of doe ik zelf iets verkeerd?

Als ik de frequentie en spoel uit LTSpice invoer op de website, dan krijg ik de onderstaande capaciteiten te zien:

frequentie 248.81445 kHz
spoel 0.00100066 H
berekend 2x 0.818 nF

frequentie 8.0132463 MHz
spoel 0.00000076 H
berekend 2x 1.038 nF

Toch heb ik 2x 1 nF gebruikt in de simulatie!

Ha hennep,

Ik denk niet dat er een fout in LTspice zit dat is bijna niet mogelijk.
Eigenlijk zijn de berekeningen heel simpel in de netwerk theorie.
Waar het verschil in zit is dat er ten opzichte van de LC kring in het ene programma er in de simulator veelmeer aan je kring hangt.
Dit veroorzaakt verstemming van de resonantie frequenties ofwel andere waarden om op jou gekozen resonantie frequentie uit te komen.

Ik moet er dan nog wel aan toevoegen dat LTspice met bijna ideale componenten rekent.
Er zal dus zeker in RF verschil zijn tussen de theorie en de praktijk door nu zelf je macro modellen te ontwikkelen van componenten die je veel gebruikt kom je dichter op de praktijk.

Verder wil je van 10 nH tot 1 µH meten dat is 1:100 met een condensator waarde dat is wel heel veel gevraagd :o
En de eigenschappen van je ringkern blijven nog verborgen.

Groet,
Henk.

Everything should be as simple as possible, but not simpler.
PE9SMS

Special Member

Je bepaalt de frequentie nu grafisch, maar dat kan ook zo:

code:

.meas tran T1 find time when V(out)=0 rise 50
.meas tran T2 find time when V(out)=0 rise 60
.meas tran Frequency param 10/(T2-T1)

Zo bepaalt LTspice de tijd tussen de 50e en 60e nuldoorgang en berekent daaruit de frequentie. Het resultaat vind je in de spice error log (menu -> view -> spice error log).

De simulatie zelf kan ook nauwkeuriger:

code:

.tran 0 400u 0 100p startup
.options plotwinsize=0 numdgt=8 measdgt=8

Zie de help voor de betekenis hiervan :)
Je gebruikt wel een oude versie, ik weet niet of bovenstaande daarin al mogelijk is.

This signature is intentionally left blank.
hennep

Golden Member

@Henk
Als ik alles vanaf C4 los koppel dan heb ik toch echt het hoogst noodzakelijke.
Met de methode van PE9SMS heb ik nu de frequentie bepaald: 8630914.2 Hz (voor 661nH en 2x 1nF)
Met een spoel van 661nH vind petervis nog steeds dat er 2 C-tjes van 1.029 nF in horen te zitten

t1: time=2.1904137e-005 at 2.1904137e-005
t2: time=2.3062762e-005 at 2.3062762e-005
frequency: 10/(t2-t1)=8630914.2

Door de tank gaat nu een wisselstroom van 164mA, de basisstroom wisselt tussen -5.4 en +2.6 mA
Zou het aftappen van die basisstroom de afwijking veroorzaken?

@PE9SMS

Als ik over een langere periode meet dan wordt het nog wat beter:
t1: time=7.3737034e-005 at 7.3737034e-005
t2: time=8.5238568e-005 at 8.5238568e-005
frequency: 100/(t2-t1)=8694492.4

1.014 nF volgens petervis.

Opgebouwd met componenten en hun toleranties zou het een mooi resultaat zijn maar...
Ik had verwacht dat in zo'n theoretisch model de uitkomst dichter bij de 1nF zou liggen

PE9SMS

Special Member

En als je er eens een BF199 in zet? En C6 verlaagd?

This signature is intentionally left blank.

Die rekensite houdt geen rekening met wat er aan de kring hangt.

In het voorbeeld van 8 MHz is het eenvoudig te zien wat er aan de hand is: over de rechter 1nF-condensator hangt ook nog de serieschakeling van 470 pF, 100 ohm en de ingang van de transistor. Als die tak samen eruitziet als ca. 50 pF, klopt je frequentie al.

In andere voorbeeld, van 250 kHz, ligt de zaak iets gecompliceerder.
Op deze lage frequentie is de stroomversterking van de transistor niet alleen hoog, hij heeft ook alle tijd om te schakelen en doet dat ook.
De transistor belast de kring heel erg zwaar, en knipt steeds de sinus naar nul vóórdat die sinus afgelopen is. Kijk maar naar de collectorspanning: de spanning over C1 wordt steeds kortgesloten.

De periode duurt daardoor veel korter dan als je alleen van de kring zou uitgaan.

Bij zulke lage frequenties zou je normaal veel grotere condensatoren gebruiken, en ook het actieve element minder 'zwaar' aan de kring koppelen.

Keramisch, kalibratie, parasitair: woordenlijst.org

Ha hennep,

Helder dat je een en ander los gekoppeld heb en de simulatie opnieuw heb uitgevoerd maar.... het komt soms voor dat als je componenten op de sheet laat staan het fout gaat zonder het programma opnieuw te laden :(
Ik ken LTspice niet zo goed is voor mij niet zo handig modellen kloppen niet van derden.
Ik denk toch dat zoals ik al schreef het de belasting op de kring is buiten het feit dat het een slecht ontwerp is en je zo niet (zinvol) spoelen kan testen plus je heb minstens 3 condensatoren (bereik) nodig.
Probeer eens een simpele LC kring om te vergelijken.

Groet,
Henk.

Everything should be as simple as possible, but not simpler.

het plaatje van FET toont een oscillator met een rondgaande versterking veel groter dan 1. de transistor gaat dan clippen. Een colpitts wordt zo gedimensioneerd dat de rondgaande versterking iets groter is dan een voor het starten en eens in bedrijf door werkpuntsverschuiving van de tor op één uitkomt, anders krijg je vervorming en frequentieverandering.

probleem bij TS is dat rondgaande versterking veranderd als de spoel een andere waarde krijgt.
Een mogelijke oplossing is de sinus gelijkrichten (negatief) en daarmee de bias van de transistor regelen tot versterking één. een regellus dus, zoals bij de wienbrugoscillator gebruikelijk is.

hennep

Golden Member

Ik heb ondertussen in de simulator een schema dat de kring veel minder belast. Die BF199 is ook veel beter geschikt dan de een gewone TUN, bedankt PE9SMS. Ik was in eerste instantie van plan er een 2SC1384 in te zetten (wordt als eindtor in een 27Mc bakkie gebruikt). Helaas zit die niet in LTSpice en ik kan er ook geen model van vinden.

Als ik de frequenties uit LTSpice in de formule op de website zet dan krijg ik nog maar een afwijking van 2pF in het bereik van 1 tot 1000nH

code:


MHz		nH	nF (berekend)
8.750.582,2	660,1	1,0023
8.744.623,7	661	1,0023
8.685.700,8	670	1,0023
8.155.299,4	760	1,0023
5.518.917,4	1660	1,0020
4.360.692,6	2660	1,0016
3.718.387,5	3660	1,0011
3.296.150,5	4660	1,0006
2.991.577,7	5660	1,0001
2.182.729,9	10660	0,9975

Zou ik in mijn formule in de microcontroller kunnen rekenen met 1.002 nF ipv. 1nF om de afwijking door de belasting te compenseren?

Je zou de HF ook van de emitter kunnen afnemen dat belast de collector(kring) minder.
Die emitterweerstand is mede bepalend voor de versterking van de schakeling, de ideale versterking is iets hoger als éénmaal omdat de oscillator ook nog moet opstarten.

Hou er rekening mee dat een geringe afwijking in het theoretische model geen garantie is voor de praktische uitvoering, je heb wel degelijk te maken met parasitaire capaciteiten en de manier waarop je het bouwt.
Bovendien heb je te maken met spreiding van de waarde van de componenten in tolerantie.

Wanneer je de frequentie meet met een microcontroller zou je deze ook het rekenwerk kunnen doen, zodat je niet de frequentie uitleest maar direct de waarde van de spoel.

Ik vindt jouw project een leuk idee en goede manier om (kleine) zelfinducties te meten, alleen ik zou het iets anders doen.

"tijd is relatief"
hennep

Golden Member

Bedankt Martin, Afnemen van de emitter, dat halveert inderdaad de afwijking in de simulatie.
Ik heb dan wel een extra transistortrapje nodig. De 74HC590 die ik wil gebruiken om de frequentie te delen zal niet genoeg hebben aan een rimpel van 1.5V

Op 14 maart 2020 22:46:16 schreef Martin V:
ik zou het iets anders doen.

Waar denk je dan aan?
Andere oscillator?
Andere instellingen?

Je maakt me nieuwsgierig met zo'n opmerking :-)

Ha hennep,

Vraag wat wil je precies meten aan je onbekende spoel :?
Een oscillator over een groot bereik afstemmen (ander spoel) met de zelfde condensator is heel moeilijk.
De impedantie zal continu veranderen nu is een oscillator een bijzondere versterker dat maakt een en ander nog al kwetsbaar.
Dit geeft zich weer in de zuiverheid van de golfvorm en dit is weer belangrijk omdat de teller die je wil aansturen een gedefinieerd trigger punt wil zien.

Je zult dus altijd een buffer moeten gebruiken een oscillator zonder buffer is een rammel bak zonder remmen |:(
Zelfs bij een lineaire versterker is het haast niet mogelijk om met een transistor goede eigenschappen te bereiken... de ontkoppeling tussen uit en in is veel te klein.
Ik ga er van uit dat je een blokgolf wil makken om CMOS/TTL aan te sturen dit kan je buffer gelijktijdig doen maar niet met een diode limmiter daar is een 1N4148 niet voor geschikt en maakt geen mooie blokgolf.

Als je bereik van 1 nH tot 1000 nH wil meten zal je brug moeten gebruiken en een nul meting moeten uitvoeren.
Maar dan nog is 1 nH geen reële waarde ik denk eerder aan 20... 50 nH met een tolerantie van + / - 5 nH

Wanneer je zo'n groot bereik wil bewandelen is het denk ik beter om een breedband systeem te ontwerpen.
Je test sample mag geen deel uitmaken of in ieder geval niet direct deel uitmaken van je tester.... alleen dan kan je een objectieve meting doen.
Maar zelfs dan geldt dat bij elke observatie (meting) die wij doen we deel uitmaken van het systeem en dus het systeem beinvloeden.

Ik zou eerder in de richting denken van een breedband generator in jouw gebied laten we zeggen van 100 kHz tot 100 MHz.
Zo'n generator kan een ruis generator zijn niets afstemmen keurig stabiel maken qua amplitude maar afstemmen is totaal niet nodig.
Je kunt dan een brugje aansturen en de brugbalans meten de spanning over de balans gelijkrichten en naar een DC versterker voeren tot CMOS/TTL niveau.
Of je kunt vanuit de controller een DC spanning genereren en een FET aansturen als regelbare weerstand om de brugbalans tot stand te brengen.

Groet,
Henk.

Everything should be as simple as possible, but not simpler.

@electron Hoi Henk, aan een Wheatstone brug zat ik ook te denken, maar dan zit je weer met een potentiometer en zul je de ingestelde waarde op een één of andere manier moeten kunnen uitlezen.
Dan zal je het ook nog moeten ijken.

Een breedbandig systeem wat niet oscilleerd maar ruis opwekt spreekt mij wel aan, maar hoe zou je zoiets verder moeten ontwerpen vraag ik me dan af.

Weliswaar goede tips Henk, maar ik zou niet direct weten hoe ik dit zonder een generator, of oscillator verder kan ontwerpen.

Ik ga me ook uit interesse met dit topic bemoeien, omdat ik in het verleden ook zo meetapparaatje heb gemaakt om spoelen te kunnen meten.
Vergeef me voor een eventuele topic-kaap :)

ik zou het iets anders doen.

Waar denk je dan aan?
Andere oscillator?
Andere instellingen?

Je kan dezelfde oscillator gebruiken, een Colpitts, maar dan met een junction Fet, de BF245 of een J310 als transistor.
De test spoel staat in serie met een andere vaste spoelwaarde van 1,10 of 100µH.
Op die manier kun je meten met heel kleine zelfinducties.
Om te kunnen kiezen welke spoel in serie staat met de onbekende spoel heb je drie meet bereiken, welke je kan selecteren door middel van een drie standen schakelaar.
Daarvoor heb ik de volgende schakeling ontworpen:

Maar... een Franklin oscillator kan ook nog.
Het voordeel van een Franklin oscillator is dat deze de kring gering belast.
En een andere eigenschap is dat deze over een groot frequentie bereik werkt.
De koppel capaciteiten met de kring zijn heel klein (een paar pF'jes).

Of met junction Fets, dat lijkt me nog iets beter als met bipolaire transistoren.

info: https://www.zl2pd.com/HFRFgen.html
Het is zelfs mogelijk om dit met een 74HC04 inverter te maken, al lijkt mij dat niet direct de beste methode.

@Henk ik ben eigenlijk wel benieuwd hoe je dat van die brug, ruisgenerator en breedbandige generator verder zou kunnen uitwerken.
En dit zou kunnen aflezen op een display, frequentie of een andere waarde?

"tijd is relatief"
hennep

Golden Member

Op 15 maart 2020 19:59:29 schreef electron920:
Vraag wat wil je precies meten aan je onbekende spoel :?

Henk,
Ik had in mijn start post al geschreven dat ik kerneigenschappen wil weten. Ik wilde een klein testertje bouwen om mee te nemen naar Rosmalen, dat was kort dag. Nu heb ik er een jaar extra bij om het ding te bouwen.
Op dat soort beurzen zie ik vaak verkopers met grote bakken ferrietkernen. Hoe weet ik dan dat het een kern voor een smoorspoel, common mode filter, of voor een dc converter geschikt is? Mijn plan was dus een oscillator te bouwen waarmee ik een enkele wikkeling door de kern haal en dan met een microcontroller de inductie laat zien van die wikkeling met die specifieke kern.
Een voorbeeld waar ik een paar weken geleden tegenaan liep, een smoorspoel in een schakelende voeding werd heet bij hoge belasting. Schakelfets en diodes en trafo bleven koel. Ik dus op zoek naar een kern in mijn rommelbak. Het origineel was een spoel van 50uH met 30 wikkelingen van 1mm en het gat in de kern was te klein om er hetzelfde aantal wikkelingen van 1.8 mm door te prutsen. Op dat moment was ik heel blij geweest met een metertje dat mij had kunnen laten zien dat EEN wikkeling door een andere kern 1.66 uH was. Nu moest ik eerst door een aantal kernen heel veel wikkelingen draaien voordat ik het met mijn LCR meter in het 0-200 uH bereik kon aflezen.
Die LCR meter is een goedkoop ding uit China en deze werkt goed aan de bovenkant van het genoemde bereik maar onder de 20 uH begint het display te verspringen en is er geen stabiele waarde af te lezen.
Daarom zou het mooi zijn om van 1 nH tot een flinke overlap in het laagste LCR bereik te kunnen meten, liefst tot ongeveer 50uH. Ik kan dan ook gewoon spoelen meten als aanvulling op mijn LCR meter. Maar als er geen oscillator bestaat die zo'n range aan kan, dan wordt het gewoon maar een tester om kernen te selecteren.

Martin,
Zo'n mogelijkheid om meerdere spoelen in de kring te schakelen lijkt handig maar het zou beter zijn om meerdere condensatoren te selecteren. Die kan ik met een klein fetje naar de massa schakelen met de microcontroller en zo de meter "auto ranging" maken. (EDIT: bij nader inzien, de body diode in de fet werkt dan zeker tegen)
Ik ben al even bezig geweest om de diverse schakelingen in LTSpice te krijgen maar ik heb nog geen Franklin zo stabiel gekregen, over een groot bereik, als de Colpitts met een 22pF koppeling.

Het origineel was een spoel van 50uH met 30 wikkelingen van 1mm en het gat in de kern was te klein om er hetzelfde aantal wikkelingen van 1.8 mm door te prutsen. Op dat moment was ik heel blij geweest met een metertje dat mij had kunnen laten zien dat EEN wikkeling door een andere kern 1.66 uH was.

Als je zo een kern had uitgezocht dan was je bedrogen uitgekomen vrees ik ...

Ha hennep,

Helder ik kan mij nu een voorstelling maken wat je wil onderzoeken.
Je inleiding was niet helemaal duidelijk wat je precies wilde meten.

Het schakelen van je oscillator over een groot bereik door alleen de inductie te wijzigen kan maar is niet wenselijk.
Er zal te veel vervorming ontstaan en dit is nadelig voor je registratie of dit nu een frequentie teller of voltmeter is.
Beter is het om een oscillator op een vaste frequentie te laten werken de tolerantie van je condensator heeft invloed op de resonantie frequentie.
Op een vaste frequentie kan je deze tolerantie weg regelen.
Ook is het lastig om met 1 winding en een (toevallig) kleine Al een goede meting uit te voeren dit vergt een hoge resolutie.
Het feit dat je bestaande tester geen zinvolle kleine waarde kan meten komt door het meet principe dat is het zelfde principe als wat jij wil gebruiken.

Met 6 inverters 2 IC kan je een mooie tester maken (kan in een lucifer doosje ) :D aansluiten op je multimeter 10 mV/µH maar hier mee kan je geen kleine waarde meten 300 nH..... 50 µH .
Je maakt gebruik van een puls amplitude discriminatie de nauwkeurigheid is extreem goed en geen tolerantie alleen lineaire tijd speelt een rol.

Maar jij wil meer weten van de onbekende kern (vandaar mijn vraag) ;) het voorbeeld wat je schetst heeft waarschijnlijk niets met de inductie te maken maar met geheel andere eigenschappen van het ceramisch materiaal (de kern).
Als je alleen de inductie wilt weten maar wel betrouwbaar over een groot bereik moet je tester aan een aantal voorwaarde voldoen.

Tester moet breedbandig zijn qua frequentie/tijd.
Tester moet niet beinvloed worden door het te testen sample.
Tester moet gevoelig zijn en met voldoende resolutie en nauwkeurigheid.
Tester moet een autocal functie hebben.
Tester moet simpel te bedienen zijn en door een controller te bedienen.

Vul je wensen maar in geldt ook voor @Martin V niet overdreven maar een compacte tester waar je iets aan heb.

De voorzet die ik gaf was zomaar een brainstorm ruis generator amplitude regelaar en een brugje om de impedantie te meten.
Nu is de brug welke @Martin V aangeef de Wheatstone brug niet zo geschikt deze is voor zuivere weerstanden ik zit meer te denken aan de Maxwell brug of de Maxwell/Wien brug misschien nog wel een modificatie erop.
Ik ben bezig om zo'n brug te ontwerpen voor een draadje van @heer Miedema in samen werking met zijn analyzer.

Een ander scenario is dat je gebruik maakt van inductieve koppeling net als een griddipper.
Dit is constructief lastiger maar je kunt op dat moment veel meer informatie vergaren immers je kunt de transformator vergelijkingen gebruiken kortsluiten open enz enz.
Is kijken waar we kunnen komen maar jou doelstelling is duidelijk.

Groet,
Henk.

Everything should be as simple as possible, but not simpler.
hennep

Golden Member

Op 17 maart 2020 12:47:04 schreef electron920:
Met 6 inverters 2 IC kan je een mooie tester maken (kan in een lucifer doosje ) :D aansluiten op je multimeter 10 mV/µH maar hier mee kan je geen kleine waarde meten 300 nH..... 50 µH .

Heb je daar een schema van?
Luciferdoosjes zijn schaars tegenwoordig maar als ik dat samen met een opamp een LCD en een controller in een ander doosje kan stoppen dan wil ik daarmee wel eens een experiment doen.

Ha hennep,

Ik zal een schema tekenen een klein moment ik moet eerst even denken is al een aantal jaar gelden komt uit ARRL handboek maar ik kom er wel uit :P
De onderdelen zal je vast wel hebben 2 keer een 74HC04 of 1 keer een 74HC14 pot-meter en een paar condensatoren/weerstanden voor het laagdoorlaatfilter.

Maar hier kan je geen kleine waarde mee meten wel een leuk experiment :D
Ik heb vroeger een studie ontwerp gemaakt om de ferriet kernen te meten zonder te wikkelen.
Dit is voor amateur werk niet nodig en veel te kostbaar die machine meet rond de 100 kernen/min voor selectie op een aantal parameters.
Werkt een beetje als een stroomtang maar dan voor hoogfrequent tot 2000 MHz.

Nog even terug op de Maxwell/Wien brug deze kan je gebruiken voor condensatoren en spoelen.
Ik zal zo'n brug uitwerken gebaseerd op het aansturen met een controller misschien wel interessant.

Groet,
Henk.

Everything should be as simple as possible, but not simpler.

Ha hennep,

Zoals beloofd even nagedacht hoe een en ander ook al weer werkte is zo.n 15 jaar geleden..... een tekening gemaakt :)

Maar zoals je weet google is je beste vriend dus ik wilde voor de onderbouwing even een formule verifiëren i.p.v. de formule loop ik bijna bij de eerste hit tegen een artikel aan http://electronics-diy.com/rf-inductance-meter.php tja :+ misschien beter eerst in mijn boekenkast kijken maar die staat nog niet :'( en ik kom door mijn aanname op net iets andere waarden uit.
In ieder geval heb je wat stof tot nadenken later heb ik nog zo iets gemaakt met een VFC voltage naar Frequency Converter maar met deze PWM gaat het best goed.

De opbouw staat volgens mij duidelijk omschreven let wel op de condensatoren goede kwaliteit en verouderen.
Dat laatste is heel belangrijk alle condensatoren in een precisie schakeling dus timing of filters of selectie moeten verouderd worden zo'n 2000 uur.
Alle condensatoren hebben last van diëlektrische veroudering keramische maar ook metaal-polymeer je Wima bijvoorbeeld.
Het selecteren is dan ook alleen maar zinvol na veroudering je waarde kan wel tot 15% afwijken vandaar de grote toleranties van condensatoren.
Er is een type wat de dans ontspringt en dat is keramisch NP0 :P

Met de Maxwell-Wien brug ben ik bezig dit wordt een simpeler vorm als voor de netwerk analyzer.

Groet,
Henk.

Everything should be as simple as possible, but not simpler.