%Discrete PID control for continuous plant 
clear all; 
close all; 
ts=0.001; %Sampling time 
xk=zeros(2,1); 
e_1=0; 
u_1=0; 
for k=1:1:2000 
time(k) = k*ts; 
rin(k)=0.50*sin(1*2*pi*k*ts); 
para=u_1; 
tSpan=[0 ts]; 
[tt,xx]=ode45('sy3_1',tSpan,xk,[],para); 
xk = xx(length(xx),

; 
yout(k)=xk(1); 
e(k)=rin(k)-yout(k); 
de(k)=(e(k)-e_1)/ts; 
u(k)=20.0*e(k)+0.50*de(k); 
%Control limit 
if u(k)>10.0 
u(k)=10.0; 
end 
if u(k)<-10.0 
u(k)=-10.0; 
end 
u_1=u(k); 
e_1=e(k); 
end 
figure(1); 
plot(time,rin,'r',time,yout,'b'); 
xlabel('time(s)'),ylabel('rin,yout'); 
figure(2); 
plot(time,rin-yout,'r'); 
xlabel('time(s)'),ylabel('error'); 
被控对象函数文件:sy3_1.m 
function dy = sy3_1(t,y,flag,para) 
u=para; 
J=0.0067;B=0.1; 
dy=zeros(2,1); 
dy(1) = y(2); 
dy(2) = -(B/J)*y(2) + (1/J)*u; 
有人能帮我解释一下么??