\documentclass[a4paper]{article}%{proc} \usepackage{german} %\usepackage{multicol} \usepackage[cp850]{inputenc} \begin{document} \title{Impedanzbestimmung einmal anders} \author{Peter Bertram\\ DJ2ZS} \maketitle \begin{abstract} Das Stehwellenverhältnis wird bestimmt durch die Impedanz des Leiters und seines Abschlusses, es ist eine Funktion beider Werte. Sind sie gegeben, dann ist das Stehwellenverhältnis berechenbar. Umgekehrt müsste man durch Kenntnis vom Stehwellenverhältnis und Kabelimpedanz auf die des Abschlusses schließen können. Wie das möglich ist, wird im folgenden beschrieben. Beim Lösen des numerischen Problems hilft ein Verfahren der Evolution: durch Mutation wird die Genauigkeit der Lösung immer besser. Auch wer mit Mathematik auf dem Kriegsfuß steht kann beruhigt weiterlesen. Die Berechnung erledigt ein PASCAL-Programm, das mit biologischen Verfahren mathematische Aufgaben löst. \end{abstract} \section{Eine Formel und ihre Folgen} Wohl jeder Funkamateurs besitzt mindestens ein Stehwellenmessgerät. Die nicht lineare Skaleneinteilung bei der analogen Anzeige gestattet das Ablesen der Welligkeit oder des Stehwellenverhältnisses auf der Leitung. Als Abkürzung dient bei den Funkamateuren $SWR$ oder besser $VSWR$, in der Technik das kürzere Symbol $s$, das auch hier verwendet wird. Die Welligkeit $s$ und die Impedanz $Z_0$ des Kables und Abschluss $Z_A = R_A + iX_A$ - der Antenne also - hängen so zusammen (man findet die Terme u.a. in \cite{ARRL}): \begin{equation} \label{s-Formel1} s = \frac{1 + |\rho| }{1 - |\rho|} \end{equation} mit \begin{equation} \label{rho-Formel} |\rho| = \sqrt{\frac{(R_A - Z_0)^2+ X_A^2}{(R_A + Z_0)^2 + X_A^2}} \end{equation} Das sieht schon wild aus, doch setzt man \ref{rho-Formel} in \ref{s-Formel1} ein, dann wird es für manche der Anblick erst recht grauslich. \begin{equation} \label{s-Formel2} s = \frac{1 +\sqrt{\frac{(R_A - R_0)^2+ X_A^2}{(R_A + R_0)^2 + X_A^2}}} {1 -\sqrt{\frac{(R_A - R_0)^2+ X_A^2}{(R_A + R_0)^2 + X_A^2}}} \end{equation} Aber halt, nicht schrecken lassen! Mehr als einen Blick zu riskieren brauchen wir nicht. Es ist schon toll, was so ein einfaches und billiges Messgerät leistet, die ganze Rechnerei bleibt einem erspart. Gehen wir jetzt die Aufgabenstellung an: $R_A$ und $X_A$ sind unbekannt, $s$ wird gemessen und $Z_0$ (meist 50 Ohm) ist durch den Kabeltyp bestimmt. Um $R_A$ und $X_A$ zu bestimmen sind mindestens zwei \em verschiedene\em{} Gleichungen erforderlich. Wir müssen aus zwei Messungen zwei \em verschiedene\em{} Werte von $s$ erhalten, allerdings dürfen wir die Impedanz $Z_A$ der Antenne nicht ändern, denn $R_A$ und $X_A$ wollen wir ja bestimmen. Was tun? Wir ändern einfach $R_A$ oder $X_A$ \em definiert\em{} durch die Serienschaltung eines Widerstandes, eines Kondensators oder einer Spule. Bei der folgenden Messung erhalten wir einen anderen Wert für $s$. Beispielsweise ergibt die erste Messung $s = 2,4$, die zweite Messung mit einem Serienkondensator $s = 4,6$. Die Kapazität des Kondensators sei 105 pF, die Frequenz 10 MHz. Somit ergibt sich für den kapazitiven Widerstand $X_C = 150$ Ohm. Für die Kabelimpedanz gilt ein Wert von $R_0 = -50$ Ohm. Die Zahlenwerte in Ohm in Formel \ref{s-Formel2} eingesetzt ergibt dann \begin{eqnarray} \label{System} 2,4 &=& \frac{1 +\sqrt{\frac{(R_A - 50)^2+ X_A^2}{(R_A + 50)^2 + X_A^2}}} {1 -\sqrt{\frac{(R_A - 50)^2+ X_A^2}{(R_A + 50)^2 + X_A^2}}}\nonumber\\ 4,6 &=& \frac{1 +\sqrt{\frac{(R_A - 50)^2+ X_A^2}{(R_A + 50)^2 + (X_A-150)^2}}} {1 -\sqrt{\frac{(R_A - 50)^2+ X_A^2}{(R_A + 50)^2 + (X_A-150)^2}}} \end{eqnarray} Immerhin zwei Gleichungen mit zwei Variablen, doch schön sieht das alles nicht aus. \glqq Sehr\grqq{} unlinear\ldots gerade die, die zur Mathematik eine Affinität pflegen, wissen, warum jetzt guter Rat gefragt ist. Was nun? \section{Die Lösung: ein evolutionäres Programm!} Nein, da fehlt wirklich kein \em r\em. Der Name macht schon Sinn, wie wir bald sehen werden. Wenn Rechnen nicht hilft, dann hilft vielleicht Raten. Am besten eine Art intelligentes Raten. Wir raten die beiden gesuchten Werte, setzen sie in die rechten Seiten der beiden Gleichungen ein, berechnen die linken Seiten und vergleichen diese mit den Vorgaben. Dann wissen wir, wie gut unser Tipp war und auf Grund dieser Kenntnis wählen wir einen neuen und hoffentlich besseren Tipp. Das machen wir solange, bis wir die linken Seiten des Gleichungssystems genau genug durch unsere geratenen Werte angenähert werden. Ganz klar, die Rechnerei soll uns ein elektronischer Rechenknecht abnehmen. Fehlt nur noch das Programm. Und eine weitere Kleinigkeit: mit welcher Strategie bestimmt man jeweils den neuen Tipp? Wer jetzt gleich zum nächsten Kapitel geht kann zwar das Programm benutzen, weiß aber nicht, wie es arbeitet. Das wäre unbefriedigend, oder? Bei der Strategie hilft uns ein Verfahren, das der Natur abgeguckt wurde und eine Vielzahl von Anwendungen findet: \em ein genetischer Algorithmus\em{}! Damit kann man u.a. Gleichungen lösen die wild aussehen. Genau das, was wir brauchen! Der einfachste Algorithmus wird in \cite{Kinnebrock} so zu beschrieben: \begin{enumerate} \item Wir wählen ein Anfangschromosom. \item \label{Schleife1} Dieses wird durch Mutation geändert. \item Falls dieses besser als als erste ist, ersetze das alte. \item Solange die Abbruchbedingung nicht erfüllt ist, gehe wieder zu \ref{Schleife1}. \end{enumerate} Evolution und Darwin lassen grüßen! Alles hört sich sehr biologisch an. Es ist nicht schwer den allgemeinen Algorithmus unserer Aufgabenstellung anzupassen: \begin{enumerate} \item $R_A$ und $X_A$ werden mit dem Zufallsgenerator bestimmt. \item \label{Schleife2} Aus der Impedanz $Z_1$ wird eine zweite $Z_2$ bestimmt, $R_A$ und $X_A$ zufällig geändert. \item Jetzt kommt unsere Formel ins Spiel! Sie muss zum Glück nur ausgewertet werden. Für beide Impedanzen wird nach Formel \ref{s-Formel2} $s$ bestimmt. Die Abweichung von der o.a. Werten $2,4$ und $4,6$ wird berechnet. Falls sich für $Z_2$ eine kleinere Abweichung ergibt, wird $Z_1$ durch $Z_2$ ersetzt. \item Solange die Abweichung von den vorgegebenen $s$-Werten einen bestimmten Wert übersteigt (Abbruchbedingung), mache mit \ref{Schleife2} weiter. \end{enumerate} Das heisst also, Impedanz $Z_1$ (altes Chromosom) wird solange zu $Z_2$ geändert (mutiert), bis $Z_2$ bessere Werte aufweist (Fitness) und wird dann durch seinen besseren Nachfolger ersetzt. Zur numerischen Auswertung der Fitness bietet sich in unserem Fall die beiden \em quadrierten\em{} und addierten Differenzen der $s$-Werte an. Bei der einfachen Addition der Abweichungen können sich die Differenzen aufheben und eine ideale Fitness vortäuschen. Die beträgt in unserem Fall Null, größere Werte sind schlechter. Just dieser Algorithmus wurde in ein einfaches PASCAL-Programm umgesetzt. Wer es moechte, schreibt an DJ2ZS@LX0PAC, der Quelltext kommt dann. \section{Messen und Eintippen} Beim Programmlauf werden \em drei\em{} Werte für $s$ abgefragt. Der erste für die Antenne alleine, der zweite ergibt sich durch einen zusätzlichen Serienwiderstand, der dritte durch einen Serienkondensator. Damit wird das Gleichungssystem \ref{System} um eine Gleichung erweitert. Die lautet, wenn bei einem Serienwiderstand von 25 Ohm sich $s=2,6$ ergibt: \begin{equation} \label{Zusatz} 4,6 = \frac{1 +\sqrt{\frac{(R_A+25-50)^2+ X_A^2}{(R_A+25+50)^2+X_A^2}}} {1 -\sqrt{\frac{(R_A+25-50)^2+ X_A^2}{(R_A+25+50)^2+X_A^2}}} \end{equation} und kann noch etwas vereinfacht werden. Warum um Himmelswillen noch eine Gleichung? Zwei bereiteten schon genug Mühe? Der höhere Aufwand beim Messen (nur da ist einer vorhanden!) lohnt sich. Denn $X_A$ geht immer quadriert in die Gleichung ein, so dass kein Rückschluss auf das Vorzeichen möglich ist. Mittels der dritten Messung soll uns das aber auch gelingen, ein Mehr an Eingabeinformation lohnt sich. Ein Programmlauf ergab eine Datei mit folgendem Inhalt: \label{Lauf1} \begin{verbatim} Startwert der Impedanz: 67.0 -386.0 2 Fitness = 2567.103 115 -351 SWR1 = 24.120 SWR2 = 20.709 SWR3 = 46.641 4 Fitness = 1365.819 138 -320 SWR1 = 17.907 SWR2 = 16.069 SWR3 = 35.324 5 Fitness = 1064.765 92 -229 SWR1 = 13.711 SWR2 = 11.646 SWR3 = 33.840 6 Fitness = 592.438 100 -197 SWR1 = 10.163 SWR2 = 8.998 SWR3 = 26.764 . . . 71 Fitness = 0.013 87 46 SWR1 = 2.381 SWR2 = 2.693 SWR3 = 4.663 73 Fitness = 0.010 86 47 SWR1 = 2.398 SWR2 = 2.698 SWR3 = 4.629 94 Fitness = 0.009 85 47 SWR1 = 2.390 SWR2 = 2.684 SWR3 = 4.646 \end{verbatim} Als Impedanz ergibt sich $Z = (85 + 47i)$ Ohm nach 94 Mutationen. In die Datei werden nur die Chromosomen eingetragen, wenn sich ein besserer Wert ihrer Fitness ergibt. Ein zweiter Lauf zeigt dieses Ergebnis: \begin{verbatim} Startwert der Impedanz: 481.0 -448.0 2 Fitness = 564.997 457 -359 SWR1 = 14.822 SWR2 = 15.025 SWR3 = 20.610 3 Fitness = 425.591 453 -306 SWR1 = 13.229 SWR2 = 13.508 SWR3 = 18.360 4 Fitness = 228.684 434 -197 SWR1 = 10.488 SWR2 = 10.888 SWR3 = 14.325 5 Fitness = 164.796 419 -144 SWR1 = 9.383 SWR2 = 9.825 SWR3 = 12.590 . . . 106 Fitness = 0.010 86 47 SWR1 = 2.398 SWR2 = 2.698 SWR3 = 4.629 117 Fitness = 0.009 85 47 SWR1 = 2.390 SWR2 = 2.684 SWR3 = 4.646 \end{verbatim} Als Impedanz ergibt sich wieder $Z = (85 + 47i)$ Ohm nach 117 Mutationen. Na also, es scheint zu klappen! Etwaige Skeptiker unter uns sollten überzeugt sein. \section{Tipps} Die Ergebnisse des Programms haengen von den Messwerten ab, \em die\em{} bestimmen letztendlich die Impedanz. Es gilt \glqq Wichtig ist, was vorne 'reinkommt! \grqq. Wenn auch ein Politiker es anders behauptete, gilt: wenn der Input falsch ist, stimmt auch der Output nicht. Das ist der Nachteil des Verfahrens, zugegeben. Jeder kann und soll sich den Quelltext nach eigenen Vorstellungen abändern. Einige Hinweise dazu folgen. Je nach im Programm gesetzter Abbruchbedingung durch die Konstante GRENZGUETE können sich bei Programmläufen mit gleichen Eingabedaten kleine Schwankungen bei der Impedanz ergeben. Es ist \em nicht\em{} sinnvoll mit einem sehr kleinen Wert für GRENZGUETE zu arbeiten. Einmal kann die Abbruchbedingung in vertretbarer Zeit (einige Sekunden) nicht erreicht werden. Wenn das Programm nicht nach einigen tausend Mutationen (dauert ca.zwei Sekunden - wer schneller reagiert kann die maximale Laufzeit auf eine Sekunde setzen ) selbst anhält, erreicht man den Abbruch durch Betätigen der bekanngen Ennikie- Taste. Wer will kann natürlich auch länger abwarten und dann sehen, ob das lohnte. Ein Programmlauf lohnt sich nur, wenn alle eingegeben Werte zueinander passen. Beim Beispiel war das der Fall. Wenn wir per Zufall für einige oder alle der abgefragten Werte Zahlen eingeben, so wird im Normalfall das Programm nicht von selbst stoppen. Durch Mutation wird ein Minimum der Fitness zwar erreicht, dieses globale Minimum ist aber größer als die GRENZGUETE. Pech gehabt, wir warten bis wir schwarz werden. Das das Gleichungssystem keine Lösung hat, wird auch keine gefunden. Noch ein Beispiel zum Testen. Eine Antennenimpedanz von $Z = (175+150i)$ Ohm ergibt ein Stehwellenverhältnis von 6,20, mit dem 25-Ohm Widerstand 6,34 und mit dem Serienkondensator 3,50. Mit Gleichung \ref{s-Formel2}, einem Taschenrechner lässt sich das ausrechnen. Lassen wir das Programm mit diesen Werten laufen, dann werden wir nicht enttäuscht, auf $\pm1$ Ohm genau wird die Impedanz ermittelt. Die gerundeten $s$-Werte und die Impedanz passen zusammen. Überlegen wir uns noch, welche Fehler in die Auswertung eingehen. Bei den Bauteilen sieht es gut aus. Induktionsarme Widerstände mit geringen Toleranzen sind leicht verfügbar, Kondensatoren mit 1\% Toleranz ebenso. Die Werte für $s$ sind leider mit einer größeren Ungenauigkeit behaftet, die Stehwellenmessgeräte sind nunmal keine Instrumente mit großer Genauigkeit, das müssen wir bedenken. In der Praxis passen durch die Messfehler die Eingabewerte zwangsläufig nicht so gut zusammen wie in den Beispielen. Daher wird das Minimum der Fitness immer über eins liegen. \begin{thebibliography}{99} \bibitem{ARRL} ARRL. The ARRL Antenna Book. 19. Auflage. 2000. Newington. \bibitem{Kinnebrock} W. Kinnebrock. Optimierung mit genetischen und selektiven Algorithmen. Oldenbourg Verleg. 1994. München. \end{thebibliography} \end{document}