Schéma avec antennes dans circuitikz

Oct 26 2020

Salut à tous. Je veux faire ce diagramme en utilisant circuitikz. Ainsi, loin j'ai ce qui suit:

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

J'ai quelques problèmes avec les flèches et le nom dessus. De plus, je sais qu'il est possible d'ajouter des antennes dans circuitikz mais je suis incapable de le faire correctement. J'apprécierai votre aide pour finaliser ce diagramme.

Réponses

2 Rmano Oct 26 2020 at 20:17

Je pense que pour le type de diagramme que vous utilisez, la syntaxe "chemin" de circuitikzn'est pas toujours la meilleure - l'utilisation de nœuds simples peut résoudre le problème. Je suis assez limité dans le temps maintenant, mais je peux vous offrir mon point de vue sur une seule pièce; Je vous conseille de regarder int matrixet foreachcela pourrait vous aider à faire le dessin de manière beaucoup plus compacte.

En tous cas:

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

vous donnera ceci: