dimanche 28 février 2016

Ondes Hertziennes : complément à l'article de Carlo Alberini.

On considère que la source est périodique(sinusoïdale), et on représente la propagation de l'onde le long de l'axe, lorsque le champ en chaque point du milieu varie périodiquement comme la source. C'est donc le couple (E(t),B(t)) qui est dessiné en différents points de l'axe.

Les fichiers ondesHertziennes.pdf et ondesHertziennes.tex sont dans :

L'animation dans le fichier pdf, dans les 2 exemples celui de Carlo et le mien, a été réalisée avec le package animate d'Alexander Grahn.


Pour produire les images de l'animation Gif, le listing suivant est à compiler par : LaTeX->DVIPS->ps2pdf :

\documentclass{article}
\usepackage[paperwidth=20cm,paperheight=9cm,hmargin={0cm,0cm},vmargin={0cm,0cm},dvips]{geometry}
\usepackage[garamond]{mathdesign}
\usepackage{pst-plot,pst-3d,pst-node}
\psset{plotpoints=1000}
\psset{dimen=middle}
\title{Ondes hertziennes}
\date{27 février 2016}
\pagestyle{empty}
\begin{document}

\begin{center}
\multido{\rt=0+0.062832}{100}{% T=2Pi
\begin{pspicture}(-1,-7)(19,2)
\psframe(-1,-7)(19,2)
\psset{viewpoint=0.5 -1 0.75}
\ThreeDput[normal=0 -1 0](0,0,0){%
\psgrid[subgriddiv=0,gridcolor=black,griddots=10,gridlabels=0pt](0,-2)(20,2)
\psframe(0,-2)(20,0)}
\ThreeDput[normal=0 0 -1](0,0,0){%
\psframe[linewidth=1.5\pslinewidth](0,-2)(20,2)
\psgrid[subgriddiv=0,gridcolor=black,griddots=10,gridlabels=0pt,gridwidth=1.2pt](0,-2)(20,2)
\pstVerb{/ti \rt \space def
/pi 3.14159 def
/RadtoDeg { 180 mul pi div } bind def
/tabArrows { % 40 points
    [0 0.5 20 {/xi exch def %
      xi
      0
      xi
      ti xi sub RadtoDeg sin
      } for
    ]
} def}%
\pscustom[fillstyle=solid,fillcolor=blue!50,linestyle=none,opacity=0.6]{%
\psparametricplot[algebraic]{0}{20}{t|sin(ti-t)}
\psline(!20 0)(0,0)}
\multido{\i=0+4}{40}{%
\psline[linecolor=blue,arrowinset=0,linewidth=0.04]{->}(!tabArrows \i\space get tabArrows \i\space 1 add get)(!tabArrows \i\space 2 add get tabArrows \i\space 3 add get)}}
\ThreeDput[normal=0 -1 0](0,0,0){%
\psgrid[subgriddiv=0,gridcolor=black,griddots=10,gridlabels=0pt](0,-2)(20,2)
\psframe(0,0)(20,2)
\pscustom[fillstyle=solid,fillcolor=red!20,linestyle=none,opacity=0.6]{%
\psparametricplot[algebraic]{0}{20}{t|sin(ti-t)}
\psline(!20 0)(0,0)}
\multido{\i=0+4}{40}{%
\psline[linecolor=red,arrowinset=0]{->}(!tabArrows \i\space get tabArrows \i\space 1 add get)(!tabArrows \i\space 2 add get tabArrows \i\space 3 add get)}}
\ThreeDput[normal=1 0 0](0,0,0){%
    \uput[0](0.2,1){\red $\overrightarrow{E\hspace{0.2em}}$}
    \uput[90](-1,0){\blue $\overrightarrow{B\hspace{0.2em}}$}
    }
\ThreeDput[normal=0 0 -1](0,0,0){%
    \psline[arrowinset=0,linecolor=blue]{->}(0,1)}
\ThreeDput[normal=0 -1 0](0,0,0){%
    \psline[arrowinset=0,linecolor=red]{->}(0,1)}
\end{pspicture}\newpage}
\end{center}
\end{document}



Exemple de champ électrique et magnétique en un point P de l'espace et de son évolution dans le temps (par Carlo Alberini)

Esempio di campo elettrico e magnetico in un punto P dello spazio e sua evoluzione temporale. I campi sono prodotti da elettroni posti in oscillazione in un'antenna alimentata in corrente alternata.

Les fichiers (ondesHertziennes-3Dvector_2.pdf et /ondesHertziennes-3Dvector_2.tex) dans :


Le listing :

\documentclass[12pt]{article}
\usepackage[a4paper]{geometry}
\usepackage[garamond]{mathdesign}
\renewcommand{\ttdefault}{lmtt}
\usepackage[nomessages]{fp}
\usepackage[dvipsnames,svgnames]{pstricks}
\usepackage{pst-plot,pst-3d,pst-node,pst-circ}
\usepackage{animate}

\def\Vitesse{5}    % célérité en m/s
\def\Periode{1}    % période en seconde
\def\Amplitude{1}  % amplitude
\psset{dimen=middle}
\pagestyle{empty}
\def\nFrames{72}
\psset{plotpoints=1000,plotstyle=line}
\newdimen\temporaire

\title{Ondes hertziennes}
\begin{document}
\maketitle
\begin{center}
\begin{animateinline}[controls,
                     begin={\begin{pspicture}(-2,-7)(15,3)},
                     end={\end{pspicture}}]{5}% 5 images/s
\multiframe{72}{rt=0+0.04}{
\pstVerb{/Vitesse \Vitesse\space def
    /Periode \Periode\space def
    /Amplitude \Amplitude\space def
         /date \rt\space def
         /Vt Vitesse date mul def
           /t1 Periode 4 div def % Lambda/4
           /X1 t1 Vitesse mul def
           /t2 Periode 2 div def
           /X2 t2 Vitesse mul def % Lambda/2
           /t3 Periode 4 div 3 mul def
           /X3 t3 Vitesse mul def % 3*Lambda/4
           /t4 Periode  def
          % /X4 Lambda def %
           /x1 1 def
% y(x,t)=a*sin(2Pi/T(t-x/V)
     /Signal {xPos Vt le { /yPos Amplitude 360 Periode div date xPos Vitesse div sub mul sin mul def }
             {/yPos 0 def} ifelse
             } def
% amplitude du signal
      /Y1 Amplitude 360 Periode div
                      t1 1 Vitesse div sub
                      mul
                      sin
                      mul
                      def
        /Y2 Amplitude 360 Periode div
                      t2 1 Vitesse div sub
                      mul
                      sin
                      mul
                      def
        /Y3 Amplitude 360 Periode div
                      t3 1 Vitesse div sub
                      mul
                      sin
                      mul
                      def
        /Y4 Amplitude 360 Periode div
                      t4 1 Vitesse div sub
                      mul
                      sin
                      mul
                      def
            }%
% la corde
\psset{viewpoint=0.5 -1 0.75}
\ThreeDput[normal=0 0 -1](0,0,0){%
\psgrid[subgriddiv=0,gridcolor=red,griddots=10,gridlabels=0pt](0,0)(14,-2)
\psframe[fillstyle=solid,linecolor=red,fillcolor=red!10,opacity=0.6](0,0)(14,-2)
}
\ThreeDput[normal=0 -1 0](0,0,0){%
\psgrid[subgriddiv=0,gridcolor=PineGreen,griddots=10,gridlabels=0pt](0,-2)(14,2)
\psframe[fillstyle=solid,linecolor=PineGreen,fillcolor=PineGreen!05,opacity=0.6](0,-2)(14,2)
\uput[0](0.2,1.5){\textcolor{PineGreen}{$\overrightarrow{E\hspace{0.2em}}$}}
\FPeval{\Front}{\Vitesse*\rt}
        \parametricplot[linecolor=PineGreen,linewidth=0.05]{0}{Vt}{%
    /xPos t def % X=abscisse en m
    Signal t yPos}%
    \temporaire=\Front pt
        \ifdim\temporaire > 1pt
            \psline[linecolor=red,arrowsize=0.15]{->}(! 1 0)(! 1 dup  /xPos exch def Signal yPos)
            \uput[l](! 1.15 dup  /xPos exch def Signal yPos){$\scriptstyle{\vec{E}\left(P,t\right)}$}
\fi
        \ifdim\temporaire > 1.5pt
            \psline[linecolor={[rgb]{0.75 0 1}},arrowsize=0.1,arrowinset=0,linewidth=0.03]{->}(! Vt 0.5 sub 0)(! Vt 0.5 sub  Y1 2 mul)
            \uput[l](! Vt -0.1 sub -0.25){$\scriptstyle{\vec{E}\left(P,t_{1}\right)}$}
\fi
        \ifdim\temporaire > 2.75pt
            \psline[linecolor={[rgb]{0 0 1}},arrowsize=0.1,arrowinset=0,linewidth=0.03]{->}(! Vt 1.75 sub 0)(! Vt 1.75 sub  Y2 -0.1 add)
            \uput[l](! Vt 1.15 sub -0.25){$\scriptstyle{\vec{E}\left(P,t_{2}\right)}$}
\fi
        \ifdim\temporaire > 4pt
            \psline[linecolor={[rgb]{0.75 0 1}},arrowsize=0.1,arrowinset=0,linewidth=0.03]{->}(! Vt 3 sub 0)(! Vt 3 sub  Y3 2 mul)
            \uput[l](! Vt 2.4 sub 0.25){$\scriptstyle{\vec{E}\left(P,t_{3}\right)}$}
\fi
        \ifdim\temporaire > 5pt
            \psline[linecolor={[rgb]{0 0 1}},arrowsize=0.1,arrowinset=0,linewidth=0.03]{->}(! Vt 4 sub 0)(! Vt 4 sub  Y4)
            \uput[l](! Vt 3.5 sub 0.25){$\scriptstyle{\vec{E}\left(P,t_{4}\right)}$}
\fi
        \ifdim\temporaire > 6.75pt
            \psline[linecolor={[rgb]{0.75 0 1}},arrowsize=0.1,arrowinset=0,linewidth=0.03]{->}(! Vt 5.75 sub 0)(! Vt 5.75 sub  Y2 -0.1 add)
            \uput[l](! Vt 5.15 sub -0.25){$\scriptstyle{\vec{E}\left(P,t_{5}\right)}$}
\fi
        \ifdim\temporaire > 8pt
            \psline[linecolor={[rgb]{0 0 1}},arrowsize=0.1,arrowinset=0,linewidth=0.03]{->}(! Vt 7 sub 0)(! Vt 7 sub  Y1 2 mul)
            \uput[l](! Vt 6.4 sub -0.25){$\scriptstyle{\vec{E}\left(P,t_{6}\right)}$}
\fi
        \ifdim\temporaire > 9.5pt
            \psline[linecolor={[rgb]{0.75 0 1}},arrowsize=0.1,arrowinset=0,linewidth=0.03]{->}(! Vt 8.5 sub 0)(! Vt 8.5 sub  Y4)
            \uput[l](! Vt 7.75 sub 0.25){$\scriptstyle{\vec{E}\left(P,t_{7}\right)}$}
\fi
        \ifdim\temporaire > 10.5pt
            \psline[linecolor={[rgb]{0 0 1}},arrowsize=0.1,arrowinset=0,linewidth=0.03]{->}(! Vt 9.5 sub 0)(! Vt 9.5 sub  Y3 2 mul)
            \uput[l](! Vt 8.9 sub 0.25){$\scriptstyle{\vec{E}\left(P,t_{8}\right)}$}
\fi
        \ifdim\temporaire > 11.5pt
            \psline[linecolor={[rgb]{0.75 0 1}},arrowsize=0.1,arrowinset=0,linewidth=0.03]{->}(! Vt 10.5 sub 0)(! Vt 10.5 sub  Y1 2 mul)
            \uput[l](! Vt 9.9 sub -0.25){$\scriptstyle{\vec{E}\left(P,t_{9}\right)}$}
\fi
        \ifdim\temporaire > 12.75pt
            \psline[linecolor={[rgb]{0 0 1}},arrowsize=0.1,arrowinset=0,linewidth=0.03]{->}(! Vt 11.75 sub 0)(! Vt 11.75 sub  Y2 -0.1 add)
            \uput[l](! Vt 11.15 sub -0.25){$\scriptstyle{\vec{E}\left(P,t_{10}\right)}$}
\fi
        \psline[linecolor=blue,linewidth=2.5mm,linecap=1](0,-2.5)(0,1.75)
% la source
\psdot[linecolor=white,dotsize=2mm](! 0 dup  /xPos exch def Signal yPos)
        \psline[linecolor=red,arrowsize=0.25]{->}(! 0 0)(! 0 dup  /xPos exch def Signal yPos)
        \uput[l](! 0 dup  /xPos exch def Signal yPos){$e^{-}$}
        \vac[output=bottom](0.5,-3)(-0.5,-3){$V_{AC}$}}
 %le plan Oxy
\ThreeDput[normal=0 0 -1](0,0,0){%
\psgrid[subgriddiv=0,gridcolor=red,griddots=10,gridlabels=0pt](0,0)(14,2)
\psframe[fillstyle=solid,linecolor=red,fillcolor=red!10,opacity=0.6](0,0)(14,2)
\FPeval{\Front}{\Vitesse*\rt}
        \parametricplot[linecolor=red,linewidth=0.05]{0}{Vt}{%
    /xPos t def % X=abscisse en m
    Signal t yPos}%
% la source
    \temporaire=\Front pt
        \ifdim\temporaire > 1pt
            \psline[linecolor=red,arrowsize=0.15]{->}(! 1 0)(! 1 dup  /xPos exch def Signal yPos)
\fi
        \ifdim\temporaire > 1.5pt
            \psline[linecolor={[rgb]{0.75 0 1}},arrowsize=0.1,arrowinset=0,linewidth=0.03]{->}(! Vt 0.5 sub 0)(! Vt 0.5 sub  Y1 2 mul)
\fi
        \ifdim\temporaire > 2.75pt
            \psline[linecolor={[rgb]{0 0 1}},arrowsize=0.1,arrowinset=0,linewidth=0.03]{->}(! Vt 1.75 sub 0)(! Vt 1.75 sub  Y2 -0.1 add)
\fi
        \ifdim\temporaire > 4pt
            \psline[linecolor={[rgb]{0.75 0 1}},arrowsize=0.1,arrowinset=0,linewidth=0.03]{->}(! Vt 3 sub 0)(! Vt 3 sub  Y3 2 mul)
\fi
        \ifdim\temporaire > 5pt
            \psline[linecolor={[rgb]{0 0 1}},arrowsize=0.1,arrowinset=0,linewidth=0.03]{->}(! Vt 4 sub 0)(! Vt 4 sub  Y4)
\fi
        \ifdim\temporaire > 6.75pt
            \psline[linecolor={[rgb]{0.75 0 1}},arrowsize=0.1,arrowinset=0,linewidth=0.03]{->}(! Vt 5.75 sub 0)(! Vt 5.75 sub  Y2 -0.1 add)
\fi
        \ifdim\temporaire > 8pt
            \psline[linecolor={[rgb]{0 0 1}},arrowsize=0.1,arrowinset=0,linewidth=0.03]{->}(! Vt 7 sub 0)(! Vt 7 sub  Y1 2 mul)
\fi
        \ifdim\temporaire > 9.5pt
            \psline[linecolor={[rgb]{0.75 0 1}},arrowsize=0.1,arrowinset=0,linewidth=0.03]{->}(! Vt 8.5 sub 0)(! Vt 8.5 sub  Y4)
\fi
        \ifdim\temporaire > 10.5pt
            \psline[linecolor={[rgb]{0 0 1}},arrowsize=0.1,arrowinset=0,linewidth=0.03]{->}(! Vt 9.5 sub 0)(! Vt 9.5 sub  Y3 2 mul)
\fi
        \ifdim\temporaire > 11.5pt
            \psline[linecolor={[rgb]{0.75 0 1}},arrowsize=0.1,arrowinset=0,linewidth=0.03]{->}(! Vt 10.5 sub 0)(! Vt 10.5 sub  Y1 2 mul)
\fi
        \ifdim\temporaire > 12.75pt
            \psline[linecolor={[rgb]{0 0 1}},arrowsize=0.1,arrowinset=0,linewidth=0.03]{->}(! Vt 11.75 sub 0)(! Vt 11.75 sub  Y2 -0.1 add)
\fi
}
\ThreeDput[normal=0 -1 0](0,0,0){
        \rput[bl](1,0.15){\textcolor{Mahogany}{$\scriptstyle{P}$}}
        \psaxes[labelFontSize=\scriptstyle,xAxis=true,yAxis=false,labels=y,Dx=1,Dy=1,ticksize=-2pt 0,subticks=2]{->}(0,0)(-0.5,-0.5)(14.75,0.5)[$x$,90][ ,90]
        \psdot[dotsize=2mm,linecolor=Mahogany](1,0)
    }
\ThreeDput[normal=0 0 1](0,0,0){
     \uput[0](0.1,-1.7){\red{\footnotesize{$\vec{B}$}\hspace{0.2em}}}
     }
}
\end{animateinline}
\end{center}
\end{document}

lundi 15 février 2016

Réflexions multiples d’ondes transversales sur une extrémité libre ou fixe (suite)

Suite de : http://pstricks.blogspot.fr/2016/01/reflexion-dondes-transversales-sur-une.html

Tous les éléments théoriques et les explications sont dans le document "wavemachine-theory.tex"
"wavemachine-theory.pdf", dans le répertoire :

Les animations ont été réalisées avec le package animate :
http://www.ctan.org/pkg/animate 

Voici les 2 animations au format Gif qui sont aussi dans le dossier précédemment cité.:

 



Voici une application à l'ondoscope(échelle de Perroquet), dont l'inventeur est John Shive:
https://en.wikipedia.org/wiki/John_N._Shive
 La revue de l'Union des Physiciens a publié un excellent  article sur l'ondoscope :
http://www.udppc.asso.fr/bupdoc/consultation/article-bup.php?ID_fiche=12393
dans lequel les auteurs démontrent que le mouvement des barreaux correspond à une onde progressive dont ils calculent la vitesse de phase.
Le site de Wikipedia, précédemment cité contient une belle animation de cet appareil, dont le source en Java est sur le site :
http://weelookang.blogspot.fr/2012/08/ejs-open-source-wave-machine-model-java.html

Les animations suivantes ont été réalisées à partir des images obtenues avec PSTricks :

Les fichiers pdf qui contiennent 880 images sont trop lourds pour être placés sur mon serveur, je donne donc les fichiers sources, à compiler suivant la procédure habituelle : LaTeX->dvips->ps2pdf
gif-wavemachine-FE.tex
gif-wavemachine.tex
qui sont dans le doosier indiqué au début :

Ci-dessous le fichier source des éléments théoriques :

\documentclass{article}
\usepackage[a4paper,margin=2cm]{geometry}
\usepackage[garamond]{mathdesign}
\renewcommand{\ttdefault}{lmtt}
\usepackage{pst-plot,pst-node}
\usepackage{amsmath}
\usepackage{animate}
\newpsstyle{ball}{fillstyle=ccslope,slopebegin=white,slopecenter=0.4 0.6,linestyle=none}
\definecolor{bois}{RGB}{63 34 4}
\parindent0pt
\psset{dimen=middle}
\title{Réflexion d'ondes transversales sur une extrémité libre ou fixe}
\date{28 janvier 2016}
\def\Sawtooth{%
/date exch def
                                 date 0 le {0} if % t<0 br="">                                 
<0 br="">date 0 gt date T1 4 div le and {a1 date mul} if % 0                                 date T1 4 div gt date 3 T1 mul 4 div le and {a1 neg date mul 2 Am mul add} if % T/4                                 date T1 3 mul 4 div gt date  T1 le and {a1 date mul 4 Am mul sub} if % 3T/4                                 date T1 gt {0} if % t>T
}
\def\Sinusoidal{%
/date exch def date 0 le date T1 gt or {0} {Am 360 T1 div date mul sin mul }ifelse  % t<0 ou="" t="">T =>0
}
\def\Gauss{%
/date exch def date 0 le date 2 T1 mul gt or {0} {Am Euler date T1 sub dup mul neg exp mul } ifelse  % t<0 ou="" t="">T =>0
}%
\title{Réflexion d'ondes transversales sur une extrémité libre ou fixe}
\date{15 février 2016}
\begin{document}
\maketitle
On imprime à l'origine du dispositif(corde, ondoscope, ressort,etc.) un mouvement bref : sinusoïdal, en dents de scie ou en cloche(Gauss), comme dans les exemples ci-dessous :
\begin{center}
\begin{minipage}{5.5cm}
\begin{itemize}
  \item $t\leqslant0 \ :\ f(t)=0$
  \item $0  \item $t\geqslant T \ :\ f(t)=0$
\end{itemize}
\end{minipage}
\begin{minipage}{11cm}
\begin{pspicture}(-1,-2)(10,2)
\psgrid[subgriddiv=5,%
      gridlabels=0,%
      gridwidth=1pt,%
      gridcolor=red!20,
    subgridwidth=0.1pt,%
    subgridcolor=gray]
\psset{plotpoints=500,unit=1}
\psaxes{->}(0,0)(0,-1)(10,2)[$t$,0][$y$,0]
\psplot[linecolor=blue]{0}{10}[/T1 2 def /Am 1 def]{x \Sinusoidal}
\end{pspicture}
\end{minipage}
\end{center}
\begin{center}
\begin{minipage}{5.5cm}
\begin{itemize}
  \item $t\leqslant0 \ :\ f(t)=0$
  \item $0  \item $\frac{T}{4}  \item $\frac{3T}{4}  \item $t\geqslant T \ :\ f(t)=0$
\end{itemize}
\end{minipage}
\begin{minipage}{11cm}
\begin{pspicture}(-1,-2)(10,2)
\psset{plotpoints=500,unit=1}
\psgrid[subgriddiv=5,%
      gridlabels=0,%
      gridwidth=1pt,%
      gridcolor=red!20,
    subgridwidth=0.1pt,%
    subgridcolor=gray]
\psaxes{->}(0,0)(0,-1)(10,2)[$t$,0][$y$,0]
\psplot[linecolor=blue]{0}{10}[/T1 2 def /Am 1 def /a1 4 T1 div Am mul def ]{x \Sawtooth}
\end{pspicture}
\end{minipage}
\end{center}
\begin{center}
\begin{minipage}{5.5cm}
\begin{itemize}
  \item $t\leqslant0 \ :\ f(t)=0$
  \item $0  \item $t\geqslant2T \ :\ f(t)=0$
\end{itemize}
\end{minipage}
\begin{minipage}{11cm}
\begin{pspicture}(-1,-2)(10,2)
\psgrid[subgriddiv=5,%
      gridlabels=0,%
      gridwidth=1pt,%
      gridcolor=red!20,
    subgridwidth=0.1pt,%
    subgridcolor=gray]
\psset{plotpoints=500,unit=1}
\psaxes{->}(0,0)(0,-1)(10,2)[$t$,0][$y$,0]
\psplot[linecolor=blue]{0}{10}[/T1 2 def /Am 1 def ]{x \Gauss}
\end{pspicture}
\end{minipage}
\end{center}
On considère l'onde progressive se déplaçant vers la droite de $O$ vers $A$ qui sont les 2 extrémités du milieu de propagation; $O$ est la source de l'onde incidente. En notant $v$ la célérité de l'onde, l'élongation d'un point d'abscisse $x$ à l'instant $t$ se calculera par la relation :
\[
y(x,t)=y\left(0,t-\frac{x}{v}\right)
\]
Lorsque le signal arrive sur l'extrémité $A$, on calcule l'onde réfléchie en imaginant une onde fictive se propageant en sens inverse, de même signe que l'onde incidente si l'extrémité $A$ est libre, de signe contraire si elle est fixe et se superposant à l'onde incidente. Cette onde fictive démarre au même instant que l'onde incidente, mais au point $O_1$ d'abscisse $x_{O_1}=2L$.
\[
y_1(x_1,t)=y\left(0,t-\frac{x_1}{v}\right)\text{ avec } x_1=2L-x
\]
Sur le trajet de retour de $A$ vers $O$, l'élongation d'un point d'abscisse $x$ à l'instant $t$ se calculera par la superposition de ces 2 ondes :
\[
y(x,t)=y\left(0,t-\frac{x}{v}\right)\pm y\left(0,t-\frac{2L-x}{v}\right)
\]
\begin{center}
\begin{pspicture}(-5,-2)(10,2)
\psframe*[linecolor=cyan!20](5,-2)(10,2)
\psframe*[linecolor=cyan!20](0,-2)(-5,2)
\psgrid[subgriddiv=0,gridcolor=black,griddots=10,gridlabels=0pt](-5,-2)(10,2)%
\psset{plotpoints=500,unit=0.5}
\psline{->}(-10,0)(20,0)
\psline{->}(0,-4)(0,4)
\uput[d](20,0){$x$}
\uput[u](0,4){$y$}
\psdots[linecolor=red](10,0)(0,0)
\psplot[linecolor=red]{0}{10}[/T1 2 def /Am 2 def ]{x \Gauss}
\psplot[linecolor=red,linestyle=dashed]{10}{20}[/T1 2 def /Am 2 def ]{20 x sub \Gauss}
\uput[dl](0,0){$O$}\uput[dl](10,0){$A$}
\psline{->}(1,3)(3,3)
\psline{->}(19,3)(17,3)
\psline{<->}(0,-2)(10,-2)\uput[u](5,-2){$L$}
\psline{<->}(0,-3)(20,-3)\uput[u](10,-3){$2L$}
\uput[d](3,0){$x$}\psdot[dotstyle=|](3,0)
\uput[d](17,0){$x_1$}\psdot[dotstyle=|](17,0)
\rput(5,3){\pscirclebox{$t$}}
\uput[0](20,0){$O_1$}
\end{pspicture}
\end{center}
À la fin de ce premier aller-retour, l'onde est réfléchie par l'extrémité $O$. Pour caractériser cette onde réfléchie, on considère que $O$ est une extrémité libre et qu'il existe une deuxième onde fictive qui se déplace dans le sens des $x>0$ : celle-ci démarre au même instant $t=0$ que l'onde initiale mais au point $O_2$ d'abscisse $x_{O_2}=-2L$, son signe dépend de celui de l'onde dans le retour de $A$ vers $O$, c'est-à-dire de même signe que l'onde initiale si $A$ est une extrémité libre et le contraire si $A$ est fixe.
\[
y_2(x_2,t)=y\left(0,t+\frac{x_2}{v}\right)\ \text{ avec }\  x_2=-2L-x
\]
On peut ainsi poursuivre le mouvement, au bout du deuxième trajet de $O$ vers $A$, on imagine qu'il y a une autre onde fictive qui se déplace dans le sens des $x<0 :="" abscisse="" au="" br="" c="" comme="" d="" de="" demment="" elle="" et="" extr="" incidente="" l="" la="" marre="" mit="" nature="" onde="" pend="" point="" pr="" qui="" se="" signe="" son="" superposera="" x_="">\[
y_3(x_3,t)=y\left(0,t-\frac{x_3}{v}\right)\ \text{ avec }\  x_3=4L-x
\]
Sur la portion de l'axe correspondant au milieu réel de propagation, l'onde résultante sera la somme des 4 ondes ainsi définies. On voit qu'on pourrait généraliser à un nombre plus grand d'ondes pour étudier les aller-retour de l'onde progressive pendant une durée plus grande.

Dans cette première animation, l'extrémité $A$ est supposée libre, de même que l'extrémité $O$, après avoir impulsé le mouvement en $O$ cette extrémité est laissée libre, mais on pourrait envisager de la fixer.
\def\nFrames{220}%
\begin{center}
\psset{unit=0.5}
\begin{animateinline}[controls,
                     begin={\begin{pspicture}(-11,-2)(21,2)},
                     end={\end{pspicture}}]{5}% 5 images/s
\multiframe{\nFrames}{rt=0+0.2}{
\psframe*[linecolor=cyan!20](5,-2)(21,2)
\psframe*[linecolor=cyan!20](0,-2)(-11,2)
\psframe*[linecolor=yellow!20](0,-2)(5,2)
\psset{plotpoints=500,unit=0.5}
\psline{->}(-20,0)(41,0)
\psline{->}(0,-4)(0,4)
\uput[u](41,0){$x$}
\uput[l](0,3.5){$y$}
\psdots[linecolor=red](10,0)(0,0)
\uput[-45](10,0){$A$}
\uput[225](0,0){$O$}
\psdots(20,0)(40,0)(-20,0)
\uput[d](20,0){$O_1$}
\uput[d](-20,0){$O_2$}
\uput[d](40,0){$O_3$}
\pstVerb{/ti \rt\space def /Vi 1 def /Li 10 def /T1 2 def /Am 2 def }% 1 aller = 10 s
% onde incidente
\psplot[linecolor=blue]{-22}{20}{ti x Vi div sub \Gauss}
% onde fictive 1 dans le sens des x<0 br="">\psplot[linecolor=green]{-22}{20}{ti 2 Li mul x sub Vi div sub \Gauss}
% onde fictive dans le sens >0
\psplot[linecolor=red]{-22}{30}{ti -2 Li mul x sub Vi div add \Gauss}
% onde fictive 2 dans le sens des x<0 4="" br="" celerity="" div="" longueur="" mul="" sub="" ti="" xp="">\psplot[linecolor=cyan]{-22}{40}{ti 4 Li mul x sub Vi div sub \Gauss}
% onde sur la corde
\psplot[linecolor=magenta,linewidth=0.3]{0}{10}{ti x Vi div sub \Gauss ti 2 Li mul x sub Vi div sub \Gauss add ti -2 Li mul x sub Vi div add \Gauss add ti 4 Li mul x sub Vi div sub \Gauss add}
}
\end{animateinline}
\end{center}
Dans cette deuxième animation, l'extrémité $A$ est supposée fixe.
\begin{center}
\psset{unit=0.5}
\begin{animateinline}[controls,
                     begin={\begin{pspicture}(-11,-2)(21,2)},
                     end={\end{pspicture}}]{5}% 5 images/s
\multiframe{\nFrames}{rt=0+0.2}{
\psframe*[linecolor=cyan!20](5,-2)(21,2)
\psframe*[linecolor=cyan!20](0,-2)(-11,2)
\psframe*[linecolor=yellow!20](0,-2)(5,2)
\psset{plotpoints=500,unit=0.5}
\psline{->}(-20,0)(41,0)
\psline{->}(0,-4)(0,4)
\uput[u](41,0){$x$}
\uput[l](0,3.5){$y$}
\psdots[linecolor=red](10,0)(0,0)
\uput[-45](10,0){$A$}
\uput[225](0,0){$O$}
\psdots(20,0)(40,0)(-20,0)
\uput[d](20,0){$O_1$}
\uput[d](-20,0){$O_2$}
\uput[d](40,0){$O_3$}
\pstVerb{/ti \rt\space def /Vi 1 def /Li 10 def /T1 2 def /Am 2 def }% 1 aller = 10 s
% onde incidente
\psplot[linecolor=blue]{-22}{20}{ti x Vi div sub \Gauss}
% onde fictive 1 dans le sens des x<0 br="">\psplot[linecolor=green]{-22}{20}{ti 2 Li mul x sub Vi div sub \Gauss neg}
% onde fictive dans le sens >0
\psplot[linecolor=red]{-22}{30}{ti -2 Li mul x sub Vi div add \Gauss neg }
% onde fictive 2 dans le sens des x<0 4="" br="" celerity="" div="" longueur="" mul="" sub="" ti="" xp="">\psplot[linecolor=cyan]{-22}{40}{ti 4 Li mul x sub Vi div sub \Gauss}
% onde sur la corde
\psplot[linecolor=magenta,linewidth=0.3]{0}{10}{ti x Vi div sub \Gauss
                                                ti 2 Li mul x sub Vi div sub \Gauss neg add
                                                ti -2 Li mul x sub Vi div add \Gauss neg add
                                                ti 4 Li mul x sub Vi div sub \Gauss add}
}%
\end{animateinline}
\end{center}
\end{document}



Ci-après les fichiers sources des animations de l'ondoscope :

\documentclass{article}
\usepackage[paperwidth=10.5cm,paperheight=6.5cm,hmargin={0cm,0cm},vmargin={0cm,0cm},dvips]{geometry}
\usepackage{pst-plot,pst-node,pst-slpe,pst-3d}
\newpsstyle{ball}{fillstyle=ccslope,slopebegin=white,slopecenter=0.4 0.6,linestyle=none}
\definecolor{bois}{RGB}{63 34 4}
\parindent0pt
\psset{dimen=middle}
\title{Réflexion d'ondes transversales sur une extrémité libre ou fixe}
\date{28 janvier 2016}
\def\Sawtooth{%
/date exch def
                                 date 0 le {0} if % t<0 br="">                                 date 0 gt date T1 4 div le and {a1 date mul} if % 0                                 date T1 4 div gt date 3 T1 mul 4 div le and {a1 neg date mul 2 Am mul add} if % T/4                                 date T1 3 mul 4 div gt date  T1 le and {a1 date mul 4 Am mul sub} if % 3T/4                                 date T1 gt {0} if % t>T
}
\def\Sinusoidal{%
/date exch def date 0 le date T1 gt or {0} {Am 360 T1 div date mul sin mul }ifelse  % t<0 ou="" t="">T =>0
}
\def\Gauss{%
/date exch def date 0 le date 2 T1 mul gt or {0} {Am Euler date T1 sub dup mul neg exp mul } ifelse  % t<0 ou="" t="">T =>0
}%
\pagestyle{empty}
\begin{document}
\begin{center}
\psset{viewpoint=1 1 0.5}
\def\nFrames{880}%
\multido{\rt=0+0.05}{\nFrames}{%
\begin{pspicture}(-2,-4)(8.5,2.5)
\psframe(-2,-4)(8.5,2.5)
\ThreeDput[normal=0 0 1](0,0,-1.2){%
\psframe[fillstyle=solid,fillcolor=green!20](-1,0)(1,10)}
\ThreeDput[normal=1 0 0](0,0,0){%
% les axes
    \psline{->}(0,0)(11,0)
    \psline[linecolor=cyan](0,0)(10,0)
    \uput[0](11,0){$y$}
    \psline{->}(0,0)(0,2)
    \uput[90](0,2){$z$}
    \psline[linewidth=0.1](0,-1.2)
    \psline[linewidth=0.1](10,0)(10,-1.2)}
\ThreeDput[normal=0 1 0](0,0,0){%
\psline{->}(0,0)(-2,0)\uput[90](-2,0){$x$}
}%
\multido{\rx=0+0.25}{41}{%
\pstVerb{/T1 2 def % p\'{e}riode :
         /celerity 1 def   %
         /Longueur 10 def
% 5xT1 pour parcourir la longueur
         /Am 45 def % amplitude maximale en degrés
         /a1 4 T1 div Am mul def % pente pour le signal en dents de scie
         /ti \rt\space def
         /xP \rx\space def
% description du signal initial
         /Signal {\Gauss} def % {\Sawtooth } def
% signal incident
        /AngleRotationI {ti xP celerity div sub Signal} def
% signal réfléchi au bout du premier trajet sur l'extrémité A
       /AngleRotation-R1  {ti 2 Longueur mul xP sub celerity div sub Signal} def
% le - indique la propagation dans le sens -
% signal réfléchi au bout du premier aller-retour sur l'extrémité O supposée libre
       /AngleRotation+R2 {ti -2 Longueur mul xP sub celerity div add Signal} def
% le + indique la propagation dans le sens +
% signal réfléchi au deuxième aller-retour sur l'extrémité A
       /AngleRotation-R2  {ti 4 Longueur mul xP sub celerity div sub Signal} def
% signe résultant dans le cas où l'extrémité est fixe
      /AngleRotation {AngleRotationI  AngleRotation-R1 sub AngleRotation+R2 sub AngleRotation-R2 add} def
    }%
\ThreeDput[normal=0 1 0](0,\rx,0){%
\rput{!AngleRotation}{\pnode(1,0){A1}\pnode(-1,0){A2}}%{\tige}%
}%
\psline[linewidth=0.05,linecolor=bois](A1)(A2)
\pscircle[style=ball,slopeend=red](A1){0.1}%
\pscircle[style=ball,slopeend=blue](A2){0.1}}
\end{pspicture}\newpage
}
\end{center}
\end{document}


\documentclass{article}
\usepackage[paperwidth=10.5cm,paperheight=6.5cm,hmargin={0cm,0cm},vmargin={0cm,0cm},dvips]{geometry}
\usepackage{pst-plot,pst-node,pst-slpe,pst-3d}
\newpsstyle{ball}{fillstyle=ccslope,slopebegin=white,slopecenter=0.4 0.6,linestyle=none}
\definecolor{bois}{RGB}{63 34 4}
\parindent0pt
\psset{dimen=middle}
\title{Réflexion d'ondes transversales sur une extrémité libre ou fixe}
\date{28 janvier 2016}
\def\Sawtooth{%
/date exch def
                                 date 0 le {0} if % t<0 br="">                                 date 0 gt date T1 4 div le and {a1 date mul} if % 0                                 date T1 4 div gt date 3 T1 mul 4 div le and {a1 neg date mul 2 Am mul add} if % T/4                                 date T1 3 mul 4 div gt date  T1 le and {a1 date mul 4 Am mul sub} if % 3T/4                                 date T1 gt {0} if % t>T
}
\def\Sinusoidal{%
/date exch def date 0 le date T1 gt or {0} {Am 360 T1 div date mul sin mul }ifelse  % t<0 ou="" t="">T =>0
}
\def\Gauss{%
/date exch def date 0 le date 2 T1 mul gt or {0} {Am Euler date T1 sub dup mul neg exp mul } ifelse  % t<0 ou="" t="">T =>0
}%
\pagestyle{empty}
\begin{document}
\begin{center}
\psset{viewpoint=1 1 0.5}
\def\nFrames{880}%
\multido{\rt=0+0.05}{\nFrames}{%
\begin{pspicture}(-2,-4)(8.5,2.5)
\psframe(-2,-4)(8.5,2.5)
\ThreeDput[normal=0 0 1](0,0,-1.2){%
\psframe[fillstyle=solid,fillcolor=green!20](-1,0)(1,10)}
\ThreeDput[normal=1 0 0](0,0,0){%
% les axes
    \psline{->}(0,0)(11,0)
    \psline[linecolor=cyan](0,0)(10,0)
    \uput[0](11,0){$y$}
    \psline{->}(0,0)(0,2)
    \uput[90](0,2){$z$}
    \psline[linewidth=0.1](0,-1.2)
    \psline[linewidth=0.1](10,0)(10,-1.2)}
\ThreeDput[normal=0 1 0](0,0,0){%
\psline{->}(0,0)(-2,0)\uput[90](-2,0){$x$}
}%
\multido{\rx=0+0.25}{41}{%
\pstVerb{/T1 2 def % p\'{e}riode :
         /celerity 1 def   %
         /Longueur 10 def
% 5xT1 pour parcourir la longueur
         /Am 45 def % amplitude maximale en degrés
         /a1 4 T1 div Am mul def % pente pour le signal en dents de scie
         /ti \rt\space def
         /xP \rx\space def
% description du signal initial
         /Signal {\Gauss} def % {\Sawtooth } def
% signal incident
        /AngleRotationI {ti xP celerity div sub Signal} def
% signal réfléchi au bout du premier trajet sur l'extrémité libre
       /AngleRotation-R1  {ti 2 Longueur mul xP sub celerity div sub Signal} def
% le - indique la propagation dans le sens -
% signal réfléchi au bout du premier aller-retour sur l'extrémité O supposée libre
       /AngleRotation+R2 {ti -2 Longueur mul xP sub celerity div add Signal} def
% le + indique la propagation dans le sens +
% signal réfléchi au deuxième aller-retour sur l'extrémité libre
       /AngleRotation-R2  {ti 4 Longueur mul xP sub celerity div sub Signal} def
% signe résultant
      /AngleRotation {AngleRotationI  AngleRotation-R1 add AngleRotation+R2 add AngleRotation-R2 add} def
    }%
\ThreeDput[normal=0 1 0](0,\rx,0){%
\rput{!AngleRotation}{\pnode(1,0){A1}\pnode(-1,0){A2}}%{\tige}%
}%
\psline[linewidth=0.05,linecolor=bois](A1)(A2)
\pscircle[style=ball,slopeend=red](A1){0.1}%
\pscircle[style=ball,slopeend=blue](A2){0.1}}
\end{pspicture}\newpage
}
\end{center}
\end{document}



jeudi 4 février 2016

Principe de l'oscilloscope cathodique : une réalisation de Thomas Söll


5 février 2016 : Thomas a mis en ligne sur le serveur du CTAN, la nouvelle version de pst-perspective.

Voici le listing de l'oscilloscope cathodique :

\documentclass[pstricks,border=10pt,dvipsnames,distiller]{standalone}

\usepackage{amsmath,pst-circ,pst-coil,pst-perspective}

\begin{document}

\newcommand{\Zylinder}[9]{%  #1 L\"{a}nge, #2 Radius, #3 gradbegin, #4 gradend, #5 gradmidpoint
\pscustom[dimen=#9,fillstyle=gradient,gradbegin=#3,gradend=#4,gradmidpoint=#5,gradangle=90,linecolor=#6,linewidth=#7,linestyle=#8]{%
\psellipticarc(0,0)(!#2 #2 0.3 mul){180}{360}
\psellipticarcn(0,#1)(!#2 #2 0.3 mul){0}{-180}
\closepath
}
\psellipse[fillstyle=solid,fillcolor=#6,linestyle=none](0,#1)(!#2 #2 0.3 mul)
}
\begin{pspicture}[showgrid=false](-1,-1.25)(13,6)
\definecolor{Kristallblau}{rgb}{0.1176,0.5647,1}% Dodger blau
\definecolor{RandFarbe}{rgb}{0.1176,0.5647,1}%{0,0.75,1}% DeepSkyBlue

%%R\"{o}hre
\pscustom[fillstyle=gradient,gradbegin=cyan!20,gradend=white,gradmidpoint=0.45,gradangle=0]{%
\psellipticarcn(1.5,2.5)(0.35,1.5){270}{90}
\psline(8,4)(12,6)
\psline(12,-1)(8,1)
\closepath%
}
\psellipse[fillstyle=solid,fillcolor=Kristallblau!50,opacity=0.3,linewidth=0.4pt,linestyle=none](1.5,2.5)(0.35,1.5)
\psellipticarcn[linewidth=1pt](1.5,2.5)(0.35,1.5){270}{90}

%%Heiz
\pscoil[coilarm=0.075cm,coilwidth=3mm,coilheight=0.3,linewidth=0.5pt,linecolor=orange](2.5,2.2)(2.5,2.8)
\psline[arrowscale=1](2.5,2.8)(2.5,3)(0.5,3)
\psline[arrowscale=1](2.5,2.2)(2.5,2)(0.5,2)
\psellipse[fillstyle=solid,fillcolor=black](1.5,3)(0.03,0.04)
\psellipse[fillstyle=solid,fillcolor=black](1.5,2)(0.03,0.04)
\battery[labeloffset=0.85](0.5,2)(0.5,3){$U_{\text{H}}$}
\psline[arrowscale=1]{*-}(0.5,2)(0.5,0)
\battery[labeloffset=.85](4.5,0)(0.5,0){$U_{\text{B}}$}
\psline(4.5,0)(4.5,2)
\psline[arrowscale=1]{*-}(2,2)(2,1.5)(3.2,1.5)(3.2,2)


\rput{-90}(2.85,2.5){\Zylinder{0.75}{0.5}{black!90!cyan!80}{gray!10}{0.3}{black!90!cyan!80}{1pt}{none}{middle}}
\rput{-90}(2.85,2.5){%
\psellipse[fillstyle=gradient,gradbegin=black!90!cyan!80,gradend=gray!10,gradmidpoint=0.65,gradangle=90,linewidth=0.3pt,linecolor=black!85](0,0.75)(!0.48 dup 0.3 mul)}
\psframe[fillstyle=gradient,gradbegin=red!10,gradend=red!70,gradmidpoint=0.5,gradangle=0,linestyle=none,framearc=0.3](3.47,2.45)(4.5,2.55)
\rput{-90}(4.45,2.5){\Zylinder{0.1}{0.5}{black!90!cyan!80}{gray!10}{0.3}{black!90!cyan!80}{1pt}{none}{middle}}
\rput{-90}(4.45,2.5){%
\psellipse[fillstyle=gradient,gradbegin=black!90!cyan!80,gradend=gray!10,gradmidpoint=0.65,gradangle=90,linewidth=0.3pt,linecolor=black!85](0,0.1)(!0.2 dup 0.3 mul)}

\psboxTS[linejoin=1,linewidth=0.5pt](-0.5,5,2.25){1}{1.0}{0.15}{black!40}

\psframe[fillstyle=gradient,gradbegin=red!10,gradend=red!70,gradmidpoint=0.5,gradangle=0,linestyle=none,framearc=0.3](4.51,2.45)(5.4,2.55)

\pscustom[linewidth=1.1pt,linejoin=1]{%
\psellipticarcn(1.5,2.5)(0.35,1.5){270}{90}
\psline(8,4)(12,6)
\psline(12,-1)(8,1)
\closepath%
}

\psboxTS[linejoin=1,linewidth=0.5pt](-0.35,7,2){0.2}{1}{1}{black!40}

\rput{-90}(12,2.5){\Zylinder{.2}{3.5}{black!30!cyan!80}{gray!10}{0.3}{black!20!cyan!30}{1pt}{none}{middle}}
\pcline[linecolor=red!30,linewidth=1.2pt](5.4,2.5)(12.0,3.3)
\pcline[linecolor=red,linewidth=1.2pt,nodesepB=1.05](5.4,2.5)(12,3.3)
\psellipse[fillstyle=solid,fillcolor=black!30!SeaGreen,linestyle=none,linewidth=2pt](12,3.3)(0.05,0.08)

\psboxTS[linejoin=1,linewidth=0.5pt](0.35,7,2){0.2}{1}{1}{black!40}
\psboxTS[linejoin=1,linewidth=0.5pt](-0.5,5,2.75){1}{1.0}{0.15}{black!40}

\psline(2.6,2.72)(2.6,5)
\uput[90](2.6,5){A}
\psline(4.5,3)(4.5,5)
\uput[90](4.5,5){B}
\psline(5.5,3)(5.5,3.8)(6.3,5)
\uput[90](6.3,5){C}
\psline(7.335,1.9)(6.5,1.2)(6.5,0)
\uput[-90](6.5,0){D}

\end{pspicture}

\end{document} 

lundi 1 février 2016

Principe d'un moteur électrique rotatif illustré par Thomas Söll


Ce schéma très beau et très explicite a été réalisé par Thomas Söll avec PSTricks, le code LaTeX et le fichier pdf (Elektromotor.pdf et Elektromotor.tex) contenant toutes les images sont téléchargeables ici, ils sont placés dans le dossier:


La revue Jeunes Années éditée par les francs et franches camarades, a publié dans son numéro du Printemps-été 1981,  un montage de moteur électrique à réaliser soi-même avec des éléments très simples, avec des explications et des schémas très clairs. Cette revue ayant disparue depuis longtemps, je me permets de donner un lien permettant de télécharger cet article signé par Jean-Paul Mouvier et Christiane Neuville. Ayant expérimenté par moi-même la réalisation de ce moteur, je puis vous assurer que le montage est facile et que le moteur tourne !
Je donne ci-dessous le listing du code de Thomas, le code a été revu et mise-à-jour le 5 février 2016 : les changements de polarité du rotor (N,S) sont maintenant, bien nets.

\documentclass[pstricks,border=10pt,x11names]{standalone}

\usepackage{pst-circ,pst-grad,pst-slpe,pst-text}

\begin{document}
\DeclareFixedFont{\RM}{T1}{phv}{b}{n}{1cm}
\DeclareFixedFont{\RSS}{T1}{phv}{b}{n}{0.6cm}

\multido{\nB=30+10}{145}{%
\begin{pspicture}[showgrid=false](0,0)(12,9)
\definecolor{RotTS}{HTML}{CC0000}% dunkelrot
\definecolor{GruenTS}{HTML}{006600}%{0,0.75,1}% gr\"{u}n
\definecolor{GruenT}{cmyk}{0.92,0,0.87,0.09}%{0,0.75,1}% gr\"{u}n
%------------------------------------------------------------------------
\psframe[fillstyle=solid,fillcolor=RotTS,linestyle=none](0,2)(6,8)
\psframe[fillstyle=solid,fillcolor=GruenTS,linestyle=none](6,2)(12,8)
\pscircle[fillstyle=solid,fillcolor=white,linestyle=none](6,5){3.3}
%------------------------------------------------------------------------
\rput(1,5){\Large\textcolor{white}{\RM N}}
\rput(11,5){\Large\textcolor{white}{\RM S}}
%------------------------------------------------------------------------
\pstVerb{/wi \nB\space def wi cos 0.1 lt %
{wi sin abs 0.18 ge {/kwa 6 def /kwi wi 180 mod 9.9 sub def} {/kwa 0 def /kwi 0.1 def} ifelse}%
{wi sin abs 0.2 gt {/kwa 6 def /kwi wi 180 mod 9.9 sub def} {/kwa 0 def /kwi 0.1 def} ifelse} ifelse}%
\pstVerb{/wi \nB\space def wi sin 0 eq {/soc 0 def /asz 0 def /dx 0 def} {/soc 1 def /asz 120 def /dx wi 50 mod 300 div def} ifelse}%
\pstVerb{/wi \nB\space def wi sin 0 eq {/ca 0.21 def /cb 0.2 def} {/ca 0.99 def /cb 0.98 def} ifelse}%
\pstVerb{/wi \nB\space def wi cos 0 lt %
{wi sin 0 lt {/gw 180 def /so 0 def /sob 1 def /vz 1 neg def} {/gw 0 def /so 1 def /sob 0 def /vz 1 def} ifelse} %
{wi sin 0 le {/gw 180 def /so 0 def /sob 1 def /vz 1 neg def} {/gw 0 def /so 1 def /sob 0 def /vz 1 def} ifelse} ifelse}%
\rput{\nB}(6,5){%
\pnode(3;30){A}
\pnode(3;150){B}
\pnode(3;210){C}
\pnode(3;-30){D}
\psset{slopesteps=500,slopecolors=%
0 .9 .1 .1 %
.4 .7 .25 .25 %
.5 .9 .9 .9 %
.6 .25 .7 .25 %
1 .1 .9 .1 5}%
\pscustom[fading,startfading=!cb,endfading=!ca,linestyle=none,fillstyle=slopes,gradmidpoint=0,slopeangle=!gw]{%,slopesteps=5
\psarc(0,0){3}{-30}{30}%
\psline([nodesep=-0.3]A)([nodesep=-0.3]A|[offset=-0.7]A)%
\psline([nodesep=0.3]B|[offset=-0.7]B)([nodesep=0.3]B)%
\psarc(0,0){3}{150}{210}%
\psline([nodesep=0.3]C)([nodesep=0.3]C|[offset=0.7]C)%
\psline([nodesep=-0.3]D|[offset=0.7]D)([nodesep=-0.3]D)%
\closepath%
}%
\pscircle[linestyle=none,fillstyle=solid,fillcolor=black!75](0,0){0.615}%
\pscustom[linestyle=none,fillstyle=solid,fillcolor=cyan!20]{%
\psarc(0,0){0.45}{10}{170}%
\psarcn(0,0){0.6}{170}{10}%
\closepath%
}%
\pscustom[linestyle=none,fillstyle=solid,fillcolor=cyan!20]{%
\psarc(0,0){0.45}{190}{350}%
\psarcn(0,0){0.6}{350}{190}%
\closepath%
}%
\psline[linewidth=4pt,linecolor=blue!65]{c-c}(0.5,-0.2)(0.53,-0.8)
\psline[linewidth=4pt,linecolor=blue!65]{c-c}(-0.5,0.2)(-0.53,0.8)
\psforeach{\nA}{0.8, 1.1, 1.4, 1.7, 2.0, -0.9, -1.2, -1.5, -1.8, -2.1}{%
\psline[linewidth=4pt,linecolor=blue!65]{c-c}(\nA,0.8)(!\nA\space 0.1 add -0.8)%
}%
\rput{!gw}(0.515,-0.5){\pcline[linewidth=1.5pt,arrowinset=0.05,arrowlength=1.8,arrowsize=0.12,linecolor=Goldenrod1,nodesep=0.1,strokeopacity=!soc]{->}(-0.015,0.3)(0.015,-0.3)}%
\rput{!gw}(-0.515,0.5){\pcline[linewidth=1.5pt,arrowinset=0.05,arrowlength=1.8,arrowsize=0.12,linecolor=Goldenrod1,nodesep=0.1,strokeopacity=!soc]{->}(-0.015,0.3)(0.015,-0.3)}%
\psforeach{\nA}{-0.85, -1.15, -1.45, -1.75, -2.05, 0.85, 1.15, 1.45, 1.75, 2.05}{%
\rput{!gw}(\nA,0){%
\pcline[linewidth=1.1pt,linestyle=dotted,dotsep=3pt,linecolor=Goldenrod1,nodesepA=0.05,nodesepB=0.05](!0.8016 dx 0.7 mul vz mul sub 93.576 PtoC)(!0.8016 dx 0.7 mul vz mul add 273.576 PtoC)}%
}%
\rput{-\nB}(2.65;180){\pscharpath[linestyle=none,fillstyle=solid,fillcolor=white,opacity=!so]{\RSS N}}%
\rput{-\nB}(2.65;0){\pscharpath[linestyle=none,fillstyle=solid,fillcolor=white,opacity=!so]{\RSS S}}%
\rput{-\nB}(2.65;0){\pscharpath[linestyle=none,fillstyle=solid,fillcolor=white,opacity=!sob]{\RSS N}}%
\rput{-\nB}(2.65;180){\pscharpath[linestyle=none,fillstyle=solid,fillcolor=white,opacity=!sob]{\RSS S}}%
\rput{!gw}(-1.45,0){%
\pcline[linewidth=1.5pt,arrowinset=0.05,arrowlength=1.8,arrowsize=0.12,linecolor=Goldenrod1,nodesep=0.3,strokeopacity=!soc]{->}(-0.05,0.8)(0.05,-0.8)}%
\rput{!gw}(1.45,0){%
\pcline[linewidth=1.5pt,arrowinset=0.05,arrowlength=1.8,arrowsize=0.12,linecolor=Goldenrod1,nodesep=0.3,strokeopacity=!soc]{->}(-0.05,0.8)(0.05,-0.8)}%
}%
\psframe[fillstyle=solid,fillcolor=black!90,linestyle=none](6.6,4.9)(7,5.1)
\psframe[fillstyle=solid,fillcolor=black!90,linestyle=none](5.0,4.9)(5.4,5.1)
\psline[linewidth=1pt](5,5)(4.75,5)(4.75,1)
\rput{0}(6,5){\psarc[linewidth=1pt,linecolor=Goldenrod1,linestyle=dotted,dotsep=3pt](0,0){0.525}{!kwa}{!kwi}}%
\rput{0}(6,5){\psarc[linewidth=1pt,linecolor=Goldenrod1,linestyle=dotted,dotsep=3pt](0,0){0.525}{!kwa 180 add}{!kwi 180 add}}%
\psline[linewidth=1pt](7,5)(7.25,5)(7.25,1)
\battery[labeloffset=-.85](4.75,1)(7.25,1){}
\psline[linewidth=1pt,linecolor=Goldenrod1,linestyle=dotted,dotsep=3pt](!5.5 dx sub 5)(4.75,5)(4.75,1)(!5.8 dx add 1)
\psline[linewidth=1pt,linecolor=Goldenrod1,linestyle=dotted,dotsep=3pt](!6.7 dx sub 5)(7.25,5)(7.25,1)(!6.15 dx add 1)
\pscircle[linestyle=none,fillstyle=solid,fillcolor=black!90](6,5){0.15}
\end{pspicture}
}
\end{document}