% -*- texinfo -*- % @deftypefn {Function File} {[@var{Lp}, @var{Lf}, @var{P}, @var{Z}] =} dkalman (@var{A}, @var{G}, @var{C}, @var{Qw}, @var{Rv}, @var{S}) % Construct the linear quadratic estimator (Kalman predictor) for the % discrete time system % @iftex % @tex % $$ % x_{k+1} = A x_k + B u_k + G w_k % $$ % $$ % y_k = C x_k + D u_k + v_k % $$ % @end tex % @end iftex % @ifinfo % % @example % x[k+1] = A x[k] + B u[k] + G w[k] % y[k] = C x[k] + D u[k] + v[k] % @end example % % @end ifinfo % where @var{w}, @var{v} are zero-mean gaussian noise processes with % respective intensities @code{@var{Qw} = cov (@var{w}, @var{w})} and % @code{@var{Rv} = cov (@var{v}, @var{v})}. % % If specified, @var{S} is @code{cov (@var{w}, @var{v})}. Otherwise % @code{cov (@var{w}, @var{v}) = 0}. % % The observer structure is % @iftex % @tex % $x_{k+1|k} = A x_{k|k-1} + B u_k + L_p (y_k - C x_{k|k-1} - D u_k)$ % $x_{k|k} = x_{k|k} + L_f (y_k - C x_{k|k-1} - D u_k)$ % @end tex % @end iftex % @ifinfo % % @example % x[k+1|k] = A x[k|k-1] + B u[k] + LP (y[k] - C x[k|k-1] - D u[k]) % x[k|k] = x[k|k-1] + LF (y[k] - C x[k|k-1] - D u[k]) % @end example % @end ifinfo % % @noindent % The following values are returned: % % @table @var % @item Lp % The predictor gain, % @iftex % @tex % $(A - L_p C)$. % @end tex % @end iftex % @ifinfo % (@var{A} - @var{Lp} @var{C}) % @end ifinfo % is stable. % % @item Lf % The filter gain. % % @item P % The Riccati solution. % @iftex % @tex % $P = E \{(x - x_{n|n-1})(x - x_{n|n-1})'\}$ % @end tex % @end iftex % % @ifinfo % P = E [(x - x[n|n-1])(x - x[n|n-1])'] % @end ifinfo % % @item Z % The updated error covariance matrix. % @iftex % @tex % $Z = E \{(x - x_{n|n})(x - x_{n|n})'\}$ % @end tex % @end iftex % % @ifinfo % Z = E [(x - x[n|n])(x - x[n|n])'] % @end ifinfo % @end table % @end deftypefn