ANNOUNCING:
     +--------------------------******--------------------------+
     |                                                          |
     |              R I O T S _ 9 5 (version 1.0)               |
     |                                                          |
     |  A Matlab Toolbox for Solving Optimal Control Problems   |
     |                                                          |
     +--------------------------******--------------------------+
for Windows3.x, Windows9x and WindowsNT.

RIOTS is a  group of programs and utilities,  written mostly in C  and
designed  as a   toolbox  for  Matlab, that   provides an  interactive
environment for  solving a very broad  class of finite-horizon optimal
multi-variable  control problems.  This class includes problems with:
  * Lagrange, Bolza and Mayer type objective functions
  * Linear or Nonlinear dynamics
  * Min-Max objective functions
  * Free final time problems
  * Variable initial conditions
  * Endpoint equality and inequality constraints
  * Trajectory inequality constraints on the states and controls
  * Simple bounds on the controls and free initial conditions

The user can supply  objective, constraint  and dynamics functions  as
either object code or M-files.  Derivatives  of these functions should
also be supplied.

The optimal  control is an accumulation point  of  the solutions RIOTS
obtains to a  sequence of discretized  optimal control  problems.  The
discretized   problems   are,    in a   specific   sense,   consistent
approximations   to  the   original continuous-time,   optimal control
problem.  The discretized  optimal control problems are constructed by
integrating  the  system dynamics  with  one  of four fixed  step-size
Runge-Kutta  integration methods, a  discretized solver  or a variable
step-size integration  algorithm and  by representing the  controls as
finite-dimensional   B-splines.    The  integrations  proceed  over  a
(possibly  non-uniform) mesh  that  specifies the  spline breakpoints.
Solutions of the discretized, finite-dimensional problems are obtained
using    one of   three descent   methods   using standard   nonlinear
programming techniques.  The  solution  obtained for one   discretized
problem can be  used to  automatically  select a new  integration mesh
upon   which the  optimal  control  problem  can be re-discretized  to
produce a new  discretized problem.  The  new discretized problem will
more  accurately   approximate  the original, continuous-time  optimal
control problem.  Hence,  its   solution will  be more  accurate.   In
practice, only a few  such re-discretizations need  to be performed to
achieve an acceptable solution.

RIOTS provides     three   different  programs  that     perform   the
discretization and solve  the finite-dimensional discretized  problem.
The appropriate choice of optimization  program depends on the type of
problem  being solved  as   well as   the number   of points   in  the
integration mesh.  In addition  to these optimization  programs, RIOTS
also includes  other utility  programs  that are  used  to refine  the
discretization mesh, to compute  estimates  of integration errors,  to
compute    estimates for the error   between  the numerically obtained
solution and the  optimal control and to  deal with oscillations  that
arise in the numerical solution of singular optimal control problems.

A  complete description  of RIOTS  is  contained  in the RIOTS  user's
manual (91 pages).   A  postscript version  of  the user's  manual  is
downloadable from the World Wide Web.
----------------------------------------------------------------------
Requirements: 
	      IBM PC compatible with Windows3.1, Windows95 or WinNt.
              Matlab 5.x, 4.2c or Matlab 4.0
              Matlab Spline Toolbox
----------------------------------------------------------------------
A RIOTS_95 demonstration is available from the following RIOTS Homepages:
        http://www.accesscom.com/~adam/RIOTS            (official site)
        http://cicserver.ee.nus.edu.sg/~ilc/riots/      (official mirror)
	http://www.crosswinds.net/singapore/~yqchen/riots.html

If you have any questions or comments, please send email to:
Dr Adam L. Schwartz (adam@lgcwireless.com)
or
Dr Yangquan Chen (yqchen@ieee.org)
----------------------------------------------------------------------
Appendix: Changes of  RIOTS 1.0 From the Beta Version on SunOS 4.
 1. PC version, RIOTS_95,  is pre-compiled for running under MATLAB 
    Ver4.2c and Ver4.0. NSPOL is built in to RIOTS_95.
 2. Simulate() has been modified.
 3. Coordinate transformation decisions have been further automated.
 4. IEEE floating point trapping is not supported currently in the PC
    version.
 5. No Fortran compiler is required any more.  Only the user's C code,
    if supplied, needs to be compiled.
 6. Bug in 'discrete' integration routine fixed.
 7. A function call bug in 'riots.mex' has been fixed.
 8. File names are now in 8.3 DOS format
 9. 'Goddard', 'Bang' and 'Rayleigh' OCPs are given in Mfile-Interface
form  in seperate directories for demonstration use.
 etc.