Specification of the Parameterizable Fuzzy Controller PFUZZ (Version 0.97)

1.0 Introduction

Since 1985 we could observe an evolution of high maschine intelligence quotient products and systems. This evolution, combined with intense computational activity involving system level fuzzy computing, creates a dramatic challenge for architects and designers of hardware systems with fuzzy logic computational structures [Kand95].

The literature in fuzzy control has been growing rapidly in recent years, making it difficult to present a comprehensive survey of the wide variety of applications that have been made [Lee90-404].

Fuzzy logic has become increasingly widespread due to its tolerance of inaccuracy and uncertainty. We can often solve problems that are too complex or even impossible for traditional quantitative techniques using a fuzzy approach of limited computational complexity. Fuzzy logic applies to several fields, such as process control, expert systems, and image recognition [Ascia95], see Appendix E.

I hope to identify which aspects of fuzzy logic render it useful in practice, and which forms of hardware implementation apear practicable as regards execution spead, hardware and development costs. My conclusions are based on a survey of literature on the hardware implementation of fuzzy logic, and on practical experience in the development of digital ASICs.

1.1 Purpose

The purpose of this paper is to establish a set of parameters to characterize digital fuzzy controllers as well as discussing these implementations in terms of hardware cost and performance based on the information gathered from the referenced publications.

The PFUZZ is a fully parameterizable fuzzy controller. It can be used as a stand-alone device or as an on-chip module for gfdbw-Bit microcontrollers that performes processing directly in hardware eliminating traditional software programming. The result is lover system cost, ease of design, enhanced performance and increased reliability. The parametrization serves to adjust the PFUZZ completely to the requirements of its application, especially in terms of overall performance, compatibility and capability. So the PFUZZ should be capable of performing any fuzzy control application. This is achieved by parametrization and full programmability of the fuzzy divisions used in the fuzzification and defuzzification logic. Additionally, the inference rules are also programmable, allowing full flexibility in any implementation.

The programming interface provides an easy-to-use interface for design development, simulation, real-time emulation, and debugging in one light-weight unit. Programmability is achieved through use of an on-chip or external MEMORY. This device stores all input and output thresholds as well as fuzzy inference rules. Values from the memory device are transfered using a gfdbw data bus under CPU control or using fast DMA transfer without any CPU distraction. So the PFUZZ can be configured to work as stand-alone device as well as coprocessor.

1.2 Target

Target object of this work is to get experience in Fuzzy-Control-techniques, -design and -optimization in respect of synthesis and hardware implentation of Fuzzy-Logic for both simple and more komplex applications. Attention is put primarily on solutions already put on the market as well as with respect on preparing ground for future projects like Neuro-Fuzzy [Rein92].

1.3 Features
  • Analog inputs with on-chip A-D converter
  • Analog outputs with on-chip D-A converter
  • Requires no external program memory
  • Operation via interrupt request, DMA or polling control
  • Active rule detection
  • Power down mode
  • Built in self test capability
1.4 Requirements

To use PFUZZ, a parameter file with all specified parameters to program the PFUZZ is necessary in the form described below. The parameter file can simply be generated by using the "Java Parametrization" tool.

1.5 References
Thomas Hill, Fuzzy-Schaltungsbuch, Franzis Verlag1994.
Jörg Kahlert, Hubert Frank, Fuzzy-Logik und Fuzzy-Control, Vieweg Verlag, 1994.
Constantin von Altrock, Fuzzy Logic, Band 1, Oldenburg Verlag, 1993.
J. Maiers, Y.S. Sherif (1985), Application of Fuzzy Set Theory. IEEE Transactions on Systems, Man and Cybernetics, 2-85, pp. 175 - 189.
Benno Biewer (1997), Fuzzy-Methoden (in german). pp. 75 - 103.
Patyra, Mlynek (1996), Fuzzy Logic, Teubner Verlag. pp. 144 - 297.
Kaoru Hirota, Kazuhiro Ozawa (1989), The Concept of Fuzzy Flip-Flop. IEEE Transactions on Systems, Man and Cybernetics, 10-89, pp. 980 - 997.
Pedrycz, Witold (1995), Fuzzy sets engineering, Boca Raton, Florida, pp. 223 - 252.
Tom J. Schwartz (1992), IEEE gets fuzzy. IEEE Expert, 6-92, pp. 73.
Andrés Jaramillo-Botero (1995), Parallel, High-Speed PC Fuzzy Controll. IEEE Micro, Chips, Software, and Applications, 12-95, pp. 63
Charles Elkan (1994), The Paradoxical Success of Fuzzy Logic. IEEE Expert, 8-94, pp. 3
Michael Reinfrank (1992), Großes Potential bei komplexen Anwendungen. Elektronik, 14-92, pp. 22 - 23.
G. Moosburger, (1992), Fuzzy-Chips: "Um Jahre voraus". Elektronik, 17-92, pp. 22-59.
Guiseppe Ascia, Vincento Catania, Biagio Giacalone, Marco Russo, Lorenzo Vita (1995), Designing for Parallel Fuzzy Computing. IEEE Micro, Chips, Software, and Applications, 12-95, 62.
Abraham Kandel (1995), The Fuzzy Boom. IEEE Micro, Chips, Software, and Applications, 8-95, 6 - 7.
Andrés Jaramillo-Botero (1995), Parallel, High-Speed PC Fuzzy Controll. IEEE Micro, Chips, Software, and Applications, 12-95, 63.
Chuen Chien Lee (1990), Fuzzy Logic in Control Systems: Fuzzy Logic Controller, Part I. IEEE Transactions on Systems, Man and Cybernetics, 1-90, 404 - 418.
K.C. Cheok, Kazuyuki Kobayashi, Sandro Scaccia, Giamberto Scaccia (1996), A Fuzzy Logic-Based Smart Automatic Windshield Wiper. IEEE Control Systems Magazine, 12-96, 28 - 34.

For more details about the ... used in the application note chapter example see the .. databook about the .. Programmable Fuzzy Controller.

1.6 General Description

This chapter provides an overview of the design issues for digital and analog fuzzy logic control circuits.

Due to the wide variety of commercially available fuzzy chips it is hard to find a chip that completely meets the requirements of different applications.

The PFUZZ can be parametrized as a mixed-signal device that combines analog input and output with a digital fuzzy processor and internal rule-base memory. This concept poses a serious challenge to a digital microcontroller, especially where the systems tend to be nonlinear. The entire control program is contained in on-chip memory with no need for external run-time software.

The gfdip analog input signals are multiplexed to an A-D converter and latched. The inputs are fuzzyfied and assigned to the selected membership functions. Output is first defuzzified, fed to gfdbw-bit, latched and multiplexed to the D-A converter to provide gfdop analog outputs.

The general cheme of fuzzy control [Cheok96]

Fuzzy-Logik besitzt echte mathematische Grundlage, um bestimmte Formen von Unsicherheiten und Unschärfen in ähnlicher Weise wie der Mensch zu erfassen und zu verarbeiten, regelbasierte Fuzzy-Systeme sind nichtlineare Systeme, es ist prinzipiell möglich, jedes regelbasierte Fuzzy-System durch eine äquivalente andere mathematische Beschreibung zu ersetzen, ebenso kann beliebige nichtlineare Funktion im Prinzip beliebig genau durch ein regelbasiertes Fuzzy-System approximiert werden, für jeden Fuzzy-Regler kann man einen äquivalenten herkömmlichen nichtlinearen Regler konstruieren, Bedeutung: alternatives Werkzeug zur Analyse und Modellierung von Systemen, Vorteil: Systeme können ohne mathematischen Formalismus in intuitiver, leicht verständlicher Weise beschrieben werden, Fuzzy-Systeme sind sehr modular, können relativ leicht erweitert werden.

Fuzzy-Systeme: statische Systeme, Input/Output-Verhalten durch eine Funktion beschrieben, um Systeme mit dynamischem Verhalten zu modellieren, sind zusätzliche Maßnahmen erforderlich, Übertragungsfunktion im allgemeinen nichtlinear (im Prinzip jede nichtlineare Funktion approximierbar, z.B. y=sin(x) im Bereich (0<=x<=1), Übetragungsverhalten programmierbar über Definition einer linguistischen Variablen in der Regelbasis.

Hardware <=> Software - Fuzzy: alle Arten von Computern können Fuzzy-Logic-Algorithmen problemlos verarbeiten, analoge Fuzzy-Chips können prinzipiell Aufgebenstellungen nicht besser lösen als digitale Computer mit Fuzzy-Algorithmen in Software.

Fuzzy-Inferenz ist Verarbeitungsvorschrift, eine vom Entwickler definierte Wissensbasis, die in Abhängigkeit von den aktuellen Eingangswerten abgearbeitet wird.

Wissensbasis: Satz unscharfer Regeln, wird vom Entwickler in Form linguistischer Variablen problemspezifisch definiert.

linguistische Variablen: Kenngröße, Wertebereich, linguistische Therme: 2 bis maximal 7 .. 9, die obere Grenze korreliert mit Anzahl der Informationseinheiten, die ein Mensch gleichzeitig in seinem Kurzzeitgedächtnis speichern kann, müssen für jeden Ein- und Ausgang passend gewählt werden.

linguistische Systembeschreibung: kommt menschlicher Intuition und Vorstellung recht nahe, dadurch Design auch komplexer Systeme wesentlich vereinfacht, ist für jeden ohne große Einarbeitung verständlich, beträchtliche Erhöhung der Qualität, Effizienz der Kommunikation, Dokumentation, Wartung,

Zugehörigkeitsfunktion: für technische Anwendungen meist trapezförmig, dreiecksförmig oder Singleton, da effiziente Abarbeitung, geringer Speicherplatzbedarf, einfache Modellierung.

Regelbasis: R11: WENN X1=A11 UND Xi=A1i DANN Y=B1

Aufstellung intuitiv verständlicher Regeln, für jeses Fuzzy-Set eine Regel:

WENN Temperatur=sehr kalt DANN Leistung=stark heizen

WENN Temperatur=kalt DANN Leistung=heizen u.s.w., bei mehr als einem Eingang (z.B. zusätzlich Temperraturänderung), müssen die Bedingungen an den Eingängen miteinander verknüpft werden:

WENN Tempeatur=kalt UND Temperraturänderung=rasch fallend DANN Leistung=stark heizen.

Verknüpfung von mehreren Eingängen: WENN Eing1=cond1 UND Eing2=cond2 DANN result

WENN Eing1=cond1 ODER Eing2=cond2 DANN result

UND-Verknüpfungen: stellen Spezialisierungsaussagen dar,

ODER-Verknüpfungen: seltener verwendet, führen zu Verallgemeinerungsaussagen (problematisch), lassen sich durch Aufpaltung in mehrere einfache Regeln realisieren.

Fuzzy-Inferenz-Schema: Fuzzifizierung der scharfen Eingangsgrößen, Aggregation der Kompatibilitätsgrade aller Prämissen, Berücksichtigung von Sicherheitsfaktoren (optional), Berechnung der Schlußfolgerungen für jede aktive Regel, Akkumulation der Einzelschlußfolgerungen zu einem Gesamtergebnis, Defuzzifizierung.

Fuzzifizierung der scharfen Eingangsgrößen: Berechnung der Übereinstimmungsgrade der aktuellen Eingangsgrößen mit den Fuzzy-Sets

aj1=match(x1, Aj1),

ai1=match(xn, Ajn), für dreieckige und trapezförmige Fuzzy-Sets Berechnung sehr schnell, für diskrete Fuzzy-Sets in Form von Wertetabellen muß passender Tabellenindex zu xi berechnet und Zugehörigkeitswert in Tabelle nachgeschlagen werden (für 8-Bit-Genauigkeit müssen 256 Byte pro Fuzzy-Set gespeichert, für 16-Bit-Genauigkeit 216*2Byte=131072 Byte, wird nur bei hoher Verarbeitungsgeschwindigkeit verwendet).

Aggregation der Prämissen: Aggregation der einzelnen Kompatibilitätsgrade aij aller Prämissen einer Regel zu einer Gesamtkompatibilität für die linke Seite der Regel, drückt den Grad der Übereinstimmung einer Regel mit den aktuellen Eingangswerten aus, bei UND-Verknüpfung kann passender UND-Operator wie z.B. Minimum-, Algebraic-Product-Operator verwendet, bei ODER-Verknüpfung kann passender ODER-Operator wie z.B. Maximum-Operator verwendet werden

aj=aggop(aj1, aj2, .., aji, .., ajn), weitere Berechnungen erfolgen nur, wenn dieser Gesamtkompatibilitätsgrad größer 0.

Berücksichtigung von Sicherheitsfaktoren, Berechnung des modifizieten Übereinstimmungsgrades Sicherheitsfaktoren sind Zahlenwerte zwischen 0 und 1, drückt das Vertrauen in diesen Wert aus, oder Wichtung für die Regel

aj*=cerop(cerj, aj), man verwendet meist den Algebraic-Product-Operator

aj*=cerj x aj, bei Hardware-Implementierung oft keine Sicherheitsfaktoren.

Berechnung von Schlußfolgerungen: Bj*=infop(aj*, Bj), man verwendet meist den Minimum- oder den Algebraic-Product-Operator.

Akkumulation der Teilschlußfolgerungen: B*=accop(B1*, B2*, .., Bj*, .., Bm*), man verwendet einen ODER-Operator, meist den Maximum- oder den Additions-Operator.

Defuzzifizierung: Berechnung der scharfen Ausgangsgröße, aus der unscharfen Menge, da man meist an Zahlenwerten interessiert ist y=(x1, x2, .., xi, .., xn)=b*=defuzz(B*).

Beeinflussung der Übertragungsfunktion: die Wissensbasis (linguistische Variablen, Regeln), das Verarbeitungsschema, die Verteilung des Eingangs-Fuzzy-Sets legt gewissermaßen die Koordinaten von Stützstellen fest und die Schwerpunkte des Ausgangs-Fuzzy-Sets bestimmen die Werte, die das Fuzzy-System an diesen Stützstellen annimmt, die Definition der linguistischen Variablen legt die Partitionierung der Wertebereiche der Ein- und Ausgänge fest.

Einfluß des Eingangs-Fuzzy-Sets auf Übertragungsfunktion: Überlappungsgrad: wenn keine Überlappung, dann immer nur eine Regel aktiv=> der Ausgangswert kann sich daher nicht ändern, je mehr Überlappungen (mehrere Regeln gleichzeitig aktiv), desto stetiger Ausgangswert, desto steiler der Anstieg, weit auseinanderliegende bewirken, daß sich die Übertragungsfunktion in diesem Bereich kaum ändert, Verschiebung: die Knickpunkte des Eingangs-Fuzzy-Sets fallen mit den Maxima der Zugehörigkeitsfunktionen zusammen.

Einfluß des Ausgangs-Fuzzy-Sets auf Übertragungsfunktion: die Schwerpunkte des Ausgangs-Fuzzy-Sets fallen mit den Dreiecksspitzen zusammen, Überlappungsgrad: je größer, desto flacher Ausgangsfunktion.

Einfluß der Regelbasis: legt die Beziehungen zwischen den Ein- und Ausgängen fest, die Änderung einer einzelnen Regel hat nur lokale Auswirkungen auf Übertragungsfunktion, durch Modifikation von mehreren Regeln kann Übertragungsfunktion stark beeinflußt werden.

Einfluß Form des Eingangs-Fuzzy-Sets: stärkerer Einfluß, bei technischen Anwendungen aus Performance-Gründen ausschließlich dreieckige oder trapezförmige Fuzzy-Sets.

Einfluß Form des Ausgangs-Fuzzy-Sets: geringer Einfluß, da entweder Schwerpunkt (Höhenmethode, Maximummethode) oder nur die Fläche und das Moment (Schwerpunkt-Methode) in Berechnung eingehen.

1.7 Fuzzy-Chips digital

Digitaler Fuzzy-Chip: basieren auf conventionellen Mikroprozessoren, die über spezielle Elemente verfügen, mit denen Fuzzy Logic abgearbeitet werden kann, Nachteil: benötigt Prozessor zur Signalvorverarbeitung, als Schnittstelle zur Peripherie, zusätzlicher Kommunikationsaufwand, hohe Kosten, da Zweiprozessor-Lösung.

vollständige Implementierung des gesamten Verarbeitungsschemas: erlaubt höchste Verarbeitungsgeschwindigkeiten (Firma OKI, Neuro-Logix), (zu aufwendig, gleiche Verarbeitungsleistung auch auf schnellen Rechnern möglich).

Microcontrollerarchitekturen mit Erweiterungen für effiziente Verabeitung von Fuzzy-Operationen (MINIMUM-, MAXIMUM-Operationen (Firma Togai, Omron), bieten kaum Vorteile, Leistung entspricht der von guten Software-Lösungen, denkbar ist, daß man bestimmte Operationen, die für einen Fuzzy-Inferenz-Algorithmus benötigt werden als Microcode bei konventionellen MC implementiert.

Fuzzy-Verarbeitungsalgorithmus in der Firmware eines MC: (Firma Inform Fuzzy-166-Chip), man spart dadurch ein teures Fuzzy-Entwicklungssystem und ein Microcontroller-Entwicklungssystem, wenn ein lauffähiger Fuzzy-Algorithmus in der Prozessor-Firmware steckt ist Entwicklung eines Fuzzy-Systems viel einfacher, Verbesserungen der Algorithmen können leicht umgesetzt werden.

Genauigkeit, Geschwindigkeit kann durch Parallelverarbeitung nahezu unbeschränkt gleichzeitig vergrößert werden, sind anwenderprogrammierbar, daher breites Spektrum abdeckbar.

1.8 Fuzzy-Chips analog

ungeeignet für Berechnungen hoher Genauigkeit (< 0.1%), bei hoher Genauigkeit keine hohen Rechenleistungen mehr möglich, keine gleichzeitige Erhöhung von Genauigkeit und Geschwindigkeit, Analogrechenschaltungen erfordern viel weniger Bauelemente aber sehr viel mehr Chipfläche, sind nicht anwenderprogrammierbar, daher nur geringe Stückzahlen möglich, analoge werden immer häufiger durch digitale Schaltungen ersetzt.

Pro: Abtasttheorem macht zeitkontinuierliche Vorverarbeitung erforderlich (Sample-Hold, Antialiasing-Filter), DSP erfordern Vorverarbeitung der Signale (Verstärken, Abtasten, Mischstufen), limitierender Faktor ist AD-Wandler (Schaltungsaufwand, Kosten steigen ab bestimmten Punkt stark an), digitales System würde bei geforderter Verarbeitungsleistung den Kostenrahmen sprengen, ab einer bestimmten Abtastfrequenz ist Realisierung einea A/D-Wandlers nur noch in Analog-Technik möglich.

Auswirkung Nichtlinearitäten: die Verfälschung der Standard-Fuzzy-Mengen durch analoge Hardware sind nur Fuzzy-Ähnlichkeiten, die keinen wesentlichen Einfluß auf das Arbeitsergebnis eines Fuzzy-Controllers haben.

Figure .. Fuzzy-ähnliche Fuzzy-Mengen durch nichtlineare Kennlinien der Transistoren

Voraussetzung für deren Einsatz: niedrige Genauigkeitsanforderungen 0.5 - 1 % Rechengenauigkeit für einzelnes Bauelement erzielbar, Rechengenauigket wird durch Anzahl der Zugehörigkeitswerte je Fuzzy-Set begrenzt (Fuzzy-Sets werden als Tabellen von Analogwerten repräsentiert), sehr hohe Geschwindigkeitsanforderungen (mehrere MHz Abtastfrequenzz bei gleichzeitig niedrigen Kosten), wenn analoge Signale verarbeitet werden sollen und Kosten für A/D- und D/A-Wandler zu hoch sind, bei großen Stückzahlen (da nicht programmierbar), Abhilfe: hybride (digital programmierbare Analog-Chips), Einsatz wenn analoger Fuzzy als stand-alone oder Hochgeschwindigkeits-Vorverarbeitungseinheit verwendet wird.

Fuzzy-Gatter (Min von beliebig vielen Eingängen), Vorteile: schneller als jeder digitale MC, erforderliche Integrationsdichte minimal, EMV-Verträglichkeit hoch, partiell fehlertolerant (Regler funktioniert beim Ausfall einzelner Elemente immer noch), Nachteil: keine Programmierbarkeit, Anwendung: wenig verbreitet, nur in Massenanwendungen, in denen das Fuzzy-System nicht geändert werde muß und analoge Peripherie vorliegt.

2.0 Description of the functional blocks

Figure .. MIN-MAX-Inferenzschema

2.1 Functional Description

The communication with the CPU is done by the DATA registers. The PFUZZ is configured by writing into the different CTL registers. In a typical fuzzy application, a fuzzy rule base is downloaded by the host into the rulebase RB memory prior to the start of any fuzzy computation. At the beginning of the fuzzy computation crisp input values, or observations, are downloaded into VALUE register. The rule data is read from a memory device. The rule base information stored in the RB memory are used to perform calculations and produce a set of crisp output values or conclusions. These values are stored in RESULT register and are read by the host.

The extension mechanism allows different wordlength to be read from and written into registers larger then the databitwidth (gpdbw) and guarenties adaptability of data transfer from between CPU and PFUZZ to different numbers of input variables. If the bitwidth is greater than the databitwidth all values beside the last value of the word are written into the EXT_OUT register, the last value is written into the target register. Just after writing into the VALUE register the calculation process starts automaticly. At the end of the calculation die PFUZZ notifies the CPU by setting the INT_OUT_1. Then the CPU reads the result of the calculation from the RESULT register.

2.1.1 Input interrupt unit
INT_IN_0: ...
INT_IN_1: ...
2.1.2 Output interrupt unit
INT_OUT_0: content of RESULT register valid.
INT_OUT_1: ...
2.1.3 DMA Transfer Unit

The DMA transfer unit performs data transfer from the rule base memory to the PFUZZ core.

The primary destination of the DMA transfer unit is to maximize sustained CPU performance by completely alleviating the CPU of burdensome data transfer duties. Read operations are performed synchronously. By each read cycle gfdbw bits of rulebase data are transfered. The DMA unit has its own bus system leading to the DMA manager DMAM. Bus sharing with the CPU is not necessary thus there are no arbitration between CPU and DMA, the CPU and DMA unit can operate independently. The DMAM manages all DMA requests with the memory manager.

If a rule data is read from memory:

  1. The DMA_ADIR register is loaded with the direction of address counting (increment or decrement)
  2. The DMA_DDIR register is loaded with the DMA data direction (LITTLE ENDIAN or BIG ENDIAN).
  3. The DMA is initialized by loading the DMA source address register with the starting address of the RB data to be transfered.
  4. The DMA_COUNT regsiter is loaded with the number of ruled to be transfered.
  5. Then the DMA transfer can be started by setting DMA_EN in the DMA CTL register.
  6. The DMA unit issues a request signal DMA_RD_RQ to the DMAM indicating that it demands access to the dedicated memory device.
  7. The DMAM asserts bus grant to indicate that the bus will be available at the end of the current bus cycle by issuing a DMA_RD_ACK signal to the PFUZZ.
  8. When the DMA_COUNT register reaches zero, the current transfer process is finished and DMA stops the operation. The signal DMA_RD_RQ is set low indicating that the DMA relinquish the mastership of the bus.
  9. For a new transfer process to begin the DMA address and count register have first to be loaded with new values.

Interrupting of RB transfer by DMA

If DMA is active it is possible to stop DMA transfer by resetting DMA_EN. The CPU is then free to use the device. After the CPU access is compelted, the DMA may be enabled again. The transfer will continue from the previous values of the word count and data address registers before having been disabled.

DMA Address and Word Count Register

The DMA unit has an assiciated counter register DMA_COUNT. After each read operation the corresponding source address generator adds the number of transfered bits to the address register and places the result in the address register DMA_ADR. In this way the address register acts as accumulator because it retaines the sum of itself and the number of transfered bits. Depending on DMA_ADIR of the DMA control register, the addition may be either positive DMA_ADIR=0 or negative DMA_ADIR=1. This repeated until the transfer end conditions are satisfied.

nice to have:

The DMA_ADR is partitioned into two distinct ans separately addressable sections, the Row Index (RI) and Column Index (CI). Each is individually resetable and incrementable/decrementable.

Additionally the DMA_ADR register generates two conditional outputs: End of Rule (EOR) and End of Data (EOD). These two outputs are used to determine the structure of the fuzzy rule set stored in memory. The EOR specifies that a destination address is loaded in the DMA_ADR register and that the address is the final part of a rule. The EOD signal also specifies a destination address and the end of a fuzzy rule.

2.1.4 Active Rule Detection

Parallelism is the most direct architectural solution to increasing the number of flips (fuzzy inferences per second). Optimization can be done also at functional level optimizing single functions calculating degrees of truth a, degrees of activation q. A preprocessing phase of inference distinguishes this architecture. This phase detects active rules (those with a positive q), schedules only those rules to be processed.

Two steps detect active rules. The first step identifies fuzzy sets with a non-null intersection for each I (input) variable. A Boolean value indicated membership in this set. The second step uses this information to determine whether a rule has a positive q by calculating the AND of the Boolean values associated with each term in the rule. When the process identifies an active rule, it inserts that rule into a queue for processing. A pipelined process detects and processes active rules, detecting the next active rules at it processes current ones.

A set of rule detection units (RDUs) can be used to detect several rules in parallel. At the same time, fuzzy computational units (FCUs) process rules in parallel. Although an RDU evaluates the state of each rule in a single clock cycle, active-rule computation requires many more cycles. To prevent an RDU from idling, several FCUs can operate in parallel for each RDU. The RDU and FCUs exchange information via register containing the active rules that have been detected but not yet processes. Each FCU works in parallel and asynchronously to process various rules. Such a structure is easy to scale, as increasing the number of processing units does not produce performance bottlenecks [Ascia95].

2.1.5 D/A unit
HSOUT0: Accept analog data (external device).
HSOUT1: Analog data valid.
2.2 Memory Layout

The fuzzification unit uses directly addressable static RAM to store input variable weights. The inference unit uses this RAM to store the results of all fuzzy inference operations.

For simplicity of the examples the system is restricted to a double-input and single-output case.

Figure .. Sample Fuzzy Set

Byte 0 Byte 15
2 9 18 30 40 0 0 0 0 0 0 0 0 0 0 0

Byte 0: Number of brakes n in the fuzzy continuum.
Byte 1: Location of the last membership for the next variable.
Byte 2: Location of the first membership for the current variable.

continued n times

The allocation of items in a 16 Byte boundary facilitates memory access speed as well as external device addressing.

Figure .. Sample Rule Set

Byte 0 Byte 15
1 5 65 3 2 1 64 58 19 130 21 23 79 0 0 0

implements the rules:

if I[1] AND I[5] THEN O[1]

if I[3] AND I[2] AND I[1] THEN O[0]

if I[58] AND I[19] THEN O[66]

if I[21] AND I[23] THEN O[15]

Fuzzy sets are stored end to end using the following rules:

  1. The first values are source values, combined using a fuzzy AND
  2. The first value greater than 64 is the destination variable. This is END OF RULE.
  3. The next values will be the source values for the next rule.
  4. The first value greater than 128 is the destination variable. This is END OF DATA.
2.3 Fuzzification

Figure .. Sample Fuzzy Set

The Input A falls in the unity area and results in a value of 255.

An Input value landing in a non-unity area, such as Input B, requires the next value for the fuzzy division to be retrieved from memory and the following formula to be calculated.

This continues until all inputs are exhausted.

Fuzzification is a transformation of the crisp data into a corresponding fuzzy set. Before the data can be fuzzified, they should be first normalized to meet the range of universe of discourse suitable for the controller input.

First, an analog-to-digital conversion needs to be performed, followed by the input data normalization. Both procedures have their own accuracy and resolution and introduce a systematic error into the input data.

Input crisp data are converted into a fuzzy singleton in an appropriate universe of discourse, Precisely the fuzzy singleton is a crisp value and hence no fuzzyness is intruduced in this case. This strategy has been widely used because of its computational simplicity.
Input crisp data are converted into a fuzzy vector based on expert knowledge of the characteristics of measurement instruments, A/D conversion and normalization. All vagueness associated with the measurement and transformation is included in the resulting fuzzy vector.
Input crisp data are randomly distributed and therefore can be converted into fuzzy vector with arbitryary shape (e.g. triangle, trapezoidal, Gaussian, ..). However, the distribution of the fuzzy vector may be determined by the parameters of the probability distribution available for the specific measurement process. This case is impractical, and therefore is rarely implemented in the hardware.

As shown in the illustration, the discrete universe of discourse is discretized into n' equal intervals. The degree of membership is quantized into m' levels. As a result, the membership function is represented by a set of perpenticular functions.


2.4 Defuzzification

This is the most time consuming phase of the algorithm. Successive break points are retrieved from ROM, multiplied by the output values stored in RAM, outputting the value given by calculating the following function.

2.5 Arithmetic

Einfluß der Rechengenauigkeit: wenn möglich immer Berechnung mit Gleichkommaarithmetik, da leistungsfähige Rechnern hardwaremäßige Unterstützung für Gleichkommaarithmetik aufweisen, bis zu 1 Mio Regeln pro Sekunde auf 486-50 bei Floating-Point-Arithmetik, ebenfalls Floating-Point-Signalprozessoren möglich, bei Ganzzahlarithmetik: oft nur simple Algorithmen implementierbar, auch komplexere möglich, wie FFT- und Digitalfilteralgorithmen, sowie eine Reihe von Bildverarbeitungsverfahren.

Ganzzahlarithmetik: 32-Bit-Floating-Point-Arithmetik hat Wertebereich von 1.0E-37 bis 1.0E+37 (1500dB), 16-Bit-Arithmetik 0 bis 65536 (96dB), 8-Bit 0 bis 256 (48dB) erzeugt beträchtliches Rauschen, bei Reglern können Limited Cycles (Schwingungen um den Arbeitspunkt) auftreten, die geringe Dynamik birgt die Gefahr des Overflows, Underflows, Fehler: treten häufig bei Umrechnung der Fuzzy-Set-Parameter von den Gleichkommawerten auf die ganzzahligen Werte, es ist daher wichtig, daß ein entworfened Fuzzy-System mit der Zahlenräpresentation ausgetestet und simuliert wird, die im eigentlichen Zielsystem auch verwendet wird.

Einschränkungen bei Ganzzahlarithmetik: lineares System, das mittels Ganzzahlarithmetik implementiert wird, stellt eher ein nichtlineares Übertragungselement dar, je geringer die Rechengenauigkeit desto größer die Abweichungen, Stabilitätsnachweise für das entworfene lineare System müssen nicht mehr für das implementierte System zutreffen.

Einschränkungen bei 8-Bit: vor allem wenn Fuzzy-Sets schmal sind (ein schmales dreieckförmiges Fuzzy-Set degeneriert rechenintern zu einem treppenförmigen Gebilde mit wenig Stufen, bei Basisbreite von zwei kann Zugehörigkeitswert nur entweder 0 oder 256 sein), das Fuzzy-System kann sich dann anders verhalten als man es aufgrund der Bildschirmanzeige erwartet, 8-Bit-Arithmetik solte daher möglichst vermieden werden, anders bei Maximum-Defuzzifizierung macht höhere Rechengenauigkeit meist keinen Sinn, bei 8-Bit-Arithmetik ist die MIN-MAX-Inferenz mit dem MINIMUM-Operator die beste Wahl mit den einfachsten Algorithmen.

Einschränkungen bei kleinen Wortlängen: je kleiner die Wortlänge, desto mehr weicht ein entworfenes System von der konkreten Implementierung ab, Gefahr von Instabilitäten wird größer, Rauschen wird größer.

2.6 Operator

Einfluß des Aggregations-Operators: sollte entsprechend der zu realisierenden Übertragungsfunktion gewählt werden, soll der Ausgang das Produkt zweier Eingänge ausgeben (z.B. P=U*I) liefert die PRUDUCT-SUM-Inferenz mit dem PRODUCT-Operator natürlich wesentlich bessere Resultate als die MIN-MAX-Inferenz oder die Verknüpfung mit dem MINIMUM-Operator.

PRODUCT-Operator: besser als MINIMUM-Operator, wenn klassische lineare Systeme exakt nachzubilden sind (PID-Regler, Mischstufen), interne Zwischenrechnungen mit doppelter Genauigkeit (min 16 Bit) erforderlich, für anspruchsvolle Aufgaben 12 Bit Rechengenauigkeit.

Verwendung PRODUCT-Operator zur Verknüpfung der Prämissen: um lineare oder quadratische Funktionen zu approximieren, Nachteil: wesentlich aufwendiger zu implementieren (HW und SW), Berechnung erfordert mehr Zeit (außer bei schneller Floatingpoint-Hardware), die Rechenfehler akkumulieren sich (schlimmer bei Verknüpfung mehrerer Größen).

2.7 Defuzzification Method

Einfluß Verarbeitungsschema: Verarbeitungsmethode hat globale Auswirkungen auf Übertragungsfunktion, Wünschenswert: Übertragungsfunktion sollte möglich unabhängig vom gewählten Verarbeitungsschema, da Inferenzmethode meist vom Anwender nicht beeinflußbar ist, besonders starke Änderungen treten auf beim Übergang auf Maximum-Methode.

Schwerpunktmethode, Center of Gravity, COG: am häufigsten eingesetzt, erlaubt bessere Anpassung an Aufgabenstellung, Vorteile: alle aktiven Regeln gehen in Berechnung ein, bei Variation der Eingangsgrößen stetiger Ausgangsgrößenverlauf, gesamter Verlauf des Ausgangs-Fuzzy-Sets B* wird bei der Berechnung mit berücksichtigt, die defuzzifizierten Werte charakterisieren das Ausgangs-Fuzzy-Set gut, Nachteile: ohne spezielle Optimierung ist Methode numerisch aufwendig, Hardwarerealisierung: aufwendig, da Multiplizierer, Dividierer erforderlich, bei nur einer Regel mit symmetrischem Ausgangs-Fuzzy-Set ist der scharfe Ausgangswert unabhängig vom Erfüllungsgrad der Regel, Berechnungsverfahren: Berechnung des Flächenschwerpunktes des Ausgangs-Fuzzy-Sets B*, Online-Integration mit der Rechteckregel, bei Offline-Integration können Stammfunktionen verwendet, ansonsten für hohe Genauigkeit Romberg-Integration.

HW-Realisierung ist mit dieser Methode am aufwendigsten, da Integrierer, Differenzierer benötigt (wesentlich größere Chipfläche).


Optimierung der Schwerpunktmethode: PRODUCT-SUM-Inferenz, Höhen-Defuzzifizierung, erlauben Reduzierung des Rechenaufwands der Online-Integration um mehrere Größenordnungen bei gleichzeitig hoher Rechengenauigkeit.

Maximum-Defuzzifizierungsmethode einfachste, schnellste Defuzzifizierungsmethode, mit MINIMUM-Operator, einfach in HW zu implementieren, Ausgangs-Fuzzy-Sets werden als Singletons modelliert (es werden deren Schwerpunkte verwendet), nur diejenige Regel wird benücksichtigt, deren Gesamtkompatibilitätsgrad am größten ist, Eigenschaften: extrem schnelle Berechnung der defizzifizierten Ausgangsgrößen, ohne Berechnung unscharfer Schlußfolgerungen, nur die Regel mit höchstem Erfüllungsgrad geht in Regel Berechnung ein, Ausgangsgröße unabhängig vom Erfüllungsgrad der maßgeblichen Regel, bei nur einer aktiven Regel ist scharfe Ausgangsgröße unabhängig vom Gesamtkompatibilitätsgrad der Regel, Vorteil: wesentlich geringerer Rechenaufwand, Nachteil: unstetiger Ausgangsgrößenverlauf, da keinerlei Interpolation stattfindet, Unterschied nur signifikant, wenn die meißten Regeln einer Regelbasis aktiv sind (nur selten der Fall) oder wenn Hardware geringe Leistungsfähigkeit, Chip: einfache Hardware-Realisierung, da keine Multiplikationen, Additionen, Divisionen, wird bei sehr einfachen, billigen Chips verwendet, Regel mit größtem Kompatibilitätsgrad wird über ein Komparatornetzwerk bestimmt, sehr einfach, arbeitet extrem schnell, Anwendung: vor allem zur Klassifizierung, für schaltende Regler.

Höhendefuzzifizierung, Height Method (Vereinfachung der Schwerpunktmethode): herangezogen werden die Schwerpunkte COGj des Ausgangs-Fuzzy-Sets B*, Eigenschaften: extrem schnelle und genaue Berechnung defuzzifizierter Ausgangsgrößen, ohne die Berechnung unscharfer Schlußfolgerungen, alle aktiven Regeln gehen in Berechnung ein, stetiger Ausgangsgrößenverlauf, gesamter Verlauf des Ausgangs-Fuzzy-Sets B* wird bei der Berechnung mit berücksichtigt obwohl er nicht mehr explizit berechnet wird, bei nur einer aktiven Regel ist scharfe Ausgangsgröße unabhängig vom Gesamtkompatibilitätsgrad der Regel, Vorteile: sehr schnelle Verarbeitung (etwas schneller als PRODUCT-SUM-Inferenz, da weniger Rechenoperationen erforderlich, bei Verarbeitung mit Ganzzahlarithmetik sind die Schwerpunkte kleinere Zahlen als die Flächen und Momente, Nachteile: identische Ergebnisse wie Schwerpunktmethode nur wenn die Flächeninhalte aller Ausgangs-Fuzzy-Sets identisch sind, ansonsten teilweise erhebliche Abweichungen, für Singletons sind Schwerpunktmethode, Höhenmethode identisch.

MIN-MAX-Inferenz: dies bedeutet Inferenzoperator: MINIMUM, Akkumulations-Operator: MAXIMUM, diese Wahl eignet sich sowohl für Hardware-Implemtierung (analog oder digital) und kann auf einfachen Microrechnern effizient in SW abgearbeitet werden, Nachteil: erzeugt Nichtlinearitäten in der Übertragungskennlinie (MINIMUM, MAXIMUM sind unstetige mathematische Funktionen), Anwendung: MIN-MAX-Inferenz mit Singletons (wenn ausschließlich Maximumsdefuzzifizierung verwendet wird).

PRODUCT-SUM-Inferenz: Inferenzoperator: PRODUCT, Akkumulations-Operator: SUM, Vorteil: produziert keine unerwünschten Nichtlinearitäten, Hardwareimplementierung aufwendiger als MIN-MAX-Inferenz (fällt nur bei analoger Realisierung ins Gewicht), Anwendung: bei geringen Anforderungen.

PRODUCT-SUM-Inferenz: Inferenzoperator infop ist Algebraic-Operator, Akkumulationsoperator accop ist Addition, Vorteile: sehr schnelle und genaue Berechnung defuzzifizierter Ausgangsgrößen b*, ohne die Berechnung unscharfer Schlußfolgerungen, man benötigt nur noch die Gesamtkompatibilitätsgrade aj* und die Kenngrößen MOM(Bj) und AREA(Bj), sehr hohe Verarbeitungsgeschwindigkeit, alle aktiven Regeln gehen in Berechnung ein, stetiger Ausgangsgrößenverlauf, gesamter Verlauf des Ausgangs-Fuzzy-Sets B* wird bei der Berechnung mit berücksichtigt obwohl er nicht mehr explizit berechnet wird, wird bei einigen Fuzzy-Chips verwendet, Nachteil: Multiplikation, Division erforderlich (nicht für simple Chips geeignet).

PRODUCT-SUM-Inferenz-Schema: Offline-Berechnung der Kenngrößen MOM(Bj) und AREA(Bj) der Fuzzy-Sets der linguistischen Ausgangsvariablen, Fuzzifizierung der scharfen Eingangsgrößen, Aggregation der Kompatibilitätsgrade aller Prämissen, Berücksichtigung des Sicherheitsfaktors cerj einer Regel und Berechnung eines modifizierten Gesamtübereinstimmungsgrades aj*, Berechnung der scharfen Ausgangsgröße b* nach obiger Formel, Anwendung: vor allem wenn Höhen- oder Schwerpuktdefuzzifizierung verwendet wird, da diese Inferenzmethode keine Nichtlinearitäten in der Übertragungsfunktion verursacht.

PRODUCT-SUM-Inferenz contra MIN-MAX-Inferenz: PRODUCT-SUM-Inferenz ist gegenüber MIN-MAX zu bevorzugen, vor allem, wenn man auch gewöhnliche Regler (P, PI, PID) exakt nachbilden will, bei MAXIMUM-Defuzzifizierung ist Unterschied bedeutungslos, da Inferenz- und Akkumulationsschritt wegfallen, andererseits: auch mit MIN-MAX-Inferenz ist eine exakte Annäherung zumindest in manchen Bereichen (deren Lage ist durch Wissensbasis festgelegt) möglich, auch: ist Wissensbasis selbst nur eine Näherung (Fehler oft größer, als der Fehler, der durch die Inferenzmethode verursacht wird).

3.0 Architecture

Figure .. ASIC Implementation [Moos92-24]

For an optimally adapted implementation it must be analized the bottleneck in the fuzzy algorithm depending on the I/O complexity.

For stand-alone applications no MC development system is necessary. This makes it attractive for many smal applications where simple and rapid development without experience of programming languages are required.

Applications with host CPU are very flexible, but they require expensive MC-development systems, programming experience, time to learn into the problem. MC become more and more affordable even for smal budget applications. Restricting design constraints for applications with host CPU could be execution speed, power consumption, hardware costs and a too komplex pinout.

The advantages of all-in-one-fuzzy-chips are programmability, a userdefined knowledge base, analogue inputs and outputs, integrated fuzzy algorithms=> no C- or assembler programms, no complex MC development systems, structured knowledge base=> user themselves can generate and test the knowledge base, low power consumption, simple pin-out by exclusively using analogue inputs and outputs.

The pin-out should not contain more than 24 pins.

The clock can be adjusted between 0 Hz .. max, the minimal cycle time is 1s.

Additional features are differentation and integration of input and output signals.

number of fuzzy rules: a high number of fuzzy rules reduces performance considerably, and autonomous background control cannot be managed without a logical RAM containing the rule base [Botero95].


Memory: Unlimited reusability of hardware by storing the membership functions on external memory increases the flexibility of the overall system.

CPU: only software implementation of the inference mechanism is possible. The representation of the fuzzy operations in microcode increases execution speed.

Figure .. Neuralogix NLX 230

Fuzzy-Micro-Controller NLX 230 von Neuralogix: entspricht mehr den Anforderungen der Mustererkennung, kein Fuzzy-Inferenzschema on-chip, auf den Kenngrößen am Eingang Bereiche festlegbar, au denen eine Regel erfüllbar sein soll, zu jeder Regel gehört fester, frei wählbarer Wert, der bei der Aktivität einer Regel gleich der Ausgangsgröße ist (Immediate-Funktion) oder vom aktuellen Wert der Ausgangsgröße subtrahiert oder dazu addiert wird (Accumulate-Funktion)=> Ausgangsgröße in Stufen änderbar, Aufbau: nur Minimum-, Maximum-Komparatoren, Register für die Zugehörigkeitsfunktionen (Gültigkeitsbereiche der Regeln), Antwortzeiten von 35 ns bei 16 Regeln.

Fuzzy-Hardware: es genügt, Fuzzy-Mengen mit linearen Flanken zu bilden.

Figure .. Standard-Fuzzy-Mengen für den HW-Entwurf

HW Realisierung der Fuzzy-Mengen: Digitalisierung von Geraden ergibt immer Treppen, deren Stufen dann cuch noch unterschiedliche Längen haben können, Optimum: Steigung von 1 (45°), bei jeder Stufe wird genau ein Wert gesetzt (Neuralogix-Chip).

Auflösungsvermögen digitaler Fuzzy-Chip: bestimmt durch die Höhe des Erfüllungsgrades.

Figure .. optimale Dreiecks-Überdeckung der Kenngröße bei 8-Bit-Auflösung für ein Auflösevermögen mit 5-Bit in der Höhe

hybride Lösungen Vorteil: zusätzlich zu MIN-, MAX-Befehl sind Plus, Minus, Multiplikation, Division verfügbar, Programmierung mit eigens dafür geschaffenen Entwicklungswerkzeugen, die gleichzeitig eine rechnergestützte Simulation ermöglichen.

Figure .. Klassifikation von Software- und Hardware-Lösungen

Software-Lösung Vorteile: Emulation der Fuzzy-Funktionalität in Software entstehen nur Kosten durch erhöhtem Speicheraufwand, Integration des Fuzzy-Codes mit dem Gesamtsystem ist einfacher als bei der Koprozessor-Lösung. Nachteile: herkömmliche Prozessoren auf boolesche Logik optimiert, während Fuzzy-Koprozessoren auf Operatoren der Fuzzy-Logic optimiert sind=> SW-Emulation meist langsamer.

Fuzzy-Logic-Unterstützung für einen Microcontroller: Vorteile: Verwendung von Fuzzy-Entwicklungssystemen mit Codegenerator möglich, diese ermöglichen Interaktives, Online-Optimieren geben den Entwicklern direkte Einflußmöglichkeiten in das System, hohe Geschwindigkeit durch Parallelverarbeitung, Nachteil: Codegeneratoren erzeugen keinen optimierten Code wie ein erfahrener Programmierer, nötig: erweiterter Befehlssatz, der Fuzzy-HW-Operatoren anspricht.

Abhängigkeit Rechenzeit: verwendetes Verfahren für Fuzzifizierung, Inferenz, Defuzzifizierung, Anzahl der Ein-, Ausgänge, Regeln, Terme, Überlappungsgrad der Zugehörigkeitsfunktionen, Aufbau der Regeln selbst.

HW versus SW: festverdrahtete Fuzzy-Algorithmen in HW erlauben wesentlich höhere Geschwindigkeiten (0.03 ms bei HW, 4.9 ms bei SW).

Alternative zu Fuzzy-HW und SW Implementierung der Fuzzy-Funktionalität in den Microcode des Prozessors, mögliche Befehle sind: Fuzzifizierung, Regelinferenz, Defuzzifizierung oder Teilfunktionen hiervon.

bisherige Strategie: optimierende Code-Generatoren.

Copyright © Andreas Tüchler