for simulation of pid controller what should I use N filter coefficient value 1 or 100?

25 visualizzazioni (ultimi 30 giorni)
for simulation of pid controller what should I use N filter coefficient value 1 or 100?
Im tuning PID Controller for buck converter voltage regulation, can I use N value 1 or 100? or 1000? 5000?

Risposte (1)

Sam Chak
Sam Chak il 5 Set 2022
I don't know your Buck Converter model. However, in this example, the filter divisor N is 751. Generally, the value for N is high. Since you asked about the value for N, then I guess you designed yours using the ideal form:
If your theoretical ideal gives a good performance on paper, then you should make this term in the denominator of the derivative filter relatively small, because
% Buck Converter Transfer Function
V = 100;
C = 1e-6;
L = 2.2e-3;
R = 500;
Gp = tf(V/(C*L), [1 1/(R*C) 1/(C*L)])
Gp = 4.545e10 ----------------------- s^2 + 2000 s + 4.545e08 Continuous-time transfer function.
margin(Gp) % Stable but Phase margin is very small, oscillatory response is expected
step(Gp) % as confirmed by the step response
% standard-form PID with 1st-order derivative filter
Kp = 0.03; % proportional gain
Ti = 3.6e-6; % integral time
Td = 0.0006; % derivative time
N = 751; % filter divisor
Gc = pidstd(Kp, Ti, Td, N)
Gc = 1 1 s Kp * (1 + ---- * --- + Td * ------------) Ti s (Td/N)*s+1 with Kp = 0.03, Ti = 3.6e-06, Td = 0.0006, N = 751 Continuous-time PIDF controller in standard form
margin(Gc*Gp) % Phase margin is improved to approximately 60 deg
% closed-loop system and check if no RHP poles
Gcl = zpk(feedback(Gc*Gp, 1))
Gcl = 1.0255e12 (s^2 + 2034s + 4.623e08) ----------------------------------------------------- (s^2 + 2024s + 4.624e08) (s^2 + 1.252e06s + 1.025e12) Continuous-time zero/pole/gain model.
tau = 4e-5;
[u, t] = gensig('square', tau, 2*tau, tau/2^10);
lsim(Gcl, u, t), ylim([-1 2]), grid on
S = stepinfo(Gcl)
S = struct with fields:
RiseTime: 1.8759e-06 TransientTime: 5.9018e-06 SettlingTime: 5.9018e-06 SettlingMin: 0.9168 SettlingMax: 1.0846 Overshoot: 8.4647 Undershoot: 0 Peak: 1.0846 PeakTime: 3.9736e-06

Community Treasure Hunt

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

Start Hunting!

Translated by