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 47: Line 47:
We construct a system of order <math>n = 100</math>. The numerical values for the different variables are
We construct a system of order <math>n = 100</math>. The numerical values for the different variables are


* <math>a_i </math> equally spaced in <math> [10, 10^3]</math>,
* <math>a_i </math> equally spaced in <math> [-10^3, -10]</math>,


* <math>b_i </math> equally spaced in <math>[10, 10^3]</math>,
* <math>b_i </math> equally spaced in <math>[10, 10^3]</math>,
Line 61: Line 61:


:<tt>
:<tt>
n = 100;                                                   % system order n
n = 100;
a = -linspace(1e1,1e3,n/2).';                               % poles p = a+jb
 
a = -linspace(1e1,1e3,n/2).';
 
b = linspace(1e1,1e3,n/2).';
b = linspace(1e1,1e3,n/2).';
c = ones(n/2,1);                                           % residues p = c+jd
 
c = ones(n/2,1);
 
d = zeros(n/2,1);
d = zeros(n/2,1);
aa(1:2:n-1,1) = a;         aa(2:2:n,1) = a;                 % system matrices
 
bb(1:2:n-1,1) = b;         bb(2:2:n-2,1) = 0;
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);
Ae = spdiags(aa,0,n,n);
A0 = spdiags([0;bb],1,n,n)+spdiags(-bb,-1,n,n);
A0 = spdiags([0;bb],1,n,n)+spdiags(-bb,-1,n,n);
B = 2*sparse(mod([1:n],2)).';
B = 2*sparse(mod([1:n],2)).';
C(1:2:n-1) = c.';         C(2:2:n) = d.';   C = sparse(C);
 
C(1:2:n-1) = c.';
 
C(2:2:n) = d.';
 
C = sparse(C);
 
</tt>
</tt>

Revision as of 11:38, 29 November 2011

Introduction

On this page you will find a purely synthetic parametric model. The goal is to have a simple parametric model which one can use to experiment with different system orders, parameter values etc.

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);