Circuitikz:包含运算放大器的完整方案

Circuitikz:包含运算放大器的完整方案

我请求任何人提供该图表的乳胶代码。

\begin{circuitikz}
\draw
(0,0) node[op amp] (op1) {}
(op1.-) to[short,*-*] ++(-0.8,0)
to [R,l=$R_1$,*-*] (-3.8,0.5) node(ex){}
to [short,*-o] ++ (-0.5,0) coordinate(ex1)
(op1.-) to[short,*-] ++(0,1.0) coordinate (leftC)
(op1.+) to ++(0,-1) node[cground]{}
(op1.-) to[short,*-] ++(0,1) coordinate (leftR)
to[R,l=$R_2$] (leftR -| op1.out)
to[short,-*] (op1.out);
\draw %----------------------------------------------Change
(op1.out)++(3.5,-0.5)node[op amp] (op2){}
(op1.out) to[R,l=$R$,o-*] (op2.-)
(op2.-) to [short,-*] ++(0,1.5) coordinate (leftC2)
to [C,l=$C$] (leftC2 -| op2.out)
to [short,-*] (op2.out)
to [short,-o] ++ (0.5,0) coordinate(end2)
(op2.+) to ++(0,-1) node[cground]{};
\draw %----------------------------------------------Change
(end2)++(3.5,-0.5)node[op amp] (op3){}
(end2) to[R,l=$R$,o-*] (op3.-)
(op3.-) to [short,-*] ++(0,1.5) coordinate (leftC3)
to [C,l=$C$] (leftC3 -| op3.out)
to [short,-*] (op3.out)
to [short,-o] ++ (0.5,0) coordinate(end3)
(op3.+) to ++(0,-1) node[cground]{};
\draw %----------------------------------------------Change
(end3)++(3.5,-0.5)node[op amp] (op4){}
(end3) to[R,l=$R$,o-*] (op4.-)
(op4.-) to [short,-*] ++(0,1.5) coordinate (leftC4)
to [C,l=$C$] (leftC4 -| op4.out)
to [short,-*] (op4.out)
to [short,-o] ++ (0.5,0) coordinate(end4)
(op4.+) to ++(0,-1) node[cground]{};
\end{circuitikz}

我已经写了上面的代码。我无法在一张图中画出 6 个运算放大器,一个运算放大器需要反转。

在此处输入图片描述

答案1

像这样?

在此处输入图片描述

我分三步绘制上面的图像:

  • 第一步,我重新绘制了运算放大器的主链,在它们的位置我使用了相对坐标,并定义节点锚定在它们的负输入端。
  • 第二步是添加输出运算放大器,命名为 op5,及其反馈环路。它op3通过使用选项位于运算放大器下方node distance
  • 最后一个是反馈运算放大器,名为op6,并将反馈环路连接至链中的第一个运算放大器(op1)。
\documentclass[margin=3mm]{standalone}
\usepackage{circuitikz}
\usetikzlibrary{positioning}

\begin{document}
\begin{circuitikz}
\draw
    (0,0)   node[op amp] (op1) {}
    (op1.+) -- ++(0,-0.5) node[cground]{}
    (op1.-) to [R,a=$R_1$,-o] ++ (-2,0) node[left] {$V_{\textrm{in}}$}
    (op1.-) to[short,*-]    ++ (0,1)  coordinate (leftR)
            to[R=$R_2$] (leftR -| op1.out)
            to[short,-o] (op1.out)
%---------------------------------------------- op2
            to[R=$R$,-*]    ++ (2,0)
            node[op amp, anchor=-] (op2){}
    (op2.+) -- ++(0,-0.5) node[cground]{}            
    (op2.-) -- ++(0,1) coordinate (leftC2)
            to [C=$C$]  (leftC2 -| op2.out)
            to [short,-*]   (op2.out)
            to [short,-*]   ++ (0.5,0) coordinate (end2)
            to [R=$R$,-*]   ++ (2,0)
%---------------------------------------------- op3
            node[op amp, anchor=-] (op3){}
    (op3.+) -- ++(0,-0.5) node[cground]{}
    (op3.-) -- ++(0,1) coordinate (leftC3)
            to [C=$C$]  (leftC3 -| op3.out)
            to [short,-*]   (op3.out)
            to [short,-*]   ++ (0.5,0) coordinate (end3)
            to [R=$R$,-*]   ++ (2,0)
%---------------------------------------------- op4
            node[op amp, anchor=-] (op4){}
    (op4.+) -- ++(0,-0.5) node[cground]{}
    (op4.-) -- ++(0,1) coordinate (leftC4)
            to [C=$C$]  (leftC4 -| op4.out)
            to [short,-*]   (op4.out)
            to [short,-*]   ++ (0.5,0) coordinate (end4)
            to [short,-o]   ++ (0.5,0) node[right] {$V_{1}$}
%---------------------------------------------- op5 + feedback loops
            node[op amp, below=4 of op3] (op5){}
    (op5.+) -- ++(0,-0.5) node[cground]{}
    (op2.out) |- (end2 |- op5.-)
            to [R=$R$,-*]   (op5.-)
    (op5.-) to[short,*-]    ++ (0,1)  coordinate (leftR5a)
            to[R=$1/A$] (leftR5a -| op5.out)
            to [short,-*]   (op5.out)
            to [short,-o]   ++ (0.5,0) node[right] {$V_{\textrm{out}}$}
    (leftR5a) to[short,*-]  ++ (0,1)  coordinate (leftR5b)
    (leftR5b) to [R=$1/C$,*-]   ++ (2,0) -| (op4.out)
    (leftR5b) to[short,*-]      ++ (0,1)  coordinate (leftR5c)
    (leftR5c) to [R=$1/B$]      ++ (2,0) -| (end3)
%---------------------------------------------- op6 + feedback loops
    (leftR) to[short,*-]    ++ (0,1)  coordinate (leftRa)
    (leftRa) to[R=$1/E$]    ++ (2,0) -| (end3)
    (leftRa) to[short,*-]   ++ (0,2)  coordinate (leftRb)
            to[R=$R$]       ++ (2,0)
            node[op amp, xscale=-1, anchor=out] (op6){}
    (op6.+) -- ++(0,-0.5) node[cground]{}
    (op6.-) to[short,-*] (op6.- -| end2)  coordinate (in6a)
            to[R=$1/D$]   ++ (0,-2) -- (end2)
    (in6a)  -- (op6.- -| end4)  
            to[R=$1/D$]   ++ (0,-2) -- (end4)
    ;
\end{circuitikz}
\end{document}

相关内容