Benutzer-Werkzeuge

Webseiten-Werkzeuge


topics:octave

Dies ist eine alte Version des Dokuments!


GNU Octave

GNU Octave ist ein freies Programm für numerisches Rechnen.

Plotting

GNU Octave hat zwei typische Grafik-Toolkits; fltk und GNUplot.

Um zu sehen welches aktiv ist kann einfach

graphics_toolkit

eingegeben werden.

Um das Toolkit zu wechseln kann einfach

graphics_toolkit("gnuplot")

eingegeben werden.

2D-Plots

Um einen 2D-Plot zu machen kann die Funktion plot() verwendet werden.

x = [0:0.1:2*pi];
a = sin(x);
plot(x,a)

erzeugt

Um mehrere Kurven übereinander zu legen kann hold on und hold off verwendet werden.

x = x = [0:0.1:2*pi];
a = sin(x);
b = cos(x);
hold on
plot(x,a)
plot(x,b)
hold off

erzeugt

3D-Plots

Um einen 3D-Plot zu erzeugen kann die Funktion plot3() benutzt werden.

x = [0:0.001:2*pi];
a = sin(x);
b = cos(x);
plot3(x,a,b);

Für fancy Plots kann man aber auch mesh() benutzen.

tx = ty = linspace (-8, 8, 41)';
[xx, yy] = meshgrid (tx, ty);
r = sqrt (xx .^ 2 + yy .^ 2) + eps;
tz = sin (r) ./ r;
mesh (tx, ty, tz);

erzeugt

Packages

GNU Octave hat ein eigenes Package-System. Mit diesem können neue Packages installiert und geladen werden.

Package installieren

Um ein Package zu installieren kann es entweder manuell heruntergeladen werden etc. oder man greift direkt mit dem Package-Manager von Octave auf die offiziellen Packages von Octave-Forge zu.

pkg install -forge package_name 

Package laden

pkg load package_name

Empfehlenswerte Packages

Liste offizieller Packages

Regelungstechnik

Control Package installieren

pkg install -forge control

Package laden

pkg load control

s definieren als Variable des Laplace-Bereichs

s = tf('s')

erzeugt

Transfer function 's' from input 'u1' to output ...

 y1:  s

Continuous-time model.

Übertragungsfunktion definieren

G = 1/(1+s)

erzeugt

Transfer function 'G' from input 'u1' to output ...

        1  
 y1:  -----
      s + 1

Continuous-time model.

Bode-Plot erstellen (Amplituden- & Phasegang)

bode(G)

erzeugt

Es können aber auch mehrere Kurven zusammen geplottet werden.

G1 = 1/(1+10*s)
G2 = (1+s)/(1+10*s)
G3 = (1-s)/(1+10*s)
bode(G1,G2,G3)

erzeugt

Nyquist-Plot erstellen

nyquist(G)

erzeugt

Analog zum Bode-Plot können auch hier mehrere Kurven kombiniert werden.

Sprungantwort

step(G)

erzeugt

Plot exportieren/speichern

GNU Octave hat verschiedene Toolkits für Grafiken. Diese bieten jeweils verschiedene Möglichkeiten fürs exportieren. Die folgenden Beispiele behandeln das Toolkit GNUPlot.

print -dsvg myplot.svg

Diskrete Transferfunktionen

Um diskrete Transferfunktionen zu behandeln, kann ein solches System ähnlich wie ein kontinuierliches System definiert werden, wobei noch ein Parameter folgt für das Abtastintervall (Sampling Time). Der Wert für das Abtastintervall verändert nur die Skalierungen beim Bode-Plot etc. nicht aber deren Verlauf.

N = [1 1 1];  % numerator polynomial
D = [1 1];    % denumerator polynomial
Ts = 1;       % sampling time
 
H = tf([1 1 1], [1 1], Ts);

Der obige Code ergibt die Ausgabe

Transfer function 'H' from input 'u1' to output ...
 
      z^2 + z + 1
 y1:  -----------
         z + 1   
 
Sampling time: 1 s
Discrete-time model.
type:
topic
beginner:
daniw, ninux
wannabe:
anni
category:
software, mathe
topics/octave.1434568531.txt.gz · Zuletzt geändert: 2015/06/17 19:15 von anni

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki