Fuzzy Logic Controller mit optimierter Speicherorganisation.
Die vorliegende Erfindung betrifft einen Fuzzy Logic Controller (Controller für unscharfe Logik) nach dem Oberbegriff des Patentanspruchs 1.
Ein Fuzzy Logic Controller der gattungsgemäßen Art ist beispielsweise aus der Veröffentlichung von Watanabe mit dem
Titel "A VLSI Fuzzy Logic Controller with Reconfigurable, Cascadable Architecture" aus dem IEEE Journal of Solid-State Circuits, Vol. 25, No. 2, April 1990, Seite 376 bis 382, bekannt. Dabei handelt es sich um einen Fuzzy Logic Controller, der gegebenenfalls einen on-chip-Speicher besitzt, wobei der on-chip-Speicher relativ viel Speicherplatz und damit Chipfläche benötigt.
Der Erfindung liegt nun die Aufgabe zugrunde, einen Fuzzy
Logic Controller anzugeben, der aufgrund seiner Logik eine optimierte Speicherorganisation gestattet und dadurch weniger Speicherplatz erforderlich ist. Diese Aufgabe wird erfindungsgemäß durch die im kennzeichnenden Teil des Patentanspruchs 1 angegebenen Merkmale gelöst.
Der mit der Erfindung erzielbare Vorteil liegt insbesondere darin, daß aufgrund des geringen Speicherbedarfs die benötigten Speicher problemlos auf den Halbleiterchips des Fuzzy
Logic Controllers realisierbar sind.
Die Ansprüche 2 bis 4 sind auf bevorzugte Ausbildungen des Fuzzy Logic Controllers gerichtet.
Die Erfindung wird nachfolgend anhand der Zeichnung näher erläutert. Dabei zeigt
Figur 1 ein Schaltbild eines erfindungsgemäßen Fuzzy Logic Controllers, Figur 2a bis 2d Eingangs- Zugehörigkeitsfunktionen, Nummern für die Eingangs-Zugehörigkeitsfunktionen und Teile von Zugehörigkeitsfunktionen, bei einem Fuzzy Logic Controller gemäß Figur 1 und Figur 3 ein Diagramm zur Darstellung des Speicherplatzbedarfs in Abhängigkeit von der Zahl der Eingänge, für verschiedene Fuzzy Controller.
In Figur 1 ist ein erfindungsgemäßer Fuzzy Logic Controller mit f = 4 Eingängen für Eingangssignale I1 ... 14 und einem Ausgang für ein Ausgangssignal 0 dargestellt, wobei die Eingänge eine Eingangsauflösung g = 5 und der Ausgang eine Ausgangsauflösung e = 5 Bit aufweisen. Der Eingang für das Signal II ist mit Eingängen einer Puffer/Dekodierschaltung BDI verbunden, die ausgangsseitig 2e = 32 Adressen für einen Eingangsspeicher I1MEM liefert. Im Eingangsspeicher I1MEM sind Nummern NI linguistischer Werte eines Eingangssignals I1, erste Teile ZL von Eingangs-Zugehörigkeitsfunktionen des Eingangssignals II und weitere Teile ZH von Eingangs-Zugehörigkeitsfunktionen des Eingangssignals II speicherbar. Die Auflösung der Teile ZL und ZH der Eingangs-Zugehörigkeitsfunktionen beträgt dabei i = 3 Bit. Die am Ausgang des Eingangsspeichers I1MEM verfügbaren Nummern NI sind dabei jeweils für einen ersten betroffenen linguistischen Wert LVL von II direkt und Nummern für weitere betroffene linguistische Werte LVH von I1 über eine Inkrementiereinrichtung INC1 Eingängen eines Nummern-Multiplexers
MUXla zuführbar und durch diesen alternativ in Abhängigkeit eines jeweiligen Multiplexersteuersignals ml auf einen jeweiligen Eingang eines Regeldecoders RDEC durchschaltbar. Beträgt der Überlappungsgrad der Eingangs-Zugehörigkeitsfunktionen von I1, wie in Figur 1 und 2a dargestellt, h = 2, so wird eine Nummer des weiteren betroffen linguistischen Wertes LVH in der Inkrementiereinrichtung INCl zu NI + 1. Der Nummern-Multiplexer MUX1a besteht in diesem Fall aus einem 1 aus 2-Multiplexer
und das Multiplexeransteuersignal ml ist in diesem Fall nur ein Bit breit. An weiteren Ausgängen des Eingangsspeichers II sind die ersten Teile ZL und h - 1 = 1 weitere Teile ZH der Eingangs-Zugehörigkeitsfunktionen verfügbar und einem Zugehörigkeitsfunktions-Multiplexer MUX1b zuführbar. Der Zugehörig- keitsfunktions-Multiplexer MUX1b besteht in diesem Fall ebenfalls aus einem 1 aus 2-Multiplexer, der ebenso durch das Multiplexersteuersignal ml ansteuerbar ist. Ein Ausgang der Zugehörigkeitsfunktions-Multiplexer MUX1b ist mit einem Eingang einer Minimum/Maximum-Schaltung MINMAX verbunden. In entsprechender Weise sind die Eingänge für die Eingangssignale 12 ... 14 über Puffer/ Dekoderschaltungen BD2 ... BD4 und Eingangsspeicherschaltungen I2MEM ... I4MEM, durch Inkrementier- Schaltungen INC2 ... INC4 und Nummern-Multiplexer MUX2a ... MUX4a mit dem Regeldekoder RDEC und durch Zugehörigkeitsfunktions-Multiplexer MUX2b ... MUX4b mit Eingängen der Minimum/ Maximum-Schaltung verbunden. Der Regeldekoder RDEC besteht meist aus einer festen Verdrahtung, kann jedoch zur Erhöhung der Flexiblität aus einem Speicher in Form eines RAMs oder PROMs etc. bestehen. Durch den Regeldekoder RDEC sind Nummern NO linguistischer Werte des Ausgangssignals in Form von Adressen für einen nachgeschalteten Ausgangsspeicher OMEM bildbar. Mit Hilfe eines Ausgangsmultiplexers MUXO ist aus 2d = 32, drei Bit breiten Speicherausgängen, durch ein fünf Bit breites Multiplexersteuersignal ms jeweils nacheinander ein drei Bit breites Ausgangssignal auswählbar und einem Eingang der Minimum/Maximum-Schaltung zuführbar. Die Speicherkapazität eines Eingangsspeichers I1MEM beträgt hier pro Eingang
2e * (g + h * i) = 25 * (3 + 2 * 3) = 288 Bit. Bei k = 8 linguistischen Werten eines Ausgangssignals beträgt die Speicherkapazität des Ausgangsspeichers OMEM k * i * 2d = 8 * 3 * 25 = 768 Bit. Wird der Regeldekoder RDEC, wie eingangs erwähnt, in Form eines Speichers implementiert, so ergibt sich die Speicherkapazität aus m * ls = 3 * 84 = 12.288 Bit, wobei m die Auflösung der k = 8 linguistischen Werte der Ausgangssignals und 1 = 8 linguistische Werte des Eingangssignals bedeuten.
Die Minimum/Maximum-Schaltung MINMAX besitzt f + 1 Eingänge
die mit Ausgängen der Zuordnungsfunktions-Multiplexer MUX1b ... MUX4b und dem Ausgang des Ausgangsmultiplexers MUXO verbunden sind und gleichzeitig Eingänge einer Minimum-Verknüpfung MIN darstellen. Ein Ausgang der Minimum-Verknüpfung MIN ist mit einem ersten Eingang einer Maximum-Verknüpfung MAX verbunden und ein Ausgangssignal der Maximum-Verknüpfung ist über ein D-Flip-Flop DFF verzögerbar und anschließend über ein erstes UND-Gatter A1 entweder einem zweiten Eingang der Maximum-Verknüpfung MAX oder über ein zweites UND-Tor A2 einer Defuzzifikationsschaltung DFUZ zuführbar. Das UND-Tor A1 ist dabei über einen Inverter I und das zweite UND-Tor direkt durch ein Defuzzifikations-Taktsignal td ansteuerbar. Die Defuzzifikationsschaltung. DFUZ arbeitet beispielsweise nach dem meist üblichen Schwerpunktverfahren und ist ausgangsseitig mit einem. Eingang eines Ausgangspuffers beschaltet, der das Ausgangssignal 0 und ein Signal 0V zur Bestätigung eines gültigen Ausgangssignals liefert. Ferner weist der erfindungsgemäße Fuzzy Logic Controller eine Schreib/Lese-Logik WL auf, die durch ein Signal M aktivierbar ist und ein Schreiben bzw. Lesen der Zugehörigkeitsfunktionen in bzw. aus den Eingangsspeichern I1MEM ... I4MEM und im Ausgangsspeicher OMEM durch einen bidirektionalen Regelbus R ermöglicht. Mit Hilfes eines Regelauswahlsignals sind Speicherbereiche der Eingangsspeicher und des Ausgangsspeichers adressierbar, wodurch Nummern NI und Teile von Zugehörigkeitsfunktionen ZL, ZH von Eingangssignalen neben Zugehörigkeitsfunktionen des Ausgangssignals auf den
Regelbus R schreib- bzw. lesbar sind. In einer Steuereinheit CTRL sind aus einem Signal IV zur Bestätigung gültiger Eingangssignale und einem Taktsignal CP die Multiplexersteuersignale m1 ... m4, das Steuersignal ms für den Ausgangsmultiplexer und das Defuzzifikations-Taktsignal td bildbar.
Sobald das Signal IV zur Bestätigung gültiger Eingangssignale vorliegt, werden aus den Signalen an den Eingängen für die
Eingangssignale I1 bis I4 am Eingang eines jeden der vier Eingangsspeicher I1MEM ... I4MEM Adressen I1A ... I4A zwischen 0 und 31 gebildet. In Figur 2a sind beispielsweise sieben linguistische Werte LV0 ... LV6 des Eingangssignals I1 mit ihren
Zugehörigkeitsfunktionen dargestellt. Bei einem Überlappungsgrad h = 2 sind, für I1 = 7, die linguistischen Variablen LV1 und LV2 betroffen und liefern jeweils einen Zugehörigkeitswert. In diesem Fall ist also der erste betroffene linguistische Wert LVL = LV1 und der weitere betroffene linguistische Wert LVH = LV2. Würde für jeden linguistischen Wert eines Eingangssignals eine zugehörige Eingangs-Zugehörigkeitsfunktion in einem eigenen Speicherbereich abgespeichert, so wären in diesem Beispiel pro Eingangssignal 2e * i * 1 = 25 * 3 * 8 =
768 Bit für einen Eingangsspeicher nötig. Beim erfindungsgemäßen Fuzzy Logic Controller ist jedoch aufgrund der speziellen Speicherorganisation, wie eingangs dargestellt, wesentlich weniger Speicherplatz erforderlich. Hierzu werden die in Figur 2a dargestellten linguistischen Werte LV0 ... LV6 den Nummern NI, wie in Figur 2b dargestellt, zugeordnet. Die Zuordnung erfolgt dabei so, daß zum Beispiel der linguistische Wert LV0, bei einem Eingangssignal I1 = 0 bis 5, die Nummern NI = 000 annimmt, weil für I1 = 0 bis 5 der Wert der Eingangs-Zugehörigkeitsfunktion ZI des linguistischen Wertes LV0 größer Null ist. In entsprechender Weise werden auch die linguistischen Werte LV1 bis LV6 den Nummern 001 ... 110 mit einer Auslösung von g = 3 Bit für ein Eingangssignal I1 = 6 bis 31 zugeordnet. Aus den Eingangs-Zugehörigkeitsfunktionen ZI des Eingangssignals II mit dem Überlappungsgrad h =.2 wird ein erster Teil ZL an Zugehörigkeitsfunktionεn des Eingangssignals I1 und h - 1 = 1 weitere Teile ZH von Zugehörigkeitsfunktionen des Eingangssignals I1 mit einer Auflösung i = 5 Bit gebildet, wobei der erste Teil ZL und der weitere Teil ZH überlappungsfrei sind. Die Werte für ZL und ZH werden dabei so zugeordnet, daß beispielsweise ein Eingangssignal I1 = 7 mit Hilfe der Zuordnungsfunktion der linguistischen Variablen LV1, die den ersten betroffenen linguistischen Wert LVL darstellt, gebildet und der Wert von beispielsweise 101 an der Adresse HA = 7 im Speicherbereich für den ersten Teil ZL, wie in Figur 2c dargestellt, eingetragen. Entsprechend wird bei der Adresse I1A = 7 mit Hilfe des linguistischen Wertes LV2, der den weiteren betroffenen linguistischen Wert LVH darstellt, beispielsweise
ein Wert 010 gebildet und, wie in Figur 2d dargestellt, einem Speicherbereich für den weiteren Teil ZH zugeordnet. In diesem Beispiel mit h = 2 ist also der Speicherbereich für den ersten Teil ZL mit den konstanten bzw. fallenden Teilen der Eingangs- Zugehörigkeitsfunktionen ZI des Eingangssignals II und der weitere Teil ZH mit den ansteigenden Teilen der Eingangs-Zugehörigkeitsfunktionen ZI des Eingangssignals II beschrieben. Im allgemeinen Fall sind bei einem Überlappungsgrad h, entsprechend h Speicherbereiche für Teile von Zugehörigkeitsfunktionen ZL, ZH vorzusehen. Um alle fh = 42 = 16 möglichen Kombinationen von betroffenen linguistischen Werten LVL, LVH auszuwerten, werden immer ein Nummern-Multiplexer, beispielsweise MUXla, und ein Zugehörigkeitsfunktions-Multiplexer, zum Beispiel MUX1b, paarweise nacheinander umgeschaltet, so daß die Nummer NI stellvertretend für den ersten betroffenen linguistischen Wert LVL und die Nummer NI + 1 stellvertretend für den weiteren betroffenen linguistischen Wert LVH zum Regeldekoder RDEC durchgeschaltet wird. Im Regeldekoder RDEC werden aus diesen Nummern, mit den im Regeldekoder gespeicherten Regeln, Nummern NO linguistischer Werte des Ausgangssignals in Form von Adressen für den Ausgangsspeicher OMEM gebildet, der dann ähnlich wie bei den Eingangsspeichern einen von 2d = 25 = 32 Ausgangswerten über den Ausgangsmultiplexer MUXO mit einer Auflösung von i = 3 der Minimum-Verknüpfung MIN zuführt. Ist der Wert aus dem Ausgangsmultiplexer MUXO kleiner als einer der Werte die aus den Zugehörigkeitsfunktions-Multiplexern MUX1b MUX4b die ebenfalls der Minimum-Verknüpfung zugeführt werden, so wird dieser Wert und im anderen Fall der jeweilige Wert der Zugehörigkeitsfunktion aus den jeweiligen Zugehörigkeitsfunktions-Multiplexern der Maximum-Verknüpfung MAX zugeführt. Hierdurch wird ein sogenanntes "Abschneiden" der jeweiligen Zugehörigkeitsfunktion bewirkt. Das Defuzzikations-Taktsignal td ist solange Null, bis die Multiplexer
MUX1a ... MUX4b durch die Multiplexersteuersignale m1 ... m4 jeweils paarweise einmal umgeschaltet wurden, wodurch das erste UND-Tor A1 geöffnet bleibt und mit Hilfe der Maximum-Verknüpfung MAX und des D-Flipflops DFF aus allen "abgeschittenen" Zugehörigkeitsfunktionen der Ausgangsvariablen für
eine der 32 Ausgangsadressen ein maximaler Wert ermittelbar ist und, sobald das Defuzzifikations-Taktsignal td = 1 wird, über das zweite UND-Tor A2 an die Defuzzifikationsschaltung DFUZ übergebbar ist. Dies wiederholt sich für insgesamt 2d = 25 = 32 Ausgangsadressen und aus diesen 32 Werten wird in der Defuzzifikationsschaltung DFUZ beispielsweise nach dem meist üblichen Schwerpunktverfahren ein Wert ermittelt der anschließend in den Ausgangspuf fer BUF übertragen wird und am Ausgang 0 zur Verfügung steht, sobald das Signal OV zur Bestätigung des gültigen Ausgangssignals vorliegt.
Würde beispielsweise das Eingangssignal II linguistische Werte besitzen, deren Eingangs-Zugehörigkeitsfunktionen einen Überlappungsgrad von h = 3 aufweisen, so wären im Eingangsspeicher I1MEM Speicherbereiche für h = 3 Teile von Eingangs-Zugehörigkeitsfunktionen, der Zugehörigkeitsfunktions-Multiplexer MUX1b in Form eines 1 aus 3-Multiplexers mit einem zwei Bit breiten Ansteuersignal ml, eine Inkrementiereinrichtung INC1, die sowohl eine Nummer NI + 1 als auch eine Nummer NI + 2 bildet und ein Nummern-Multiplexer MUX1a in Form eines 1 aus 3-Multiplexers, der ebenfalls durch ein zwei Bit breites Multiplexeransteuersignal ml ansteuerbar ist erforderlich. Es ist außerdem denkbar, daß jedes Eingangssignal unterschiedliche Überlapp pungsgrade aufweist und/oder daß die Eingangsauflösung e unterschiedlich zur Ausgangsauflösung d ist.
In Figur 3 ist abschließend in einem vergleichenden Diagramm die erforderliche Speicherkapazität S in Kilobit in Abhängigkeit von der Anzahl der Eingänge f dargestellt. Es werden dabei ein Fuzzy Memory Controller FMC, ein erfindungsgemäßer Fuzzy Logic Controller mit als Speicher inplementiertem Regeldecoder FLC + RDEC und ein erfindungsgemäßer Fuzzy Logic Controller FLC mit festverdrahtetem Regeldecoder verglichen.
Unter einem Fuzzy Memory Controller ist ein Speicher mit f * e = 4 * 5 = 20 Eingangsadressen und einer Ausgangswortbreite d = 5 Bit zu verstehen, dessen Speicherkapazität im Beispielfall S = d * 2f*e = 5 * 24*5 = etwa 5 Megabit beträgt. Selbst wenn der Regeldekoder RDEC als Speicher implementiert ist
zeigt sich, insbesondere bei einer größeren Anzahl von Eingängen, ein um einige Größenordnungen geringerer Speicherbedarf S als bei einem Fuzzy Memory Controller FMC. Ist der Regeldeko- der fest verdrahtet, so ergibt sich ein extrem geringer Speicherplatzbedarf S auch für eine große Anzahl von Eingängen, da der Speicherplatzbedarf S nur linear von der Anzahl der Eingänge abhängt. Aufgrund des geringen Speicherplatzbedarfs, insbesondere bei fest verdrahtetem Regeldekoder RDEC, sind erfindungsgemäße Fuzzy Logic Controller mit on-chip-Speichern für sich, aber auch als Zusatz für konventionelle Mehrzweck-Controller relativ leicht herstellbar.