Fuzzy-Logik, wie funktioniert das? Teil (2)

E. Bratz

direkt zum Text-Start ! (zur Sache !!)

direkt zu Teil 3

Zurück zu Teil (1)


Werbung für meinen anderen Kurs:

Einführung in Regeltechnik


* Das Prozedere !

Erster Schritt (bereits erläutert) - Fuzzifizierung: In Abb.5 (rechts hinscrollen) ist eine Momentaufnahme eines Laufs dargestellt. Die diskreten Eingabewerte der Schieberegler sind als weiße lotrechte Striche zu erkennen. Die Geschwindigkeit beträgt etwa 40km/h und der Abstand 30m. An den blauen und grünen Waagrechten erkennt man die Zugehörigkeitswerte zu den Termen 'klein' (grün) und 'null' (blau), die anderen Terme sind bei diesem Zustand nicht beteiligt. Bei 'Abstand' beträgt die Zugehörigkeit zu 'null' 0,1 und zu 'klein' 0,9. Bei 'Geschwindigkeit' beträgt die Zugehörigkeit zu 'null' 0,2 und zu 'klein' 0,8.

Zweiter Schritt - Regelbasis erstellen: In der Praxis richtet sich das Prozedere an dieser Stelle stark nach der Arbeitsweise des Editors in der benützten Software. Die zur Verfügung stehenden Editoren sind aber in allen Fällen sehr gut handhabbar und übersichtlich. Bei manchen Systemen ist noch eine graphische Darstellung in einer 'Fuzzy-Matrix' , siehe z.B. Abb.6, enthalten.

Für unser Abstandsregler-Problem können wir beipielsweise folgende, für Übungen hinreichend zufriedenstellende, Regelbasis aufstellen:

Regel Nr. Prämisse 1 Verknüpfung Prämisse 2 Konklusion Ergebnisterm
1 Geschw = 'null' UND Abstand = 'null' DANN Gas = 'kein'
2 Geschw = 'null' UND Abstand = 'klein' DANN Gas = 'wenig'
3 Geschw = 'null' UND Abstand = 'mittel' DANN Gas = 'wenig'
4 Geschw = 'null' UND Abstand = 'gross' DANN Gas = 'wenig'
5 Geschw = 'klein' UND Abstand = 'null' DANN Gas = 'kein'
6 Geschw = 'klein' UND Abstand = 'klein' DANN Gas = 'wenig'
7 Geschw = 'klein' UND Abstand = 'mittel' DANN Gas = 'viel'
8 Geschw = 'klein' UND Abstand = 'gross' DANN Gas = 'viel'
9 Geschw = 'mittel' UND Abstand = 'null' DANN Gas = 'kein'
10 Geschw = 'mittel' UND Abstand = 'klein' DANN Gas = 'kein'
11 Geschw = 'mittel' UND Abstand = 'mittel' DANN Gas = 'viel'
12 Geschw = 'mittel' UND Abstand = 'gross' DANN Gas = 'voll'
13 Geschw = 'gross' UND Abstand = 'null' DANN Gas = 'kein'
14 Geschw = 'gross' UND Abstand = 'klein' DANN Gas = 'kein'
15 Geschw = 'gross' UND Abstand = 'mittel' DANN Gas = 'wenig'
16 Geschw = 'gross' UND Abstand = 'gross' DANN Gas = 'voll'

In Abb. 3 ist die selbe Regelbasis dargestellt, wie sie in einem Editor aussehen kann (ehemals Comtec 'Flowchart' )

Dritter Schritt - Inferenzschema:

1. ) Für jede Regel des zuvor aufgestellten Regelbasissystems (vgl. Tabelle oben und/oder Abb.3) wird die Verknüpfung der linken Regelseite entsprechend der Verknüpfungsvorschrift der Regel vorgenommen. Dieser Vorgang wird 'Aggregationsoperation für die linke Seite' genannt: 'AggOp LS'.

Für v = 40 km/h und d = 30m gilt beispielsweise:

Regel Nr. Term 'Geschwindigkeit' Zugehörigkeit Term 'Abstand' Zugehörigkeit Term 'Gas' nach Regel
1 'null' 0,2 'null' 0,1 'kein'
2 'null' 0,2 'klein' 0,9 'wenig'
5 'klein' 0,8 'null' 0,1 'kein'
6 'klein' 0,8 'klein' 0,9 'wenig'

Zur Anwendung gelangen hier nur die Regeln 1,2,5,6, denn die anderen Terme sind nicht betroffen.

Die Verknüpfungen (AggOpLS, Operator: UND) sind:

a1 = [ 0.2 UND 0.1] --> Ergebnis: 0.1

a2 = [ 0.2 UND 0.9] --> Ergebnis: 0.2

a5 = [ 0.8 UND 0.1] --> Ergebnis: 0.1

a6 = [ 0.8 UND 0.9] --> Ergebnis: 0.8

2.) Anschließend wird der linken Seite unter Anwendung des sogenannten 'Implikationsoperators ( = ImpOp)' ein Ergebnis für die rechte Seite der jeweiligen Regel zugeordnet. Als ImpOp werden am häufigsten der Min-Operator oder der Produkt-Operator verwendet. Beim Min-ImpOp wird der in Frage kommende Term der rechten Seite auf den Ergebniswert der zugehörigen AggOpLS 'gekappt' (waagrecht abgeschnitten). Beim Prod-ImpOp wird die Spitze des Terms auf den Ergebniswert der AggOp 'gestaucht'. [Anmerkung: In der Literatur wird auch statt des Begriffs ImpOp der Begriff InfOp = Inferenzoperator (im engeren Sinne) verwendet, so z.B. bei T. Tilli (siehe Literaturangaben hinten!) ]. Nach der Durchführung der Inferenzoperation haben wir folgende Situation: Für jede wirksame Regel existiert eine gestutzte Termfäche als Ergebnis. Dies stellt eine 'verwischte' (fuzzy) Information zur Gewichtigkeit dieser Regel im Vergleich zu anderen dar. In der nachfolgenden Tabelle sind die ImpOp- 'Kappungswerte' (= im Falle des Min-Operators, -- beim Prod-Operator wären die gleichen Werte als 'Stauchungswerte' anzuwenden) der Regeln an vorletzter Stelle rechts aufgeführt (= Term 'Gas' wird auf die Werte des Ergebnisses der AggOpLS gekappt ).

Regel Nr. Term 'Geschwin digkeit' Zugehörig keit Term 'Abstand' Zugehörig keit Kappungs wert = Ergebnis AggOpLS Term 'Gas' nach Regel (der gekappt Wird)
1 'null' 0,2 'null' 0,1 0,1 'kein'
2 'null' 0,2 'klein' 0,9 0,2 'wenig'
5 'klein' 0,8 'null' 0,1 0,1 'kein'
6 'klein' 0,8 'klein' 0,9 0,8 'wenig'

3.) Um zu einer Gesamtaussage zu kommen, müssen die Ergebnisse der rechten Seiten (RS) zu einer einzigen Information zusammengefaßt werden. Dies geschieht durch den Maximum-Operator als 'Akkumulationsoperator (= AccOpRS)'. Dieser besteht ganz simpel in einer Anreihung der Flächen der Einzelergebnisse auf der rechten Seite. In Abb.5 ist dies auf dem rechts unten befindlichen Diagramm (grün und blau, etwas schwer zu erkennen!) dargestellt. Man sieht, daß die Termfläche von Regel 2 für Gas 'wenig' (0,2) als Teilmenge in der Fläche von Regel 6 (im Sinne eines Maximum-Operators) enthalten ist und daß die Auswirkung der Regeln 1 und 5 mit Ergebnis für Gas 'kein' (0,1) minimal ist. Beim AccOp zeigt sich letztlich der, wenn auch nicht so gravierende, Unterschied zwischen Min- und Prod-ImpOp, das Ensemble der angereihten Flächen sieht 'gestutzt oder gestaucht ' etwas 'verschieden' aus.


Zusammenfassung der Abfolge beim Inferenzschema:
AggOp(LS) je Regel (Prämissenverknüpfung) ; ImpOp( LS>RS) je Regel (Kappen oder Stauchen) ; AccOp(RS) für alle Regeln (Anreihen)

und: Wissens-Kern: Regelbasis.


Ein Beispiel für die Wahlmöglichkeiten für die im Inferenzschema üblichen Operatoren ist in Abb. 12 des zweiten Bildteils gezeigt, das die entsprechende Maske in der Data-Engine Software von MIT darstellt. Im Anhang werden diese Operatoren noch etwas ausführlicher beschrieben.

Ergebnis und Schluß des Prozedere ? : Jein !

Hiermit ist das Inferenzschema beendet. Entsprechend der beiden Möglichkeiten des ImpOp: 'Minimum oder Produkt' unterscheidet man ein 'Minimum-Maximum-' und ein 'Produkt-Maximum-'Inferenzschema. Die Ergebnisse beider Methoden sind meistens nicht gravierend unterschiedlich ( : gestaucht oder gekappt!).

Als Ergebnis liegt an dieser Stelle ein Flächenensemble (Anreihung!) vor, das eine 'verwischte' (unscharfe, fuzzy) Ausgabeinformation für den Gesamtvorgang darstellt. In speziellen Fällen, z.B. bei der Mustererkennung, könnte bzw. kann man hiermit schon eine Aussage treffen. Bei vielen Problemen, vor allem in der Regelungstechnik, wird aber ein diskreter Ausgabewert erwartet. Die Rückführung der unscharfen Ergebnisinformation in einen (oder mehrere) diskreten Ausgabewert wird Defuzzifikation genannt.

Vierter und letzter Schritt - Defuzzifikation:

Bei der häufigsten Defuzzifikationsmethode, der center of gravity-Methode = COG (Flächenschwerpunktsmethode), geht man davon aus, daß der repräsentativste diskrete Wert für ein erhaltenes Ergebnisflächen-Ensemble unter dem Schwerpunkt der Fläche liegt. Es wird also rechnerisch der Flächenschwerpunkt ermittelt. Weitere weinger häufig verwendete Methoden sind die Area- , die Height-, und die Mean of Maxima -Methode, die mit anderen Mittelwertbildungs-Algorithmen arbeiten und speziell noch die Maximum-Methode (das bedeutet nichts anderes, als daß man das Dreieck, Trapez oder hier am besten Singleton mit größtem Kompatibilitätsgrad auswählt, eine Verfahrensweise, die sich vor allem bei Klassifikationen eignet.) Bei stetigen Vorgängen können für Singletons schließlich auch Schwerpunkte nach dem Hebelgesetz ermittelt werden, dies bietet Rechengeschwindigkeits-Vorteile.

In Abb.5 liegt der diskrete Ausgabewert für 'Gas' (weiße lotrechte Linie, etwas oberhalb 30%) unter dem Flächenschwerpunkt.


'End of ' Prozedere!'


Verlassen der Seite


Einflußnahme (Adaptieren, Trimmen)

Es liegt auf der Hand, daß die Auswahl (Formulierung) und Gewichtung der Regeln und die Form der Fuzzy-Set-Verteilung zur Einflußnahme bei einem Fuzzy-System herangezogen werden können. Da die beiden Operationen nicht ohne gegenseitige Auswirkung sind, ist es sehr schwierig, ein Fuzzy-System ganz systematisch zu entwickeln und zu 'trimmen'. Es kann nicht unter den Tisch gekehrt werden, daß hier viel Erfahrung, Intuition und Probieren erforderlich sind. Hinsichtlich der Formulierung der Regeln kann man postulieren, daß diese alle wesentlichen Merkmale des Systems beschreiben sollten. An stark 'unstetigen' Stellen ist eventuell auch in den Regeln ein engerer Raster zu wählen. Term-Sets sollten in ihrer 'Lage' zu den Regeln 'passen', also das System auch realistisch repräsentieren. Die Wahl der geometrischen Form der Sets und vor allem der Grad ihrer Überlappung hat einen wesentlichen Einfluß auf die Stetigkeit der Übertragungsfunktion. Hierbei ist vor allem die Überlappung in den Input-Sets von großem Einfluß auf die 'Stufigkeit' des Ergebnisses, wohingegen die Überlappung der Ergebnis-Sets relativ wenig Auswirkung hat. Interessierte Leser finden in dem Buch 'Mustererkennung mit Fuzzy-Logik' von T. Tilli (Franzis' Verlag, ISBN 3-7723-5091-7) ab S.109 Beispiele für die Auswirkung der Einzelnen Einflußnahmen (mit graphischen Veranschaulichungen). Als Beispiel einer extremen Gestaltung der Überlappung in einem Input-Set kann Abb.21 (Abb.-Teil 3 ) herangezogen werden. Bei diesem Beispiel (Mustererkennung im Bereich der chemischen Analytik/Sensorik) wird in einem 'harten Klassifikator' der scharf eingegrenzte Bereich eines 'richtigen' Ergebnisses nicht nur durch das Vorhandensein einer einzigen Regel für den 'richtig'-Zustand sondern auch durch die Wahl von Input-Term-Sets mit sehr geringer Überlappung der Inputwerte für 'richtig' mit den übrigen, 'falschen' Werten erreicht. Man beachte auch die Gestaltung des Verlaufs der Terme für 'falsche' Inputs, - hier wird kein stetiger Anstieg sondern sofortige hundertprozentige Präsenz im ganzen Kern-'falsch'-Bereich formuliert. Eine Möglichkeit der ja/nein - Klassifikation im Ergebnis-Set ist für das gleiche Anwendungsbeispiel in Abb. 11 auf der zweiten Bildseite aufgezeigt. Hier wird einfach bei 0 ein Singleton für 'falsch' gesetzt und bei 1 ein Singleton für 'richtig'.

Allgemeines zu Applikationen

Regelung und Steuerung/Feedforward-Regelung

Da ein Fuzzy-System modellfrei ein gewünschtes Übertragungsverhalten von Input- zu Output-Daten etablieren kann, ist es hervorragend zur Regelung und Steuerung von Prozessen geeignet. Genau wie bei den klassischen Feedback-Reglern (Link: Kurs Regelungstechnik) ist bei den meisten Fuzzy Controllern ein Feedback von Istwerten (Plural !! - wegen der Fähigkeit zu Mehrgrößenregelungen) im Regelkreis vorgesehen, aber auch Steuerungen und Feedforward-Regler, FFR, lassen sich realisieren. Bei letzteren ist, genau wie bei den FFR-Typen mit mathematischer Modellierung oder jenen mit 'Prozeßdatensatz', eine simultane 'Meldung und Quantifizierung' einer auftretenden Störung erforderlich, - nicht (zwingend) jedoch ein Feedback des Istwerts vom Strecken-Ende. Realisationen und Applikationen von Fuzzy Controllern sind inzwischen so zahlreich und vielfältig, daß auf die Literatur verwiesen werden muß. Einen guten orientierenden Einblick gibt beispielsweise das Buch: 'Fuzzy Logik, Bd.1 Technologien' von C.v.Altrock (Oldenbourg Verlag, ISBN 3-486-22673-8). Fuzzy Systeme können auch sehr gut in hybriden Systemen zusammen mit klassischen (z.B. PID-) Reglern Anwendungen finden = Reglerschaltungen! Ebenso können Fuzzy- (und KNN-) Moduln den 'intelligenten Teil' von Adaptiven Regler-Systemen übernehmen. Die industrielle Entwicklung ist auf dem Regler-Gebiet schon so weit fortgeschritten, daß viele derartige Syteme bei allen namhaften Herstellern käuflich erworben werden können, der 'Endverbraucher' sich selbst also in der Regel nicht mehr mit Entwicklungsarbeit 'herumschlagen' sollte.

Prozeßsteuerung, Datenauswertesysteme (Klassifikatoren, Mustererkennung), Expertensysteme.

Auf diesen Gebieten finden sich zahlreiche und zunehmend immer mehr Applikationen in der Literatur. Diese sollen an dieser Stelle nicht aufgezählt werden, als Einstieg werden nur drei Bücher empfohlen, deren Literaturangaben weiterhelfen können:

Verlassen der Seite


Eigene Applikationen, Lernbeispiele

1. Ein 'ultraleicht-Beispiel'

Da ich mir sehr wohl im klaren bin, daß nach den vorhergehenden Ausführungen nicht gleich jeder Leser den vollen 'Durchblick erlangt' haben wird, beginnen wir mit einem extrem einfachen Beispiel: Ich habe es 'EISEINS' getauft und es handelt sich um die fuzzylogische Realisierung der Übertragungsfunktion y = x. Erliegen Sie bitte nicht der Versuchung, dieses Beispiel als 'läppisch' abzulehnen, man kann vieles daran erlernen!

Fuzzy-Logik ist ein Regelbasiertes System, im allerersten Blickpunkt unseres Interesses steht also zunächst die Regelbasis. Diese lautet im vorliegenden Fall in generalisierter Form: Wenn der Inputwert x ist, dann ist der Outputwert y (ebenfalls gleich) x.

Für die ganzen Zahlen von 0 bis 100 könnten wir eine Regelbasis mit 100 einzelnen Regeln als 'geschlossene Problemlösung' aufstellen:

Nehmen wir als Grundgesamtheit jedoch alle Fließkommazahlen von 0,.. bis 100,.. mit z-dezimaler Genauigkeit, dann ist es mit 100 Regeln nicht mehr getan!! Aber selbst die 100 Regeln für die Ganzzahlen sind für ein simples Übertragungssystem schon eine beachtliche 'Bibliothek' zum Durchsuchen. Hier zeigt sich nun bei Anwendung von Fuzzy-Logik durch Fuzzifikation der Input- und Outputwerte in 7-9 geschickt ausgewählten Termen und durch eine Aufstellung von etwa ebensoviel Regeln, daß sich die Funktion y = x mit 'zufriedenstellender' Genauigkeit 'modellieren' läßt. Das Prozedere: Teilen wir fürs' erste unseren Wertebereich von 0 bis 100 in beispielsweise 7 gleichverteilte Dreiecksterme auf, - und dies für die Varaiblen 'ein' (=Input) und 'aus' (=Output) in gleicher Weise. Als Beispiel ist in Abb.13 das Termschema für 'ein' aufgezeigt. Dann stellen wir in userem Regeleditor die folgenden Regeln auf:

Wenn wir in unserem Fuzzy-System desweiteren eine Standard-Inferenz und eine COG-Defuzzifikation einstellen, dann ist unser Beispiel schon fertig zum Test. Wenn wir das Ergebnis eines Laufs mit einem Datensatz von Zahlen zwischen 0 und 100 graphisch darstellen, dann werden wir einen Verlauf, wie in Abb.14 dargestellt erhalten: in einem mittleren Bereich zwischen etwa 20 bis 80 ist die Ergebniskurve ganz ordenlich, aber an den Anfangs- und Endbereichen 'hängt die Funktion abgeflacht durch oder sie kippt ab'. Dieser Effekt ist eine Folge der Termgestaltung am Rand (bei der gewählten Verteilung sind im Anfangs- und Endbereich keine Überlappungen mit Vorgänger- bzw. Nachfolger-Termen mehr vorhanden). Es gibt hier zwei Lösungsmöglichkeiten: entweder man wählt die System-Umgebung breiter als den Wertebereich und beschränkt die Ausführbarkeit auf den (engeren) Wertebereich, oder man stellt Gedanken oder Experimente an, wie die Termverteilung am Rand gestaltet werden muß, damit dieser Effekt nicht auftritt. Wenn wir in unserem Beispiel am Anfang und Ende je ein 'halbes Dreieck' anfügen, dann haben wir (vgl. Abb. 15) 9 Terme mit guter Überlappung. In Abb.16 sind dann für die Varaible 'aus' noch der Einfachheit halber Singleton Terme verwendet worden (Dreiecke würden genauso funktionieren.). Abb. 12 zeigt das übliche gewählte Inferenzschema und Abb.18 das Ergebnis für dieses Fuzzy-Sytem. Zufriedenstellend?

Anmerkung: Wenn Sie im Besitz des neuen Systems WINROSA (automatischer Regelgenerator bei vorhandenen Prozeßdaten) von MIT in Aachen sind und noch nichts damit angefangen haben, können Sie ja einmal ausprobieren, ob Sie mit den oben aufgestellten Termschemata und mit einer ausreichend großen Datendatei für y = x im Bereich von 0-100 die entsprechenden Regeln automatisch generieren lassen können. Bei mir hat's ziemlich problemlos geklappt.

Zurück zu Teil (1)

Verlassen der Seite

Fortsetzung (Teil 3)


Achtung: Anhang weiter unten beachten !


Für 'Nicht-frame-ler' oder als Bild-Fullpage:

(Bildseite)

Hinweis: zurück zur Frames-Umgebung aus Vollbild-Umgebung am besten mit Browser-'Back'


Anhang:

Übersicht der am häufigsten verwendeten Operatoren

Für die Aggregation:

Minimum-Operator:

Definition: müC ( x ) = m i n [müA ( x ), müB ( x )]

Eigenschaften: Der Minimum-Operator ist ein 'UND'-Operator und gehört zu der Klasse der T-Normen. Er ist nicht justierbar. Der Operator erlaubt hohe Verarbeitungsgeschwindigkeiten und weist keinerlei Rundungsfehler bei der Verarbeitung auf.

Maximum-Operator:

Definition: müC ( x ) = m a x [müA ( x ), müB ( x )]

Eigenschaften: Der Maximum-Operator ist ein 'ODER'-Operator und gehört zu der Klasse der T-Normen. Er ist nicht justierbar. Der Operator erlaubt hohe Verarbeitungsgeschwindigkeiten und weist keine Rundungsfehler bei der Verarbeitung von ganzen Zahlen auf. Bei der Verarbeitung von Fließkommazahlen ist der Fehler sehr klein.

'Algebraisches Produkt'-Operator:

Definition: müC ( x ) = müA ( x ) * müB ( x )

Eigenschaften: Der Algebraisches Produkt-Operator ist ein 'UND'Operator und gehört zu der Klasse der T-Normen.Auf Rechnern mit Mikro-Code-Befehlen oder Hardwareimplementierung der Multiplikation ist er sehr schnell. Ansonsten ist die Geschwindigkeit geringer als beim Minimum-Operator. Dieser Operator weist Rechenfehler auf Bei Short-Integer und 8-Bit-Integer hat er häufig einen Rechenfehler von +/- 1 Bit..

'Algebraische Summe'-Operator:

Definition: müC ( x ) = 1 - [1- müA ( x )]* [1- mü B ( x )]

Eigenschaften: Der Algebraische Summe-Operator ist ein 'ODER' Operator und gehört zu der Klasse der T-CoNormen. Er ist nicht justierbar. Für die Geschwindigkeit gilt Analoges zum AlgebraischenProdukt-Operator.Dieser Operator weist Rechenfehler auf Bei Short-Integer und 8-Bit-Integer hat er h?ufig einen Rechenfehler von +/- 1 Bit..

Gamma-Operator:

Definition: müC ( x ) = [ müA ( x ) * mü B ( x )]^(1-gammma) * [1 - (1- müA ( x )) * (1- müB ( x ))]^(gamma)

Eigenschaften: Dies ist ein 'kompensatorischer' Operator, bei dem mit der Wahl des sogenannten 'Kompensationsgrades' (zwischen 0 und 1) Zwischenbereiche zwischen Min- und MaxVerhalten eingestellt werden können.

Für die Implikation:

'Algebraisches Produkt'-Operator oder Minimum- Operator

Hier wird das Kappungs- oder Stauchungsverfahren angewendet.

Für die Akkumulation:

Maximum-Operator oder Algebraische-Summe- Operator

Flächenanreihung!

Ausführlicheres über die verschiedenen Operatoren findet sich z.B. in dem Buch 'Fuzzy-Logik' von T. Tilli (siehe hinten)


Fortsetzung (Teil 3)


Quit:

Die vorliegende Instanz des Browsers löschen -> Rückkehr zur geöffneten Homepage