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

조회 수: 3 (최근 30일)
Girishkasturi L H
Girishkasturi L H 2014년 10월 7일
답변: Sam Chak 2024년 1월 31일
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
Sandip Kumar
Sandip Kumar 2014년 10월 8일
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?

댓글을 달려면 로그인하십시오.

답변 (1개)

Sam Chak
Sam Chak 2024년 1월 31일
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

카테고리

Help CenterFile Exchange에서 Classical Control Design에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by