单神经元PID控制算法的Matlab文件下载
% 位置式PID控制算法
clear; clc;
s = tf('s');
Kp = input('输入比例系数Kp:');
Ki = input('输入积分系数Ki:');
Kd = input('输入微分系数Kd:');
C = pid(Kp, Ki, Kd);
P = 1/(s*(s+1));
sys = feedback(C*P,1);
t = 0:0.1:50;
step(sys,t);
grid on;
% 增量式PID控制算法
clear; clc;
Kp = input('输入比例系数Kp:');
Ki = input('输入积分系数Ki:');
Kd = input('输入微分系数Kd:');
delta_t = 0.1; % 采样时间
N = 1000; % 仿真步数
u = zeros(1,N);
y = zeros(1,N);
e = zeros(1,N);
u(1) = 0; % 初始控制量为0
y(1) = 0; % 初始输出量为0
for k = 1:N-1
e(k) = 1 - y(k);
u(k+1) = u(k) + Kp*(e(k)-e(k-1)) + Ki*e(k)*delta_t + Kd*(e(k)-2*e(k-1)+e(k-2))/delta_t;
y(k+1) = 1/(s+1)*(u(k+1)+0.5*u(k)-0.5*y(k));
end
t = delta_t*(0:N-1);
plot(t,y);
grid on;
下载地址
用户评论