Bode-Diagramme mit gnuplot
Von: Ueli
Datum: So. 12. September 2010 15:21:57
Thema: Tools


Bode-Diagramme mit gnuplot



Bode-Diagramme bieten eine Vielzahl von Informationen zu ihren Übertragungsfunktionen. Um ein Bode-Diagramm zu zeichnen, benötigt man in den meisten Fällen keinen Computer. Oft will oder kann man jedoch nicht auf dieses Arbeitsgerät verzichten. Als ich kürzlich ein Bode-Diagramm mit gnuplot am Computer zeichnen wollte, hatte ich einige Schwierigkeiten zu überwinden.
Den erarbeiteten gnuplot-Code will ich nicht nur für mich behalten und habe mich deshalb entschlossen, diesen Artikel zu schreiben. Dabei bin ich von Darstellungen, welche ich auf einer gnuplot Beispielseite gefunden habe, ausgegangen und habe den Code sukzessive abgeändert und den darstellerischen Bedürfnissen angepasst.

Aber es geht nicht nur um gnuplot. Auch Leser, welche sich nur für Bode-Diagramme und Übertragungsfunktionen interessieren, sollten in diesem Artikel auf ihre Kosten kommen.

Inhalt


  • Gnuplot einrichten
  • Impedanzverläufe
  • Bodediagramme
  • Übertragungselemente
  • Links und Literatur

    Gnuplot einrichten



    Da man oft viele ähnliche Diagramme zeichnen muss, ist es sinnvoll skript-Dateien anzulegen. Dies sind (unformatierte) .txt-Files welche die gnuplot Befehle für das Diagramm enthalten. Ein Beispiel soll dies zeigen:
    txt-File
    A(jw) = (1/({0,1}*jw+p1)) * (1/(1+{0,1}*jw/p2))
    p1 = 10
    p2 = 10000
    set dummy jw
    set grid x y2
    set key default
    set logscale xy
    set log x2
    unset log y2
    set title "Amplitude and Phase Frequency Response"
    set xlabel "jw (radians)"
    set xrange [1.1 : 90000.0]
    set x2range [1.1 : 90000.0]
    set ylabel "Magnitude of A(jw)"
    set y2label "Phase of A(jw) (degrees)"
    set ytics nomirror
    set y2tics
    set tics out
    set autoscale  y
    set autoscale y2
    plot abs(A(jw)), 180/pi*arg(A(jw)) axes x2y2

    Diese Befehlsfolge wurde nun in einem (Unix)-Verzeichnis gespeichert unter bode1.p und soll nun durch gnuplot aufgerufen werden, was zur Darstellung des Diagramms führt:
    gnuplot
    gnuplot>reset
    gnuplot> load '/Users/meinName/Documents/Matheplanet/Bode_gnuplot/bode1.p'

    Der reset-Befehl dient dazu, Einstellungen aus früheren Graphiken zu löschen.
    Daraus ergibt sich dann folgendes Bild:

    Bild

    Gnuplot erlaubt eine Menge von Ausgabeformaten und Kanälen. Üblicherweise will man das Resultat zuerst sehen und nach den allfälligen Korrekturen auch als Bild speichern.

    Die Ausgabekanäle werden mit dem Befehl "set terminal ..." gesetzt. Will man das Resultat nur anschauen genügt das automatisch eingestellte, zum Betriebssystem passende terminal. Dazu gehören zum Beispiel das x11-Terminal unter Linux und Unix und das aqua-Terminal unter Mac-OSX. Diese Terminals erzeugen ein Anzeigefenster. Mit dem x-11 Terminal kann man 3-d Grafiken mit der Maus drehen.  Je nach Typ kann man das Resultat auch abspeichern.
    Zum Erzeugen von hochwertigen Graphiken sind aber die postscript und svg terminals viel besser geeignet. Die reinen Anzeigeterminals versagen oft schon bei der Anzeige von verschiedenen Linienstilen, welche nur über die Vektorgraphik-Formate ausgegeben werden. Wenn eine, als "gestrichelt" definierte Linie, also einfach durchgezogen wird, so ist daran oft das Ausgabeformat schuld.
     
    Vor dem plot-Befehl muss also das Ausgabeformat und allenfalls die Ausgabedatei definiert werden. Will man das Resultat mehreren Terminals zuführen, so kann man nach dem ersten plot-Befehl einfach das Terminal neu setzten und den replot Befehl anhängen, wie unten gezeigt:
    gnuplot
    #Resultat auf dem Bildschirm betrachten
    set terminal x11
    plot ....
    ...
    #Die selbe Graphik im postscript-Format speichern
    set terminal postscript
    set output "meinPlot.ps"
    replot
    ----------------
    #...oder im svg-Format
    set terminal svg
    set output "mein_plot.svg"
    ----------------
    #Falls die Ansprüche an die Qualität (Pixelgrafik genügt) nicht so hoch sind:
    set terminal png
    set output "mein_plot.png"


    Impedanzverlauf



    Die ersten Diagramme, welche ich hier vorstellen will, sind noch keine Bode-Diagramme, sondern Impedanzverläufe von Zweipolen. Bei einem idealen Kondensator sieht dieser folgendermassen aus:

    Bild
    gnuplot
    Z(freq) = abs(1/({0,1}*C*2*3.14*freq*1000))
    C = 1*10**(-9)
    set dummy freq
    set mxtics 10
    set grid xtics mxtics lt 0 ls 0
    set grid ytics mytics  lt 0 ls 0
    set key default
    set title "Impedanz eines idealen 1nF Kondensators"
    set xlabel "Frequenz in kHz"
    set xrange [1.0 : 10000.0]
    set yrange [10:100000.0]
    set ylabel "Impedanz in Ohm"
    set logscale xy
    set tics out
    plot Z(freq)
    Zu beachten ist, dass in gnuplot der Potenzoperator ** und nicht ^ lautet.


    Nun kann es aber durchaus vorkommen, dass Schaltungen mit idealen Bauteilen in der Realität nicht funktionieren. Der Grund ist, dass der Kondensator Anschlussleitungen besitzt. Diese haben im Beispiel eine Induktivität von 1nH in Serie zum Kondensator.
    Bild
    gnuplot
    Z(freq) = abs(1/({0,1}*C*2*pi*freq*10**6)+({0,1}*L*2*pi*freq*10**6))
    C = 1*10**(-9)
    L = 1*10**(-9)
    set dummy freq
    set mxtics 10
    set grid xtics mxtics lt 0 ls 0
    set grid ytics mytics  lt 0 ls 0
    set key default
    set title "Impedanz eines realen 1nF Kondensators"
    set xlabel "Frequenz in MHz"
    set xrange [10.0 : 1000.0]
    set yrange [0.1:100.0]
    set ylabel "Impedanz in Ohm"
    set logscale xy
    set tics out
    plot Z(freq)

    Im folgenden Diagramm ist die Phase der Spannung in Bezug zum Strom aufgezeichnet. Oberhalb der Frequenz dominiert das Verhalten der Spule. Das heisst ab etwa 160MHz eilt die Spannung dem Strom voraus.
    Was wie ein Sprung aussieht in diesem Diagrammen, ist im komplexen nur ein Nulldurchgang. Die Amplitude wird immer kleiner und der "Sprung" findet dort statt, wo kein Signal mehr vorhanden ist.

    Bild
    gnuplot
    Phase(freq) = 180/pi*arg(1/({0,1}*C*2*pi*freq*10**6)+({0,1}*L*2*pi*freq*10**6))
    C = 1*10**(-9)
    L = 1*10**(-9)
    set dummy freq
    set mxtics 10
    set grid xtics mxtics lt 0 ls 0
    set grid ytics mytics  lt 0 ls 0
    set key default
    set title "Phasenverlauf eines realen 1nF Kondensators" font "Helvetica,30"
    set xlabel "Frequenz in MHz" font "Helvetica,20"
    set xrange [10.0 : 1000.0]
    set yrange [-180:180]
    set xtics font "Helvetica,20"
    set nokey
    set ytics ("-180°" -180,"-135°" -135,"-90°" -90,"-45°" -45,"0°" 0,"45°" 45,"90°" 90,"135°" 135,"180°" 180) font "Helvetica,20"
    set ylabel "Phase" font "Helvetica,20"
    set logscale x
    set tics out
    plot Phase(freq)

    Wenn man nun bedenkt, dass ein reales Bauteil auch noch Anschlusswiderstände besitzt, dann sehen die Kurven schon wesentlich "runder" aus. Die Abbildungen zeigen zeigen den Kondensator mit 0.5 Ohm Anschlusswiderstand in Serie:
    BildBild
    gnuplot
    reset
    Imp(freq) = abs(1/({0,1}*C*2*pi*freq*10**6)+({0,1}*L*2*pi*freq*10**6)+0.5)
    C = 1*10**(-9)
    L = 1*10**(-9)
    set dummy freq
    set mxtics 10
    set grid xtics mxtics lt 0 ls 0
    set grid ytics mytics  lt 0 ls 0
    set key default
    set title "Impedanz eines realen 1nF Kondensators" font "Helvetica,30"
    set xlabel "Frequenz in MHz" font "Helvetica,20"
    set xrange [10.0 : 1000.0]
    set yrange [0.1:100.0]
    set nokey
    set xtics font "Helvetica,20"
    set ytics font "Helvetica,20"
    set ylabel "Impedanz in Ohm" font "Helvetica,20"
    set logscale xy
    set tics out
    plot Imp(freq)

    Zum Schluss noch das Gegenstück zum Kondensator; die Spule:

    BildBild
    gnuplot
    reset
    Imp(freq) = abs(1/(({0,1}*C*2*pi*freq*10**3)+1/({0,1}*L*2*pi*freq*10**3+200)))
    C = 1*10**(-10)
    L = 1*10**(-3)
    set dummy freq
    set mxtics 10
    set grid xtics mxtics lt 0 ls 0
    set grid ytics mytics  lt 0 ls 0
    set key default
    set title "Impedanz einer realen 1mH Spule" font "Helvetica,30"
    set xlabel "Frequenz in kHz" font "Helvetica,20"
    set xrange [10 : 1000.0]
    set yrange [100:10000.0]
    set nokey
    set xtics font "Helvetica,20"
    set ytics font "Helvetica,20"
    set ylabel "Impedanz in Ohm" font "Helvetica,20"
    set logscale xy
    set tics out
    set samples 400
    plot Imp(freq)


    Bodediagramme


    Nun soll nicht nur eine Grösse in Abhängigkeit der Frequenz, sondern ein System mit Ein- und Ausgangsgrösse betrachtet werden. Oft ist dies ein Vierpol, hier mit der Spannung als Ein- und Ausgangsgrösse. (Es könnte natürlich ebenso gut der Strom oder eine noch eine andere Grösse sein.)

    Am Eingang werde nun eine sinusförmige Spannung einer gewissen Frequenz angelegt. Da wir hier nur lineare Systeme betrachten, wird am Ausgang wiederum eine sinusförmige Spannung gleicher Frequenz, aber möglicherweise anderer Amplitude und Phase anstehen. Das Verhältnis zwischen Ausgangs- und Eingangsamplitude wird im Bodediagramm aufgezeigt.

    Das Bodediagramm ist natürlich nicht das einzige graphische Hilfsmittel der Regelungstechnik oder Filtertheorie. Bei der Darstellung von Regelstrecken wird in den Kästchen oft nicht der Amplitudengang, sondern die Sprungantwort eingezeichnet.

    Die Vorgehensweise


    Will man ein Filter konstruieren, so gibt es eine bewährte Vorgehensweise. Zuerst kennt man normalerweise den gewünschten Frequenz- und Phasengang. Diese Verläufe kann man in Bodediagrammen skizzieren. Damit sich das Filter auch realisieren lässt, muss man natürlich einen gewissen Spielraum offen lassen. Nun vergleicht man das Gewünschte mit den Bodediagrammen von Filtern, welche in Frage kommen. Aus dem eigenen Entwurf kann man dann die entsprechenden Konstanten herauslesen und in die Übertragungsfunktion des gefundenen Filters eintragen. Dann hat man alles, um das Filter realisieren zu können.

    In diesem Artikel wird auf die grundlegenden Eigenschaften von Filtern ersten und zweiter Ordnung eingegangen. Darüber hinaus gibt es beispielsweise Tchebyshev-, Butterworth- oder Elliptische Filter. Dies ändert aber nicht an der grundlegenden Vorgehensweise.

    Die dB-Skala


    Das dezibel ist eine Hilfsgrösse und hat sich aus historischen Gründen durchgesetzt. Im internationalen Einheitensystem (SI) ist nicht das dezibel, sondern das Neper als Hilfsgrösse für Verhältnisse im logarithmischen Masstab festgeschrieben. Doch nicht immer setzt sich das SI durch. Das dezibel ist eine sehr praktische Einheit. Bei anderen Einheiten, welche sich bisher auch hartnäckig gegen das SI behaupten, kann man das nicht sagen. Oder kennt noch jemand die Stärke eines Pferdes aus eigener Erfahrung?

    Zurück zum dB: Die Grundeinheit, das Bel wird selten benutzt. Das dB hat den Vorteil, dass man für Verhältnisse, wie 2 eine (wenigstens beinahe) ganze Zahl erhält.
    Die Definition für das dezibel oder abgekürzt dB lautet:



    Das dB bezeichnet also die Verstärkung (dann wird L>0) beziehungsweise die Abschwächung (L<0). Die Definition bezieht sich auf Leistungen, also quadratische Grössen. Für Spannungen oder Ströme gilt dagegen:



    Der neue Faktor 20 (statt 10) kommt daher, dass es nun keine quadratischen Grössen mehr sind, welche logarithmiert werden:



    In der nachfolgenden Tabelle sind einige Werte der dB-Skala aufgeführt. Wie bereits erwähnt, stimmen die Werte nicht ganz genau. So liegt der Faktor 2 beispielsweise nicht bei 6 dB, sondern etwas höher (6.0205999...).





























    1 * sqrt(2) *2 /2 *10
    Spannungs- oder Stromverhältniss 0dB +3dB +6dB -6dB +20dB
    Leistungsverhältnisse 0dB +1.5dB +3dB -3dB +10dB




    Bedingungen an die Übertragungsfunktion


    Hier betrachten wir LTI (Linear, Time Invariant), bzw. auf deutsch LZI (Lineare, Zeit-Invariante) Systeme. Zeit-invariant bedeutet, dass sich das Übertragungsverhalten nicht mit der Zeit ändert. Das System könnte zum Beispiel altern, dann ist es nicht mehr Zeit-invariant. Mehr Probleme bereitet in der Praxis die Linearität. Technische Systeme geraten immer an irgendwelche Grenzen. Bei einem aktiven Filter sorgt die Betriebsspannung dafür, dass das System nicht linear ist. Zu grosse Signale werden einfach abgeschnitten. Daher muss man immer dafür sorgen, dass die Signale klein genug bleiben.


    Nun aber zum eigentlichen Thema, den Übertragungsfunktionen:


    Die Übertragungsfunktion muss in multiplikativer Form vorliegen, da die logarithmische Darstellung im Bodediagramm nur dann die Addition der Teilkurven erlaubt.
    Betrachtet man einen PID-Regler, so ist die additive Form zunächst naheliegend, da es sich schaltungstechnisch um die Parallelschaltung der drei Regler handelt:



    Die multiplikative Form, entspricht einer Serieschaltung der einzelnen Reglerelemente:




    Die Zeitkonstanten der multiplikativen Form kann man direkt ins Bodediagramm eintragen. Die Zeitkonstanden der additiven Form muss man aber zuerst umrechnen! Dies zeige ich dann in den entsprechenden Abschnitten.




    Die hier betrachteten Übertragungsfunktionen sind gebrochen rationale Funktionen, wobei sowohl im Zähler, als auch im Nenner ein algebraischer Term mit Potenzen in s vorhanden ist. Das sieht dann zum Beispiel so aus wie weiter oben der PID-Regler, oder wie das folgende PT2-Glied:




    Der Nenner ist nun so formatiert, dass man Eckfrequenz und Dämpfung direkt herauslesen kann. Fügt man nun weitere Übertragungsglieder an, so multiplizieren sich die Übertragungsfunktionen einfach miteinander. Man soll die einzelnen Terme aber nicht ausmultiplizieren, sonst sieht man unter Umständen die im Bodediagramm umsetzbaren Daten nicht mehr.


    Das PT2-Glied wird im nächsten Kapitel noch eingehend behandelt.

    Was man aus dem Bodediagram ablesen kann



    Eine der wichtigsten Angaben für das Bodediagramm sind die Eckfrequenzen. Bei diesen Frequenzen "knickt" die Übertragungskurve. Der Knick ist in Wirklichkeit stark abgerundet und wird nur in der doppelt logarithmischen Darstellung sichtbar. Zwei Diagramme, je eines in logarithmischer und eines in linearer Darstellung, zeigen dies in eindrücklicher Weise. Die abgebildete Funktion ist in beiden Fällen:




    BildBild


    Im Bild rechts kann man die Verstärkung bei bei der Frequenz 0 und bei grossen Frequenzen ablesen. Wo sich die Eckfrequenzen befinden, sieht man aber nur im Diagramm links mit der doppelt logarithmischen Darstellung.


    Der Übertragungsfunktion "sieht" man die Knicke ebenfalls an. Sie treten bei der Frequenz auf, bei der der Term mit der Frequenz gegenüber dem konstanten Term (hier normalerweise=1) zu dominieren beginnt.




    Die Steilheit der Übertragungsstrecke wird oft in dB/Dekade(der Frequenz) angegeben. Terme erster Ordnung im Zähler steigen über der Eckfrequenz um 20dB pro Dekade an (Bei Spannungs- und Stromverhältnissen). Es handelt sich also um einen Hochpass. Terme 1. Ordnung im Nenner sinken hingegen um 20dB pro Dekade ab. Terme zweiter Ordnung haben eine Steilheit von 40dB / Dekade usw..


    "s" oder "jw" ?


    Der Parameter s stammt aus der Laplace-Transformation.



    Für das Bodediagramm wird allerdings nur der imaginäre Teil benutzt:



    Da das Laplace-Integral für eine viel grössere Klasse von Funktionen konvergiert, als das Fourierintegral, wird hier die Laplacetransformation verwendet, auch wenn der Unterschied für den Praktiker kaum von Bedeutung ist.

    Einige Übertragungselemente


    Am besten sieht man die Eigenschaften der Bodediagramme an einigen Beispielen. Die Übertragungsglieder werden mit Abkürzungen, wie PT1 bezeichnet.
    P bezeichnet dabei einen Verstärker,
    T einen Tiefpass und
    I ein Integrierglied (auch eine Art Tiefpass, aber ohne Eckfrequenz)
    D ist ein Differenzierglied
    Die Zahl (hier 1) bezeichnet die Ordnung

    PT1-Element


    Das PT1-Element ist ein Tiefpass 1. Ordnung. Die Übertragungsfunktion lautet:

    Bild Bild
    gnuplot
    reset
    set term aqua
     
    F(jw)=20*log10(abs(K/(1+jw*{0,1}*T)))
    K = 2
    T = 0.001
    set dummy jw
     
    # Typen von Hilfslinien
    set style line 3 lt 3 lw 1
    set style arrow 3 nohead lt 3 lw 1
    set style line 4 lt 3 lw 1
    set style arrow 4 nohead lt 3 lw 1
     
    # Hilfslinien zeichnen
    set arrow 1 from 100,6 to 1000,6 as 3
    set arrow 2 from 1000,6 to 100000,-34 as 3
    set arrow 3 from 2000,0 to 20000,0 as 4
    set arrow 4 from 20000,0 to 20000,-20 as 4
     
    # Achsen und Einteilungen
    set mxtics 10
    set grid xtics mxtics
    set grid ytics mytics
    set xrange [100 : 100000.0]
    set yrange [-40:10.0]
    set logscale x
    set ytics (10,6,3,0,-10,-20,-30,-40)
    set tics out
     
    # Beschriftungen
    set nokey
    set label 3 "Eckfrequenz" at 1000,7 l font "Helvetica,15"
    set label 4 "Steigung -20dB/Dekade" at 3500,-2 l font "Helvetica,15"
    set title "Bode Diagramm des PT1 Elements" font "Helvetica,30"
    set ylabel "|F(jw)| in dB" font "Helvetica,20"
    set xlabel "Kreisfrequenz w" font "Helvetica,20"
     
    plot F(jw)
    Schön wären gestrichelte Linien. Diese gibt es jedoch nicht auf jedem Terminal zu haben. Ich werde später noch ein Beispiel mit Postscript zeigen.

    PT2-Element


    Das PT2-Element hat folgende Übertragungsfunktion:

    Man sieht der Formel für die Resonanzfrequenz schnell an, dass der Wurzelausdruck auch imaginär werden kann.

    Bild

    Bei diesem Beispiel habe ich Phasen- und Amplitudengang in einem Diagramm zusammengefasst. Dazu muss gnuplot in den Multiplot-Modus gesetzt werden. Dieser muss wieder zurückgesetzt werden, um in den gnuplot-Standardmodus zurück zu gelangen. Befehle, wie das Setzen des terminals funktionieren nur im Standardmodus.
    Der gnuplot Code dazu sieht folgendermassen aus:
    gnuplot
    reset
    unset multiplot
    set samples 2001
    set terminal aqua
     
    G(w)=K*w0**2/((w*{0,1})**2+2*D*w0*{0,1}*w+w0**2)
    dB(x)=20*log10(abs(G(x)))
    P(x) = arg(G(x))*180/pi
     
    K = 1
    D = 0.2
    w0 = 1000
     
    # Typen von Hilfslinien
    set style line 3 lt 3 lw 1
    set style arrow 3 lt 3 lw 1
    set style line 4 lt 3 lw 1
    set style arrow 4 nohead lt 3 lw 1
     
    set multiplot
     
    # Amplitude
    set size 1,0.5
    set origin 0,0.5
     
    # Achsen und Einteilungen
    set mxtics 10
    set grid xtics mxtics
    set grid ytics mytics
    set xrange [100 : 10000.0]
    set yrange [-40:10.0]
    set logscale x
    set ytics (10,0,-10,-20,-30,-40)
    set tics out
     
    # Beschriftungen
    set nokey
    set label 2 "Resonanz bei 959Hz" at 450,-5 l font "Helvetica,15"
    set label 3 "Überhöhung 8.1dB" at 1300,6 l font "Helvetica,15"
    set label 4 "Steigung -40dB/Dekade" at 1000,-20 l font "Helvetica,15"
    set xlabel "jw"
    set ylabel "|G(jw)| in dB" font "Helvetica,15"
    set xlabel "Kreisfrequenz w" font "Helvetica,15"
    set title "PT2 Element: Amplitudengang"  font "Helvetica,20"
     
    #Asymtoten
    set arrow 1 from 100,0 to 1000,0 as 4
    set arrow 2 from 1000,0 to 10000,-40 as 4
    set arrow 3 from 959,0 to 959,8.1 as 3
    set arrow 4 from 959,8.1 to 1250,8.1 as 4
     
    #Amplitudengang
    plot dB(x)
     
    reset
    # Phase
    set size 1,0.5
    set origin 0,0
     
    # Achsen und Einteilungen
    set mxtics 10
    set grid xtics mxtics
    set grid ytics mytics
    set xrange [100 : 10000.0]
    set yrange [-180 : 0.0]
    set logscale x
     
    # Beschriftungen
    set nokey
    set xlabel "jw"
    set ylabel "Phase in Grad" font "Helvetica,15"
    set xlabel "Kreisfrequenz w" font "Helvetica,15"
    set title  "PT2 Element Phasengang"  font "Helvetica,20"
    plot P(x)
    unset multiplot

    DT1-Element


    Bei differenzierenden Gliedern steigt die Amplitude mit der Frequenz an.
    Das DT1-Glied hat die folgende Übertragungsfunktion:

    Bild
    Die Funktion wurde mit gnuplot folgendermassen erzeugt:
    gnuplot
    G(w)=K*w*{0,1}/(1+T1*w*{0,1})
    dB(x)=20*log10(abs(G(x)))
    P(x) = arg(G(x))*180/pi
    K = 0.01
    T1 = 0.001

    Multiplikativer PID-Regler


    In diesem Abschnitt wurde folgende Übertragungsfunktion verwendet:

    Bild
    gnuplot
    G(w)=K*(1+TN*w*{0,1})*(1+TV*w*{0,1})/(TN*w*{0,1})
    dB(x)=20*log10(abs(G(x)))
    P(x) = arg(G(x))*180/pi
     
    K = 1
    TN = 0.01
    TV = 0.001

    Additiver PIDT1-Regler


    Der Vollständigkeit halber wurde hier noch ein T1-Glied (Tiefpass) ergänzt. Braucht man ihn nicht, so setzt man T1=0.

    Bild
    Dieses Diagramm kann man nicht mehr direkt aus der Übertragungsfunktion ableiten. Die additive Form ist für die Konstruktion von Reglern zwar vorteilhaft, der Frequenzgang kann aber erst nach einigen Umrechnungen abgeschätzt werden.
    Um die additive in die multiplikative Form umzuwandeln, muss man Darstellungen mit gleichen Null- und Polstellen und gleichem konstanten Faktor finden.
    Für die Multiplikative Form wurde der Index m und für die additive Form der Index a verwendet. Unten steht das Resultat der Umrechnung:



    Bei diesem Diagramm habe ich die postscript Ausgabe verwendet. Damit sind sowohl gestrichelte Linien, als auch griechische Buchstaben darstellbar. In den Codeabschnitten unten ist die Verwendung der Funktion und der griechischen Buchstaben gezeigt. Auf anderen Terminals werden die Symbol-Sequenzen einfach wie im Quelltext angezeigt.  
    gnuplot
    set terminal postscript enhanced landscape color lw 2 "Times-Roman" 20
    set output "PID_A.ps"
     
    G(w)=K*(1+1/(TN*w*{0,1})+TV*w*{0,1}/(1+T1*w*{0,1}))
    dB(x)=20*log10(abs(G(x)))
    P(x) = arg(G(x))*180/pi
     
    K = 2
    TN = 0.01
    TV = 0.002
    T1 = 0.001
     
    set label 1 "{/Symbol w}_2" at 145,-4 l


    Links und Literatur


    gnuplot
    Beispiele zu gnuplot (Englisch)
    gnuplot-Seite (Englisch)
    Das Taschenbuch, das in keine Tasche passt:
    Taschenbuch der Regelungstechnik (Deutsch)
    Filterberechnungs-Programm:
    von TI


  • Dieser Artikel kommt von Matroids Matheplanet
    http://matheplanet.com

    Die Url für diesen Artikel ist:
    http://matheplanet.com/default3.html?article=1358