                          INTRODUCTION
     
     Temperature control is widely used in various processes.  These
     processes, no matter it is a process of large industrial plant,
     or a process in home appliance, share several unfavorable
     features such as non-linearness, interference, dead time, and
     external disturbance, etc. Conventional control approaches
     usually cannot achieve satisfactory results for this kind of
     processes. 
     
     The following example is third in series using fuzzy logic to
     control temperature. By using pressure as an input variable, we
     develop a sophisticated temperature controller. This example is
     developed with FIDE, an integrated fuzzy system development
     environment from Aptronix. 
     
     FUZZY TEMPERATURE CONTROLLER FOR REACTOR
     
     A film manufacture equipment is shown in Figure 1. Gas in a
     reactor is drained out and a little argon gas is input. Imposing
     high frequency voltage, electricity would be discharged between
     the electrode and the base. Dissociated argon ions crash onto the
     target and make atoms split out so that a film will be generated
     on the base. Because base temperature is critical in the process
     of film generation, temperature control becomes very important. 
     
     Figure 1 shows the system diagram of a fuzzy temperature
     controller used in this kind of reactor. Inputs to the controller
     are desired base temperature, measured base temperature, measured
     pressure in the reactor. Pressure is used because it has a large
     influence on base temperature to be controlled. High pressure
     results in high temperature. Output signals of the controller
     adjust the heater and the electromagnetic valve for the cooling
     water in the reactor. 
     
     
     Figure 2 shows the fuzzy controller that has three input
     variables and two output variables. Inputs can be prepared from
     feedback signals from sensors. The first input variable is the 
     difference between desired temperature and measured temperature,
     the second input variable is the variation between current temperature 
     difference and previous temperature difference, the third
     input variable is current pressure p. Two output variables
     are control signals to hte heater and the cooling valve.
     
     
     Advantages of Fuzzy Controller
     
     A conventional single loop control system adjusts controlled
     output temperature only by the feedback signal from a temperature
     sensor. Pressure changes in the reactor are regarded as noises to
     this system. To design a conventional controller for this kind of
     system is difficult and time consuming. However, using a fuzzy
     controller, we can deal with this problem simply by taking
     factors(such as pressure), which have influence on the output,
     into account when designing the controller. To create a fuzzy
     controller for the above system, what we need to do is to
     write rules that contain not only temperature but also
     pressure in their antecedents. This design process is much
     easier compared with that of conventional controllers
     because we can write rules using commonsense knowledge and
     know-how from experts. Rules are English like sentences and
     intuitive.  No mathematical model of the process is needed
     as in the case of conventional control.
     
     Using FIDE to Design a Fuzzy Controller
     
     FIDE is a product of Aptronix(see attached company information at
     the end of this note) which provides powerful integrated
     development environment for fuzzy logic based systems. 
     
     The process of designing a fuzzy controller can be summarized as:

     Define input/output variables. This process includes definition
     of labels and membership functions for each variable.  
     
     Create rules that are represented as if-then English like sentences. 
     
     Simulate and tune. 
     
     The input/output variables are given in Figure 2. In the
     following, we give definitions of labels and  membership
     functions for each variable and then provide the rules for the
     controller in a FIU (Fuzzy Inference Unit) source code.
     
     Definitions of Input/Output Variables
     
     Labels and membership functions of input variables are defined in
     Figure 3 and Figure 4. Those of output variables are in Figure 5.
     For membership functions whose shapes are simple, such as
     triangles, they are easy to be defined in a FIU source code. For
     example, for label P_Large in Figure 3, the definition can be
     written as (@0.6, 0, @1.0, 1), and for label Zero, the definition
     can be written as (@-0.3, 0, @0.0, 1, @0.3, 0), and so on. For
     more details on the definition of membership functions, please
     see Fide User's Manual and Reference Manual.
     Note that all values of variables here are normalized into the
     range of [-1,1] or [0,1]. 
     
     Figure  3   Labels and Membership Functions of Input Variables 
     Error and Var_Error
     
     
      Figure  4   Labels and Membership Functions of Input Variable
     Pressure
     
     
      Figure  5   Labels and Membership Functions of Output Variables
     Var_Heater and Var_Cooling
     
     
     FIU Source Code
     
     $ FILENAME:	temp/temp3.fil 
     $ DATE: 		09/18/1992 
     $ UPDATE:	     09/23/1992
     
     $ Temperature Controller : Three inputs, two outputs 
     $ INPUT(S):   Error, Var(iationOf)_Error, Pressure 
     $ OUTPUT(S):  Var(iationOf)_Heater, Var(iationOf)_Cooling(Valve)
     
     $ FIU HEADER
     
     fiu tvfi (min max) *8;
     
     $ DEFINITION OF INPUT VARIABLE(S)
     
     invar Error " " : -1.0 () 1.0 [
     	P_Large        (@0.6,  0,  @1.0,  1),
     	P_Medium       (@0.3,  0,  @0.6,  1,  @1.0,  0),
     	P_Small     	(@0.0,  0,  @0.3,  1,  @0.6,  0),
     	Zero        	(@-0.3, 0,  @0.0,  1,  @0.3,  0),
     	N_Small     	(@-0.6, 0,  @-0.3, 1,  @0.0,  0),
     	N_Medium    	(@-1.0, 0,  @-0.6, 1,  @-0.3, 0),
     	N_Large     	(@-1.0, 1,  @-0.6, 0)
     	]; 
     
     invar Var_Error " " : -1.0 () 1.0 [
     	P_Large     	(@0.6,  0,  @1.0,  1),
     	P_Medium    	(@0.3,  0,  @0.6,  1,  @1.0,  0),
     	P_Small     	(@0.0,  0,  @0.3,  1,  @0.6,  0),
     	Zero        	(@-0.3, 0,  @0.0,  1,  @0.3,  0),
     	N_Small     	(@-0.6, 0,  @-0.3, 1,  @0.0,  0),
     	N_Medium    	(@-1.0, 0,  @-0.6, 1,  @-0.3, 0),
     	N_Large     	(@-1.0, 1,  @-0.6, 0)
     	]; 
     
     invar Pressure " " : 0.0 () 1.0 [
     	Large          (@0.5, 0, @1.0, 1),
     	Medium         (@0.0, 0, @0.5, 1, @1.0, 0),
     	Small          (@0.0, 1, @0.5, 0)
     	];
     
     $ DEFINITION OF OUTPUT VARIABLE(S)
     
     outvar Var_Heater " " : -1.0 () 1.0 * (
     	P_Large      	= 0.8,      
     	P_Medium     	= 0.4,
     	P_Small      	= 0.2,
     	Zero         	= 0.0,
     	N_Small      	= -0.2,
     	N_Medium     	= -0.4,
     	N_Large      	= -0.8
         );
     
     outvar Var_Cooling " " : -1.0 () 1.0 * (
     	P_Large      	= 0.8,      
     	P_Medium     	= 0.4,
     	P_Small      	= 0.2,
     	Zero         	= 0.0,
     	N_Small      	= -0.2,
     	N_Medium     	= -0.4,
     	N_Large      	= -0.8
         );
     
     $ RULES
     
     if Error is P_Large and Var_Error is N_Large and Pressure is Large		
     then Var_Heater  is Zero;
     if Error is P_Large and Var_Error is N_Large	and Pressure is Large		
     then Var_Cooling is N_Small;
     if Error is P_Large and Var_Error is N_Medium and Pressure is Large		
     then Var_Heater  is P_Small;
     if Error is P_Large and Var_Error is N_Medium and Pressure is Large		
     then Var_Cooling is N_Medium;
     if Error is P_Large and Var_Error is N_Small	and Pressure is Large		
     then Var_Heater  is P_Medium;
     if Error is P_Large and Var_Error is N_Small	and Pressure is Large		
     then Var_Cooling is N_Large;
     if Error is P_Large and Var_Error is N_Large and Pressure is Medium	
     then Var_Heater  is P_Small;
     if Error is P_Large and Var_Error is N_Large	and Pressure is Medium	
     then Var_Cooling is N_Small;
     if Error is P_Large and Var_Error is N_Medium and Pressure is Medium	
     then Var_Heater  is P_Medium;
     if Error is P_Large and Var_Error is N_Medium and Pressure is Medium	
     then Var_Cooling is N_Medium;
     if Error is P_Large and Var_Error is N_Small	and Pressure is Medium	
     then Var_Heater  is P_Large;
     if Error is P_Large and Var_Error is N_Small	and Pressure is Medium	
     then Var_Cooling is N_Large;
     if Error is P_Large and Var_Error is N_Large and Pressure is Small		
     then Var_Heater  is P_Medium;
     if Error is P_Large and Var_Error is N_Large	and Pressure is Small		
     then Var_Cooling is N_Small;
     if Error is P_Large and Var_Error is N_Medium and Pressure is Small		
     then Var_Heater  is P_Large;
     if Error is P_Large and Var_Error is N_Medium and Pressure is Small		
     then Var_Cooling is N_Medium;
     if Error is P_Large and Var_Error is N_Small	and Pressure is Small		
     then Var_Heater  is P_Large;
     if Error is P_Large and Var_Error is N_Small	and Pressure is Small		
     then Var_Cooling is N_Large;
     
     if Error is P_Medium and Var_Error is N_Large and Pressure is Large		
     then Var_Heater  is N_Small;
     if Error is P_Medium and Var_Error is N_Large and Pressure is Large		
     then Var_Cooling is Zero;
     if Error is P_Medium and Var_Error is N_Medium and Pressure is Large		
     then Var_Heater  is Zero;
     if Error is P_Medium and Var_Error is N_Medium and Pressure is Large		
     then Var_Cooling is Zero;
     if Error is P_Medium and Var_Error is N_Small and Pressure is Large		
     then Var_Heater  is P_Small;
     if Error is P_Medium and Var_Error is N_Small and Pressure is Large		
     then Var_Cooling is N_Medium;
     if Error is P_Medium and Var_Error is N_Large and Pressure is Medium	
     then Var_Heater  is Zero;
     if Error is P_Medium and Var_Error is N_Large and Pressure is Medium	
     then Var_Cooling is Zero;
     if Error is P_Medium and Var_Error is N_Medium and Pressure is Medium	
     then Var_Heater  is P_Small;
     if Error is P_Medium and Var_Error is N_Medium and Pressure is Medium	
     then Var_Cooling is Zero;
     if Error is P_Medium and Var_Error is N_Small and Pressure is Medium	
     then Var_Heater  is P_Medium;
     if Error is P_Medium and Var_Error is N_Small and Pressure is Medium	
     then Var_Cooling is N_Medium;
     if Error is P_Medium and Var_Error is N_Large and Pressure is Small		
     then Var_Heater  is P_Small;
     if Error is P_Medium and Var_Error is N_Large and Pressure is Small		
     then Var_Cooling is Zero;
     if Error is P_Medium and Var_Error is N_Medium and Pressure is Small		
     then Var_Heater  is P_Medium;
     if Error is P_Medium and Var_Error is N_Medium and Pressure is Small		
     then Var_Cooling is Zero;
     if Error is P_Medium and Var_Error is N_Small and Pressure is Small		
     then Var_Heater  is P_Large;
     if Error is P_Medium and Var_Error is N_Small and Pressure is Small		
     then Var_Cooling is N_Medium;
     
     if Error is P_Small and Var_Error is N_Large and Pressure is Large		
     then Var_Heater  is N_Medium;
     if Error is P_Small and Var_Error is N_Large	and Pressure is Large		
     then Var_Cooling is Zero;
     if Error is P_Small and Var_Error is N_Medium and Pressure is Large		
     then Var_Heater  is N_Medium;
     if Error is P_Small and Var_Error is N_Medium and Pressure is Large		
     then Var_Cooling is Zero;
     if Error is P_Small and Var_Error is N_Small	and Pressure is Large		
     then Var_Heater  is N_Small;
     if Error is P_Small and Var_Error is N_Small	and Pressure is Large		
     then Var_Cooling is Zero;
     if Error is P_Small and Var_Error is N_Large and Pressure is Medium	
     then Var_Heater  is N_Small;
     if Error is P_Small and Var_Error is N_Large	and Pressure is Medium	
     then Var_Cooling is Zero;
     if Error is P_Small and Var_Error is N_Medium and Pressure is Medium	
     then Var_Heater  is N_Small;
     if Error is P_Small and Var_Error is N_Medium and Pressure is Medium	
     then Var_Cooling is Zero;
     if Error is P_Small and Var_Error is N_Small	and Pressure is Medium	
     then Var_Heater  is Zero;
     if Error is P_Small and Var_Error is N_Small	and Pressure is Medium	
     then Var_Cooling is Zero;
     if Error is P_Small and Var_Error is N_Large and Pressure is Small		
     then Var_Heater  is Zero;
     if Error is P_Small and Var_Error is N_Large	and Pressure is Small		
     then Var_Cooling is Zero;
     if Error is P_Small and Var_Error is N_Medium and Pressure is Small		
     then Var_Heater  is Zero;
     if Error is P_Small and Var_Error is N_Medium and Pressure is Small		
     then Var_Cooling is Zero;
     if Error is P_Small and Var_Error is N_Small	and Pressure is Small		
     then Var_Heater  is P_Small;
     if Error is P_Small and Var_Error is N_Small	and Pressure is Small		
     then Var_Cooling is Zero;
     
     if Error is Zero and Var_Error is N_Large and Pressure is Large		
     then Var_Heater  is N_Large;
     if Error is Zero and Var_Error is N_Large and Pressure is Large		
     then Var_Cooling is P_Medium;
     if Error is Zero and Var_Error is N_Medium and Pressure is Large		
     then Var_Heater  is N_Medium;
     if Error is Zero and Var_Error is N_Medium and Pressure is Large		
     then Var_Cooling is P_Small;
     if Error is Zero and Var_Error is N_Small and Pressure is Large		
     then Var_Heater  is N_Medium;
     if Error is Zero and Var_Error is N_Small and Pressure is Large		
     then Var_Cooling is Zero;
     if Error is Zero and Var_Error is N_Large and Pressure is Medium	
     then Var_Heater  is N_Medium;
     if Error is Zero and Var_Error is N_Large and Pressure is Medium	
     then Var_Cooling is P_Medium;
     if Error is Zero and Var_Error is N_Medium and Pressure is Medium	
     then Var_Heater  is N_Small;
     if Error is Zero and Var_Error is N_Medium and Pressure is Medium	
     then Var_Cooling is P_Small;
     if Error is Zero and Var_Error is N_Small and Pressure is Medium	
     then Var_Heater  is N_Small;
     if Error is Zero and Var_Error is N_Small and Pressure is Medium	
     then Var_Cooling is Zero;
     if Error is Zero and Var_Error is N_Large and Pressure is Small		
     then Var_Heater  is N_Small;
     if Error is Zero and Var_Error is N_Large and Pressure is Small		
     then Var_Cooling is P_Medium;
     if Error is Zero and Var_Error is N_Medium and Pressure is Small		
     then Var_Heater  is Zero;
     if Error is Zero and Var_Error is N_Medium and Pressure is Small		
     then Var_Cooling is P_Small;
     if Error is Zero and Var_Error is N_Small and Pressure is Small		
     then Var_Heater  is Zero;
     if Error is Zero and Var_Error is N_Small and Pressure is Small		
     then Var_Cooling is Zero;
     
     if Error is N_Small and Var_Error is N_Large and Pressure is Large		
     then Var_Heater  is N_Large;
     if Error is N_Small and Var_Error is N_Large	and Pressure is Large		
     then Var_Cooling is P_Large;
     if Error is N_Small and Var_Error is N_Medium and Pressure is Large 	
     then Var_Heater  is N_Medium;
     if Error is N_Small and Var_Error is N_Medium and Pressure is Large		
     then Var_Cooling is P_Medium;
     if Error is N_Small and Var_Error is N_Small	and Pressure is Large 	
     then Var_Heater  is N_Small;
     if Error is N_Small and Var_Error is N_Small	and Pressure is Large 	
     then Var_Cooling is P_Medium;
     if Error is N_Small and Var_Error is N_Large and Pressure is Medium	
     then Var_Heater  is N_Large;
     if Error is N_Small and Var_Error is N_Large	and Pressure is Medium	
     then Var_Cooling is P_Medium;
     if Error is N_Small and Var_Error is N_Medium and Pressure is Medium 	
     then Var_Heater  is N_Medium;
     if Error is N_Small and Var_Error is N_Medium and Pressure is Medium 	
     then Var_Cooling is P_Small;
     if Error is N_Small and Var_Error is N_Small	and Pressure is Medium 	
     then Var_Heater  is N_Small;
     if Error is N_Small and Var_Error is N_Small	and Pressure is Medium 	
     then Var_Cooling is P_Small;
     if Error is N_Small and Var_Error is N_Large and Pressure is Small		
     then Var_Heater  is N_Medium;
     if Error is N_Small and Var_Error is N_Large	and Pressure is Small		
     then Var_Cooling is P_Medium;
     if Error is N_Small and Var_Error is N_Medium and Pressure is Small 	
     then Var_Heater  is N_Small;
     if Error is N_Small and Var_Error is N_Medium and Pressure is Small 	
     then Var_Cooling is P_Small;
     if Error is N_Small and Var_Error is N_Small	and Pressure is Small 	
     then Var_Heater  is Zero;
     if Error is N_Small and Var_Error is N_Small	and Pressure is Small 	
     then Var_Cooling is P_Small;
     
     if Error is N_Medium and Var_Error is N_Large and Pressure is Large 	
     then Var_Heater  is N_Large;
     if Error is N_Medium and Var_Error is N_Large and Pressure is Large 	
     then Var_Cooling is P_Large;
     if Error is N_Medium and Var_Error is N_Medium and Pressure is Large 	
     then Var_Heater  is N_Large;
     if Error is N_Medium and Var_Error is N_Medium and Pressure is Large 	
     then Var_Cooling is P_Large;
     if Error is N_Medium and Var_Error is N_Small and Pressure is Large 	
     then Var_Heater  is N_Large;
     if Error is N_Medium and Var_Error is N_Small and Pressure is Large 	
     then Var_Cooling is P_Medium;
     if Error is N_Medium and Var_Error is N_Large and Pressure is Medium 	
     then Var_Heater  is N_Large;
     if Error is N_Medium and Var_Error is N_Large and Pressure is Medium 	
     then Var_Cooling is P_Large;
     if Error is N_Medium and Var_Error is N_Medium and Pressure is Medium 	
     then Var_Heater  is N_Large;
     if Error is N_Medium and Var_Error is N_Medium and Pressure is Medium 	
     then Var_Cooling is P_Medium;
     if Error is N_Medium and Var_Error is N_Small and Pressure is Medium 	
     then Var_Heater  is N_Medium;
     if Error is N_Medium and Var_Error is N_Small and Pressure is Medium 	
     then Var_Cooling is P_Medium;
     if Error is N_Medium and Var_Error is N_Large and Pressure is Small 	
     then Var_Heater  is N_Medium;
     if Error is N_Medium and Var_Error is N_Large and Pressure is Small 	
     then Var_Cooling is P_Large;
     if Error is N_Medium and Var_Error is N_Medium and Pressure is Small 	
     then Var_Heater  is N_Medium;
     if Error is N_Medium and Var_Error is N_Medium and Pressure is Small 	
     then Var_Cooling is P_Medium;
     if Error is N_Medium and Var_Error is N_Small and Pressure is Small 	
     then Var_Heater  is N_Small;
     if Error is N_Medium and Var_Error is N_Small and Pressure is Small 	
     then Var_Cooling is P_Medium;
     
     if Error is N_Large and Var_Error is N_Large and Pressure is Large 	
     then Var_Heater  is N_Large;
     if Error is N_Large and Var_Error is N_Large	and Pressure is Large 	
     then Var_Cooling is P_Large;
     if Error is N_Large and Var_Error is N_Medium and Pressure is Large 	
     then Var_Heater  is N_Large;
     if Error is N_Large and Var_Error is N_Medium and Pressure is Large 	
     then Var_Cooling is P_Large;
     if Error is N_Large and Var_Error is N_Small	and Pressure is Large 	
     then Var_Heater  is N_Large;
     if Error is N_Large and Var_Error is N_Small	and Pressure is Large 	
     then Var_Cooling is P_Large;
     if Error is N_Large and Var_Error is N_Large and Pressure is Medium 	
     then Var_Heater  is N_Large;
     if Error is N_Large and Var_Error is N_Large	and Pressure is Medium 	
     then Var_Cooling is P_Large;
     if Error is N_Large and Var_Error is N_Medium and Pressure is Medium 	
     then Var_Heater  is N_Large;
     if Error is N_Large and Var_Error is N_Medium and Pressure is Medium 	
     then Var_Cooling is P_Large;
     if Error is N_Large and Var_Error is N_Small	and Pressure is Medium 	
     then Var_Heater  is N_Large;
     if Error is N_Large and Var_Error is N_Small	and Pressure is Medium 	
     then Var_Cooling is P_Large;
     if Error is N_Large and Var_Error is N_Large and Pressure is Small 	
     then Var_Heater  is N_Medium;
     if Error is N_Large and Var_Error is N_Large	and Pressure is Small 	
     then Var_Cooling is P_Large;
     if Error is N_Large and Var_Error is N_Medium and Pressure is Small 	
     then Var_Heater  is N_Medium;
     if Error is N_Large and Var_Error is N_Medium and Pressure is Small 	
     then Var_Cooling is P_Large;
     if Error is N_Large and Var_Error is N_Small	and Pressure is Small 	
     then Var_Heater  is N_Medium;
     if Error is N_Large and Var_Error is N_Small	and Pressure is Small 	
     then Var_Cooling is P_Large;
     
     if Error is N_Large and Var_Error is P_Large and Pressure is Large 	
     then Var_Heater  is N_Medium;
     if Error is N_Large and Var_Error is P_Large	and Pressure is Large 	
     then Var_Cooling is P_Small;
     if Error is N_Large and Var_Error is P_Medium and Pressure is Large 	
     then Var_Heater  is N_Large;
     if Error is N_Large and Var_Error is P_Medium and Pressure is Large 	
     then Var_Cooling is P_Medium;
     if Error is N_Large and Var_Error is P_Small	and Pressure is Large 	
     then Var_Heater  is N_Large;
     if Error is N_Large and Var_Error is P_Small	and Pressure is Large 	
     then Var_Cooling is P_Large;
     if Error is N_Large and Var_Error is P_Large and Pressure is Medium 	
     then Var_Heater  is N_Small;
     if Error is N_Large and Var_Error is P_Large	and Pressure is Medium 	
     then Var_Cooling is P_Small;
     if Error is N_Large and Var_Error is P_Medium and Pressure is Medium 	
     then Var_Heater  is N_Medium;
     if Error is N_Large and Var_Error is P_Medium and Pressure is Medium 	
     then Var_Cooling is P_Medium;
     if Error is N_Large and Var_Error is P_Small	and Pressure is Medium 	
     then Var_Heater  is N_Large;
     if Error is N_Large and Var_Error is P_Small	and Pressure is Medium 	
     then Var_Cooling is P_Large;
     if Error is N_Large and Var_Error is P_Large and Pressure is Small 	
     then Var_Heater  is Zero;
     if Error is N_Large and Var_Error is P_Large	and Pressure is Small 	
     then Var_Cooling is P_Small;
     if Error is N_Large and Var_Error is P_Medium and Pressure is Small 	
     then Var_Heater  is N_Small;
     if Error is N_Large and Var_Error is P_Medium and Pressure is Small 	
     then Var_Cooling is P_Medium;
     if Error is N_Large and Var_Error is P_Small	and Pressure is Small 	
     then Var_Heater  is N_Medium;
     if Error is N_Large and Var_Error is P__Small and Pressure is Small		
     then Var_Cooling is P_Large;
     
     if Error is N_Medium and Var_Error is P_Large and Pressure is Large 	
     then Var_Heater  is N_Medium;
     if Error is N_Medium and Var_Error is P_Large and Pressure is Large 	
     then Var_Cooling is Zero;
     if Error is N_Medium and Var_Error is P_Medium and Pressure is Large 	
     then Var_Heater  is N_Large;
     if Error is N_Medium and Var_Error is P_Medium and Pressure is Large 	
     then Var_Cooling is Zero;
     if Error is N_Medium and Var_Error is P_Small and Pressure is Large 	
     then Var_Heater  is N_Large;
     if Error is N_Medium and Var_Error is P_Small and Pressure is Large 	
     then Var_Cooling is P_Small;
     if Error is N_Medium and Var_Error is P_Large and Pressure is Medium 	
     then Var_Heater  is N_Small;
     if Error is N_Medium and Var_Error is P_Large and Pressure is Medium 	
     then Var_Cooling is Zero;
     if Error is N_Medium and Var_Error is P_Medium and Pressure is Medium 	
     then Var_Heater  is N_Medium;
     if Error is N_Medium and Var_Error is P_Medium and Pressure is Medium 	
     then Var_Cooling is Zero;
     if Error is N_Medium and Var_Error is P_Small and Pressure is Medium 	
     then Var_Heater  is N_Medium;
     if Error is N_Medium and Var_Error is P_Small and Pressure is Medium 	
     then Var_Cooling is P_Small;                       
     if Error is N_Medium and Var_Error is P_Large and Pressure is Small 	
     then Var_Heater  is Zero;
     if Error is N_Medium and Var_Error is P_Large and Pressure is Small 	
     then Var_Cooling is Zero;
     if Error is N_Medium and Var_Error is P_Medium and Pressure is Small 	
     then Var_Heater  is N_Small;
     if Error is N_Medium and Var_Error is P_Medium and Pressure is Small 	
     then Var_Cooling is Zero;
     if Error is N_Medium and Var_Error is P_Small and Pressure is Small 	
     then Var_Heater  is N_Small;                  
     if Error is N_Medium and Var_Error is P_Small and Pressure is Small 	
     then Var_Cooling is P_Small;
     
     if Error is N_Small and Var_Error is P_Large and Pressure is Large 	
     then Var_Heater  is Zero;
     if Error is N_Small and Var_Error is P_Large	and Pressure is Large 	
     then Var_Cooling is Zero;
     if Error is N_Small and Var_Error is P_Medium and Pressure is Large 	
     then Var_Heater  is N_Small;
     if Error is N_Small and Var_Error is P_Medium and Pressure is Large 	
     then Var_Cooling is Zero;
     if Error is N_Small and Var_Error is P_Small	and Pressure is Large 	
     then Var_Heater  is N_Medium;
     if Error is N_Small and Var_Error is P_Small	and Pressure is Large 	
     then Var_Cooling is Zero;
     if Error is N_Small and Var_Error is P_Large and Pressure is Medium 	
     then Var_Heater  is P_Small;
     if Error is N_Small and Var_Error is P_Large	and Pressure is Medium 	
     then Var_Cooling is Zero;
     if Error is N_Small and Var_Error is P_Medium and Pressure is Medium	
     then Var_Heater  is Zero;
     if Error is N_Small and Var_Error is P_Medium and Pressure is Medium 	
     then Var_Cooling is Zero;
     if Error is N_Small and Var_Error is P_Small	and Pressure is Medium 	
     then Var_Heater  is N_Small;
     if Error is N_Small and Var_Error is P_Small	and Pressure is Medium 	
     then Var_Cooling is Zero;
     if Error is N_Small and Var_Error is P_Large and Pressure is Small 	
     then Var_Heater  is P_Medium;
     if Error is N_Small and Var_Error is P_Large	and Pressure is Small 	
     then Var_Cooling is Zero;
     if Error is N_Small and Var_Error is P_Medium and Pressure is Small 	
     then Var_Heater  is P_Small;     
     if Error is N_Small and Var_Error is P_Medium and Pressure is Small 	
     then Var_Cooling is Zero;
     if Error is N_Small and Var_Error is P_Small	and Pressure is Small 	
     then Var_Heater  is Zero;
     if Error is N_Small and Var_Error is P_Small	and Pressure is Small 	
     then Var_Cooling is Zero;
     
     if Error is Zero and Var_Error is P_Large and Pressure is Large 	
     then Var_Heater  is P_Medium;
     if Error is Zero and Var_Error is P_Large and Pressure is Large 	
     then Var_Cooling is N_Small;
     if Error is Zero and Var_Error is P_Medium and Pressure is Large 	
     then Var_Heater  is P_Small;
     if Error is Zero and Var_Error is P_Medium and Pressure is Large 	
     then Var_Cooling is N_Small;
     if Error is Zero and Var_Error is P_Small and Pressure is Large 	
     then Var_Heater  is Zero;                 
     if Error is Zero and Var_Error is P_Small and Pressure is Large 	
     then Var_Cooling is N_Small;
     if Error is Zero and Var_Error is P_Large and Pressure is Medium 	
     then Var_Heater  is P_Large;
     if Error is Zero and Var_Error is P_Large and Pressure is Medium 	
     then Var_Cooling is N_Small;
     if Error is Zero and Var_Error is P_Medium and Pressure is Medium 	
     then Var_Heater  is P_Medium;
     if Error is Zero and Var_Error is P_Medium and Pressure is Medium 	
     then Var_Cooling is N_Small;
     if Error is Zero and Var_Error is P_Small and Pressure is Medium 	
     then Var_Heater  is P_Small;
     if Error is Zero and Var_Error is P_Small and Pressure is Medium 	
     then Var_Cooling is N_Small;
     if Error is Zero and Var_Error is P_Large and Pressure is Small 	
     then Var_Heater  is P_Large;
     if Error is Zero and Var_Error is P_Large and Pressure is Small 	
     then Var_Cooling is N_Medium;
     if Error is Zero and Var_Error is P_Medium and Pressure is Small 	
     then Var_Heater  is P_Large;
     if Error is Zero and Var_Error is P_Medium and Pressure is Small 	
     then Var_Cooling is N_Small;
     if Error is Zero and Var_Error is P_Small and Pressure is Small 	
     then Var_Heater  is P_Medium;
     if Error is Zero and Var_Error is P_Small and Pressure is Small 	
     then Var_Cooling is N_Small;
     
     if Error is P_Small and Var_Error is P_Large and Pressure is Large 	
     then Var_Heater  is P_Medium;
     if Error is P_Small and Var_Error is P_Large	and Pressure is Large 	
     then Var_Cooling is N_Medium;
     if Error is P_Small and Var_Error is P_Medium and Pressure is Large		
     then Var_Heater  is P_Small;
     if Error is P_Small and Var_Error is P_Medium and Pressure is Large 	
     then Var_Cooling is N_Medium;
     if Error is P_Small and Var_Error is P_Small	and Pressure is Large 	
     then Var_Heater  is P_Small;
     if Error is P_Small and Var_Error is P_Small	and Pressure is Large 	
     then Var_Cooling is N_Small;
     if Error is P_Small and Var_Error is P_Large and Pressure is Medium 	
     then Var_Heater  is P_Large;
     if Error is P_Small and Var_Error is P_Large	and Pressure is Medium 	
     then Var_Cooling is N_Medium;
     if Error is P_Small and Var_Error is P_Medium and Pressure is Medium 	
     then Var_Heater  is P_Medium;
     if Error is P_Small and Var_Error is P_Medium and Pressure is Medium 	
     then Var_Cooling is N_Medium;
     if Error is P_Small and Var_Error is P_Small	and Pressure is Medium 	
     then Var_Heater  is P_Medium;
     if Error is P_Small and Var_Error is P_Small	and Pressure is Medium 	
     then Var_Cooling is N_Small;
     if Error is P_Small and Var_Error is P_Large and Pressure is Small 	
     then Var_Heater  is P_Large;
     if Error is P_Small and Var_Error is P_Large	and Pressure is Small 	
     then Var_Cooling is N_Large;
     if Error is P_Small and Var_Error is P_Medium and Pressure is Small 	
     then Var_Heater  is P_Large;
     if Error is P_Small and Var_Error is P_Medium and Pressure is Small 	
     then Var_Cooling is N_Medium;
     if Error is P_Small and Var_Error is P_Small	and Pressure is Small 	
     then Var_Heater  is P_Large;
     if Error is P_Small and Var_Error is P_Small	and Pressure is Small 	
     then Var_Cooling is N_Small;
     
     if Error is P_Medium and Var_Error is P_Large and Pressure is Large 	
     then Var_Heater  is P_Medium;
     if Error is P_Medium and Var_Error is P_Large and Pressure is Large 	
     then Var_Cooling is N_Large;
     if Error is P_Medium and Var_Error is P_Medium and Pressure is Large 	
     then Var_Heater  is P_Medium;
     if Error is P_Medium and Var_Error is P_Medium and Pressure is Large 	
     then Var_Cooling is N_Medium;
     if Error is P_Medium and Var_Error is P_Small and Pressure is Large 	
     then Var_Heater  is P_Small;
     if Error is P_Medium and Var_Error is P_Small and Pressure is Large 	
     then Var_Cooling is N_Medium;
     if Error is P_Medium and Var_Error is P_Large and Pressure is Medium 	
     then Var_Heater  is P_Large;
     if Error is P_Medium and Var_Error is P_Large and Pressure is Medium 	
     then Var_Cooling is N_Large;
     if Error is P_Medium and Var_Error is P_Medium and Pressure is Medium 	
     then Var_Heater  is P_Large;
     if Error is P_Medium and Var_Error is P_Medium and Pressure is Medium 	
     then Var_Cooling is N_Medium;
     if Error is P_Medium and Var_Error is P_Small and Pressure is Medium 	
     then Var_Heater  is P_Medium;
     if Error is P_Medium and Var_Error is P_Small and Pressure is Medium 	
     then Var_Cooling is N_Medium;
     if Error is P_Medium and Var_Error is P_Large and Pressure is Small 	
     then Var_Heater  is P_Large;
     if Error is P_Medium and Var_Error is P_Large and Pressure is Small 	
     then Var_Cooling is N_Large;
     if Error is P_Medium and Var_Error is P_Medium and Pressure is Small 	
     then Var_Heater  is P_Large;
     if Error is P_Medium and Var_Error is P_Medium and Pressure is Small 	
     then Var_Cooling is N_Large;
     if Error is P_Medium and Var_Error is P_Small and Pressure is Small 	
     then Var_Heater  is P_Large;                       
     if Error is P_Medium and Var_Error is P_Small and Pressure is Small 	
     then Var_Cooling is N_Medium;
     
     if Error is P_Large and Var_Error is P_Large and Pressure is Large 	
     then Var_Heater  is P_Medium;
     if Error is P_Large and Var_Error is P_Large	and Pressure is Large 	
     then Var_Cooling is N_Large;
     if Error is P_Large and Var_Error is P_Medium and Pressure is Large 	
     then Var_Heater  is P_Medium;
     if Error is P_Large and Var_Error is P_Medium and Pressure is Large 	
     then Var_Cooling is N_Large;
     if Error is P_Large and Var_Error is P_Small	and Pressure is Large 	
     then Var_Heater  is P_Medium;
     if Error is P_Large and Var_Error is P_Small	and Pressure is Large 	
     then Var_Cooling is N_Large;
     if Error is P_Large and Var_Error is P_Large and Pressure is Medium 	
     then Var_Heater  is P_Large;
     if Error is P_Large and Var_Error is P_Large	and Pressure is Medium 	
     then Var_Cooling is N_Large;
     if Error is P_Large and Var_Error is P_Medium and Pressure is Medium 	
     then Var_Heater  is P_Large;
     if Error is P_Large and Var_Error is P_Medium and Pressure is Medium 	
     then Var_Cooling is N_Large;
     if Error is P_Large and Var_Error is P_Small	and Pressure is Medium 	
     then Var_Heater  is P_Large;
     if Error is P_Large and Var_Error is P_Small	and Pressure is Medium 	
     then Var_Cooling is N_Large;
     if Error is P_Large and Var_Error is P_Large and Pressure is Small 	
     then Var_Heater  is P_Large;
     if Error is P_Large and Var_Error is P_Large	and Pressure is Small 	
     then Var_Cooling is N_Large;
     if Error is P_Large and Var_Error is P_Medium and Pressure is Small 	
     then Var_Heater  is P_Large;
     if Error is P_Large and Var_Error is P_Medium and Pressure is Small 	
     then Var_Cooling is N_Large;
     if Error is P_Large and Var_Error is P_Small	and Pressure is Small 	
     then Var_Heater  is P_Large;
     if Error is P_Large and Var_Error is P_Small	and Pressure is Small 	
     then Var_Cooling is N_Large
     
     end
     
     
     Input/Output Response
     
     FIDE provides several powerful debugging and analyzing tools for
     system development. Figure 6, 7, 8 show input/output response
     surfaces of the controller defined above, which are obtained by
     Analyzer in FIDE. 
     
     The output in these three figures is Var_Heater. Figure 6 gives
     the result when pressure is 0.00; Figure 7 when 0.50 and Figure 8
     when 1.00. We can see that the output Var_Heater becomes larger
     when pressure gets smaller. This is what we want because lower
     pressure results in lower temperature so larger heater output is
     needed. 
     
     Figure 9 shows input/output response surface of Var_Cooling. Note
     that surface in Figure 9 is opposite to that in Figure 7. 
     
     
     Figure  6   Input/Output Surface of Var_Heater when
     Pressure=0.00(Small) 
     
     
      Figure  7  Input/Output Surface of Var_Heater when
     Pressure=0.50(Medium) 
     
     
     Figure  8   Input/Output Surface of Var_Heater when
     Pressure=1.00(Large) 
     
     
     Figure  9  Input/Output Surface of Var_Cooling when
     Pressure=0.50(Medium) 
     
     
     COMMENTS
     
     In a fuzzy logic based control system, we can take many factors
     into account when creating the controller, some of these factors
     are considered to be noises in a conventional control system and
     make controller design a very hard work. Using fuzzy logic, it is
     much easier to design a controller with better performance in
     this kind of situation. 
     
     (Weijing Zhang, Applications Engineer, Aptronix Inc.)
     
     
             For Further Information Please Contact:
     
                      Aptronix Incorporated
                  2150 North First Street #300
                       San Jose, CA 95131
                      Tel  (408) 428-1888 
                       Fax (408) 428-1884
               FuzzyNet (408) 428-1883  data 8/N/1
     
     Aptronix Company Overview
     
     Headquartered in San Jose, California, Aptronix develops and
     markets fuzzy logic-based software, systems and development tools
     for a complete range of commercial applications.  The company was
     founded in 1989 and has been responsible for a number of
     important innovations in fuzzy technology.
     
     Aptronix's product Fide (Fuzzy Inference Development Environment)
     -- is a complete environment for the development of fuzzy
     logic-based systems.  Fide provides system engineers with the
     most effective fuzzy tools in the industry and runs in
     MS-WindowsTM  on 386/486 hardware.  The price for Fide is $1495
     and can be ordered from any authorized Motorola distributor.  For
     a list of authorized distributors or more information, please
     call Aptronix.  The software package comes with complete
     documentation on how to develop fuzzy logic based
     applications, free telephone support for 90 days and access
     to the Aptronix FuzzyNet information exchange.
     
     
     FIDE Application Notes Available:
     
     #001 
     Washing Machine 
     Decision Making, Determining Wash Time
     
     #002
     Automatic Focusing System
     Decision Making, Determining Focus
     
     #003
     Servo Motor Force Control
     Servo Control, Grasping Object
     
     #004
     Temperature Control(1)
     Process Control, Glass Melting Furnace
     
     #005
     Temperature Control(2)
     Process Control, Air Conditioner
     
     #006
     Temperature Control(3)
     Process Control, Reactor
     
                        
     
     FIDE Application Note 006-920914	Aptronix Inc., 1992 	
     
                     Temperature Control (3)

     
     
     
     
     
     
     
     
