-
Notifications
You must be signed in to change notification settings - Fork 70
Labels
Description
Show the component and its usage
It's just another form of current probe, I think it's widely used in my country.
Add an image of the new component and typical usage in a circuit.
references
Someone had already asked about this form of current probe in https://tex.stackexchange.com/questions/521103/tikz-diagram-for-current-sensor-measurement, and I have drawn a circuit with it using existing version of circuitikz
.
\documentclass[UTF-8,a4paper]{ctexart}
\usepackage{unicode-math}
\setmainfont{TeX Gyre Termes}
\setmathfont{TeX Gyre Termes Math}
\setsansfont{TeX Gyre Termes}
\usepackage[europeanresistors,americaninductors,americanvoltages,siunitx]{circuitikz}
\usetikzlibrary{shapes.geometric}
\begin{document}
\pagestyle{empty}
\ctikzset{tripoles/mos style/arrows, transistors/arrow pos=end}
\ctikzset{resistors/scale=0.6, capacitors/scale=0.6, inductors/scale=0.6, capacitors/height=0.4,capacitors/width=0.15,diodes/scal
\begin{circuitikz}[circuitikz/.cd,nodes width=0.025,bipoles/thickness=1.5,thyristor style=compact,diodes/scale=0.4,resistors/scale=0.4,transistors/scale=0.7,tripoles/thickness=1.5,muxdemuxes/thickness=1.5]
\tikzset{op/.style={muxdemux,muxdemux def={NL=2, Lh=4, NR=1, Rh=0, NB=0,NT=0,w=3.5}}}
\small
\draw (0,0) to[short,-*,i,name=s] ++(1.5,0) to[D-,mirror,l=$\mathrm{VD_1}$] ++(0,1) to[short,-*] ++(0.8,0) to[D-,invert,l=$\mathrm{VD_3}$] ++(0,-1) to[short,-*] ++(0,-0.8) to[D-,invert,-*,l=$\mathrm{VD_4}$] ++(0,-1) -- ++(-0.8,0) to[D-,mirror,l=$\mathrm{VD_2}$] ++(0,1) -- ++(0,0.8);
\draw (0,0) to[open,o-o,v,font=\small,name=o] ++(0,-0.8) -- ++(2.3,0);
\draw (o-Vfrom) ++(0,-0.05) node{\small $+$} (o-Vto) ++(0,-0.05) node{\small $-$} (o-Vlab) ++(0,-0.05) node{\small $u$};
\draw (2.3,1) to[short,n=ss,i] ++(1.05,0) arc(180:0:0.15) -- (3.8,1) to[L,l=$L$,-*,label distance=-2pt] ++(1.5,0) to[Tnigfete,n=Q,invert,-*] ++(0,-2.8) -- ++(-3,0) (Q) node[right]{Q};
\draw (5.3,1) to[D-] ++(1.5,0) to[C,l_=$C$,name=C,i,*-*] ++(0,-2.8) -- ++(-1.5,0);
\draw (6.8,1) -- ++(1,0) to[R,l_=$R$,i,name=R,v^=$u_\mathrm{d}$,voltage shift=-0.9] ++(0,-2.8) -- ++(-1,0);
\path[iarrow] (s-Ifrom) -- (s-Ipos) node[below]{$i$};
\path[iarrow] (ss-Ifrom) -- (ss-Ipos) node[above]{$i_\mathrm{L}$};
\path[iarrow] (R-Ifrom) -- (R-Ipos) node[left]{$i_\mathrm{R}$};
\path[iarrow] (C-Ifrom |- R-Ifrom) -- (C-Ipos |- R-Ipos) node[left]{$i_\mathrm{C}$};
\draw (1.5,-5) node(u){$\lvert u \rvert$} ++(2,0) node[draw](times){\scriptsize multiplier};
\draw (C-Ipos |- u) node[circle,draw](c1){} ++(0,1) node(ud){$u_\mathrm{d}$} ++(1,-1) node(ur){$u_\text{ref}$} ($(c1)!0.5!(times.east)$) node[draw,minimum width=.5cm,minimum height=.5cm](PI1){\footnotesize PI};
\draw ($(c1.north)!0.5!(c1.center)$) node{\tiny\bfseries --} ($(c1.east)!0.5!(c1.center)$) node{\tiny\bfseries +};
\draw (times) ++(0,1) node[circle,draw](c2){} ($(c2.north)!0.5!(c2.center)$) node{\tiny\bfseries --} ($(c2.south)!0.5!(c2.center)$) node{\tiny\bfseries +};
\draw (c2) ++(0,1) node[draw,align=center,font=\scriptsize,inner sep =2pt](i){Input current \\[-2pt] detection};
\draw (3.5,1) node[circ,circuitikz/nodes width=0.05](node){} -- (i.north);
\draw (Q.G) -- ++(0,-1.4) node[op,anchor=rpin 1,rotate=90,scale=0.35,draw only left pins={}](op){} (op.blpin 1) node[above=-2pt]{\footnotesize\bfseries +} (op.blpin 2) node[above=-2pt]{\rotatebox{-90}{\footnotesize\bfseries --}};;
\draw (c2 -| op.blpin 1) node[draw,minimum width=.5cm,minimum height=.5cm](PI2){\footnotesize PI};
\draw (op.blpin 2 |- i.south) node(uc){$ u_\mathrm{c} $};
\foreach \i/\j in {u.east/times.west,
times.north/c2.south,
c2.east/PI2,
i.south/c2.north,
ur.west/c1.east,
ud.south/c1.north,
c1.west/PI1.east,
PI1.west/times.east,
PI2.north/op.blpin 1,
uc.north/op.blpin 2}{
\draw[farrow] (\i) -- (\j);}
\end{circuitikz}
\end{document}
I think it's easier to draw if I can use existing components, so I'd be appreciated if I can have it in this package🌹.