close

Anmelden

Neues Passwort anfordern?

Anmeldung mit OpenID

Bedienungsanleitung für das Programm TOPT 2. Au age

EinbettenHerunterladen
Bedienungsanleitung für das Programm TOPT
2. Auage
Friedrich Heinrichmeyer
und
Eduard Grundschöttel
20. Mai 1995
Inhaltsverzeichnis
1 Grundsätzliche Arbeitsweise und Aufruf
2
2 Das Format der Parameterdatei (Start- und Endwerte)
4
1.1 Die Kommandozeile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Verwendung von ENVIRONMENT-Variablen . . . . . . . . . . . . . . . . . . . . . . . . .
2.1
2.2
2.3
2.4
2.5
2.6
2.7
Allgemeines . . . . . . . . . . . . . . .
Kommentare . . . . . . . . . . . . . .
END-Schlüsselwort . . . . . . . . . . .
Konstanten (Betrag, Gruppenlaufzeit)
Teilsysteme ersten Grades . . . . . . .
Teilsysteme zweiten Grades . . . . . .
Polynome . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3 Das Format der Forderungsbeschreibungsdatei
3.1 Kommentare . . . . . . . . . . . . . . . .
3.2 END-Schlüsselwort . . . . . . . . . . . . .
3.3 Kenndaten . . . . . . . . . . . . . . . . .
3.3.1 Systemkennung . . . . . . . . . . .
3.3.2 Interpolationsart . . . . . . . . . .
3.3.3 Dämpfungsxpunkt . . . . . . . .
3.4 Approximationsbereiche . . . . . . . . . .
3.5 Aufbau der Forderungstabelle . . . . . . .
3.5.1 Einzelne Punkte . . . . . . . . . .
3.5.2 Intervalle . . . . . . . . . . . . . .
3.5.3 Polygonzüge . . . . . . . . . . . .
3.5.4 Splineinterpolation . . . . . . . . .
3.6 Magische Konstanten, Optimierparameter
.
.
.
.
.
.
.
.
.
.
.
.
.
4 Bedienung des Programms nach dem Start
4.1 Bildschirmdialog . . . . . . . . . . . . . . .
4.1.1 Anzahl der Funktionsaufrufe Nmax
4.1.2 Begrenzungsfaktor Rn . . . . . . . .
4.1.3 Ausgabesteuerung . . . . . . . . . .
4.2 Die Aussage einer Statuszeile . . . . . . . .
4.3 Unterbrechung des Programmes . . . . . . .
4.4 Simplex-Info-Format . . . . . . . . . . . . .
4.5 Format der Datei plott.out . . . . . . . . .
5 Programm convert
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
3
4
4
4
4
5
6
7
7
7
7
8
8
8
8
8
9
9
10
10
10
11
12
12
12
12
13
13
13
14
14
15
1
6 Bekannte Probleme
15
A Stabilitätsbedingungen für diskrete Systeme
16
B Wie bekommt man das Programm TOPT ?
17
A.1 Allpässe in biquadratischer Darstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
A.2 Polynome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1 Grundsätzliche Arbeitsweise und Aufruf
1.1 Die Kommandozeile
Aufgabe des Programmes TOPT ist es, eine gegebene Startlösung für ein Problem der TschebyscheApproximation beim Entwurf von elektrischen Systemen zu verbessern, wenn dies noch möglich ist. Die
Beschreibung des Problems und die Angabe der Startlösung geschieht durch Übergabe zweier Textdateien,
d.h. getrennt für Startwerte und Forderungsbeschreibung. Diese beiden Dateien müssen beim Aufruf des
Programmes vorhanden sein und dem Programm bekannt gemacht werden. Weiterhin muÿ man sich
schon beim Aufruf auf einen Dateinamen für die Datei festlegen, die das Ergebnis der Approximation im
Falle einer Verbesserung der Startlüsung aufnehmen soll. Man kann dem Programm die Dateinamen zum
Beispiel beim Aufruf mitteilen.
t2 <Startwertedatei> <Ergebnisdatei> [<Forderungsdatei>]
Die spitzen Klammern kennzeichnen einen Platzhalter, die eckigen Klammern kennzeichnen eine optionale Eingabe. Die Reihenfolge der Argumente ist also nicht beliebig. Die Namen von Startwertedatei und
Endwertedatei können gleich sein. In diesem Fall wird bei Erfolg der Inhalt der Startwertedatei überschrieben. Falls kein dritter Dateiname angegeben wird, verwendet das Programm den Namen stuetz als
Namen der Forderungsbeschreibungsdatei.
Will man die Approximation als Hintergrundprogramm laufen lassen, empehlt es sich, die Standardeingabe von einer geeigneten Datei zu lesen und die Standardausgabe ebenfalls umzulenken. Man sollte in
diesem Fall nicht das Programm t2, sondern das Programm t0 aufrufen, das mit t2 bis auf den Punkt
der Bildschirmausgabe1 identisch ist und aufgrund seines geringeren Speicherbedarfs und der fehlenden
Ausgabebefehle im Hintergrund evtl. schneller arbeitet. Soll das Programm zusammen mit dem Script
tktopt verwendet werden, so muÿ es mit der Kompilervariablen -DBLT_WISH kompiliert werden.
Mit tktopt 2 kann eine graphische Oberäche für TOPT bereitgestellt werden.
Es wird nicht nur eine Ergebnisdatei erzeugt, sondern auch eine Wertetabelle, aus der die letztlich vom
Programm automatisch erstellte Stützstellenverteilung, der Verlauf von Soll- und Istwert, der Verlauf der
Fehlerschranken (des Fehlerschlauches) und der normierte Fehlerverlauf abgelesen werden können. Diese
Tabellendatei hat den festen Namen plott.out, was schon darauf hindeutet, daá auf ihrer Grundlage
Graken erstellt werden können.
Zur graphischen Darstellung der Ergebnisse stehen zwei shell-scripts zur Verfügung:
tcltplot und tplot,
wobei für tcltplot der Interpreter tclsh 3 auf einer Workstation installiert sein muÿ. Beide scripts können
mit den Optionen -?,-h und -help aufgerufen werden, um über deren Handhabung informiert zu werden.
Sowohl tcltplot als auch tplot rufen das bekannte Programm gnuplot 4 als das eigentliche Plottprogramm
auf. Das Bild 1 veranschaulicht die Wirkung des Programmes TOPT.
1 Der Verzicht auf die Bildschirmsteuermöglichkeiten mit Hilfe des curses-Programmpaketes verkürzt das ausführbare
Programm von ca. 140 kB auf 80 kB.
2 TclTk-Applikation
3 siehe TclTk-Toolkit von J.K. Ousterhout [3]
4 Aus den bekannten GNU-Tools
2
Startwerte
(
Forderungsdatei
((
R
(
topt
(
(
Endwerte
(
((R
Wertetabelle
Abbildung 1: Wirkung des Programmes TOPT
1.2 Verwendung von ENVIRONMENT-Variablen
Bei schwierigen Approximationsproblemen oder wenn keine gute Startlösung bekannt ist (also praktisch
immer) ist es notwendig, mit den verschiedenen Parametern der Startlösung, der Forderungsdatei und
des Programms (magische Konstanten) zu experimentieren. Dabei erweist es sich dann als lästig, die
relativ lange Kommandozeile (man sollte ja möglichst klare, also lange Dateinamen verwenden) jedesmal
neu einzugeben. Deshalb ist die Möglichkeit gegeben, die drei Eingabeparameter dem Programm über die
Umgebungsvariablen (ENVIRONMENT) bekannt zu machen. Das Programm sucht nach den folgenden
drei Variablen und verwendet deren Inhalt:
1. Die Variable TOPT_IN sollte den Namen der Startwertedatei enthalten.
2. Die Variable TOPT_OUT sollte den Namen der Ergebnisdatei enthalten.
3. Die Variable TOPT_ST sollte den Namen der Forderungsbeschreibungsdatei enthalten.
Diese drei Variablen können zum Beispiel zum Beginn einer Optimiersitzung zum Entwurf eines Psophometerlters bei Verwendung der C-Shell wie folgt sinnvoll belegt werden:
setenv TOPT_IN psophometer.in
setenv TOPT_OUT psophometer.erg
setenv TOPT_ST stuetz
Sind die drei Variablen gesetzt, wovon man sich z.B. mit dem Befehl env überzeugen kann, und sind die
Dateien psophometer.in und stuetz richtig erstellt worden, genügt die Eingabe von t0 bzw. t2 zum
Start der entsprechenden Programme. Der Befehl unsetenv beendet die Existenz einer environmentVariablen.
3
2 Das Format der Parameterdatei (Start- und Endwerte)
2.1 Allgemeines
Zur Steuerung des Programmes TOPT eignen sich die am Institut (LATE) bisher verwendeten Datenformate nicht, weil
1. die grundsätzliche Bedeutung eines Datensatzes für die Beschreibung einer Polstelle vom Zahlenwert
des Imaginärteiles abhängig gemacht wird und damit bei sehr kleinen Zahlen nicht sicher ist.
2. sowieso keine Vereinbarung über die Kennzeichnung von Allpässen vorgenommen wurde, deren
Verwendung bei Phasen- und Gruppenlaufzeitapproximation aber notwendig ist.
Das vom Programm TOPT akzeptierte Datenformat beginnt immer mit einem eindeutigen Schlüsselwort, das die Art des oder der Parameter festlegt, gefolgt von den Schlüsselwörtern FREI oder FEST,
die bestimmen, ob die Parameter Gegenstand der Approximation sein sollen oder nicht. Ein Verschwinden komplexer Nullstellen ist nicht möglich, Allpässe werden als eigenständige Gebilde betrachtet, die
Bindungen können nicht zufällig oder versehentlich aufgelöst werden. Zeilenenden werden überlesen, die
räumliche Aufteilung des Textes ist also völlig beliebig. Alle Schlüsselwörter können groÿ oder klein
geschrieben werden, sie können auch verlängert werden (nicht mehr als 200 Buchstaben).
2.2 Kommentare
An jeder Stelle kann Kommentar zwischen die Zeichenfolgen /* und */ geschrieben werden (genauso wie
in c-Programmquellen). Der Text zwischen diesen Zeichenfolgen wird schon auf der lexikalischen Ebene
der Eingabeprüfung ignoriert, er geht also insbesondere bei Verwendung von einem Namen für Eingabeund Ergebnisdatei verloren, wenn die Approximation nicht scheitert.
2.3 END-Schlüsselwort
Der für TOPT relevante Teil der Datei ist der Teil zwischen dem Anfang und dem ersten Auftreten des
Schlüsselwortes END. Dieses Wort ist syntaktisch identisch mit dem Dateiende.
2.4 Konstanten (Betrag, Gruppenlaufzeit)
Mit dem Schlüsselwort KON wird eine Konstantenbeschreibung eingeleitet. Es folgt das Schlüsselwort
FREI oder FEST. Schlieÿlich wird in Klammern eine Zahl angegeben, die nur dann gleich Null sein
darf, wenn sie FREI ist, d.h. Gegenstand der Optimierung. Es folgen drei Beispiele:
kon frei ( 1.235 )
kon fest ( 0.2)
kon frei ( 0.0 )
Derartige Konstanten können beliebig viele angegeben werden. Die Angabe mehrerer freier Konstanten
erhöht jedoch den Speicher- und Zeitbedarf der Approximation, ist also völlig sinnlos. Die Ausgabedatei
kann einen Konstantendatensatz wie oben, jedoch mit dem Schlüsselwort FKON oder auch FIXKON
enthalten, wenn das Problem die Einhaltung eines bestimmten Dämpfungswertes an einem Referenzpunkt erfordert (siehe Beschreibung des Forderungsdatenformates). Dieser Datensatz wird von TOPT
beim Einlesen ignoriert, er wird jedoch vom Programm convert beachtet, das die hier beschriebene Datenstrukturen in eine für das Programm uebmal lesbare Form konvertiert. Schlieÿlich ist auch die Angabe
einer (oder sinnloserweise mehrerer) Gruppenlaufzeitkonstanten möglich, was sich bei der Approximation
einer konstanten Gruppenlaufzeit bzw. einer linearen Phase als nützlich erweist. Die Syntax ist dabei wie
oben, nur das Schlüsselwort KON ist entweder durch GRUK oder durch GRUPPENLAUFZEITKON zu ersetzten.
4
2.5 Teilsysteme ersten Grades
In diesem Abschnitt wird beschrieben, wie reelle Pole und Nullstellen sowie Allpässe ersten Grades angegeben werden. Ein Datensatz beginnt mit sich selbst erklärenden Schlüsselwörtern. Mit ALLR oder
ALLPASSREAL ist ein Datensatz für Allpässe ersten Grades, mit SINGL oder REELL ein Datensatz
für reelle Pole oder Nullstellen gekennzeichnet. Es folgt eines der Schlüsselwörter FREI oder FEST, um
die Bedeutung für die Approximation festzulegen. Daraufhin können innerhalb von runden Klammern
beliebig viele Wertepaare der Form
<Wert der Nullstelle> <Vielfachheit>
angegeben werden. Die Vielfachheit muÿ dabei eine ganze Zahl ungleich Null sein. Pole werden durch
negative Vielfachheiten gekennzeichnet. Der Wert der Nullstelle kann beliebig sein. Bei einem Allpaÿ
beschreibt das oben angeführte Zahlenpaar immer den oder die Pole der Allpaÿstruktur, der Realteil sollte
also aus Stabilitätsgründen bei analogen Systemen kleiner als Null sein und bei diskreten Systemen sollte
der Betrag kleiner als Eins sein. Bei positiver Vielfachheit hat man die entsprechend negativen Phasenund Gruppenlaufzeitanteile, was für Entzerreraufgaben ausgenützt werden kann. Es folgen Beispiele:
singl frei (
-2.5 1
-.02 2
)
(Eine einfach-reelle und eine doppelt reelle Nullstelle, Parameter für ein analoges System)
reell fest (
-2.5 -1
-.02 -1
)
(Zwei einfach-reelle Pole, konstante Werte für ein analoges System)
reell fest (
-0.5 -1
-.02 -1
)
(Zwei einfach-reelle Pole, konstante Werte für ein diskretes System)
allr frei (
-2.5 1
-.02 1
)
(Zwei einfach-reelle Pole (reelle Allpässe), Parameter für ein analoges System)
allr frei (
-0.35 -1
.02
-1
)
(Zwei einfach-reelle Pole (reelle Allpässe), Parameter für ein diskretes System)
5
2.6 Teilsysteme zweiten Grades
In diesem Abschnitt wird beschrieben, wie konjugiert komplexe Pole und Nullstellen, Allpässe zweiten
Grades und quadratische Faktoren angegeben werden (die quadratischen Faktoren werden derzeit nur für
diskrete Systeme verwendet). Ein Datensatz beginnt mit sich selbst erklärenden Schlüsselwörtern. Mit
ALLK oder ALLPASSKOMPL ist ein Datensatz für Allpässe zweiten Grades, mit KOMPK oder
KOMPLEX_KAR ein Datensatz für konjugiert komplexe Pole oder Nullstellen in kartesischer Darstellung gekennzeichnet. Für diskrete Systeme wird mit POLALLK oder POLALLPASSKOMPL der
Datensatz für Allpässe 2-ter Ordnung mit konjugiert komplexen Pol- Nullstellen in Polardarstellung beschrieben. Zusätzlich kann mit den Schlüsselwörtern KOMPP oder KOMPLEX_POL ein konjugiert
komplexes Pol- bzw. Nullstellenpaar in Polardarstellung und mit BIQU5 ein quadratischer Faktor gekennzeichnet sein. Die letzteren beiden Darstellungen sind derzeit nur für diskrete Systeme zu verwenden.
Es folgt eine beliebige Zweierkombination der zwei Schlüsselwörter FREI und FEST, die bestimmt, welcher Teil der später anzugebenden zwei Parameter Gegenstand der Approximation ist und welcher nicht.
Daraufhin können innerhalb von runden Klammern beliebig viele Zahlentripel der Form
<1. Parameter> <2. Parameter> <Vielfachheit>
angegeben werden. Die Vielfachheit muÿ dabei eine ganze Zahl ungleich Null sein. Pole werden durch
negative Vielfachheiten gekennzeichnet. Der Wert der ersten beiden Parameter kann beliebig sein. Bei
einem Allpaÿ beschreibt das oben angeführte Zahlentripel für analoge Systeme immer den oder die Pole
der Allpaÿstruktur in kartesischer Form, der Realteil sollte also aus Stabilitätsgründen bei analogen
Systemen kleiner als Null und bei diskreten Systemen sollte der Betrag einer Polstelle kleiner Eins sein. Die
Vielfachheit muÿ bei diskreten Allpässen einen negativen Wert haben. Bei positiver Vielfachheit hat man
die entsprechend negativen Phasen- und Gruppenlaufzeitanteile, was für Entzerreraufgaben ausgenützt
werden kann. Ferner ist bei diskreten Systemen zu beachten, daÿ der Betrag einer komplexen Polstelle
(insbesondere in der Polardarstellung) kleiner Eins ist (POLALLK, KOMPP). Es folgen Beispiele:
komplex_kar frei frei (
-2.5 0.5 -1
-.02 1.6 2
)
(Ein einfach-konjugiert-komplexer Pol und eine doppelt konjugiert- komplexe Nullstelle, Parameter der
Approximation. Das Format gilt für analoge und diskrete Systeme.)
kompk fest frei (
0 2.5 1
0 .02 1
)
(Zwei konjugiert komplexe Nullstellen mit festem Realteil gleich Null, d.h. Dämpfungspole bzw. verschiebbare Sperrstellen, Parameter der Approximation. Das Format gilt für analoge und diskrete Systeme.)
allpasskompl fest fest (
-0.02 0.5 1
-.02 0.7 1
)
(Zwei einfache Allpässe zweiten Grades mit negativem Phasenanteil, nicht Gegenstand der Approximation, evtl. Teil einer Entzerrerforderung. Das Format gilt für analoge und diskrete Systeme.)
komplex_pol frei frei (
1.0 1.1 1
)
5
/* z.B. Daempfungspol */
/* Betrag, Winkel, Vielfachheit */
Allpaÿ in biquadratischer Darstellung.
6
(Eine einfache konjugiert komplexe Nullstelle für ein diskretes System.)
polallpasskompl frei frei (
0.8 0.7 -1
/* Betrag, Winkel, Vielfachheit */
)
(Allpaÿ 2-ter Ordnung für ein diskretes System.)
biqu frei frei (
0.8 0.7 -1
)
/* c1, c0, Vielfachheit */
c1 z+z0 z
(Biquadratischer6 Allpaÿ 2-ter Ordnung für ein diskretes System ( 1+
z2 +c1 z+c0 ).)
2
2.7 Polynome
Mit dem Programm TOPT kann auch in der Koezientenform gearbeitet werden. Ein oder mehrere
beliebige Teilpolynome können mit allen anderen Formen der Systembeschreibung vermengt werden.
Derzeit können nur die gesamten Teilpolynome der Approximation unterworfen werden oder als konstant
betrachtet werden. Ein Festhalten einzelner Koezienten ist noch nicht realisiert. Das Format beginnt mit
dem Schlüsselwort KOEFF, gefolgt von FEST oder FREI, danach folgt eine ganze Zahl ungleich Null,
die Vielfachheit für das gesamte Polynom. Eine negative Vielfachheit bezeichnet ein Nennerpolynom.
Schlieÿlich folgen innerhalb runder Klammern die Koezienten in aufsteigender Reihenfolge. Es folgt ein
Beispiel:
koeff frei -1 (
1
/* a0 */
3
3
1
/* a3 */
)
(Polynom dritten Grades im Nenner, Gegenstand der Approximation)
3 Das Format der Forderungsbeschreibungsdatei
3.1 Kommentare
An jeder Stelle kann Kommentar zwischen die Zeichenfolgen /* und */ geschrieben werden (genauso wie
in c-Programmquellen). Der Text zwischen diesen Zeichenfolgen wird schon auf der lexikalischen Ebene
der Eingabeprüfung ignoriert.
3.2 END-Schlüsselwort
Der für TOPT relevante Teil der Datei ist der Teil zwischen dem Anfang und dem ersten Auftreten des
Schlüsselwortes END. Das Wort END ist somit syntaktisch gleichbedeutend mit dem Dateiende.
6
Nur wenn beide Parameter frei sind, wird ein exakter Stabilitätstest durchgeführt!
7
3.3 Kenndaten
3.3.1 Systemkennung
Das erste nicht auskommentierte Wort in der Forderungsdatei muÿ kennzeichnen, welche Art von System zu entwerfen ist. Erlaubte Werte sind W_APPR für Approximation in der w-Ebene (vgl. SEN),
P_APPR für den Entwurf analoger konzentrierter Systeme, Z_APPR für den Entwurf diskreter Systeme und RC_APPR7 für den Entwurf von RC-Leitungsltern. Die Approximation von Leitungsltern
RC_APPR erfordert im Anschluÿ an das Schlüsselwort noch die Angabe von drei Zahlen:
Die erste Zahl ist ein Frequenzskalierungsfaktor, die zweite Zahl gibt die Reserve für eine PierceyRealisierung an und die dritte das Gewicht der für die Approximation von verteilten RC-Filtern notwendigen Nullstellen- und Polstellenstraunktion. Diese Art der Eingabe entwickelte sich im Verlauf der
Programmierung und wurde nicht verändert, da die spezischen Programmteile für die Approximation
von RC-Filtern aus Mangel an Anwenderinteresse nicht gepegt wurden. Trotzdem folgt ein Beispiel:
rc_appr
0.314159265 /* 0.1 * M_PI */
1.00005 /* Piercey-Distanz */
1000.0 /* Stabilitätsgewicht */
3.3.2 Interpolationsart
Hinter der Systemkennung kann man durch Angabe des Schlüsselwortes LOGINT bewirken, daÿ bei einer
vorzunehmenden Interpolation von Forderungswerten zwischen in Tabellenform gegebenen Sollwerten von
einer logarithmischen Frequenzachsenteilung ausgegangen werden soll.
3.3.3 Dämpfungsxpunkt
Hinter den beiden oben angeführten Punkten kann nun noch eine besondere Datenstruktur angeführt
sein, die eine feste Dämpfung an einem bestimmten Frequenzpunkt erzwingt. Diese Angabe gibt nur Sinn,
wenn dieser Frequenzpunkt tatsächlich in irgend einem angegebenen Intervall zur Dämpfungsapproximation tatsächlich vorkommt. Die Datenstruktur beginnt mit dem Schlüsselwort FIX gefolgt von einem
Zahlenpaar in runden Klammern. Das Zahlenpaar hat die Bedeutung <Sollwert> <Sollfrequenz>. Es
folgt ein Beispiel:
fix ( 0 0.8 ) /* Solldämpfung = 0.0 dB, Sollfrequenz = 0.8 bzw. 800 Hz
*/
(Fixpunkt bei Psophometerlter-Entwurfsaufgabe)
3.4 Approximationsbereiche
Hinter den Systemkenndaten darf mit der Beschreibung der einzelnen Forderungsbereiche begonnen werden. Ein Bereich beginnt mit einem Schlüsselwort, das die Art der Approximationsfunktion beschreibt.
Das Schlüsselwort DAE kennzeichnet Dämpfungsforderungen, das Schlüsselwort BET Betragsforderungen und das Wort PHA leitet Phasenforderungen ein. Gruppenlaufzeitforderungen werden durch die
Schlüsselwörter GRUNORM8 für eine durch 2 dividierte Gruppenlaufzeitdarstellung und GRU für
die nichtnormierte Darstellung eingeleitet.
7 Für eine derart exotische Anwendung muÿ das Programm mit der Option -DMIT_RCAPPR=1 vollständig neu
erzeugt (make) werden
8
Die normierte Darstellung der Gruppenlaufzeit erleichtert die anschauliche Interpretation von Ergebnissen und das
Erraten von Startlösungen.
8
Die Berechnung von Phase und Gruppenlaufzeit ist derzeit nur für analoge und diskrete Systeme realisiert
(was soll eine Phase in der w-Ebene?). Notwendige Programmerweiterungen zur Berücksichtigung diskreter Systeme wurden in 1994 von Eduard Grundschöttel implementiert. Aufgrund des Gesamtkonzeptes
(Verwendung von Funktionenzeigertabellen ohne Zusammenhang von Tabellenplatz und Bedeutung) ist
das Programm in jeder Hinsicht leicht ausbaufähig. Die lauähigen Programme sind verglichen z.B. mit
FORTRAN-Programmen noch so klein, daÿ vom Standpunkt der Speicherbegrenzung her noch kein Einwand für Erweiterungen besteht (insbesondere auch in der Turbo-C-Version). Dem Schlüsselwort folgt
ein Symbol, das festlegt, ob die folgenden Sollwerte als einseitige Forderungen (Schranken) zu verstehen
sind oder ob sie möglichst gut approximiert werden sollen.
Das Symbol == (analog zur Sprache c) kennzeichnet einen Approximationsbereich, in dem der
Sollwert möglichst genau approximiert werden soll.
Das Symbol <= kennzeichnet einen Bereich, in dem Werte nicht überschritten werden sollen.
Das Symbol >= kennzeichnet einen Bereich, in dem Werte nicht unterschritten werden sollen.
Das Symbol !< kennzeichnet einen speziellen Übergangsbereich, in dem Abweichungen vom Sollwert
in positive Richtung ignoriert werden. Praktisch sind derartige Bereiche beim Reaktanzentzerrerentwurf für die Dämpfung erforderlich.
Nach diesen beiden Elementen folgt innerhalb runder Klammern die eigentliche Forderungstabelle für
einen Bereich. Zeilenstrukturen werden ignoriert, sie dienen nur der persönlichen Übersicht und ihre
Verwendung ist daher zu empfehlen. Es folgen Beispiele:
pha == (
<Forderungstabelle>
)
(Möglichst genaue Phasenapproximation)
dae >= (
<Forderungstabelle>
)
(Die Dämpfungswerte sind Minimalwerte, z.B. im Sperrbereich) Es können beliebig viele Bereiche angegeben werden, d.h. eine gleichzeitige Approximation z.B. von Dämpfung, Phase und Gruppenlaufzeit ist
möglich.
3.5 Aufbau der Forderungstabelle
Zum Aufbau der eigentlichen Tabelle sind einige Grundstrukturen vorgesehen.
3.5.1 Einzelne Punkte
Man kann Forderungen für einzelne Punkte aufstellen. Dazu wird das Schlüsselwort PUNKT angeführt,
dahinter folgt in runden Klammern ein Zahlentripel mit der Bedeutung
<Sollwert> <reziprokes Gewicht bzw. Toleranz> <Frequenzwert> ;
Vor der schlieÿenden runden Klammer muÿ noch ein Semikolon stehen. Es folgt ein Beispiel für eine
Punktforderung:
punkt (
0.0 1 0.0 ;
)
(Soll = 0.0 , Toleranz = 1.0 , Frequenz = 0.0 )
9
3.5.2 Intervalle
Hat man ein isoliertes Frequenzintervall vorliegen, bietet sich eine Struktur an, die mit dem Schlüsselwort
INTER beginnt. In dieser Struktur sind innerhalb runder Klammern ein Zahlentripel für den Anfang
und eines für das Ende enthalten. Zwischen den Tripel bendet sich noch eine natürliche Zahl, welche die
Anzahl der Stützstellen festlegt. Tripel und Stützstellenzahl sind durch Semikolon getrennt. Es folgt ein
Beispiel:
inter (
0
1 0.0 ; /*
/*
100;
/*
0 1 0.95; /*
/*
Start des Durchlaÿbereichs */
Soll = 0.0 Toleranzbreite = 1.0 Frequenz = 0.0*/
100 Stuetzstellen */
Ende des Durchlaÿbereichs */
Soll = 0.0 Toleranzbreite = 1.0 Frequenz = 0.95 */
)
(Kommentierte Durchlaÿbereichsbeschreibung z.B. für Tiefpaÿ). Mit der Intervallstruktur lassen sich konstante und gerade verlaufende Forderungen mit linear zunehmender oder abnehmende Fehlergewichtung
beschreiben. Sowohl Forderung als auch Gewichtung werden zwischen den Randwerten linear interpoliert.
3.5.3 Polygonzüge
Es ist auch die Angabe von Polygonzügen möglich. Dies geschieht mit dem einleitende Schlüsselwort
POLY, nach dem innerhalb runder Klammern Intervallgrenzenzahlentripel und Stuetzstellenzahlangaben
abwechseln. Der Polygonzug muÿ dabei mit einem Tripel beginnen und enden. Es folgt ein Beispiel für
die Beschreibung eines Polygonzuges:
poly (
0
1 0.0 ;
/* Start des Durchlaÿbereichs */
/* Soll = 0.0 Toleranzbreite = 1.0
10;
/* 10 Stuetzstellen */
1 1 0.10;
/* Soll = 1.0 Toleranzbreite = 1.0
11;
/* 11 Stuetzstellen */
1.2 1 0.20; /* Soll = 1.2 Toleranzbreite = 1.0
12;
/* 12 Stuetzstellen */
2.3 .5 0.30; /* Ende des Durchlaÿbereichs */
/* Soll = 2.3 Toleranzbreite = 0.5
Frequenz = 0.0*/
Frequenz =0.10*/
Frequenz =0.20*/
Frequenz =0.30*/
)
(Kommentierte Durchlaÿbereichsbeschreibung z.B. für Entzerrer)
3.5.4 Splineinterpolation
Zwischen den Eckpunkten eines Polygonzuges kann schlieÿlich auf verschiedenartige Weise interpoliert
werden. Die Parameter der Interpolation für die Forderung und für die Gewichtung gehen aus dem Kopf
des Bereichs hervor. Das Schlüsselwort SPLINE leitet die Denition einer Splinefunktion durch eine in
runde Klammern geschlossene Polygoneckpunkttabelle ein. Dahinter muÿ der Glättungsparameter für die
parametrische Splinefunktion stehen. Diese Splinefunktion betrit nur die Vorschrift. Die Gewichtungsinterpolation erfolgt immer linear zwischen den Eckpunkten.
Will man die Gewichtungsinterpolation ganz abschalten, muÿ hinter der Zahl das Schlüsselwort STUFIG
stehen. Die erste Gewichtszahl gilt dann für das gesamte Intervall bzw. für den gesamten Spline- oder
Polygonteilbereich. Entscheidend für die Interpolationsart ist weiterhin die Angabe des Schlüsselwortes
LOGINT zu Beginn der Datei, die eine logarithmische Behandlung der Frequenzvariablen bewirkt, d.h.
10
daÿ die Interpolation in einem logarithmischen Koordinatensystem bzgl. der Frequenz erfolgt. Es folgt
ein Beispiel:
spline 10.0 stufig
0 1 0.0 ;
/*
/*
10;
/*
1 1 0.10;
/*
11;
/*
1.2 1 0.20; /*
12;
/*
2.3 .5 0.30; /*
/*
)
(
Start des Durchlaÿbereichs */
Soll = 0.0 Toleranzbreite = 1.0
10 Stuetzstellen */
Soll = 1.0 Toleranzbreite = 1.0
11 Stuetzstellen */
Soll = 1.2 Toleranzbreite = 1.0
12 Stuetzstellen */
Ende des Durchlaÿbereichs */
Soll = 2.3 Toleranzbreite = 0.5
Frequenz = 0.0 */
Frequenz = 0.10 */
Frequenz = 0.20 */
Frequenz = 0.30 */
(Kommentierte durch Splinefunktion geglättete Durchlaÿbereichsbeschreibung z.B. für Entzerrer)
3.6 Magische Konstanten, Optimierparameter
In der Forderungsdatei können auÿerdem die magischen Konstanten des Programmes beeinuÿt werden.
Zur Beschreibung genügt hoentlich ein kommentiertes Beispiel:
/* Groÿ- und Kleinschreibung ist gleichwertig */
OPTIMIERKONSTANTEN ( /* Schluesselwort und Klammer */
SUCHMAX = 10
/* Anzahl d. 1D-Suchversuche (def. 30) */
EPSILON = 1e-20 /* Nullabfrage (Eps, def=1e-30) */
MINDAE = 1e-10 /* min. Verkl. des Suchvektors
(DaeMin, def=1e-30 )*/
VERBSCHRITTE = 4 /* Anzahl der Iterationen, innerhalb derer
eine Verbesserung um MINVERB stattgefunden haben muss
(def=4)*/
MINVERB = 0.0001 /* Min. rel. Verbesserung nach VERBSCHRITTE
(def=0.0001) */
RNUEFAKT = 1.1
/* Faktor, der die Vergroesserung des
Faktors Rn steuert (def=1.1)*/
RNUEMIN = 0.001 /* min. anfgl. Faktor Rn (def=0.001)*/
RNUEMAX = 20.0
/* max. anfgl. Faktor Rn (def=20.0)*/
REALTEILMAX = -.0001 /* Realteilmaximum fuer Pole (def. unwirksam
, d.h. unendlich), nur fuer analoge Systeme */
MAXBETRAG = 0.9999
/* Betragsmaximum fuer Pole (def. unwirksam,
, d.h. unendlich, nur fuer diskrete Systeme */
RESTRIKTIONSGEWICHT = 1000.0 /* Gewicht des Ungleichungsfehlers
bei 1D-Suche; nur wirksam, wenn
REALTEILMAX angegeben wurde
(def=1000.0)*/
) /* Schliessende Klammer nicht vergessen! */}
Ein entscheidender Punkt ist dabei die Möglichkeit, die Polrealteile analoger Systeme nach oben hin zu
beschränken. Diese Restriktionen können bei der gleichzeitigen Optimierung von Dämpfung und Gruppenlaufzeit leider aktiv werden.
Durch das Schlüsselwort MAXBETRAG wird beim Entwurf diskreter Systme ein Stabilitätstest für reelle
Pole und komplexe Pole in Polardarstellung, sowie Allpässe in entsprechender Darstellung, durchgeführt.
Der Betrag einer Polstelle wird dabei nach oben auf den angegebenen Wert beschränkt. Bei diskreten
11
Systemen wird bei Polen in kartesischen Koordinaten kein Test durchgeführt. Für diskrete biquadratische Allpässe und Polynome im Nenner einer diskreten Übertragungsfunktion werden ebenfalls durch
das Schlüsselwort MAXBETRAG Stabilitätstests eingeleitet, wobei in solchen Fällen der angegebenen
Zahlenwert nicht von Bedeutung ist.
4 Bedienung des Programms nach dem Start
Nach dem Start werden Startwertedatei und Forderungssdenitionsdatei in zwei Durchläufen auf syntaktische Richtigkeit geprüft und eingelesen. Im Falle eines Syntaxfehlers wird das fehlerhafte Wort oder
Zeichen mit Angabe der Zeilennummer auf dem Standardfehlerkanal ausgegeben und das Programm
bricht ab. Nach dem ersten Durchlauf wird der notwendige Speicherplatz zum eigentlichen Einlesen der
Variablen alloziert und danach werden Startwerte und Forderung erst wirklich gespeichert. Im Falle des
Scheiterns der Speicherzuweisung bricht das Programm ab (das ist noch nie vorgekommen).
Als nächstes wird in den angegebenen Intervallen bzw. in den angegebenen Polygon- oder Splineteilbereichen nach lokalen Abweichungsmaxima von Soll- und Istfunktion für die Startwerte gesucht. Die
Suche wird in der Programmversion t2 am Bildschirm dokumentiert, in der Version t0 wird dies unterlassen. Evtl. gefundene Maxima werden zur Stützstellenmenge derart hinzugenommen, daÿ sie die
ihnen am nächsten liegenden äquidistanten Stützstellenanteile ersetzen. Damit ist die endgültige diskrete
Denitionsmenge der Approximation gefunden.
4.1 Bildschirmdialog
Am Bildschirm erfährt man, wieviele freie und feste Optimierparameter gezählt wurden, wieviele Stützstellen im Frequenzbereich vorliegen und wieviele Restriktionen notwendig sind. Schlieÿlich sind am Bildschirm noch einige Fragen zu beantworten:
4.1.1 Anzahl der Funktionsaufrufe Nmax
Daraufhin muÿ man die Frage nach der maximalen Anzahl der Funktionsaufrufe, d.h. die maximale Anzahl
der Berechnung der Fehler an allen Stützstellen beantworten. Wird Null oder eine negative Zahl angegeben
erfolgt ein Abbruch des Programms und in der Version t2 die Ausgabe einer Wertetabelle, mit der die
Zeichnung des Toleranzschlauches, des Ist- und Sollwertverlaufes und des gewichteten Fehlerverlaufes
möglich ist.
4.1.2 Begrenzungsfaktor Rn
Es folgt die Frage nach dem wichtigsten magischen Wert, dem Begrenzungsfaktor Rn, der das maximal zulässige Verhältnis von Verbesserungsvektornorm und momentanen Parametervektornorm (GaussNorm) angibt. Kleine Werte erhöhen die Wahrscheinlichkeit des Erfolges einer eindimensionalen Suche
mit dem neuen Verbesserungsvektor. Wird der Faktor jedoch zu klein gewählt, bricht das Verfahren evtl.
ab, da es dann überhaupt keinen Verbesserungsvektor nden kann. Die Frage nach dem optimalen Wert
dieser Gröÿe kann nicht problemunabhängig beantwortet werden. Im Verlauf der Optimierung wird diese
Gröÿe abhängig vom Erfolg der eindimensionalen Suche bzw. von der Geschwindigkeit der Konvergenz zu
adaptieren versucht. Der Adaptionsprozess hängt leider ebenfalls stark vom Startwert ab. Wenn die Liniensuche schon mit der Lösung des linearen Subproblems erfolgreich ist und andererseits die Verkleinerung
der Fehlerfunktion prozentual zu klein bleibt (was wieder durch Vergleich mit einer magischen Konstanten entschieden wird), wird der Begrenzungsfaktor durch Multiplikation mit einer weiteren Konstanten
gröÿer Eins vergröÿert.
Zusätzlich ndet, wie beim Programm OPTIM, eine Dämpfungsfaktorenanpassung statt. Der letzte
Dämpfungsfaktor (d.h. der erste, bei dem sich die tatsächliche nichtlineare Zielfunktion verkleinert hat)
wird verdoppelt als Startdämpfungsfaktor für den nächsten Optimierungszyklus verwendet. Es wird also
12
implizit die Zahl Zwei als magische Konstante verwendet. Die Verdoppelung wird nur durchgeführt,
solange die Dämpfung kleiner als Eins ist.
4.1.3 Ausgabesteuerung
Zuletzt wird bei der Version t2 abgefragt, ob ein Bildschirmprotokoll erwünscht wird. Die Version t0 ist
schweigsam9. Wird das Programm mit der Compileroption -DMIT_OPTTEST=1 erzeugt, so kann
nach Wahl eines Bildschirmprotokolls ein Test durchgeführt werden, der die Kontrolle der partiellen Ableitungen der Fehlerfunktionen nach den Parametern durch Vergleich mit Dierenzentermen ermöglicht
(analog zu OPTIM). Die Ergebnisse des Tests werden nicht am Bildschirm angezeigt, sie landen in der
Datei OPTtest.out. Wird die Unterbrechungstaste gedrückt, bricht der Vorgang ab und die Approximation beginnt. Zusätzlich wird in diesem Falle noch eine lineare Probe mit der Lösung des linearen
Teilproblems durchgeführt und deren Ergebnis ausgegeben10.
4.2 Die Aussage einer Statuszeile
Eine Besonderheit ist bei der Angabe des maximalen Fehlers zu beachten: Das Programm ist in der
Lage, einseitige Frequenzgangforderungen mathematisch wie Nebenbedingungen zu behandeln und somit
strickt einzuhalten. Zwischendurch kann jedoch der Zustand auftreten, daÿ eine Lösung vorliegt, die eine
oder mehrere Nebenbedingungen verletzt. Um diesen Umstand bei der eindimensionalen Suche streng zu
berücksichtigen, ergibt sich im Falle verletzter Nebenbedingungen der maximale Fehler durch Addition
des Betrages des Maximums der Gleichungsbedingungsfehler zum maximalen (wegen Verletzung der Nebenbedingungen positiven) Wert der Nebenbedingungsgleichungen. Es folgt eine tabellarische Auistung
der Bedeutung der einzelnen Anteile der Statuszeile:
Fmax:
Fn:
It:
Imax:
jdXj/jXj
Rnue:
Dmp:
Simplex-Info:
Vorzeichenbehaftete Abweichung maximalen Betrags.
Anzahl der Iterationen (incl. linienhafte Suche)
Anzahl der äuÿeren Schritte (Berechnung der Jacobimatrix)
Index des maximalen Fehlers in der Jacobimatrix 2 f0; ; mg
Verhältnis Verbesserungsvektorlänge : Parametervektorlänge
Momentane Gröÿe des Beschränkungsfaktors für lineares Programm
Momentane Gröÿe des Dämpfungsfaktors für linienhafte Suche
In dieser Spalte erfährt man, wie weit das lineare Teilprogramm optsolve bei der Lösung der
linearen Programmierung gekommen ist. Eine Erklärung zu dieser Information folgt noch.
4.3 Unterbrechung des Programmes
Mit der Unterbrechungstaste (es empehlt sich, diese bei Benutzung des Kommunikationsprozessors nicht
gerade der Taste del zuzuordnen) kann die Optimierung jederzeit geordnet abgebrochen werden. Nach
evtl. auch längerer Reaktionszeit wird gefragt, ob Abbruch oder Fortsetzung des Programms erwünscht
ist. Bei der interaktiven Abfrage werden immer die voreingestellten Antworten in Klammern angezeigt.
Im Falle des Abbruchs wird, wenn irgendeine Verbesserung der Startlösung eingetreten ist, eine Ausgabeparameterdatei erstellt, deren Name beim Aufruf des Programms entweder in der Kommandozeile oder
in einer environment-Variable steht (TOPT_OUT). Weiterhin wird eine Wertetabelle für eine weitere
9 Achtung: In allen Fällen, in denen keine Bildschirmausgabe erfolgt, wird bei Abbruch der Optimierung auch das Programm beendet.
10 Die hier gegebenen Möglichkeiten sind nur für den Programmentwickler wichtig, da der normale Benutzer sowieso keine
Möglichkeit hat, evtl. sichtbar werdende Fehler zu verbessern.
13
graphische Auswertung erstellt. Im Falle der Fortsetzung wird die Stützstellentabelle erneut erstellt, indem mit der momentanen Lösung wieder lokale Fehlerextrema gesucht werden, deren Frequenzen dann
nächstliegende äquidistante Stellen ersetzen. Mit diesen Stützstellen beginnt dann die Optimierung des
Abstandsmaÿes von Ist- und Sollfunktion aufs neue. Besonders, wenn sich das Verfahren oensichtlich
in einen suboptimalen Punkt verirrt hat, kann ein Neubeginn mit neuer Extremalsuche die Optimierung
entscheidend voranbringen.
4.4 Simplex-Info-Format
Es existieren verschiedene numerische Probleme, bei deren Auftreten der lineare Teil (optsolve.c) des
Programmes verlassen wird, ohne daÿ die optimale Simplex-Lösung gefunden wurde. Liegt keine dieser
Bedingungen vor, erscheint in der Spalte Simplex-Info der Optimierstatuszeile die Meldung Optimal!.
Es folgt eine tabellarische Auistung und Erklärung aller möglichen Meldungen:
Optimal!: Optimaler Simplex ist gefunden, die momentane Lösung ist i. allg. sehr nahe an einer zumindest
lokal optimalen Lösung.
Sk=0,n=#: Es gelang nur n + 1 Gleichungen ( n < Anzahl der Variablen) auf gleichen Fehlerbetrag bzw. auf
den Wert Null bei einer zulässigen Startlösung für die Nebenbedingungen zu bringen. Dies tritt ein,
wenn die Haar'sche Bedingung numerisch nicht mehr gilt (Rangabfall einer Teilmatrix). Es kann
auch passieren, wenn die Startlösung praktisch schon optimal ist.
Xges>Rn: Verbesserungsvektornorm wäre gröÿer als Beschränkungsfaktor
dX>Rn: Verbesserungsvektornorm bei internem Teilschritt zu groÿ.
Endlos: Mehr als <Anzahl der Parameter> Simplexschritte wurden durchlaufen (ist meistens im Hinblick
auf das tatsächliche nichtlineare Problem sinnlos).
Num.Error: Problem ist zu schlecht konditioniert, d.h. die Arithmetik versagt.
4.5 Format der Datei plott.out
Die erste Zeile der Datei enthält die Zahl 6, da 6 Daten in jeder folgenden Zeile enthalten sind, dahinter
folgt Information, die ein Plottprogramm zur Achsbeschriftung verwenden kann. In jeder weiteren Zeile
stehen durch Leerzeichen getrennt die folgenden Daten:
1.
2.
3.
4.
5.
6.
Frequenz
Istwert
Unterer tolerierbarer Wert oder -inf für Nebenbedingungen
Sollwert
Oberer tolerierbarer Wert oder inf z.B. bei Mindestforderungen
Normierter Fehlerwert
5 Programm convert
Um einen einfachen Anschluÿ zum Programm uebmal zu ermöglichen, wurde das Programm convert
erstellt. Der Aufruf lautet einfach
convert <eingabedatei> [<ausgabedatei>] [-d]
14
Die voreingestellte Ausgabedatei ist stdout. Eingabedatei ist eine TOPT-Parameterdatei. Die Ausgabedatei kann von uebmal gelesen werden, sofern nicht Koezientendarstellung und Pol-Nullstellendarstellung gemischt in der Eingabedatei vorkommen. Der dritte Parameter führt dazu, daÿ in der Ausgabedatei
an der richtigen Stelle das uebmal- Schlüsselwort DISKR statt dem Schlüsselwort KONT geschrieben
wird, falls es sich um diskrete Daten handelt. Von dem Programm convert wird auÿerdem noch die Datei
uebtr.out erzeugt, die eine Quelle für eine druckreife Form (mit tro) der Systemdaten darstellt.
6 Bekannte Probleme
Das Programm ist völlig hilos, wenn ein Dämpfungspol genau auf einer Stützstelle liegt, da dann
sowohl Funktionswert als auch Ableitung nicht deniert sind. Dies passiert meist beim schnellen
Ausdenken von Startlösungen.
Wenn im Verlauf der Optimierung die Fehler beim erneuten Starten wieder anwachsen, ist vielleicht
ein Dämpfungspol zwischen Durchlaÿbereichsstützstellen gerutscht. Man muÿ dann abbrechen und
die Ergebnisdatei mit einem Editor modizieren, um sie dann als neue Eingabedatei zu verwenden.
15
A Stabilitätsbedingungen für diskrete Systeme
A.1 Allpässe in biquadratischer Darstellung
Die Übertragungsfunktion für einen biquadratischen Faktor lautet
c1 z + c0 z 2 mit c = (z + z ) und c = jz j2 :
HA (z ) = 1z+
1
0
1
1 1
2 +c z +c
1
(1)
0
Für ein stabiles Polynom dürfen die Koezienten c0 und c1 nur in einem bestimenten Wertebereich liegen.
Das Nennerpolynom z 2 + c1 z + c0 hat die Nullstellen
r
c1 + c21 c
0
2
4
z1;2 =
(2)
Aus Stabilitätsgründen muÿ
jz1j < 1 und jz2 j < 1 gelten. Hieraus läÿt sich die grundsätzliche Bedingung
2
2
jc0 j < 1 ableiten. Falls c41 c0 ist, dann muÿ für ein stabiles Polynom c0 > jc1 j 1 gelten. Ist c0 > c41 ,
so muÿ nur die Bedingung c0 < 1 erfüllt sein.
A.2 Polynome
N (z ) = cn z n + cn 1 z n
1
+
: : : + c1 z + c0 mit cn(
1)0
2R
(3)
Für Polynome ist zur Zeit ein Stabilitätstest in TOPT implementiert, der auf einen Satz von Schur-Cohn
beruht. Der Test läÿt sich unter Verwendung des folgenden Koezientenschemas durchführen:
Nn (z ) : c(nn)
z n Nn (z 1 ) : c(0n)
c(nn)1 : : : c(1n)
c(1n) : : : c(nn)1
c(0n)
c(nn)
[ c n =cnn
( )
0
( )
=
rn ]
Nn 1 (z ) : c(nn 11) c(nn)2 : : : c(1n 1) c(0n 1)
z n 1Nn 1 (z 1 ) : c(0n 1) c(1n 1) : : : c(nn 21) c(nn 11) [ c(0n 1) =c(nn 11) = rn
..
.
N1 (z ) : c(1)
1
zN1(z 1 ) : c(1)
0
1]
(4)
..
.
c(1)
0
c(1)
1
[ c =c
(1)
0
(1)
1
=
r1 ]
N0 (z ) : c(0)
0
Für ein stabiles Polynome müssen die Werte c(nn) ; c(nn 11) ; : : : c(0)
positiv sein. TOPT führt diesen Sta0
bilitätstest für Polynome durch, wenn die Parameter (Koezienten) eines (Teil-)Polynoms im Nenner einer Übertragungsfunktion frei, also Gegenstand der Approximation sind. Die errechneten Werte
c(nn) ; c(nn 11) ; : : : c(0)
werden am Bildschirm protokolliert.
0
Nachteilig bei diesem Test ist, daÿ einer der Werte c(nn) ; c(nn 11) ; : : : c(0)
im Laufe der Iterationen zu Null
0
(n )
(n )
werden kann und damit zu undenierten Quotienten c0 =cn mit cn(n ) = 0 führt. Wählt man die
Startwerte c(nn) und c(0n) beide zu 1, so ergibt sich c(nn 11) zu Null und das Programm bricht ebenfalls ab
(oating point exception). Die Stabilitätsbedingung verlangt ohnehin, daÿ jc0 =cn j < 1 sein muÿ. Bei der
Wahl von Startwerten empelt sich darauf zu achten, daÿ jc0 =cnj < 1 gilt.
16
Beispiel:
N3 (z ) :
z 3N3 (z 1 ) :
N2 (z ) :
z 2N2 (z 1 ) :
N1 (z ) :
zN1(z 1 ) :
N0 (z ) :
:
:
:
:
:
:
:
:
4 000000
3 000000
2 000000
1 000000
1 000000
2 000000
3 000000
4 000000
:
:
:
:
:
:
3 750000
2 500000
1 250000
1 250000
2 500000
3 750000
:
:
:
:
3 333333
1 666667
1 666667
3 333333
:
0 000000
[ 1=4 = r ]
3
[ 1:25=3:75 = r ]
2
:
0 000000
[ 1:66=3:33 = r ]
1
:
2 500000
Es gilt
c(3)
3
c(2)
2
c(1)
1
c(0)
0
>
: >
3:33 >
2:5
>
=
4
0
=
3 75
0
=
=
0
;
0
(3)
Da die Zahlen c(0)
positiv sind, ist das Polynom stabil.
0 ; : : : ; c3
B Wie bekommt man das Programm TOPT ?
Das Programm TOPT, das toolkit tcltk , die scripts tcltplot und tktopt sowie eine Bedienungsanleitung des Programms TOPT können vom WWW-Server
http://ES-sun1.fernuni-hagen.de/jfh
der Fernuniversität Hagen abgerufen werden.
Anregungen zu weiteren Ergänzungen des Programms TOPT und Fehlermeldungen senden Sie bitte an
fritz.heinrichmeyer@fernuni-hagen.de.
Literatur
[1] Heinrichmeyer, J. F.: Beiträge zur Tschebysche-Approximation zum Systementwurf, Dissertation,
Erlangen 1989
[2] Grundschöttel, E.: Gleichzeitige Approximation von Phasen- und Betragsvorschriften durch FIRund IIR-Systeme, Diplomarbeit, Hagen 1995
[3] Ousterhout, John K.: Tcl and the Tk Toolkit. Addison-Wesley Publishing Company 1994, ISBN
0-201-63337-X
17
Document
Kategorie
Kunst und Fotos
Seitenansichten
2
Dateigröße
293 KB
Tags
1/--Seiten
melden