Operačné zosilovače

Operačné zosilovače #

Operačné zosilovače patria v CicuitMacros medzi multipóly a podobne pri ako iných multipóloch ich vývody nie sú uložené v celočíselnej mriežke. Okrem štandardných atribútov pre plošné objekty (.s, …) sú súčasťou prvku doplnkové atribúty (.NE ..,) pre pozície bodov na značke a atribúty pre prístup k vývodom zosilovača. Atribúty pre pripojenie napájacích vývodov (.V1, .V2) sú dostupné len pri použití parametra P.

opamp(linespec, label+, label-, size, TPR);

parametre:

  linespec             - orientácia a dĺžka výstupu
  label+               - alternatívne označenie (+) vstupu
  label-               - alternatívne označenie (-) vstupu
  size                 - veľkosť
  T                    - skrátený výstup
  P                    - zobrazenie napájania
  R                    - zámena (+) (-) vstupov
  
atribúty:

.s   .w   .n.  .e      - stredy strán obrysu
.sw  .se  .nw  .ne     - rohy obrysu
.NE .SE                - poloha stredov hornej a dolnej strany značky
.W                     - poloha stred medzi vstupmi
.S .E .N               - poloha rohov značky
.In1 .In2              - poloha vstupov (+) a (-)
.Out                   - poloha výstupu
.V1 .V2                - poloha napájacích prívodov, parameter P

Príklady použitia značky operačného zosilovača

A1: opamp(); 
A2: opamp(,,,,R); 
A3: opamp(,"\sf x" ljust, "\sf y" ljust) "\sf A3" rjust;
A4: opamp(1,,,,TP); 
A5: opamp(up_ 1,,,0.85,);
_images/cm_0204d.png

Nasledujúci príklad ukazuje ukladanie prvkov obvodu voči zosilovaču, ktorý je na plochu uložený absolútne ako prvý komponent zapojenia, pripojené komponenty ukladáme relatívne voči jeho vývodom. V zapojení sú použité popisy a matematické vzťahy zadané syntaxou LaTeX-u. Pre zobrazenie vstupných a výstupných uzlov obvodov sú použité kružnice.

# Invertujuci zosilovač

OP: opamp()
    line from OP.In1 left 0.5;
    
DN: dot;
        # ---- poloha viazaná k In1
    resistor(2,,E); llabel(,R_1,); 
    circle rad 0.1; "\textit{In}" at last circle.n above;
    
    line from DN up_ 1;
    resistor(right_ 2.5,,E); llabel(,R_2,);
    line down_ (Here.y - OP.Out.y);
    
DO: dot;
    { line to OP.Out; }
    line right_ 1;
    circle rad 0.1; "\textit{Out}" at last circle.n above;
    line from OP.In2 left_ 0.5 then down_ 0.5; gnd; 

    # ---- popis a matematicky vztah
    "\textit{Invertujúci zosilovač}" at OP.c + (0, -1.5);
    "$K = -\dfrac{R_2}{R_1}$" at OP.c + (0, -2.25);
_images/cm_0204a.png

Obr. 75 Zapojenie invertujúceho a neinvertujúceho zosilovača.#

Použitie parametra P pre zobrazenie napájacích vývodov zosilovača a použitie makra reversed() pre zobrazenie kondenzátora \(C_2\) s obrátenou polaritou ukazuje nasledujúci príklad.

OA: opamp(,,,,P);                # zobrazenie napajacich privodov
    line from OA.V1 up_ .75;
    dot;
    { 
    line right_ 0.25; 
    capacitor(right_ 1,C+); llabel(,C_1,); rlabel(,10 \mu F,); 
    line .5 then down_ 0.25; gnd;
    }
    line 0.75; circle rad 0.1; "$V+$" at last circle.n above;

    line from OA.V2 down_ .75;
    dot;
    {
        line right_ 0.25; reversed(`capacitor', right_, C+); llabel(,C_2,); 
        rlabel(,10 \mu F,); 
        line .5 then down_ 0.25; gnd;
    }
    line 0.75; circle rad 0.1; "$V-$" at last circle.s below;

    line from OA.In1 left 0.5;
    line from OA.In2 left 0.5;
_images/cm_0204b.png

Obr. 76 Obvod napájania operačného zosilovača.#

V komplikovanejšom zapojení Wien-Robisonovho aktívneho filtra (vo výpise sú vynechané nepodstatné časti) sú použité vnorené bloky pri kreslení vetiev obvodu a použitá konštrukcia with pri ukladaní zosilovača OA2 na aktuálnu polohu vývodom In2.

OA1: opamp(,,,,); "$A_1$" at OA1.SE below ljust;
    line from OA1.In1 left_ 0.5;
    
...
...
    
R1: resistor(right_ 2.15,,E); rlabel(,R_1,); dot;
    {line down_ (Here.y-OA1.Out.y) then to OA1.Out;}

    line right_ 1; dot;
    { C1: capacitor(down_ 2.25); rlabel(,C,);}
    line right_ 0.75; dot;
    {                                          <------ blok
    R2: resistor(down_ 2.25,,E); llabel(,R_2,); 
        dot; 
        {                                      <------ vnorený blok
            line right_ 2;
            OA2: opamp() with .In2 at Here;    <------ poloha In2
            "$A_2$" at OA2.SE below ljust;
        }
        {
            C2:  capacitor(down_ 1); rlabel(,C,);
            R22: resistor(down_ 1,,E); llabel(,R_2,);
                gnd;
        }
        line to C1.end; 
    }
...
...
_images/cm_0204c.png

Obr. 77 Zapojenie aktívneho filtra.#