WO1992022868A1 - Fuzzy microcontroller - Google Patents

Fuzzy microcontroller Download PDF

Info

Publication number
WO1992022868A1
WO1992022868A1 PCT/US1992/004691 US9204691W WO9222868A1 WO 1992022868 A1 WO1992022868 A1 WO 1992022868A1 US 9204691 W US9204691 W US 9204691W WO 9222868 A1 WO9222868 A1 WO 9222868A1
Authority
WO
WIPO (PCT)
Prior art keywords
fuzzy
rule
input
signal
minimum
Prior art date
Application number
PCT/US1992/004691
Other languages
French (fr)
Inventor
Paul M. Basehore
Original Assignee
American Neuralogix, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by American Neuralogix, Inc. filed Critical American Neuralogix, Inc.
Priority to JP5500925A priority Critical patent/JPH06511331A/en
Publication of WO1992022868A1 publication Critical patent/WO1992022868A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/02Computing arrangements based on specific mathematical models using fuzzy logic
    • G06N7/04Physical realisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L9/00Details or accessories of suction cleaners, e.g. mechanical means for controlling the suction or for effecting pulsating action; Storing devices specially adapted to suction cleaners or parts thereof; Carrying-vehicles specially adapted for suction cleaners
    • A47L9/28Installation of the electric equipment, e.g. adaptation or attachment to the suction cleaner; Controlling suction cleaners by electric means
    • A47L9/2836Installation of the electric equipment, e.g. adaptation or attachment to the suction cleaner; Controlling suction cleaners by electric means characterised by the parts which are controlled
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L9/00Details or accessories of suction cleaners, e.g. mechanical means for controlling the suction or for effecting pulsating action; Storing devices specially adapted to suction cleaners or parts thereof; Carrying-vehicles specially adapted for suction cleaners
    • A47L9/28Installation of the electric equipment, e.g. adaptation or attachment to the suction cleaner; Controlling suction cleaners by electric means
    • A47L9/2894Details related to signal transmission in suction cleaners
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R21/00Arrangements or fittings on vehicles for protecting or preventing injuries to occupants or pedestrians in case of accidents or other traffic risks
    • B60R21/01Electrical circuits for triggering passive safety arrangements, e.g. airbags, safety belt tighteners, in case of vehicle accidents or impending vehicle accidents
    • B60R21/013Electrical circuits for triggering passive safety arrangements, e.g. airbags, safety belt tighteners, in case of vehicle accidents or impending vehicle accidents including means for detecting collisions, impending collisions or roll-over
    • B60R21/0132Electrical circuits for triggering passive safety arrangements, e.g. airbags, safety belt tighteners, in case of vehicle accidents or impending vehicle accidents including means for detecting collisions, impending collisions or roll-over responsive to vehicle motion parameters, e.g. to vehicle longitudinal or transversal deceleration or speed value
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S706/00Data processing: artificial intelligence
    • Y10S706/90Fuzzy logic

Definitions

  • the present invention relates to controllers and rule-based expert control systems using fuzzy logic and parallel processing for controlling devices.
  • Control systems and computer-controlled electronic devices have historically been controlled by digital control systems. Such control systems use bi-state digital logic which requires a value of either "TRUE” or "FALSE”, so that approximations are often required of real-world control problems.
  • fuzzy logic An alternative approach to control theory, known as "fuzzy logic", was developed by L. Zadeh in 1963. Rather than evaluating the two values "TRUE” and “FALSE” as in digital logic, fuzzy terms admit to degrees of membership in multiple sets so that fuzzy rules may have a continuous, rather than step- wise, range of truth of possibility. For example, in applying fuzzy logic, a person need not strictly be included or excluded as a member from a set of "tall persons”; rather, to the extent a person may be "tall” to a greater or lesser degree, the member is assigned to the set with a degree of membership between the values of "1" and "0".
  • FIGURE IC illustrates the principle of fuzzy logic in evaluating the function illustrated in FIGURE 1A.
  • the function f(x) is approximated by a plurality of fuzzy sets 10 which overlap.
  • fuzzy logic determines for a given value x whether the value x is nearest to the center of a fuzzy set 10. If an x value is equidistant from two or more fuzzy sets, the resultant y value can be made proportional to the output values suggested by all the fuzzy sets of which the value x is a member.
  • a fuzzy number may be two dimensional, having assigned fuzzy sets and corresponding membership values.
  • fuzzy logic can operate within the relative imprecision of the real-world environment, the advantages of fuzzy logic and fuzzy set theory have become apparent in numerous areas, such as robotics, natural language recognition, the automobile and aircraft industry, artificial intelligence, etc.
  • Exemplary publications describing the theory and applications of fuzzy logic include Devi, B.B. et al. , Estimation of Fuzzy Memberships from Histograms, Information Sciences, vol. 35, 1985, pp. 43-59; Braae, M. et al., Theoretical and Linguistic Aspects of the Fuzzy Logic Controller, Automatica, vol. 15, issue 5, 1979, pp. 553-77; Ralston, P.A.S., Fuzzy Logic Control of Machining, Manufacturing Review, vol. 3, no.
  • fuzzy logic for a controller has been suggested by Ralston et al. (1990).
  • a "universe of discourse" e.g., a dimension of continuous values
  • Membership functions are then defined in step 22 which determine the way observations of the variables are expressed as fuzzy sets.
  • the fuzzy sets which are subsets of the universe of discourse, are defined by their respective membership functions.
  • a rule base is then formulated or constructed in step 24 to supply the logic that relates observations applied to the controller input to the required fuzzy control statements; a rule may have the format "IF (Alpha IS SMALL) AND (Beta IS MEDIUM) THEN Gamma IS BIG".
  • a computational unit is then designed in step 26 that uses the rule base to logically obtain control statements from the fuzzy inputs; the computational unit will provide fuzzy outputs in response to the process observations, e.g., the fuzzy inputs.
  • an action interface is defined in step 28 which will provide rules to translate fuzzy control statements into discrete, crisp values for the input variables applied to the input of the controlled device or process.
  • fuzzy logic in control systems, while promising, has encountered numerous problems.
  • the construction of membership functions may be relatively difficult: the optimum membership function is related to sensor characteristics, control responses, and other .dynamic factors.
  • the determination of the optimum membership function in some cases may only be accomplished empirically. This difficulty in determining the membership function translates into the problem of properly classifying an input into the corresponding fuzzy set.
  • fuzzy logic systems to date have only been implemented having a relatively small number of inputs.
  • a fuzzy logic microcontroller must have the capacity to handle a large number of inputs, function in accordance with a large number of rules and provide an adequate number of outputs.
  • a fuzzy logic microcontroller which has an efficient processing capacity to generate control signals in response to a large number of inputs with minimum throughput.
  • a fuzzy logic microcontroller includes several advantageous features which together provide efficient processing from a large number of inputs.
  • the inputs are time-division multiplexed (TDM) signals, for example, from sensors, which are input to a fuzzifier input selector.
  • the fuzzifier input selector separates the TDM signals and prepares the separated signals for fuzzification by the fuzzifier which determines a membership value for that input.
  • the fuzzified input signals are processed by a multipath feedforward network designed for higher processing speeds using a minimum number of components.
  • the multipath feedforward network processes the fuzzified input signals in accordance with predetermined fuzzy logic rules established in accordance with the control system output parameters.
  • the processed data is then output to the respective devices to be controlled.
  • the fuzzifier input selector demultiplexes the TDM input signals and stores the demultiplexed signal, preferably an eight (8) bit digital signal, into an input fuzzifier register corresponding to the demultiplexed signal.
  • the input fuzzifier register is also loaded with fuzzy set parameter data for fuzzification. After the input fuzzifier register is loaded with the demultiplexed signal and the corresponding fuzzy set parameter data, the demultiplexed signal undergoes fuzzification.
  • the present invention provides a fuzzification method which provides a simple technique for determining the similarity of the crisp input (e.g., the discrete demultiplexed signal undergoing fuzzification) to a fuzzy set.
  • the degree of similarity between the crisp input and the fuzzy set is defined by a membership function ⁇ .
  • the fuzzification method according to the present invention disregards the shape of the membership function ⁇ and instead determines the distance of the crisp input from a defined center of the membership function ⁇ ; the distance of the crisp input is then linearly complemented with respect to the width of the membership function ⁇ so that the resulting similarity signal is a maximum when the distance is a minimum, and, conversely, a minimum when the distance is a maximum (e.g., when the crisp input exceeds the width of the membership function ⁇ ).
  • the fuzzification process according to the present invention is simpler to implement while retaining flexibility for variations in control systems.
  • the fuzzified input signals are processed by a multipath feedforward network which processes the fuzzified input signals in accordance with predetermined fuzzy logic rules established in accordance with control system output parameters.
  • An output of the fuzzy microcontroller will be determined on the basis of its predetermined rules and the fuzzified input signals.
  • a rule determines which of the fuzzified input signals are to be compared when processing the rule.
  • the rule terms for each rule are implemented in the multipath feedforward network which determines in parallel the fuzzy input signals which represent the minimum value term in the rule.
  • a maximum comparator then compares each of the minimum value terms for each rule to determine which rule provides the optimum output given the fuzzified inputs.
  • the multipath feedforward network Since the multipath feedforward network according to the present invention is specially dedicated to determine a minimum, or maximum, rule term for each rule to be processed, the multipath feedforward network can process a plurality of selected fuzzified inputs for a given rule in parallel. Therefore, since a rule can be processed during each cycle of the network, the present invention enables extremely rapid rule processing on the order of thirty million rules per second.
  • the dedicated network can be designed for minimum use of silicon on a semiconductor chip, resulting in a lower cost for the semiconductor chip.
  • the rule which provides the optimum output in response to the selected fuzzy data is addressed from a rule memory to provide a rule output to an output register.
  • the output register operates the rule output on an existing output, e.g., by adding an offset, and outputs the resulting output signal to a device to be controlled.
  • the resulting output signal which is a defuzzified crisp signal, may also be fed back to the fuzzifier input selector to provide a feedback system.
  • the present invention provides a unique fuzzy microcontroller which enables rapid processing of a plurality of inputs using fuzzy logic and which is relatively simple and inexpensive to implement for fuzzy control systems.
  • the present invention provides a new and inexpensive system of control for applications such as smart appliances, pattern matching, sequencers, state machines and timers, automotive applications, robotics, approximate reasoning, or expert systems.
  • FIGURES 1A, IB and IC illustrate the logical distinctions between digital logic and fuzzy logic
  • FIGURE 2 discloses a conventional method for fuzzy logic in a controller
  • FIGURE 3 discloses a block diagram of the fuzzy microcontroller according to a preferred embodiment of the present invention
  • FIGURE 4 illustrates a relationship between two fuzzy sets and a crisp input
  • FIGURES 5A-5D illustrate the relationship between a fuzzy set and a range of inputs on the basis of the membership function of the fuzzy set according to the fuzzifying method of the present invention
  • FIGURE 6 discloses a block diagram of the fuzzifier input selector of FIGURE 3
  • FIGURE 7 discloses a block diagram of the similarity circuit of FIGURE 3;
  • FIGURES 8A, 8B and 8C disclose the minimum comparator of FIGURE 3;
  • FIGURE 9 discloses the maximum comparator of FIGURE 3;
  • FIGURE 10 discloses a block diagram of the output register of FIGURE 3;
  • FIGURES 11A, 11B and 11C illustrate exemplary membership functions for an application of the fuzzy microcontroller of the present invention
  • FIGURE 12 illustrates an implementation of the fuzzy microcontroller of the present invention in a master mode
  • FIGURE 13 illustrates an implementation of the fuzzy microcontroller of the present invention in a slave mode
  • FIGURE 14 illustrates a plurality of the fuzzy microcontrollers cascaded for greater processing capacity.
  • FIGURE 3 discloses a block diagram of the fuzzy microcontroller according to a preferred embodiment of the present invention and designated generally by the reference character 50.
  • the fuzzy microcontroller 50 may control a plurality of devices by outputting an output signal to a corresponding controlled device (not shown in FIG. 3).
  • the value of the output signal is determined by the rules associated with the output signal and the signals input to the fuzzy microcontroller 50.
  • each output signal is the result of a predetermined set of rules which define the action to be taken by the output signal under certain input conditions.
  • the fuzzy microcontroller 50 of the present invention compares the input signals to each of the rules, one rule at a time, to determine which rule will provide the optimum output.
  • the fuzzy microcontroller 50 includes a fuzzifier section 80 having a fuzzifier input selector 100 which receives a time-division-multiplexed (TDM) input signal from an external source.
  • the external source may be a multiplexer (not shown) which time-multiplexes a plurality of sensor signals, for example.
  • the input signal may be either analog or digital, the preferred embodiment uses an eight (8) bit digital word so that the fuzzifier input selector 100 receives a data stream of 8-bit digital input signals.
  • the fuzzifier input selector 100 receives the 8-bit TDM signal from the external multiplexer (not shown) with handshaking being performed between the external multiplexer and the control circuit 900 using a sync signal (SYNC) and an address signal (ADDR) .
  • the fuzzifier input selector 100 includes an eight-to-one demultiplexer, so that each of the 8-bit input signals are time-discrimated by the TDM signal and then latched internally.
  • the latched input signals are then prepared by being mapped to one of the input fuzzifier registers 200, so that each of the input fuzzifier registers 200 stores one of the separate 8-bit digital input signals.
  • the mapping process is predetermined, depending on the application to be performed, so that each of the 8- bit inputs are fuzzified according to the corresponding fuzzy set.
  • the number n of input fuzzifier registers 200 corresponds to the number of fuzzy sets.
  • Each of the input fuzzifier registers 200 includes data necessary to fuzzify input data according to a predetermined fuzzy set.
  • each input fuzzifier register 200 corresponds to a predetermined fuzzy set, so that the presence of sixteen input fuzzifier registers in the preferred embodiment enables the implementation of sixteen fuzzy sets.
  • each of the input fuzzifier registers 200 includes both the necessary fuzzy set parameters (see below) and the 8-bit digital input signals to be fuzzified.
  • the data from one of the input fuzzifier registers 200 is output to a similarity circuit 300, which performs the fuzzifying method of the present invention (as described below) .
  • the fuzzifying method is repeated for the contents of each of the input fuzzifier registers 200 until all the 8-bit input signals have been properly fuzzified.
  • the fuzzified input signals are output from the similarity circuit 300 and latched into fuzzifier output registers 400 sequentially. After all the input signals have been fuzzified according to the fuzzy set parameters stored in the input fuzzifier registers 200, the fuzzifier output registers 400 simultaneously output the fuzzified input signals to a minimum comparator 500.
  • the minimum comparator 500 processes in parallel the fuzzified input signals in accordance with a predetermined fuzzy logic rule. The minimum comparator 500 determines whether the fuzzy logic rule has a likelihood of being executed on the basis of the fuzzified input signals.
  • a rule may be of the form "IF (Temp IS HOT) AND (Beta IS
  • Each of the terms (e.g., "Temp IS HOT") of the rule is compared with the corresponding fuzzy input (e.g., "Temp") to determine whether there is a low or high correlation.
  • the correlations of each of the rule terms are then compared to determine the minimum level of correlation amongst the rule terms.
  • the minimum rule term (e.g., the rule term having the minimum level of correlation) represents the overall likelihood of the rule being executed on the basis of the fuzzified input signals.
  • the minimum comparator 500 determines the minimum rule term for each rule sequentially, for example, one rule at a time.
  • the rules for each output are stored in a rule memory 700, so that after one rule is processed by the minimum comparator 500, another rule is selected from the rule memory 700 to determine the minimum rule term.
  • the minimum comparator 500 outputs the minimum rule term to a maximum comparator 600 to compare the minimum rule term of the selected rule with the minimum rule terms of other corresponding rules.
  • the maximum comparator 600 compares the rules of an output signal and identifies the rule which has the maximum value for the minimum rule term.
  • the identified rule selected as having the highest overall degree of correlation and, therefore, the optimum output, is addressed from the le memory 700 and the corresponding rule output is provided to an output register 800.
  • the rule memory 700 may be, for example, a 64 x 24 bit SRAM.
  • the output register 800 modifies the existing (or initial) output on the basis of the rule output provided.
  • the modification by the output register 800 may be any logical operator (for example, increment, decrement, multiply, divide, complement, etc.).
  • the output register 800 outputs the modified output as an output signal to the device to be controlled. If a feedback system is desired, the output register 800 can be selected to also output a loop-back input signal to the fuzzifier input selector 100.
  • the output signal of the output register 800 is a TDM signal for eight (x8) output devices.
  • the eight output signals are multiplexed into a single TDM signal.
  • a control circuit 900 controls all operations of the fuzzy microcontroller 50.
  • the fuzzifying method of the present invention will now be disclosed with reference to FIGURES 4 and 5A-5D.
  • FIGURE 4 illustrates a relationship between a crisp input 38 and two arbitrarily selected and exemplary fuzzy sets 40 and 42 having membership functions A and B.
  • the term "crisp" refers to any input or output which yields a single, precise value. Since most sensors produce, and most actuators require, scalar values, the fuzzy microcontroller 50 of the present invention accepts crisp inputs and provides crisp outputs.
  • Each membership function specifies a relationship between the crisp input 38 and the corresponding fuzzy set.
  • the membership functions determine the size of the fuzzy sets 10 shown in FIGURE IC.
  • the evaluation of the conjunction of the crisp input 38 with a membership function results in a "fuzzy term": the term represents the degree ' of membership or non- membership of the crisp input 38 in the corresponding fuzzy set. Since it is a fuzzy number, the term may be used in subsequent fuzzy rules, similar to Boolean operations.
  • the membership function in a fuzzy system defines the degree of similarity between an unknown input and a known value or class (for example, the fuzzy set) .
  • a known value or class for example, the fuzzy set
  • the degree of membership ⁇ a for a crisp input A having a value X a occurs at the point where the crisp input A intersects the membership function C.
  • the membership function ⁇ may be nonlinear relative to the input dimension X, making the determination of the membership function shape, and hence the similarity determination, difficult to implement.
  • the fuzzifying method of the present invention predefines the slope of the membership function, and determines the distance between the crisp input and the center of the membership function.
  • the membership function D is defined to be linear with a predetermined slope (for example, the slope is one- to-one) .
  • the fuzzifying method measures the distance da- by subtracting the crisp input from the known center value and ignoring the sign.
  • FIGURES 5C and 5D show a membership function and its inverse, respectively.
  • the dashed lines extending from the membership function illustrate the shape of the membership function if the width was set at a maximum.
  • the width of the membership functions in FIGURES 5C and 5D are set at a value of "13"
  • the maximum width according to the preferred embodiment is "31". Therefore, if a crisp input X was outside the membership function of FIGURE 5C, the similarity value would be forced to the minimum or zero.
  • FIGURE 6 shows in detail the fuzzifier input selector 100 of FIGURE 3.
  • the TDM input signal from an external multiplexer is input to a two-to-one demultiplexer 120, which also receives a Loop Back Input signal from the output register 800 shown in FIGURE 3.
  • the two-to-one demultiplexer 120 selects either the TDM input signal or the Loop Back signal in response to an input/loop-back selector signal (I/LB) .
  • I/LB input/loop-back selector signal
  • the selected signal is then output by the two-to-one demultiplexer 120 to a latch 140, which demultiplexes the selected: TDM signal by latching each of the signals in response to a SYNC signal which is coupled also to the external multiplexer.
  • Each of the eight input signals from the TDM signal are then provided to a selector circuit 160: the selector circuit 160 selects and outputs one of the eight input signals in response to a 3-bit ADDR signal.
  • the output of the selector circuit 160 is mapped to a desired fuzzifier by a mapping circuit 180, which maps the selected input signal from the selector circuit 160 to one of the fuzzifier registers 200 in response to a FZSET signal which identifies the fuzzifier to be selected.
  • the fuzzifier input selector 100 receives a TDM input signal and a TDM loop back signal and selectively outputs the input signal to be fuzzified to the appropriate input fuzzifier registers 200.
  • the control signals I/LB, SYNC, ADDR and FZSET are each supplied by the control circuit 900 shown in FIGURE 3, which provides all necessary addressing, timing, control, and overhead functions.
  • FIGURE 7 shows the similarity circuit 300 of FIGURE 3.
  • the similarity circuit 300 determines the similarity of a crisp input to a selected fuzzy set using the fuzzifying method disclosed with reference to FIGURES 5B-5D.
  • the similarity circuit 300 receives data from one of the input fuzzifier registers 200, which includes both the crisp input data and fuzzy set parameter data.
  • each of the input fuzzifier registers 200 is a 24-bit register having 8 bits for crisp input data, 8 bits for the center location of the fuzzy set membership function, 5 bits for the width of the membership function, and 3 bits identifying the input addressed by the address signal (FIG. 6) .
  • the similarity circuit 300 receives the crisp input data and the fuzzy set parameter data for the center location and the width values.
  • the 8-bit center location is latched into a 8-bit latch 310 and the width value is latched into a 5-bit latch 320.
  • the crisp input and the center location from the 8-bit latch 310 are passed to a subtractor 330, where the absolute difference is calculated.
  • the difference value from the subtractor 330 is inputted to a comparator 340 and compared with the membership function width value stored in the 5-bit latch 320, and the result of the comparison is output to a control logic circuit 350.
  • the control logic circuit 350 also receives a polarity bit from the control circuit 900: the polarity bit determines whether the crisp input will be fuzzified with respect to the true membership function or its inverse, as shown in FIGURES 5C and 5D, respectively.
  • the control logic circuit 350 outputs a control signal to an alpha cut calculator 360 in response to the result of the comparison from the comparator 340 and the polarity bit.
  • the alpha cut calculator 360 outputs the fuzzified data from the difference of the subtractor 330 using the following logic: if the crisp data is outside the membership function (e.g., the result of comparison indicates the difference value is greater than the width of the membership function) , then the fuzzified value is forced to zero if the polarity bit is not set (e.g., membership function is "TRUE") ; however, if the polarity bit is set, then the fuzzified value is forced to zero if the crisp data is inside the membership function.
  • the alpha cut calculator 360 takes the complement of the difference value and outputs the result as a similarity value, representing the degree of membership to the fuzzy set.
  • the complement is determined as follows. According to the exemplary membership function presented in FIG.
  • the fuzzifying method of the present invention provides a simple and effective method for similarity determination between a crisp input and a fuzzy set.
  • the similarity value is output from the alpha cut calculator 360 to the appropriate one of the fuzzifier output registers 400 as shown in FIGURE 3.
  • the similarity value when referenced with its corresponding fuzzy set, is known as a fuzzy number.
  • the fuzzifying method is repeated for all the fuzzy sets.
  • a maximum of sixteen fuzzy sets are available with their parameters being stored in the input fuzzifier registers 200.
  • modifications may be made to increase or decrease the number of fuzzy sets to be used.
  • the fuzzy microcontroller 50 processes the fuzzified input signals to determine whether a selected rule provides the optimum output given the fuzzy inputs.
  • the processing is a two-step process: first, the minimum comparator 500 determines a minimum rule term of a selected rule; then, the maximum comparator 600 determines which of the rules corresponding to the desired output have the maximum value as a minimum rule term. The rule which has the maximum value for the minimum rule term is deemed the optimal output given the inputs.
  • the minimum comparator 500 receives those fuzzy inputs from the fuzzifier output registers 400 which are speci ied by the rule terms to be processed. In other words, a rule which uses only five of the sixteen fuzzy sets will only select those five corresponding fuzzy inputs for processing in the minimum comparator 500.
  • the selected fuzzy inputs are processed by a multipath feedforward network specially dedicated for fast and efficient processing in order to find a minimum rule term for a rule. If a maximum rule term is desired, then the inputs would be inverted before processing.
  • FIGURE 8A shows a block diagram of the minimum comparator 500 shown in FIGURE 3.
  • the minimum comparator 500 is a multipath feedforward network specially designed to determine a minimum value among the sixteen five-bit values asynchronously. As a result, the minimum comparator 500 determines the minimum input value within one system clock cycle.
  • the logic of the minimum comparator 500 is such that when, for example, two digital words are compared to determine which has the minimum value, the emphasis is placed on the higher order bits. As a result, if there exists a difference in a higher-order bit between the two words, the lower-bits can be disregarded. Therefore, the minimum comparator 500 first compares the higher-order bits of the values being compared, and inhibits all the lower bits when a mismatch is found.
  • the functions of the minimum comparator 500 will become more apparent with the following description of the minimum comparator 500 with reference to FIGURES 8A, 8B and 8C.
  • the minimum comparator 500 receives the sixteen 5-bit (a total of eighty bits) fuzzified inputs from the fuzzifier output registers 400 and inputs each fuzzified input (IN) to a corresponding minimizing element 510, which also receives a feedback input (FB) from a NAND tree 550.
  • the NAND tree 550 determines whether, for a given significant bit, any of the outputs from the minimizing element 510 have a different value for the corresponding significant bit. If there are any outputs which do not have the same value for the corresponding significant bit, the minimizing element 510 outputs a bit suppression signal as the feedback input (FB) to suppress the analysis of lower order bits in the minimizing element 510.
  • the result is inverted by an inverter 580 to obtain the minimum.
  • Each minimizing element 510 receives the 5-bit fuzzified input (IN) , the 5-bit feedback input (FB) and a disable input (DIS) .
  • FIGURE 8B discloses a minimizing element 510 from FIGURE 8A.
  • the disable signal (DIS) is input to a NAND gate G5 512, NAND gate G4 514, NAND gate G3 516, NAND gate G2 518 and NAND gate Gl 520.
  • the fuzzy signal IN is input to . inverters 522, 524, 526, 528 and 530, whereby the inverter 522 receives the most significant bit (MSB) (also referred to as "Bit 5") and the inverter 530 receives the least significant bit (LSB) (also referred to as "Bit 1") of the fuzzy signal IN.
  • MSB most significant bit
  • LSB least significant bit
  • Bits 5, 4, 3 and 2 of the fuzzy signal IN are also input to the NAND gate G6 532, NAND gate G7 534, NAND gate G8 536, and NAND gate G9 538, respectively.
  • the NAND gate G6 532, NAND gate G7 534, NAND gate G8 536 and NAND gate G9 538 also receive the four most significant bits of the feedback signal FB, respectively, whereby the NAND gate G6 532 receives the MSB.
  • the outputs of the inverter 522, inverter 524, inverter 526, inverter 528 and inverter 530 are supplied to the NAND gate G5 512, NAND gate G4 514, NAND gate G3 516, NAND gate G2 518 and NAND gate Gl 520, respectively.
  • the output of the NAND gate G6 532 is supplied to the NAND gate G4 514, NAND gate G3 516, NAND gate G2 518 and NAND gate Gl 520; the output of the NAND gate G7 534 is supplied to the NAND gate G3 516, NAND gate G2 518 and the NAND gate Gl 520; the output of the NAND gate G8 536 is supplied to the NAND gate G2 518 and the NAND gate Gl 520; and the output of the NAND gate G9 538 is supplied to the NAND gate Gl 520.
  • the outputs of the NAND gate G5 512, NAND gate G4 514, NAND gate G3 516, NAND gate G2 518 and NAND gate Gl 520 are combined and supplied to the NAND tree 550.
  • FIGURE 8C shows in further detail the NAND tree 550 disclosed in FIGURE 8A.
  • the NAND tree 550 comprises a NAND gate 15 552, a NAND gate 14 554, a NAND gate 13 556, a NAND gate 12 558 and a NAND gate II 560.
  • the NAND gate 15 552 receives all the MSBs (also referred to as "Bit 5") from all the sixteen minimum elements 510 shown in FIGURE 8A.
  • the NAND gate 14 554 similarly receives Bit 4 from all the sixteen minimum elements 510; the NAND gate 13 556 receives Bit 3; the NAND gate 12 558 receives Bit 2; and the NAND gate II 560 receives the LSBs Bit 1.
  • the outputs of the NAND gates 552, 554, 556, 558 and 560 are combined and output as the feedback signal FB, the output of the NAND gate 15 552 representing the MSB and the output of the NAND gate II 560 representing the LSB of the feedback signal FB.
  • Each gate should have a uniform propagation delay; thus, the following time references (tn) refer to the increments in time caused by gate propagation delays.
  • the MSB of the input IN will be referred to as Bit 5
  • the LSB will be referred to as Bit 1
  • the intermediate bits will be referred to herein as Bits 4, 3, and 2, respectively.
  • minimum element A and minimum element B receive inputs A and B, respectively, referred to as minimum element A and minimum element B.
  • the input A has a fuzzy value of 18 decimal (10010 binary) and the input B has a fuzzy value of 19 decimal (10011 binary) .
  • the inputs A and B are simultaneously applied to the two minimum elements A and B at time to, and all other minimum elements 510 are disabled by their respective disable (DIS) signal.
  • Bit 5 of both inputs A and B is a logic "1", so that the output of the inverter 522 in both minimum elements A and B will be "0" at time tl.
  • the corresponding NAND gates (G5) 512 will output a "1" at time t2.
  • These two outputs are applied to the NAND gate 15 552 shown on FIGURE 8C, which outputs a "0" at time t3 as the MSB of the FB signal, as shown in TABLE 1.
  • the Bit 5 of the FB signal and Bit 5 (logic 1 for inputs A and B) of the IN signal are applied to the NAND gates (G6) 532 for both minimum elements A and B, causing the NAND gates (G6) 532 to output a "1" at time t4.
  • the output of NAND gates (G6) 532 enables the NAND gates (G4) 514 for both minimum elements A and B, each of which output Bit 4 (logic 0 for inputs A and B) of the corresponding input signal IN at time t5.
  • the outputs of the NAND gates (G4) 514 are input to the NAND gate 14 554 in FIGURE 8C, which outputs a "1" at time t6 as Bit 4 of the FB signal, as shown in TABLE 1.
  • the Bit 4 of the FB signal and Bit 4 of the IN signal are applied to the NAND gates (G7) 534 for both minimum elements A and B, causing the NAND gates (G7) to output a "1" at time t7, thereby enabling the NAND gates (G3) 516 for both minimum elements A and B.
  • the NAND gates (G3) 516 both output Bit 3 (logic 0 for inputs A and B) at time t8.
  • the outputs of the NAND gates (G3) are input to the NAND gate 13 556 in FIGURE 8C, which outputs a "1" at time t9 as Bit 3 of the FB signal, as shown in TABLE 1.
  • the Bit 3 of the FB signal and Bit 3 of the IN signal are applied to the NAND gates (G8) 536 for both minimum elements A and B, causing the NAND gates (G8) to output a "1" at time tlO, thereby enabling the NAND gates (G2) 518 for both minimum elements A and B.
  • the NAND gates (G2) 518 both output Bit 2 (logic 1 for inputs A and B) at time til.
  • the outputs of the NAND gates (G2) are input to the NAND gate 12 558 in FIGURE 8C, which outputs a "0" at time tl2 as Bit 2 of the FB signal, as shown in TABLE 1.
  • the Bit 2 of the FB signal and Bit 2 of the IN signal are applied to the NAND gates (G8) 536 for both minimum elements A and B, causing the NAND gates (G8) to output a "1" at time tl3, thereby enabling the NAND gates (Gl) 520 for both minimum elements A and B.
  • the NAND gates (Gl) 520 both output Bit 1 (logic 0 for input A; logic 1 for input B) at time tl4.
  • the outputs of the NAND gates (Gl) are input to the NAND gate II 560 in FIGURE 8C, which outputs a "1" at time tl5 as Bit 1 of the FB signal, as shown in TABLE 1.
  • the maximum time interval to determine the minimum will be when the difference between the inputs is found solely in the least significant Bit 1.
  • the time interval for determining the minimum is not affected if more than two inputs are processed. Rather, since the time interval to determine the minimum is dependent on the propagation delay, the use of semiconductor devices having small propagation delays enable a minimum determination, even with all sixteen inputs, within 30-40 nanoseconds. Thus, the minimum value can be quickly determined, regardless of the number of inputs.
  • the minimum determination time interval is even smaller if higher significant bits are different, since the lower order bits are automatically suppressed.
  • the following example illustrates how the time interval for determining the minimum value is reduced.
  • two of the minimum elements 510 receive inputs C and D, respectively, referred to as minimum element C and minimum element D.
  • the input C has a fuzzy value of 11010 binary and the input D has a fuzzy value of 10000 binary.
  • the response of the minimum comparator 500 is identical to the response with inputs A and B, as described above, up to time t5, where the NAND gates (G4) 514 are enabled and Bit 4 for the respective signals IN (logic 1 for C; logic 0 for D) are output to the
  • NAND gate 14 554 in FIGURE 8C Since the Bit 4 for signals C and D are different, the NAND gate 14 554 outputs a "1" at time t6 as Bit 4 of the FB signal. At time t6. Bit 4 of the FB signal and Bit 4 of the IN signal are applied to the NAND gates (G7) 534 for both minimum elements C and D.
  • Bit 4 of the FB signal is a "1"
  • Bit 4 of the input signal C (IN) is a “1”
  • the NAND gate (G7) 534 for minimum element C outputs a "0" at time t7, which disables the NAND gates (G3, G2 and Gl) 516, 518 and 520 by forcing their output to a "1" at time t8.
  • the NAND gate 13 556, the NAND gate 12 558 and the NAND gate II 560 receive the respective inputs from the NAND gates of minimum elements C and D shown in FIGURE 8B.
  • the outputs from the NAND gates of minimum element C are "1" and the outputs from the NAND gates of minimum element D are "0", so that the NAND gate 13 556, the NAND gate 12 558 and the NAND gate II 560 each output a "1" as the respective bits of the FB signal at time t9.
  • the minimum signal MIN 10000, which is the value of input D. Table 2 summarizes the process of finding the minimum between inputs C and D.
  • the minimum between inputs C and D was found at time t9, which represents the time duration of nine propagation delays within the minimizing element 510 and the NAND tree 550.
  • the stabilization time of the minimum comparator 500 will be a maximum of time tl5, and may be reduced depending on the different input conditions.
  • the minimum comparator 500 may also be implemented in the form of a neural network having feedback capabilities.
  • a three-layer neural network may be implemented, wherein the first layer includes the functions of the NAND gate G5 512, NAND gate G4 514, NAND gate G3 516, NAND gate G2 518 and NAND gate Gl 520 and the corresponding inverters 522, 524, 526, 528 and 530.
  • the second neural layer would include the functions of the NAND tree 550 as shown in FIGURE 8C
  • the third neural layer would include the functions of the NAND gate G6 532, NAND gate G7 534, NAND gate G8 536 and NAND gate G9 538.
  • the output signal FB will actually be output from the middle layer as described above, and that the third layer would feed back to the first layer to enable or inhibit inputs.
  • the multipath feedforward network of the minimum comparator 500 has been designed with the objectives of providing the fastest determination of a minimum/maximum using the least complex circuitry to minimize cost. Since the multipath feedforward network according to the present invention is specially dedicated to determine a minimum, or maximum, rule term for each rule to be processed, the multipath feedforward network can process a plurality of selected fuzzified inputs for a given rule in parallel. In addition, the multipath feedforward network operates asynchronously, without the necessity of an external clock. Therefore, since a rule can be processed during each cycle of the network, the present invention enables extremely .rapid rule processing on the order of thirty million rules per second. In addition, the dedicated network can be designed using simple logic elements* for minimum use of silicon on a semiconductor chip, resulting in a lower cost for the semiconductor chip.
  • FIGURE 9 discloses the maximum comparator 600 of FIGURE 3.
  • the MIN RULE TERM signal is output from the minimum comparator 500 as the minimum rule term for a given processed rule.
  • the processed rule is identified by the signal Rule, which is input from the control circuit 900.
  • the MIN RULE TERM signal is input to a maximum comparator circuit 620, which compares the MIN RULE TERM signal with a previously stored Max-of-Min signal from a delay flip-flop 640. If the MIN RULE TERM is greater than the Max-of-Min signal, the maximum comparator circuit 620 outputs a strobe signal (Stb) .
  • Stb strobe signal
  • the delay flip-flop 640 When the strobe signal is received, the delay flip-flop 640 is updated with the MIN RULE TERM which becomes the new Max-of-Min. Also, the Rule which corresponds to the new Max-of-Min is stored in a delay flip-flop 660. After all the rules for a given output have been processed, the delay flip-flop 660 outputs to the output register 800 a Max Rule signal which represents the rule having the optimum output for the fuzzy input data.
  • FIGURE 10 discloses a block diagram of the output register 800 of FIGURE 3.
  • the MAX RULE signal from the maximum comparator 600 is supplied to the rule memory 700 in order to access the action value signal ACTION which provides the offset to be added to the existing output signal.
  • the signal ACTION is input to an adder 820 and added to a PREVIOUS ACTION signal to obtain a NEXT ACTION signal.
  • the NEXT ACTION signal is output to an accumulator 840, which latches the NEXT ACTION signal for the appropriate output.
  • the output of the accumulator 840 is fed back and selected in response to a SELECT signal by a selector 860 for modification of the subsequent output. After the accumulator 840 has latched the
  • NEXT ACTION signal for all eight outputs, the eight outputs are time-division multiplexed by the time division multiplexer 880.
  • the resulting 8-bit TDM signal is output, for example, to eight output devices having the capability to demultiplex the TDM signal.
  • the 8-bit TDM signal from the time division multiplexer 880 may also be fed back to the fuzzifier input selector 100 as the Loop Back Input signal as shown in FIGURE 3.
  • CLK are supplied by the control circuit 900, and one skilled in the art will appreciate the application of these signals to the output register 800 in order to obtain the time-division-multiplexed output signal from the time division multiplexer 880.
  • the fuzzy microcontroller of the present invention can be implemented on a VLSI chip and used in a stand-alone master-control mode or may supplant a microprocessor implementation.
  • FIGURE 12 illustrates an implementation of the fuzzy microcontroller 50 in a master mode.
  • a programmable memory such as the EEPROM 52 may store all necessary configuration data, such as fuzzy parameter data and rule data.
  • An exemplary EEPROM would be the F93CSXX series from National Semiconductor, Inc., Sunnyvale, California.
  • the master mode is set by setting the M/S terminal of the fuzzy microcontroller 50 to ' +5 volts and initiating by setting the RST terminal.
  • the fuzzy microcontroller 50 outputs a chip select signal from the terminal CS, serial address data from the terminal DO, and a clock signal from the terminal CK, and receives serial data via a terminal Dl.
  • the protocol between the fuzzy microcontroller 50 and the EEPROM 52 may be, for example, the specification requirements of the 93C56 series devices from National Semiconductor, the requirements of which are incorporated herein by reference.
  • the fuzzy microcontroller of the present invention may be implemented in a slave mode for the purposes of downloading configuration data, as shown in FIGURE 13.
  • the slave mode in the fuzzy microcontroller 50 is set by grounding the M/_3 terminal to zero volts; as a result, the terminals CS and CK are responsive to signals externally supplied by a microprocessor
  • the fuzzy microcontroller of the present invention provides efficient control using fuzzy logic, with high processing rates on the order of 30 million rules/second.
  • the fuzzy microcontroller also provides an efficient method for compressing * input and output data by time division multiplexing. Further, the fuzzy microcontroller provides a fuzzifying arrangement (apparatus and method) which is easy to implement by avoiding the necessity of determining a shape of a membership function.
  • the fuzzy microcontroller provides a multipath feedforward network which asynchronously determines a minimum rule term using a minimum amount of circuitry, thereby minimizing space on an integrated circuit and reducing cost.
  • the fuzzy microcontroller provides a novel method for determining the optimum rule among a set of rules for an output, in response to fuzzified inputs.
  • FIGURES 11A, 11B and 11C illustrate an application of the fuzzy microcontroller in controlling a vacuum cleaner.
  • FIGURES HA, 11B and lie each show an input to the fuzzy microcontroller along the X axis (e.g., pressure, dirt and texture), along with a plurality of fuzzifiers for classifying the input data.
  • the vacuum pressure input may be in one or more of five fuzzy sets: very low, low, medium, high or very high.
  • the inputs for dirt and texture have their respective fuzzy sets as shown in FIGURES 11B and 11C, respectively.
  • each output will have a number of associated rules to be applied, depending on the inputs pressure (P) , dirt (D) and texture (T) .
  • P inputs pressure
  • D dirt
  • T texture
  • Exemplary rules for the VACUUM CONTROL, BEATER HEIGHT and the BEATER SPEED are shown in Tables 3, 4 and 5, respectively.
  • VACUUM CLEANER EXAMPLE VACUUM CONTROL RULES
  • the fuzzy microcontroller inputs the crisp inputs for pressure dirt and texture, and thereafter fuzzifies the data in accordance with the membership functions shown in FIGURES llA-llC.
  • the fuzzy microcontroller determines the minimum rule term for each rule, and then determines the maximum minimum rule for each output. For example, assuming the input values for pressure, dirt and texture were "8", “40" and "5", respectively, the minimum comparator 500 and maximum comparator 600 would provide the following results as shown in Table 6 for the VACUUM CONTROL output.
  • the method of fuzzifying a crisp input may be easily implemented in an IC chip by determining the distance between the crisp input and the center of the respective membership function; if the distance is less than the width of the membership function, then the distance value is complemented to determine the alpha cut, or the membership value of the crisp input with respect to that fuzzy set. Since the shape of the membership function for the fuzzy set need not be determined, the fuzzifying method of the present invention can be easily implemented, which results in substantial cost savings in design development and circuit implementation.
  • the fuzzifier of the present invention includes an input control processor, a fuzzification interface, a programmable rule base, programmable or otherwise variable decision-making logic, a defuzzification interface, a configurable feed back path, an output control processor, or peripheral pre- and post- processing circuitry.
  • membership function shapes of the preferred embodiment had a unitary, one-to-one slope, resembling an isosceles triangle
  • membership function shapes such as a scalene triangle
  • the method of expanding input signals for mapping to a fuzzy set, and compressing output signals by time-division multiplexing enables the fuzzy control of a plurality of outputs on the basis of a corresponding plurality of inputs, thereby providing a more efficient control system.
  • the fuzzy microcontroller of the present invention is not limited to digital time- division multiplexed input and output signals. Rather, the present invention may be varied to include: singular or multiple inputs; bit serial or parallel formatted input data; multiplexed or non- multiplexed inputs; any means to connect the inputs to a selected fuzzification circuit; digital inputs having any number of bits of resolution; analog or digital inputs, or both mixed.
  • the fuzzy microcontroller of the present invention can be implemented in a cascaded arrangement, as shown in FIGURE 14 in order to provide greater processing capacity for a larger number of inputs, outputs, or both.
  • FIGURE 14 the fuzzy microcontroller of the present invention can be implemented in a cascaded arrangement, as shown in FIGURE 14 in order to provide greater processing capacity for a larger number of inputs, outputs, or both.
  • Those skilled in the art will realize the technique of controlling a plurality of the fuzzy microcontrollers in such a cascaded arrangement.
  • the programmable rule base for an output can include, but not be limited to have any number of rules, any number of terms in a rule, the use of any or all logical functions as sentence connective operators, a permanent or volatile rule memory with on-chip or external rule storage.

Abstract

An apparatus (50) and method using fuzzy logic controls a plurality of devices in response to inputs. Time-divison-multiplexed input signals are demultiplexed and fuzzified using fuzzy sets. Crisp input (32) are fuzzified by determining the distance of each crisp input from a center of a membership function and linearly complementing the result with respect to the width of the membership function. Fuzzified input signals are input to an asynchronous multipath feedforward network which determines a minimum rule term for each rule processed. The network processes fuzzified input signals in parallel and determines the minimum rule term. A maximum comparator circuit (600) compares the minimum rule term of each rule to determine the rule which provides the optimum output. An output register (800) defuzzifies the output signal, time-division-multiplexes the output signals, provides feedback to the fuzzifier, and outputs the multiplexed output signals to the controlled devices.

Description

FUZZY MICROCONTROLLER
BACKGROUND OF THE INVENTION
Field of the Invention:
The present invention relates to controllers and rule-based expert control systems using fuzzy logic and parallel processing for controlling devices.
Description of the Related Art:
Control systems and computer-controlled electronic devices have historically been controlled by digital control systems. Such control systems use bi-state digital logic which requires a value of either "TRUE" or "FALSE", so that approximations are often required of real-world control problems. For example, an input/output relationship y = f(x) would be specified either as a mathematical function or as a series of points using, for example, a look-up table: the former use of a mathematical function may require complex mathematics to accurately represent real-world control problems; further, the latter use of a look-up table, such as a ROM, introduces problems such as large memory requirements for adequate approximation, the concomitant addressing function associated with large memories, as well as interpolation problems.
For example, FIGURE 1A shows an exemplary nonlinear sigmoidal function y = f(x). If digital logic was used to characterize the function y = f(x), it would be necessary to approximate the function shown in FIGURE 1A by using discrete values, y, = a.-x, (i=l, 2, ..., n) , as shown in FIGURE IB. Since the number n of "crisp" values is limited, there inherently exists an interpolation error for values of x between x, and x,.,. The term "crisp" refers to an input having a single discrete value. In addition, it becomes impractical to write a rule for every input combination where there exists a large number of inputs whose values can cover a wide input range.
An alternative approach to control theory, known as "fuzzy logic", was developed by L. Zadeh in 1963. Rather than evaluating the two values "TRUE" and "FALSE" as in digital logic, fuzzy terms admit to degrees of membership in multiple sets so that fuzzy rules may have a continuous, rather than step- wise, range of truth of possibility. For example, in applying fuzzy logic, a person need not strictly be included or excluded as a member from a set of "tall persons"; rather, to the extent a person may be "tall" to a greater or lesser degree, the member is assigned to the set with a degree of membership between the values of "1" and "0".
FIGURE IC illustrates the principle of fuzzy logic in evaluating the function illustrated in FIGURE 1A. The function f(x) is approximated by a plurality of fuzzy sets 10 which overlap. Rather than approximating a continuous value x by a discrete value x-, fuzzy logic determines for a given value x whether the value x is nearest to the center of a fuzzy set 10. If an x value is equidistant from two or more fuzzy sets, the resultant y value can be made proportional to the output values suggested by all the fuzzy sets of which the value x is a member. Thus, a fuzzy number may be two dimensional, having assigned fuzzy sets and corresponding membership values.
Since fuzzy logic can operate within the relative imprecision of the real-world environment, the advantages of fuzzy logic and fuzzy set theory have become apparent in numerous areas, such as robotics, natural language recognition, the automobile and aircraft industry, artificial intelligence, etc. Exemplary publications describing the theory and applications of fuzzy logic include Devi, B.B. et al. , Estimation of Fuzzy Memberships from Histograms, Information Sciences, vol. 35, 1985, pp. 43-59; Braae, M. et al., Theoretical and Linguistic Aspects of the Fuzzy Logic Controller, Automatica, vol. 15, issue 5, 1979, pp. 553-77; Ralston, P.A.S., Fuzzy Logic Control of Machining, Manufacturing Review, vol. 3, no. 3, September 1990, pp. 147-154; Schwartz, Tom J. , Fuzzy Tools for Expert Systems, Al Expert, February 1991, pp. 34-41; Kohoutek, H.J. , Practice of Approximate Reasoning, Proceedings of Manufacturing International *90 (1990: Atlanta, Georgia) Vol. V: Design, Reliability, and Education of Manufacturability; Lee, Chuen C, Fuzzy Logic in Control Systems: Fuzzy Logic Controller - Parts I & II, IEEE Transactions on Systems, Man and Cybernetics vol. 20, issue 2, March/April 1990, pp. 404-418, 419-435; Mamdani, E.H. , Application of Fuzzy Algorithms for Control of Simple Dynamic Plant, Proceedings of the IEEE, vol. 121, issue 12, December 1974, pp. 1585-1588; Tang, K.L. et al., Comparing Fuzzy Logic with Classical Controller Designs, IEEE Transactions on Systems, Man and Cybernetics, vol. 17, issue 6, November/December 1987, pp. 1085-1087; Zadeh, L.A. , Fuzzy Sets, Information and Control, vol. 8, 1965, pp. 338-353; Zadeh, L.A. , Outline of a New Approach to the Analysis of Complex Systems and Decision Processes, IEEE Transactions on Systems, Man and Cybernetics, vol. 3, issue l, January 1973, pp. 28-44; and Ruspini, Enrique H. , On the Semantics of Fuzzy Logic, International Journal of Approximate Reasoning 1991, vol. 5, pp. 45-86. These publications, which describe in detail the theory of fuzzy logic, are incorporated herein by reference. The implementation of fuzzy logic for a controller has been suggested by Ralston et al. (1990). As shown in FIGURE 2, a "universe of discourse" (e.g., a dimension of continuous values) is defined in step 20 for input and control variables. Membership functions are then defined in step 22 which determine the way observations of the variables are expressed as fuzzy sets. In other words, the fuzzy sets, which are subsets of the universe of discourse, are defined by their respective membership functions. A rule base is then formulated or constructed in step 24 to supply the logic that relates observations applied to the controller input to the required fuzzy control statements; a rule may have the format "IF (Alpha IS SMALL) AND (Beta IS MEDIUM) THEN Gamma IS BIG". A computational unit is then designed in step 26 that uses the rule base to logically obtain control statements from the fuzzy inputs; the computational unit will provide fuzzy outputs in response to the process observations, e.g., the fuzzy inputs. Finally, an action interface is defined in step 28 which will provide rules to translate fuzzy control statements into discrete, crisp values for the input variables applied to the input of the controlled device or process.
The implementation of fuzzy logic in control systems, while promising, has encountered numerous problems. For example, the construction of membership functions may be relatively difficult: the optimum membership function is related to sensor characteristics, control responses, and other .dynamic factors. Thus, the determination of the optimum membership function in some cases may only be accomplished empirically. This difficulty in determining the membership function translates into the problem of properly classifying an input into the corresponding fuzzy set.
An additional problem of current fuzzy control systems is that the computational processing of the fuzzy logic is performed using conventional sequential processing via a microprocessor.
Such microprocessor-based systems use the classic von-Neumann architecture. Thus, the processing speed of the control system is limited by the processing speed of the microprocessor: this
"von-Neumann bottleneck" severely limits processing speed as the required number of processing operations increases.
Highly parallel architectures which are faster than the von-Neumann architecture have recently been proposed by Lippman (1987) . While these neural net classifiers are faster than the classic von-Neumann machine, the relatively large number of parallel connections in the neural net increases the size of an IC chip, and thus increases the overall cost of the system.
Finally, the fuzzy logic systems to date have only been implemented having a relatively small number of inputs. A fuzzy logic microcontroller must have the capacity to handle a large number of inputs, function in accordance with a large number of rules and provide an adequate number of outputs.
SUMMARY OF THE INVENTION
It is an object of the present invention to provide a low cost fuzzy logic microcontroller for efficient performance in cost-critical control systems. It is a further object of the present invention to provide a fuzzy logic microcontroller which is easily implemented for desired control applications.
It is still a further object of the present invention to provide a fuzzy logic microcontroller which has an efficient processing capacity to generate control signals in response to a large number of inputs with minimum throughput. In order to achieve these and other objects of the present invention, a fuzzy logic microcontroller includes several advantageous features which together provide efficient processing from a large number of inputs. The inputs are time-division multiplexed (TDM) signals, for example, from sensors, which are input to a fuzzifier input selector. The fuzzifier input selector separates the TDM signals and prepares the separated signals for fuzzification by the fuzzifier which determines a membership value for that input. After fuzzification, the fuzzified input signals are processed by a multipath feedforward network designed for higher processing speeds using a minimum number of components. The multipath feedforward network processes the fuzzified input signals in accordance with predetermined fuzzy logic rules established in accordance with the control system output parameters. The processed data is then output to the respective devices to be controlled.
The fuzzifier input selector according to the present invention demultiplexes the TDM input signals and stores the demultiplexed signal, preferably an eight (8) bit digital signal, into an input fuzzifier register corresponding to the demultiplexed signal. The input fuzzifier register is also loaded with fuzzy set parameter data for fuzzification. After the input fuzzifier register is loaded with the demultiplexed signal and the corresponding fuzzy set parameter data, the demultiplexed signal undergoes fuzzification. The present invention provides a fuzzification method which provides a simple technique for determining the similarity of the crisp input (e.g., the discrete demultiplexed signal undergoing fuzzification) to a fuzzy set. The degree of similarity between the crisp input and the fuzzy set is defined by a membership function μ . The fuzzification method according to the present invention disregards the shape of the membership function μ and instead determines the distance of the crisp input from a defined center of the membership function μ; the distance of the crisp input is then linearly complemented with respect to the width of the membership function μ so that the resulting similarity signal is a maximum when the distance is a minimum, and, conversely, a minimum when the distance is a maximum (e.g., when the crisp input exceeds the width of the membership function μ).
Since the shape of the membership function is not used in the similarity determination, the designer of a control system no longer needs to be concerned with the optimum membership function shape or its effects due to sensor characteristics, control responses, or other dynamic factors. As a result, the fuzzification process according to the present invention is simpler to implement while retaining flexibility for variations in control systems.
The fuzzified input signals are processed by a multipath feedforward network which processes the fuzzified input signals in accordance with predetermined fuzzy logic rules established in accordance with control system output parameters. An output of the fuzzy microcontroller will be determined on the basis of its predetermined rules and the fuzzified input signals. A rule determines which of the fuzzified input signals are to be compared when processing the rule. The rule terms for each rule are implemented in the multipath feedforward network which determines in parallel the fuzzy input signals which represent the minimum value term in the rule. A maximum comparator then compares each of the minimum value terms for each rule to determine which rule provides the optimum output given the fuzzified inputs. Since the multipath feedforward network according to the present invention is specially dedicated to determine a minimum, or maximum, rule term for each rule to be processed, the multipath feedforward network can process a plurality of selected fuzzified inputs for a given rule in parallel. Therefore, since a rule can be processed during each cycle of the network, the present invention enables extremely rapid rule processing on the order of thirty million rules per second. In addition, the dedicated network can be designed for minimum use of silicon on a semiconductor chip, resulting in a lower cost for the semiconductor chip.
The rule which provides the optimum output in response to the selected fuzzy data is addressed from a rule memory to provide a rule output to an output register. The output register operates the rule output on an existing output, e.g., by adding an offset, and outputs the resulting output signal to a device to be controlled. The resulting output signal, which is a defuzzified crisp signal, may also be fed back to the fuzzifier input selector to provide a feedback system.
Thus, the present invention provides a unique fuzzy microcontroller which enables rapid processing of a plurality of inputs using fuzzy logic and which is relatively simple and inexpensive to implement for fuzzy control systems. As a result, the present invention provides a new and inexpensive system of control for applications such as smart appliances, pattern matching, sequencers, state machines and timers, automotive applications, robotics, approximate reasoning, or expert systems.
The features of the present invention will become more readily apparent from the below detailed description and the accompanying drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
Reference is made to the attached drawings, wherein elements having the same reference numeral designations represent like.elements throughout, and wherein: FIGURES 1A, IB and IC illustrate the logical distinctions between digital logic and fuzzy logic;
FIGURE 2 discloses a conventional method for fuzzy logic in a controller; FIGURE 3 discloses a block diagram of the fuzzy microcontroller according to a preferred embodiment of the present invention;
FIGURE 4 illustrates a relationship between two fuzzy sets and a crisp input; FIGURES 5A-5D illustrate the relationship between a fuzzy set and a range of inputs on the basis of the membership function of the fuzzy set according to the fuzzifying method of the present invention; FIGURE 6 discloses a block diagram of the fuzzifier input selector of FIGURE 3; FIGURE 7 discloses a block diagram of the similarity circuit of FIGURE 3;
FIGURES 8A, 8B and 8C disclose the minimum comparator of FIGURE 3; FIGURE 9 discloses the maximum comparator of FIGURE 3;
FIGURE 10 discloses a block diagram of the output register of FIGURE 3;
FIGURES 11A, 11B and 11C illustrate exemplary membership functions for an application of the fuzzy microcontroller of the present invention;
FIGURE 12 illustrates an implementation of the fuzzy microcontroller of the present invention in a master mode; FIGURE 13 illustrates an implementation of the fuzzy microcontroller of the present invention in a slave mode; and
FIGURE 14 illustrates a plurality of the fuzzy microcontrollers cascaded for greater processing capacity.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
The preferred embodiment of the present invention will now be described with reference to the accompanying drawings.
FIGURE 3 discloses a block diagram of the fuzzy microcontroller according to a preferred embodiment of the present invention and designated generally by the reference character 50. The fuzzy microcontroller 50 may control a plurality of devices by outputting an output signal to a corresponding controlled device (not shown in FIG. 3). The value of the output signal is determined by the rules associated with the output signal and the signals input to the fuzzy microcontroller 50. In other words, each output signal is the result of a predetermined set of rules which define the action to be taken by the output signal under certain input conditions. The fuzzy microcontroller 50 of the present invention compares the input signals to each of the rules, one rule at a time, to determine which rule will provide the optimum output.
As shown in FIGURE 3, the fuzzy microcontroller 50 includes a fuzzifier section 80 having a fuzzifier input selector 100 which receives a time-division-multiplexed (TDM) input signal from an external source. The external source may be a multiplexer (not shown) which time-multiplexes a plurality of sensor signals, for example. Although the input signal may be either analog or digital, the preferred embodiment uses an eight (8) bit digital word so that the fuzzifier input selector 100 receives a data stream of 8-bit digital input signals. The fuzzifier input selector 100 receives the 8-bit TDM signal from the external multiplexer (not shown) with handshaking being performed between the external multiplexer and the control circuit 900 using a sync signal (SYNC) and an address signal (ADDR) . The fuzzifier input selector 100 includes an eight-to-one demultiplexer, so that each of the 8-bit input signals are time-discrimated by the TDM signal and then latched internally. The latched input signals are then prepared by being mapped to one of the input fuzzifier registers 200, so that each of the input fuzzifier registers 200 stores one of the separate 8-bit digital input signals. The mapping process is predetermined, depending on the application to be performed, so that each of the 8- bit inputs are fuzzified according to the corresponding fuzzy set.
The number n of input fuzzifier registers 200 corresponds to the number of fuzzy sets. Each of the input fuzzifier registers 200 includes data necessary to fuzzify input data according to a predetermined fuzzy set. As a result, each input fuzzifier register 200, corresponds to a predetermined fuzzy set, so that the presence of sixteen input fuzzifier registers in the preferred embodiment enables the implementation of sixteen fuzzy sets. Thus, each of the input fuzzifier registers 200 includes both the necessary fuzzy set parameters (see below) and the 8-bit digital input signals to be fuzzified. The data from one of the input fuzzifier registers 200 is output to a similarity circuit 300, which performs the fuzzifying method of the present invention (as described below) . The fuzzifying method is repeated for the contents of each of the input fuzzifier registers 200 until all the 8-bit input signals have been properly fuzzified.
The fuzzified input signals are output from the similarity circuit 300 and latched into fuzzifier output registers 400 sequentially. After all the input signals have been fuzzified according to the fuzzy set parameters stored in the input fuzzifier registers 200, the fuzzifier output registers 400 simultaneously output the fuzzified input signals to a minimum comparator 500. The minimum comparator 500 processes in parallel the fuzzified input signals in accordance with a predetermined fuzzy logic rule. The minimum comparator 500 determines whether the fuzzy logic rule has a likelihood of being executed on the basis of the fuzzified input signals. For example, a rule may be of the form "IF (Temp IS HOT) AND (Beta IS
VERY_HUMID) AND (Motor IS LOW) THEN INCREMENT Motor BY BIG_INCREASE". Each of the terms (e.g., "Temp IS HOT") of the rule is compared with the corresponding fuzzy input (e.g., "Temp") to determine whether there is a low or high correlation. The correlations of each of the rule terms are then compared to determine the minimum level of correlation amongst the rule terms. The minimum rule term (e.g., the rule term having the minimum level of correlation) represents the overall likelihood of the rule being executed on the basis of the fuzzified input signals. The minimum comparator 500 determines the minimum rule term for each rule sequentially, for example, one rule at a time. The rules for each output are stored in a rule memory 700, so that after one rule is processed by the minimum comparator 500, another rule is selected from the rule memory 700 to determine the minimum rule term. The minimum comparator 500 outputs the minimum rule term to a maximum comparator 600 to compare the minimum rule term of the selected rule with the minimum rule terms of other corresponding rules.
The maximum comparator 600 compares the rules of an output signal and identifies the rule which has the maximum value for the minimum rule term. The identified rule, selected as having the highest overall degree of correlation and, therefore, the optimum output, is addressed from the le memory 700 and the corresponding rule output is provided to an output register 800. The rule memory 700 may be, for example, a 64 x 24 bit SRAM.
The output register 800 modifies the existing (or initial) output on the basis of the rule output provided. The modification by the output register 800 may be any logical operator (for example, increment, decrement, multiply, divide, complement, etc.). The output register 800 outputs the modified output as an output signal to the device to be controlled. If a feedback system is desired, the output register 800 can be selected to also output a loop-back input signal to the fuzzifier input selector 100.
According to the preferred embodiment, the output signal of the output register 800 is a TDM signal for eight (x8) output devices. Thus, the eight output signals are multiplexed into a single TDM signal. Also, a control circuit 900 controls all operations of the fuzzy microcontroller 50. The fuzzifying method of the present invention will now be disclosed with reference to FIGURES 4 and 5A-5D. FIGURE 4 illustrates a relationship between a crisp input 38 and two arbitrarily selected and exemplary fuzzy sets 40 and 42 having membership functions A and B. The term "crisp" refers to any input or output which yields a single, precise value. Since most sensors produce, and most actuators require, scalar values, the fuzzy microcontroller 50 of the present invention accepts crisp inputs and provides crisp outputs.
Each membership function specifies a relationship between the crisp input 38 and the corresponding fuzzy set. In other words, the membership functions determine the size of the fuzzy sets 10 shown in FIGURE IC. The evaluation of the conjunction of the crisp input 38 with a membership function results in a "fuzzy term": the term represents the degree' of membership or non- membership of the crisp input 38 in the corresponding fuzzy set. Since it is a fuzzy number, the term may be used in subsequent fuzzy rules, similar to Boolean operations.
Thus, the membership function in a fuzzy system defines the degree of similarity between an unknown input and a known value or class (for example, the fuzzy set) . As shown in FIGURE 5A, the degree of membership μa for a crisp input A having a value Xa occurs at the point where the crisp input A intersects the membership function C. However, due to nonlinearities in the control system (for example, sensor characteristics, control responses, dynamic responses) the membership function μ may be nonlinear relative to the input dimension X, making the determination of the membership function shape, and hence the similarity determination, difficult to implement. In order to avoid the determination of the membership function shape, the fuzzifying method of the present invention predefines the slope of the membership function, and determines the distance between the crisp input and the center of the membership function. As shown in FIGURE 5B, the membership function D is defined to be linear with a predetermined slope (for example, the slope is one- to-one) . Rather than determining the intersection point of the membership function and the crisp input XA, the fuzzifying method measures the distance da- by subtracting the crisp input from the known center value and ignoring the sign. The difference is then complemented with respect to the width of the membership function D so that if the input and the center are the same, then the similarity value da is a maximum, whereas if the input is further from the center, the similarity value approaches a minimum. FIGURES 5C and 5D show a membership function and its inverse, respectively. The dashed lines extending from the membership function illustrate the shape of the membership function if the width was set at a maximum. In other words, although the width of the membership functions in FIGURES 5C and 5D are set at a value of "13", the maximum width according to the preferred embodiment is "31". Therefore, if a crisp input X was outside the membership function of FIGURE 5C, the similarity value would be forced to the minimum or zero. The advantages of the fuzzifying method of the present invention are that a designer of a control system is not required to determine a membership function shape for all fuzzy sets, and also that the fuzzifying method can be easily implemented in hardware. A preferred embodiment of the fuzzifying method is disclosed with reference to FIGURE 7 (see below) . FIGURE 6 shows in detail the fuzzifier input selector 100 of FIGURE 3. The TDM input signal from an external multiplexer is input to a two-to-one demultiplexer 120, which also receives a Loop Back Input signal from the output register 800 shown in FIGURE 3. The two-to-one demultiplexer 120 selects either the TDM input signal or the Loop Back signal in response to an input/loop-back selector signal (I/LB) . The selected signal is then output by the two-to-one demultiplexer 120 to a latch 140, which demultiplexes the selected: TDM signal by latching each of the signals in response to a SYNC signal which is coupled also to the external multiplexer. Each of the eight input signals from the TDM signal are then provided to a selector circuit 160: the selector circuit 160 selects and outputs one of the eight input signals in response to a 3-bit ADDR signal. The output of the selector circuit 160 is mapped to a desired fuzzifier by a mapping circuit 180, which maps the selected input signal from the selector circuit 160 to one of the fuzzifier registers 200 in response to a FZSET signal which identifies the fuzzifier to be selected. After the fuzzifier is selected, the selected input signal is output to the corresponding fuzzifier output line and latched to the corresponding one of the input fuzzifier registers 200 shown in FIGURE 3. As shown in FIGURE 3, the fuzzifier input selector 100 receives a TDM input signal and a TDM loop back signal and selectively outputs the input signal to be fuzzified to the appropriate input fuzzifier registers 200. The control signals I/LB, SYNC, ADDR and FZSET are each supplied by the control circuit 900 shown in FIGURE 3, which provides all necessary addressing, timing, control, and overhead functions. FIGURE 7 shows the similarity circuit 300 of FIGURE 3. The similarity circuit 300, also referred to herein as a "fuzzifier", determines the similarity of a crisp input to a selected fuzzy set using the fuzzifying method disclosed with reference to FIGURES 5B-5D. The similarity circuit 300 receives data from one of the input fuzzifier registers 200, which includes both the crisp input data and fuzzy set parameter data. According to the preferred embodiment, each of the input fuzzifier registers 200 is a 24-bit register having 8 bits for crisp input data, 8 bits for the center location of the fuzzy set membership function, 5 bits for the width of the membership function, and 3 bits identifying the input addressed by the address signal (FIG. 6) .
As shown in FIGURE 1 , the similarity circuit 300 receives the crisp input data and the fuzzy set parameter data for the center location and the width values. The 8-bit center location is latched into a 8-bit latch 310 and the width value is latched into a 5-bit latch 320. According to the fuzzifying method described above, the crisp input and the center location from the 8-bit latch 310 are passed to a subtractor 330, where the absolute difference is calculated. The difference value from the subtractor 330 is inputted to a comparator 340 and compared with the membership function width value stored in the 5-bit latch 320, and the result of the comparison is output to a control logic circuit 350. The control logic circuit 350 also receives a polarity bit from the control circuit 900: the polarity bit determines whether the crisp input will be fuzzified with respect to the true membership function or its inverse, as shown in FIGURES 5C and 5D, respectively.
The control logic circuit 350 outputs a control signal to an alpha cut calculator 360 in response to the result of the comparison from the comparator 340 and the polarity bit. Specifically, the alpha cut calculator 360 outputs the fuzzified data from the difference of the subtractor 330 using the following logic: if the crisp data is outside the membership function (e.g., the result of comparison indicates the difference value is greater than the width of the membership function) , then the fuzzified value is forced to zero if the polarity bit is not set (e.g., membership function is "TRUE") ; however, if the polarity bit is set, then the fuzzified value is forced to zero if the crisp data is inside the membership function.
In accordance with the fuzzifying method of the present invention, since the membership function has a one-to-one linear slope, the alpha cut calculator 360 takes the complement of the difference value and outputs the result as a similarity value, representing the degree of membership to the fuzzy set. The complement is determined as follows. According to the exemplary membership function presented in FIG. 5C, the maximum width of the membership function is "31" decimal, so that if a crisp input had, for example, a value "CI = 7", and a selected membership function had a center location "CL - 13" decimal and a width "W = 9", then the difference "DIFF = 14 - 7 = 6" would be complemented to result in a similarity value "COMP(DIFF) = ABS(6 - 31) = 25" decimal.
Thus, the similarity value is "25", with the maximum value being "31" if the difference DIFF was zero. As a result, the fuzzifying method of the present invention provides a simple and effective method for similarity determination between a crisp input and a fuzzy set.
The similarity value is output from the alpha cut calculator 360 to the appropriate one of the fuzzifier output registers 400 as shown in FIGURE 3. The similarity value, when referenced with its corresponding fuzzy set, is known as a fuzzy number.
The fuzzifying method is repeated for all the fuzzy sets. According to the preferred embodiment, a maximum of sixteen fuzzy sets are available with their parameters being stored in the input fuzzifier registers 200. However, modifications may be made to increase or decrease the number of fuzzy sets to be used. After all the fuzzy numbers for their associated fuzzy sets are loaded into the fuzzifier output registers 400 (FIG. 3) , the fuzzy microcontroller 50 processes the fuzzified input signals to determine whether a selected rule provides the optimum output given the fuzzy inputs. The processing is a two-step process: first, the minimum comparator 500 determines a minimum rule term of a selected rule; then, the maximum comparator 600 determines which of the rules corresponding to the desired output have the maximum value as a minimum rule term. The rule which has the maximum value for the minimum rule term is deemed the optimal output given the inputs.
The minimum comparator 500 receives those fuzzy inputs from the fuzzifier output registers 400 which are speci ied by the rule terms to be processed. In other words, a rule which uses only five of the sixteen fuzzy sets will only select those five corresponding fuzzy inputs for processing in the minimum comparator 500. The selected fuzzy inputs are processed by a multipath feedforward network specially dedicated for fast and efficient processing in order to find a minimum rule term for a rule. If a maximum rule term is desired, then the inputs would be inverted before processing.
FIGURE 8A shows a block diagram of the minimum comparator 500 shown in FIGURE 3. The minimum comparator 500 is a multipath feedforward network specially designed to determine a minimum value among the sixteen five-bit values asynchronously. As a result, the minimum comparator 500 determines the minimum input value within one system clock cycle. The logic of the minimum comparator 500 is such that when, for example, two digital words are compared to determine which has the minimum value, the emphasis is placed on the higher order bits. As a result, if there exists a difference in a higher-order bit between the two words, the lower-bits can be disregarded. Therefore, the minimum comparator 500 first compares the higher-order bits of the values being compared, and inhibits all the lower bits when a mismatch is found.
The functions of the minimum comparator 500 will become more apparent with the following description of the minimum comparator 500 with reference to FIGURES 8A, 8B and 8C.
As shown in FIGURE 8A, the minimum comparator 500 receives the sixteen 5-bit (a total of eighty bits) fuzzified inputs from the fuzzifier output registers 400 and inputs each fuzzified input (IN) to a corresponding minimizing element 510, which also receives a feedback input (FB) from a NAND tree 550. The NAND tree 550 determines whether, for a given significant bit, any of the outputs from the minimizing element 510 have a different value for the corresponding significant bit. If there are any outputs which do not have the same value for the corresponding significant bit, the minimizing element 510 outputs a bit suppression signal as the feedback input (FB) to suppress the analysis of lower order bits in the minimizing element 510. After the array of the minimum elements 510 and the NAND tree 550 determine a stable value after multiple asynchronous passes as described below, the result is inverted by an inverter 580 to obtain the minimum.
Each minimizing element 510 receives the 5-bit fuzzified input (IN) , the 5-bit feedback input (FB) and a disable input (DIS) . The disable input is supplied in accordance with the rule being processed and stored in the rule memory 700. Therefore, if a rule uses only four fuzzy sets in its logic, the remaining minimum elements 510 would receive a disable signal DIS = "1".
FIGURE 8B discloses a minimizing element 510 from FIGURE 8A. As shown in FIGURE 8B, the disable signal (DIS) is input to a NAND gate G5 512, NAND gate G4 514, NAND gate G3 516, NAND gate G2 518 and NAND gate Gl 520. The fuzzy signal IN is input to.inverters 522, 524, 526, 528 and 530, whereby the inverter 522 receives the most significant bit (MSB) (also referred to as "Bit 5") and the inverter 530 receives the least significant bit (LSB) (also referred to as "Bit 1") of the fuzzy signal IN. Bits 5, 4, 3 and 2 of the fuzzy signal IN are also input to the NAND gate G6 532, NAND gate G7 534, NAND gate G8 536, and NAND gate G9 538, respectively. The NAND gate G6 532, NAND gate G7 534, NAND gate G8 536 and NAND gate G9 538 also receive the four most significant bits of the feedback signal FB, respectively, whereby the NAND gate G6 532 receives the MSB. The outputs of the inverter 522, inverter 524, inverter 526, inverter 528 and inverter 530 are supplied to the NAND gate G5 512, NAND gate G4 514, NAND gate G3 516, NAND gate G2 518 and NAND gate Gl 520, respectively. In addition, the output of the NAND gate G6 532 is supplied to the NAND gate G4 514, NAND gate G3 516, NAND gate G2 518 and NAND gate Gl 520; the output of the NAND gate G7 534 is supplied to the NAND gate G3 516, NAND gate G2 518 and the NAND gate Gl 520; the output of the NAND gate G8 536 is supplied to the NAND gate G2 518 and the NAND gate Gl 520; and the output of the NAND gate G9 538 is supplied to the NAND gate Gl 520. The outputs of the NAND gate G5 512, NAND gate G4 514, NAND gate G3 516, NAND gate G2 518 and NAND gate Gl 520 are combined and supplied to the NAND tree 550.
FIGURE 8C shows in further detail the NAND tree 550 disclosed in FIGURE 8A. As shown in FIGURE 8C, the NAND tree 550 comprises a NAND gate 15 552, a NAND gate 14 554, a NAND gate 13 556, a NAND gate 12 558 and a NAND gate II 560. The NAND gate 15 552 receives all the MSBs (also referred to as "Bit 5") from all the sixteen minimum elements 510 shown in FIGURE 8A. The NAND gate 14 554 similarly receives Bit 4 from all the sixteen minimum elements 510; the NAND gate 13 556 receives Bit 3; the NAND gate 12 558 receives Bit 2; and the NAND gate II 560 receives the LSBs Bit 1. The outputs of the NAND gates 552, 554, 556, 558 and 560 are combined and output as the feedback signal FB, the output of the NAND gate 15 552 representing the MSB and the output of the NAND gate II 560 representing the LSB of the feedback signal FB. The operation of the minimum comparator
500 will now be described with reference to FIGURES 8A, 8B and 8C. Each gate should have a uniform propagation delay; thus, the following time references (tn) refer to the increments in time caused by gate propagation delays. The MSB of the input IN will be referred to as Bit 5, the LSB will be referred to as Bit 1, and the intermediate bits will be referred to herein as Bits 4, 3, and 2, respectively.
Assume that two of the minimum elements 510 receive inputs A and B, respectively, referred to as minimum element A and minimum element B. The input A has a fuzzy value of 18 decimal (10010 binary) and the input B has a fuzzy value of 19 decimal (10011 binary) . The inputs A and B are simultaneously applied to the two minimum elements A and B at time to, and all other minimum elements 510 are disabled by their respective disable (DIS) signal. Bit 5 of both inputs A and B is a logic "1", so that the output of the inverter 522 in both minimum elements A and B will be "0" at time tl. As a result, the corresponding NAND gates (G5) 512 will output a "1" at time t2. These two outputs are applied to the NAND gate 15 552 shown on FIGURE 8C, which outputs a "0" at time t3 as the MSB of the FB signal, as shown in TABLE 1.
TABLE 1
e TS
Figure imgf000029_0001
The Bit 5 of the FB signal and Bit 5 (logic 1 for inputs A and B) of the IN signal are applied to the NAND gates (G6) 532 for both minimum elements A and B, causing the NAND gates (G6) 532 to output a "1" at time t4. The output of NAND gates (G6) 532 enables the NAND gates (G4) 514 for both minimum elements A and B, each of which output Bit 4 (logic 0 for inputs A and B) of the corresponding input signal IN at time t5. The outputs of the NAND gates (G4) 514 are input to the NAND gate 14 554 in FIGURE 8C, which outputs a "1" at time t6 as Bit 4 of the FB signal, as shown in TABLE 1. As shown in FIGURE 8B, the Bit 4 of the FB signal and Bit 4 of the IN signal are applied to the NAND gates (G7) 534 for both minimum elements A and B, causing the NAND gates (G7) to output a "1" at time t7, thereby enabling the NAND gates (G3) 516 for both minimum elements A and B. The NAND gates (G3) 516 both output Bit 3 (logic 0 for inputs A and B) at time t8. The outputs of the NAND gates (G3) are input to the NAND gate 13 556 in FIGURE 8C, which outputs a "1" at time t9 as Bit 3 of the FB signal, as shown in TABLE 1.
As shown in FIGURE 8B, the Bit 3 of the FB signal and Bit 3 of the IN signal are applied to the NAND gates (G8) 536 for both minimum elements A and B, causing the NAND gates (G8) to output a "1" at time tlO, thereby enabling the NAND gates (G2) 518 for both minimum elements A and B. The NAND gates (G2) 518 both output Bit 2 (logic 1 for inputs A and B) at time til. The outputs of the NAND gates (G2) are input to the NAND gate 12 558 in FIGURE 8C, which outputs a "0" at time tl2 as Bit 2 of the FB signal, as shown in TABLE 1.
As shown in FIGURE 8B, the Bit 2 of the FB signal and Bit 2 of the IN signal are applied to the NAND gates (G8) 536 for both minimum elements A and B, causing the NAND gates (G8) to output a "1" at time tl3, thereby enabling the NAND gates (Gl) 520 for both minimum elements A and B. The NAND gates (Gl) 520 both output Bit 1 (logic 0 for input A; logic 1 for input B) at time tl4. The outputs of the NAND gates (Gl) are input to the NAND gate II 560 in FIGURE 8C, which outputs a "1" at time tl5 as Bit 1 of the FB signal, as shown in TABLE 1. Thus, at time tl5 the asynchronous operation of the minimum elements A and B, as well as the NAND tree 550, is complete, and the minimum comparator 500 is deemed to have "stabilized". The output FB from the NAND tree 550 includes the inverse (l's complement) of the minimum value, namely FB = 01101. The output signal FB is supplied to an inverter 580 which inverses (l's complement) the FB signal and outputs the minimum signal MIN, whereby MIN = 10010.
As a result, the minimum comparator 500 determined the minimum between input A (10010) and input B (10011) to be MIN = 10010. The maximum time interval to determine the minimum will be when the difference between the inputs is found solely in the least significant Bit 1. However, since the inputs are processed in parallel, the time interval for determining the minimum is not affected if more than two inputs are processed. Rather, since the time interval to determine the minimum is dependent on the propagation delay, the use of semiconductor devices having small propagation delays enable a minimum determination, even with all sixteen inputs, within 30-40 nanoseconds. Thus, the minimum value can be quickly determined, regardless of the number of inputs.
The minimum determination time interval is even smaller if higher significant bits are different, since the lower order bits are automatically suppressed. The following example illustrates how the time interval for determining the minimum value is reduced. Assume that two of the minimum elements 510 receive inputs C and D, respectively, referred to as minimum element C and minimum element D. The input C has a fuzzy value of 11010 binary and the input D has a fuzzy value of 10000 binary. The response of the minimum comparator 500 is identical to the response with inputs A and B, as described above, up to time t5, where the NAND gates (G4) 514 are enabled and Bit 4 for the respective signals IN (logic 1 for C; logic 0 for D) are output to the
NAND gate 14 554 in FIGURE 8C. Since the Bit 4 for signals C and D are different, the NAND gate 14 554 outputs a "1" at time t6 as Bit 4 of the FB signal. At time t6. Bit 4 of the FB signal and Bit 4 of the IN signal are applied to the NAND gates (G7) 534 for both minimum elements C and D. Note that Bit 4 of the FB signal is a "1", whereas Bit 4 of the input signal C (IN) is a "1" also; as a result, the NAND gate (G7) 534 for minimum element C outputs a "0" at time t7, which disables the NAND gates (G3, G2 and Gl) 516, 518 and 520 by forcing their output to a "1" at time t8.
At the same time t6, Bits 2, 3 and 4 of the input signal D (IN) are all "0"; as a result, all the NAND gates (G7, G8 and G9) 532, 534 and 536 are forced to output a "1" at time t7. As a result, since the NAND gates (G3, G2 and Gl) 516, 518 and 518 of the minimum element D each are input a "l" from the inverted IN signal and a "1" from the corresponding NAND gate, the NAND gates (G3, G2 and Gl) 516, 518 and 518 of the minimum element D each output a "0" at time t8. Thus, at time t8, as shown in FIGURE 8C, the NAND gate 13 556, the NAND gate 12 558 and the NAND gate II 560 receive the respective inputs from the NAND gates of minimum elements C and D shown in FIGURE 8B. The outputs from the NAND gates of minimum element C are "1" and the outputs from the NAND gates of minimum element D are "0", so that the NAND gate 13 556, the NAND gate 12 558 and the NAND gate II 560 each output a "1" as the respective bits of the FB signal at time t9. As a result, the FB signal is FB = 01111. As shown in FIGURE 8A, when the FB signal passes through the inverter 580, the minimum signal MIN is MIN = 10000, which is the value of input D. Table 2 summarizes the process of finding the minimum between inputs C and D.
TABLE 2 OUTPUTS
Figure imgf000033_0001
13 = 1 12 = 1 II = 1 As a result, the minimum between inputs C and D was found at time t9, which represents the time duration of nine propagation delays within the minimizing element 510 and the NAND tree 550. As a result, the stabilization time of the minimum comparator 500 will be a maximum of time tl5, and may be reduced depending on the different input conditions.
It should be realized that the minimum comparator 500 according to the present invention may also be implemented in the form of a neural network having feedback capabilities. Specifically, a three-layer neural network may be implemented, wherein the first layer includes the functions of the NAND gate G5 512, NAND gate G4 514, NAND gate G3 516, NAND gate G2 518 and NAND gate Gl 520 and the corresponding inverters 522, 524, 526, 528 and 530. The second neural layer would include the functions of the NAND tree 550 as shown in FIGURE 8C, and the third neural layer would include the functions of the NAND gate G6 532, NAND gate G7 534, NAND gate G8 536 and NAND gate G9 538. According to this variation, it will be recognized that the output signal FB will actually be output from the middle layer as described above, and that the third layer would feed back to the first layer to enable or inhibit inputs.
The multipath feedforward network of the minimum comparator 500 has been designed with the objectives of providing the fastest determination of a minimum/maximum using the least complex circuitry to minimize cost. Since the multipath feedforward network according to the present invention is specially dedicated to determine a minimum, or maximum, rule term for each rule to be processed, the multipath feedforward network can process a plurality of selected fuzzified inputs for a given rule in parallel. In addition, the multipath feedforward network operates asynchronously, without the necessity of an external clock. Therefore, since a rule can be processed during each cycle of the network, the present invention enables extremely .rapid rule processing on the order of thirty million rules per second. In addition, the dedicated network can be designed using simple logic elements* for minimum use of silicon on a semiconductor chip, resulting in a lower cost for the semiconductor chip.
FIGURE 9 discloses the maximum comparator 600 of FIGURE 3. The MIN RULE TERM signal is output from the minimum comparator 500 as the minimum rule term for a given processed rule. The processed rule is identified by the signal Rule, which is input from the control circuit 900. The MIN RULE TERM signal is input to a maximum comparator circuit 620, which compares the MIN RULE TERM signal with a previously stored Max-of-Min signal from a delay flip-flop 640. If the MIN RULE TERM is greater than the Max-of-Min signal, the maximum comparator circuit 620 outputs a strobe signal (Stb) . When the strobe signal is received, the delay flip-flop 640 is updated with the MIN RULE TERM which becomes the new Max-of-Min. Also, the Rule which corresponds to the new Max-of-Min is stored in a delay flip-flop 660. After all the rules for a given output have been processed, the delay flip-flop 660 outputs to the output register 800 a Max Rule signal which represents the rule having the optimum output for the fuzzy input data.
FIGURE 10 discloses a block diagram of the output register 800 of FIGURE 3. The MAX RULE signal from the maximum comparator 600 is supplied to the rule memory 700 in order to access the action value signal ACTION which provides the offset to be added to the existing output signal. The signal ACTION is input to an adder 820 and added to a PREVIOUS ACTION signal to obtain a NEXT ACTION signal. The NEXT ACTION signal is output to an accumulator 840, which latches the NEXT ACTION signal for the appropriate output. The output of the accumulator 840 is fed back and selected in response to a SELECT signal by a selector 860 for modification of the subsequent output. After the accumulator 840 has latched the
NEXT ACTION signal for all eight outputs, the eight outputs are time-division multiplexed by the time division multiplexer 880. The resulting 8-bit TDM signal is output, for example, to eight output devices having the capability to demultiplex the TDM signal. ' The 8-bit TDM signal from the time division multiplexer 880 may also be fed back to the fuzzifier input selector 100 as the Loop Back Input signal as shown in FIGURE 3. ' The signals ACTION CLOCK, SELECT and TDM
CLK are supplied by the control circuit 900, and one skilled in the art will appreciate the application of these signals to the output register 800 in order to obtain the time-division-multiplexed output signal from the time division multiplexer 880.
The fuzzy microcontroller of the present invention can be implemented on a VLSI chip and used in a stand-alone master-control mode or may supplant a microprocessor implementation. For example, FIGURE 12 illustrates an implementation of the fuzzy microcontroller 50 in a master mode. A programmable memory, such as the EEPROM 52 may store all necessary configuration data, such as fuzzy parameter data and rule data. An exemplary EEPROM would be the F93CSXX series from National Semiconductor, Inc., Sunnyvale, California. The master mode is set by setting the M/S terminal of the fuzzy microcontroller 50 to' +5 volts and initiating by setting the RST terminal. The fuzzy microcontroller 50 outputs a chip select signal from the terminal CS, serial address data from the terminal DO, and a clock signal from the terminal CK, and receives serial data via a terminal Dl. The protocol between the fuzzy microcontroller 50 and the EEPROM 52 may be, for example, the specification requirements of the 93C56 series devices from National Semiconductor, the requirements of which are incorporated herein by reference.
Such an implementation in the master mode would be advantageous in relatively inexpensive devices, such as home appliances or home heating systems. In more complex applications in which a microprocessor is already in use, the fuzzy microcontroller of the present invention may be implemented in a slave mode for the purposes of downloading configuration data, as shown in FIGURE 13. The slave mode in the fuzzy microcontroller 50 is set by grounding the M/_3 terminal to zero volts; as a result, the terminals CS and CK are responsive to signals externally supplied by a microprocessor
54, which also supplies a read/write (R/W) signal to the memory 56. Thus, the present invention is compatible with microprocessor-based systems, and may be reset by the microprocessor 54 as needed. The fuzzy microcontroller of the present invention provides efficient control using fuzzy logic, with high processing rates on the order of 30 million rules/second. The fuzzy microcontroller also provides an efficient method for compressing * input and output data by time division multiplexing. Further, the fuzzy microcontroller provides a fuzzifying arrangement (apparatus and method) which is easy to implement by avoiding the necessity of determining a shape of a membership function. Further, the fuzzy microcontroller provides a multipath feedforward network which asynchronously determines a minimum rule term using a minimum amount of circuitry, thereby minimizing space on an integrated circuit and reducing cost. Finally, the fuzzy microcontroller provides a novel method for determining the optimum rule among a set of rules for an output, in response to fuzzified inputs.
The operation of the fuzzy microcontroller of the present invention will become more apparent with reference to FIGURES 11A, 11B and 11C, which illustrate an application of the fuzzy microcontroller in controlling a vacuum cleaner. Specifically, FIGURES HA, 11B and lie each show an input to the fuzzy microcontroller along the X axis (e.g., pressure, dirt and texture), along with a plurality of fuzzifiers for classifying the input data. As shown in FIGURE 11A, the vacuum pressure input may be in one or more of five fuzzy sets: very low, low, medium, high or very high. Similarly, the inputs for dirt and texture (as measured by corresponding sensors) have their respective fuzzy sets as shown in FIGURES 11B and 11C, respectively.
Assuming the vacuum cleaner has three outputs to be controlled, namely VACUUM CONTROL, BEATER HEIGHT and BEATER SPEED, each output will have a number of associated rules to be applied, depending on the inputs pressure (P) , dirt (D) and texture (T) . Exemplary rules for the VACUUM CONTROL, BEATER HEIGHT and the BEATER SPEED are shown in Tables 3, 4 and 5, respectively. TABLE 3
VACUUM CLEANER EXAMPLE VACUUM CONTROL RULES
1. If (D is High) and (T is Rough) and (P is Low) then (Big Increment) 2. If (D is MHigh) and (T is Rough) and (P is Low) then (Increment)
3. If (D is Mlow) and (T is Smooth) and (P is High) then (Decrement)
4. If (D is Low) and (T is Smooth) and (P is High) then (Big Decrement)
5. If (D is Low) and (P is High) then (Big Decrement) TABLE 4 BEATER HEIGHT RULES
1. If (T is Smooth) and (D is High) then (Big Raise)
2. If (T is Smooth) and (D is MHigh) then (Raise) 3. If (T is Med) and (D is MHigh) then (Raise)
4. If (T is Med) and (D is MLow) then (Lower)
5. If (T is Smooth) and (D is Low) then (Big Lower)
6. If (T is Rough) and (D is MHigh) then (Raise)
7. If (T is Rough) and (D is High) then (Big Raise) 8. If (T is Smooth) and (D is MLow) then (Lower)
TABLE 5 BEATER SPEED RULES
1. If (T is Smooth) and (D is Low) then (Big Decrement Speed) 2. If (T is Med) and (D is Low) then (Decrement Speed)
3. If (T is Med) and (D is MHigh) then (Increment Speed)
4. If (T is Med) and (D is High) then (Big Increment Speed)
5. If (T is Rough) and (D is MHigh) then (Big Increment Speed)
6. If (T is Rough) and (D is High) then (Big Increment Speed)
The fuzzy microcontroller inputs the crisp inputs for pressure dirt and texture, and thereafter fuzzifies the data in accordance with the membership functions shown in FIGURES llA-llC. The fuzzy microcontroller then determines the minimum rule term for each rule, and then determines the maximum minimum rule for each output. For example, assuming the input values for pressure, dirt and texture were "8", "40" and "5", respectively, the minimum comparator 500 and maximum comparator 600 would provide the following results as shown in Table 6 for the VACUUM CONTROL output.
Rule
2.
3.
4.
Figure imgf000041_0001
As shown in Table 6 with respect to Rule
1, the inputs dirt, texture and pressure are not within the respective membership function widths for HIGH, ROUGH and LOW, respectively; as a result, the corresponding membership value μ (designated M in Table 6) for these fuzzy sets is forced to zero. However, the inputs do fall within the membership function widths for MLOW, SMOOTH and HIGH as shown for Rule 3 in Table 6. Since the minimum rule term for Rule 3 is "26", and since it is the relative maximum of minimum, the Rule 3 is selected as the optimal output for the output. According to the present invention, the method of fuzzifying a crisp input may be easily implemented in an IC chip by determining the distance between the crisp input and the center of the respective membership function; if the distance is less than the width of the membership function, then the distance value is complemented to determine the alpha cut, or the membership value of the crisp input with respect to that fuzzy set. Since the shape of the membership function for the fuzzy set need not be determined, the fuzzifying method of the present invention can be easily implemented, which results in substantial cost savings in design development and circuit implementation.
The fuzzifier of the present invention includes an input control processor, a fuzzification interface, a programmable rule base, programmable or otherwise variable decision-making logic, a defuzzification interface, a configurable feed back path, an output control processor, or peripheral pre- and post- processing circuitry.
Although the membership function shapes of the preferred embodiment had a unitary, one-to-one slope, resembling an isosceles triangle, those skilled in the art of fuzzy logic will appreciate that other membership function shapes, such as a scalene triangle, can be obtained by multiplying two fuzzy sets together having different centers and widths, whereby one fuzzy set has a TRUE polarity and another set has the opposite, or INVERSE polarity, as shown in FIGURES 5C and 5D.
The method of expanding input signals for mapping to a fuzzy set, and compressing output signals by time-division multiplexing enables the fuzzy control of a plurality of outputs on the basis of a corresponding plurality of inputs, thereby providing a more efficient control system. It will be recognized that the fuzzy microcontroller of the present invention is not limited to digital time- division multiplexed input and output signals. Rather, the present invention may be varied to include: singular or multiple inputs; bit serial or parallel formatted input data; multiplexed or non- multiplexed inputs; any means to connect the inputs to a selected fuzzification circuit; digital inputs having any number of bits of resolution; analog or digital inputs, or both mixed.
In addition, the fuzzy microcontroller of the present invention can be implemented in a cascaded arrangement, as shown in FIGURE 14 in order to provide greater processing capacity for a larger number of inputs, outputs, or both. Those skilled in the art will realize the technique of controlling a plurality of the fuzzy microcontrollers in such a cascaded arrangement.
Those skilled in the art of fuzzy logic will also appreciate that the programmable rule base for an output can include, but not be limited to have any number of rules, any number of terms in a rule, the use of any or all logical functions as sentence connective operators, a permanent or volatile rule memory with on-chip or external rule storage.
Finally, those skilled in the art of fuzzy logic will appreciate that techniques for the determination of an optimum output, also known as "defuzzification", include but are not limited to defuzzification by the Mean of Maximum method, the Maximum method, the Center of Area or Center of Gravity methods, or equivalent methods thereof. Although not as efficient, one skilled in the art will appreciate that the multipath feedforward network of the present invention may be replaced with a neural network having the input weights and the threshold values of each neuron adjusted accordingly.
While this invention has been described in connection with what is presently considered to be the most practical and preferred embodiment, it is to be understood that the invention is not limited to the disclosed embodiment, but, on the contrary, is intended to cover various modifications and equivalent arrangements included within the spirit and scope of the appended claims.

Claims

CLAIMS :
1. A fuzzy logic microcontroller for controlling a device in response to at least one crisp input signal, comprising: means for fuzzifying said crisp input signal to obtain fuzzified input signals, said fuzzifying means comprising: means for mapping said crisp input signal to two or more fuzzy sets, each fuzzy set having a membership function having a predetermined width and center, means for determining a distance of said crisp input from said center of each of said membership functions, and means for linearly complementing each of said distances relative to said corresponding width of said membership function, said complemented distance being output as said fuzzified input signal; memory means for storing a plurality of predetermined rules having rule terms; means for determining a minimum rule term in accordance with said fuzzified input signals and a selected one of said predetermined rules, said selected rule being part of a group of rules corresponding to a control output; means for determining a maximum rule term among said minimum rule terms of said group of rules; and means for executing an optimal rule corresponding to said maximum rule term, said executing means outputting a signal as said control output to said device.
2. A method for fuzzifying a crisp input signal for a fuzzy logic microcontroller, comprising the steps of: defining a fuzzy set to have a predetermined width and center location and storing said width and center location in a memory, said center location indicating a maximum membership value and said width indicating minimum membership values for said fuzzy set; inputting said crisp input signal and said center location to a subtractor; outputting from said subtractor a distance signal representing a distance of said crisp input signal from said center location of said fuzzy set; comparing said distance signal with said width stored in said memory and outputting a result; outputting a similarity signal in response to said comparing result, said outputting step linearly complementing said result with respect to said width of said fuzzy set so that: said similarity signal is a maximum if said distance signal represents a minimum distance of said crisp input signal from said center location, and said similarity signal is a minimum if said distance signal represents a maximum distance of said crisp input signal from said center location.
PCT/US1992/004691 1991-06-12 1992-06-10 Fuzzy microcontroller WO1992022868A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5500925A JPH06511331A (en) 1991-06-12 1992-06-10 fuzzy micro controller

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US712,871 1991-06-12
US07/712,871 US5245695A (en) 1991-06-12 1991-06-12 Fuzzy microcontroller

Publications (1)

Publication Number Publication Date
WO1992022868A1 true WO1992022868A1 (en) 1992-12-23

Family

ID=24863898

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1992/004691 WO1992022868A1 (en) 1991-06-12 1992-06-10 Fuzzy microcontroller

Country Status (5)

Country Link
US (3) US5245695A (en)
JP (1) JPH06511331A (en)
KR (1) KR950008396B1 (en)
AU (1) AU2179692A (en)
WO (1) WO1992022868A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0636967A1 (en) * 1993-07-29 1995-02-01 STMicroelectronics S.r.l. Method and apparatus for storing membership functions

Families Citing this family (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0509796A3 (en) * 1991-04-15 1993-05-12 Mikuni Corporation Defuzzifier circuit
US5710868A (en) * 1991-06-12 1998-01-20 Microchip Technology Incorporated Apparatus and method for generating a fuzzy number for use in fuzzy logic systems
US5412752A (en) * 1991-06-12 1995-05-02 American Neurologix, Inc. Expandable fuzzy microcontroller core
US5245695A (en) * 1991-06-12 1993-09-14 American Neuralogix Inc. Fuzzy microcontroller
US5673365A (en) * 1991-06-12 1997-09-30 Microchip Technology Incorporated Fuzzy microcontroller for complex nonlinear signal recognition
JP3036143B2 (en) * 1991-09-02 2000-04-24 三菱電機株式会社 Numerical control unit
US6078911A (en) * 1991-10-15 2000-06-20 General Electric Company Compilation of rule bases for fuzzy logic control
IT1252131B (en) * 1991-11-27 1995-06-05 Sgs Thomson Microelectronics ARCHITECTURE AND METHOD OF ORGANIZATION OF THE MEMORY OF AN ELECTRONIC CONTROLLER OPERATING WITH LOGIC MODES OF THE FUZZY TYPE
US5428760A (en) * 1991-12-12 1995-06-27 Intel Corporation Circuitry and method for sharing internal microcontroller memory with an external processor
CA2096069C (en) * 1992-05-14 1998-09-01 Shuichi Kawasaki Vibration detection and reduction system and vibration sensors for use in micro-gravity environment
TW223721B (en) * 1992-06-18 1994-05-11 Telefonaktiebolager Lm Ericsson
DE4308083C1 (en) * 1993-03-13 1994-06-01 Harro Kiendl Scalar or vector value generation for fuzzy logic controller - processing measurement valves in two stages using respective fuzzy logic modules and inference devices, and hyper-fuzzification module
US5524174A (en) * 1993-04-14 1996-06-04 Siemens Aktiengesellschaft Apparatus for inference formation and defuzzification in a high-definition fuzzy logic co-processor
US6041320A (en) * 1993-08-23 2000-03-21 Fisher Controls International, Inc. Multi-region fuzzy logic control system with auxiliary variables
US5416709A (en) * 1993-11-03 1995-05-16 National Science Council Fuzzy controller for anti-skid brake systems
DE4439225B4 (en) * 1993-12-27 2005-01-27 Ford Motor Company, Dearborn Defuzzification method for fuzzy logic output signals and controller device for this purpose
US7387253B1 (en) 1996-09-03 2008-06-17 Hand Held Products, Inc. Optical reader system comprising local host processor and optical reader
DE4410834C1 (en) * 1994-03-29 1995-07-27 Mathematik Und Datenverarbeitu Analogue fuzzy logic controller
EP0675431A1 (en) * 1994-03-31 1995-10-04 Co.Ri.M.Me. Consorzio Per La Ricerca Sulla Microelettronica Nel Mezzogiorno Method for memorizing membership functions in a fuzzy logic processor
TW284866B (en) * 1994-07-08 1996-09-01 Philips Electronics Nv
KR0139019B1 (en) * 1994-07-26 1998-06-15 김은영 Bit sequencing parallel comparator
DE4427020C1 (en) * 1994-07-29 1996-03-28 Siemens Ag Defuzzification device for a high-resolution fuzzy logic controller
DE4428658A1 (en) * 1994-08-12 1996-02-15 Siemens Ag Method for recognizing signals using fuzzy classification
US5740321A (en) * 1994-11-30 1998-04-14 Semborg Recrob, Corp. Behavioral based environmental system and method for an interactive playground
US5748467A (en) * 1995-02-21 1998-05-05 Fisher-Rosemont Systems, Inc. Method of adapting and applying control parameters in non-linear process controllers
KR960038646A (en) * 1995-04-17 1996-11-21 구자홍 Fuzzy Law Generation Method and Apparatus for Neural Network System
JP3087884B2 (en) * 1995-04-28 2000-09-11 本田技研工業株式会社 Hybrid vehicle power generation control device
US5635911A (en) * 1995-05-11 1997-06-03 Dickey-John Corporation Apparatus and method for monitoring an article dispensing device such as a seed planter and the like
US5751910A (en) * 1995-05-22 1998-05-12 Eastman Kodak Company Neural network solder paste inspection system
US5802204A (en) * 1995-06-07 1998-09-01 Microchip Technology Incorporated Handwritten character translator using fuzzy logic
US5838881A (en) * 1995-07-14 1998-11-17 Electric Power Research Institute, Inc. System and method for mitigation of streaming electrification in power transformers by intelligent cooling system control
DE19624614C2 (en) * 1996-06-20 1998-10-01 Volkswagen Ag Process for designing or adapting a fuzzy controller or a system of linked fuzzy controllers
US5822740A (en) * 1996-06-28 1998-10-13 Honeywell Inc. Adaptive fuzzy controller that modifies membership functions
AUPO247496A0 (en) * 1996-09-23 1996-10-17 Resmed Limited Assisted ventilation to match patient respiratory need
US6088646A (en) * 1996-10-25 2000-07-11 The Boeing Company Fuzzy logic antiskid control system for aircraft
US6112301A (en) * 1997-01-15 2000-08-29 International Business Machines Corporation System and method for customizing an operating system
US6073427A (en) * 1998-06-11 2000-06-13 Nichols; Stephen W. Method and apparatus for counting crops
US6430544B1 (en) 1998-08-11 2002-08-06 Ronald Childress Single variable priority constraint fuzzy control system
US6766309B1 (en) * 1999-07-14 2004-07-20 Liang Cheng Method and system for adapting a network application based on classifying types of communication links using fuzzy logic
EP1102175A1 (en) * 1999-11-22 2001-05-23 STMicroelectronics S.r.l. Neuro-Fuzzy network architecture with on-line learning capabilities and corresponding control method
EP1106310A1 (en) * 1999-11-30 2001-06-13 STMicroelectronics S.r.l. Electronic circuit for controlling a movement by a Fuzzy cellular architecture
JP2001292164A (en) * 2000-04-06 2001-10-19 Nec Corp Packet switch and its switching method
SE0004860L (en) * 2000-12-27 2002-06-28 Ivan Guentchev Kalaykov Method and apparatus for generating degrees of belonging in fuzzy-based end-management systems
EP1717728B1 (en) 2001-01-22 2010-09-01 Hand Held Products, Inc. Optical reader having partial frame operating mode
US7270273B2 (en) 2001-01-22 2007-09-18 Hand Held Products, Inc. Optical reader having partial frame operating mode
US7268924B2 (en) 2001-01-22 2007-09-11 Hand Held Products, Inc. Optical reader having reduced parameter determination delay
JP3866526B2 (en) * 2001-03-30 2007-01-10 アルプス電気株式会社 Detection output arithmetic unit
US7331523B2 (en) 2001-07-13 2008-02-19 Hand Held Products, Inc. Adaptive optical image reader
US7135789B2 (en) * 2003-05-12 2006-11-14 Potentia Semiconductor, Inc. Controlling devices using cascaded control units
US20050203790A1 (en) * 2004-03-09 2005-09-15 Cohen Robert M. Computerized, rule-based, store-specific retail merchandising
FI20045450A0 (en) * 2004-11-22 2004-11-22 Nokia Corp Method and apparatus for checking a radio connection
US8533439B2 (en) * 2005-11-07 2013-09-10 Atmel Corporation Elastic shared RAM array including contiguous instruction and data portions distinct from each other
FI20065454A0 (en) * 2006-06-29 2006-06-29 Nokia Corp Control procedure, control means, communication means, computer programs, distribution programs for computer programs and data processing procedures
FI20065455A0 (en) * 2006-06-29 2006-06-29 Nokia Corp Control method, medium, computer program product and computer program distribution medium
US7852519B2 (en) 2007-02-05 2010-12-14 Hand Held Products, Inc. Dual-tasking decoder for improved symbol reading
US8229875B2 (en) * 2007-04-11 2012-07-24 Oracle International Corporation Bayes-like classifier with fuzzy likelihood
GB0709812D0 (en) * 2007-05-22 2007-07-04 Nokia Corp Calibration method and calibration manager
GB0709813D0 (en) * 2007-05-22 2007-07-04 Nokia Corp A radio frequency apparatus
US8628015B2 (en) 2008-10-31 2014-01-14 Hand Held Products, Inc. Indicia reading terminal including frame quality evaluation processing
US8587595B2 (en) 2009-10-01 2013-11-19 Hand Held Products, Inc. Low power multi-core decoder system and method
US9876886B1 (en) 2012-03-06 2018-01-23 Connectandsell, Inc. System and method for automatic update of calls with portable device
US9986076B1 (en) 2012-03-06 2018-05-29 Connectandsell, Inc. Closed loop calling process in an automated communication link establishment and management system
US11743382B2 (en) 2012-03-06 2023-08-29 Connectandsell, Inc. Coaching in an automated communication link establishment and management system
US10432788B2 (en) 2012-03-06 2019-10-01 Connectandsell, Inc. Coaching in an automated communication link establishment and management system
US11012563B1 (en) 2012-03-06 2021-05-18 Connectandsell, Inc. Calling contacts using a wireless handheld computing device in combination with a communication link establishment and management system

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0797284B2 (en) * 1986-09-03 1995-10-18 株式会社日立製作所 Digital control method by fuzzy reasoning
US5073867A (en) * 1989-06-12 1991-12-17 Westinghouse Electric Corp. Digital neural network processing elements
US5185849A (en) * 1989-06-27 1993-02-09 Olympus Optical Co., Ltd. Digital fuzzy inference apparatus having time divisional control function
US5130578A (en) * 1989-11-30 1992-07-14 Hughes Aircraft Company Efficient high speed N-word comparator
US5227678A (en) * 1991-05-22 1993-07-13 Illinois Institute Of Technology Fast digital comparison circuit for fuzzy logic operations
US5245695A (en) * 1991-06-12 1993-09-14 American Neuralogix Inc. Fuzzy microcontroller

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
IEEE JOURNAL OF SOLID-STATE CIRCUITS, Volume 25, Number 2, April 1990, WATANABE et al., "A VLSI Fuzzy Logic Controller with Reconfigurable, Casadable Architecture", see pages 377, 378, 379. *
INTERNATIONAL JOURNAL OF APPROXIMATE REASONING 1988, CHIU et al., "A Fuzzy Logic Programming Environment for Real-Time Control", see page 169. *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0636967A1 (en) * 1993-07-29 1995-02-01 STMicroelectronics S.r.l. Method and apparatus for storing membership functions
US5790755A (en) * 1993-07-29 1998-08-04 Sgs-Thomson Microelectronics S.R.L. Fuzzy logic electronic controller architecture having two section membership function memory

Also Published As

Publication number Publication date
US5425131A (en) 1995-06-13
US5245695A (en) 1993-09-14
AU2179692A (en) 1993-01-12
JPH06511331A (en) 1994-12-15
US5459816A (en) 1995-10-17
KR930001089A (en) 1993-01-16
KR950008396B1 (en) 1995-07-28

Similar Documents

Publication Publication Date Title
US5425131A (en) Minimum comparator for fuzzy microcontroller
US5401949A (en) Fuzzy logic barcode reader
US5485550A (en) Method and apparatus for fuzzy logic rule execution
US5204935A (en) Programmable fuzzy logic circuits
EP0694854B1 (en) Improved neural semiconductor chip architectures and neural networks incorporated therein
US5412752A (en) Expandable fuzzy microcontroller core
US5131071A (en) Fuzzy inference apparatus
EP0694855A1 (en) Search/sort circuit for neural networks
Wang et al. Evolutionary learning of BMF fuzzy-neural networks using a reduced-form genetic algorithm
US6523018B1 (en) Neural chip architecture and neural networks incorporated therein
US5673365A (en) Fuzzy microcontroller for complex nonlinear signal recognition
US3934231A (en) Adaptive boolean logic element
US5467426A (en) Digital fuzzy inference apparatus having time-divisional control function
US5075868A (en) Memory modification of artificial neural networks
US6041321A (en) Electronic device for performing convolution operations
EP0587093B1 (en) Information processing apparatus using inference and adaptive learning
US5202954A (en) Digital fuzzy apparatus having simplified barycentral operation arrangement
US5103496A (en) Artificial neural network system for memory modification
EP0694192B1 (en) Recognition system and method
Gabrielli et al. A fast digital fuzzy processor
US5710867A (en) Method for parallel processing of fuzzy logic inference rules and corresponding circuit architecture with fuzzy inputs and outputs
US5751913A (en) Reconfigurable neural network and difference-square neuron
US5710868A (en) Apparatus and method for generating a fuzzy number for use in fuzzy logic systems
Barto et al. Cooperativity in networks of pattern recognizing stochastic learning automata
Evmorfopoulos et al. An adaptive digital fuzzy architecture for application-specific integrated circuits

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AU CA JP KR NO

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FR GB GR IT LU MC NL SE

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: CA