【发布时间】:2017-01-14 22:56:32
【问题描述】:
需要添加PID控制器。你能帮我如何从 PID 中获取误差、积分误差和导数误差吗?我需要这些值来通过遗传算法生成 PID 参数。
J = 0.01;
b = 0.1;
K = 0.01;
R = 1;
L = 0.5;
A = [-b/J K/J
-K/L -R/L];
B = [0
1/L];
C = [1 0];
D = 0;
sys = ss(A, B, C, D);
Ts = 1/10;
T = 3.5;
sysd = c2d(sys, Ts);
t = 0:Ts:T;
nSamples = length(t);
y = NaN(1, nSamples);
u = ones(1, nSamples);
X = [0; 0];
for i=1:nSamples
y(i) = sysd.C * X + sysd.D * u(i);
X = sysd.A * X + sysd.B * u(i);
end
figure;
step(sys);
figure;
plot(t, y, 'r')
【问题讨论】:
标签: matlab integral derivative