Code covered by the BSD License  

Highlights from
Optimal reduced-order discrete-time LQG design

Optimal reduced-order discrete-time LQG design

by

 

16 May 2008 (Updated )

Solution of the SDOPE by repeated forward and backward iteration

[psd]=psdrn(nx,nc)
% PSDRN: Generate a random positive semi-definite
%        nx x nx matrix of rank nc.
%
%        function [psd]=psdrn(nx,nc)
%
% optional input: nc (nc=nx is assumed otherwise).
%
%        L.G. Van Willigenburg, W.L. De Koning, 28-11-95.
%
  function [psd]=psdrn(nx,nc)

  if nx<0 | rem(nx,1)~=0;
    error('nx must be an integer > 0'); end;
  if nargin>1
    if nc<0 | nc>nx | rem(nc,1)~=0;
      error('nc must be an integer 0<=nc<=nx'); end;
  else; nc=nx; end;
  if nc==0; psd=zeros(nx);
  else;
    psd=randn(nx,nx); d=diag([abs(randn(1,nc)) zeros(1,nx-nc)]);
    psd=psd*d*psd';
  end

Contact us