Help: controlling pneumatic cylinder with fuzzy

Klaus Schmidinger (Klaus.Schmidinger@evolution.org)
Mon, 18 May 1998 02:59:05 +0200 (MET DST)

I am trying to control a pneumatic cylinder using the Motorola
HC12 chip's fuzzy abilities.

My goal is to be able to move the piston to given positions
and have it at given speed values at those target positions.

In order to smoothly control the cylinder I am switching the
pneumatic valve at a high rate, thus being able to cause
movement into the desired direction by shifting the up and
down time values. The more I shift these values, the faster
the piston moves. The actual elongation of the piston is measured
with a resolution of about 2 millimeters, with the maximum
elongation being 500 millimeters.

Here's a list of all the parameters that describe the system:

Pc = Current Position of piston (0..500mm @ 2mm resolution)
Vc = Current Velocity of piston (-500..500mm/s)
Tc = Current Timing of pneumatic valve (-100..100milliseconds)
Pt = Target Position of piston (0..500mm @ 2mm resolution)
Vt = Target Velocity of piston (-500..500mm/s)
Tt = Target Timing of pneumatic valve (-100..100milliseconds)

New values for the input data Pt and Vt arrive every 50ms, and the
system should derive a new value Tt for the valve timing in such
a way that both (Pt - Pc) and (Vc - Vt) become zero (i.e. the piston
reaches the desired position at the desired speed).

I have already done some experiments with the HC12's fuzzy commands
and was able to implement the Fuzzy Inference Machine as listed
in the CPU12 Reference Manual (page 9-8), using two input values
(Pt - Pc and Vc - Vt) and one output value (Tt). However, this
didn't show the desired results yet - the system tends to swing
quite a bit, and if I increase the dampening of the outgoing air
the whole thing becomes too lazy. Maybe I also have to take into
account the value of Tc as a third input?

I am an absolute beginner in fuzzy control, so I would appreciate
any help I can get from some interrested fuzzy gurus. Since this
is a very dynamic problem, I believe that fuzzy control should
be able to handle it.

In case you're wondering what I am planning to use this for:
I have built a 6-DOF full motion platform, which can be seen
at http://www.cadsoft.de/~kls. Normally, such things are done
with hydraulics, but this has two drawbacks: it is very expensive
and also quite messy. Pneumatics on the other hand is reasonably
priced and no mess at all - the problem here is to compensate
for the compressability of air, which makes the whole thing
highly dynamic. This platform shall be controlled by a flight
simulation software, which allows a "pilot" sitting on the
platform to experience the movements of the simulated aircraft.
If I get this thing to work I'll put the complete description
how to build such a platform on the web.

In case this is "off topic" in this newsgroup I'd appreciate
any advice where else to seek for help.

TIA for any help
Klaus