Fuzzy level control of a tank with optimum valve movement

Fuzzy level control of a tank with optimum valve movement

Fuzzy Sets and Systems 150 (2005) 507 – 523 www.elsevier.com/locate/fss Fuzzy level control of a tank with optimum valve movement A. Khoei∗ , Kh. Had...

628KB Sizes 0 Downloads 65 Views

Fuzzy Sets and Systems 150 (2005) 507 – 523 www.elsevier.com/locate/fss

Fuzzy level control of a tank with optimum valve movement A. Khoei∗ , Kh. Hadidi, M.R. Khorasani, R. Amirkhanzadeh Department of Electrical Engineering, Urmia University, Urmia 57159, Iran Received 15 July 2003; received in revised form 27 July 2004; accepted 20 September 2004 Available online 18 October 2004

Abstract This paper presents a fuzzy-based controller chip to control the level of a tank. A motor valve controls the tank level. The significant aim of this paper is to present a controller for minimizing the movement of the motor valve, at the same time, setting the level of the tank at defined points. The advantages of this type of control are to reduce both motor and input valve amortization and to increase their useful lifetime. On the other hand, simple and inexpensive elements are used in order to measure tank level and output flow. This is another advantage of the method. The controller is designed by fuzzy techniques in 0.35 m CMOS technology. The die size of the chip is 0.052 mm2 . © 2004 Elsevier B.V. All rights reserved. Keywords: Fuzzy level control; Tank valve movement

1. Introduction There are two conventional methods for controlling and setting the level of tanks which are used in industries such as power plants and refineries. In one of these methods, the tank level is controlled by an on–off controller. In this method, a range is defined for the tank level. If the level exceeds the maximum range, input flow will be cut off completely and if it goes below the minimum range, maximum input flow will apply to the tank. Thus, the tank level remains in the allowed range. Flow switching is usually done by motor or pneumatic valves activated by a solenoid. Simplicity and low cost are the advantages of this method but to keep the level at a constant point is difficult and also amortization of input valve or motor is another drawback. ∗ Corresponding author. Tel./fax: +98 441 345 1037.

E-mail address: [email protected] (A. Khoei). 0165-0114/$ - see front matter © 2004 Elsevier B.V. All rights reserved. doi:10.1016/j.fss.2004.09.009

508

A. Khoei et al. / Fuzzy Sets and Systems 150 (2005) 507 – 523 M

Decoder 5 × 32

...

Fuzzy Controller

32 points

hsmax=4hs min

h24=h'max

. . .

5bits (H)

DIGITAL CIRCUIT h2=hmin

hmin hsmin

...

h1-h'min

Range of hset

16 points

Fig. 1. Schematic of a tank and its control system.

In the other method, a PID controller is used for controlling and exact setting of the level. This method applies a proper PID controller in a feedback loop and controls the level of the tank with a convenient accuracy. This is an advantage of this method but it is complicated and expensive and valve amortization is high, too. This paper proposes a third method to control the level of a tank. The method has almost all advantages of the other two methods. It sets the level of the tank at desired points constantly. Valve and motor amortization are minimized. Meanwhile it is simple and inexpensive. In this method, the rate of variation in output valve must be low which is a restriction of this method. The main parts of this controller are two fuzzy systems which implement a logarithm and an antilogarithm function. These fuzzy systems are constructed using product inference engine, triangular fuzzifier, center of gravity (COG) defuzzifier, and are implemented by current mode circuits. The controller is able to measure the level and output flow of a tank and then set the level at a desired point with only one movement of the input valve. 2. Algorithm of the proposed method The level of a tank is measured by many bar sensors, inserted into its body (Fig. 1), and the water in it plays the role of a switch. That is, when a sensor touches the water, a circuit containing that sensor will be closed; otherwise, it is open. The information obtained from sensors is converted into a 5-bit digital word to show the tank level (h). Another controller input is a 5-bit digital word regarding the desired set point (hset). The output of the controller is a 5-bit digital word, too. This word is an input to a decoder. Each one of the 32 outputs of the decoder denotes one allowed point for positioning input valve (When output word is 00000, the valve is completely closed and when it is 11111, the valve is completely open and 30 words between 0 and 31 denote 30 positions between completely closed and completely open states). In order to correct the operation of the controller with 5-bits data, the following assumptions should be considered:

A. Khoei et al. / Fuzzy Sets and Systems 150 (2005) 507 – 523 H (5-bits)

C.V

Control Gates Rs

ST1

MUX1

ck

C.V

Rs

ST1

S0

FUZZY

C.Hset Rs

C.Hset

Register(Hset1)

ck

ST1

C.V

Control Gates

S0

Register(H)

H-

C.Hset

ck

C.V

H+

509

Subtractor Adder Block

MUX3

BLOCK Register(Hset2) MUX2 Hset (5-bits)

C.V

Register 2

Control Gates

C.H

Register 1

C.V C.Hset

CLk2

Rs1

Equal

5 bits H

Comparator 5 bits Hset2

CLk1

Rs2

Upper

(11111)

S0

(00000)

DT

Time Measuring Block

S0

Control Gates

MUX4 S1

5-Bit digital signal Control signals

CLk1

C.Hset

TOWARD DECODER

Fig. 2. Block diagram of controller used to set the level of tank at hset.

Assumption 1. Output and input valves can only have 16 and 32 different positions, respectively. Assumption 2. Maximum set point can be four times greater than the minimum set point. That is, the range of controllable level is three times that of the minimum selected set point. Assumption 3. Twenty-four bar sensors are inserted into the tank to designate its level. The level is controllable at 22 points; and there is one sensor at the top and another below these 22 sensors. Assumption 4. A sensor named hmin is used (the sensor on the right in Fig. 1) in order to reset Register 1 during the initial operation. Fig. 2 shows the block diagram of a controller used to set the level of a tank at a desired point (hset) with measuring h and t (time taken for a change of level from one sensor to another adjacent one). The dynamic equations for the system can be written as A h = qo − qi t

and

 qo = a 2gh,

(1)

where qo is the output flow, qi is the input flow, h is the level of water in the tank, g is the gravitational acceleration, a is the area of output valve, and A is the tank area.

510

A. Khoei et al. / Fuzzy Sets and Systems 150 (2005) 507 – 523

If the level of the tank is desired to be set at a point constantly, the following equation should be satisfied: qi = qo

at hset level,

(2)

where hset is a desired set point. That is

√   qo qo hset qi (hset) = a 2ghset = √ . × 2ghset = √ 2gh h

If qi = 0 or input valve is closed, then   qi (hset) 1 hset Ah hset qi (hset) = ⇒ = . t h Ah t h

(3)

(4)

The operation (as initial operation of controller) is done in the following steps by evaluating Eq. (4) with fuzzy systems: 1. At first, it is assumed that the tank is empty and for filling it up, the input valve must be completely open. This operation can be done by setting Register 1 to 11111; for this purpose, a switch named start switch has been used. This switch will reset other registers and flip-flops used in the circuit. 2. As soon as the level reaches hmin (right hand sensor), one step above the h min in Fig. 1, Register 1 is cleared to zero, closing the input valve completely. 3. In this step, the operator sets the 5-bit digital word denoting hset to a desired number and sets output valve in a desired position. 4. As soon as the output valve stops, the time measuring block will receive a signal (CV signal) and will start to measuring the time it takes for the change of level from hmin to h min. 5. Finally, the fuzzy block will evaluate necessary input flow, in digital format, to control the input valve. This word is saved in Registers 1 and 2. Two states may occur (general operation of the controller) after the initial operation and controller must be able to set the tank level at these states. State 1: Change in output valve. In this case, qi can be obtained by the following equation:       q q Ah hset 1 hset hset i i qi = qo = + qi ⇒ = ± , (5) h t h Ah A|h| t h where qi is the input flow before the output valve changes and is saved in Register 2. t is the time for level change from one sensor to another adjacent sensor. In this case, √ as soon as the output valve changes, the time measuring block will measure t and expression (1/t) hset/ h is evaluated by fuzzy block; then regarding the increase or decrease in the level, the above expression is added to or subtracted from qi /A|h|. Therefore, according to the new amount of qi , the decoder places the input valve at a proper position. Thus, the level reaches the desired set point. State 2: Change in set point. In this case, it is not necessary to measure the output flow since the output valve does not change. The new qi can be evaluated by the following equation:  √ √ √ hset2 hset2 qo hset2 qo qi = , (6) = qi = √ × hset1 × √ √ hset1 h h hset1

A. Khoei et al. / Fuzzy Sets and Systems 150 (2005) 507 – 523

220V

C

511

R

Brass Bar

GND(Body of Tank)

Fig. 3. A switch constructed by a brass bar.

where hset2 is the new desired set point and hset1 is the previous one. Thus, if hset changes, a signal (Chset) will change the inputs of fuzzy block to qi , hset1 and hset2. Then, the above expression is calculated by the fuzzy block and is sent to the decoder. Of course, regarding the amount of the calculated qi , the decoder sets the input valve at the desired point. Hence, by using this method, if output flow or set point changes, the input valve will only move once to set the level of the tank at a desired point. Thus causing reduction in motor and input valve amortization and increasing their useful lifetime. To implement the above steps, a controller is needed which contains: fuzzy block, time measuring block, subtractor–adder block, some registers and multiplexers, and some control gates as shown in Fig. 2. A circuit should also be designed to change the information obtained from sensors into a digital data. 3. Extracting tank level as a 5-bit digital word As mentioned in the previous sections, the level of liquid in the tank is measured by some bar sensors inserted into the tank. These bar sensors together with the circuit shown in Fig. 3, provide some information which can be used for extracting tank level as a digital word. The switch shown in Fig. 3 is constructed by a bar sensor and water in the tank. If a sensor touches the water in the tank, this switch will be on, otherwise it will be off. The output of these circuits is either logical 1 or 0, depending on the water touching the corresponding bar sensor or not. The information obtained from these circuits (Fig. 3) will enter into three 12-input and two 14-input OR gates. The output of these gates is a 5-bit digital word denoting the level of the tank. 4. Functional blocks 4.1. Time measuring block The different parts of time measuring block are illustrated in Fig. 4. When output valve changes from one position to another, a pulse named CV is generated and applied to the clock of flip-flop1 (the width of this pulse must be at least 400ps and can be generated by a monostable). Now, this block is ready to measure the output flow. As soon as the level passes from a sensor, flip-flop 2 receives a signal named Ch and counter starts to measure the time (since the clock is enabled now). When the level passes the next adjacent sensor, the counter will be disabled and measurement of the time stops. Finally, the data obtained by counting t is saved into a 5-bit register and FF1 is cleared by a circuit (gates in Fig. 4). The clock of the counter should be designed properly in order to measure all possible t’s by a 5-bit data.

512

A. Khoei et al. / Fuzzy Sets and Systems 150 (2005) 507 – 523 ST1 C.V

RS

reset

ck

ck 1 ST1 reset C.h

D

FF1 reset

GATES

N A N D

counter NOT

5-bits

5-bits Registers

∆T

CE ck (negative edge)

FF2 D

Fig. 4. Time measuring block.

4.2. Fuzzy block (as the important part of the controller) Nowadays, fuzzy logic and fuzzy systems are getting increasingly popular in a wide range, such as theoretical and experimental sciences and industrial applications. In theoretical fields, many applications such as theory of possibility [12], decision analysis [20], image processing and pattern recognition [5,7,17], Biological process [3], Computing with words (CW) [21], and so on, have been reported and their use has been demonstrated. In industrial systems, fuzzy control is the most important application of fuzzy logic and fuzzy systems. In this area, many successful applications have been reported. For instance, power systems and nuclear reactor control [2,11], control of solar power plant [18], control of ABS braking system [15], elevator control [6], motor control [8], aircraft flight control [14], robot control [13], and speed control [16]. Fuzzy systems are based on knowledge or rules. The heart of a fuzzy system is a knowledge base that is configured by fuzzy if–then rules, and a fuzzy if–then rule is a conditional expression that is demonstrated by many, continues membership functions. The start point of designing a fuzzy system is to obtain a set of if–then rules from expert knowledge or the knowledge of inspected field. The next step is to combine these rules to generate a unit system. Various fuzzy systems use different methods for combining the rules [19]. The significant motivation of selecting fuzzy technique for this project is the role of fuzzy systems as nonlinear mapping. That is, fuzzy systems are general approximators, therefore, we can approximate every nonlinear function with an arbitrary accuracy if enough fuzzy sets are defined in the domain of variables. Since, domain of variables is rather large in this project (the input variables, qi , t, hset, √ h, can accept integer numbers between 1 and 31), and regarding the type of the function (w = (1/x) y/z), to obtain a good approximation by fuzzy systems, it is necessary to define many fuzzy sets for each input [19]. For example, at least, 10 fuzzy sets are needed to define each one of them. Since the function is a 3-input variable function it is necessary to have at least 1000 rules to obtain complete combinations of rules. To solve this problem, a shortcut method is used to evaluate the function. That is, instead of direct evaluation of w function, the logarithm of each independent variable is calculated first and then, the logarithm of overall function (log(w)) is obtained by Eq. (7). Using Eq. (8), w function can be found.    1 y log2 (w) = log2 = − log2 (x) + 21 (log2 (y) − log2 (z)), (7) x z

A. Khoei et al. / Fuzzy Sets and Systems 150 (2005) 507 – 523

513

Logarithm part MFC 1 MFC 2

µ1 µ2

Current mirror 1 Current mirror 2

µ1.Z1 µ 2.Z 2

Current copier 1

I1

Current copier 2

I2

Current copier 3

I3

Control Control q'i or ∆T

S0

S1 D/A

h MUX hset

. . . MFC 12

MFC 1 I1 I3

I2

Control

MFC 2

. . . µ12

µ1 µ2

. . .

0.5 Control I1

MFC 14

Current mirror12

Current mirror 1 Current mirror 2

µ12.Z12

µ1.Z1 µ 2.Z 2

. . . µ14

Current mirror14

µ1.Z1 + µ 2.Z 2 + ... + µ12.Z12

5-bits A/D

µ14.Z14

qi

µ1.Z1 + µ 2.Z 2 + ... + µ14.Z14

Antilogarithm part

Fig. 5. Different parts of fuzzy block.

w = Anti log(log2 (w)) = 2 log2 (w).

(8)

Thus for evaluating w function, it is sufficient to approximate a logarithm and an antilogarithm function by fuzzy sets and then use Eqs. (1) and (2) to calculate the final result. Since logarithm and antilogarithm functions are single variable functions, the fuzzy system can be simplified. For example, we only need a few rules and do not need any min–max functions to combine the rules. If fuzzy sets with 50% overlapping are used, the defuzzifier section will be considerably simple and this section can be realized with a simple sum. The internal parts of a fuzzy block are shown in Fig. 5. Fuzzy systems that approximate logarithm and antilogarithm functions have been constructed by product inference engine, triangular fuzzifiers, and COG defuzzifier, and implemented by current mode circuits. Because of the difficulty in implementing the sum function in voltage mode, current mode approach is superior. The block shown in Fig. 5 contains a digital-to-analog converter (D/A), logarithm part, antilogarithm part, current copiers, and an analog-to-digital converter (A/D). Logarithm and antilogarithm parts contain membership function circuits (MFCs as fuzzifiers) and current mirrors as inference engine. To realize

514

A. Khoei et al. / Fuzzy Sets and Systems 150 (2005) 507 – 523

M4

M5

M3

M6

Iref

M20

M19 Y

Iaux

X M11

M12

M15

M17 Iref

Iaux M1

M7 M9

M13

M10

M14

X M2

Iin

Io

M16

M18

m

m'

M8

X

Y

X Inverter

Y Inverter

Slope m

Slope m'

Fig. 6. Membership function circuit.

defuzzifier section and obtain a crisp value, it is sufficient to combine the output currents of current mirrors; thus z∗ =

1z1 + 2z2 + · · · + nzn 1 + 2 + · · · + n

= 1z1 + 2z2 + · · · + nzn.

(9)

In order to decrease the size of the hardware, only one fuzzy system is used to evaluate three logarithm functions. Each input variable is entered into this part and the output is saved in a current copier (it is an analog memory), then regarding Eq. (7), the currents stored in three copiers are combined and the result enters into the antilogarithm section for evaluating w function in analog format. Afterwards, the analog data is converted into a 5-bit digital data by an A/D and exits the fuzzy block. 4.2.1. Design of membership functions Both logarithm and antilogarithm sections are one-variable functions. Implementation of these functions with fuzzy systems is desired. At first, fuzzy sets and membership functions for input and output variables are needed. The number and shape of fuzzy sets are important to reach a desired approximation. Fuzzy toolbox in Matlab software helps us to determine fuzzy sets to obtain appropriate approximation. Basic building cell of MFC is shown in Fig. 6. This circuit is the same as the one reported in [9,10], with a few modifications to generate two different slopes in one triangular membership function. When ascending slope is generated, M11 switch is on and M12 switch is off and the slope m, is obtained by M7–M10 transistors. For descending slope, M12 switch is on and M11 is off and the slope m is built by M7, M8, M13, and M14 transistors. With this structure, it is possible to generate every triangular (or with slightly change, trapezoidal) membership function, with any desired slope for m and m . X and Y invertors are used to control M11 and M12 switches. Since, the threshold voltage (Vt ) of a transistor changes with the rate of (W/L), in order to have exact rate for slopes, the output transistors of current mirrors are repeated in parallel. This structure is shown in Fig. 7. The method of product inference engine of fuzzy sets is used. Since output membership functions are singleton, current mirrors are used to implement inference engine. M15–M18 transistors of Fig. 6 are used to implement this section. In order to have a crisp value from fuzzy sets, COG defuzzifier is employed. Since these systems are one-variable functions and membership functions with 50% overlapping in input

A. Khoei et al. / Fuzzy Sets and Systems 150 (2005) 507 – 523

X

Y

M11

515

M12

M7 M9-1

M9-2

M9-3

M9-m

M13-1

M13-2

M13-m'

M10-1

M10-2

M10-3

M10-m

M14-1

M14-2

M14-m'

M8

Slope m

Slope m'

Fig. 7. Parallel structure for current mirror.

Fig. 8. MF for logarithm.

variables are applied, it is necessary to use only a sum at the output of current mirrors (Eq. (9)) for defuzzification with COG method. In order to approximate these functions by means of fuzzy systems, 13 MFCs in logarithm and 14 in antilogarithm sections are designed. Figs. 8 and 9, show membership functions generated by MFCs for logarithm and antilogarithm sections, respectively. The range of input currents for log-part is from 1 to 31 A and for antilog-part is from 0 to about 25 A. Fig. 10 presents the absolute error for approximating the logarithm function by fuzzy system. Since 1 the ratio of maximum error (275 nA) to maximum range of output current (25 A) is less than 32 , 5-bits

516

A. Khoei et al. / Fuzzy Sets and Systems 150 (2005) 507 – 523

Fig. 9. MF for antilogarithm.

Fig. 10. Absolute error in implementing log-function by a fuzzy system. 1 resolution (275 nA/25 A = 0.011 < 32 ) is needed to calculate the logarithm function. Fig. 11 presents the absolute error for approximating antilogarithm function by designed fuzzy system. Since the ratio of 1 maximum error (600 nA) to maximum range of output current (40 A) is less than 32 , there will be 5-bits 1 resolution in calculating antilogarithm function (600 nA/40 A = 0.015 < 32 ).

A. Khoei et al. / Fuzzy Sets and Systems 150 (2005) 507 – 523

517

Fig. 11. Absolute error in implementing antilog-function by fuzzy system.

4.2.2. Current copier cells As mentioned in previous sections in order to decrease the size of the hardware, only one fuzzy system is used to evaluate three logarithm functions. Instead, three current copier cells have been employed for saving current obtained from logarithm part of each of the three inputs. In contrast to current mirrors, the current copier technique does not require matching of transistors for its operation [4]. The circuit requires a noncritical MOS transistor, noncritical capacitor and switches. In a practical current copier cell, the effect of channel length modulation, charge feedthrough from switches, and parasitic capacitive coupling from drain to gate of the transistor, must be addressed. To eliminate this effect an op-amp is used as shown in Fig. 12. To copy and save a current, first, a and b switches are on and c is off, therefore, capacitor C charges by the op-amp with a gain of 24. Therefore, the current of the two branches and the voltages of nodes 3 and 6 are equal. To connect M5 to the load and copy current to load branch, first switch a and then switch b will be off and switch c will be on. The transistors in load branch are exactly like the ones in input branch, thus VDS of M5 does not change. Fig. 13 shows a simulation of current copier operation. The range of input current for current copiers is from 3.5 to 25 A. Maximum error in copying the currents is about 1.4%. 4.2.3. Data converter and timing block A digital-to-analog converter is employed in fuzzy block to convert 5-bit digital words into an analog signal. This D/A converts a 5-bit digital word into an analog signal in range of 1–31 A. A conventional structure is used for this purpose. An algorithmic A/D converter has also been selected to convert analog data exited from antilogarithm part into a 5-bit digital word. The current comparator proposed in [1] is used. The range of input current is from 0 to 20 A. In this range A/D works in its linear operation.

518

A. Khoei et al. / Fuzzy Sets and Systems 150 (2005) 507 – 523

M1

M3 3

M2

M6

M4

M13

6

M14

3

+ bx

cx

M8

I (from MFCS) bx

M12

M7

6

-

M11

bias

M10

M15

M9

(W L ) (W L ) (W L ) (W L ) (W L )

1,2,3,4,6,7

= 24

5,13,14

=4

8,9,10

= 20

2

11,12

= 18

2

15

= 12

2

2

2

Vbias = 0.7 volt

M5 ax bx cx

Fig. 12. Op-amp based current copier.

Fig. 13. Simulation results of current copier circuit.

The timing block is responsible for generating control signals to the fuzzy block (multiplexer, switches of copiers), and clock of Registers 1 and 2. Internal parts of this block are shown in Fig. 14. It contains D flip-flops, NAND and AND gates, delay circuits, and an oscillator. The oscillator, named Ken Martin oscillator, which is enabled by a pulse signal (this pulse is generated when output valve or set point changes), generates a clock pulse with a period of about 130 ns. This clock is responsible to generate the other timing signals. The delay circuit makes a delay in descending edge of ax, ay, and az signals in order to generate bx, by, and bz signals in Fig. 14.

A. Khoei et al. / Fuzzy Sets and Systems 150 (2005) 507 – 523

D

Pul

Clk

ax1

Oscillator

Reset

D

Pul

Ck

Q

Q

Pul

RS

RS D

Qn

ay

Ck

Pul Qn

Pul

Right Delay

Ck

Q

D

Qn

Right Delay

cx

D

Pul

Qn

az Ck

by

Right Delay

cy

Right Delay

cz

set Ck

Q

D

Qn

D

Reset of Oscillator

Clk

bx

set

Qn

S0 Q

Right Delay

Qn

RS Ck

S1

ax

519

set

Pul

Right Delay

bz

set Ck

Q

Qi2 (Clock of Register1)

Fig. 14. Diagram of the timing block in gate level.

Fig. 15 shows the simulation results of timing block; this block is responsible for generating pulses required in fuzzy block and clock of Registers 1 and 2. Timing block starts its operation after receiving a pulse signal (this pulse is generated if output valve or set point changes). At first, oscillator generates a clock pulse with a period of about 130 ns, then this clock generates other pulses. Signals ai, bi, and ci, are control signals of each current copier and signals S0 and S1 are control signals of fuzzy block multiplexer. Thus, depending on S0 and S1 signals, three digital words enter into logarithm section and necessary calculations are saved in the corresponding current copier. After ending all necessary calculations, and obtaining a 5-bit digital word that designates the input flow, the clock of Register 1 will be generated. This clock will save the obtained input flow into Register 1. Total time, from starting the pulse to registering the evaluated input flow, is about 1 s. Then, the oscillator will be disabled and prepared to receive another initiating pulse. The total fuzzy block is simulated with different signals and data, and its operation is tested. At first, the operation of this block was √ tested for making various functions. For example for w = 40/ x, the results were compared with the original functions. Fig. 16 shows √ the curve of the function for w = 40/ x, implemented by fuzzy block, the exact curve is also drawn in this figure for comparison. Fig. 17 shows the error for this approximation. The ratio of maximum 1 error (800 nA) to maximum range of output current (40 A) is less than 32 , therefore there will be 5-bits 1 resolution in calculating this function (800 nA/40 A = 0.02 < 32 ). This fuzzy block is tested with different digital data and digital outputs are obtained for each case. The results are completely satisfactory and show that the fuzzy block evaluates the desired function, that is,

520

A. Khoei et al. / Fuzzy Sets and Systems 150 (2005) 507 – 523

Fig. 15. Timing block simulation results.

√ w = ((32/x) y/z) in digital format accurately. Fig. 18 shows this issue for a typical input data. Output data are obtained after about 1 s. The layout of the controller using 0.35 m CMOS technology has been obtained and the die size is 0.052 mm2 .

5. Conclusions In this paper, a new method is proposed to design an applicable specific fuzzy controller chip for controlling the level of a tank. For this purpose, first a relation for describing the system is obtained. This relation is completely nonlinear. Since fuzzy systems are nonlinear mappings and general approximators, they are used to implement the obtained relations and design the controller. By employing this controller, if output flow or set point changes, the input valve will only move once to set the level at desired point, thus useful lifetime of motor and input valve will be optimum.

A. Khoei et al. / Fuzzy Sets and Systems 150 (2005) 507 – 523

521

√ Fig. 16. The curve of function w = 40/ x.

√ Fig. 17. The curve of absolute error for functionw = 40/ x.

Fuzzy systems in this controller are constructed by product inference engine, triangular fuzzifiers, COG defuzzifier and implemented by current mode circuits. Simulation results are presented for 0.35 m CMOS technology. The die size of the chip is 0.052 mm2 .

522

A. Khoei et al. / Fuzzy Sets and Systems 150 (2005) 507 – 523

√ Fig. 18. Typical output of fuzzy block for functionw = ((32/x) y/z).

References [1] I. Baturone, S. Sanchez Solano, A. Barriga, J.L. Huertas, CMOS fuzzy controllers implemented as mixed-signal ICs, IEEE Internat. Confer. on Circuits and Systems (ISCAS’96) vol. 3, pp. 422–425. [2] J.A. Bernard, Use of rule-based system for process control, IEEE Control Systems Mag. 8 (5) (1988) 3–13. [3] E. Czogala, T. Rawlik, Modeling of a fuzzy controller with application to the control of biological process, Fuzzy Sets and Systems 31 (1989) 13–22. [4] S.J. Daubert, D. Vallancourt, Y.P. Tsividis, Current copier cells, Electron. Lett. 8, 24 (25) (1988) 1560–1562. [5] Y. Egusa, H. Akahori, A. Morimura, N. Wakami, An application of fuzzy set theory for an electronic video camera image stabilizer, IEEE Trans. Fuzzy Systems 3 (3) (1995) 351–356. [6] F. Fujitec, FLEX-8800 Series Elevator Group Control System, Fujitec Co. Ltd., Osaka, Japan, 1988. [7] P. Gader, J. Keller, A fuzzy logic system for the detection and recognition of handwritten street numbers, IEEE Trans. Fuzzy Systems 3 (1) (1995) 83–95. [8] P. Guillemin, Fuzzy logic applied to motor control, IEEE Trans. Ind. Appl. 32 (1) (1996) 51–56. [9] J.L. Huertas, S. Sanchez Solano, A. Barriga, I. Baturone, Serial architecture for fuzzy controllers, in: Second Internat. Conf. on Fuzzy Logic and Neural Networks, vol. 1, Iizuka, Japan, July 1992, pp. 535–538. [10] J.L. Huertas, S. Sanchez Solano, A. Barriga, I. Baturone, Integrated circuit implementation of fuzzy controllers, IEEE J. Solid State Circuits 31 (7) (1996) 1051–1058. [11] M. Kinoshita, T. Fukuzaki, T. Satoh, M. Miyake, An automatic operation method for control rods in BWR plants, in: Proc. Specialist Meeting on In-Core Instrumentation and Reactor Core Assessment, Cadarache, France, 1988. [12] R. Kruse, J. Gebhardt, F. Klawonn, Foundations of Fuzzy Systems, Wiley, New York, 1994. [13] K. Kumbla, M. Jamshidi, Fuzzy control of three links of a robotic manipulator, Proc. Fifth Internat. Fuzzy Systems Association’s World Congr., 1993. [14] L.I. Larkin, A fuzzy logic controller for aircraft flight control, in: M. Sugeno (Ed.), Industrial Application of Fuzzy Control, North-Holland, Amsterdam, 1985, pp. 87–104. [15] G.F. Mauer, A fuzzy logic controller for an ABS braking system, IEEE Trans. Fuzzy Systems 3 (4) (1995) 381–388.

A. Khoei et al. / Fuzzy Sets and Systems 150 (2005) 507 – 523

523

[16] S. Murkami, M. Maeda, Application of fuzzy controller to automobile speed control system, in: M. Sugeno (Ed.), Industrial Application of Fuzzy Control, North Holland, Amsterdam, 1985, pp. 105–124. [17] S.K. Pal, Fuzzy sets in image processing and recognition, Fuzzy Logic Technology and Applications, IEEE Technology Update Series, 1994. [18] R. Rubio, M. Berenguel, E.F. Camacho, Fuzzy logic control of a solar power plant, IEEE Trans. Fuzzy Systems 3 (4) (1995) 459–468. [19] Wang Li-Xin, A Course in Fuzzy Systems and Control, Pearson Education POD, January 1997, ISBN: 0135408822. [20] L.A. Zadeh, Outline of a new approach to the analysis of complex systems and decision processes, IEEE Trans. Systems Man Cybernet. 3 (1) (1973) 28–44. [21] L.A. Zadeh, Fuzzy Logic = Computing with words, IEEE Trans. Fuzzy Systems 4 (2) (1996) 103–111.