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!

IMC-based PID Controller

  1. Nov 3, 2015 #1

    Maylis

    User Avatar
    Gold Member

    1. The problem statement, all variables and given/known data
    upload_2015-11-3_14-44-10.png

    2. Relevant equations


    3. The attempt at a solution
    Hello,
    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 =

      -0.7906

    tau2 =

      -5.2444
     
    This gives my controller parameters
    Code (Text):

    kc =

      22.0658


    tauI =

      -6.0350


    tauD =

      -1.4556
    I go into simulink, and here is my model
    upload_2015-11-3_14-51-0.png
    And here are my PID controller inputs
    upload_2015-11-3_14-51-28.png
    But I haven't figured out why my controller is not working, here is the output
    upload_2015-11-3_14-58-26.png
     

    Attached Files:

  2. jcsd
  3. Nov 3, 2015 #2

    Maylis

    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

    upload_2015-11-3_17-43-48.png
     
  4. Nov 4, 2015 #3

    Maylis

    User Avatar
    Gold Member

    I figured it out. My time constants were not correct or in the right form
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

Have something to add?
Draft saved Draft deleted