Simuleer elektronische schakelingen met Qucs
- November 16, 2020
- 0
Begrip in elektronica krijg je pas door veel elektronische schakelingen uit te proberen en het gedrag te observeren. Dat kan met fysieke elektronische componenten, maar ook met simulaties. Qucs (Quite Universal Circuit Simulator) helpt je met dat laatste.
Koen Vervloesem
Niet iedere beginnende elektronicastudent heeft een kast vol componenten liggen, en soms is het gewoon handiger om een schakeling te simuleren. Je kunt dan immers eenvoudig waardes zoals weerstanden, capaciteiten en frequenties van wisselspanningen aanpassen om het effect op je schakeling te zien.
In academische middens en de industrie wordt er veel gebruikgemaakt van de simulatiesoftware Multisim van National Instruments (NI). Dat is propriëtaire software, je hebt er een licentie voor nodig en ze draait alleen op Windows. Gelukkig bestaat er ook opensourcesoftware om elektronische schakelingen te simuleren onder Linux. Een van die programma’s is Qucs (http://qucs.sourceforge.net).
Qucs laat je toe om alle mogelijke elektronische componenten te simuleren.
Installatie
Als je op de website gaat kijken, lijkt het of de ontwikkeling al drie jaar stilstaat: de laatste versie op de homepage is Qucs 0.0.19 van januari 2017. Op de GitHub-pagina van het project (https://github.com/Qucs/qucs) zie je echter dat er nog druk aan ontwikkeld wordt. Tijdens de redactiesluiting hadden de ontwikkelaars release candidate 2 van Qucs 0.0.20 gepubliceerd.
Helaas verspreidt het project nog geen binary’s van deze release candidate. Je zult daarom de code zelf moeten compileren. Download de code van GitHub of via een van de tarballs op SourceForge (https://sourceforge.net/projects/qucs/files/qucs/). Volg daarna de instructies onder het kopje “Compile instructions Linux (Debian/Ubuntu)”. Na de installatie staat Qucs in /usr/local/bin/qucs, klaar voor gebruik.
Spanningsdeler
Als je Qucs opent, krijg je een leeg werkblad met de titel untitled te zien. Hierop plaats je je componenten en bedrading. Als je links op het verticale tabblad Components klikt, krijg je componenten te zien. Standaard opent de categorie lumped components, die je het vaakst zult gebruiken: daarin vind je weerstanden, condensatoren, de massa, schakelaars en meetprobes voor de spanning of stroom.
Laten we eens een eenvoudige schakeling maken die een DC-voeding van 5 V met een spanningsdeler omzet naar 3,3 V, iets wat je in veel elektronische schakelingen met een Raspberry Pi of Arduino nodig hebt omdat sommige componenten op 5 V werken en andere 3,3 V vragen.
Klik op lumped components bovenaan om het componentenmenu te openen en kies dan sources. Klik op dc Voltage Source en plaats de DC-bron op je werkblad. Keer dan terug naar lumped components, selecteer een Resistor en plaats die op je werkblad. Zolang de weerstand in het componentenmenu geselecteerd is, kun je nu gewoon een tweede weerstand plaatsen door nog eens te klikken.
Componenten verbinden
Dat zijn je componenten, nu moet je ze nog correct positioneren en met elkaar verbinden. Klik onder de menubalk op het pijltje (Select) en klik op een weerstand om die te selecteren. Met Ctrl+R roteer je ze. Zodra ze goed staan, klik je bovenaan op het icoontje Wire, klik je op een rood aansluitingspunt van één component, beweeg je je cursor en klik je op een aansluitingspunt van een andere component of een lege plaats op het werkblad. Qucs maakt dan een verbinding. Als je een hoek maakt en de lijn gaat eerst naar rechts en dan naar onder en je wilt het andersom, rechtsklik dan om de richting te veranderen.
Je schakeling is klaar als er geen rode aansluitingspunten meer zijn: alle rode cirkeltjes moeten blauwe puntjes geworden zijn. Indien niet, verplaats je componenten dan of trek extra lijnen om de aansluitingen correct te maken. Heb je lijnen te veel gezet, keer dan terug naar de selectiemodus, selecteer een lijn en druk de toets Del in.
Vergeet op het einde ook niet om de massa aan te duiden. Selecteer daarvoor Ground in de lijst lumped components of klik op het icoontje van de massa bovenaan. Sluit de massa aan op de negatieve kant van de DC-voeding. Dat hoeft niet rechtstreeks op het aansluitingspunt van de voeding te zijn: als er maar een rechtstreekse lijn tussen de massa en de minkant is zonder componenten ertussen.
Gesimuleerde meting
Dan is het nu tijd om de juiste waardes voor alle componenten in te vullen. De DC-voeding heeft standaard een spanning van 1 V. Klik op 1 V en verander de waarde naar 5 V. Doe hetzelfde met de weerstandswaardes: verander de 50 Ohm bij de ene in 1 kOhm en bij de andere (degene het dichtst bij de massa) in 2 kOhm.
Als we nu de spanning tussen een punt tussen beide weerstanden en de massa zouden meten, krijgen we 3,33 V: . Klik boven op het icoontje Wire Label en plaats dat tussen de twee weerstanden. Hiermee creëer je een punt waarop je de spanning kunt meten.
Tot nu toe heb je een schakeling en een meetpunt, maar Qucs weet nog niet hoe het dit moet simuleren. Kies links in de componenten de categorie simulations en sleep een dc simulation naar je werkblad. De locatie maakt niet uit. Druk dan op F2 of de knop Simulate bovenaan. Qucs opent nu een nieuw tabblad met de extensie dpl (voor “data display”) en opent links de categorie diagrams. Je kunt nu een diagram in dit tabblad toevoegen, maar voor eenvoudige schakelingen is het overzichtelijker om het aan het schema zelf toe te voegen.
Keer dus terug naar het tabblad van je schema en voeg een component Tabular toe aan je werkblad. Dubbelklik dan op de naam van het label dat je hebt aangemaakt om de spanning te meten. Je ziet de naam er staan met .V erachter, wat erop duidt dat het om een gelijkspanning gaat. Na het dubbelklikken komt de naam rechts in de lijst met te tonen waardes. Klik op OK. Je ziet nu op je werkblad een tabel met je label en de gemeten waarde.
Een spanningsdeler is eenvoudig gesimuleerd in Qucs.
Bruggelijkrichter
Qucs kan ook met wisselspanning overweg. We illustreren dat met een bruggelijkrichter (vier diodes in de Graetzschakeling) die een wisselspanning naar een pulserende gelijkspanning omzet, met een condensator om die laatste tot een constante gelijkspanning af te vlakken.
Een generieke diode vind je in de categorie nonlinear components bij de componenten. Wil je een specifiek type diode toevoegen, klik dan links in het verticale tabblad Libraries en maak je keuze daar in de categorie Diodes, bijvoorbeeld de 1N4004. De condensator vind je in lumped components (Capacitor). Geef ze een waarde van 10 µF. Dat vul je in Qucs-notatie in als 10 uF.
Als voeding kies je nu bij sources een ac Voltage Source. Vergeet niet een massa aan de minkant aan te sluiten. Dubbelklik op het icoontje van de voeding om de eigenschappen te openen. Je kunt daar de spanning veranderen (dat is overigens de piekspanning, niet de Vrms), maar ook de frequentie. Standaard toont Qucs alleen de naam van de bron en de spanning bij het schema. Als je de frequentie hier selecteert en display in schematic aanvinkt, wordt de frequentie ook zichtbaar, wat vaak handig is zodat je alle relevante gegevens op het schema ziet. Voeg ook een label toe aan de pluskant van de voeding zodat je die kunt meten.
De weerstand van 10 kOhm die we in het schema hebben toegevoegd, stelt de belasting voor. Hierover willen we de spanning meten. Maar omdat geen van de twee uiteindes van de weerstand aan de massa hangt, volstaat een label niet. Kies daarom in de categorie probes een Voltage Probe en plaats die naast je schakeling. Verbind de plusklem van de probe met de ene kant van de weerstand en de minklem met de andere kant. Geef de probe ook een duidelijke naam, zoals Uout.
Kies zelf welke eigenschappen je op het schema wilt zien.
Tijdsafhankelijke simulatie
Een wisselspanning verandert periodiek door de tijd, bijvoorbeeld een sinus met een frequentie van 50 Hz. Met een simulatie van deze schakeling willen we dus zien hoe de spanning aan de ingang en de uitgang zich door de tijd gedraagt.
Daarvoor kies je in de categorie simulations voor Transient simulation. Verander de stopwaarde naar een tijdstip zodat je voldoende te zien krijgt in de simulatie. Voor een wisselspanning met een frequentie van 50 Hz kun je bijvoorbeeld een stopwaarde van 40 ms kiezen: dan krijg je twee periodes (50 Hz = 1 / 20 ms) van het signaal te zien.
Diagram
Simuleer deze schakeling nu met een druk op F2. Keer terug naar het schema en voeg daar een diagram Cartesian toe. Dubbelklik in de linkerkolom op Uin.Vt en Uout.Vt om ze aan de rechterkolom toe te voegen. Dit zijn de namen van de ingangsspanning (het label) en uitgangsspanning (de spanningsprobe) van je schakeling, met Vt eraan toegevoegd, voor “transient voltage”.
Je krijgt nu de ingangsspanning als een sinusgolf te zien, en in een andere kleur de uitgangsspanning die als een stijgende sinusflank begint en daarna heel lichtjes afvlakt, een korte sprong naar boven maakt, weer lichtjes afzwakt enzovoort.
Dit is geen perfecte gelijkspanning: de rimpelspanning (het verschil tussen de hoogste en laagste spanning na de eerste stijgende sinusflank) is nog te groot. Dat hebben we hier gedaan omdat de werking van de condensator dan duidelijker op de grafiek te zien is. Om de rimpelspanning zo goed als weg te werken, dient RC veel groter te zijn dan 1/f, met f de frequentie van de rimpelspanning (twee keer de ingangsfrequentie voor een dubbele gelijkrichting). Met een condensator van 100 µF heb je al een veel vlakkere uitgangsspanning.
Markeren en tekst
Je kunt die spanningen ook op de grafiek aflezen door er punten op te markeren. Klik op de grafiek en druk dan op Ctrl+B of klik bovenaan op het icoontje met M1 (Set Marker on Graph) en plaats een punt op een van de spanningsgrafieken in het diagram. Het kadertje dat bij het punt komt, toont dan het tijdstip en de waarde op dat tijdstip. Selecteer het kadertje en verplaats het punt dan met de pijltjestoetsen (links en rechts) tot dit het punt aanwijst dat je wilt (bijvoorbeeld het maximum van de uitgangsspanning). Het kader zelf kun je ook verslepen naar waar je wilt. Doe hetzelfde voor de minimumwaarde van de uitgangsspanning. Dan kun je heel eenvoudig aflezen dat de rimpelspanning het verschil tussen 3,76 V en 3,48 V of 280 mV is.
Je kunt ook nog extra toelichting bij je schema typen als tekst. Ga daarvoor in je componenten naar de categorie paintings en kies Text om een tekstblok toe te voegen. Die tekst verstaat zelfs een subset van LaTeX-syntaxis voor formules, zoals in R_1C_1 = 10 kOhm \times 10 \muF = 10^4 Ohm \times 10^{-5} F. Verder kun je ook pijltjes, rechthoeken en ellipsen toevoegen aan je schema om zaken te verduidelijken. Overigens hoef je geen screenshot van Qucs te maken als je je schema wil publiceren: in het menu File vind je een onderdeel Export as image… om er een png-bestand van te maken.
Tijdsdiagram van een bruggelijkrichter. De tekstblokken, pijltjes en markeringen maken van Qucs een heel didactisch instrument om elektronische schakelingen uit te leggen.
Bodediagram
Ook in het frequentiedomein kan Qucs je bijstaan, bijvoorbeeld bij het ontwerpen van (RC-) filters. Creëer bijvoorbeeld de filter met twee condensatoren en twee weerstanden uit de afbeelding hieronder en voeg een transient simulation en diagram toe om het uitgangssignaal samen met het ingangssignaal te plotten. Bij 50 Hz zie je dat de amplitude van het signaal gehalveerd is. Als je nu de frequentie van de ingangsspanning zou verhogen, zou je zien dat niet alleen de amplitude van de uitgangsspanning vermindert, maar dat er ook een faseverschuiving optreedt.
Om het gedrag van de schakeling naargelang de frequentie te onderzoeken, gebruik je normaal een Bodediagram: grafieken van de amplitudeversterking en faseverschuiving in functie van de versterking, met een logaritmische frequentieas. De amplitudeversterking wordt in dB () getoond. Om zo’n Bodediagram in Qucs op te stellen, dien je eerst een ander type simulatie toe te voegen: ac simulation. Hierin kies je de onder- en bovengrens van de frequenties waarvoor je wilt simuleren en het aantal te simuleren frequenties.
Klik eerst bovenaan op het knopje Insert Equation en voeg het vergelijkingsveld toe. Voeg een vergelijking toe met de naam AdB en de waarde dB(Vout.v/Vin.v). Dit is de versterking in dB. Klik op Add en voeg een tweede vergelijking toe: phi met als waarde phase(Vout.v). Dit is de faseverschuiving. Klik op Add en dan op OK.
Druk nu op F2 om te simuleren. Keer daarna terug naar het schema en voeg een Cartesian diagram toe. Dubbelklik op AdB om de data aan de grafiek toe te voegen. Vul in het tabblad Properties labels toe voor de X- en Y-as en vink logarithmical X Axis Grid aan. Simuleer opnieuw, waarna je het Bodediagram van de amplitude te zien krijgt. Voeg op dezelfde manier het diagram voor de faseverschuiving toe. Je kunt nu nog de afbuigfrequenties markeren op beide grafieken.
Ook Bodediagrammen om de frequentieafhankelijkheid van schakelingen te bestuderen creëer je eenvoudig in Qucs.
En verder
We hebben in deze workshop nog maar een fractie van de mogelijkheden van Qucs getoond. Er zijn nog veel meer componenten, zoals transistoren, opamps, potentiometers enzovoort. Qucs ondersteunt ook heel wat wiskundige functies en laat je zelfs toe om Octave-scripts uit te voeren. GNU Octave (https://www.gnu.org/software/octave/) is een wetenschappelijke programmeertaal die grotendeels compatibel is met Matlab. Verder vind je heel wat documentatie op http://qucs.sourceforge.net/docs.html.