| Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) | 
![]()  | 
	
| 		
			
			 | 
		#1 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2009-05-07 
				
				
				
					帖子: 1
				 
				
				
				声望力: 0 ![]()  | 
	
	
	
		
		
			
			 
			
			%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; 有人能帮我解释一下么??  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 |