Professional Documents
Culture Documents
Gerhard Heinzel
1
Gerhard Heinzel
Vector tting
Problem
complex functions of frequency
Gerhard Heinzel
Vector tting
Problem
complex functions of frequency transfer functions
Gerhard Heinzel
Vector tting
Problem
complex functions of frequency transfer functions loop gains
Gerhard Heinzel
Vector tting
Problem
complex functions of frequency transfer functions loop gains electrical impedance, admittance, S parameters
Gerhard Heinzel
Vector tting
Problem
complex functions of frequency transfer functions loop gains electrical impedance, admittance, S parameters origin These functions typically come from measurements and are usually shown as Bode diagrams.
Gerhard Heinzel
Vector tting
Problem
complex functions of frequency transfer functions loop gains electrical impedance, admittance, S parameters origin These functions typically come from measurements and are usually shown as Bode diagrams.
30 20 10 0 -10 dB -20 -30 -40 -50 -60 -70 0.1 1 10 Frequency [Hz] -90 100 0 -45 90 45 deg dB 180 135 Phase [Degree]
Gerhard Heinzel
Vector tting
Problem
complex functions of frequency transfer functions loop gains electrical impedance, admittance, S parameters origin These functions typically come from measurements and are usually shown as Bode diagrams.
30 20 10 0 -10 dB -20 -30 -40 -50 -60 -70 0.1 1 10 Frequency [Hz] -90 100 0 -45 90 45 deg dB -10 180 -20 135 Phase [Degree] -30 -40 dB 0 -50 deg -60 -70 -80 103 104 105 106 Frequency [Hz] 107 -45 -90 -135 -180 dB 135 90 45 Phase [Degree] 180
Gerhard Heinzel
Vector tting
Modelling
Gerhard Heinzel
Vector tting
Modelling
An analytical model of a measured transfer function is often desirable: simple, smooth, description for simulations
Gerhard Heinzel
Vector tting
Modelling
An analytical model of a measured transfer function is often desirable: simple, smooth, description for simulations parameters may have physical meanings, e.g. gain factors, resonance frequencies, quality factors, delay times. general rational model H(s) = A0 a0 + a1 s + a2 s 2 + + an s n s e b0 + b1 s + b2 s 2 + + s m
Gerhard Heinzel
Vector tting
Input data
with fk the frequency of the data point, used as sk = 2 i fk , Hk the value of the complex function, wk the weight of this data point, given as one of wk = 1/ 2 (Hk ) measured, best if available, wk = 1 absolute, wk = 1/|Hk |2 relative, wk = 1/|Hk | semi relative
Gerhard Heinzel
Vector tting
H0 (s) =
Gerhard Heinzel
Vector tting
Linear t of residuals
H0 (s) =
If the poles pj are known, the residuals can be found from a linear least-squares t to the data using the base functions 1 1 , ,.... (s p0 ) (s p1 ) But: The poles are in general not known.
Gerhard Heinzel
Vector tting
pole tting
Enter vector tting (Bjrn Gustavsen 1999), which could also be called pole tting: The aim is to nd all rm , pm , d and e in the model H(s) = rm + d + se s pm m=1
N
(1)
such as to minimize the (weighted) least-square deviation from the set of measured data. Starting with a set of initial poles {qm }, write (s)H(s) = x(s), where (s), and x(s) share the initial poles {qm }: m r rm + 1 H(s) = + d + se s qm s qm m=1 m=1
N N
(2)
Gerhard Heinzel
Vector tting
pole tting 2
m r rm + 1 H(s) = + d + se s qm s qm m=1 m=1 This augmented equation is tted to the given data, yielding m (and rm , r d, e). Rewriting (2) (s)H(s) = x(s) = H(s) = x(s) (s)
N N
shows that the poles of H(s) are the zeroes of (s), and the latter can be found by explicit algebraic operations on (s) = m r + 1. s qm m=1
N
This yields a new set of poles {qm }, and the procedure is iterated towards (s) 1 and {qm } = {pm }.
Gerhard Heinzel Vector tting
realization
One step of the VF iteration (to yield a new set of poles {qm }) needs to:
Gerhard Heinzel
Vector tting
realization
One step of the VF iteration (to yield a new set of poles {qm }) needs to: Solve the overdetermined linear real system rm m r + 1 Hk = + d + sk e sk qm sk qm m=1 m=1 of size (2Ndata + 1) (2N + 3) in the least-squares sense. A successful method is DGELSY from NETLIB, which uses QR factorization with column pivoting and is also used by MATLAB.
N N
Gerhard Heinzel
Vector tting
realization
One step of the VF iteration (to yield a new set of poles {qm }) needs to: Solve the overdetermined linear real system rm m r + 1 Hk = + d + sk e sk qm sk qm m=1 m=1 of size (2Ndata + 1) (2N + 3) in the least-squares sense. A successful method is DGELSY from NETLIB, which uses QR factorization with column pivoting and is also used by MATLAB. Solve a real asymmetric N N Eigenvalue problem. A good subroutine is DGEES from NETLIB.
N N
Gerhard Heinzel
Vector tting
realization
One step of the VF iteration (to yield a new set of poles {qm }) needs to: Solve the overdetermined linear real system rm m r + 1 Hk = + d + sk e sk qm sk qm m=1 m=1 of size (2Ndata + 1) (2N + 3) in the least-squares sense. A successful method is DGELSY from NETLIB, which uses QR factorization with column pivoting and is also used by MATLAB. Solve a real asymmetric N N Eigenvalue problem. A good subroutine is DGEES from NETLIB. Solve another overdetermined linear real system (1) of size (2Ndata ) (N + 2) in the least-squares sense.
N N
Gerhard Heinzel
Vector tting
14 poles to describe 660 data points are found in 0.3 seconds, fully automatically except choosing the number of poles and the weighting option.
Gerhard Heinzel Vector tting
14 poles to describe 660 data points are found in 0.3 seconds, fully automatically except choosing the number of poles and the weighting option.
Gerhard Heinzel Vector tting
16 poles to describe 16384 data points from 1 to 8192 Hz are found in 2.5 seconds, fully automatically except choosing the number of poles and the weighting option.
Gerhard Heinzel Vector tting
16 poles to describe 16384 data points from 1 to 8192 Hz are found in 2.5 seconds, fully automatically except choosing the number of poles and the weighting option.
Gerhard Heinzel Vector tting
Software status
MATLAB
Gerhard Heinzel
Vector tting
Software status
MATLAB Vector tting was developed in MATLAB by its inventor Bjrn Gustavsen.
Gerhard Heinzel
Vector tting
Software status
MATLAB Vector tting was developed in MATLAB by its inventor Bjrn Gustavsen. His code is freely available: http://www.energy.sintef.no/produkt/VECTFIT/index.asp
Gerhard Heinzel
Vector tting
Software status
MATLAB Vector tting was developed in MATLAB by its inventor Bjrn Gustavsen. His code is freely available: http://www.energy.sintef.no/produkt/VECTFIT/index.asp Another version is available as function rationalfit in the RF toolbox.
Gerhard Heinzel
Vector tting
Software status
MATLAB Vector tting was developed in MATLAB by its inventor Bjrn Gustavsen. His code is freely available: http://www.energy.sintef.no/produkt/VECTFIT/index.asp Another version is available as function rationalfit in the RF toolbox. LISO I have implemented the algorithm in LISO.
Gerhard Heinzel
Vector tting
Software status
Select initial poles vectfit2.m (Gustavsen) Pole relocation: 2ND * 2n overdet. linear fit
Future work:
increase n
No
Gerhard Heinzel
Vector tting
Software status
Select initial poles vectfit2.m (Gustavsen) Pole relocation: 2ND * 2n overdet. linear fit
Future work: for xed number of poles N, nd the best criterion to stop the iteration
increase n
No
Gerhard Heinzel
Vector tting
Software status
Select initial poles vectfit2.m (Gustavsen) Pole relocation: 2ND * 2n overdet. linear fit
Future work: for xed number of poles N, nd the best criterion to stop the iteration nd an automatic method to choose a suitable number of poles N
increase n
No
Gerhard Heinzel
Vector tting
Software status
Select initial poles vectfit2.m (Gustavsen) Pole relocation: 2ND * 2n overdet. linear fit
Future work: for xed number of poles N, nd the best criterion to stop the iteration nd an automatic method to choose a suitable number of poles N handle delays
increase n
No
Gerhard Heinzel
Vector tting
Software status
Select initial poles vectfit2.m (Gustavsen) Pole relocation: 2ND * 2n overdet. linear fit
Future work: for xed number of poles N, nd the best criterion to stop the iteration nd an automatic method to choose a suitable number of poles N handle delays handle data without phase (if possible)
working well working but needs refinement missing
increase n
No
Gerhard Heinzel
Vector tting
Postprocessing
H0 (s) =
is converted into its pole-zero representation H0 (s) = A0 (s z0 )(s z1 ) . . . [(s zj )(s zj )] . . . (s p0 )(s p1 ) . . . [(s pj )(s pj )] . . .
Gerhard Heinzel
Vector tting
Literature
Gustavsen, B; Semlyen, A: Rational approximation of frequency domain responses by vector tting IEEE TRANSACTIONS ON POWER
DELIVERY, Volume 14, Issue 3, page 10521061, 1999
Grivet-Talocia, S; Bandinu, M: Improving the convergence of vector tting for equivalent circuit extraction from noisy frequency responses IEEE TRANSACTIONS ON ELECTROMAGNETIC
COMPATIBILITY, Volume 48, Issue 1, page 104120, 2006
Gustavsen, B: Improving the pole relocating properties of vector tting IEEE TRANSACTIONS ON POWER DELIVERY, Volume 21, Issue 3,
page 15871592, 2006
Hendrickx, W; Dhaene, T: A discussion of rational approximation of frequency domain responses by vector tting IEEE TRANSACTIONS ON POWER SYSTEMS, Volume 21, Issue 1, page
441443, 2006
http://www.energy.sintef.no/produkt/VECTFIT/index.asp
Gerhard Heinzel
Vector tting