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.

_images/cm_0100a.png

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.

_images/cm_0100j.png

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);
_images/cm_0100b.png

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);
_images/cm_0100c.png

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
_images/cm_0100d.png

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);
_images/cm_0100e.png

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.

_images/cm_0100w.png

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) 
_images/cm_0100z.png

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 }$,);
_images/cm_0100f.png

Obr. 19 Makrá pre popis dvojpólov.#

Umiestňovanie dvojpólov #

Na pracovnej ploche môžeme umiestňovať dvojpóly niekoľkými spôsobmi:

  1. Zadaním východzieho bodu kreslenia presunom kurzora:

     move to pos; 
     object([length], ... );
    
  2. Zadaním polohy stredu dvojpólu, smeru a velkosti:

     object( at pos [dir [length]], ... );
    
  3. Zadaním smeru, veľkosti objektu a polohy východzieho bodu:

     object( [dir] [lenght] from pos, ... );
    
  4. Pokračovaním od koncového bodu predchádzajúceho objektu:

     object(dir [length], ... );
    
  5. Zadaním koncových bodov dvojpólu:

     object(from pos_A to pos_B);
    
  6. 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;
_images/cm_0100k.png

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,,);
    
_images/cm_0100g.png

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.

_images/radio_325.jpg

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.

_images/cm_0100n.png

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);')
_images/cm_0100m.png

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 );
_images/cm_0100h.png

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;
_images/cm_0100i.png

Obr. 26 Zobrazenie úbytku napätia na rezistoroch.#