User`s guide
Table Of Contents
- Preface
 - Quick Start
 - LTI Models
- Introduction
 - Creating LTI Models
 - LTI Properties
 - Model Conversion
 - Time Delays
 - Simulink Block for LTI Systems
 - References
 
 - Operations on LTI Models
 - Arrays of LTI Models
 - Model Analysis Tools
 - The LTI Viewer
- Introduction
 - Getting Started Using the LTI Viewer: An Example
 - The LTI Viewer Menus
 - The Right-Click Menus
 - The LTI Viewer Tools Menu
 - Simulink LTI Viewer
 
 - Control Design Tools
 - The Root Locus Design GUI
- Introduction
 - A Servomechanism Example
 - Controller Design Using the Root Locus Design GUI
 - Additional Root Locus Design GUI Features
 - References
 
 - Design Case Studies
 - Reliable Computations
 - Reference
- Category Tables
 - acker
 - append
 - augstate
 - balreal
 - bode
 - c2d
 - canon
 - care
 - chgunits
 - connect
 - covar
 - ctrb
 - ctrbf
 - d2c
 - d2d
 - damp
 - dare
 - dcgain
 - delay2z
 - dlqr
 - dlyap
 - drmodel, drss
 - dsort
 - dss
 - dssdata
 - esort
 - estim
 - evalfr
 - feedback
 - filt
 - frd
 - frdata
 - freqresp
 - gensig
 - get
 - gram
 - hasdelay
 - impulse
 - initial
 - inv
 - isct, isdt
 - isempty
 - isproper
 - issiso
 - kalman
 - kalmd
 - lft
 - lqgreg
 - lqr
 - lqrd
 - lqry
 - lsim
 - ltiview
 - lyap
 - margin
 - minreal
 - modred
 - ndims
 - ngrid
 - nichols
 - norm
 - nyquist
 - obsv
 - obsvf
 - ord2
 - pade
 - parallel
 - place
 - pole
 - pzmap
 - reg
 - reshape
 - rlocfind
 - rlocus
 - rltool
 - rmodel, rss
 - series
 - set
 - sgrid
 - sigma
 - size
 - sminreal
 - ss
 - ss2ss
 - ssbal
 - ssdata
 - stack
 - step
 - tf
 - tfdata
 - totaldelay
 - zero
 - zgrid
 - zpk
 - zpkdata
 
 - Index
 

Kalman Filtering
9-59
you can implement the time-varying filter with the following for loop.
P = B*Q*B'; % Initial error covariance
x = zeros(3,1); % Initial condition on the state
ye = zeros(length(t),1);
ycov = zeros(length(t),1); 
for i=1:length(t)
 % Measurement update
 Mn = P*C'/(C*P*C'+R);
 x = x + Mn*(yv(i)–C*x);  % x[n|n]
 P = (eye(3)–Mn*C)*P;   % P[n|n]
 ye(i) = C*x;
 errcov(i) = C*P*C';
 % Time update
 x = A*x + B*u(i);  % x[n+1|n]
 P = A*P*A' + B*Q*B';  % P[n+1|n]
end










