cdwxg 发表于 2007-5-20 13:31

[求助]程序的疑问

u_1=0;u_2=0;u_2=0;u_2=0;u_2=0;
y_1=0;
e_1=0;e_2=0;
....
rin(k)=....
yout(k)=-den(2)*y_1+num(2)*u_5;
e(k)=rin(k)*yout(k);
ec(k)=e(k)-e_1;
...
u(k)=u_1+kp(k)*((e(k)-e_1)+0.3*e(k)+0.3*(e(k)-2*e_1+e_2))
...
u_5=u_4; u_4=u_3;u_3=u_2;u_2=u_1;u_1=u(k);
y_1=yout(k);
e_2=e_1;
e_1=e(k);
end
上面省略号的都是无关紧要的或者是固定的不影响的.
问题在于红色标记的部分.
u_1表示什么,表示u(k)当k=1时候的u(1)??好象又表示u(k-1)
u(k)=u_1+kp(k)*((e(k)-e_1)+0.3*e(k)+0.3*(e(k)-2*e_1+e_2))
当k=1时候用到u_1,那么k=2的时候呢?还是用u_1,e_1,e_2?那不就表示用的都是常值了么,而这些值前面都等于0,那不是等于没加么?
但前后我总感觉这个解释不通,没能理解的了,所以红色标记部分应该是关键,但不知道为什么,大家帮下忙,谢谢.

cdwxg 发表于 2007-5-20 13:57

再问一个问题

>> sys=tf(5.235e005,);这一步是根据已知的传函来写的
>> ts=0.001;dsys=c2d(sys,ts,'z');这一步是化成z的,但方法是什么?好象这里只有zoh等形式,没有z的形式,这些方法计算出来后的传函都是以z来表达,那么与原来传函之间的关系又是怎么转化的?好象是个除法,以前知道,但现在忘:@L

cdwxg 发表于 2007-5-20 22:28

原帖由 cdwxg 于 2007-5-20 13:31 发表 http://www.chinavib.com/forum/images/common/back.gif
u_1=0;u_2=0;u_2=0;u_2=0;u_2=0;
y_1=0;
e_1=0;e_2=0;
....
rin(k)=....
yout(k)=-den(2)*y_1+num(2)*u_5;
e(k)=rin(k)*yout(k);
ec(k)=e(k)-e_1;
...
u(k)=u_1+kp(k)*((e(k)-e_1)+0.3*e(k)+0.3*(e(k) ...
知道了,其实u_1=u(k);这个才有用
其他u_2,3,4,5都没用。
只是一个循环迭代罢了,当时被这么多搞晕了。
页: [1]
查看完整版本: [求助]程序的疑问