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

10.2.2 Heuristische Suchstrategien

  • Günstige Parameter für beispielsweise einen PID-Regler von Hand zu finden ist oft schwierig.
  • Es wäre wünschenswert diesen Vorgang zu automatisieren.
  • Bei komplexeren Systemen existiert häufig nicht ein einziges Optimum.
  • Es sind of eine Vielzahl an Parametern zu variieren und es gibt viele lokale Minima im Parameterraum.
  • Ferner ist häufig keine analytische Güte-Funktion F angebbar.
  • Vielmehr kann immer nur der Wert von F(xakt) für einen bestimmten Parameter-Vektor xakt bestimmt werden.
  • Heuristiken sind hierfür geeignete automatisierte Suchverfahren.
  • Heuristische Suchverfahren nutzen das bekannte Wissen über das System aus, um geeignete Richtungen für die Suche zu identifizieren.
  • Einige Methoden:
  • Parameterstudie (Trial and Error)
  • Modifiziertes Gradientenverfahren
  • Genetische Algorithmen

Parameterstudie

  • Angenommen wir wollten für den PID-Regler eine Parameterstudie durchzuführen.
  • Wir würden für jeden der drei Parameter zunächst einen kleinsten und größt-möglichen Wert festlegen.
  • Dann würde man diese drei Bereiche in äquidistante Teile gliedern.
  • Für jede Kombination dieser gerasterten möglichen Parametereinstellungen würde man dann eine Simulation durchführen und den jeweiligen Wert der Fehlerfunktion F bestimmen.
  • Man erhält so in diesem Fall eine grob gerasterte dreidimensionale Verteilung für F im Parameterraum.
  • Nun könnte man in viel versprechenden Bereichen die Rasterung verfeinern und in geringeren Abständen im Parameterraum weitere Simulationen durchführen.
  • Damit erhielte man schließlich einige gute Kombinationen für K, TN und TV.

Modifiziertes Gradientenverfahren

  • Man bestimmt zunächst F für einen Startpunkt xakt für K, TN und TV.
  • Nun bestimmt man F für Punkte, die äquidistant auf einer kleinen Sphäre um xakt herum liegen, z.B. zu diesem Startpunkt die äquidistanten Punkte in Richtung der Koordinatenachsen.
  • Aus den Differenzen der F-Werte der Sphärenpunkte zu dem Startpunkt, ergeben sich grobe Gradientenvektoren.
  • Man wählt die Richtung mit der stärksten Verkleinerung des F-Wertes aus.
  • Man normiert den entsprechenden Richtungsvektor und multipliziert ihn mit einem kleinen Faktor α.
  • Das ist dann der Weg, den man vom alten Punkt aus geht.
  • Am neuen Punkt wir das Verfahren wiederholt usw.
  • Abbruchkriterium z.B.: Der Abstand zwischen neuem und altem Punkt wird kleiner, als die Genauigkeitsgrenze, mit der sich die zu optimierenden Parameter einstellen lassen.
  • Das Verfahren in dieser Form kann dazu führen, dass es in einem nicht optimalen lokalen Minimum endet.
  • Es wäre deshalb wichtig eine ganze Reihe von Startpunkten durchzutesten.
  • So könnte eine Parameterstudie die Startpunkte für das modifizierte Gradientenverfahren liefern.
  • Damit das Verfahren konvergiert, darf α, also der Abstand zwischen alter und neuer Position nicht zu groß gewählt werden.
  • Es macht Sinn, α gegen Ende des Verfahrens immer kleiner werden zu lassen, bzw. durch die Steigung des Gradientenvektors zu steuern.

Genetische Algorithmen

  • Eine generellere Methode ist es, einen genetischen Algorithmus für die Minimumssuche von F zu implementieren.
  • Unser Gen wäre beim PID-Regler der Parametervektor x mit den Komponenten K, TN und TV.
  • Eine Reihe solcher unterschiedlichen Gene, z.B. 100 liefern mehr oder weniger kleine Werte für F.
  • Für eine kommende Generation von Genen werden beispielsweise die 10 besten (kleinste F-Werte) herausgegriffen.
  • Nun rekombiniert man die zehn besten Gene um wieder auf z.B. hundert neue Gene zu kommen.
  • D.h. man nimmt das K von dem einen Gen und fügt dort noch TN und TV aus einem anderen der 10 besten Gene hinzu.
  • Damit diese genetische Evolution nicht auch in einem lokalen Minimum landet, können noch Mutationen eingeführt werden:
  • Es werden moderate zufällige Veränderungen an den Genen einer neuen Generation durchgeführt.
  • Der Mutationsgrad sollte mit fortschreitender Evolution immer weiter abnehmen, um gewoonnene positive Ergebnisse nicht wieder zu zerstören.
  • Aufgrund von Tests sollte man die Mutationsrate, die Anzahl der Gene und die Bestenauswahl so einstellen, dass das Verfahren konvergiert.