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. 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 nasledujúcom obrázku. 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.

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 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.

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 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.

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.

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.

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 Typy diód.#

Zdroje #

source(linespec, chars, diameter, R, body attributes, body name)

parametre:

    linespec - dĺžka a umiestnenie diódy
    
    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;

    body attributes  modifies the circle (body) with e.g., color or fill;

    body names

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. 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. 17 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);
    

Príklady použitia

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

Obr. 18 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:

  • s prvým argumentom, v ktorom zadáme makro s parametrami prvku, 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. 19 Zobrazenie premenných prvkov.#

V analogových zapojeniach bývajú premenné prvku (potenciometre, trimre, kondenzátory) zobrazené s fyzickým zapojenie 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.

_images/radio_325.jpg

Obr. 20 Použitie premenných prvkov v zapojení rádia s integrovaným obvodom.#

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()

_images/cm_0100n.png

Obr. 21 Zobrazenie upravených premenných prvkov z knižnice lib_user.#

Nasledujúci skript zobrazuje časť zapojenia z predchádzajúceho obrázku. Pretože rezistory v zapojení sú mierne dlhšie ako štandardné rezistory v CircuitMacros, bolo pre ich zobrazenie definované nové makro res()

define(`res', `ebox($1, 0.8);')
_images/cm_0100m.png

Obr. 22 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(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

Makro môžeme použiť nielen na označovanie prúdu prvkami zapojenia, ale aj na vyznačenie prúdu vetvou obvodu príkazom line. Hodnota parametra frac závisí od aktuálneho nastavenia vykreslenia šípky a parametrov prostredia, približne zodpovedá aktuálnej dĺžkovej jednotke.

R1: resistor(right_ 3,,E); 
    llabel(,R_2,); rlabel(,100,); 
    b_current(i_{12} ); 

R1: resistor(right_ 3 at (2.5, 2.5),,E) ; 
    llabel(,R_2,); rlabel(,100,); 
    b_current(i_{34}, below_, Out, End, 0.45 ); 

L1: line from (5,1) to (8,1) "L1" above;
    b_current(i_{56}, above_, In, Start, 0.6 ); 

L2: line from (5,2.5) to (8,2.5) "L2" below;
    b_current(i_{78}, above_, In, End, 0.6 );
_images/cm_0100h.png

Obr. 23 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(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

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. 24 Zobrazenie úbytku napätia na rezistoroch.#