如何正确定位开路节点电压?

如何正确定位开路节点电压?

我正在尝试标记两个电路元件之间的节点电压,但似乎无法将标签 (V(s)) 垂直置于元件之间。我这里漏掉了什么?我试图实现图中的电路。在此处输入图片描述 这是我目前所拥有的。

\documentclass{beamer}
\usepackage[utf8]{inputenc}
\usepackage{circuitikz}
\usepackage{tikz}
\usetikzlibrary{positioning, calc}

\begin{document}
\begin{frame}{Circuit 3}
\begin{center}
\begin{circuitikz}[american]
    \ctikzset{bipoles/thickness=2}
    \draw (0,0) to[short, f>^=$I(s)$] (0,-1) -- (-1,-1);
    \draw (-1,-1) to[L, l_=$sL$] (-1,-3);
    \draw (0,-1) -- (1,-1) to[isource, l=$\frac{i(0^-)}{s}$] (1,-3) -- (-1,-3);
    \draw (0,-3) to[short] (0,-4);
    \draw (0,-1) to[open, v=$V(s)$] (0,-3);
\end{circuitikz}
\end{center}    
\end{frame}
\end{document}

答案1

更新 2020-05-15

有一个新的拉取请求即将发布的 1.1.2 版本应该可以修复此问题,以便问题中的代码可以开箱即用。

原始答案

为了“揭开”其to[open, v=...]工作原理的神秘面纱:由于历史原因,电压放置circuitikz与电压约定一起诞生european;因此,短电压标签在这里有某种逻辑:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[RPvoltages]{circuitikz}
\usetikzlibrary{positioning, calc}

\begin{document}
\begin{circuitikz}[european voltages]
    \ctikzset{bipoles/thickness=2}
    \draw (0,0) to[short, f>^=$I(s)$] (0,-1) -- (-2,-1);
    \draw (-2,-1) to[L, l_=$sL$] (-2,-3);
    \draw (0,-1) -- (2,-1) to[isource, l=$\frac{i(0^-)}{s}$] (2,-3) -- (-2,-3);
    \draw (0,-3) to[short] (0,-4);
    \draw (0,-1) to[open, v=$V(s)$] (0,-3);
\end{circuitikz}
\end{document}

欧式电压电路

...这很好。也许我应该修改代码,以便能够american voltage按照open你的想法(如果你在https://github.com/circuitikz/circuitikz/issues我会跟踪它 --- 我正在考虑重写电压代码),但目前,标签位置与使用的电压类型(等)无关american。因此,您使用手动定位的想法是正确的。

作为补偿,我可以提供我的方法。我使用命名坐标和宏来控制电压和相对运动(这样,如果您想更改组件的位置,您总是只需更改一个数字):

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[RPvoltages]{circuitikz}
\usetikzlibrary{positioning, calc}
\def\putvoltage(#1)(#2)#3{%
    \node[below] at (#1) {$+$};
    \node[above] at (#2) {$-$};
    \node at($(#1)!0.5!(#2)$) {#3};
}
\begin{document}
\begin{circuitikz}[american]
    \ctikzset{bipoles/thickness=2}
    \draw (0,0) to[short, f>^=$I(s)$] ++(0,-1) coordinate(top) % change the -1 to move everything down
        -- ++(-2,0) coordinate(Rtop); % change the -2 to move right branch
    \draw (Rtop) to[L, l_=$sL$] ++(0,-2) coordinate (Rbot);
    \draw (top) -- ++(2,0) coordinate(Ltop) to[isource, l=$\frac{i(0^-)}{s}$ ] ++(0,-2) coordinate(Lbot);
    \draw (Rbot) to[short] (Lbot);
    \coordinate(bot) at (Rbot -| top); % vertically from top, horizontally form Rbot
    \draw (bot) -- ++(0,-1);
    % \draw (top) to[open, v=$V(s)$] (bot);
    \putvoltage(top)(bot){$V(s)$}
\end{circuitikz}
\end{document}

原始图像的新版本

答案2

看看,下面的方案是不是你在寻找的:

在此处输入图片描述

\documentclass{beamer}
\usepackage[utf8]{inputenc}
\usepackage{circuitikz}
\usepackage{tikz}
\usetikzlibrary{positioning, calc}

\begin{document}
\begin{frame}{Circuit 3}
\begin{center}
\begin{circuitikz}[american]
    \ctikzset{bipoles/thickness=2}
\draw (0,0) to[short, f>^=$I(s)$,-*] ++ (0,-1) coordinate (aux1)
            -- ++ (+1.5,0) 
            to[isource, l=$\frac{i(0^-)}{s}$, v>=$V(s)$] ++ (0,-3)
            -| ++ (-1.5,-1)
      (aux1) -- ++ (-1.5,0)   
           to[L, l=$sL$]    ++ (0,-3)  
           to[short,-*]     ++ (1.5,0);
\end{circuitikz}
\end{center}
\end{frame}
\end{document}

编辑:电压降从电感转移到电流源

答案3

我没有使用 \draw (0,-1) to[open, v=$V(s)$] (0,-3);我原始问题中的。我只是手动将“+”、“-”和“V(s)”放置在适当的位置。这不是那么优雅,但它给出了所需的结果。也许将来我可以揭开 \draw to[open] 工作原理的神秘面纱。修改后的代码如下:

\documentclass{beamer}
\usepackage[utf8]{inputenc}
\usepackage{circuitikz}
\usepackage{tikz}
\usetikzlibrary{positioning, calc}
\usepackage{amsmath}

\begin{document}
\begin{frame}
\begin{center}
\begin{circuitikz}[american]
    \ctikzset{bipoles/thickness=2}
    \draw (0,0) to[short, f>^=$I(s)$] (0,-1)node[below]{$+$} -- (-1,-1);
    \draw (-1,-1) to[L, l_=$sL$, name=L1] (-1,-3);
    \draw (0,-1) -- (1,-1) to[isource, l=$\frac{i(0^-)}{s}$] (1,-3) -- (-1,-3);
    \draw (0,-3)node[above]{$-$} to[short] (0,-4);
    \node at (0,-2) {$V(s)$};
    %\draw (0,-1) to[open, v=$V(s)$] (0,-3);
\end{circuitikz}
\end{center}  
\end{frame} 
\end{document}   

相关内容