Ziegler Nichols PID Method
Mostrar comentarios más antiguos
Hi,
I have a problem ,this is my G(s)=59000/(s^2+59000)
I want to apply the tangent method of Ziegler-Nichols, but my step is a sinusoid undumped. How I can approximate my G(s) to apply this method? Thanks very much.
5 comentarios
Sam Chak
el 1 de Mzo. de 2024
Could you please clarify the performance requirements for your control design problem? Specifically, what is the desired response you aim to achieve in the closed-loop feedback control system? This desired response can be further divided into the transient response and steady-state response.
To put it simply, how "smooth" or "desirable" do you want the trajectory of the response to be? For instance, you may have a specific limit on the percent overshoot that the response should not exceed. Additionally, you might want the response to settle within a certain time frame of t seconds.
LORIS IACOBAN
el 1 de Mzo. de 2024
However, the response of your system G(s) is oscillatory, which deviates from the typical response of a First Order Plus Dead Time (FOPDT) model.
By the way, have you identified the desired performance requirements for the control design problem? It's important to establish specific performance goals that you wish to achieve. Even when applying Ziegler-Nichols tuning rules, it is crucial to have defined performance requirements; otherwise, the tuning may be considered unsuccessful.
G = tf(59000, [1, 0, 59000])
step(G, 1e-1), grid on
Respuestas (1)
I revisit your problem. I'm unsure if you are looking for something like this:
%% original system (marginally stable)
a = 59000;
G = tf(a, [1, 0, a])
%% stabilizer
Kd = 2*sqrt(a)/a;
Gc = pid(0, 0, Kd);
%% closed-loop system (exponentially-stabilized dynamic process)
Gcl = feedback(G, Gc)
tfin= 0.04;
step(Gcl, tfin), grid on
hold on
t = 0:1e-5:tfin;
sol = @(t) exp(-10*sqrt(590)*t).*(exp(10*sqrt(590)*t) - 10*sqrt(590)*t - 1);
m = 89.3576; % max slope
tm = 0.00411693; % time where max slope is
c = - (m*tm - sol(tm)); % offset
y = m*t + c; % line equation
td = 0.00116027; % time delay
plot(t, y)
xline(td, '-.', sprintf('Dead Time: %.5f sec', td), 'color', '#7F7F7F')
ylim([-0.2, 1.2])
hold off
Categorías
Más información sobre PID Controller Tuning en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

