FPGA Central - World's 1st FPGA / CPLD Portal

FPGA Central

World's 1st FPGA Portal

 

Go Back   FPGA Groups > NewsGroup > DSP

DSP comp.dsp newsgroup, mailing list

Reply
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old 03-25-2009, 02:57 AM
Suet
Guest
 
Posts: n/a
Default Filter Shaping and Control

Hi All

I'm trying to implement some digital temperature control using a
microprocessor, but I'm no DSP expert and I was hoping someone could let m
know if I'm on the right track. At the moment I'm just using PI control
and the transfer function has the form:

H(s)=1+1/s

The way I get to a digital implementation is:

1) Use bilinear transform: s-> 2(z-1)/(T(z+1))

2) Rearrange everything into powers of z

3) Use the time translation property of z trans. (eg z^2 X(z) = x(n+2)
so that it's in a form that can be implemented using a recursiv
algorithm.

I have some some simulations of the code and it all seems to wor
reasonably well. Ideally though I would like the transfer function to be o
the form:

H(s) = (1/s+1/(s+a)+1)

But when I carry out the process above and run the simulation, I ge
rubbish results. Is there anything inherently wrong with the way
implemented it ? Or is there some problem with the ideal transfer functio
?

Thanks
Fred.







Reply With Quote
  #2 (permalink)  
Old 03-25-2009, 05:55 AM
Robert Adams
Guest
 
Posts: n/a
Default Re: Filter Shaping and Control

On Mar 24, 8:57*pm, "Suet" <f...@physics.uwa.edu.au> wrote:
> Hi All
>
> I'm trying to implement some digital temperature control using a
> microprocessor, but I'm no DSP expert and I was hoping someone could let me
> know if I'm on the right track. At the moment I'm just using PI control,
> and the transfer function has the form:
>
> H(s)=1+1/s
>
> The way I get to a digital implementation is:
>
> 1) Use bilinear transform: s-> 2(z-1)/(T(z+1))
>
> 2) Rearrange everything into powers of z
>
> 3) Use the time translation property of z trans. (eg z^2 X(z) = x(n+2) )
> so that it's in a form that can be implemented using a recursive
> algorithm.
>
> I have some some simulations of the code and it all seems to work
> reasonably well. Ideally though I would like the transfer function to be of
> the form:
>
> H(s) = (1/s+1/(s+a)+1)
>
> But when I carry out the process above and run the simulation, I get
> rubbish results. Is there anything inherently wrong with the way I
> implemented it ? Or is there some problem with the ideal transfer function
> ?
>
> Thanks
> Fred.


I assume you mean


H(s) = (1/s) + (1/(s+a)) + 1 ???

You must obey the condition (a > 0) or else you have an unstable
system to start with, which will map into an unstable difference
equation.



Bob Adams
Reply With Quote
  #3 (permalink)  
Old 03-25-2009, 06:11 AM
Tim Wescott
Guest
 
Posts: n/a
Default Re: Filter Shaping and Control

On Tue, 24 Mar 2009 19:57:55 -0500, Suet wrote:

> Hi All
>
> I'm trying to implement some digital temperature control using a
> microprocessor, but I'm no DSP expert and I was hoping someone could let
> me know if I'm on the right track. At the moment I'm just using PI
> control, and the transfer function has the form:
>
> H(s)=1+1/s
>
> The way I get to a digital implementation is:
>
> 1) Use bilinear transform: s-> 2(z-1)/(T(z+1))
>
> 2) Rearrange everything into powers of z
>
> 3) Use the time translation property of z trans. (eg z^2 X(z) = x(n+2) )
> so that it's in a form that can be implemented using a recursive
> algorithm.
>
> I have some some simulations of the code and it all seems to work
> reasonably well. Ideally though I would like the transfer function to be
> of the form:
>
> H(s) = (1/s+1/(s+a)+1)
>
> But when I carry out the process above and run the simulation, I get
> rubbish results. Is there anything inherently wrong with the way I
> implemented it ? Or is there some problem with the ideal transfer
> function ?
>
> Thanks
> Fred.


I'm not sure how your results bad, so it's hard to say.

Your transfer function is second-order, but it can be an individual
proportional and integrator block. I'm not sure why you have the low-
pass block in there -- lead-lag?

For a simplified example of how to code a PID, see http://
www.embedded.com/2000/0010/0010feat3.htm.

For information on a book-length treatment that's still designed for the
practicing engineer, see http://www.wescottdesign.com/actfes/actfes.html.

--
http://www.wescottdesign.com
Reply With Quote
Reply

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
inverse Fourier for pulse shaping filter CW DSP 1 05-28-2008 09:52 PM
Pulse Shaping using RRC filter (again) Bob DSP 11 02-22-2008 01:32 AM
Pulse Shaping using RRC filter Bob DSP 9 02-18-2008 02:40 PM
Spectral Shaping using a PLL Loop Filter Jon Mcleod DSP 5 02-06-2008 03:24 PM
pulse shaping filter shalinish DSP 0 09-18-2006 04:40 PM


All times are GMT +1. The time now is 03:10 AM.


Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright 2008 @ FPGA Central. All rights reserved