P、PI、PD和PID控制器MATLAB实现及响应曲线
P、PI、PD和PID控制器MATLAB实现及响应曲线
本文介绍P、PI、PD和PID控制器在MATLAB中的实现方法,并使用阶跃响应绘制了各控制器的控制曲线,方便理解不同控制器的特性。
1. P控制器程序
Kp = 1;
num = 1;
den = [1, 1.97, 2];
G = tf(num, den);
C = tf(Kp, 1);
T = feedback(C*G, 1);
t = 0:0.01:10;
u = ones(size(t));
[y, ~] = lsim(T, u, t);
figure;
plot(t, y);
title('P Control Response');
xlabel('Time');
ylabel('Output');
2. PI控制器程序
Kp = 1;
Ki = 1;
num = 1;
den = [1, 1.97, 2];
G = tf(num, den);
C = tf([Kp, Ki], [1, 0]);
T = feedback(C*G, 1);
t = 0:0.01:10;
u = ones(size(t));
[y, ~] = lsim(T, u, t);
figure;
plot(t, y);
title('PI Control Response');
xlabel('Time');
ylabel('Output');
3. PD控制器程序
Kp = 1;
Kd = 1;
num = 1;
den = [1, 1.97, 2];
G = tf(num, den);
C = tf([Kd, Kp], 1);
T = feedback(C*G, 1);
t = 0:0.01:10;
u = ones(size(t));
[y, ~] = lsim(T, u, t);
figure;
plot(t, y);
title('PD Control Response');
xlabel('Time');
ylabel('Output');
4. PID控制器程序
Kp = 1;
Ki = 1;
Kd = 1;
num = 1;
den = [1, 1.97, 2];
G = tf(num, den);
C = tf([Kd, Kp, Ki], [1, 0]);
T = feedback(C*G, 1);
t = 0:0.01:10;
u = ones(size(t));
[y, ~] = lsim(T, u, t);
figure;
plot(t, y);
title('PID Control Response');
xlabel('Time');
ylabel('Output');
通过运行以上程序,可以得到P、PI、PD和PID控制的控制曲线,并直观地比较它们之间的区别。
原文地址: http://www.cveoy.top/t/topic/hAn 著作权归作者所有。请勿转载和采集!