Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2009-10-16
帖子: 2
声望力: 0 ![]() |
![]()
我从书上copy了一段增量式PID的仿真程序,如下,运行后报错 The input character is not valid in MATLAB statements or expre
我想可能是格式的错误,但是没有检查出来,盼望大家能够帮忙,歇歇了! 程序如下: clear all; close all; ts=0.001; sys=tf(50,[0.125,7,0]); dsys=c2d(sys,ts,'z'); [num,den]=tfdata(dsys,'v'); u_1=0.0;u_2=0.0;u_3=0.0; y_1=0;y_2=0;y_3=0; x=[0,0,0]'; error_1=0; error_2=0; for k=1:1:1000 time(k)=k*ts; rin(k)=1.0; kp=10; ki=0.10; kd=15; du(k)=kp*x(1)+kd*x(2)+ki*x(3); u(k)=u_1+du(k); if u(k)>=10 u(k)=10; end if u(k)<=-10 u(k)=-10; end yout(k)=-den(2)*y_1-den(3)*y_2+num(2)*u_1+num(3)*u_2; error=rin(k)-yout(k); u_3=u_2;u_2=u_1;u_1=u(k); y_3=y_2;y_2=y_1;y_1=yout(k); x(1)=error-error_1; x(2)=error-2*error_1+error_2; x(3)=error; error_2=error_1; error_1=error; end plot(time,rin,'b',time,yout,'r'); xlabel('time(s)');ylabel('rin,yout'); grid; |
![]() |
![]() |