|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
<P>听同学说matlab程序可以转换成c语言格式,不知道怎么弄啊,用matlab程序可以直接仿真出图形啊,我用c语言就不知道怎么弄了,不知道怎么才结果显示图形啊,呵呵,哪位能给点帮助啊。<BR>(例如下面的matlab程序)<BR>%Increment PID Controller<BR>clear all;<BR>close all;</P>
<P>ts=0.001;<BR>sys=tf(400,[1,50,0]);<BR>dsys=c2d(sys,ts,'z');<BR>[num,den]=tfdata(dsys,'v');</P>
<P>u_1=0.0;u_2=0.0;u_3=0.0;<BR>y_1=0;y_2=0;y_3=0;</P>
<P>x=[0,0,0]';</P>
<P>error_1=0;<BR>error_2=0;<BR>for k=1:1:1000<BR> time(k)=k*ts;<BR> <BR> rin(k)=1.0;<BR> kp=8;<BR> ki=0.10;<BR> kd=10;<BR> <BR> du(k)=kp*x(1)+kd*x(2)+ki*x(3); <BR> u(k)=u_1+du(k);</P>
<P> if u(k)>=10<BR> u(k)=10;<BR> end<BR> if u(k)<=-10<BR> u(k)=-10;<BR> end <BR> yout(k)=-den(2)*y_1-den(3)*y_2+num(2)*u_1+num(3)*u_2;<BR> <BR> error=rin(k)-yout(k);<BR> u_3=u_2;u_2=u_1;u_1=u(k);<BR> y_3=y_2;y_2=y_1;y_1=yout(k);<BR> <BR> x(1)=error-error_1; %Calculating P<BR> x(2)=error-2*error_1+error_2; %Calculating D<BR> x(3)=error; %Calculating I<BR> <BR> error_2=error_1;<BR> error_1=error;<BR>end<BR>plot(time,rin,'b',time,yout,'r');<BR>xlabel('time(s)');ylabel('rin,yout');</P> |
|