Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Industriële technologie

Computersimulatie van elektrische circuits

Computers kunnen krachtige hulpmiddelen zijn als ze op de juiste manier worden gebruikt, vooral op het gebied van wetenschap en techniek. Er bestaat software voor de simulatie van elektrische circuits door de computer, en deze programma's kunnen erg handig zijn om circuitontwerpers te helpen ideeën te testen voordat ze daadwerkelijk echte circuits bouwen, wat veel tijd en geld bespaart.

Dezelfde programma's kunnen fantastische hulpmiddelen zijn voor de beginnende student elektronica, waardoor ideeën snel en gemakkelijk kunnen worden onderzocht zonder dat er echte circuits nodig zijn. Natuurlijk is er geen vervanging voor het daadwerkelijk bouwen en testen van echte circuits, maar computersimulaties helpen zeker bij het leerproces doordat de student kan experimenteren met veranderingen en de effecten ervan op circuits kan zien.

In dit boek zal ik regelmatig computerafdrukken van circuitsimulatie gebruiken om belangrijke concepten te illustreren. Door de resultaten van een computersimulatie te observeren, kan een student een intuïtief inzicht krijgen in het gedrag van circuits zonder de intimidatie van abstracte wiskundige analyse.

Circuitsimulatie met SPICE

Om circuits op de computer te simuleren, maak ik gebruik van een bepaald programma genaamd SPICE, dat werkt door een circuit aan de computer te beschrijven door middel van een lijst met tekst. In wezen is deze lijst een soort computerprogramma op zich en moet het voldoen aan de syntactische regels van de SPICE-taal.

De computer wordt vervolgens gebruikt om het SPICE-programma te verwerken of "uit te voeren", dat de tekstlijst interpreteert die het circuit beschrijft en de resultaten van zijn gedetailleerde wiskundige analyse uitvoert, ook in tekstvorm. Veel details over het gebruik van SPICE worden beschreven in deel 5 ("Referentie") van deze boekenreeks voor diegenen die meer informatie willen. Hier zal ik alleen de basisconcepten introduceren en vervolgens SPICE toepassen op de analyse van deze eenvoudige circuits waarover we hebben gelezen.

Eerst moeten we SPICE op onze computer hebben geïnstalleerd. Als gratis programma is het algemeen beschikbaar op internet om te downloaden en in formaten die geschikt zijn voor veel verschillende besturingssystemen. In dit boek gebruik ik een van de eerdere versies van SPICE:versie 2G6, vanwege het gebruiksgemak.

Vervolgens hebben we een circuit nodig dat SPICE kan analyseren. Laten we een van de circuits proberen die eerder in dit hoofdstuk zijn geïllustreerd. Hier is het schematische diagram:

Deze eenvoudige schakeling bestaat uit een batterij en een weerstand die rechtstreeks met elkaar zijn verbonden. We kennen de spanning van de batterij (10 volt) en de weerstand van de weerstand (5 Ω), maar verder niets over het circuit. Als we dit circuit aan SPICE beschrijven, zou het ons (op zijn minst) moeten kunnen vertellen hoeveel stroom we in het circuit hebben met behulp van de wet van Ohm (I=E/R).

SPICE is een op tekst gebaseerd programma

SPICE kan een schematisch diagram of enige andere vorm van grafische beschrijving niet direct begrijpen. SPICE is een op tekst gebaseerd computerprogramma en vereist dat een circuit wordt beschreven in termen van zijn samenstellende componenten en verbindingspunten. Elk uniek verbindingspunt in een circuit wordt voor SPICE beschreven door een "knooppunt" -nummer. In de te simuleren schakeling elektrisch gemeenschappelijke punten worden als zodanig aangeduid door hetzelfde nummer te delen.

Het kan handig zijn om deze nummers te beschouwen als "draad" -nummers in plaats van "knooppunt" -nummers, volgens de definitie die in de vorige sectie is gegeven. Dit is hoe de computer weet wat met wat is verbonden:door het delen van gemeenschappelijke draad- of knooppuntnummers. In ons voorbeeldcircuit hebben we slechts twee "knooppunten", de bovenste draad en de onderste draad. SPICE eist dat er ergens in het circuit een knooppunt 0 is, dus we labelen onze draden 0 en 1:

In de bovenstaande illustratie heb ik meerdere "1" en "0" labels rond elke respectievelijke draad getoond om het concept van gemeenschappelijke punten die gemeenschappelijke knooppuntnummers delen te benadrukken, maar toch is dit een grafische afbeelding, geen tekstbeschrijving. SPICE moet de componentwaarden en knooppuntnummers in tekstvorm hebben voordat een analyse kan doorgaan.

Een teksteditor gebruiken om SPICE-bestanden te maken

Het maken van een tekstbestand op een computer omvat het gebruik van een programma dat een teksteditor wordt genoemd . Net als bij een tekstverwerker kun je met een teksteditor tekst typen en opnemen wat je hebt getypt in de vorm van een bestand dat is opgeslagen op de harde schijf van de computer. Teksteditors missen de opmaakmogelijkheden van tekstverwerkers (geen cursief , vet , of onderstreepte tekens), en dat is maar goed ook, aangezien programma's zoals SPICE niet weten wat ze met deze extra informatie moeten doen. Als we een bestand met platte tekst willen maken, met absoluut niets opgenomen behalve de toetsenbordtekens die we selecteren, is een teksteditor de tool die we moeten gebruiken.

Als u een Microsoft-besturingssysteem gebruikt, zoals DOS of Windows, zijn een aantal teksteditors direct beschikbaar bij het systeem. In DOS is er de oude Bewerken tekstbewerkingsprogramma, dat kan worden aangeroepen door edit te typen bij de opdrachtprompt. In Windows (3.x/95/98/NT/Me/2k/XP), het Kladblok teksteditor is uw aandelenkeuze.

Er zijn veel andere tekstbewerkingsprogramma's beschikbaar, en sommige zijn zelfs gratis. Ik gebruik toevallig een gratis teksteditor genaamd Vim , en voer het uit onder zowel Windows 95- als Linux-besturingssystemen. Het maakt niet uit welke editor je gebruikt, dus maak je geen zorgen als de schermafbeeldingen in deze sectie niet op die van jou lijken; de belangrijke informatie hier is wat je typt , niet welke editor die je toevallig gebruikt.

Om dit eenvoudige tweecomponentencircuit voor SPICE te beschrijven, zal ik beginnen met het aanroepen van mijn teksteditorprogramma en het typen van een "titel" -regel voor het circuit:

We kunnen de batterij aan de computer beschrijven door een regel tekst in te typen die begint met de letter "v" (voor "Spanningsbron"), waarbij wordt aangegeven op welke draad elke terminal van de batterij is aangesloten (de knooppuntnummers) en de spanning van de batterij , zoals dit:

Deze tekstregel vertelt SPICE dat we een spanningsbron hebben aangesloten tussen knooppunten 1 en 0, gelijkstroom (DC), 10 volt. Dat is alles wat de computer moet weten over de batterij. Nu gaan we naar de weerstand:SPICE vereist dat weerstanden worden beschreven met een letter "r", de nummers van de twee knooppunten (verbindingspunten) en de weerstand in ohm. Aangezien dit een computersimulatie is, is het niet nodig om een ​​vermogen voor de weerstand op te geven. Dat is het mooie van "virtuele" componenten:ze kunnen niet worden beschadigd door te hoge spanningen of stromen!

Nu weet SPICE dat er een weerstand is aangesloten tussen de knooppunten 1 en 0 met een waarde van 5 . Deze zeer korte tekstregel vertelt de computer dat we een weerstand ("r") hebben aangesloten tussen dezelfde twee knooppunten als de batterij (1 en 0), met een weerstandswaarde van 5 Ω.

Als we een .end-instructie toevoegen aan deze verzameling SPICE-commando's om het einde van de circuitbeschrijving aan te geven, hebben we alle informatie die SPICE nodig heeft, verzameld in één bestand en klaar voor verwerking. Deze circuitbeschrijving, bestaande uit tekstregels in een computerbestand, is technisch bekend als een netlist , of dek :

Teksteditorbestanden naar SPICE verplaatsen

Zodra we klaar zijn met het typen van alle benodigde SPICE-commando's, moeten we ze "opslaan" in een bestand op de harde schijf van de computer, zodat SPICE iets heeft om naar te verwijzen wanneer het wordt aangeroepen. Aangezien dit mijn eerste SPICE-netlijst is, zal ik deze opslaan onder de bestandsnaam "circuit1.cir" (de werkelijke naam is willekeurig).

U kunt ervoor kiezen om uw eerste SPICE-netlijst een heel andere naam te geven, zolang u de bestandsnaamregels voor uw besturingssysteem niet schendt, zoals het gebruik van niet meer dan 8+3 tekens (acht tekens in de naam en drie tekens) in de extensie:12345678.123) in DOS.

Om SPICE aan te roepen (zeg dat het de inhoud van het netlist-bestand circuit1.cir moet verwerken), moeten we de teksteditor verlaten en toegang krijgen tot een opdrachtprompt (de "DOS-prompt" voor Microsoft-gebruikers) waar we tekstopdrachten kunnen invoeren voor de besturingssysteem van de computer te gehoorzamen.

Deze 'primitieve' manier om een ​​programma op te roepen lijkt misschien ouderwets voor computergebruikers die gewend zijn aan een grafische omgeving met 'aanwijzen en klikken', maar het is een zeer krachtige en flexibele manier om dingen te doen.

Onthoud dat wat je hier doet door SPICE te gebruiken een eenvoudige vorm van computerprogrammering is, en hoe meer je je op je gemak voelt bij het geven van tekstcommando's aan de computer - in plaats van simpelweg op pictogramafbeeldingen te klikken met een muis - hoe meer beheersing die je over je computer zult hebben.

Typ bij een opdrachtprompt deze opdracht, gevolgd door een [Enter]-toetsaanslag (in dit voorbeeld wordt de bestandsnaam circuit1.cir gebruikt; als u een andere bestandsnaam voor uw netlijstbestand hebt gekozen, vervangt u deze):

specerij  

Hier is hoe dit eruit ziet op mijn computer (met het Linux-besturingssysteem), net voordat ik op de [Enter]-toets druk:

Zodra u op de [Enter]-toets drukt om deze opdracht uit te voeren, moet de tekst van de uitvoer van SPICE op het computerscherm voorbij scrollen. Hier is een screenshot die laat zien wat SPICE op mijn computer uitvoert (ik heb het "terminal" -venster verlengd om je de volledige tekst te laten zien. Met een terminal van normale grootte is de tekst gemakkelijk groter dan één pagina):

SPICE begint met een herhaling van de netlist, compleet met titelregel en .end-statement. Ongeveer halverwege de simulatie geeft het de spanning op alle knooppunten weer met verwijzing naar knooppunt 0. In dit voorbeeld hebben we maar één ander knooppunt dan knooppunt 0, dus het geeft daar de spanning weer:10.0000 volt.

Vervolgens wordt de stroom door elke spanningsbron weergegeven. Omdat we maar één spanningsbron in het hele circuit hebben, geeft het alleen de stroom door die ene weer. In dit geval is de bronstroom 2 ampère. Vanwege een eigenaardigheid in de manier waarop SPICE stroom analyseert, wordt de waarde van 2 ampère weergegeven als een negatieve (-) 2 ampère.

De laatste regel tekst in het analyserapport van de computer is "totale vermogensdissipatie", die in dit geval wordt weergegeven als "2.00E+01" watt:2,00 x 101 of 20 watt. SPICE geeft de meeste cijfers weer in wetenschappelijke notatie in plaats van in normale (vaste-punt) notatie.

Hoewel dit in het begin misschien meer verwarrend lijkt, is het in feite minder verwarrend als het om zeer grote of zeer kleine aantallen gaat. De details van wetenschappelijke notatie komen aan bod in het volgende hoofdstuk van dit boek.

Een van de voordelen van het gebruik van een "primitief" op tekst gebaseerd programma zoals SPICE is dat de behandelde tekstbestanden extreem klein zijn in vergelijking met andere bestandsindelingen, met name grafische indelingen die in andere circuitsimulatiesoftware worden gebruikt.

Het feit dat de uitvoer van SPICE platte tekst is, betekent ook dat u de uitvoer van SPICE naar een ander tekstbestand kunt leiden waar het verder kan worden gemanipuleerd. Om dit te doen, geven we opnieuw een opdracht aan het besturingssysteem van de computer om SPICE op te roepen, deze keer leiden we de uitvoer om naar een bestand dat ik "output.txt" noem:

SPICE zal deze keer "stil" draaien, zonder de stroom tekstuitvoer naar het computerscherm zoals voorheen. Er wordt een nieuw bestand gemaakt, output1.txt, dat u kunt openen en wijzigen met een teksteditor of tekstverwerker. Voor deze illustratie gebruik ik dezelfde teksteditor (Vim ) om dit bestand te openen:

Nu kan ik dit bestand vrijelijk bewerken en alle overbodige tekst verwijderen (zoals de "banners" met datum en tijd), waardoor alleen de tekst overblijft die volgens mij relevant is voor de analyse van mijn circuit:

Eenmaal correct bewerkt en opnieuw opgeslagen onder dezelfde bestandsnaam (output.txt in dit voorbeeld), kan de tekst in elk soort document worden geplakt, waarbij "platte tekst" een universeel bestandsformaat is voor bijna alle computersystemen. Ik kan het zelfs rechtstreeks in de tekst van dit boek opnemen, in plaats van als een "screenshot" grafische afbeelding, zoals dit:

mijn eerste circuit v 1 0 dc 10 r 1 0 5 .einde knooppunt spanning (1) 10.0000 spanningsbronstromen naam huidige v -2.000E+00 totale vermogensdissipatie 2.00E+01 watt 

Dit is overigens het voorkeursformaat voor tekstuitvoer van SPICE-simulaties in deze boekenreeks:als echte tekst, niet als grafische screenshot-afbeeldingen.

Waarden wijzigen in SPICE

Om een ​​componentwaarde in de simulatie te wijzigen, moeten we het netlist-bestand (circuit1.cir) openen en de vereiste wijzigingen aanbrengen in de tekstbeschrijving van het circuit, die wijzigingen vervolgens opslaan onder dezelfde bestandsnaam en SPICE opnieuw aanroepen op de opdrachtprompt.

Dit proces van het bewerken en verwerken van een tekstbestand is bekend bij elke computerprogrammeur. Een van de redenen waarom ik SPICE graag lesgeef, is dat het de leerling voorbereidt om te denken en te werken als een computerprogrammeur, wat goed is omdat computerprogrammering een belangrijk gebied is van geavanceerd elektronicawerk.

Eerder hebben we de gevolgen onderzocht van het veranderen van een van de drie variabelen in een elektrisch circuit (spanning, stroom of weerstand) met behulp van de wet van Ohm om wiskundig te voorspellen wat er zou gebeuren. Laten we nu hetzelfde proberen met SPICE om de wiskunde voor ons te doen.

Als we de spanning in ons laatste voorbeeldcircuit zouden verdrievoudigen van 10 naar 30 volt en de circuitweerstand ongewijzigd zouden houden, zouden we verwachten dat de stroom ook zou verdrievoudigen. Laten we dit proberen, door ons netlijstbestand een andere naam te geven, zodat het eerste bestand niet wordt overschreven.

Op deze manier hebben we beide versies van de circuitsimulatie opgeslagen op de harde schijf van onze computer voor toekomstig gebruik. De volgende tekstlijst is de uitvoer van SPICE voor deze gewijzigde netlijst, opgemaakt als platte tekst in plaats van als een grafische afbeelding van mijn computerscherm:

tweede voorbeeld circuit v 1 0 dc 30 r 1 0 5 .einde knooppunt spanning (1) 30.0000 spanningsbronstromen naam huidige v -6.000E+00 totale vermogensdissipatie 1.80E+02 watt 

Zoals we hadden verwacht, verdrievoudigde de stroom met de spanningstoename. Stroom was vroeger 2 ampère, maar is nu toegenomen tot 6 ampère (-6.000 x 100). Merk ook op hoe de totale vermogensdissipatie in het circuit is toegenomen. Het was voorheen 20 watt, maar is nu 180 watt (1,8 x 102).

Eraan herinnerend dat vermogen gerelateerd is aan het kwadraat van de spanning (wet van Joule:P=E2/R), is dit logisch. Als we de circuitspanning verdrievoudigen, zou het vermogen met een factor negen moeten toenemen (32 =9). Negen keer 20 is inderdaad 180, dus de output van SPICE correleert inderdaad met wat we weten over vermogen in elektrische circuits.

Opmerkingen maken in SPICE

Als we willen zien hoe dit eenvoudige circuit zou reageren over een breed scala aan batterijspanningen, kunnen we een beroep doen op enkele van de meer geavanceerde opties binnen SPICE. Hier zal ik de ".dc" analyse-optie gebruiken om de batterijspanning te variëren van 0 tot 100 volt in stappen van 5 volt, waarbij ik de circuitspanning en -stroom bij elke stap afdruk.

De regels in de SPICE-netlijst die beginnen met een stersymbool ("*") zijn commentaar . Dat wil zeggen, ze vertellen de computer niets om iets te doen met betrekking tot circuitanalyse, maar dienen slechts als aantekeningen voor ieder mens die de netlijsttekst leest.

derde voorbeeld circuit v 1 0 r 1 0 5 * de ".dc" -instructie vertelt Spice om de "v" -voorziening te vegen *spanning van 0 tot 100 volt in stappen van 5 volt. .dc v 0 100 5 .print dc v(1) i(v) .einde 

Afdruk- en plotopdrachten

De opdracht .print in deze SPICE-netlijst geeft SPICE de opdracht om kolommen met getallen af ​​te drukken die overeenkomen met elke stap in de analyse:

v i(v) 0.000E+00 0.000E+00 5.000E+00 -1.000E+00 1.000E+01 -2.000E+00 1.500E+01 -3.000E+00 2.000E+01 -4.000E+00 2.500E+01 -5.000E+00 3.000E+01 -6.000E+00 3.500E+01 -7.000E+00 4.000E+01 -8.000E+00 4.500E+01 -9.000E+00 5.000E+01 -1.000E+01 5.500E+01 -1.100E+01 6.000E+01 -1.200E+01 6.500E+01 -1.300E+01 7.000E+01 -1.400E+01 7.500E+01 -1.500E+01 8.000E+01 -1.600E+01 8.500E+01 -1.700E+01 9.000E+01 -1.800E+01 9.500E+01 -1.900E+01 1.000E+02 -2.000E+01 

Als ik het netlist-bestand opnieuw bewerk en de .print-opdracht in een .plot-opdracht verander, zal SPICE een ruwe grafiek uitvoeren die bestaat uit teksttekens:

Legende:+ =v#branch -------------------------------------------------- ---------------------- sweep v#branch-2.00e+01 -1.00e+01 0.00e+00 ---------------------|------------------------|--- ---------------------| 0.000e+00 0.000e+00 . . + 5.000e+00 -1.000e+00 . . + . 1.000e+01 -2.000e+00 . . + . 1.500e+01 -3.000e+00 . . + . 2.000e+01 -4.000e+00 . . + . 2.500e+01 -5.000e+00 . . + . 3.000e+01 -6.000e+00 . . + . 3.500e+01 -7.000e+00 . . + . 4.000e+01 -8.000e+00 . . + . 4.500e+01 -9.000e+00 . . + . 5.000e+01 -1.000e+01 . + . 5.500e+01 -1.100e+01 . + . . 6.000e+01 -1.200e+01 . + . . 6.500e+01 -1.300e+01 . + . . 7.000e+01 -1.400e+01 . + . . 7.500e+01 -1.500e+01 . + . . 8.000e+01 -1.600e+01 . + . . 8.500e+01 -1.700e+01 . + . . 9.000e+01 -1.800e+01 . + . . 9.500e+01 -1.900e+01 . + . . 1.000e+02 -2.000e+01 + . . ---------------------|------------------------|--- ---------------------| sweep v#branch-2.00e+01 -1.00e+01 0.00e+00 

In beide uitvoerformaten vertegenwoordigt de linkerkolom met getallen de batterijspanning bij elk interval, aangezien deze toeneemt van 0 volt tot 100 volt, met 5 volt per keer. De cijfers in de rechterkolom geven de circuitstroom aan voor elk van die spanningen. Kijk goed naar die getallen en je zult de proportionele relatie tussen elk paar zien:

De wet van Ohm (I=E/R) geldt in alle gevallen, waarbij elke stroomwaarde 1/5 van de respectieve spanningswaarde is, omdat de circuitweerstand precies 5 is. Nogmaals, de negatieve getallen voor stroom in deze SPICE-analyse zijn meer een gril dan iets anders. Let alleen op de absolute waarde van elk getal, tenzij anders aangegeven.

Computerprogramma's om SPICE-gegevens te interpreteren en om te zetten

Er zijn zelfs enkele computerprogramma's die de niet-grafische gegevensuitvoer van SPICE kunnen interpreteren en omzetten in een grafische plot. Een van deze programma's heet Nootmuskaat , en de uitvoer ziet er ongeveer zo uit:

Merk op hoe Nootmuskaat de weerstandsspanning v(1) (spanning tussen knooppunt 1 en het impliciete referentiepunt van knooppunt 0) plot als een lijn met een positieve helling (van linksonder naar rechtsboven). Of je ooit vaardig bent geworden in het gebruik van SPICE is niet relevant voor de toepassing ervan in dit boek.

Het enige dat telt, is dat u begrijpt wat de cijfers betekenen in een door SPICE gegenereerd rapport. In de volgende voorbeelden zal ik mijn best doen om de numerieke resultaten van SPICE te annoteren om verwarring te voorkomen en de kracht van deze geweldige tool te ontsluiten om u te helpen het gedrag van elektrische circuits te begrijpen.

GERELATEERDE WERKBLAD:

  • Basiswerkblad elektriciteit
  • Basis DC-werkblad
  • Basiswerkblad netwerkanalyse
  • Basis AC-werkblad
  • Basiswerkblad halfgeleider
  • Basiswerkblad analoog circuit
  • Basiswerkblad digitaal circuit

Industriële technologie

  1. Inleiding tot SPICE
  2. Fundamenten van SPICE-programmering
  3. Circuitcomponenten
  4. Motorbesturingscircuits
  5. Meerdere combinatiecircuits gebruiken
  6. Versterkercircuits
  7. Wat zijn elektrische circuits?
  8. Power in elektrische circuits
  9. Resonantie in serie-parallelle circuits
  10. Elektrische circuits bouwen
  11. Een inleiding tot verschillende hydraulische circuits