1. Not finding help here? Sign up for a free 30min tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Designing Lag or Lead Compensators with 3rd order systems

  1. Jun 17, 2014 #1
    For a 3rd order system, can I use 2nd order approximation (granted dominant pole is ≈5 Tau away from third pole), when designing a Lead or Lag compensator?



    Can this OLTF = K/{s(0.1s+1)(s+1)} be approximated to 10K/{s(s+1) which ultimately gives CLTF=10K/{s(s+1)+ K} ? and then design Lead or lag network based on the performance specifications (which are given)

    OLTF - Open Loop Transfer Function
    CLTF - Closed Loop Transfer Function
     
  2. jcsd
  3. Jun 17, 2014 #2

    donpacino

    User Avatar
    Gold Member

    1.) The smallest pole is the most dominant. If you were to get rid of a pole it would be the pole at 1.

    2.) do you have access to matlab? If the answer is yes, I would sim both systems and compare the differences.
    typically to completely disregard a pole pd/px << 1 where px is the pole in question and pd is the dominant pole. When you are near that range things can get fuzzy.

    in your case I would disregard the pole for your calculation of your lead/lag network. Then resim the system with the original network. If you need to tweek your lead/lag filter to achive the desired phase margin or step response then do so. Keep in mind that the closer a pole/zero is to the dominant pole, the more effect it will have on the system response

    keep in mind that a pole that occurs after the zero crossover has much less of an effect than a pole that occurs before the zero crossover. Keep that in mind when setting your dc gain
     
  4. Jun 17, 2014 #3

    donpacino

    User Avatar
    Gold Member

    clc,clear
    close all
    format short eng


    k=0.01;
    %p=extra pole
    p=1

    sys_1=zpk([],[0 -0.1],k);
    sys_2=zpk([],[0 -p -0.1],k*p);

    sys_1_cl=feedback(sys_1,1);
    sys_2_cl=feedback(sys_2,1);

    figure()
    step(sys_1_cl,sys_2_cl)
    legend('sys 1','sys 2')
    title('closed loop step response')

    figure()
    bode(sys_1,sys_2)
    legend('sys 1','sys 2')
    title('open loop freq response')

    figure()
    bode(sys_1_cl,sys_2_cl)
    legend('sys 1','sys 2')
    title('closed loop freq response')

    sys_1_info=stepinfo(sys_1_cl)
    sys_2_info=stepinfo(sys_2_cl)

    sys_1_cl_pole=pole(sys_1_cl)
    sys_2_cl_pole=pole(sys_2_cl)

    here is some matlab code you can use to experiment. change p to change the value of the added pole
     
  5. Jun 17, 2014 #4
    Don, I was thinking that the smallest pole is s=-10 is the one that can be ignored, sorry if I'm wrong. But isn't that's the one farthest from imaginary axis so has little effect on the system response?

    And thank you for the answer & the MATLAB code. I'll check it soon as I get MATLAB.
     
  6. Jun 18, 2014 #5

    donpacino

    User Avatar
    Gold Member

    ya you're right. I was an idiot and thought the pole was at 0.1....
    it was a blond moment
     
  7. Jun 18, 2014 #6
    :) no worries. So do you think the approximation is right?
     
  8. Jun 18, 2014 #7

    donpacino

    User Avatar
    Gold Member

    As I said above, the approximation is on the border of being right. The addition of that pole at 10 does effect the system. It really depends on how accurate you need to be. with the pole at 10, the overshoot changes by 5%. All other effects are negligible.

    I would recommend you make the approximation, but then test the system with a pole at 10, and make adjustments if needed. Does that make sense?


    clc,clear
    close all
    format short eng


    k=1;
    %p=extra pole
    p=10

    sys_1=zpk([],[0 -1],k);
    sys_2=zpk([],[0 -p -1],k*p);

    sys_1_cl=feedback(sys_1,1);
    sys_2_cl=feedback(sys_2,1);

    figure()
    step(sys_1_cl,sys_2_cl)
    legend('sys 1','sys 2')
    title('closed loop step response')

    figure()
    bode(sys_1,sys_2)
    legend('sys 1','sys 2')
    title('open loop freq response')

    figure()
    bode(sys_1_cl,sys_2_cl)
    legend('sys 1','sys 2')
    title('closed loop freq response')

    sys_1_info=stepinfo(sys_1_cl)
    sys_2_info=stepinfo(sys_2_cl)

    sys_1_cl_pole=pole(sys_1_cl)
    sys_2_cl_pole=pole(sys_2_cl)
     
  9. Jun 18, 2014 #8
    Yes I do, thank you! Thank you again for the codes.
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

Have something to add?
Draft saved Draft deleted



Similar Discussions: Designing Lag or Lead Compensators with 3rd order systems
  1. Lagging and leading (Replies: 2)

Loading...