<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
<MAN>
  <LANGUAGE>eng</LANGUAGE>
  <TITLE>inistate</TITLE>
  <TYPE>Scilab Function</TYPE>
  <DATE>April 1999</DATE>
  <SHORT_DESCRIPTION name="inistate"> Estimates the initial state of a discrete-time system</SHORT_DESCRIPTION>
  <CALLING_SEQUENCE>
    <CALLING_SEQUENCE_ITEM>X0 = inistate(SYS,Y,U,TOL,PRINTW)   </CALLING_SEQUENCE_ITEM>
    <CALLING_SEQUENCE_ITEM>X0 = inistate(A,B,C,Y,U);  </CALLING_SEQUENCE_ITEM>
    <CALLING_SEQUENCE_ITEM>X0 = inistate(A,C,Y);  </CALLING_SEQUENCE_ITEM>
    <CALLING_SEQUENCE_ITEM>  </CALLING_SEQUENCE_ITEM>
    <CALLING_SEQUENCE_ITEM>[x0,V,rcnd] = inistate(SYS,Y,U,TOL,PRINTW)  </CALLING_SEQUENCE_ITEM>
  </CALLING_SEQUENCE>
  <PARAM>
    <PARAM_INDENT>
      <PARAM_ITEM>
        <PARAM_NAME>SYS</PARAM_NAME>
        <PARAM_DESCRIPTION>
          <SP>: given system, syslin(dt,A,B,C,D)</SP>
        </PARAM_DESCRIPTION>
      </PARAM_ITEM>
      <PARAM_ITEM>
        <PARAM_NAME>Y</PARAM_NAME>
        <PARAM_DESCRIPTION>
          <SP>: the output of the system</SP>
        </PARAM_DESCRIPTION>
      </PARAM_ITEM>
      <PARAM_ITEM>
        <PARAM_NAME>U</PARAM_NAME>
        <PARAM_DESCRIPTION>
          <SP>: the input of the system</SP>
        </PARAM_DESCRIPTION>
      </PARAM_ITEM>
      <PARAM_ITEM>
        <PARAM_NAME>TOL</PARAM_NAME>
        <PARAM_DESCRIPTION>
          <SP>: TOL is the tolerance used for estimating the rank of matrices.  If  TOL &gt; 0,  then the given value of  TOL  is used as a lower bound for the reciprocal condition number.</SP>
          <P>
    Default:    prod(size(matrix))*epsilon_machine where epsilon_machine is the relative machine precision. 
  </P>
        </PARAM_DESCRIPTION>
      </PARAM_ITEM>
      <PARAM_ITEM>
        <PARAM_NAME>PRINTW</PARAM_NAME>
        <PARAM_DESCRIPTION>
          <SP>: PRINTW is a switch for printing the warning messages.</SP>
          <PARAM_INDENT>
            <PARAM_ITEM>
              <PARAM_NAME>=  </PARAM_NAME>
              <PARAM_DESCRIPTION>
                <SP>1: print warning messages;</SP>
              </PARAM_DESCRIPTION>
            </PARAM_ITEM>
            <PARAM_ITEM>
              <PARAM_NAME>=  </PARAM_NAME>
              <PARAM_DESCRIPTION>
                <SP>0: do not print warning messages.</SP>
              </PARAM_DESCRIPTION>
            </PARAM_ITEM>
          </PARAM_INDENT>
          <P>
    Default:    PRINTW = 0.
  </P>
        </PARAM_DESCRIPTION>
      </PARAM_ITEM>
      <PARAM_ITEM>
        <PARAM_NAME>X0</PARAM_NAME>
        <PARAM_DESCRIPTION>
          <SP>: the estimated initial state vector</SP>
        </PARAM_DESCRIPTION>
      </PARAM_ITEM>
      <PARAM_ITEM>
        <PARAM_NAME>V</PARAM_NAME>
        <PARAM_DESCRIPTION>
          <SP>: orthogonal matrix which reduces the system state matrix A to  a real Schur form</SP>
        </PARAM_DESCRIPTION>
      </PARAM_ITEM>
      <PARAM_ITEM>
        <PARAM_NAME>rcnd</PARAM_NAME>
        <PARAM_DESCRIPTION>
          <SP>: estimate of the reciprocal condition number of the coefficient matrix of the least squares problem solved.</SP>
        </PARAM_DESCRIPTION>
      </PARAM_ITEM>
    </PARAM_INDENT>
  </PARAM>
  <DESCRIPTION>
    <P>
    inistate  Estimates the initial state of a discrete-time system, given the 
    (estimated) system matrices, and a set of input/output data.</P>
    <P>
    X0 = inistate(SYS,Y,U,TOL,PRINTW)  estimates the initial state X0 of 
    the discrete-time system SYS = (A,B,C,D), using the output data Y
    and the input data U. The model structure is :</P>
    <VERBATIM>
<![CDATA[
     x(k+1) = Ax(k) + Bu(k),   k >= 1,
     y(k)   = Cx(k) + Du(k),
   ]]>
    </VERBATIM>
    <P>
    The vectors y(k) and u(k) are transposes of the k-th rows of Y and U,
    respectively.</P>
    <P>
    Instead of the first input parameter SYS (an syslin object), equivalent
    information may be specified using matrix parameters, for instance,
    X0 = inistate(A,B,C,Y,U);   or   X0 = inistate(A,C,Y);</P>
    <P>
    [x0,V,rcnd] = inistate(SYS,Y,U,TOL,PRINTW) returns, besides x0, 
    the orthogonal matrix V which reduces the system state matrix A to 
    a real Schur form, as well as an estimate of the reciprocal condition
    number of the coefficient matrix of the least squares problem solved.</P>
  </DESCRIPTION>
  <SEE_ALSO>
    <SEE_ALSO_ITEM>
      <LINK>findBD</LINK>
    </SEE_ALSO_ITEM>
    <SEE_ALSO_ITEM>
      <LINK>findx0BD</LINK>
    </SEE_ALSO_ITEM>
  </SEE_ALSO>
</MAN>
