+ Post New Thread
Results 1 to 19 of 19
  1. #1
    Full Member level 1
    Points: 1,630, Level: 9

    Join Date
    Oct 2012
    Posts
    99
    Helped
    0 / 0
    Points
    1,630
    Level
    9

    How to implement a transfer function with discrete components

    Hi,

    I need to implement a second order transfer function in 's' domain (having 2 poles, 1 zero and 2.5 DC gain) using transistors and discrete components. Since I have not done so previously, can anyone guide me how to do so? I did a search with the keywords ‘realise a second order transfer function, bjt’ but ended up with papers on filters etc.

    If possible, pls. point to me to any document / app note/ website demonstrating the transfer function realization with an example.

    I am looking forward to your comments.

    Thanks,
    Arvind Gupta.

  2. #2
    Full Member level 5
    Points: 1,568, Level: 9

    Join Date
    Aug 2016
    Posts
    241
    Helped
    37 / 37
    Points
    1,568
    Level
    9

    Re: How to implement a transfer function with discrete components

    Hi,

    A common-emitter amplifier should do, I think.
    What are the zero and poles frequencies?

    - - - Updated - - -

    Add:

    What type of zero is it? Inverted or noninverted? Write out your transfer function too.
    Last edited by Akanimo; 8th February 2019 at 15:30.
    -------------
    --Akanimo.



  3. #3
    Advanced Member level 5
    Points: 40,206, Level: 49
    Achievements:
    7 years registered
    LvW's Avatar
    Join Date
    May 2008
    Location
    Germany
    Posts
    5,764
    Helped
    1722 / 1722
    Points
    40,206
    Level
    49

    Re: How to implement a transfer function with discrete components

    Quote Originally Posted by garvind25 View Post
    ............ but ended up with papers on filters etc.

    Thanks,
    Arvind Gupta.
    A transfer function with 2 poles and one zero IS A FILTER !!



    •   AltAdvertisment

        
       

  4. #4
    Full Member level 1
    Points: 1,630, Level: 9

    Join Date
    Oct 2012
    Posts
    99
    Helped
    0 / 0
    Points
    1,630
    Level
    9

    Re: How to implement a transfer function with discrete components

    Thanks for the response.

    The TF = 2.5 (s - 1)/ {(s+5) (s+60)}

    Regards,
    Arvind Gupta

    - - - Updated - - -

    - - - Updated - - -

    Quote Originally Posted by LvW View Post
    A transfer function with 2 poles and one zero IS A FILTER !!

    Thanks for the clarification. BTW is there any general technique for implementing TFs, viz. one pole TFs, 2 pole TFs, 3 pole TFs and so on.

    Regards,
    Arvind Gupta



  5. #5
    Advanced Member level 2
    Points: 4,400, Level: 15

    Join Date
    Feb 2014
    Posts
    577
    Helped
    207 / 207
    Points
    4,400
    Level
    15

    Re: How to implement a transfer function with discrete components

    As said, yes this is a filter and you need to be familiar with basic filter building blocks. There is no magic way to create an arbitrary system but there are some basic building blocks:

    First order low pass (pole)
    First order high pass (zero)
    Integrator (pole)
    Differentiator (zero)

    And then more advanced filter topological which include multiple poles and zeros (and the possibility of complex poles as zeros) such as sallen-key or biquad (2 pole, 2 zero).

    It's possible to create 3rd order and higher but, for various reasons, quite common to build those instead by cascading multiple first or second order blocks in series.

    Note that everything mentioned above is equally applicable to analog or digital (see IIR) systems.


    In the specific case of your transfer function I built it in LTSpice with RC->Differentiator (with opamp)->RC to create the two poles and one zero.



  6. #6
    Full Member level 1
    Points: 1,630, Level: 9

    Join Date
    Oct 2012
    Posts
    99
    Helped
    0 / 0
    Points
    1,630
    Level
    9

    Re: How to implement a transfer function with discrete components

    Quote Originally Posted by asdf44 View Post
    As said, yes this is a filter and you need to be familiar with basic filter building blocks. There is no magic way to create an arbitrary system but there are some basic building blocks:

    First order low pass (pole)
    First order high pass (zero)
    Integrator (pole)
    Differentiator (zero)

    And then more advanced filter topological which include multiple poles and zeros (and the possibility of complex poles as zeros) such as sallen-key or biquad (2 pole, 2 zero).

    It's possible to create 3rd order and higher but, for various reasons, quite common to build those instead by cascading multiple first or second order blocks in series.

    Note that everything mentioned above is equally applicable to analog or digital (see IIR) systems.


    In the specific case of your transfer function I built it in LTSpice with RC->Differentiator (with opamp)->RC to create the two poles and one zero.
    Thanks for the information. How did you provide a DC gain of 2.5 in your implementation pls? Can I ask you to share the ckt diagram / LTSpice file for a better understanding. I have not implemented TFs before and hence asking.

    Regards,

    Arvind Gupta



    •   AltAdvertisment

        
       

  7. #7
    Full Member level 5
    Points: 1,568, Level: 9

    Join Date
    Aug 2016
    Posts
    241
    Helped
    37 / 37
    Points
    1,568
    Level
    9

    Re: How to implement a transfer function with discrete components

    Quote Originally Posted by garvind25 View Post
    ...
    How did you provide a DC gain of 2.5 in your implementation pls? Can I ask you to share the ckt diagram / LTSpice file for a better understanding. I have not implemented TFs before and hence asking.
    ...
    Arvind Gupta
    asdf44 mentioned that he did it with an OpAmp, so basically, it would be Rf/R1=2.5 for a DC gain of 2.5.

    You haven't implemented transfer functions before? Why then are you going for transistor-based implementation? Why not prefer opamp-based implementation which would be far easier?

    Your transfer function is not in normalised form. Repost it's normalised form here.
    -------------
    --Akanimo.



    •   AltAdvertisment

        
       

  8. #8
    Full Member level 1
    Points: 1,630, Level: 9

    Join Date
    Oct 2012
    Posts
    99
    Helped
    0 / 0
    Points
    1,630
    Level
    9

    Re: How to implement a transfer function with discrete components

    Quote Originally Posted by Akanimo View Post
    asdf44 mentioned that he did it with an OpAmp, so basically, it would be Rf/R1=2.5 for a DC gain of 2.5.

    You haven't implemented transfer functions before? Why then are you going for transistor-based implementation? Why not prefer opamp-based implementation which would be far easier?

    Your transfer function is not in normalised form. Repost it's normalised form here.
    OK. I was asked to look for an inexpensive way to implement the transfer function. So I guessed that I would have to use transistors.

    The normalized form of the TF is:

    TF= 0.0083 (jw-1) / {-0.0033w^2 + 0.2166jw + 1}

    Regards,
    Arvind Gupta



  9. #9
    Full Member level 5
    Points: 1,568, Level: 9

    Join Date
    Aug 2016
    Posts
    241
    Helped
    37 / 37
    Points
    1,568
    Level
    9

    Re: How to implement a transfer function with discrete components

    Quote Originally Posted by garvind25 View Post
    OK. I was asked to look for an inexpensive way to implement the transfer function. So I guessed that I would have to use transistors.
    Opamps are inexpensive components. If you use them together with resistors and capacitors, transfer functions can be implemented at very low cost.
    The normalized form of the TF is:

    TF= 0.0083 (jw-1) / {-0.0033w^2 + 0.2166jw + 1}
    Okay, let's see.
    -------------
    --Akanimo.



  10. #10
    Full Member level 5
    Points: 1,568, Level: 9

    Join Date
    Aug 2016
    Posts
    241
    Helped
    37 / 37
    Points
    1,568
    Level
    9

    Re: How to implement a transfer function with discrete components

    I was trying to normalise the TF but I encountered some challenge. Here is where I got stuck:

    TF(s) = (2.5/300)*(s-1)/(1+(s/(300/65))+((s^2)/300))

    I am thinking of ways to normalise the numerator.

    How did you arrive at this transfer function? Where did you get it from?
    -------------
    --Akanimo.



  11. #11
    Full Member level 5
    Points: 1,568, Level: 9

    Join Date
    Aug 2016
    Posts
    241
    Helped
    37 / 37
    Points
    1,568
    Level
    9

    Re: How to implement a transfer function with discrete components

    I have been thinking about this transfer function.

    (s-1) in the numerator. Isn't that a RHPZ?

    And the frequencies are very low. For instance, if the zero (s-1) is compared to a standard form (s-w_z) then w_z = 1 = 2*pi*f_z.
    Therefore zero frequency f_z = 1/(2*pi) = 1/6.284 Hz.

    The transfer function doesn't seem like it is for a compensator. It seems like it is the transfer function of an uncompensated loop gain that you need to compensate. That's why I ask how you arrived at it. Maybe you should clarify.
    Last edited by Akanimo; 16th February 2019 at 00:28.
    -------------
    --Akanimo.



  12. #12
    Super Moderator
    Points: 251,412, Level: 100
    Awards:
    1st Helpful Member

    Join Date
    Jan 2008
    Location
    Bochum, Germany
    Posts
    43,781
    Helped
    13312 / 13312
    Points
    251,412
    Level
    100

    Re: How to implement a transfer function with discrete components

    (s-1) in the numerator. Isn't that a RHPZ?
    Obviously. Can be implemented with basic active circuit.

    Click image for larger version. 

Name:	tf.PNG 
Views:	12 
Size:	20.0 KB 
ID:	151157


    2 members found this post helpful.

  13. #13
    Full Member level 5
    Points: 1,568, Level: 9

    Join Date
    Aug 2016
    Posts
    241
    Helped
    37 / 37
    Points
    1,568
    Level
    9

    Re: How to implement a transfer function with discrete components

    FvM,
    Please review. The DC gain should be 2.5*1/(5*60) = 2.5/300.

    But not for the RHPZ, it could be implemented with a single Opamp.
    -------------
    --Akanimo.



  14. #14
    Super Moderator
    Points: 251,412, Level: 100
    Awards:
    1st Helpful Member

    Join Date
    Jan 2008
    Location
    Bochum, Germany
    Posts
    43,781
    Helped
    13312 / 13312
    Points
    251,412
    Level
    100

    Re: How to implement a transfer function with discrete components

    The DC gain should be 2.5*1/(5*60) = 2.5/300.
    Yes, that's what the circuit implements.



  15. #15
    Newbie level 1
    Points: 28, Level: 1

    Join Date
    Jan 2019
    Posts
    1
    Helped
    0 / 0
    Points
    28
    Level
    1

    Re: How to implement a transfer function with discrete components

    There is a classic book on this topic by Kendall Su. It is really an exhaustive book on filter design using passive components and/or active components.



  16. #16
    Advanced Member level 2
    Points: 4,400, Level: 15

    Join Date
    Feb 2014
    Posts
    577
    Helped
    207 / 207
    Points
    4,400
    Level
    15

    Re: How to implement a transfer function with discrete components

    I admit when I said I had modeled it above I was wrong which is why I never posted it. I had matched the gain and thought the phase mismatch I was seeing was a simulation artifact but in-fact was because I wasn't handling the RHP zero correctly. Thanks FvM for posting the correct circuit.



  17. #17
    Full Member level 5
    Points: 1,568, Level: 9

    Join Date
    Aug 2016
    Posts
    241
    Helped
    37 / 37
    Points
    1,568
    Level
    9

    Re: How to implement a transfer function with discrete components

    Now, I'm wondering what application we would need to implement a RHPZ for. Why would we want to increase gain slope by +20dB/decade but lose phase margin by 45 degrees?
    Last edited by Akanimo; Yesterday at 20:18.
    -------------
    --Akanimo.



  18. #18
    Full Member level 1
    Points: 1,630, Level: 9

    Join Date
    Oct 2012
    Posts
    99
    Helped
    0 / 0
    Points
    1,630
    Level
    9

    Re: How to implement a transfer function with discrete components

    Quote Originally Posted by FvM View Post
    Click image for larger version. 

Name:	tf.PNG 
Views:	12 
Size:	20.0 KB 
ID:	151157
    Could I ask how you arrived at this solution?

    Regards,
    Arvind Gupta



    •   AltAdvertisment

        
       

  19. #19
    Super Moderator
    Points: 251,412, Level: 100
    Awards:
    1st Helpful Member

    Join Date
    Jan 2008
    Location
    Bochum, Germany
    Posts
    43,781
    Helped
    13312 / 13312
    Points
    251,412
    Level
    100

    Re: How to implement a transfer function with discrete components

    1. Know that a RHPZ + single pole combo with unequal pole/zero frequencies can be implemented by modification of a standard active all-pass
    2. Add a second pole respectively first order low-pass
    3. Adjust the parameters by comparison of coefficients

    Used Sapwin to validate the transfer function



--[[ ]]--