Schema con antenne in circuitikz

Oct 26 2020

Ciao a tutti. Voglio creare questo diagramma usando circuitikz. Finora ho quanto segue:

\begin{circuitikz}

\draw (0,0) to [twoport, blocks/scale=0.8, name=D1, t={a}] ++(1.5,0) coordinate(E1); 
\draw (0,-0.8) to [twoport, blocks/scale=0.8, name=D2, t={b}] ++(1.5,0) coordinate(E2); 
\draw (0,-1.6) to [twoport, blocks/scale=0.8, name=D3, t={c}] ++(1.5,0) coordinate(E3); 
\draw (0,-2.4) to [twoport, blocks/scale=0.8, name=D4, t={d}] ++(1.5,0) coordinate(E4); 
    
\draw (E1) to [mstline, name=R1] ++(3,0) coordinate(B1);
\draw (E2) to [mstline, name=R2] ++(3,0) coordinate(B2);
\draw (E3) to [mstline, name=R3] ++(3,0) coordinate(B3);
\draw (E4) to [mstline, name=R4] ++(3,0) coordinate(B4);

\node at (R1.center) {1};
\node at (R2.center) {2};
\node at (R3.center) {3};
\node at (R4.center) {4};

\draw (5,0) to [twoport, blocks/scale=0.8, t={$A_{11}$}, name=S1] ++(0.8,0); 
\draw (5.8,0) to [twoport, blocks/scale=0.8, t={$A_{11}$}] ++(0.8,0) coordinate(S2); 
\draw (6.6,0) to [twoport, blocks/scale=0.8, t={$A_{11}$}] ++(0.8,0) coordinate(S3); 
\draw (7.4,0) to [twoport, blocks/scale=0.8, t={$A_{11}$}] ++(0.8,0) coordinate(S4); 
\draw (8.2,0) to [twoport, blocks/scale=0.8, t={$A_{11}$}] ++(0.8,0) coordinate(S5); 
\draw (9,0) to [twoport, blocks/scale=0.8, t={$A_{11}$}] ++(0.8,0) coordinate(S6); 
    
\draw (5,-0.8) to [twoport, blocks/scale=0.8, t={$A_{11}$}] ++(0.8,0);
\draw (5.8,-0.8) to [twoport, blocks/scale=0.8, t={$A_{11}$}] ++(0.8,0);
\draw (6.6,-0.8) to [twoport, blocks/scale=0.8, t={$A_{11}$}] ++(0.8,0);
\draw (7.4,-0.8) to [twoport, blocks/scale=0.8, t={$A_{11}$}] ++(0.8,0);
\draw (8.2,-0.8) to [twoport, blocks/scale=0.8, t={$A_{11}$}] ++(0.8,0);
\draw (9,-0.8) to [twoport, blocks/scale=0.8, t={$A_{11}$}] ++(0.8,0);  

\draw (5,-1.6) to [twoport, blocks/scale=0.8, t={$A_{11}$}] ++(0.8,0);
\draw (5.8,-1.6) to [twoport, blocks/scale=0.8, t={$A_{11}$}] ++(0.8,0);
\draw (6.6,-1.6) to [twoport, blocks/scale=0.8, t={$A_{11}$}] ++(0.8,0);
\draw (7.4,-1.6) to [twoport, blocks/scale=0.8, t={$A_{11}$}] ++(0.8,0);
\draw (8.2,-1.6) to [twoport, blocks/scale=0.8, t={$A_{11}$}] ++(0.8,0);
\draw (9,-1.6) to [twoport, blocks/scale=0.8, t={$A_{11}$}] ++(0.8,0);  

\draw (5,-2.4) to [twoport, blocks/scale=0.8, t={$A_{11}$}] ++(0.8,0);
\draw (5.8,-2.4) to [twoport, blocks/scale=0.8, t={$A_{11}$}] ++(0.8,0);
\draw (6.6,-2.4) to [twoport, blocks/scale=0.8, t={$A_{11}$}] ++(0.8,0);
\draw (7.4,-2.4) to [twoport, blocks/scale=0.8, t={$A_{11}$}] ++(0.8,0);
\draw (8.2,-2.4) to [twoport, blocks/scale=0.8, t={$A_{11}$}] ++(0.8,0);
\draw (9,-2.4) to [twoport, blocks/scale=0.8, t={$A_{11}$}] ++(0.8,0);      

\end{circuitikz}

Ho alcuni problemi con le frecce e il nome sopra di esse. Inoltre, so che è possibile aggiungere antenne in circuitikz ma non sono in grado di farlo correttamente. Apprezzerò il tuo aiuto per finalizzare questo diagramma.

Risposte

2 Rmano Oct 26 2020 at 20:17

Penso che per il tipo di diagramma che stai usando, la sintassi del "percorso" di circuitikznon sia sempre la migliore --- principalmente l'uso di nodi semplici può risolvere il problema. Ho abbastanza tempo ora, ma posso offrirti la mia opinione su un singolo pezzo; Ti consiglio di guardare int matrixe foreachquesto potrebbe aiutarti a rendere il disegno in un modo molto più compatto.

Comunque:

\documentclass[border=10pt]{standalone}
\usepackage[siunitx, RPvoltages]{circuitikz}
\usetikzlibrary{shapes.geometric}
\tikzset{square/.style={regular polygon,regular polygon sides=4, minimum size=1.5cm}}
\begin{document}
\begin{circuitikz}
    \draw (0,0) node [draw, square](a){a} (a.east) to [mstline, name=R1] ++(3,0) -- ++(1,0)
    node[draw, square, anchor=west](A11){$A_{11}$};
    \node at (R1.center) {1};
    \node [inputarrow] at (R1.west) {};
    \node [inputarrow] at (A11.west) {};
    \path ($(R1.east)!0.5!(A11.west)$) node[above]{a};
    \node [bareantenna](ant1) at(A11.north) {};
    \node [waves, scale=0.5, anchor=left, rotate=90] at (ant1.top) {};
\end{circuitikz}
\end{document}

ti darà questo: