Searching \ for 'Fuzzy programming' in subject line. ()
Help us get a faster server
FAQ page: www.piclist.com/techref/microchip/devprogs.htm?key=programming
Search entire site for: 'Fuzzy programming'.

Truncated match.
'Fuzzy programming'
1999\12\28@170711 by

>From time to time I see a description of an appliance that says it's
using either fuzzy programming or logic. Does anyone have an
explanation of how this differs in practice to "ordinary" programming ?

I've read texts on FP/FL and, TBH, the explanations offered are, well,
fuzzy. Am I missing something ? My catalogues offer FL ICs, but
until I grasp what FL actually means I won't get the relevance of such
ICs. I see references to analysis, estimations, learning and adaptive
coding. Is self-modifying code considered FL ?

When I've got a project on I go through the usual steps to work out how
to accomplish the tasks the micro has to perform. If there's a linear
function, such as motor positioning or temp control I can usually concoct
something fairly smart and flexible to get it done. Have I discovered FL
and not realised it or is "fuzzy" just a buzz word for a process that we
Flintstone programmers have used for years ? If there's a whole "new"
world of inter-active programming out there I'd like to know about it.

Jinx

Hi Jinx,

I only know the very basics about it, but essentially, I think the main
difference between fuzzy logic and standard logic is in the way decisions

In standard (binary) logic, as you know, the inputs to a gate are either HI
or LOW, and the output is either HI or LOW. SO, you can use a switching
equation or truth table to determine the output given the inputs.

In fuzzy logic, you refer to "nodes" instead of gates. Each node can have
multiple inputs and an output. The inputs are allowed to assume many
different states, however (almost like analog computers). Each input gets
multiplied by a number (called a "weight") and then they all get added
together. Then, if the resultant sum is higher than some threshold, the
output goes to a pseudo-HI value. Otherwise, it goes to a pseudo-LO value.
I say pseudo because I think it can be different for each gate (i.e., HI is
not always max voltage, etc.).

This is more powerful in two ways:

#1) You can implement more complex switching functions with fewer nodes.

#2) The system can be made to "learn" how to perform a function. The
learning process is the really complex part. Essentially, what you do is
come up with an algorithm which can change the weights on each input of
each node to make the output of the system be correct for all necessary
input cases.

The type of fuzzy logic I am describing is also often referred to as neural
networks,because of the similarities of fuzzy nodes to biological
neurons,which have a (variable,IIRC) trigger threshold and weighing factors
due to varying dentrite configurations.

A few years ago, I downloaded a small program which allowed you simulate a
small neural net. Sorry, I don't have a URL,it was from a BBS, before I was
on the net. It had a built-in learning algo. Within an hour or so of
playing with it, I got it to be able to OCR the letters A,B, and C. I was
reasonably impressed but I never went further with it, although I would
like to.

Some interesting research is being done on implementing fuzzy logic in
hardware. Currently, I think it is actually implemented as a program
running on a normal (digital binary) computer or by a bunch of standard
gates. However, some researchers at Cornell (got to get a plug for my
school in there <G>) are working with floating gate MOSFETs with multiple
floating gates. By varying the ratios of the sizes of the floating gates,
you can give natural weights to the various inputs.

Sean

At 10:38 AM 12/29/99 +1300, you wrote:
{Quote hidden}

| Sean Breheny
| Electrical Engineering Student
\--------------=----------------
Save lives, please look at http://www.all.org
Personal page: http://www.people.cornell.edu/pages/shb7
shb7cornell.edu ICQ #: 3329174
__________________________________________
NetZero - Defenders of the Free World
Get your FREE Internet Access and Email at

I just took a look on the net and it looks as if fuzzy logic might not be
quite the right term for what I described in my last email. SO, perhaps it
was the blind leading the blind <G>

I was under the impression that neural networks and fuzzy logic were sorta
the same thing. I'm not sure if they are. I found a site at

http://developer.intel.com/design/mcs96/designex/2351.htm

which gives a VERY basic overview of fuzzy logic. It is too vague to tell
if it is implemented using neural networks or not.

Sean

At 10:38 AM 12/29/99 +1300, you wrote:
{Quote hidden}

| Sean Breheny
| Electrical Engineering Student
\--------------=----------------
Save lives, please look at http://www.all.org
Personal page: http://www.people.cornell.edu/pages/shb7
shb7cornell.edu ICQ #: 3329174
__________________________________________
NetZero - Defenders of the Free World
Get your FREE Internet Access and Email at

Why not check out the Fuzz Logic FAQ?

http://www.faqs.org/faqs/fuzzy-logic/part1/

HTH,

Tim Hamel

Thanks, Tim!

It appears that fuzzy logic is a more general mathematical area that is the
theory behind neural networks (among other things).

Sean

At 01:11 AM 12/29/99 EST, you wrote:
>Why not check out the Fuzz Logic FAQ?
>
>http://www.faqs.org/faqs/fuzzy-logic/part1/
>
>
>HTH,
>
>Tim Hamel
>
|
| Sean Breheny
| Electrical Engineering Student
\--------------=----------------
Save lives, please look at http://www.all.org
Personal page: http://www.people.cornell.edu/pages/shb7
shb7cornell.edu ICQ #: 3329174
__________________________________________
NetZero - Defenders of the Free World
Get your FREE Internet Access and Email at

Somebody else can answer this better and more "officially" than I but since
I went through the same confusion, let me just say this....

"ordinary" programming is binary; the signal either is or it isn't. Based on
the presence or absence of signals, actions are taken and outputs changed.
Often the outputs are full on or full off.

"fuzzy" logic gets a range of input signal values or a computes a sum value
from several binary inputs and compares that against a trigger threshold for
an action or uses it to compute an output value.

Usually, there are more inputs or more accuracy or detail in the input.
Often the outputs have a greater range of possible values.

Also, fuzzy logic often incorporates time as an input, in a system where a
regular controller would not.

As an example, a standard thermostat knows that the temperature is to high
or too low. It does not know how far from the set point the temperature is.
In a building where the heater output may not make it back to the sensor for
a while, Hysteresis needs to be added to the set point to prevent constant
oscillation. A fuzzy thermostat knows that the temperature is way below the
set point and so the heater needs to be cranked full on, or its just a bit
low so the heater can be turned on for a minute and then turned off or
turned on just a little (if the heater interface allows that), even though
the sensor still says its a bit low. As a result, the fuzzy thermostat can
keep the temp dead on and get it there faster after a temperature
disturbance, or it can get it close and save fuel costs.

Binary programming is easy. Fuzzy programming is easy to be.... fuzzy....
about. You can just as easily make a fuzzy controller that is worse than the
old one as you can make one that is better. <mutter> ...not that I have
experience with that or anything. </mutter>

Hope that helps, and I'm standing by to be picked apart by the professionals
on the list....

James Newton jamesnewtongeocities.com phone:1-619-652-0593
http://techref.homepage.com NOW OPEN (R/O) TO NON-MEMBERS!

{Original Message removed}
Funny how things work out. I was looking through some videotapes
last night and came across a 10 minute piece on the research lab
at Otis Elevators. One highlight of the piece was showing how Otis
develop fuzzy controls for multi-shaft installations. So, for example,
an office block lift learns what volume of occupancy to expect at a
given time of day and, more importantly, where it should be at a
particular time on a particular day to enable the most people to get
on and get where they want to be in the shortest time. This includes
interacting with the other lifts to learn what they learn. For instance,
a lift may go to a floor ahead of time in the EXPECTATION of a
number of requests from that floor, even though no one may be there
when it actually arrives, perhaps at 4:59pm. The other lifts will, at
the same time, be responding to unexpected requests, knowing that
their fellow lift is on "special assignment".

On the face of it the problem seems fairly straightforward, but when
you consider that there may be 6 lifts and 50 floors the permutations
soon escalate (pun intended). Add to that the efficient use of power
demanded by building managers and you have a job on your hands.

I think the problem for myself understanding FL is that I haven't had
an application that required a full-blown fuzzy system. I saw an
example of a heater control in a conservatory. If it's cold, turn the heater
on. BUT take into account the amount of sunlight, the time of year, and
whether the wind is blowing, all external factors that affect the warming
gradient inside the conservatory. Probably a lot of us would have taken
the simple option of just temperature monitoring.

As most of my work this year has been clocks & timers, well, not too
much room for FL there. Tick-tock. Over and over. One area I'd like to
expand into in 2000 is interactive kinetic sculptures, which I think should
lend itself to fuzzy logic in order to make the displays interesting.

Another app could be the implementation of a face recognition system
based on a GameBoy camera, but that could get me out of my depth.
Or voice recognition ?

http://www.cs.cmu.edu/Groups/AI/html/faqs/ai/fuzzy/part1/faq-doc-2.html

Once I got a grip on the maths (the tables helped lot) all became clear.
Er, fuzzy.

Jinx

Just thought I'd share this one here, a few loose ends tied

http://www.seanet.com/~ksbrown/kmath123.htm

It appears to be a mathematician's explanation and opinion on
fuzzy logic. I get the impression that he doesn't trust an FL program
to be capable of being fully tested and thus could make decisions
which we humans may disagree with, given that we have common
sense and a wealth of experience of the world that a micro will never
have. Decision-making algorithms are, of course, the responsibility
of the programmer.

I can see his point, that caveats apply to FL, in his opinion perhaps
more than for conventional programming, because their flexibility
and adaptability is both an advantage (if you get it right) and a
disadvantage (if you get it wrong).

He also answered one of my original questions - is fuzzy logic a
buzzword ?

Jinx

Hi list

I did my dissertation in neural nets and fuzzy logic for my degree. To add
to what Sean said:

Classic feedback control systems requires a) either the system to be fully
understood and a transfer function available or b) the system to be fairly
linear over the controlled range . To control such system you need a
feedback controller. For multiple inputs controllling one output parameter
or multiple inputs controlling multiple output parameters which are
interelated, classic feedback controllers become *very* complex if not
impossible to implement, requiring powerful DSP's and very complex
algorithms ie. \$\$\$\$
Three classic but simple examples are the "broom balancing trick", "magnetic
suspension"  and pH controllers as systems difficult to control with classic
teqniques.

Taking a lesson from nature, and the learning abilities of humans, fuzzy
logic allows the system to learn responses without having to qualify the
system. Once you have your input weights, it is a simple matter of
constructing a NN with variable resistors(for the different weights), and
adder circuit (op amp or transistor) and a trigger function (usually an
overdriven op-amp) for each output. The circuit
is thus copied obviously with its weights adjusted for each output (still
using same inputs). You can also cascade the nets using the output from some
as the inputs to others, building a complex system very quickly (works the
ssame as a brain)
The trick is thus in finding the amount of nodes that will control the
system to desired accuracy and the finding the correct weights.

Stephan
{Original Message removed}
You may be aware that Microchip sells a developpement tool called
FuzzyLab.
www.microchip.com/10/Tools/picmicro/code/fuzzy/index.htm
The software included is made by fuzzyTECH.

http://www.fuzzyTECH.com/index.htm
It includes a few exemples where fuzzy logic is used:
1) an overhead crane moving a large load. It lets you try to do better
by manualy activating the controls;
2) the other exemple is a F1 car racing around some known circuits.

Hope this helps
Gaston

Jinx a icrit :
{Quote hidden}

More... (looser matching)
- Last day of these posts
- In 1999 , 2000 only
- Today
- New search...