%PID Controler with differential in advance
clear all;
close all;
ts=0.001;
sys=tf(6.25,[0.75,2.75,3,1]);
dsys=c2d(sys,ts,‘zoh’);
[num,den]=tfdata(dsys,‘v’);
u_1=0;
u_2=0;
u_3=0;
u_4=0;
u_5=0;
ud_1=0;
y_1=0;
y_2=0;
y_3=0;
error_1=0;
error_2=0;
ei=0;
for k=1:1:250000 %
time(k)=k*ts;
yout(k)=-den(2)*y_1-den(3)*y_2-den(4)*y_3+num(2)*u_1+num(3)*u_2+num(4)*u_3;
S=2;
if S1
% kp=0.5;ki=0;kd=0;
kp=0.15;ki=0.03;kd=0.01;
rin(k)=5; %Step Signal
elseif S2
kp=0.15;ki=0.03;kd=0.01;
rin(k)=5sign(sin(0.012pikts)); %Square Wave Signal
elseif S==3
kp=0.15;ki=0.03;kd=0.01; %Sine Signal
rin(k)=0.5sin(0.022