0% found this document useful (0 votes)
24 views47 pages

2017 Vector Fitting Algorithm

Uploaded by

dr.zcong
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
24 views47 pages

2017 Vector Fitting Algorithm

Uploaded by

dr.zcong
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 47

Vector -Fitting Algorithm

(Frequency-Domain)

Dr. Behzad Nouri

2017

Carleton
UNIVERSITY
Department of Electronics
Carleton
UNIVERSITY Problem Definition 1

 At high frequencies some complex electrical devices


may have no analytical models.
Example:
• 3D transmission lines
• vias, packages
• nonuniform transmission lines
• on-chip passive devices

On-chip interconnect structures,


showing six separate metal layers (Al or Cu).

The dielectric material buffering the six-conductor layers has been (chemically) etched away.
Carleton
UNIVERSITY Goal? 2

 Circuit

?
Realization of circuit

• Transfer Function (Y, Z, S, etc.)


• State-Space Formulation
• Circuit Realization (R,L,C, controlled-Sources, etc.)
Carleton
UNIVERSITY Data Acquisition 3

Devices/Subdesigns are characterized by tabulated data!

 Black Box

EM Simulation Measurements

Simulated / measured
Tabulated data
Carleton
UNIVERSITY Vector Fitting: Problem Definition 4

Freq. Data
Given tabulated-data: s1 f(s1)
s2 f(s2)
… …
sN f(sN)

Vector Fitting

Rational Transfer Function: F(s)=?

Circuit State Space


Elements Or (ODE)

Spice Circuit Simulator


Carleton
UNIVERSITY Common approach 5
Carleton
UNIVERSITY Common approach 6

Such approaches which are based on a direct


and primitive formulation can not handle the
modern applications.

• Not able to handel the wide frequency band s


(Practically ragning from DC to a few GHz)

• Easily becomes ill-conditioned

• Can not achieve Higher-Order Approximations


Carleton
UNIVERSITY Equivalents Forms for Trans. Func. 7

an −1s n −1 +an −2 s n −2 +  + a0 Transfer Function


(1) F ( s) n −1
+d
bn s + bn−1s +  + 1
n (Proper form)

(s − z1 )(s − z2 )(s − z ) × 
* ∏ (s− z )i

(2) F (s) = 2 i =1 Poles / Zeros


(s − a1 )(s − a2 )(s − a ) × 
* n
2
∏ (s− a )
k =1
k

c1 c2 c2* Partial Fraction /


(3) F (s) = + + + + d
s − a1 s − a2 s − a2*
Poles / Residue
Carleton
UNIVERSITY New form for the Basis 8

real Residue
c1 c2 c2*
F ( s=
) + + + + d
s − a1 s − a2 s − a2*
 
real Pole Complex - Conjugate pols

c2 c2* c2 c2* cˆ2 + cˆ3 j cˆ2 − cˆ3 j


+ = + = + =
s − a2 s − a2*
s − a2 s − a2*
s − a2 s − a2*
  
Complex - Conjugate pols

cˆ2 cˆ2 cˆ3 j cˆ3 j


+ + − =
s − a2 s − a2 s − a2 s − a2

 1 1   j j 
cˆ2  +  + cˆ3  − 
 s − a2 s − a2   s − a2 s − a2 
Carleton
UNIVERSITY New form for the Basis 9

Thereby, all the coefficients are real:


cˆ1 , cˆ2 , cˆ3 ,  , d ∈ 

 1   1 1   j j 
=
F ( s ) cˆ1   + cˆ2  + * 
+ cˆ3  − * 
+ + d
 s − a1   s − a2 s − a2   s − a2 s − a2 

Real Pole For the Pairs of

Complex-Conjugate Poles
Carleton
UNIVERSITY Select a Scaling Function 11

Data
F (s) = δ (s) f ( s)
Scaling Function
n
cˆi

i =1 s − ai
δ (s) f (s)
+d =

Same Poles
n
ci
δ (s) ∑
= +1
i =1 s − ai
Carleton
UNIVERSITY Select a Scaling Function 12

n
cˆi

Data
δ (s) f (s)
+d =
i =1 s − ai

n
ˆci  n ci 
∑ =
s − ai
+ d ∑ + 1 f ( s )
i 1=  i 1 s − ai 
Carleton
Formulation: Real-Poles
UNIVERSITY 13
n
cˆi  n ci 
We had: ∑ =
s − ai
+ d ∑ + 1 f ( s )
=i 1 =  i 1 s − ai 

n
ˆci n
ci
∑ =
s − ai
i 1=
+d ∑
i 1 s − ai
f (s) + f (s)

n
cˆi n
ci
∑ s − ai
i 1=
+d −∑
i 1 s − ai
f (s) =f (s)

 cˆ1 cˆn   f ( s ) ci f ( s ) cn 


 s− a +  + s− a + d  −  s− a +  + s− a  = f (s)
 1 n   i n 
Carleton
UNIVERSITY VF-Formulation: Real Poles 14

cˆ1 cˆn f ( sk ) c1 f ( sk ) cn


+ + +d − − − =f ( sk )
s k − a1 s k − an s k − a1 s k − an

cˆ1 cˆn f ( s1 ) c1 f ( s1 ) cn


+ + +d − − − =f ( s1 )
s1 − a1 s1 − an s1 − a1 s1 − an
cˆ1 cˆn f ( s2 ) c1 f ( s2 ) cn
+ + +d − − − =f ( s2 )
s 2 − a1 s 2 − an s 2 − a1 s 2 − an

cˆ1 cˆn f ( sN ) c1 f ( sN ) cn


+ + +d − − − =f ( sN )
s 2 − a1 s N − an s N − a1 s N − an
Carleton
UNIVERSITY VF-Formulation: Real Poles 15

 1 1 − f ( s1 ) − f ( s1 )   cˆ1 
 s −a  s −a 1
s1 − a1

s1 − an    
 1 1 1 n
    f ( s1 ) 
 1 1 − f ( s2 ) − f ( s2 )  cˆn   
s −a  s −a 1
s 2 − a1

s 2 − an   d  = 
f ( s )
2 
 2 1 2 n
    
          c1   
 1     f ( sN ) 
1 − f ( sN ) − f ( sN )   
  1  
 s N − a1 s N − an s N − a1 s N − an  cn 

• Equations are shown for real poles!


• They can be easily adapted to include complex poles too! (How?)
Carleton
UNIVERSITY Vector Fitting Algorithm 16

Step: Use an initial guess of poles an


And form the following matrix
equation!

 1 1 − f ( s1 ) − f ( s1 )   cˆ1 
 s −a  s −a 1
s1 − a1

s1 − an    
 1 1 1 n
    f ( s1 ) 
 1 1 − f ( s2 ) − f ( s2 )  cˆn   
s −a  s −a 1
s 2 − a1

s 2 − an   d  = 
f ( s )
2 
 2 1 2 n
    
          c1   
 1     f ( sN ) 
1 − f ( sN ) − f ( sN )   
  1  
 s N − a1 s N − an s N − a1 s N − an  cn 

A x = B
Carleton
UNIVERSITY Vector Fitting Algorithm 17

ℜeal ( A)  ℜeal (B)  This is an over-


Form:   x= 
determined linear
 ℑmg ( A )   ℑmg ( B )  problem!


𝐀𝐀 �
𝐁𝐁
The solution vector X includes the residues for both f(s) and d(s)!

x = [ cˆ1  cˆn c1  cn ]


T
d

We found the residues of d(s)!

Step: First least square solution to Find X


Carleton
UNIVERSITY Vector Fitting Algorithm 18

x = [ cˆ1  cˆn c1  cn ]


T
Solution vector: d
We found the residues of d(s)!
n

(For the proof see ∏ ( s − zˆ )


i
Apendix-1) δ (s) = i =1
n

∏(s − a )
i =1
i

Zeros of the d(s) are the (new) improved poles!

Step: Compute the zeros of scaling function!


Carleton
UNIVERSITY Vector Fitting Algorithm 19

We use these (new) improved poles to


start the next iteration!

Step: Repeat the steps  and  until poles


converge!

max ( )
n
=
Error in Poles ai( m ) − ai( m−1) < Threshold
i =1

Final Poles Obtained: ai


Carleton
UNIVERSITY Vector Fitting Algorithm 20

Step : For the final Poles run the second round


of least square to find residues!

 1 1 
s −a  1
s1 − an
 1 1   cˆ1   f ( s1 ) 
 1 
1     f ( s2 ) 
1
s −a 
s 2 − an  = 
 2 1  cˆn    
        
 1 1   
d f ( s N 
)
  1
 s N − a1 s N − an 

The results are Poles and Residues of the f(s)!


Carleton Computation of Zeros of d(s): Real case
UNIVERSITY 21

For scaling function d(s), given

{1 2 n} =
ci n
Poles: a , a ,  a δ (s) ∑ +1
i =1 s − ai
Residues: {c1 , c2 ,  cn }
?
?
n

∏ ( s − z )
{ z1 ?,= zn ?}
i

Zeros:= z2 ?, = δ (s) = i =1


n

∏(s − a )
i =1
i

(See Apendix-1)
Carleton Computation of Zeros of d(s): Real Case
UNIVERSITY 22

Having: Poles: a1 , a2 ,…, an Residues : c1 , c2 ,…, cn , 1

 a1  1
 a2  1
A=  B= 
    
  1
 an  

CT = [ c1 c2  cn ]

=
zeros of Transfer Func: z eig (A − BC ) T

(Using eigenvalue decomposition “eig()” function in Matlab)


Carleton Computation of Zeros of d(s): Complex Case
UNIVERSITY 23

 1 1   j j 
δ ( s ) =  + ci  + * 
+ ci +1  − * 
+ +1
 s − ai s − ai   s − ai s − ai 

α i + j βi
ai = α i − j βi
ai* =

Corresponding to the complex and its conjugate:

 α i βi  2
Ai =   di =   ciT = [ ci ci +1 ]

 i β α i 0
State space Realization

=x Ax + Bu(t ) State-Space equation



=
y C x + Du(t )
T (ODE)

= =
A [?], =
B [?], =
C [?], D [?]
Carleton State space Realization: Real Case
UNIVERSITY 25

Having: Poles: a1 , a2 ,…, an Residues : cˆ1 , cˆ2 ,…, cˆn , d

Can Find: ( A, B, C, D )

 a1  1
  1
a2
A=  B= 
    
  1
 an 

C = [ cˆ1 cˆ2  cˆn ]


T D=d
Carleton State space Realization: Complex Case
UNIVERSITY 26

Let’s have: Poles: , ai −1 , ai , a , ai + 2 ,…


*
   
i
Real Complex Conjugate Real

Residues : , cˆi −1 , cˆi , cˆi +1 , cˆi + 2 ,…, d


 
  1 
 

ai −1
  
 α β  2
A=  B= 
−β α




0
ai −2
  1 
   
 
C = [ cˆi −1 cˆi
T
cˆi +1 cˆi + 2 ] D=d
Carleton
UNIVERSITY Example 27

Let the initial guess for the poles be

a1 is Real, (a1 < 0)


a 2 = α + jβ, and a2* = α − jβ,
where α, β ∈ Real, (α < 0)

(i) Show the format of transfer function F(x) we are intended to find.

(ii) Show required format for the scalar function d(s) to be used.

(iii) Show the Vector Fitting equation.

(iv) Form the Vector Fitting Matrix equation.

(v) How to solve the equations to ensure real residues.

(vi) How to find zeros of the scaling function are obtained.


Carleton
UNIVERSITY Example 28

 Show the format of transfer function F(x) we are intended to find.

Using the same initial poles, a1 , a 2 = α + jβ, a2* = α − jβ,

 1   1 1   j j 
F ( s=
) cˆ1   + cˆ2  + * 
+ cˆ3  − * 
+d
 s − a1   s − a2 s − a2   s − a2 s − a2 
Carleton
UNIVERSITY Example 29

 Show required format for the scalar function d(s) to be used.

Using the same initial poles, a1 , a 2 = α + jβ, a2* = α − jβ,

 1   1 1   j j 
δ ( s=
) c1   + c2  + * 
+ c3  − * 
+1
 s − a1   s − a2 s − a2   s − a2 s − a2 
Carleton
UNIVERSITY Example 30

 Show the Vector Fitting equation at frequency si .

a1 , a 2 = α + jβ, a2* = α − jβ,

F ( si ) = δ( si ) f ( si )

 1   1 1   j j 
cˆ1   + cˆ2  + * 
+ cˆ3  − * 
+d −
 si − a1   si − a2 si − a2   si − a2 si − a2 

 f ( si )   f ( si ) f ( si )   f ( si ) j f ( si ) j 
c1   − c2  + * 
− c3  − * 
=
f ( si )
 si − a1   si − a2 si − a2   si − a2 si − a2 
Carleton
UNIVERSITY Example 31

 Form the Vector Fitting matrix equation at all given frequencies.


a1 , a 2 = α + jβ, a2* = α − jβ,

 1  1 1   j j  − f ( s1 )  1 1   j j    cˆ 
  + *   − * 
1 − + * 
f ( s1 ) − −  f ( s )  1
 s1 − a1  s1 − a2 s1 − a2   s1 − a2 s1 − a2  s1 − a1  s1 − a2 s1 − a2  − − * 1
 1 2 1 2
s a s a  cˆ2 
  1   cˆ   f ( s1 ) 
1   j j  − f ( s2 )  1 1   j j 
 1  + *   − * 
1 − + * 
f ( s2 ) − − * 
f ( s2 )   3   f ( s2 ) 
 s 2 − a1  s 2 − a2 s 2 − a2   s 2 − a2 s 2 − a2  s 2 − a1  s 2 − a2 s 2 − a2   s 2 − a2 s 2 − a2  d  =  
     
         1c  
 1  c2   f ( sN ) 
 1 1   j j  − f ( sN )  1 1   j j 
  +   − * 
1 − + * 
f ( s1 ) −  − * 
f ( sN )    
 s N − a1  s N − a2 s N − a2   s N − a2 s N − a2  s N − a1 − − − −   c3 
*
 N 2
s a s N a2   N 2
s a s N a 2 
B
x
A
Carleton
UNIVERSITY Example 32

(i) How to solve the equations to ensure real residues.

Ax=B

ℜeal ( A)  ℜeal (B) 


 ℑmg ( A)  x =  ℑmg (B) 
   

𝐀𝐀 �
𝐁𝐁

x =𝐀𝐀 �
� \𝐁𝐁 (Matlab)
Carleton
UNIVERSITY Example 33

 How to find zeros of the scaling function are obtained.

Having poles and residues of the scaling function as:


a1 , a 2 = α + jβ, a2* = α − jβ, and c1 , c2 , c3

 a1 0 0 1  D=d

A= 0 α β  
B= 2 
    CT = [ c1 c2 c3 ]
 0 − β α   0 

=
zeros of scaling func: z eig (A − BCT )
Carleton
UNIVERSITY Vector Fitting 34

Conversion of
Macromodels to
Equivalent Subcircuits:
Carleton
UNIVERSITY Equivalent Subcircuits 35

Conversion of the a given state-space equation (ODE) representation


of a subcircuit to its equivalent subcircuits can be accomplished in
several ways.

=x Ax + Bu(t ) State-Space equation



=
y C x + Du(t )
T (Ordinary Differential Equation)
Carleton
UNIVERSITY Equivalent Subcircuits 36

As an illustrative example let’s consider a simple two-port


network which only has two states represented: States

Port
Currents Port
Voltages
Carleton
UNIVERSITY Equivalent Subcircuits 37

Each state in the macromodel requires a separate node in the equivalent


circuit. Thus,

State-Eq.#1: − x1 + a11 x1 + a12 x2 + b11v1 + b12v2 =0


 Node#1 : x1 = vn1

 Node#2 : x2 = vn 2

Node#1: −vn1 + a11vn1 + a12vn 2 + b11v1 + b12v2 =


0
Carleton
UNIVERSITY Equivalent Subcircuits 38

KCL @ Node − 1 : −vn1 + a11vn1 + a12vn 2 + b11v1 + b12v2 =


0
    
− I1 I2 I3 I4 I5

x1 = vn1

I1 I2 I3 I4 I5

Element 1 ? Element 2 ? ? ? Element 5 ?


Carleton
UNIVERSITY Equivalent Subcircuits 39

KCL @ Node − 1 : −vn1 + a11vn1 + a12vn 2 + b11v1 + b12v2 =


0
    
− I1 I2 I3 I4 I5

 I1 = vn1
Element#1:  ⇒C =
1, Capasitor
 I c = Cv
 I 2 = a11vn1
 1
Element#2:  1 ⇒ R = , Resistor
 I R = R vR a11

 I 3 = a12vn 2
Element#3:  ⇒k =a12 , VCCS
 I = k vk
The difference between the case of Element#2 and Element#3 is that:
 for Element#2, Vn1 is a voltage across the same branch. Hence, it is a resistor.

 for Element#3, Vn2 is a voltage some where else in the circuit (not across the branch).
Carleton
UNIVERSITY Equivalent Subcircuits 40

KCL @ Node − 1 : −vn1 + a11vn1 + a12vn 2 + b11v1 + b12v2 =


0
    
− I1 I2 I3 I4 I5

x1 = vn1
•-I1
•VCCS •VCCS •VCCS

•I 2 •I 3 •I 4 •I 5
Carleton
UNIVERSITY Equivalent Subcircuits 41

Each state in the macromodel requires a separate node in the equivalent


=
circuit. Thus, x1 v= n1 , x2 vn 2
KCL @ Node − 2 : −vn 2 + a21vn1 + a22vn 2 + b21v1 + b22v2 =
0
    
− I '1 I '2 I '3 I '4 I '5

x2 = vn 2

-I’1 •I’3 •I’2 •I’4 •I’5


•VCCS •VCCS •VCCS
Carleton
UNIVERSITY Equivalent Subcircuits 42

The first “output equation” is realized through equivalent circuits as:

i1 = c11vn1 + c12vn 2 + d11v1 + d12v2


=x1 v=
n1 , x2 vn 2
Carleton
UNIVERSITY Equivalent Subcircuits 43

The first “output equation” is realized through equivalent circuits as:

i2 = c21vn1 + c22vn 2 + d 21v1 + d 22v2

=x1 v=
n1 , x2 vn 2
Carleton
UNIVERSITY References 44

Reference:
B. Gustavsen and A. Semlyen, “Rational approximation of frequency
domain responses by vector fitting,” IEEE Transactions on Power Delivery,
vol. 14, no. 3, pp. 1052–1061, Jul. 1999

Vector Fitting Website: https://www.sintef.no/projectweb/vectfit/


Downloads: https://www.sintef.no/projectweb/vectfit/downloads/
Carleton
UNIVERSITY Appendix-1: Forms of TF 45

an −1s n −1 +  + a0
f (s) n −1
+d Transfer Function
bn s + bn −1s +  + 1
n
(Strictly proper form)

(s − z1 )(s − z2 )(s − z2* ) ×  Poles / Zeros


f (s) =
(s − a1 )(s − a2 )(s − a2* ) ×  Model

Residue
c1 c2 c2* Partial Fraction
f ( s) = + + + + d
s − a1 s − a2 s − a2*
(Poles / Residue)
Poles
Carleton
UNIVERSITY Appendix-1: New Basis …. (cnt’d) 46

real Residue
c1 c2 c2*
f ( s=
) + + + + d
s − a1 s − a2 s − a2*
 
real Pole Complex - Conjugate pols

c2 c2* α +β j α −β j
+ = + =
s − a2 s − a2 s − a2 s − a2
α α βj βj
+ + − =
s − a2 s − a2 s − a2 s − a2
 1 1   j j 
α + +β − 
 s − a2 s − a2   s − a2 s − a2 

 1   1 1   j j 
=
f ( s ) cˆ1   + cˆ2  +  + cˆ3  −  + + d
 s − a1   s − a2 s − a2   s − a2 s − a2 
Carleton
UNIVERSITY Apendix-2 47

x = [ cˆ1  cˆn c1  cn ]


T
Solution vector: d

We found the residues of d(s)!

Zeros of the d(s) are the improved poles of f(s)! (Why?)


Proof:
n
cˆi  n ci 

n
cˆi
i =1 s − ai
δ (s) f (s)
+d = ∑ =
s − ai
+ d ∑ + 1 f ( s )
=i 1 =  i 1 s − ai 
n n

∏ ( s − zˆ ) ∏ ( s − z )
i i
n

∏ ( s − zˆ )
i =1
= i =1
f (s) i
n n i =1
= f (s)
∏(s − a ) ∏(s − a )
i =1
i
i =1
i
n

∏ ( s − z )
i
i =1

You might also like