Code covered by the BSD License

# Reduced-order discrete-time LQG design for systems with white parameters

### Gerard Van Willigenburg (view profile)

22 May 2008 (Updated )

Optimal compensation of time-varying discrete-time linear systems with white stochastic parameters

[pt,ph]=sproeqe(pm,gm,cm,pms,gms,cms,pgms,pcms,pva,gva,cva,pgva,pcva,...
```% SPROEQE one iteration of the Stochastic Parameter
%         Reduced-Order LQG Estimation equation.
%         Estimation equation of compensator for
%         (P,G,C,V,W) based on (Q,R) and nc=<nx.
%         (P,G,C) stochastic.
%
%         function [pt,ph]=sproeqe(pm,gm,cm,pms,gms,cms,pgms,pcms,pva,gva,cva,pgva,pcva,...
%                                  v,w,q,r,mc,me,st,sh,pt,ph,ta,a);
%
%         W.L. De Koning, L.G. Van Willigenburg, 28-11-95.
%
function [pt,ph]=sproeqe(pm,gm,cm,pms,gms,cms,pgms,pcms,pva,gva,cva,pgva,pcva,...
v,w,q,r,mc,me,st,sh,pt,ph,ta,a);

% Scale mean square values and variances in case of a
% homotopy
if a~=1
[pms,pva,gms,gva,cms,cva,pgms,pgva,pcms,pcva]=...
msvhom(pms,pva,gms,gva,cms,cva,pgms,pgva,pcms,pcva,a);
end;

[nx,nx]=size(pm);
%
% compute k
%
kn=w;
kn(:)=cms *pt(:)+w(:)+cva *ph(:);
h=me ; h(:)=h(:)+pcms *pt(:)+pcva* ph(:); k=h*pinv(kn);
%
% compute l
%
ln=r;
ln(:)=gms'*st(:)+r(:)+gva'*sh(:);
h=mc'; h(:)=h(:)+pgms'*st(:)+pgva'*sh(:); l=pinv(ln)*h;
%
% compute estimation recursions
%
knk=k *kn*k'; lhl=l *ph*l';
pt(:)=pms *pt(:)-knk(:)+v(:)+pva *ph(:)+gva *lhl(:);
h=pt; h1=l*ph ; h(:)=pgva *h1(:); pt=pt-h-h';

pgl=pm-gm*l; psi1=pgl *ph* pgl'+knk;
%