Newsgroups: comp.ai.fuzzy,comp.soft-sys.matlab
Path: cantaloupe.srv.cs.cmu.edu!das-news.harvard.edu!news2.near.net!MathWorks.Com!europa.eng.gtefsd.com!howland.reston.ans.net!EU.net!uknet!festival!hwcee!dsr
From: dsr@cee.hw.ac.uk (Donald Reay)
Subject: PWS_Matlab_Fuzzy_Toolbox
Message-ID: <Cw83nI.4nC@cee.hw.ac.uk>
Sender: news@cee.hw.ac.uk (News Administrator)
Organization: Dept of Computing & Electrical Engineering, Heriot-Watt University, Scotland
Date: Fri, 16 Sep 1994 12:50:06 GMT
Lines: 68
Xref: glinda.oz.cs.cmu.edu comp.ai.fuzzy:2928 comp.soft-sys.matlab:8370


I've just downloaded the demonstrations of the PWS FUZZY SYSTEMS TOOLBOX and
have come up with a suggestion for a modification to the truck backer demo.

It seems a bit uninteresting to compare the fuzzy controlled truck with an
UNCONTROLLED truck. Who expects an uncontrolled truck to back up?

The problem tackled seems to be to drive the truck angle to pi radians and
the horizontal component of the truck position to 50 metres. In order to
achieve the former, steer in the sense (i.e. +ve or -ve) of the truck angle
error. In order to achieve the latter, steer on the opposite sense to the
truck horizontal position error. (This from a common sense understanding of
a simple truck, which seems to be what has been simulated.)

Therefore, why not make the steering angle a linear combination of angle
and horizontal position errors? Better limit the magnitude of the applied
steering angle to simulate full lock.

To see what I mean, replace the line
 
  u = frule(A,C,Z,[s(1); s(3)]);

in the file trkdemoe.m (this is the PC version) with
---------------------------------------------------------- 
  % replace fuzzy controller with linear controller    
  %
  % hard limit applied steering angle to this magnitude
  % even if linear controller demands more
  maxsteerangle = 0.35;  
  % controller gains to act on position error (m)
  % and truck angle error (radians) respectively
  positiongain = 0.03;
  anglegain = 0.3;
  % linear controller  
  u = (positiongain*(s(1)-50) - anglegain*(s(3)-pi));  
  % limit controller output  
  if u > maxsteerangle
    u = maxsteerangle;
  end
  if u < -maxsteerangle
    u = -maxsteerangle;
  end
----------------------------------------------------------

and run fuzzdemo, choosing controller 1 for the truck.

I've tried 0.01 < positiongain < 0.04, 0.1 < anglegain < 0.4,
and maxsteerangle = 0.35

I deduced the gains and full lock from the response plots for fuzzy
controller 1, i.e. by observing one successful back up. (Bear in mind my  
earlier characterisation of the problem - I'm not expecting extremely
non-linear behaviour from the truck.)

OK, my control design method may not bear close scrutiny regarding stability
or robustness but it gives something else to compare the performance of the
fuzzy controller with.

Finally, isn't the truck simulated here rather simpler than the one used
by Nguyen and Widrow? I realise that the FUZZY SYSTEM TOOLBOX authors do not
claim that their truck is the same - I'm just asking.

Any comments?

Anyone had any experiences with the FUZZY TOOLBOX itself?

Donald

