kramann.info
© Guido Kramann

Login: Passwort:










Robuste Systemintegration
1 Grundlagen
..1.1 Newton
....1.1.1 LinearSchwinger
....1.1.2 Daempfung
....1.1.4 ODE
....1.1.5 Saaluebung
..1.2 NewtonEuler
....1.2.1 Traegheitsmomente
....1.2.2 Modellgleichungen
....1.2.3 Einfachpendel
..1.3 Scilab
....1.3.1 Erste_Schritte
....1.3.2 Skripte
....1.3.3 Funktionen
..1.4 Laplace
....1.4.1 Eigenwerte
....1.4.2 PT1
..1.5 Regleroptimierung
....1.5.1 Guetefunktion
....1.5.2 Heuristiken
....1.5.3 Scilab
..1.6 Einstellregeln
....1.6.1 Totzeit
....1.6.2 Methode1
....1.6.3 Methode2
....1.6.4 Scilab
..1.7 Zustandsregler
..1.8 Polvorgabe
..1.8 Polvorgabe_alt
..1.9 Beobachter
....1.9.1 Haengependel
..1.10 Daempfungsgrad
..1.11 Processing
....1.11.1 Installation
....1.11.2 Erste_Schritte
....1.11.3 Mechatronik
....1.11.4 Bibliotheken
....1.11.5 Uebung
....1.11.6 Snippets
......1.11.6.1 Dateioperationen
......1.11.6.2 Bilder
......1.11.6.3 GUI
......1.11.6.4 Text
......1.11.6.5 PDF
......1.11.6.8 Maus
......1.11.6.10 Zeit
......1.11.6.13 Animation
......1.11.6.15 Simulation
....1.11.7 Referenzen
..1.12 Breakout
2 Beispiel
3 Beispielloesung
4 Praxis
5 javasci
6 Fehlertoleranz1
7 Reglerentwurf
..7.1 Sprungantwort
..7.2 Messdaten
..7.3 Systemidentifikation
..7.4 Polvorgabe
..7.5 Beobachter
..7.6 Robuster_Entwurf
..7.7 SIL
8 Systementwicklung
9 Arduino
..9.1 Lauflicht
..9.2 Taster
..9.3 Sensor
..9.12 Motor_PWM1
..9.13 Motor_PWM2_seriell
..9.14 Motor_PWM3_analogWrite
..9.15 Scheduler
..9.20 AV
..9.21 Mikrofon
..9.22 Universal
....9.22.1 Laborplatine
....9.22.2 LED_Leiste
....9.22.3 Motortreiber
....9.22.4 Sensoreingaenge
....9.22.5 Taster
....9.22.6 Tests
....9.22.7 Mikrofon
....9.22.8 Lautsprecher
....9.22.9 Fahrgestell
..9.23 Zauberkiste
..9.24 OOP
....9.24.1 Uebungen
..9.25 AVneu
....9.25.1 Tests
..9.26 DA_Wandler
..9.27 CompBoard
....9.27.1 Tastenmatrix
....9.27.2 ASCIIDisplay
..9.28 CTC
..9.29 Tonerzeugung
10 EvoFuzzy
..10.1 Fuzzy
....10.1.1 Fuzzylogik
....10.1.2 FuzzyRegler
....10.1.3 Uebung9
....10.1.5 Softwareentwicklung
......10.1.5.1 AgileSoftwareentwicklung
......10.1.5.2 FuzzyRegler
......10.1.5.3 Uebung
....10.1.6 Umsetzung
......10.1.6.1 FuzzyRegler
......10.1.6.2 Simulation
......10.1.6.3 Optimierung
......10.1.6.4 Uebung
....10.1.7 Haengependel
......10.1.7.1 Haengependel
......10.1.7.2 Simulation
......10.1.7.3 FuzzyRegler
......10.1.7.4 Optimierer
......10.1.7.5 Genetisch
....10.1.8 Information
....10.1.9 Energie
..10.2 Optimierung
....10.2.1 Gradientenverfahren
....10.2.2 Heuristiken
....10.2.3 ModifizierteG
....10.2.4 optim
..10.3 Genalgorithmus
..10.4 NeuronaleNetze
....10.4.1 Neuron
....10.4.2 Backpropagation
....10.4.3 Umsetzung
....10.4.4 Winkelerkennung
..10.5 RiccatiRegler
11 Agentensysteme
12 Simulation
20 Massnahmen
21 Kalmanfilter
..21.1 Vorarbeit
..21.2 Minimalversion
..21.3 Beispiel
30 Dreirad
31 Gleiter
..31.1 Fehlertoleranz

1.6.4 Anwendung der Methode2 mit Unterstützung von Scilab

Bestimmung der charakteristischen Größen K<sub>S</sub>, T<sub>u</sub> und T<sub>a</sub> aus dem Graph der Sprungantwort für G(s)=1/(1+2s+s^2).

Bild 1.6.4-1: Bestimmung der charakteristischen Größen KS, Tu und Ta aus dem Graph der Sprungantwort für G(s)=1/(1+2s+s^2).

  • Die Kurve wurde mit Hilfe des folgenden Scilab-Skriptes gewonnen:
//s als Argument für ein Polynom definieren:
s = poly(0,"s"); 
//Übertragungsfunktion definieren:
//G = syslin('c',[K],[1+s*T+P*s^2]); //PT2
G = syslin('c',[1],[1+2*s+s^2]); //Auch Nullstelle
//G = syslin('c',[K*exp(-0.5*s)],[1+s*T+P*s^2]); //PT2 mit Totzeit
//Zeitbereich für die Simulation festlegen:
t=[0:0.01:10]; 
u=ones(1,1001);
//Sprungantwort für die gegebene Übertragungsfunktion bestimmen:
//y=csim('impuls',t,G); 
y=csim(u,t,G); 
yp=diff(y);
ypp=diff(yp);
wendestellen = find(abs(ypp)<0.00000001);
wende = find(min(ypp(wendestellen)));
yw=y(wendestellen(wende));
tw=t(wendestellen(wende));
ypw=yp(wendestellen(wende))/(t(2)-t(1));
tt=t(30:300);
wt = yw + ypw*(tt-tw);
plot(tt,wt,'red');
plot2d(t,y);
xtitle("Sprungantwort zu G(s) ")
Tu=t(30)
Ta=t(300)-Tu
Ks=1

Code 1.6.4-1: Berechnung der Sprungantwort eines PT2-Gliedes in Scilab.

  • Scilab unterstützt direkt die Darstellung einer ganzen Reihe an in der Regelungstechnik üblichen Darstellungen von Übertragungsgliedern.
  • Im folgenden Skript werden der Reihe nach ein Pol-Nullstellen-Diagramm, ein Nyquist-Diagramm, ein Bode-Diagramm und die Sprungantwort eines Übertragungsgliedes dargestellt.
//s als Argument für ein Polynom definieren:
s = poly(0,"s"); 
//Parameter festlegen:
K = 1; 
T = 1; 
P = 1; 
//Übertragungsfunktion definieren:
G = syslin('c',[K],[1+s*T+P*s^2]); //PT2
//G = syslin('c',[s+1],[2+s*T+P*s^2]); //Auch Nullstelle
//G = syslin('c',[K*exp(-0.5*s)],[1+s*T+P*s^2]); //PT2 mit Totzeit
//Pol-Nullstellen Diagramm zeichnen
subplot(221);
plzr(G); 
//Frequenzgang berechnen
freqmin=1; // minimale Frequenz
freqmax=1000; // maximale Frequenz
subplot(222);
nyquist(G,freqmin,freqmax); // Ortskurve über Frequenzbereich
subplot(223);
bode(G,freqmin,freqmax); // Ortskurve über Frequenzbereich
//Zeitbereich für die Simulation festlegen:
t=[0:0.01:10]; 
u=ones(1,1001);
//Sprungantwort für die gegebene Übertragungsfunktion bestimmen:
//y=csim('impuls',t,G); 
y=csim(u,t,G); 
subplot(224);
plot2d(t,y);
xtitle("Sprungantwort zu G(s) ")

Code 1.6.4-2: Erzeugen diverser in der Regelungstechnik gebräuchlicher Darstellungen für Übertragungsglieder.

Mit obigem Skript erzeugte Diagramme.

Bild 1.6.4-2: Mit obigem Skript erzeugte Diagramme.

Übung 5
  • Bestimmen Sie mit Hilfe von Scilab und "01_ziegler_nichols", bzw. "02_ziegler_nichols_Totzeit" mit beiden Methoden passende PID-Regelparameter für folgende Strecken:
  • G(s) = exp(-0.1s)/(s^2+2s+1)
  • G(s) = 1/((s+1)*(s+2))
  • G(s) = 1/(s^2+1)
  • G(s) = 1/((s-1)*(s+2))
  • G(s) = exp(-s)/((s+1)*(s+2))
  • Legen Sie eine Drehzahlregelung für den Motor aus Kapitel 5.4 aus gemäß Ü4 Aufg.1/2.
  • Wird die Bedingung aus Ü4 Aufg.2 (maximale Spannung 10V) erfüllt?