声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 764|回复: 1

[求助]请教有心人

[复制链接]
发表于 2006-5-13 21:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

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)&gt;=10<BR>      u(k)=10;<BR>   end<BR>   if u(k)&lt;=-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>
回复
分享到:

使用道具 举报

发表于 2006-5-13 21:49 | 显示全部楼层

回复:(aliang309)[求助]请教有心人

用mcc,论坛有很多关于混合编程的资料和讨论,你可以找出来看看
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-25 17:23 , Processed in 0.060824 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表