I am having trouble with PID controller design Non minimum phase system

4 views (last 30 days)
Hello I am trying to develop a PI controller for peak current control of boost converter. When I plot the Bode plot of the system, I am having the phase starting at 180 at 10rad/sec. And when I am trying to develop a PI controller using SISO tool, I do not get to design it. Is it because of the Phase that I am not able to get the controller to work ? The TF is
3e-09 s^2 + 3.76e-05 s - 10.83
----------------------------------------------
9.727e-15 s^3 + 3.826e-09 s^2 + 0.001503 s + 1
This includes the high frequency term
Thanks!
  1 Comment
Sandip Kumar
Sandip Kumar on 8 Oct 2014
I used the same TF, and using "sisotool", I was able to get a stable closed loop with a PI controller.
C = -96.929 x (1 + 0.00045 s)/s
what version of MATLAB are you on?

Sign in to comment.

Answers (1)

Sam Chak
Sam Chak on 31 Jan 2024
The pidtune() command from the Control System Toolbox can be applied to this problem.
%% Plant
s = tf('s');
Gp = (3e-09*s^2 + 3.76e-05*s - 10.83)/(9.727e-15*s^3 + 3.826e-09*s^2 + 0.001503*s + 1);
Gp = minreal(Gp)
Gp = 3.084e05 s^2 + 3.866e09 s - 1.113e15 ------------------------------------------ s^3 + 3.933e05 s^2 + 1.545e11 s + 1.028e14 Continuous-time transfer function.
zP = zero(Gp)
zP = 2×1
1.0e+04 * -6.6676 5.4143
step(Gp), grid on
%% PIDF controller
Gc1 = pidtune(Gp, 'PIDF')
Gc1 = 1 s Kp + Ki * --- + Kd * -------- s Tf*s+1 with Kp = -0.121, Ki = -157, Kd = 8.64e-06, Tf = 0.000156 Continuous-time PIDF controller in parallel form.
%% PI controller
Gc2 = pidtune(Gp, 'PI')
Gc2 = 1 Kp + Ki * --- s with Kp = -0.0956, Ki = -188 Continuous-time PI controller in parallel form.
%% Plot results
Gcl1= feedback(Gc1*Gp, 1);
Gcl2= feedback(Gc2*Gp, 1);
step(Gcl1), hold on
step(Gcl2), grid on, hold off
legend('PIDF controller', 'PI controller', 'location', 'east')
margin(Gc1*Gp), grid on
margin(Gc2*Gp), grid on

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!