PI controller does not have the effect I would expect from the calculations
Show older comments
I am designing a PI controller for the following plant
K = 11041666;
B = 100;
M = 1019;
num = [K];
den = [M B K];
sys = tf(num,den);
I need to design for 10% overshoot and a settling time of 5 seconds
The closed loop transfer function is as follows:
syms k m b s kp ki
G = k/(m*s^2+b*s+k);
Gc = (kp*s+ki)/s;
T = (kp*s*k+ki*k)/(m*s^3+b*s^2+k*s*(1+kp)+ki*k)
These are the calculations for Kp and Ki
overshoot = 10/100;
Zeta = (-log(overshoot))/sqrt(pi^2+(log(overshoot)^2));
Wn = 5/(4*Zeta);
Ki = (Wn^3*M)/K;
Kp = ((2.15*Wn^2*M)/K)-1;
However with these values this is the response I get
The block diagram
The controller internals
The step input
Yellow if the target and blue is the system responseI am making a mistake somewhere but I have been unable to find it. Any assistance would be greatly appreciated
2 Comments
Any reason why you are not using a PID? Your system is lightly damped. I doubt you can achieve both stability and performance with a PI controller. You would need a damping term in your controller.
K = 11041666;
B = 100;
M = 1019;
num = [K];
den = [M B K];
sys = tf(num,den);
damp(sys)
The formulas for the overshoot etc are valid if the system is stable already. They do not tell if a system is stable or not. Also I am not sure about the formulas you use to get Kp and Ki from Wn,M and K values.
Wynand
on 16 Oct 2024
Accepted Answer
More Answers (0)
Categories
Find more on Tuning, Analysis, and Validation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!







