[SI-LIST] Re: rational function approximation

  • From: Steve Corey <steven.corey@xxxxxxxxxxxxxx>
  • To: si-list@xxxxxxxxxxxxx
  • Date: Mon, 19 Apr 2004 09:40:41 -0700

Geoff -- with respect to causality and passivity, there are a number of 
frames of reference through which you can view the problem.

You mention that it must make physical sense.  In the same way that a 
time-domain simulation doesn't make sense if the output starts before 
the input is applied, a non-passive system doesn't make sense either, 
because it generates energy from nowhere.  It violates our current 
understanding of thermodynamics.  (As a side note, the most commonly 
accepted definitions of passivity require causality as a corollary. 
This is because a non-causal system can have energy appearing at its 
output before any energy is applied to its inputs.)

You mention numerical convergence.  From a simulation perspective, you 
can make numerical arguments in favor of passivity.  A simulator need 
not worry explicitly about passivity -- it only needs to worry about 
asymptotic stability.  For a non-passive system you can always find a 
passive termination scheme which will map to an asymptotically unstable 
system.  Simulating this system will eventually result in a "timestep 
too small" error, meaning the numerical integration scheme didn't 
converge.  However, you can show that the convergence issue is secondary 
by restricting yourself to linear systems.  For such systems, you can 
easily create a simulator which doesn't integrate using time steps, but 
instead solves its equations in the time domain analytically using 
exponentials.  (I'm not implying that this simulator is computationally 
feasible.)  This simulation doesn't need to converge, since it computes 
its results analytically.  However, the simulation will still blow up, 
since exponential growth is exponential growth, whether computed 
analytically or via an integration scheme.

You can also view the situation mathematically and come to the same 
conclusion.  You've mentioned that a well-extracted model should give 
results pretty close to the measured results.  However, the functions 
we're dealing with here are not terribly well behaved, in that they have 
singularities (poles) all over the place.  Depending on how you 
terminate the system, you can shift its singularities.  If it's not 
passive, you can add a passive termination which will shift its poles 
across the jw-axis, so they now correspond to exponential growth.  This 
is an extremely sensitive mapping -- infinitesimally shifting a 
singularity in the frequency domain causes the time-domain function to 
change from one that decays to zero to one which explodes to infinity. 
This is the occasional hiccup which you postulate, but it's actually not 
terribly uncommon in interconnect models which are not guaranteed 
passive, since by their nature, interconnects tend to be close to 
lossless, and it takes very little nudging to push their poles across 
the jw-axis.  In fact, your optimization can be spot-on at every 
measured data point, but the resultant system is active.  Clearly you 
need more than a good optimization scheme.

The bottom line -- whether you consider yourself a mathematician, 
physicist, or algorithm developer -- if you want your models to be 
reliably accurate in general time-domain simulation, you have to 
mathematically guarantee that they're physically passive.  In my 
experience, this is the only way to keep the customer, the circuit 
designer, happy.

   -- Steve


-------------------------------------------
Steven D. Corey, Ph.D.
Time Domain Analysis Systems, Inc.
"The Interconnect Analysis Company."
http://www.tdasystems.com

email: steven.corey@xxxxxxxxxxxxxx
phone: (503) 246-2272
fax:   (503) 246-2282
-------------------------------------------


Geoff Stokes wrote:
> Hi Joel and Ray
> 
> Thinking about the practical problem of taking s-parameters from measurement
> or field simulation, thank you for your comments.
> I have some further questions.  The two requirements for the representation
> in the non-linear transient simulator (e.g. SpectreRF n-port element) are,
> as you have said between you, that it be
> 1.  Causal and
> 2.  Passive (that is, it contains no power generators)
> Number 1 I understand: no time domain simulation makes sense if the output
> changes before the input.
> I take it that number 2 is to avoid numerical convergence problems.  If the
> representation (n-port or otherwise) were well-optimised, the model is going
> to be largely passive except perhaps for the occasional hiccup.  So, do
> these requirements arise because of *bad* optimisations?
> Further, it seems to me that the abstraction of generators in, for example a
> y-parameter laplace formulation is rather too general.  The case of a
> network of printed circuit traces or package pins and bond-wires is
> essentially one of linear lossy transmission lines, which on paper are
> naturally represented by low-pass LCR filter sections or lossy transmission
> line (TXL) models.  Unfortunately the couplings between them occur over
> finite distances, therefore mutual inductances and capacitances are not
> always sufficient, and further delay circuits (LCR or TXL) must be added to
> the model.  Such a model is real-world: it could actually be physically
> constructed (though no-one might actually do it) and therefore guarantees
> both causality (because it is real-world) and passivity (because it has no
> generators).
> 
> In contrast to this picture, using the Cadence n-port, what goes on is not
> entirely visible to the user.  All that can be done is to have-a-go, then
> check the model behaviour against the original s parameters.  (In practice
> the s-parameter files are sometimes not well fitted down to DC and this
> leads to errors in the DC bias representation.  The files are large and not
> easily adjustable to correct this.)  Would it not therefore be better to use
> some kind of network optimisation using RLCM +TXL?  Some vendors have
> approached this but progress seems slow.  I wonder whether this is because
> of the difficulty of the problem or whether the market requirement exists
> (or has been missed).
> 
> Best wishes
> ______________________________________________=20
> 
> Geoff Stokes
> Systems Engineer, Signal Management Group
> 
> Zetex plc=20
> Lansdowne Road, Chadderton, Oldham, OL9 9TY,=A0 UK=20
> Tel direct:=A0 +44-161-622-4857=A0=A0 Switchboard: +44-161-622-4444
> Fax:=A0 +44-161-622-4469=20
> http://www.zetex.com=20
> e-mail:=A0 gstokes@xxxxxxxxx=20
> 
> 
> 
> 
>>-----Original Message-----
>>From: Joel R. Phillips [mailto:jrp@xxxxxxxxxxx]
>>Sent: 17 April 2004 20:27
>>To: si-list@xxxxxxxxxxxxx
>>Subject: [SI-LIST] Re: rational function approximation=20
>>=20
>>=20
>>=20
>>=20
>>=20
>>
>>>Date: Fri, 16 Apr 2004 13:38:56 -0700
>>>From: Ray Anderson <Raymond.Anderson@xxxxxxx>
>>>Subject: [SI-LIST] Re: rational function approximation
>>>
>>>
>>>After responding to Amitava's question regarding rational function=20
>>>approximation macromodels I was prompted to think about the=20
>>
>>problem a=20
>>
>>>bit more which brought a couple items to mind that I'd like to throw=20
>>>out to the list for comment.
>>
>>=20
>>Ray,=20
>>=20
>>Let me try to address some items and comment on some others=20
>>that appeared
>>earlier in the thread.=20
>>=20
>>1.  Checking passivity by examining eigenvalues of Y/Z, or I-S*S'.=20
>>=20
>>Two warnings here.=20
>>=20
>>While this approach is quite widely used, it has a problem in=20
>>that checking
>>positive realness at points does not actually insure the=20
>>positive realness
>>of a rational function.   First, the PR condition must be=20
>>established over
>>the entire frequency axis, up to "infinite" frequency, and=20
>>this is hard to
>>do.  Second, there is the problem of what happens between the=20
>>points at
>>which the check is performed.  In practice, using very dense=20
>>samplings over
>>a wide frequency range often works, but I have seen some squirelly
>>counter-examples.   In particular, putting such a check inside an
>>optimization loop can result in the optimizer driving its=20
>>approximation to
>>non-passivity in strange places you are unlikely to ever=20
>>look.   There is a
>>paper by Anderson, Manrous, Kraus, "A new test for strict positive
>>realness", IEEE Trans CAS-I, p. 226, 1995, that discusses=20
>>grid-based tests
>>that can be guaranteed to work.=20
>>=20
>>Second, I believe that, even if the entire axis can be=20
>>covered, this check
>>as usually applied is, strictly speaking, not enough to=20
>>insure passivity.
>>It is in addition necessary that the system under=20
>>consideration be causal.
>>I believe that there is an early paper of Stephen Boyd's that=20
>>discusses
>>this issue; it's probably up on his web site at Stanford.
>>=20
>>In the case of rational functions, or any state-space model i.e finite
>>system of differential equations, a better approach is to use=20
>>the positive
>>real lemma (or bounded-real lemma for S-parameters).  By examining the
>>eigenvalues of a single matrix constructed from the=20
>>coefficients of the
>>rational function or state-space model, passivity of the model can be
>>determined definitively.  There is a discussion (fairly formidable
>>mathematics I'm afraid) of how to use such a check in an approximation
>>algorithm in "A convex programming approach for generating guaranteed
>>passive approximations to tabulated data", IEEE Trans. CAD, Feb 2004,
>>p293-301.  I have it on good authority that the authors are=20
>>not only quite
>>intelligent but very nice guys as well :-)
>>=20
>>=20
>>Finally, let me point out that one may as well inspect the=20
>>singular values
>>of the S-matrix, or the inf-norm of the S-function.   For=20
>>this reason I
>>personally prefer to inspect S if I am doing work by hand --=20
>>you can get a
>>nice plot of the ||S|| function vs. frequency.  If it peaks above one,
>>there is a problem.   How much of a problem depends on the size of the
>>peak.=20
>>=20
>>2. Model checking, LHP poles/zeros.=20
>>=20
>>
>>>A second related question that I hope may elicit some discussion is:=20
>>>As just discussed we know how to determine if a set of measured or=20
>>>synthesized s-parameter data indicates that the network from=20
>>
>>which it=20
>>
>>>was obtained is passive or not. However if we follow the process=20
>>>through, i.e., take the s-parameter data and use it to create a=20
>>>rational function approximation or even perhaps a lumped element=20
>>>model, then in order to assure passivity of the synthesized model is=20
>>>it necessary to turn around and extract the s-parameters from the=20
>>>model and go through the eigenvalue process described above,=20
>>
>>or is the=20
>>
>>>process of assuring that both the poles AND zeros of the rational=20
>>>function are in the left hand plane adequate to ensure=20
>>
>>passivity? (If=20
>>
>>>I remember correctly that is the criteria...)
>>
>>=20
>>I'm sure most members of this list do more measurements than I
>>do, but my experience is that much measured data has enough=20
>>measurement
>>error to render it slightly non-positive-real. Solution to=20
>>this is to use a
>>fitting procedure that is constrained positive real, and minimizes the
>>deviations from the actual measured data.=20
>>=20
>>Whatever process is used to generate the model, yes, you must=20
>>check it for
>>passivity.  This is cheap and easy using the positive-real (or
>>bounded-real) lemma as discussed above.  What is harder is to fix the
>>problem.  Actually my opinion is that it is impossible to fix=20
>>the problem
>>after the fact, passivity has to be built in by construction. See
>>previously reference paper.
>>=20
>>About pole and zero locations.   It is a necessary condition that
>>passive models have poles and zeros in the LHP.   But it is a=20
>>misconception
>>that this condition is sufficient.  For example, given a=20
>>passive model in
>>S-parameter form, it can be rendered non-passive by multiplying by an=20
>>appropriate constant, without moving either poles or zeros.=20
>>Likewise, for
>>Y/Z parameter forms, just flip the sign.   More interesting=20
>>counterexamples
>>can be constructed with some effort.=20
>>=20
>>3. Issues with Spectre simulator.=20
>>=20
>>I believe the current thread started with questions about the=20
>>models the
>>Spectre circuit simulator generates internally.  It is a=20
>>known problem that
>>the algorithm currently used often generates models that are=20
>>not passive.
>>If Spectre claims the models are not passive, they aren't, as=20
>>it checks the
>>bounded-real lemma equations which are definitive.  I'm=20
>>afraid that at this
>>point there is not much that can be done about this problem=20
>>from the user
>>side -- massaging the data, or changing the order of the=20
>>rational model,
>>can sometimes help resolve the problem.  While I'm not in a=20
>>position to
>>make promises, a future version of the product should contain=20
>>a fix.  In
>>the meantime, the 'interp=3Dspline' option to the nport component is a
>>reliable alternative to rational fitting with 'interp=3Drational'.
>>=20
>>4. Generating your own models in MATLAB etc.=20
>>=20
>>The previously mentioned convex programming paper has a=20
>>fairly extensive
>>bibliography that might be a good place to start.   There is=20
>>a lot of code
>>around to perform rational approximation, system=20
>>identification, etc. but
>>I'm not aware of any code publicly available that can=20
>>guarantee passivity
>>(I welcome correction on this point).=20
>>=20
>>Regards,=20
>>=20
>>Joel Phillips=20
>>------------------------------------------------------------------
>>To unsubscribe from si-list:
>>si-list-request@xxxxxxxxxxxxx with 'unsubscribe' in the Subject field
>>=20
>>or to administer your membership from a web page, go to:
>>//www.freelists.org/webpage/si-list
>>=20
>>For help:
>>si-list-request@xxxxxxxxxxxxx with 'help' in the Subject field
>>=20
>>List FAQ wiki page is located at:
>>                http://si-list.org/wiki/wiki.pl?Si-List_FAQ
>>=20
>>List technical documents are available at:
>>                http://www.si-list.org
>>=20
>>List archives are viewable at:    =20
>>              //www.freelists.org/archives/si-list
>>or at our remote archives:
>>              http://groups.yahoo.com/group/si-list/messages
>>Old (prior to June 6, 2001) list archives are viewable at:
>>              http://www.qsl.net/wb6tpu
>> =20
>>=20
> 
> 
> 
> _________________________________________________________
> 
> Zetex Semiconductors - Solutions for an analog world
> 
> EID Award Winners for  'Best Use of Technology' 2003 for the=20
> AcoustarTM ZXCW8100 End-to-End Digital Audio Amplifier Controller
> 
> http://www.zetex.com
> _________________________________________________________
> 
> ######################################################################
> E-MAILS are susceptible to interference. You should not assume that
> the contents originated from the sender or the Zetex Group or that they=20
> have been accurately reproduced from their original form.
> Zetex accepts no responsibility for information, errors or omissions in
> this e-mail nor for its use or misuse nor for any act committed or
> omitted in connection with this communication.
> If in doubt, please verify the authenticity with the sender.
> ######################################################################
> 
> ------------------------------------------------------------------
> To unsubscribe from si-list:
> si-list-request@xxxxxxxxxxxxx with 'unsubscribe' in the Subject field
> 
> or to administer your membership from a web page, go to:
> //www.freelists.org/webpage/si-list
> 
> For help:
> si-list-request@xxxxxxxxxxxxx with 'help' in the Subject field
> 
> List FAQ wiki page is located at:
>                 http://si-list.org/wiki/wiki.pl?Si-List_FAQ
> 
> List technical documents are available at:
>                 http://www.si-list.org
> 
> List archives are viewable at:     
>               //www.freelists.org/archives/si-list
> or at our remote archives:
>               http://groups.yahoo.com/group/si-list/messages
> Old (prior to June 6, 2001) list archives are viewable at:
>               http://www.qsl.net/wb6tpu
>   
> 
> 
> 


-- 

------------------------------------------------------------------
To unsubscribe from si-list:
si-list-request@xxxxxxxxxxxxx with 'unsubscribe' in the Subject field

or to administer your membership from a web page, go to:
//www.freelists.org/webpage/si-list

For help:
si-list-request@xxxxxxxxxxxxx with 'help' in the Subject field

List FAQ wiki page is located at:
                http://si-list.org/wiki/wiki.pl?Si-List_FAQ

List technical documents are available at:
                http://www.si-list.org

List archives are viewable at:     
                //www.freelists.org/archives/si-list
or at our remote archives:
                http://groups.yahoo.com/group/si-list/messages
Old (prior to June 6, 2001) list archives are viewable at:
                http://www.qsl.net/wb6tpu
  

Other related posts: