Aufwärts- und/oder Abwärtstransformatorsymbol für Circuitikz

Aufwärts- und/oder Abwärtstransformatorsymbol für Circuitikz

Ich möchte in einige meiner Zeichnungen ein intuitiveres Symbol für Auf-/Abwärtstransformatoren integrieren, beispielsweise das folgende: Bildbeschreibung hier eingeben

oder "niedliche Induktor"-Version:

Bildbeschreibung hier eingeben

Ich habe versucht, das zu tun, wasdieser Linkvorgeschlagen; den Codetyp zu kopieren, der zum Definieren eines „Induktors“ in pgfcircbipoles.tex verwendet wird, d. h. einen „long_inductor“ zu definieren, der in Code wie diesem verwendet werden kann, aber mir ist nicht klar, wie ich das alles zusammenfügen soll:

\begin{circuitikz}
\draw (1,5) to[short, o-] (2, 5)
to [long_inductor, l = Primary] (2, 0)
to [short, -o](1,0);
\draw (2.3,5) -- (2.3,0);
\draw (2.4,5) -- (2.4,0);
\draw (4,4) to[short, o-] (3,4)
to [inductor,l = Secondary] (3,1)
to [short, -o](4,1);
\end{circuitikz}

Ich habe Beispiele gesehen mitpstricks,aber ich habe gerade erst angefangen, Tikz und Circuitikz zu lernen, daher bin ich im Moment mehr daran interessiert, herauszufinden, wie man diese Tools verwendet ... einschließlich der Definition meiner eigenen Formen für die Verwendung.

Antwort1

Die Anzahl der Spulen kann auch innerhalb eines Bildes konfiguriert werden:

\begin{circuitikz}[]
\begin{scope}
   \ctikzset{bipoles/cuteinductor/width/.initial=1.2}%default 0.6
   \ctikzset{bipoles/cuteinductor/coils/.initial=10}%default 5
   \draw (0, 0)  to [short, o-] +(1, 0)
      to [cute inductor]  +(0, 3)
      to [short, -o] +(-1, 0);
\end{scope}
%% vertical bare fore the core.  The middle is in y=1.5
\draw[thick] (1.4, 0.5) -- (1.4, 2.5);
\draw[thick] (1.6, 0.5) -- (1.6, 2.5);
%% Secondary
\draw(3, 0)  to [short, o-] +(-1, 0)
  to [cute inductor]  +(0, 3) 
  to [short, -o] +(1, 0);
%%American inductor version(only working using the most recent gitversion!)
\begin{scope}[xshift=4cm]
\begin{scope}
   \ctikzset{bipoles/americaninductor/width/.initial=1.6}%default 0.8
   \ctikzset{bipoles/americaninductor/coils/.initial=8}%default 4
   \draw(0, 0)  to [short, o-] +(1, 0)
    to [inductor]  +(0, 3)
    to [short, -o] +(-1, 0);
\end{scope}
 %% vertical bare fore the core.  The middle is in y=1.5
 \draw[thick] (1.4, 0.5) -- (1.4, 2.5);
 \draw[thick] (1.6, 0.5) -- (1.6, 2.5);
%%Secondary    
\draw (3, 0)  to [short, o-] +(-1, 0)
 to [inductor]  +(0, 3)
 to [short, -o] +(1, 0);
 \end{scope}
\end{circuitikz}

Bildbeschreibung hier eingeben Beim Testen habe ich einen Fehler gefunden, daher funktioniert der Code für den amerikanischen Induktor (nicht den süßen/gelockten) nur mit der aktuellsten Git-Version oder wenn der Code nach diesem Commit angepasst wird:https://github.com/circuitikz/circuitikz/commit/1dc2ee4cef798bcd8f9a5fabbaf83f66afeaf0f2

Viele Grüße, Stefan

Antwort2

Eine Alternative wäre, die Spulen selbst herzustellen, indem man Dekorationen verwendet. Dann funktionieren sie genau wie Linien, aber mit bumpsfür die erste und coildie zweite gezeichnet. Ich habe nicht mit den Spulen in circuitikz verglichen, das gibt wahrscheinlich eine Änderung in den Einstellungen. Der einzige Unterschied zwischen der Primär- und Sekundärwicklung ist die Spiegelung. Dies kann auch durch Ändern der Linienrichtung erreicht werden.

\documentclass[border=1cm]{standalone}
\usepackage{circuitikz}
\usetikzlibrary{decorations.pathmorphing}
\begin{document}
\begin{circuitikz}[%
  line width=1pt,
  MyPrimaryBumps/.style={decorate,decoration={bumps,amplitude=10pt,segment length=10mm,mirror}},
  MySecondaryBumps/.style={decorate,decoration={bumps,amplitude=10pt,segment length=10mm}},
  MyPrimaryCoil/.style={decorate,decoration={coil,amplitude=10pt,segment length=4.8mm,mirror}},
  MySecondaryCoil/.style={decorate,decoration={coil,amplitude=10pt,segment length=4.7mm}},
  ]
  \draw[o-] (0,0) -- +(2,0);
  \draw[MyPrimaryBumps] (2,0) -- +(0,3.01);
  \draw[-o] (2,3) -- +(-2,0);
  \draw(2.45,0) -- +(0,3);
  \draw(2.54,0) -- +(0,3);
  \draw[o-] (5,0.5) -- +(-2,0);
  \draw[MySecondaryBumps] (3,0.5) -- +(0,2.01);
  \draw[-o] (3,2.5) -- +(2,0);
  \begin{scope}[xshift=8cm]
    \draw[o-] (0,0) -- +(2,0);
    \draw[MyPrimaryCoil] (2,0) -- +(0,3.01);
    \draw[-o] (2,3) -- +(-2,0);
    \draw(2.45,0) -- +(0,3);
    \draw(2.54,0) -- +(0,3);
    \draw[o-] (5,0.5) -- +(-2,0);
    \draw[MySecondaryCoil] (3,0.5) -- +(0,2.01);
    \draw[-o] (3,2.5) -- +(2,0);
  \end{scope}
\end{circuitikz}
\end{document}

Bildbeschreibung hier eingeben

Antwort3

Meine Lösung besteht darin, zwei S-2 zu verwenden, inductorum eine größere Spule zu erzeugen.

Hier ist mein MWE:

\documentclass[12pt]{article}
\usepackage[americaninductors]{circuitikz}


\begin{document}

\begin{circuitikz}
  %% left side of the transformer  This has two coils to indicate more
  %% windings.  Use relative coordinates, counting from the startpoint
  %% The horizontal width is from y=0 to y=1
  \draw 
  (0, 0) node[inductor] (P) {} 
  to [short, o-] +(1, 0)
  to [inductor]  +(0, 1.2)
  to [inductor]  +(0, 1.2)
  to [short, -o] +(-1, 0);
  %% vertical bare fore the core.  The middle is in y=1.5
  \draw (1.4, -0.1) -- (1.4, 2.5);
  \draw (1.6, -0.1) -- (1.6, 2.5);

  % %% right side of the transformer, being smaller than the first
  % side.  The width is y=3 to y=2
  \draw
  (3, 0) node[inductor] (S) {}
  to [short, o-] +(-1, 0)
  to [inductor, mirror]  +(0, 2.5)
  to [short, -o] +(1.2, 0);
\end{circuitikz}
\end{document}

Und das Ergebnis

Bildbeschreibung hier eingeben

mirrorIch muss gestehen, dass ich beim rechten Sender die Option verwendet habe , um die Spulen beider Senderseiten zu spiegeln. Ich habe auch versucht, die mirror-Option auf der linken Seite der Spulen zu verwenden, aber das hat hässliche Verbindungen zwischen den Verbindungsleitungen ergeben. :-(

verwandte Informationen