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

3 views (last 30 days)
Girishkasturi L H on 7 Oct 2014
Answered: Sam Chak on 31 Jan 2024
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!
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?

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

### Categories

Find more on Classical Control Design 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!