Mutual coupling and Circuitikz?

I am desperately trying to draw mutual coupling between two inductors, something like this:

or

where the actual focus is on the mutual coupling M of the two coils. When I searched the web, I stepped over these two image which were part of a lecture on electrical circuits. Apparently, they are done using Circuitikz, but i was unable do identify the author to ask him directly.

So for example, I would like to add mutual between these two coils:

\documentclass{article}

\usepackage{tikz}
\usepackage[siunitx,europeanresistors,cuteinductors,americanvoltages,americancurrents]{circuitikz}

\begin{document}

\begin{figure}[h!]
\centering
\begin{circuitikz}
\draw (0,0)
to[sV=$V_0$] (0,2)
to[L=$L_1$] (2,2)
to[short] (2,0)
to[L=$L_2$] (0,0) ;
\end{circuitikz}
\caption{Two coils without mutual coupling.}
\end{figure}

\end{document}


• Very nice diagrams! – enthdegree Nov 8 '14 at 14:56

This is one possible solution. amssymb is used for loop currents.

Code

\documentclass{article}

\usepackage{tikz}
\usepackage[siunitx,cuteinductors,americanvoltages,americancurrents]{circuitikz}
\usepackage{latexsym,amssymb,amsmath}
\begin{document}

\begin{circuitikz}
\draw (0,0) to [R=$R_1$] (2,0) -| (3,-1) to [L,l_=$L_1$] (3,-3) |- (-1,-4) to [V,l=$v_g$] (-1,0) -- (0,0)
(1,-2) node[scale=6]{$\circlearrowright$}
(1,-2) node{$I_1$};
\draw (5,0) to [short] (7,0) -| (8,-1) to [R=$R_2$,] (8,-3) |- (4,-4) to [L,l_=$L_2$] (4,0) -- (4,0) --(5,0)
(6,-2) node[scale=6]{$\circlearrowleft$}
(6,-2) node{$I_2$};
\draw [fill=black] (2.5,-1)node(a){} circle (2pt);
\draw [fill=black] (4.5,-3)node(b){} circle (2pt);
\draw [<->,>=stealth] (a)  to [bend left] node[pos=0.5,fill=white] {M} ++(2,0);
\end{circuitikz}

\vspace{1cm}

\begin{circuitikz}
\draw (0,0) to [R=$R_1$,i=$I_1$] (2,0) -| (3,-1) to [L,l_=$L_1$] (3,-3) |- (-1,-4)   to [V,v=$v_g$] (-1,0) -- (0,0)
(1,-2) node[scale=1.5]{$M\frac{di_2}{dt}L_1\frac{di_1}{dt}$};
\draw(1,-0.5)node{-} to [open] (1,-3.5)node(){+}; % adding polarities
\draw(2,-0.5)node{+} to [open] (2,-3.5)node(){-}; % adding polarities
\draw (5,0) to [short,i<=$I_2$] (7,0)  -| (8,-1)   to [R=$R_2$,] (8,-3) |- (4,-4)   to [L,l_=$L_2$] (4,0)  -- (4,0) --(5,0)
(6,-2) node[scale=1.5]{$L_2\frac{di_2}{dt}M\frac{di_1}{dt}$};
\draw(5,-0.5)node{+} to [open] (5,-3.5)node(){-}; % adding polarity
\draw(6,-0.5)node{-} to [open] (6,-3.5)node(){+}; % adding polarity

\draw [fill=black] (2.5,-1)node(a){} circle (2pt);
\draw [fill=black] (4.5,-3)node(b){} circle (2pt);
\draw [<->,>=stealth] (a)  to [bend left] node[pos=0.5,fill=white] {M} ++(2,0);
\end{circuitikz}
\end{document}

• Wow, thanks a lot, that's pretty much what I was searching for! – JimboJones Nov 8 '14 at 11:00
• One more question, what's the function of the two ++ signs at the end? I couldn't figure it out. Thanks! – JimboJones Nov 8 '14 at 12:34
• OK, that means relative to the (a) point. -- (x_a,y_a)+(2,0) -- So horizontally to the right of 2cm, relative to point a. – Jesse Nov 8 '14 at 12:36
• Got it! Seems like it makes no difference to have one + or two ++ signs... Thanks again, you saved my day! – JimboJones Nov 8 '14 at 12:43
• No. they are different. Two ++ is relative to the previous coordinate. One + is relative to the FIRST/STARTING coordinates of all points in the command line. But in this case, they are same indeed. – Jesse Nov 8 '14 at 12:49

Jesse provided you an answer with your coupling question, this show how you can use tikz to draw the circular arrows so that you have matching arrow heads and also the ability to control the color:

Code:

\documentclass{article}

\usepackage{tikz}
\usepackage[siunitx,europeanresistors,cuteinductors,americanvoltages,americancurrents]{circuitikz}

\usepackage{calc}

%% https://tex.stackexchange.com/questions/29841/how-to-put-a-symbol-inside-a-circle-arrow/29856#29856
\makeatletter
\newlength\@SizeOfCirc%
\newcommand{\CricArrowRight}[2][]{%
\setlength{\@SizeOfCirc}{\maxof{\widthof{#2}}{\heightof{#2}}}%
\tikz [x=1.0ex,y=1.0ex,line width=.20ex, draw=black, fill=black, -stealth, #1]%
\draw [anchor=center]%
node (0,0) {#2}%
(0,1.2\@SizeOfCirc) arc (85:-240:1.2\@SizeOfCirc);%
}%
\newcommand{\CricArrowLeft}[2][]{\CricArrowRight[xscale=-1,#1]{#2}}%
\makeatother

\begin{document}
\begin{circuitikz}
\draw (0,0) to [R=$R_1$] (2,0) -| (3,-1) to [L,l_=$L_1$] (3,-3) |- (-1,-4) to [V,l=$v_g$] (-1,0) -- (0,0)
(1,-2) node{\CricArrowRight[draw=cyan, fill=cyan, text=red]{$I_1$}};
\draw (5,0) to [short] (7,0) -| (8,-1) to [R=$R_2$,] (8,-3) |- (4,-4) to [L,l_=$L_2$] (4,0) -- (4,0) --(5,0)
(6,-2) node{\CricArrowLeft{$I_2$}};
\draw [fill=black] (2.5,-1)node(a){} circle (2pt);
\draw [fill=black] (4.5,-3)node(b){} circle (2pt);
\draw [<->,>=stealth] (a)  to [bend left] node[pos=0.5,fill=white] {M} ++(2,0);
\end{circuitikz}
\end{document}