símbolo de transformador elevador e/ou abaixador para circuitikz

símbolo de transformador elevador e/ou abaixador para circuitikz

Quero incorporar um símbolo mais intuitivo para transformador elevador/redutor em alguns dos meus desenhos, como os seguintes: insira a descrição da imagem aqui

ou versão "indutor bonito":

insira a descrição da imagem aqui

Eu tentei fazer o queesse linksugerido; para copiar o tipo de código usado para definir um "indutor" em pgfcircbipoles.tex, ou seja, definir um "long_inductor" para usar em código semelhante, mas não está claro para mim como encaixar tudo isso:

\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}

Eu vi exemplos usandopstricks,mas eu apenas comecei a aprender tikz e circuitikz então neste momento estou mais interessado em descobrir como usar essas ferramentas... inclusive, definir minhas próprias formas para uso.

Responder1

O número de bobinas pode ser configurado, também dentro de uma imagem:

\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}

insira a descrição da imagem aqui Ao testar isso, encontrei um bug, portanto, o código para o indutor americano (não o fofo/encaracolado)) só está funcionando usando a versão git mais recente ou ajustando o código seguindo este commit:https://github.com/circuitikz/circuitikz/commit/1dc2ee4cef798bcd8f9a5fabbaf83f66afeaf0f2

Atenciosamente, Stefan

Responder2

Uma alternativa poderia ser fazer você mesmo as bobinas usando decorações. Então elas funcionam exatamente como linhas, mas desenhadas bumpspara a primeira e coilpara a segunda. Não comparei com as bobinas no circuitikz, isso provavelmente dá alguma alteração nas configurações. A única diferença entre o enrolamento Primário e Secundário é o espelhamento. Isso também pode ser feito alterando a direção da linha.

\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}

insira a descrição da imagem aqui

Responder3

Minha solução é usar dois inductore dois para criar uma bobina maior.

Aqui está meu 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}

E o resultado

insira a descrição da imagem aqui

Devo admitir que usei a opção mirrordo transmissor direito, para espelhar as bobinas de ambos os lados do transmissor. Também tentei usar a mirroropção -no lado esquerdo das bobinas, mas deu conexões feias entre as linhas de conexão. :-(

informação relacionada