PID命令的数字答案

时间:2019-07-03 10:08:55

标签: matlab simulink pid-controller

我使用了Simulink PD模型并使用了值:

P=100; D=10; N=100

我输入的是

 [0;0;0]-[0.05*(10-t);0.04*(10-t);0.03*(10-t)] where t=1:10

我从仿真中获得了数值。

我正在尝试在脚本文件中实现相同的功能,但是我得到了传递函数格式的答案。我希望答案采用类似于Simulink的数字形式,这是我的MATLab代码:

for t = 1:10
T_d = [0;0;0];
T_o = [0.05*(10-t);0.04*(10-t);0.03*(10-t)];
T_e = T_d-T_o;
C = pid(100,0,10,100)

T_u=T_e*C

end

在这方面请帮助我。

1 个答案:

答案 0 :(得分:0)

您需要使用lsim函数:

t = 1:0.01:10;
T_o = [0.05*(10-t);0.04*(10-t);0.03*(10-t)];
T_d = zeros(size(T_o));
T_e = T_d - T_o;
C = pid(100,0,10,100);
res = zeros(size(T_e));
for k=1:size(T_e,1)
   res(k,:) = lsim(C,T_e(k,:),t);
end
plot(t,res)

enter image description here