1. Limited time only! Sign up for a free 30min personal 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!

Homework Help: IMC-based PID Controller

  1. Nov 3, 2015 #1


    User Avatar
    Gold Member

    1. The problem statement, all variables and given/known data

    2. Relevant equations

    3. The attempt at a solution
    I know for a second order process, the tuning parameters are given as ##k_{c} = \frac {\tau_{1}+\tau_{2}}{k_{p} \lambda}##, ##\tau_{I} = \tau_{1} + \tau_{2}##, and ##\tau_{D} = \frac {\tau_{1}+\tau_{2}}{\tau_{1} \tau_{2}}##
    Code (Text):

    syms s
    lambda = 1;
    kp = -0.2735;
    gp = kp/(s^2+6.035*s+4.146);
    [num,den] = numden(gp);
    factors = eval(solve(den,s));
    tau1 = factors(1); tau2 = factors(2);
    kc = (tau1+tau2)/(kp*lambda)
    tauI = tau1+tau2
    tauD = (tau1+tau2)/(tau1*tau2)
    These are my process time constants
    Code (Text):

    tau1 =


    tau2 =

    This gives my controller parameters
    Code (Text):

    kc =


    tauI =


    tauD =

    I go into simulink, and here is my model
    And here are my PID controller inputs
    But I haven't figured out why my controller is not working, here is the output

    Attached Files:

  2. jcsd
  3. Nov 3, 2015 #2


    User Avatar
    Gold Member

    I realized that ##\tau_{D} = \frac {\tau_{1} \tau_{2}}{\tau_{1} + \tau_{2}}##, but still my output is not correct even after changing my ##\tau_{D}## term

  4. Nov 4, 2015 #3


    User Avatar
    Gold Member

    I figured it out. My time constants were not correct or in the right form
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook

Have something to add?
Draft saved Draft deleted