\input texinfo   @c -*-texinfo-*-
@c %**start of header
@setfilename control.info
@settitle @thischapter
@c use chapter name instead of title in the header of even pages
@c @settitle CACSD Tools for GNU Octave
@afourpaper
@set VERSION 3.0.0
@finalout
@c @afourwide
@c %**end of header


@c The following macro is used for the on-line help system, but we don't
@c want lots of `See also: foo, bar, and baz' strings cluttering the
@c printed manual (that information should be in the supporting text for
@c each group of functions and variables).

@macro seealso {args}
@iftex
@vskip 2pt
@end iftex
@ifnottex
@c Texinfo @sp should work but in practice produces ugly results for HTML.
@c A simple blank line produces the correct behavior. 
@c @sp 1

@end ifnottex
@noindent
@strong{See also:} \args\.
@end macro


@c %*** Start of TITLEPAGE
@titlepage
@title control @value{VERSION}
@subtitle Computer-Aided Control System Design (CACSD) Tools for GNU Octave
@c @subtitle @today{}
@author Lukas F. Reichlin
@author Thomas Vasileiou
@page
@vskip 0pt plus 1filll
Copyright @copyright{} 2009-2015, Lukas F. Reichlin @email{lukas.reichlin@@gmail.com}

This manual is generated automatically from the texinfo help strings
of the package's functions.

Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
are preserved on all copies.

Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the entire
resulting derived work is distributed under the terms of a permission
notice identical to this one.

Permission is granted to copy and distribute translations of this manual
into another language, under the same conditions as for modified versions.


@page
@c @unnumbered Preface
@paragraphindent 0
@chapheading Preface
The @acronym{GNU} Octave control package from version 2 onwards was
developed by Lukas F. Reichlin with major contributions by
Thomas Vasileiou and is based on the proven open-source
library @acronym{SLICOT}. This new package is intended as a replacement
for control-1.0.11 by A. Scottedward Hodel and his students.
Its main features are:
@itemize
@item Reliable solvers for Lyapunov, Sylvester and algebraic Riccati equations.
@item Pole placement techniques as well as @tex $ H_2 $ @end tex
and @tex $ H_{\infty} $ @end tex
synthesis methods.
@item Frequency-weighted model and controller reduction.
@item System identification by subspace methods.
@item Overloaded operators due to the use of classes introduced with Octave 3.2.
@item Support for descriptor state-space models and non-proper transfer functions.
@item Support for multiple systems in time- or frequency-domain plots.
@item Improved @acronym{MATLAB} compatibility.
@end itemize

@sp 3
@heading Acknowledgment
The author is indebted to several people and institutions who helped
him to achieve his goals. I am particularly grateful to Luca Favatella
who introduced me to Octave development as well as discussed and revised
my early draft code with great patience. The continued support from the
@acronym{FHNW} University of Applied Sciences Northwestern Switzerland
has also been important. Namely, sincere thanks are given to my advisors,
professors Hans Buchmann and J@"urg Peter Keller.
Furthermore, I thank the @acronym{SLICOT} authors Peter Benner,
Vasile Sima and Andras Varga for their advice.
Finally, I appreciate the feedback, bug reports and patches I have received
from various people. The names of all contributors should be listed in the
@acronym{NEWS} file.


@sp 3
@heading Using the help function
Some functions of the control package are listed with the somewhat cryptic prefixes
@code{@@lti/} or @code{@@iddata/}. These prefixes are only needed to view the help
text of the function, e.g. @w{@code{help norm}} shows the built-in function while
@w{@code{help @@lti/norm}} shows the overloaded function for @acronym{LTI} systems.
Note that there are @acronym{LTI} functions like @code{pole} that have no built-in
equivalent. The same is true for @acronym{IDDATA} functions like @code{nkshift}.

When just using the function, the leading @code{@@lti/} must @strong{not} be typed.
Octave selects the right function automatically. So one can type @w{@code{norm (sys, inf)}}
and @w{@code{norm (matrix, inf)}} regardless of the class of the argument.


@sp 3
@heading Bugs!
To err is human, and software is written by humans.
Therefore, any larger piece of software is likely to contain bugs.
If you find a bug in the control package, please take the time
to report your findings!
Feedback of any kind is highly appreciated by the author and
vital for further enhancement of the software.
Bug reports are to be sent to the Octave bug tracker, the mailing lists
or directly to the author's e-mail: @email{lukas.reichlin@@gmail.com}


@page
@heading Distribution
The @acronym{GNU} Octave control package is @dfn{free} software.
Free software is a matter of the users' freedom to run, copy, distribute,
study, change and improve the software.
This means that everyone is free to use it and free to redistribute it
on certain conditions.  The @acronym{GNU} Octave control package 
is not, however, in the public domain.  It is copyrighted and there are
restrictions on its distribution, but the restrictions are designed to 
ensure that others will have the same freedom to use and redistribute 
Octave that you have.  The precise conditions can be found in the 
@acronym{GNU} General Public License that comes with the @acronym{GNU}
Octave control package and that also appears in @ref{Copying}.

To download a copy of control, please visit
@url{http://octave.sourceforge.net/control/}.
@end titlepage
@c %*** End of TITLEPAGE

@headings double
@contents

@c @chapter Function Reference
@include functions.texi
@end

@include gpl.texi

@c FIXME: Index is nonexistent
@node Function Index
@unnumbered Function Index
@printindex fn

@bye
