Code covered by the BSD License  

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

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

by

 

22 May 2008 (Updated )

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

examp.m
% EXAMP : Script example from paper [15]
% L.G. van Willigenburg, W.L. De Koning, 1999,
% "Optimal reduced-order compensators for time-varying discrete-time systems
% with deterministic and white parameters",
% Automatica, 35, 129-138
%
% Remark: As opposed to the results listed in table 1 of the paper
%         the (modified) homotopy algorithm 1 does not find the best
%         of the two solutions for lambda=0 and lambda=0.1.
%         It only finds the best one for lambda=0.01.
%
  clear;
  global lambda;
  
  func='sprtvvex'; lit=0;
  
  %Values for lambda and seeds for random number generators
  lt=[0 0.01 0.1]; seedt=[10 5 2];
  
  for lambda=lt
    
    % Compute the full-order compensator
    opt=[]; opt(1)=1e-8; opt(6)=1; opt(4)=20; [xfklo,sigpo,sigso,ptto,stto,phto,shto,trpso]=spfotv(func,opt);
    disp(' ');
    disp(['   Cost full-order compensator lambda=' num2str(lambda)]); disp([sigpo, sigso]);
    
    % Compute the two reduced-order compensators using algorithm 2
    rand('seed',0); randn('seed',0);
    opt=[]; opt(1)=1e-8; opt(6)=1; opt(4)=20; [xfkl,sigp,sigs,ptt,stt,pht,sht]=sprotvv(func,opt);
    disp(['   First solution of Algorithm 2 lambda=' num2str(lambda)]); disp([sigp, sigs]);
    
    lit=lit+1;
    rand('seed',seedt(lit)); randn('seed',seedt(lit));
    opt=[]; opt(1)=1e-8; opt(6)=2; opt(4)=20; [xfkl1,sigp1,sigs1,ptt1,stt1,pht1,sht1]=sprotvv(func,opt);
    disp(['   Second solution of Algorithm 2 lambda=' num2str(lambda)]); disp([sigp1 sigs1]);
    
    % Compute the reduced-order compensator using the homotopy algorithm 1
    opt=[]; opt(1)=1e-8; opt(6)=3; opt(4)=20; opt(10)=0.1; [xfklh,sigph,sigsh,ptth,stth,phth,shth]=sprotvv(func,opt);
    disp(['   Solution of Algorithm 1 lambda=' num2str(lambda)]); disp([sigph sigsh]);
  end

Contact us