Anonymous
×
Create a new article
Write your page title here:
We currently have 106 articles on MOR Wiki. Type your article name above or click on one of the titles below and start writing!



Synthetic parametric model: Difference between revisions

Ionita (talk | contribs)
Ionita (talk | contribs)
Line 31: Line 31:


:<math> r_1 = c_1+jd_1, r_2 = c_1-jd_1, \ldots, r_{n-1} = c_k+jd_k, r_n = c_k-jd_k. </math>
:<math> r_1 = c_1+jd_1, r_2 = c_1-jd_1, \ldots, r_{n-1} = c_k+jd_k, r_n = c_k-jd_k. </math>


Then a realization with matrices having real entries is given by
Then a realization with matrices having real entries is given by

Revision as of 12:48, 29 November 2011

Introduction

On this page you will find a synthetic parametric model for which one can easily experiment with different system orders n, values of the parameter ε, as well as different poles and residues.

Also, the decay of the Hankel singular values can be changed indirectly through the parameter ε.

System description

The parameter ε scales the real part of the system poles, that is, pi=εai+jbi. For a system in pole-residue form


H(s,ε)=i=1nrispi=i=1nris(εai+jbi)


we can write down the state-space realisation H(s,ε)=C^(sIεA^εA^0)1B^+D with


εA^ε+A^0=ε[a1an]+[jb1jbn],
B^=[1,,1]T,C^=[r1,,rn],D=0.


Notice that the system matrices have complex entries.

For simplicity, assume that n is even, n=2k, and that all system poles are complex and ordered in complex conjugate pairs, i.e.

p1=εa1+jb1,p2=εa1jb1,,pn1=εak+jbk,pn=εakjbk,

and the residues also form complex conjugate pairs

r1=c1+jd1,r2=c1jd1,,rn1=ck+jdk,rn=ckjdk.

Then a realization with matrices having real entries is given by


Aε=[Aε,1Aε,k],A0=[A0,1A0,k],B=[B1Bk],C=[C1Ck],D=0,


with Aε,i=[ai00ai], A0,i=[0bibi0], Bi=[20], Ci=[cidi].

Numerical values

We construct a system of order n=100. The numerical values for the different variables are

  • ai equally spaced in [103,10],
  • bi equally spaced in [10,103],
  • ci=1,
  • di=0,
  • ε[1/50,1].


In MATLAB the system matrices are easily formed as follows

n = 100;
a = -linspace(1e1,1e3,n/2).';   b = linspace(1e1,1e3,n/2).';
c = ones(n/2,1);                d = zeros(n/2,1);
aa(1:2:n-1,1) = a;              aa(2:2:n,1) = a;
bb(1:2:n-1,1) = b;              bb(2:2:n-2,1) = 0;
Ae = spdiags(aa,0,n,n);
A0 = spdiags([0;bb],1,n,n) + spdiags(-bb,-1,n,n);
B = 2*sparse(mod([1:n],2)).';
C(1:2:n-1) = c.';               C(2:2:n) = d.';   C = sparse(C);


Plots

We plot the frequency response and poles for a few different parameter values ε[1/50,1/20,1/10,1/5,1/2,1].


Frequency response of synthetic parametrized system, for parameter values 1/50 (blue), 1/20 (green), 1/10 (red), 1/5 (teal), 1/2 (purple), 1 (yellow).
Poles of synthetic parametrized system, for parameter values 1/50 (blue), 1/20 (green), 1/10 (red), 1/5 (teal), 1/2 (purple), 1 (yellow).


These plots can be obtained in MATLAB using the following commands

r(1:2:n-1,1) = c+1j*d;     r(2:2:n,1) = c-1j*d;
ep = [1/50; 1/20; 1/10; 1/5; 1/2; 1];                       % parameter epsilon
jw = 1j*linspace(0,1.2e3,5000).';                           % frequency grid
for j = 1:length(ep)
  p(:,j) = [ep(j)*a+1j*b; ep(j)*a-1j*b];                    % poles
  [jww,pp] = meshgrid(jw,p(:,j));
  Hjw(j,:) = (r.')*(1./(jww-pp));                           % freq. resp.
end
figure,  loglog(imag(jw),abs(Hjw),'LineWidth',2)
         axis tight,    xlim([6 1200])
         xlabel('frequency (rad/sec)')
         ylabel('magnitude')
         title('Frequency response for different \epsilon')
figure,  plot(real(p),imag(p),'.')
         title('Poles for different \epsilon')