Dvojpóly#
Základné elektronické komponenty (R,L,C, dióda, zdroje …) sú v CircuitMacros reprezentované ako dvojpóly. Na ich pripojenie do elektrického obvodu sú použité dva uzly. Typ dvojpólu je určený menom a jeho vzhľad je možno meniť parametrami, Obr. 11. Pre každý dvojpól je možné v zapojení zadať jeho meno, hodnotu alebo typ a v prípade potreby aj označenie vývodov. Všeobecný formát makra pre zobrazenie dvojpólov má tvar
[reference:] object([linespec], [parameters ...]);
reference - označenie objektu pre prístup k jeho parametrom
object - typ dvojpólu (resistor, capacitor ...)
linespec - dĺžka prívodov a umiestnenie objektu
parameters - parametre určujúce tvar objektu
Pri použití makra bez parametrov sa vykreslí dvojpól v prednastavenom tvare.
Obr. 11 Príklady dvojpólov.#
Základné rozmery a tvar dvojpólov v knižniciach CircuitMacros sú zobrazené na obrázku Obr. 12. Rozmery objektu závisia od aktuálneho nastavenia parametrov prostredia, ktoré sú popísané v kapitole Prostredie.
Obr. 12 Rozmery dvojpólu a jeho atribúty.#
Vlastnosti dvojpólov potom popisujú nasledujúce parametre
premenné
dimen_ - veľkosť prvku určená na základe parametrov kresliacej plochy
elen_ - dĺžka vývodov prvku, štandardne 1.5*dimen_
atribúty
.start - súradnice začiatku vykresľovania prvku
.centre - súradnice stredu prvku
.end - súradnice ukončenia vykresľovania prvku
Definície najčastejšie používaných dvojpólov - rezistor, kondenzátor, cievka, dióda a zdroj sú uvedené v nasledujúcich kapitolách. Kompletný zoznam makier pre kreslenie dvojpólov a ich parametrov je v dokumentácii.
Rezistor #
Makro pre zobrazenie rezistora v CircuitMacros je možné parametrami upraviť pre zobrazenie rôznych typov príbuzných prvkov. Definícia makra pre vykreslenie rezistora
rezistor(linespec, n, param, cwidth);
parametre:
linespec - dĺžka a umiestnenie rezistora
n - pocet cyklov rezistora v anglos. zobrazeni (default 3)
param - typ rezistora
E - box, európske označenie
ES - box prečiarknutý
Q - posunute anglos. zobrazenie
H - štvorcove zobrazenie - výkonovy rezistor
V - varistor
cwidth - rozmer cyklov rezistora v anglos. zobrazení
Makro bez parametrov vykreslí rezistor s prednastavenými hodnotami ako značku rezistora v anglosaskej notácii, Obr. 13.
R1: resistor; R2: resistor(3,6,); R3: resistor(,,Q); R4: resistor(,,H);
R5: resistor(,,E); R6: resistor(,,ES); R7: resistor(,,V); R8: resistor(3,,E,1.5);
Obr. 13 Vybrané typy rezistorov.#
Warning
Medzery pred parametrom makra sú ignorované, v niektorých prípadoch ale môžu byť medzery za parametrom pokladané za súčasť parametra makra. Je preto vhodné zadávať parametre makier bez medzier.
resistor(,, E ); # chyba, ignorovanie parametra E
resistor(,,E); # správne vykreslenie rezistora
Kondenzátor #
Kondenzátor je orientovaný dvojpól, preto okrem jeho typu môžeme parametrom Rev zvoliť jeho polaritu. Pomocou parametrov height a width môžeme upraviť veľkosť a vzdialenosť elektród.
capacitor(linespec, chars, [Rev], height, width)
parametre:
linespec - dĺžka a umiestnenie kondenzátora
chars - typ kondenzátoea
F or blank: flat plate
dF flat plate with hatched fill
C curved-plate
dC curved-plate with variability arrowhead
CP constant phase element
E polarized boxed plates
K filled boxed plates
M unfilled boxes
N one rectangular plate
P alternate polarized
+ adds a polarity sign
+L polarity sign to the left of drawing direction
Rev - reversed polarity
height - defaults F: dimen_/3, C,P: dimen_/4, E,K: dimen_/5
wid - defaults F: height*0.3, C,P: height*0.4, CP:height*0.8, E,K: height
Makro bez paramerov vykreslí kondenzátor s prednastavenými rozmermi, Obr. 14.
C1: capacitor; C2: capacitor(,C,); C3: capacitor(,E); C4: capacitor(,K);
C5: capacitor(,M,,0.75, 0.25);
C6: capacitor(,P); C7: capacitor(, CP); C8: capacitor(,+LC);
Obr. 14 Vybrané typy kondenzátorov.#
Cievka #
Pri cievke môžeme meniť tvar vinutia, počet závitov, ich veľkosť a môžeme k cievke pridať jadro, Obr. 15.
inductor(linespec, W|L, cycles, M|P|K, loop wid)
parametre:
linespec - dĺžka a umiestnenie cievky
W|L - (default narrow), W: wide, L: looped;
cycles - number of arcs or cycles (default 4);
M|P|Kn - M magnetic core
P powder (dashed) core,
K long-dashed core,
n=integer (default 2) number of corelines named M4Core1, M4Core2
loop width - default L, W: dimen_/5; other:dimen_/8
Obr. 15 Typy cievok.#
Dióda #
Dióda je orientovaný dvojpól. Parametrom Rev môžeme otočiť smer diódy. Doplnenie typu diódy písmenom K vykreslí nevyplnenú značku diódy, Obr. 16.
diode(linespec, chars, [Rev][E])
parametre:
linespec - dĺžka a umiestnenie diódy
chars - typ diódy
B bi-directional
b bi-directional with outlined zener crossbar
CR current regulator
D diac
G Gunn
L open form with centre line
LE[R]: LED [right]
P[R] photodiode [right]
S Schottky
Sh Shockley
T tunnel
U limiting
V varicap
v varicap (curved plate)
w varicap (reversed polarity)
Z zener
appending K to arg 2 draws open arrowheads;
Rev|E - Rev - reversed polarity, E - zobrazenie púzdra
Makro bez paramerov vykreslí diódu s prednastavenými rozmermi, Obr. 16.
D1: diode; D2: diode(,S,); D3: diode(,V); D4: diode(,v);
D5: diode(,U); D6: diode(,ZK); D7: diode(,T); D8: diode(,,R);
Obr. 16 Vybrané typy diód.#
Zdroje #
Nápájanie a zdroje napájania sú intergrálnou súčasťou takmer každého elektronicého zapojenia. V CircuitMacros sú definované makrá pre značky štandardných zdrojov ako aj pre batériové napájanie, Obr. 17 a Obr. 18.
source(linespec, chars, diameter, R, attrib, name)
parametre:
linespec - dĺžka a umiestnenie zdroja
chars - typ zobrazenia
AC AC source;
B bulb;
F fluorescent;
G generator;
H step function;
I current source;
i alternate current source;
ii double arrow current source;
ti truncated-bar alternate current source;
L lamp;
N neon;
NA neon 2;
NB neon 3;
P pulse;
Q charge;
R: ramp; S: sinusoid;
SC quarter arc, SCr right orientation;
SE arc, SEr right orientation;
T triangle;
U square-wave;
V voltage source;
X interior X;
v alternate voltage source;
tv truncated-bar alternate voltage source;
other: custom interior label or waveform;
diameter - priemer kruhu zdroja
R - reversed polarity;
attrib - parametre zobrazenia kružnice (farba, výplň ...)
names - text v strede kružnice
Najčastejšie používané značky zdrojov sú na obrázku Obr. 17.
Obr. 17 Značky zdrojov.#
Značku jednosmerného zdroja vytvoríme pomocou značky prázdneho zdroja a označenie doplníme pomocou makra DCsymbol(), podobnú funkciu má aj makro ACsymbol() pre označenie striedavých veličín. Pre jednosmerné zdroje môžeme použiť aj označenie pomocou makra battery().
DCsymbol(at position, length, height, U|D|L|R|degrees)
ACsymbol(at position, length, height, [n:][A]U|D|L|R|degrees)
parametre:
at position - umiestnenie značky
length - velkosť značky
height
U|D|L|R|degrees - orientácia
n: - počet vlnoviek pri AC značke
battery(linespec,m,R)
parametre:
linespec - dĺžka a umiestnenie zdroja
m - počet článkov batérie
R - otočenie polarity
Použitie makier ACsymbol() a DCsymbol() nie je viazané len na ich použitie so zdrojmi, Obr. 18, značku môžeme využiť aj pri označovaní veličín napr. na svorkách alebo konektoroch. Pretože makrá sa vzťahujú k stredu posledného objektu, pri použití v kombinácii s textom je vhodné text posunúť od stredu doľava pomocou “tvrdej” medzery \, pretože obyčajná medzera je pri renderovaní textu ignorovaná.
source; { ACsymbol(at last [],,,2:R) }
source; { DCsymbol(at last [],,,R) }
battery(,1,R);
battery(,3,); rlabel(,,+)
"5V \,\," at (Orig+(6,0.75)) rjust; ACsymbol(at last "" ,,,1:R)
"5V \,\," at (Orig+(6,1.25)) rjust; DCsymbol(at last "" ,,,R)
Obr. 18 Značky zdrojov s označením typu.#
Popis dvojpólov #
Pre popis dvojpólov sú definované podporné makrá llabel(), clabel(), rlabel() a dlabel() pre popis posledného uloženého prvku. Pre označenie je možné použiť syntax pre zápis matematických vzťahov LaTeX-u. Text popisu nemusí byť uzatvorený medzi znakmi $...$.
llabel( slabel, xlabel, elabel ) - označenie po lavej strane v smere ukladania
clabel( slabel, xlabel, elabel ) - označenie po pravej strane v smere ukladanie
rlabel( slabel, xlabel, elabel ) - označenie cez stred v smere ukladania
dlabel( long, lat, slabel, xlabel, elabel, [X][A|B][L|R])
- označenie s offsetom voči stredu
slabel - označenie v bode začiatku prvku
xlabel - označenie v strede prvku
elabel - označenie v bode konca prvku
long - pozdĺžna vzdialenosť od od určenej pozície
lat - kolmá vdialenosť od určenej pozície
X - stred prvku
A - above, text nad zadanou pozíciou
B - below, text pod zadanou pozíciou
L - ljust, zarovnanie textu doľava
R - rjust, zarovnanie textu doprava
Umiestnenie popisu zavisí od aktuálneho smeru ukladania komponentu. rlabel() ukladá text po pravej strane v smere ukladania, Obr. 19. V prípade potreby môžeme modifikovať aj font a veľkosť textu.
R1: resistor(,,); llabel(a,R_1,b);
C2: capacitor,,C); llabel( ,C_2, ); rlabel(, 10 \mu F, );
R3: resistor(,,E); llabel( ,R_3, ); clabel(, $\scriptsize{123}$, );
R4: resistor(,,E); dlabel(0.75, 0.35, aa ,R_4, bb ,X);
R5: resistor(,,E); dlabel(0.5, 0.3, aa ,R_5, bb ,L);
D6: diode(2); llabel( ,\sf D_6,); rlabel(,$\sf \footnotesize{ 1N4007 }$,);
Umiestňovanie dvojpólov #
Na pracovnej ploche môžeme umiestňovať dvojpóly niekoľkými spôsobmi:
Zadaním východzieho bodu kreslenia presunom kurzora:
move to pos; object([length], ... );
Zadaním polohy stredu dvojpólu, smeru a velkosti:
object( at pos [dir [length]], ... );
Zadaním smeru, veľkosti objektu a polohy východzieho bodu:
object( [dir] [lenght] from pos, ... );
Pokračovaním od koncového bodu predchádzajúceho objektu:
object(dir [length], ... );
Zadaním koncových bodov dvojpólu:
object(from pos_A to pos_B);
Pomocou makier pre definovanie smeru ukladania objektov:
Point_(degrees); object; point_(radians); object; rpoint_(rel linespec); object
Príklady použitia sú na obrázku Obr. 20.
move to (1,2.5); resistor(2); # (1)
resistor(at (2,1.5) right_ 2,,E); # (2)
resistor(right_ 2 from (1,0.5)) # (3)
move to (4,2.5);
RA: resistor(right_ 2);
RB: resistor(down_ 2); # (4)
resistor(from RA.start to RB.end); # (5)
move to (7, 1.5);
Point_(45); resistor; # (6)
Point_(-45); resistor;
move to (7,0);
rpoint_(up_ 1 right_ 3); resistor;
Obr. 20 Príklady umiestňovania dvojpólov.#
Modifikácie dvojpólov #
Premenné prvky #
Pre zobrazenie premenných prvkov môžeme využiť makro variable().
variable(‘element’,[A|P|L|[u]N]|[u]NN]][C|S],[+|-]angle,length)
variable(,[A|P|L|[u]N]|[u]NN]][C|S],[+|-]angle,length)
parametre:
element - meno makra prvku, na ktorom bude vykreslený typ zmeny
[A|P|L|[u]N]|[u]NN]][C|S]
- označenie typu zmeny
A - šipka
P - potenciometer
L - čiara
N - parametrická zmena
uN
uNN
C|S - značka parametra
[+|-] angle - uhol a smer označenia zmeny,
length - dĺžka označenia
Makro môžeme použiť dvoma spôsobmi, Obr. 21:
s prvým argumentom, v ktorom zadáme makro s parametrami prvky, ktorý chceme označiť ako premenný,
makro použijeme podobne ako makrá na popis prvkov llabel() .., v tomto prípade ponecháme prvý argument prázdny.
move to (0,0) variable(`R1: resistor(right_ 2,,)',A); llabel(,R_1,); rlabel(a,10,b) R2: resistor(right_ 2,,E); variable(,P); llabel(,R_2,); rlabel(,100,); move to (1,1) V1: source(up_ 2, AC); variable(,A,,1.5); llabel(,V_1,); move to (3,1) C1: capacitor(up_ 2); rlabel(,C_1,); variable(,N,,);
Obr. 21 Zobrazenie premenných prvkov.#
V analogových zapojeniach bývajú premenné prvky (potenciometre, trimre, kondenzátory) zobrazené s fyzickým zapojen9m vývodov súčiastok tak, ako je to zobrazené na nasledjúcom obrázku. Pri ladiacich kondenzátoroch je zobrazený aj ich vzájomný mechanický súbeh, Obr. 22.
Obr. 22 Použitie premenných prvkov v zapojení rádia s integrovaným obvodom, TODO Citovať.#
Pre zobrazenie upravených premenných prvkov tak ako sú použité v predchádzajúcom zapojení sú v knižnici lib_user definované makrá vres_v() a vcap_v(), Obr. 23.
Obr. 23 Zobrazenie upravených premenných prvkov z knižnice lib_user.#
Nasledujúci skript zobrazuje časť zapojenia z predchádzajúceho obrázku Obr. 23, pretože rezistory v zapojení sú mierne dlhšie ako štandardné rezistory v CircuitMacros, bolo pre ich zobrazenie definované nové makro res(), Obr. 24.
define(`res', `ebox($1, 0.8);')
Obr. 24 Použitie premenných prvkov v časti zapojenia rádia.#
Prúd dvojpólom #
Pre zobrazenie šípky ktorá reprezentuje prúd v prívode prvku môžeme použiť makro b_current().
b_current(label, above_|below_, In|O[ut], Start|E[nd], frac);
parametre:
label - označenie veličiny (prúd ...)
above_ - poloha označenia
below_
In - smer šípky
Out
Start - súradnica dvojpólu, voči ktorej bude vykreslená šípka a jej smer
End
frac - posun šípky voči zadanej súradnici (Start | End)
Pre znázornenie prúdu vetvou obvodu môžeme zadefinovať podobné makro l_current(), ktoré vykreslí šípku v čiare medzi jej koncovými bodmi, Obr. 25.
l_current(label, above_|below_, frac);
parametre:
label - označenie veličiny (prúd ...)
above_ - vertikálna poloha označenia
below_
rjust_ - horizontálna poloha označenia
ljust_
frac - poloha šípky medzi koncovými bodmi 0..1, 0.5 - stred
Nasledujúci príklad ukazuje označenie prúdu prvkom a vetvou obvodu. Makro l_current() je implementované ako vetva, neovplyvňuje hodnotu kurzoru Here.
define( `l_current', `{
S: last line .start;
E: last line .end;
C: $3 between S and E;
line -> from S to C; line from C to E;
"$ $1 $" at last line.start $2;
}')
R1: resistor(right_ 3,,E);
llabel(,R_2,); rlabel(,100,);
b_current(i_{12} );
R1: resistor(right_ 3 at (2.5, 2),,E) ;
llabel(,R_2,); rlabel(,100,);
b_current(i_{34}, below_, Out, End, 0.45 );
L1: line from (5,0.5) to (8,0.5) "L1" above;
l_current(i_{56}, above_, 0.25 );
L2: line from (5,2) to (8,2) "L2" above;
l_current(i_{78}, below_, 0.75 );
Obr. 25 Zobrazenie prúdu rezistorom a vetvou obvodu.#
Napätie na dvojpóle #
Úbytok napätia na prvku znázorňujeme šipkou umiestnenou paralelne s prvkom. Pre zobrazenie môžeme využiť štandarný príkaz line -> … alebo makrá larrow() a rarrow().
larrow(label, direction);
rarrow(label, direction);
parametre:
label - označenie veličiny (napätie ...)
direction - smer šipky zadaný ako <- alebo ->
Použitie makier ukazuje nasledujúci príklad, Obr. 26.
S1: source(up_ 2.5, AC); larrow(V_{0}, <-); b_current(i_0, ,Out, End, 0.45 );
R1: resistor(right_ 2.5,, E); larrow(V_{1}, ->); rlabel(,R_1,);
dot; {tconn(1.5,O); "1" ljust;}
R2: resistor(down_ 2.5,, E); larrow(V_{2}, ->); rlabel(,R_2,)
dot; tconn(right_ 1.5,O); "2" ljust;
line to S1.start;
Obr. 26 Zobrazenie úbytku napätia na rezistoroch.#