Benutzer-Werkzeuge

Webseiten-Werkzeuge


topics:octave

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
topics:octave [2014/05/11 20:51] – [Packages] ninuxtopics:octave [2018/07/06 11:38] (aktuell) – [Umwandlung kontinuierliche in zeitdiskrete Transferfunktion] ninux
Zeile 73: Zeile 73:
 GNU Octave hat ein eigenes Package-System. Mit diesem können neue Packages installiert und geladen werden. GNU Octave hat ein eigenes Package-System. Mit diesem können neue Packages installiert und geladen werden.
  
-==== Installation ====+==== 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.  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. 
  
Zeile 79: Zeile 79:
 pkg install -forge package_name  pkg install -forge package_name 
 </code> </code>
 +
 +==== Package laden ====
 +<code octave>
 +pkg load package_name
 +</code>
 +
 ==== Empfehlenswerte Packages ==== ==== Empfehlenswerte Packages ====
   * [[http://octave.sourceforge.net/control/|control]] (Regelungstechnik)   * [[http://octave.sourceforge.net/control/|control]] (Regelungstechnik)
   * [[http://octave.sourceforge.net/specfun/|specfun]] (Spezielle Funktionen)   * [[http://octave.sourceforge.net/specfun/|specfun]] (Spezielle Funktionen)
 +
 +==== Liste offizieller Packages ====
 +[[http://octave.sourceforge.net/packages.php|Octave-Forge Packages]]
  
 ===== Regelungstechnik ===== ===== Regelungstechnik =====
 +
 +==== Control Package installieren ====
 +<code control>
 +pkg install -forge control
 +</code>
  
 ==== Package laden ==== ==== Package laden ====
Zeile 130: Zeile 144:
  
 {{bodeplot.png}} {{bodeplot.png}}
 +
 +Es können aber auch mehrere Kurven zusammen geplottet werden.
 +
 +<code octave>
 +G1 = 1/(1+10*s)
 +G2 = (1+s)/(1+10*s)
 +G3 = (1-s)/(1+10*s)
 +bode(G1,G2,G3)
 +</code>
 +
 +erzeugt
 +
 +{{bode-2.png}}
 +
 +
  
 ==== Nyquist-Plot erstellen ==== ==== Nyquist-Plot erstellen ====
Zeile 139: Zeile 168:
  
 {{nyquist.png}} {{nyquist.png}}
 +
 +Analog zum Bode-Plot können auch hier mehrere Kurven kombiniert werden.
 +
 +{{nyquist-2.png}}
  
 ==== Sprungantwort ==== ==== Sprungantwort ====
Zeile 155: Zeile 188:
 print -dsvg myplot.svg print -dsvg myplot.svg
 </code> </code>
 +
 +==== 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.
 +
 +<code octave>
 +N = [1 1 1];  % numerator polynomial
 +D = [1 1];    % denumerator polynomial
 +Ts = 1;       % sampling time
 +
 +H = tf([1 1 1], [1 1], Ts);
 +</code>
 +
 +Der obige Code ergibt die Ausgabe
 +
 +<code shell>
 +Transfer function 'H' from input 'u1' to output ...
 +
 +      z^2 + z + 1
 + y1:  -----------
 +         z + 1   
 +
 +Sampling time: 1 s
 +Discrete-time model.
 +</code>
 +
 +==== Umwandlung kontinuierliche in zeitdiskrete Transferfunktion ====
 +Oft ist es einfacher das Problem im Zeitkontinuerlichen zu lösen und danach einfach ins Zeitdiskrete umzuformen. Dies kann mittels unterschiedlicher Methoden erfolgen. Die bekanntesten Transformationen sind die ZOH (Zero Order Hold) und bilinieare (Tustin) Transformation.
 +
 +Die Transformation kann in Octave mittels der Funktion c2d() durchgeführt werden.
 +
 +<code octave>
 +N = [1 1];                     % numerator polynomial
 +D = [1 1 1];                   % denumerator polynomial
 +Ts = 1;                        % sampling time
 +
 +G_tcont = tf(N, D);            % time-continuous transfer function
 +
 +G_tdisc = c2d(G_tcont, Ts);    % time-discrete transfer funtion
 +</code>
 +
 +
 +<code shell>
 +Transfer function 'G_tdisc' from input 'u1' to output ...
 +
 +         0.8738 z - 0.2918
 + y1:  -----------------------
 +      z^2 - 0.7859 z + 0.3679
 +
 +Sampling time: 1 s
 +Discrete-time model.
 +</code>
 +
 +Wichtig ist, daran zu denken, dass die beiden Transferfunktionen nicht identisch sind. Dies lässt sich mit einem Bode-Diagramm deutlich machen. Die Transformation führt insbesondere zu Phasenverlusten je höher die Sampling-Zeit ist (je höher die Frequenz, desto weniger Abweichung).
  
 ---- dataentry topic ---- ---- dataentry topic ----
-type           : topic +type               : topic 
-advanced_users :  +advanced_users     :  
-beginner_users : daniw, ninux +beginner_users     : daniw, ninux 
-wannabe_users  +wannabe_users      anni 
 +category_topictags : software, mathe
 ---- ----
 +
 +
 +
 +
 +
 +
 +
topics/octave.1399841483.txt.gz · Zuletzt geändert: 2014/05/11 20:51 von ninux

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki