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
80 Vorlesung_2014_10_01
81 Vorlesung_2014_10_08
82 Vorlesung_2014_10_15
83 Vorlesung_2014_10_22
84 Vorlesung_2014_10_29
kramann.info
© Guido Kramann

Login: Passwort:




Reglerauslegung durch Polvorgabe

(EN google-translate)

(PL google-translate)

Aus dem vorangehenden Unterkapitel zur Systemidentifikation haben sich folgende Modellparameter für Pixelgeschwindigkeit/PWM ergeben:

p=115509.42  
q=    18.067538  
r=    18.067538  

Code 0-1: Optimierte Modellparameter.

Diese sollen nun Grundlage in einem Modell im Zeitbereich werden, welches wiederum als Grundlage für die Reglerauslegung genommen wird:

$ G\left(s\right) = \frac { p }{ \left(q+s\right) \cdot \left(r+s\right) } $

Formel 0-1: Pixelgeschwindigkeit/PWM im Laplacebereich.


  • ...umgewandelt in den Zeitbereich bei Verwendung von w als Pixelwinkelgeschwindigkeit und u als PWM-Signal:

$ \ddot w + \left(q+r\right) \cdot \dot w + \left(q \cdot r\right) \cdot w = p \cdot u $

Formel 0-2: Pixelgeschwindigkeit/PWM im Zeitbereich.


  • ... nach Parametersubstitution:

$ \ddot w + a \cdot \dot w + b \cdot w = c \cdot u $

Formel 0-3: Pixelgeschwindigkeit/PWM im Zeitbereich.


a=36
b=326
c=115509

Code 0-2: Optimierte Modellparameter, substituiert und gerundet.

clear();
function f = rechteSeite(t,y)
    phi    = y(1,1);  //Pixelposition
    omega  = y(2,1);  //Pixelgeschwindigkeit "w"
    alfa   = y(3,1);  //Pixelbeschleunigung
    intphi = y(4,1);  //Integral von Phi
    
    u = 4;

    a=36.0;
    b=326.0;
    c=115509.0;    
    
    f(1,1) = omega;
    f(2,1) = alfa;
    f(3,1) = -a*alfa-b*omega+c*u;
    f(4,1) = phi;
endfunction

//Testweise wie in der Messung simulieren:
t=linspace(0,1.0,100);
t0=0.0;
y0=[0;0;0;0];
y=ode(y0,t0,t,rechteSeite);

plot(t,y(2,:));

Code 0-3: Testweise Modellierung und Simulation der Regelstrecke

Plot zu obigem Skript.

Bild 0-1: Plot zu obigem Skript.

clear();

    a=36.0;
    b=326.0;
    c=115509.0;    

    A = [  0     1     0     0
           0     0     1     0
           0    -b    -a     0
           1     0     0     0 ];


    B = [  0
           0
           c
           0 ];

function f = rechteSeite(t,y)    
    u = 4;
    f = A*y+B*u;    
endfunction

//Testweise wie in der Messung simulieren:
t=linspace(0,1.0,100);
t0=0.0;
y0=[0;0;0;0];
y=ode(y0,t0,t,rechteSeite);

plot(t,y(2,:));
ew = spec(A);
disp(ew);

Code 0-4: Gleiches System über Systemmatrix A und Eingriffsmatrix B definiert, sowie Berechnung der Eigenwerte.

ew=
    0                 
    0                 
  - 18. + 1.4142136i  
  - 18. - 1.4142136i

Code 0-5: Lage der Eigenwerte

Polvorgabe - erster Versuch
clear();

    a=36.0;
    b=326.0;
    c=115509.0;    

    A = [  0     1     0     0
           0     0     1     0
           0    -b    -a     0
           1     0     0     0 ];


    B = [  0
           0
           c
           0 ];

//Reglerentwurf über Polvorgabe:
    ew = [ - 1. + 0.7*%i
           - 1. - 0.7*%i
           - 18. + 1.4142136*%i  
           - 18. - 1.4142136*%i 
         ];

    R = ppol(A,B,ew');

    ewneu = spec(A-B*R);
    disp(ewneu);
    disp(ew);

function f = rechteSeite(t,y)    
    u = -R*y; //Zustandsregler
    f = A*y+B*u;    
endfunction

//Testweise wie in der Messung simulieren:
t=linspace(0,4.0,400);
t0=0.0;

//    phi    = y(1,1);  //Pixelposition
//    omega  = y(2,1);  //Pixelgeschwindigkeit "w"
//    alfa   = y(3,1);  //Pixelbeschleunigung
//    intphi = y(4,1);  //Integral von Phi

y0=[100;0;0;0]; //mit 100 Pixel Abweichung beginnen
y=ode(y0,t0,t,rechteSeite);

plot(t,y(1,:)); //Verlauf von phi zeigen

Code 0-6: Polvorgabe, erster Versuch.

R = 
    0.0061090  
    0.0006362  
    0.0000173  
    0.0042052  

Code 0-7: Regelmatrix R

Plot zu obigem Skript - Regelt zu langsam!.

Bild 0-2: Plot zu obigem Skript - Regelt zu langsam!.

Zweiter Versuch Polvorgabe für schnelleren Regler
clear();

    a=36.0;
    b=326.0;
    c=115509.0;    

    A = [  0     1     0     0
           0     0     1     0
           0    -b    -a     0
           1     0     0     0 ];


    B = [  0
           0
           c
           0 ];

//Reglerentwurf über Polvorgabe:
    ew = [ - 10. + 7*%i         //schneller!
           - 10. - 7*%i
           - 18. + 1.4142136*%i  
           - 18. - 1.4142136*%i 
         ];

    R = ppol(A,B,ew');

    ewneu = spec(A-B*R);
    disp(ewneu);
    disp(ew);

function f = rechteSeite(t,y)    
    u = -R*y; //Zustandsregler
    f = A*y+B*u;    
endfunction

//Testweise wie in der Messung simulieren:
t=linspace(0,4.0,400);
t0=0.0;

//    phi    = y(1,1);  //Pixelposition
//    omega  = y(2,1);  //Pixelgeschwindigkeit "w"
//    alfa   = y(3,1);  //Pixelbeschleunigung
//    intphi = y(4,1);  //Integral von Phi

y0=[100;0;0;0]; //mit 100 Pixel Abweichung beginnen
y=ode(y0,t0,t,rechteSeite);

plot(t,y(1,:)); //Verlauf von phi zeigen

//Zur Kontrolle den Verlauf von u plotten ... darf betragsmaessig nicht groeßer als 20 werden!:

u=-R*y;
plot(t,u);

Code 0-8: Zweiter Versuch Polvorgabe.

R=
    0.1028838  
    0.0075232  
    0.0001731  
    0.4205213  

Code 0-9: Regelmatrix R.

Plot zu obigem Skript.

Bild 0-3: Plot zu obigem Skript.

Verlauf des PWM-Signals

Bild 0-4: Verlauf des PWM-Signals "u" - darf betragsmäßig nicht größer als 20 werden.