Newsgroups: comp.ai.fuzzy
From: Noel@stroud.demon.co.uk (Noel Anderson)
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news2.near.net!howland.reston.ans.net!news.sprintlink.net!demon!stroud.demon.co.uk!Noel
Subject: A problem for Fuzzy Tools
Organization: Myorganisation
Reply-To: Noel@stroud.demon.co.uk
X-Newsreader: Demon Internet Simple News v1.27
Lines: 161
Date: Fri, 4 Nov 1994 10:58:45 +0000
Message-ID: <783946725snz@stroud.demon.co.uk>
Sender: usenet@demon.co.uk

Hello,

I'm doing some research on Fuzzy Logic.  I'm particularly interested in tools
for fuzzy development, such as Aptronix FIDE, Togai TILshell etc.
Below I've sketched out a simple problem for a fuzzy system with one input &
two outputs, I'd be very grateful if anyone who has access to these or any
other tools could pass this problem through their tool to generate code.

I'm interested in the response of the tool :-
    How easy is it to enter the problem
    What analysis tools are provided
    How much code does it produce for various microprocessors/microcontrollers
    What is the average time taken for an iteration of the controller.

Also more general information,
    What tools do you use ?
    How complex are the problems you use the tools for ?
    How sucessful has your use of the tools been ?
    How many applications are in production?
    What features of the tool do you find most useful?
    What features are missing or don't work properly ?

Any war stories, help or information will be very gratefully received.


--------------------------------------------------------------------------

Sample Fuzzy Problem

This is a very simple temperature contoller that regulates room temperature by
means of hot and cold fans using the feedback of actual room temperature.

                                  _________________________
            _________  speed     |          ROOM           |
           | fuzzy   |-----------+-->Hot Fan       Temp    |
           | Control | speed     |                Sensor >-+----
           |_________|-----------+-->Cold Fan              |    |
                ^                |_________________________|    |
                | Temperature                                   |
                | Difference                                    |
               _|_                                              |
     -------->|___|<--------------------------------------------
  Required                             Actual
 Temperature                         Temperature



INPUT SET

         NegativeBigDiff                            NegativeMediumDiff
1-| .........                           1-|            .
  | .        .                            |            ..
  | .         .                           |           .  .
  | .          .                          |          .    .
0-| .          ......................   0-| .........     ...................
   ----------------------------------      ----------------------------------
 -110     -55       0      55     110    -110     -55       0      55     110

           NegativeSmallDiff                        ZeroDifference
1-|               .                     1-|                 .
  |               ..                      |                 .
  |              . .                      |                . .
  |             .   .                     |                . .
0-| ............    .................   0-| ...............  ................
   ----------------------------------      ----------------------------------
 -110     -55       0      55     110    -110     -55       0      55     110

            PositiveSmallDiff                          PositiveMediumDiff
1-|                  .                  1-|                     .
  |                  ..                   |                     ..
  |                  . .                  |                    .  .
  |                 .   .                 |                   .    .
0-| .................   .............   0-| ..................     ..........
   ----------------------------------      ----------------------------------
 -110     -55       0      55     110    -110     -55       0      55     110

                    PositiveBigDiff
1-|                        ..........
  |                        .        .
  |                       .         .
  |                      .          .
0-| .....................           .
   ----------------------------------
 -110     -55       0      55     110


temperature_difference MIN -110  MAX 110
    {
    MEMBER NegativeBigDiff    {-110,-110,-50 ,-30}
    MEMBER NegativeMediumDiff {-50, -30, -10}
    MEMBER NegativeSmallDiff  {-30, -10,  0}
    MEMBER ZeroDifference     {-10, 0, 10}
    MEMBER PositiveSmallDiff  { 0, 10, 30}
    MEMBER PositiveMediumDiff { 10,  30,  50}
    MEMBER PositiveBigDiff    { 30,  50,  110,110}
    }


OUTPUT SETS (Singletons)

  1-| .     .         .        .      .
    | .     .         .        .      .
    | .     .         .        .      .
    | .     .         .        .      .
  0-| *.....*.........*........*......*
     ----------------------------------
      0     250     500     750    1000

hot_fan_speed MIN 0 MAX 1000
    {
    MEMBER zero     { 0    }
    MEMBER low      { 200  }
    MEMBER medium   { 500  }
    MEMBER high     { 800  }
    MEMBER veryhigh { 1000 }
    }

cool_fan_speed MIN 0 MAX 1000
    {
    MEMBER zero     { 0    }
    MEMBER low      { 200  }
    MEMBER medium   { 500  }
    MEMBER high     { 800  }
    MEMBER veryhigh { 1000 }
    }


RULES

IF temperature_difference IS PositiveBigDiff THEN
    hot_fan_speed  IS veryhigh AND cool_fan_speed IS zero

IF temperature_difference IS PositiveMediumDiff THEN
    hot_fan_speed  IS high AND cool_fan_speed IS zero

IF temperature_difference IS PositiveSmallDiff THEN
    hot_fan_speed  IS medium AND cool_fan_speed IS zero

IF temperature_difference IS ZeroDifference THEN
    hot_fan_speed  IS zero AND cool_fan_speed IS zero

IF temperature_difference IS NegativeSmallDiff THEN
    hot_fan_speed  IS zero AND cool_fan_speed IS medium

IF temperature_difference IS NegativeMediumDiff THEN
    hot_fan_speed  IS zero AND cool_fan_speed IS high

IF temperature_difference IS NegativeBigDiff THEN
    hot_fan_speed  IS zero AND cool_fan_speed IS veryhigh

---------------------------------------------------------------


	Regards,
		Noel...


  /|  /  ___   ___  /      Noel Anderson
 / | / /   / /___  /      Securicor Telecoms, R&D
/  |/ /___/ /___  /___	 Querns Road, Cirencester, Glos, England. GL7 1HP
Voice: 0285 655766  Fax: 0285 655595  Email: noel@stroud.demon.co.uk
