Fuzzy - Logic V1.0 __________________________________________________________________________________________ Fuzzy Logic 1. Einführung 2. Analoge Logik 3. Fuzzy - Regler 4. Neuronale Netze und Fuzzy 5. Anhang ( Sugeno ) 1. Einführung Analoge Logik Die Fuzzy Logic kann als effizienter u. einfach zu programmierender Regler eingesetzt werden. Fuzzy Logic ist eine Erweiterung der binären Logik um Grauwerte. Zwischen wahr und falsch und 0 und 1 sind Zwischenwerte möglich. Man spricht auch von analoger Logik oder von unscharfer Logik ( nicht dequalifizierend zu verstehen). Während die binäre Logik nur Zwei-/Dreipunktregler ermöglicht, erlaubt die Fuzzy - Logic analoge Regelung. Einsatzgebiete : Regler, Modellierung nichtlinearer Maschinen und Datenzusammenhänge, Mustererkennung Fuzzy lebt von menschlicher Erfahrung Fuzzy versucht menschliche Handlungsweisen, menschliches Schließen und Schlußfolgern, menschliche Erfahrung technisch zu nützen. So ist ein Auto zu fahren für einen Menschen problemlos. Einen Regler zu finden, der die richtigen Gänge einlegt ( dabei nicht permanent schaltet ), die Straßenverhältnisse berücksichtigt, die Lenkung übernimmt usw. ist aber mit konventioneller Regelungstechnik schwierig. Ein Fuzzy - Regler ist hingegen auch für komplexe Aufgaben oft leicht zu finden. Beim Autofahren wissen wir aus Erfahrung : wenn Linkskurve = scharf und Geschwindigkeit = hoch dann Lenkrad = starklinks wenn Linkskurve = mittel dann Lenkrad = links wenn Linkskurve = schwach oder Geschwindigkeit = niedrig dann Lenkrad = weniglinks Solches menschliches Erfahrungswissen wird dem Fuzzy Regler vermittelt. Das Beispiel könnte ohne weiters auf Rechtskurven und unterschiedliche Fahrbahnverhältnisse usw. ausgedehnt werden. Warum Fuzzy Fuzzy bietet oft eine Reihe von Vorteilen : - einfache und schnelle Regler - Lösung erzielbar - für nichtlineare und komplexe und Mehrgrößen - Probleme gut geeignet - keine detaillierte Modellbildung nötig - robust - unempfindlich gegenüber Änderung der Strecke und ungenauer Sensorik - Stellgrößenbeschränkungen können einfließen - mehrere Eingangsgrößen und Störgrößen können gleichzeitig wirken - oft keine tiefen regelungstechnischen Kenntnisse nötig Nachteile gegenüber konventioneller Regelungstechnik : - große Rechenleistung nötig ( spezielle Fuzzy-Controller sind verfügbar, werden aber zunehmend verdrängt ) - nicht optimale Lösungen - fehlende Modellbildung vermindert Verständnis für das System, Gefahr des irrtümlichen Schlusses nur mit Simulation vermeidbar - harte logische Schlüsse sind schlecht möglich u. müssen mit zusätzlicher konvent. Logik realisiert werden __________________________________________________________________________________________ Stüttler PA 1/6 Fuzzy - Logic V1.0 __________________________________________________________________________________________ Fuzzy in der Welt der Wissenschaft Bei der Fuzzy - Logic handelt es sich um ein Subsystem der dynamischen Programmierung und auch um eine Erweiterung von Prolog um grafische Eingabetools. Anwendung findet Fuzzy für Steuerungstechnik, zur Mustererkennung, zur Modellierung von Systemen und zur Signalanalyse. Neuronennetz machen Fuzzy Systeme lernfähig . Somit wird dem Fuzzy -System die menschliche Erfahrung nicht einprogrammiert, sondern es sammelt die Erfahrung wie auch der Mensch das tut : anhand von Beispielen ( Beispieldaten ). Wo die dynamische Programmierung für jeden beliebigen Zustand im voraus günstige Stellgrößen überlegt und im Speicher bereit hält, rechnet die Fuzzy Logic für jeden beliebigen Zustand in Echtzeit die Stellgröße anhand vernünftiger Regeln. Während die dyn. Programmierung über den Zustandsraum direkt zum Raum der Stellgrößen stößt, wird bei Fuzzy jede Zustandsvariable in einen mehrdimensionalen Raum ihrer Zugehörigkeitsvariable ( linguistische Variable, Fuzzy Set ) transformiert und dort ihren Dimensionen, den sogenannten Termen - je nach Zugehörigkeit, unscharf mit Zugehörigkeitsfunktionen ( membership functions MF ) - zugeordnet. Die Terme aller Zugehörigkeitsvariable werden dann mit Regeln als Transformationsvorschrift in den Raum der Stellgröße transformiert. Im Raum der Stellgrößen werden alle Lösungen überlagert und liefern die endgültige Stellgröße. Vorteile von Fuzzy gegenüber der dynamischen Programmierung sind: - einfache, verbale und systematische Festlegung zweckmäßiger Stellgrößen mit Regeln - minimaler Speicherbedarf Nachteile : größerer Rechenleistungsbedarf Matlab Fuzzy - Entwicklungssysteme werden von einer Reihe von Firmen angeboten. Diese Unterlagen beziehen sich weitestgehend auf die Matlab - Toolbox 'Fuzzy' von Roger Jang. 2. Operatoren analoger Logik Binäre Logik A A A B B A and B A or B not A Analoge Logik A B A and B A B A or B AND Min(A,B) A not A OR max(A,B) NOT (1-A) Neben den klassischen Operatoren AND, OR, NOT und PROD (Product) gibt es eine Reihe anderer, die zum Teil Zwischenstufen zwischen AND und OR darstellen, aber weniger gebräuchlich sind. __________________________________________________________________________________________ Stüttler PA 2/6 Fuzzy - Logic V1.0 __________________________________________________________________________________________ 3. Fuzzy - Regler Die Funktion wird anhand eines Fuzzy - Reglers für die Regelung des Lenkrades eines Autos demonstriert. Bei dem vereinfachten Beispiel sind keine Rechtskurven, keine speziellen Fahrbahneigenschaften usw. berücksichtigt. Unter den verschiedenen Möglichkeiten der Logikverknüpfung ist hier AND,OR, für die Implication und die Aggregation ist hier MAX und für die Defuzzication ist hier CENTROID gewählt. Die Begriffe werden nachfolgend erklärt. Sämtliche Fuzzy-Einheiten bilden zusammen das FIS (FuzzyInference_System ): Auto-FIS : 1. fuzzification 1. 2. rule application method ( OR ) 3. implication ( MAX ) hoch scharf if Linkskurve=scharf and Geschwindigkeit=hoch then Lenkrad = starklinks 2. mittel if Linkskurve= mittel then Lenkrad = links 3. schwach niedrig if Linkskurve=schwach or Geschwindigkeit=niedrig then Lenkrad=weniglinks 4.Aggregation ( max ) 5. Defuzzification ( centroid ) 90 0 Linkskurve = 70° 100 0 Geschwindigkeit = 55km/h Inputs 2 Lenkrad = 1.5U/s nach links outputs Alle den Zustand des Systems beschreibenden und für die Regelung des Systems wichtigen Zustandsgrößen werden gemessen und sind die Eingangsgrößen des Fuzzy Reglers. Die Regelkreistopologie ist konventionell. __________________________________________________________________________________________ Stüttler PA 3/6 Fuzzy - Logic V1.0 __________________________________________________________________________________________ 3.1. Fuzzifizierung ( fuzzyfication ) Dem Raum der Eingangsgrößen wird mit Zugehörigkeitsfunktionen ( membership - functions MF ) der Raum der Zugehörigkeitsvariable ( linguistische Variable, Fuzzy Sets ) zugeordnet : Der Raum der Zugehörigkeitsvariable setzt sich aus Termen zusammen und jedem Term wird eine MF zugeordnet. D.h. Terme und zugeordnete MF transformierten die Eingangsgrößen in den Raum der Zugehörigkeitsvariablen. Die Erstellung der MF geschieht händisch mit einem grafischen Editor. Es steht eine Vielzahl von Formen für Zugehörigkeitsfunktionen zur Verfügung. Oft wird die Dreiecks- und die Trapezform verwendet. Gauss Bell Z,PI,S - Polynome 0 10 gaussmf([0:0.1:10],[1,5]) gbellmf([0:0.1:10],[2,4,7]) zmf([0:0.1:10],[3,8]) Trapez Dreieck trapmf([0:0.1:10],[1,3,5,7]) trapmf([0:0.1:10],[7,9,10,10]) trimf([0:0.1:10],[2,4,6]) trimf([0:0.1:10],[8,10,10]) pimf([0:0.1:10],[1,4,6,9]) smf([0:0.1:10],[1,8]) 3.2. Regelnabarbeitung ( rule application ) In den verbal formulierten Regeln werden die Zugehörigkeitsvariable mit den Stellgrößen - Variablen verknüpft d.h. in den Stellgrößenraum transformiert. Jede Regel liefert einen Stellgrößenanteil. Die Regeln werden mit einem Texteditor erstellt. Z.B.: 1. if (Linkskurve is scharf ) and (Geschwindigkeit is hoch) 2. if (Linkskurve is mittel 3. if (Linkskurve is schwach) or (Geschwindigkeit is niedrig) then then then (Lenkrad is starklinks) (Lenkrad is links) (Lenkrad is weniglinks) Als Verknüpfungsoperatoren sind OR, AND, NOT und PROD gebräuchlich. Oft können Regeln auch gewichtet werden ( 0 bis 1 ). 3.3.a Schlußfolgerung ( Implication ) nach Mamdani Das Ergebnis der Regel hängt vom Fuzzyset des Ausgangssignales und dem wert der Regelauswertung ab. Es gibt zwei Wahlmöglichkeiten : - Beschneidung des Ausgangs-Fuzzysets ( MIN ) Skalierung des Ausgangs-Fuzzysets ( PROD ) Die Mamdani-.Methode geht setzt voraus, daß auch den Ausgangsgrößen beliebige Fuzzysets zugeordnet worden sind. Nicht so die Methode von Sugeno : __________________________________________________________________________________________ Stüttler PA 4/6 Fuzzy - Logic V1.0 __________________________________________________________________________________________ 3.3.b Implication nach Sugeno Als FuzzySet wird immer die Impulsfunktion verwendet. Ihre Höhe wird wie bei Mamdani vom Wert der Regelauswertung bestimmt. Vorteil von Sugeno : geringerer Rechenaufwand. Ein Nachteil ist, daß nur die Impulsfunktion als MF möglich ist. Siehe Anhang. 3.4. Überlagerung, Akkumulation ( Aggregation ) Die Stellgrößenanteile aller Regeln werden Max-überlagert und ergeben die Gesamtschlußfolgerung. Es gibt drei Wahlmöglichkeiten : - Maximumüberlagerung ( MAX ) Summierende Überlagerung ( SUM ) Wahrscheinlichkeits-Oder ( OR ) 3.5. Defuzzifizierung ( defuzzyfication ) Aus der Gesamtschlußfolgerung wird die Stellgröße mit einer der folgenden Methoden gewonnen : som bisector centroid mom Flächenschwerpunktbildung ( centroid ) Bisektor ( bisector ) Mittelwert vom Maximum ( mom ) Ende Maximalwert ( lom ) Anfang Maximalwert ( som ) lom - 20 0 4. Neuronetze und Fuzzy-Logic Das Ziel dieser Erweiterung der Fuzzy-Technik ist die automatische Erzeugung der Fuzzysets und der Regeln zur Modellierung nichtlinearer Maschinen und zur Modellierung von Datenkorrelationen. Die automatische Erzeugung des FIS erfolgt in einem Lernprozesses anhand von Beispieldaten. Die Matlab - Implementierung ANFIS ( Adaptive Neuro Fuzzy Inference system ) erlaubt ein Ausgangssignal und nur die Sugeno-Implication. ANFIS verbessert ein gegebenes FIS iterativ anhand von Beispieldaten. GENFIS1 ( GENerate FIS ) erstellt ein FIS für ANFIS aus Beispieldaten u. ist nur für wenige Eingänge geeignet. GENFIS2 erzeugt ein FIS für ANFIS aus Beispieldaten u. ist nur für FIS mit vielen Eingängen geeignet. Siehe auch Matlab - Dokumentation und Helpfiles. __________________________________________________________________________________________ Stüttler PA 5/6 Fuzzy - Logic V1.0 __________________________________________________________________________________________ Anhang : Implication nach Sugeno 1. fuzzification 1. scharf 2. rule application method ( OR ) 3. implication ( MAX ) hoch if Linkskurve=scharf and Geschwindigkeit=hoch then Lenkrad = starklinks 2. mittel if Linkskurve= mittel then Lenkrad = links 3. schwach niedrig if Linkskurve=schwach or Geschwindigkeit=niedrig then Lenkrad=weniglinks 4.Aggregation ( max ) 5. Defuzzification ( centroid ) 90 0 Linkskurve = 70° 100 0 Geschwindigkeit = 55km/h 2 Lenkrad = 1.4U/s nach links Inputs outputs Sugeno benötigt gegenüber Mamdani weniger Rechenaufwand und ist qualitativ meist ähnlich gut. __________________________________________________________________________________________ Stüttler PA 6/6