[comp.dsp] Best z-trans. for CONTROL SYSTEMS?

galetti@uservx.afwl.af.mil (04/18/91)

This might be covered in a FAQ posting, so I apologize if it is.

What transformation is best for converting a transfer function in a CONTROL
SYSTEM to the z-domain?  Right now I'm using the bilinear-z transform and
I'm converting a system that MATLAB says is stable, but when I actually 
implement the system on a DSP board, it is unstable.  Any help would be
greatly appreciated!
  ___________________________________________________________________________
 /   Ralph Galetti                  Internet:   galetti@uservx.afwl.af.mil   \
|    PL/LITT                        Interests:  computers, music, computers   |
|    Kirtland AFB, NM 87117-6008                and music, golf, sleep.       |
 \__"No, they couldn't actually prove that it was HIS vomit" - Nigel Tufnel__/

jamesv@hplsla.HP.COM (James Vasil) (04/23/91)

> What transformation is best for converting a transfer function in a CONTROL
> SYSTEM to the z-domain?  Right now I'm using the bilinear-z transform and
> I'm converting a system that MATLAB says is stable, but when I actually 
> implement the system on a DSP board, it is unstable.  Any help would be
> greatly appreciated!

The bilinear-z transform (or the related, pre-warped bilinear) is 
generally considered a good tranform to use when you are interested
in preserving the frequency domain charicteristics of your analog
filter.  Since the theory says that the bilinear transform of a stable
filter is a stable filter, I'd suggest you look into some of the
implementation details.  Some ideas to consider: is the transformation
being done correctly?  Is the analog filter really stable?  When the
filter coeficients are rounded, is this done in such a way so as to
keep poles inside the unit circle?  And so on.  

Regards & good luck,
James Vasil

Disclaimer: as always, these opinions are mine and not necessarily 
            those of my employer.

tonym@tplrd.tpl.oz.au (Tony Murphy) (04/24/91)

In article <9360025@hplsla.HP.COM> jamesv@hplsla.HP.COM (James Vasil) writes:
>The bilinear-z transform (or the related, pre-warped bilinear) is 
>generally considered a good tranform to use when you are interested
>in preserving the frequency domain charicteristics of your analog
>filter....

But for control applications the impulse response may be more important,
so the impulse invariant transformation should be considered.

Tony

james@phred.UUCP (James Taylor) (04/25/91)

In article <9360025@hplsla.HP.COM> you write:
>> What transformation is best for converting a transfer function in a CONTROL
>> SYSTEM to the z-domain?  Right now I'm using the bilinear-z transform and
>> I'm converting a system that MATLAB says is stable, but when I actually 
>> implement the system on a DSP board, it is unstable.  Any help would be
>> greatly appreciated!
>
>The bilinear-z transform (or the related, pre-warped bilinear) is 
>generally considered a good tranform to use when you are interested
>in preserving the frequency domain charicteristics of your analog
>filter.  Since the theory says that the bilinear transform of a stable
>filter is a stable filter, I'd suggest you look into some of the
>implementation details.  Some ideas to consider: is the transformation
>being done correctly?  Is the analog filter really stable?  When the
>filter coeficients are rounded, is this done in such a way so as to
>keep poles inside the unit circle?  And so on.  
>

One common problem to consider - in any integer IIR system of more than 2nd to 3rd 
order it is EXTREMELY easy to have a rounding condition at an intermediate stage,
that is inverted and fed back in such a way that oscillation is sustained.  Then if
there is any gain -from the intermediate stage- to the ouput you'll have something 
that looks unstable but whole z transform characterization looks OK.

I haven't found this effect to be at all uncommon, and if the effect turns out to be
a problem the only solution I've found is to inplement the filter so to 
	1) minimize individual tap to output gains
	2) use second order sections (rounding problems may still occur)
	3) organize the taps so that I can effectively prevent rounding oscillations
	   by including a non-linear tap - ie. if  Delta-tap value < 2, keep the old
	   tap value

Any other thoughts on rounding effects out there? Better, or more analytical approaches?
(I HAVE read Oppenheim and Schafer's chapters on this, as well as Roberts and Mullis)

-James Taylor

temp