PID 命令的数字答案
Numeric answer for PID command
我使用了 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
请在这方面帮助我。
您需要使用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)
我使用了 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
请在这方面帮助我。
您需要使用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)