【问题标题】:How to get errors from PID?如何从 PID 中获取错误?
【发布时间】: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


    【解决方案1】:

    谢天谢地,很多人已经在 MATLAB 中设计了 PID 控制器,因此您可以从他们的示例中学习。这是来自 MATLAB File Exchange 的PID controller。误差的导数和积分分别保存在变量“Der”和“Int”中。

    如果您在 MATLAB 副本中安装了 Control Systems Toolbox,那么您已经可以使用强大的内置功能来设计 PID 控制器。您可能想利用PID tuner

    【讨论】:

      猜你喜欢
      • 2018-07-29
      • 1970-01-01
      • 1970-01-01
      • 2012-05-08
      • 2014-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-29
      相关资源
      最近更新 更多