我的电路中的接地对齐

我的电路中的接地对齐

我希望能够将左侧的质量与右侧的质量对齐:我尝试了几种方法,但都无济于事,我无法对齐。我也无法将 15kW 指示置于左侧阻力上方。感谢您的帮助

\documentclass[border=1mm]{standalone}

\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage[european, straightvoltages]{circuitikz}
\usepackage{siunitx}
\usepackage{tabularx}
\usetikzlibrary{babel}

\begin{document}

\begin{circuitikz}[voltage dir=RP]
\draw (0,2.5) node[en amp](opamp){\texttt{LM358}}
(opamp.up) to[crossing] ++(0,0.5) node[above]{\SI{5}{\volt}}
(opamp.down) node[ground]{}
;
\draw (opamp.-) --++(0,1) -| (opamp.out) to[short] ++(0.5,0) coordinate(Rsortie) to[R, l^=$\SI{1}{\kilo\ohm}$] ++(0,-2) node[ground] (GND){}++(0,-0.5);

\draw (opamp.+) --++(-1,0) coordinate(deuxR) to[R, l_=$\SI{10}{\kilo\ohm}$] ++(0,-2) node[ground] {} (GND -|deuxR);
\draw (deuxR) to[R, l^=$\SI{15}{\kilo\ohm}$] ++(-3.5,0) to[short, -o] ++(-0.5,0) coordinate(depart);

\draw (Rsortie) to[short, -o] ++(1.5,0) coordinate(Vs);
\draw (Vs |- GND) node[ground]{} to[open, v>=$V_s$] (Vs);
\draw (Vs) node[above]{A1};

\draw (depart) node [above] {D11};

\end{circuitikz}


\end{document}

答案1

我会按照以下方式绘制电路,从左到右书写,因为我觉得这样更自然。因此,我将从

\draw (0,0)  node[above]{D11} to[R=\SI{15}{\kohm}, o-] ++(3,0) coordinate(corner-in)
        to [R=\SI{10}{\kohm}] ++(0,-3) % this -3 will fix the gnd line
        node[tlground](GND){};

在此处输入图片描述

现在让我们定位运算放大器并将其连接到 GND:

\draw (corner-in) -- ++(1,0) node[en amp, anchor=+](opamp){\texttt{LM358}}
        (opamp.down) -- (opamp.down|-GND) node[tlground]{};

在此处输入图片描述

现在,我觉得输入的标准位置en amps有点局促。快速浏览手册后,我发现解决方案是\ctikzset{tripoles/en amp/input height=0.45};我会把它放在序言中(完整代码稍后发布)。

下一步是关闭缓冲反馈回路并添加电源。我建议不要使用交叉的东西,但如果你想要,解决方案可能是:

     \draw (opamp.up) to[crossing, name=X] ++(0,1) node[vcc]{\SI{5}{V}};
     \draw (opamp.-) |- (X.center) -| (opamp.out);

注意我如何给交叉口命名,然后使用锚点X.center画线 --- 所以现在我可以改变++(0,1)那边,任何东西都会回到原位。|--|非常方便 TiZ 快捷方式。

在此处输入图片描述

现在让我们完成带有负载电阻和输出电压指示的电路。此时,我决定tlgroundground有小尾巴,并将地电平移高——注意,这只是改变数字并搜索并替换为tlgroundground最终代码是

\documentclass[border=2mm]{standalone}
\usepackage[european, RPvoltages, siunitx, straightvoltages]{circuitikz}
\ctikzset{tripoles/en amp/input height=0.45}
\begin{document}
    \begin{circuitikz}
        \draw (0,0)  node[above]{D11} to[R=\SI{15}{\kohm}, o-] ++(3,0) coordinate(corner-in)
        to [R=\SI{10}{\kohm}] ++(0,-2) % this -2 will fix the gnd line
        node[ground](GND){};
        \draw (corner-in) -- ++(1,0) node[en amp, anchor=+](opamp){\texttt{LM358}}
        (opamp.down) -- (opamp.down|-GND) node[ground]{};
        \draw (opamp.up) to[crossing, name=X] ++(0,1) node[vcc]{\SI{5}{V}};
        \draw (opamp.-) |- (X.center) -| (opamp.out);
        \draw (opamp.out) -- ++(0.5,0) coordinate(rload)
        to[short, -o] ++(1.5,0) coordinate(out) node[above]{A1};
        \draw (rload) to[R=\SI{1}{\kohm}] (rload|-GND) node[ground]{};
        \draw (out) to[open, v^=$V_s$] (out|-GND) node[ground]{};
    \end{circuitikz}
\end{document}

在此处输入图片描述

请注意,最后一张截图是用 完成的evince,而前面的截图是用 完成的okular,它对抗锯齿线条有一个奇怪的想法……

最后,真正让我开始使用 的circuitikz是,现在,只需进行一些微小的更改(只需更改en ampop amp,稍微提高一点vcc— 再次更改一个数字! — 并\ctikzsetstyle{romano}在加载包后添加某处),您就可以

在此处输入图片描述

最后要注意的是:唯一的绝对坐标是(0,0)起始处的。移动它,电路就会跟随;这非常适合创建重复项,或者创建可以重复使用的基本块(我通常为它们创建宏)。

答案2

像这样吗?

\documentclass[border=1mm]{standalone}

\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage[european, straightvoltages]{circuitikz}
\usepackage{siunitx}
\usepackage{tabularx}
\usetikzlibrary{babel}

\begin{document}

\begin{circuitikz}[voltage dir=RP]
\draw (0,2.5) node[en amp](opamp){\texttt{LM358}}
(opamp.up) to[crossing] ++(0,0.5) node[above]{\SI{5}{\volt}}
(opamp.down) node[ground]{}
;
\draw (opamp.-) --++(0,1) -| (opamp.out) to[short] ++(0.5,0) coordinate(Rsortie) to[R, l^=$\SI{1}{\kilo\ohm}$] ++(0,-2) node[ground] (GND){}++(0,-0.5);

\draw (opamp.+) --++(-1,0) coordinate(deuxR) to[R, l_=$\SI{10}{\kilo\ohm}$] ++(0,-1.66) node[ground] {} (GND -|deuxR);
\draw (deuxR) to[R, l_=$\SI{15}{\kilo\ohm}$] ++(-3.5,0) to[short, -o] ++(-0.5,0) coordinate(depart);

\draw (Rsortie) to[short, -o] ++(1.5,0) coordinate(Vs);
\draw (Vs |- GND) node[ground]{} to[open, v>=$V_s$] (Vs);
\draw (Vs) node[above]{A1};

\draw (depart) node [above] {D11};

\end{circuitikz}

\end{document}

我没有对你的例子做太多改动,只改了两件事。

  1. 为了使 15 kΩ 电阻的标签位于电阻上方,我将l^=$\SI{15}{\kilo\ohm}$其改为 。这是因为电阻是从右到左绘制的,因此和l_=$\SI{15}{\kilo\ohm}$颠倒了。^_

  2. 为了让左侧的地面与右侧的地面垂直对齐,我只需更改节点的放置位置即可。在这里,我只是尝试了不同的值,直到看起来足够对齐,但通常确保对齐的一个好方法是使用绝对坐标来放置对象,而不是相对于其他对象放置对象。

相关内容