Числовой ответ для команды PID - PullRequest
0 голосов
/ 03 июля 2019

Я использовал модель 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 голосов
/ 03 июля 2019

Вам необходимо использовать функцию 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

...