Achtung diese Seiten werden nicht mehr wesentlich aktualisiert, dies äußert sich aber - da es sich um Grundlagen handelt - nicht im Informationsgehalt, sondern darin, daß z.B. erwähnte Softwareprodukte inzwischen aktualisiert wurden, neue Produkte hinzuzgekommen sind und andere Produkte nicht mehr existieren. Fehlerkorrekturen aufgrund von Leser-Feedback werden aber - soweit möglich - noch vorgenommen. Ernst Bratz 06.03.2003. |
direkt zum Text-Start ! (zur Sache !!)
Werbung für meinen anderen Kurs:
Vorwort des Verfassers
Fuzzy-Logik verdankt ihren inzwischen sehr hohen Bekanntheitsgrad den Erfolgen von Applikationen in der Regelungstechnik. Die meisten Anwender von Fuzzy Contollern wissen aber einerseits nicht, wie diese überhaupt funktionieren und zum anderen ist ihnen erst recht nicht bekannt, daß Fuzzy Logik ein weitaus breiteres Anwendungsfeld eröffnet als nur das 'Metier' Regelungstechnik. So ist die Bedeutung von Fuzzy Logik auf den Gebieten Muster-Erkennung, Chemometrik/Sensorik, Experten-Syteme, Prozeßleitsysteme und Qualitätskontrolle ständig im Steigen begriffen.
Die vorliegende Einführung ist der Versuch eines praktischen Anwenders, Interessierten die Funktionsweise von Fuzzy-Logik zu vermitteln. Professionelle Fuzzy-Insider bitte ich um Nachsicht, wenn die eine oder andere Formulierung oder Erklärung nicht ganz korrekt im Sinne der 'absoluten Theorie' sein sollte. Dem Anfänger unter den Lesern sei empfohlen, das ganze als orientierenden Einstieg zu nutzen und sich selbst dann weiterzubilden (vor allem auch praktisch!!). Ich bitte auch um Ihr Verständnis, wenn ich mich mangels mathematischer Kenntnisse darum 'drücke', den rein 'mathematischen Weg' zur Einführung in die Materie zu wählen, ich habe aber den Eindruck, daß ich mich da in guter Gesellschaft befinde, denn wer beherrscht schon die Höhere Mathematik von 'Mengenalgebra und Logik unscharfer Mengen und Relationen', - und selbst wenn schon, wie will er das dem 'Unbedarften' so ohne weiteres nahebringen ohne ihn beispielsweise mit umfangreichen Matrizenoperationen zu erschlagen? Hier bietet Fuzzy Logik ja in sich selbst den verständlicheren Weg der 'Linguistik' als Alternative an, der dann auch bereitwillig von allen (Nutzern, Tutoren und sogar 'Computern'!?) aufgegriffen wird, - mit dem beruhigenden Gefühl im 'Hinterkopf', daß das ganze einen seriösen mathematischen Hintergrund 'zu haben scheint'.
Für Hinweise auf Fehler, für Anregungen und Kritiken (vielleicht auch ein kleines Lob) und beliebig 'dumme' Fragen (die es nicht gibt!) bin ich sehr dankbar, denn das vermittelt zumindest das Gefühl, nicht ins Leere 'gelehrt' zu haben.
Künstliche Neuronale Netzwerke (ANN = engl. artificial neural networks oder KNN = deutsch künstliche Neuronale Netzwerke), Fuzzy-Logik (FL) und Genetische Algorithmen sind neuere KI-Methoden (KI = künstliche Intelligenz), die in breiterem Ausmaß an Bedeutung gewonnen haben. Während Genetische Algorithmen hauptsächlich Strategien zur Optimierung darstellen, sind KNN und FL Methoden, die eine 'Modellierung' eines Prozesses ohne Anwendung eines im hergebrachten Sinne formulierten mathematischen Modells erlauben . Beide Methoden erhalten als 'Input' einen Satz von veränderlichen Größen und produzieren als 'Output' das, 'was der zu beschreibende Prozeß liefern würde'. Trotz dieser gemeinsamen Eigenschaft gehen beide Methoden aber sehr unterschiedlich vor. Bei den KNNs liegt das 'Wissen' über den Vorgang im 'Haufwerk' der synaptischen Gewichtsfaktoren des Netzwerks fixiert. Diese Gewichtsfaktoren erwirbt das Netzwerksystem durch Training , d.h. durch langwieriges Lernen, Lernen und abermals Lernen von Datensätzen real gemessener Zusammenhänge (salopp: 'Einbläuen'). Es kann an dieser Stelle nicht auf die unterschiedlichen Netzwerktopologien und die verschiedenen Lernstrategien eingegangen werden, fest steht nur, daß nach Stand der Literatur bis heute noch keine vollständig plausible Korrelation zwischen Gewichtsdaten und Prozeßeigenschaften gegeben werden kann - im Rahmen der Ermittlung von Gewichtsdaten mit Hilfe Genetischer Algorithmen wird allerdings ansatzweise hiervon berichtet. Für die 'Anfänger unter den KNN-Nutzern' ist es deshalb auch immer wieder frappierend, daß sie bei beliebig vielen auf ihren Prozeß durch Training optimierten Netzwerken gleicher Topologie am Ende ganz unterschiedliche Gewichtsdatensätze erhalten und trotzdem alle diese Netze 'funktionieren'! Zusammengefaßt: KNNs erarbeiten ihr Wissen durch Erlernen, ähnlich wie wir Menschen beispielsweise eine Fremdsprache erlernen.
Also packen wir's an !
Fuzzy-Logik ist dagegen ein sogenanntes wissensbasiertes System, d.h. hier fließt vorhandenes Wissen zum Prozeß in die Verarbeitung ein. Mit den Begriffen Wissen, modellfreie Modellierung und Logik wird leider bei Natur- und Ingenieurwissenschaftlern eine nicht mehr aus den Gehirnen zu vertreibende geistige Erwartungshaltung geweckt, die dort zu einer derartigen Blockierung führt, daß man - wenn man am Ende sieht, daß das ganze funktioniert - gar nicht begriffen hat wie und warum ! Nicht einmal plausibel erscheint einem die Sache ! (Ich spreche da aus 'gemachter' Erfahrung). Man hält das ganze dann zunächst für Hexenwerkerei und Humbug, so ähnlich wie 'die Abschirmung der Bettstelle vor Erdstrahlen mit Kupfergeflecht'. Genau dies mußte der 'Erfinder' der Fuzzy-Logik bei den KI-Forschern in USA erleiden. Inzwischen ist die Sache aber, - zumindest bei den Ingenieuren - vorangetrieben durch den Sektor Steuerungs- und Regelungstechnik, so fest etabliert, daß selbst der größte Skeptiker nicht mehr daran vorbeikommt. Nur hat er leider bis dato schon sehr viel Zeit 'verpennt' ! Dabei ist doch - im Gegensatz zu KNN - bei Fuzzy-Logik das modellierende Übertragungsverhalten noch halbwegs begreiflich! Versuchen wir zunächst die Schwierigkeiten mit dem Begriff 'Wissen' in wissensbasierten Systemen vom Typ Fuzzy-Logik auszuräumen. Das hier geforderte Wissen wird oft auch - noch verwirrender - Expertenwissen genannt. Hier müssen wir akademischen Eierköpfe uns schmerzlicherweise einen Zahn ziehen lassen: der Experte ist hier nicht der 'Universitätsprofessor', denn der besitzt ja die (hier fatale) Eigenschaft, den Dingen anhand einer Modellierung, einer formalmathematischen Beschreibung und mechanistischer Betrachtungen auf den Grund gehen zu müssen (zwanghaft). Der Experte ist hier der Erfahrene im praktischen Umgang mit dem Prozeß, also eher der 'Betriebsmeister', 'Chemiewerker' o.a. Dieser Experte sagt dann etwa: " Ich weiß nicht so genau was da alles so abläuft, aber wenn die Temperatur um 2 Grad ansteigt, wird es Zeit, den Zulaufhahn von Stoff B 'ziemlich weit' zuzudrehen". Dieser Satz bringt - selbst wenn nicht so übertrieben provokant formuliert - jeden Wissenschaftler 'zur Weißglut'. Und doch, wenn er halbwegs Auto fahren kann, wie macht er das dann? Sagt er etwa: " bei 57,6 km/h und 12,65 m Abstand vom mit 40,6 km/h fahrenden Vordermann muß ich mit 7,7936 m/quadratsec Bremsverzögerung abbremsen" oder formuliert nicht eher sein 'Neurofuzzy' im Gehirn folgendes: "wenn ich etwas mehr als 50 fahre und nur noch wenig Abstand zum Vordermann habe, der noch langsamer fährt als ich, dann sollte ich daran denken, 'ziemlich saftig' zu bremsen" - und das funktioniert erstaunlicherweise (meistens ).
Im übrigen, sind wir doch einmal ehrlich: Werden nicht in einer Vielzahl von Veröffentlichungen, und Vorträgen mathematische Modellierungen 'angeboten', die die betrachteten Vorgänge zwar formalmathematisch richtig wiedergeben, die aber mechanistisch allenfalls 'plausibel' - jedoch absolut nicht 'bewiesen' sind. Sind diese Beschreibungen eines Verhaltens denn wirklich so viel besser als die 'modellfreien Systeme' ? (Ist ein 'schlechtes mathematisches Modell' wirklich besser als 'gar keins'?). Berücksichtigt man darüberhinaus noch, daß in der industriellen Anwendung an erster Stelle die gute und zuverlässige Handhabbarkeit steht, dann erkennt man zweifellos die 'Nische ' für eine Applikation der modellfreien Systeme. Fassen wir zusammen: wissensbasierte Systeme zur modellfreien Modellierung von Prozessen sind nicht dazu geeignet, den Prozeß mechanistisch zu analysieren, sondern dazu, sein Verhalten möglichst realistisch zu beschreiben. Im Gegenteil setzen wissensbasierte Systeme sogar das Vorhandensein von 'Informationen' zum Verhalten des Prozesses voraus. (nicht wissensbasierte modellfreie Syteme, wie z.B. KNNs, weisen die gleichen Eigenschaften auf, sie erwerben nur ihr 'Wissen' durch 'Lernen' von Fakten und nicht durch die Anwendung 'vorhandenen Expertenwissens'.)
Versuchen wir zunächst, die Vorgehensweise von Fuzzy-Logik vorzustellen, bevor wir Applikationen, wie Regler und Steuerungen, Klassifikatoren zur Muster-Erkennung und Fuzzy-Expertensysteme betrachten.
Das Wort Fuzzy bedeutet 'unscharf, verwischt'. Ist Fuzzy-Logik dann also eine unscharf schließende Logik? - Ja, aber das nicht alleine. Fuzzy-Logik ist zunächst einmal vor allem das 'Handling' unscharfer Werte(-mengen) mit einer hierzu geeigneten Verknüpfungslogik. Diese Logik ist zwar streng mathematisch genommen als Verknüpfung unscharfer Wertemengen mit Hilfe unscharfer Relationen unter Anwendung unterschiedlichster logischer Verknüpfungsoperatoren aufzufassen, die verwendeten Operatoren sind aber letztlich aus der klassischen mengentheoretischen Mathematik bekannt. Einfache Beispiele für derartige Operatoren sind: Minimum-, Maximum-, ODER-, und justierbare UND- und ODER-Operatoren ( Um die Vielfalt aufzuzeigen, einige Namen von Unterklassen der genannten Operatoren: Algebraic-Product-, Bounded-Differenz-, Einstein-Product-, Hamacher-Product-, Yager-Intersection- und Fuzzy-AND-Operator. Lassen Sie sich hierdurch nicht abschrecken, die 'Alltagsarbeit' beschränkt sich meistens auf einige wenige!)
Das 'Fuzzy' bezieht sich also zunächst einmal auf Werte. Variablen nehmen Werte an. Sehen wir uns ein Beispiel an: Variable Temperatur: 25,65 Grad Celsius. Wir betrachten dies als diskreten Wert. Aber genau genommen ist der Wert nur innerhalb der erreichbaren Meßgenauigkeit als diskret aufzufassen. Ein etwas schlechterer Sensor könnte uns da 25 oder 26 Grad als Wert liefern und eine 'seriöse' Anzeigeeinheit das selbe anzeigen - und nicht 3 Stellen hinter dem Komma, die es nicht gibt. Schlimmer ist es noch mit dem Temperatursinnesorgan in unseren Fingern, wir helfen uns da mit einer Kategorisierung in Temperaturbereiche, die wir durch linguistische (sprachlich formulierte) Termbezeichnungen unterscheiden: 'kaum kalt', 'lauwarm', 'ziemlich warm', 'heiß' u.a.. In ähnlicher Weise geht nun die Fuzzy-Logik vor, indem sie eine Variable (z.B. Temperatur) in einem Set von Termen darstellt , sehr häufig in der Form von Dreiecksfunktionen, wie in Abb.1 und 2 gezeigt (etwas 'wissenschaftlicher' auch Gauss-Funktionen oder andere, spezielle 'Verteilungen' - wie z.B. in Abb. 21 (Abb.-Teil 3 ) gezeigt- , in stark vereinfachter Weise auch sogenannte 'Singletons' = Stäbe von infinitesimaler Breite und mit Höhen zwischen 0 und 1, siehe z.B. Abb.8, hinscrollen). Hierbei ist die x-Achse das bekannte Wertekontinuum (z.B. Grad Celsius) der Variablen, wogegen die y-Achse einen sogenannten Zugehörigkeitswert zum betrachteten Term darstellt. Der Wert des Kontinuums der unter dem Maximum des Terms liegt ist der repräsentativste des Terms, es gehört aber eine ganze Menge von anderen Werten zum betrachteten Term, alle mit unterschiedlicher Zugehörigkeits'gewichtigkeit'. Jeder Term hat einen eigenen 'Namen' (mathematisch im Sinne einer Indizierung oder linguistisch, wie z.B. 'sehr kalt'). Beispiele für Fuzzy-Termsets sind in Abb.1 , 2,8 und 21 aufgezeigt, - rechts hinscrollen! Der Vorgang, bei dem einem diskreten Einzelwert die Zugehörigkeitswerte zu in Frage kommenden Fuzzy-Termen zugeordnet werden, wird 'Fuzzifizierung' genannt. Hiermit haben wir aber erst den ersten und noch leicht zu verstehenden Schritt des Prozedere kennengelernt. In vielen Vorträgen, die von einer Anwendung der Fuzzy-Logik berichten, werden Fuzzifizierung und eventuell noch Defuzzifizierung als wesentliche Operationen vorgestellt und die Tatsache, daß 'dazwischen' noch einiges von Wichtigkeit passiert, wird verschwiegen. Meiner Ansicht nach wäre es dann besser, überhaupt keine Erklärungsversuche zu unternehmen und nur von Erfolg oder Mißerfolg der Operation zu berichten.
Die Architektur eines kompletten Fuzzy-Systems sieht folgendermaßen aus:
Input | ||
Größe a | Größe b | Größe c |
FUZZIFIZIERUNG Für die Variablen a,b,c.... werden aus den diskreten Inputwerten die Termzugehörigkeitswerte ermittelt. |
||
Regelbasis
erstellen Alle 'Wenn....Dann's des 'Experten' werden formuliert |
||
INFERENZOPERATION Die Zugehörigkeitswerte werden einer logischen Verknüpfung zugeführt: Unscharfes Schließen mit unscharfen Wertemengen. |
||
DEFUZZIFIZIERUNG Das Ergebnis ist eine unscharfe Wertemenge als Information. Für viele Zwecke sind diskrete Ausgabewerte erforderlich, diese werden durch Defuzzifizierung erhalten. |
||
- | ||
Ergebnisgröße x | Output | Ergebnisgröße z |
Die Erstellung der im folgenden noch zu erläuternden Regelbasis ist nicht streng an die in der Tabelle aufgeführte Abfolge gebunden, bei der Entwicklung in Software-Systemen erfolgt sie aber häufig an dieser Stelle
Kern eines Fuzzy-Logik-Systems ist das Inferenzschema, wobei impliziert wird, daß die Regelbasis für den Prozeß existiert. Man kann die Regelbasis deshalb auch als notwendigen Bestandteil des Inferenzschemas auffassen. Deshalb zunächst kurz ihre Erläuterung:
Die Mathematik der Verknüpfung unscharfer Wertemengen in unscharfen Relationen mit Hilfe spezieller Logikoperatoren ist zwar grundsätzlich durchführbar, aber operativ sehr aufwendig und wenig überschaubar. Selbst in einfachen Fällen werden umfangreichere Matrizenoperationen erforderlich. Aus diesen Gründen hat sich in der Praxis überwieged und erfolgreich die sogenannte linguistische Methode unter Verwendung regelbasierter Fuzzy-Systeme durchgesetzt. Dies ist vor allem auch darin begründet, daß diese Vorgehensweise - wie sich noch herausstellen wird - sehr gut zu den Erfordernissen moderner Rechner (Computer) paßt. 'Linguistische Methode' besagt einerseits, daß die Terme qualifizierende Namen erhalten und andererseits, daß zur Beschreibung der Eigenschaften des Prozesses sprachlich formulierte Regeln vom Typus "Wenn ......, dann ......" verwendet werden (= regelbasiertes System). Beispiel: "Wenn(Druck=hoch) UND (Temperatur=mittel), dann (Ventilöffnung=mittel)" oder: "Wenn(Druck=niedrig) ODER (Temperatur=niedrig), dann (Ventilöffnung=niedrig)". Für die optimale Beschreibung eines Systems ist es wichtig, ausreichend viele und möglichst treffende Verknüpfungsregeln für alle Variablen in allen Termbereichen formulieren zu können. Wo die Regeln nur etwas unsicher (spekulativ) formuliert werden können, kann eine Gewichtung mit einem Sicherheitsfaktor (certainty factor) < 1 vorgenommen werden. Abb.3 (rechts hinscrollen) zeigt als Beispiel die Regelbasis für die im folgenden vorgestellte Auto-Abstandsregelung. Einen graphischen Überblick über die angewendeten Regeln gibt uns die sogenannte Fuzzy-Matrix, vgl. Abb.6.
Vielleicht läßt sich schon hier erahnen, daß nach erworbenem Verständnis für die ganze Vorgehensweise des linguistischen Verfahrens plausibel wird, daß eine rein mengenmathematische Operation in analoger Weise abläuft, nur nicht so transparent.
Am besten anhand eines kompletten Beispiels !
Nun aber endgültig zur Beschreibung des gesamten Inferenzschemas. Dies geschieht am verständlichsten anhand des kompletten Beispiels eines (stark vereinfachten) Auto-Abstands-Regelungssystems: Fahrzeuggeschwindigkeit und Abstand zum Vordermann seien Meßwerte und der Umfang des 'Gasgebens' sei die Stellwertausgabe - man realisiere: eine echte Mehrgrößenregelung ! Die Abbildungen Abb.1 bis 7 stammen aus einem Lauf des Flowchart-Professional-Systems von (früher) ComTec. Abb.7 (rechts hinscrollen) zeigt ein Fließbild des gesamten Prozesses: Über Gleitregler können manuell die Werte von Geschwindigkeit und Abstand eingestellt werden. In graphischen Termschema-Editoren (Geschw, Abstand) wird die Fuzzifizierung vorgenommen. Termschema-Anzeigen liefern im Runtime-Lauf eine graphische Darstellung der Fuzzifizierung. Das Inferenzschema (inkl. Regelbasis) ist im Knoten 'Gas' (if..then) implementiert und im zweiten Knoten 'Gas' ist die (unscharfe) Fuzzy-Anzeige des Ergebnisses und die Anzeige des diskreten Wertes für 'Gas' in % formuliert.
Für 'Nicht-frame-ler' oder als Bild-Fullpage:
Hinweis: zurück zur Frames-Umgebung aus Vollbild-Umgebung am besten mit Browser-'Back'
Die vorliegende Instanz des Browsers löschen -> Rückkehr zur geöffneten Homepage