Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2010-05-21
年龄: 37
帖子: 6
声望力: 0 ![]() |
![]()
clear all
num=10;den=[100,20,1]; [a1,b,c,d]=tf2ss(num,den); x=[0;0]; T=0.01;h=T; td=1 Nd=td/T; %纯延时环节; N=1000; R=1*ones(1,N); %PID部分 e=0;de=0;ie=0;Td=7/3.5;Ti=30 kp=2.5;kd=kp*Td/T;ki=kp*T/Ti; for k=1:N uu1(1,k)=-(kp*e+kd*de+ki*ie); %延迟环节 if k<=Nd u1=0; else u1=uu1(1,k-Nd); end k0=a1*x+b*u1; k1=a1*(x+h*k0/2)+b*u1; k2=a1*(x+h*k1/2)+b*u1; k3=a1*(x+h*k2)+b*u1; x=x+(k0+2*k1+2*k2+k3)*h/6; y=c*x+d*u1; %计算误差,微分和积分 e1=e; e=y(1,1)-R(1,k); de=(e-e1)/T; ie=e*T+ie; yy1(1,k)=y; plot(yy1) end 这是M文件,但是simulink图我不会发,其实就是单纯的PID控制器然后一个系统传函,一个延迟,一个单位负反馈,就这么简单,请高手赐教!!!!!! |
![]() |
![]() |
![]() |
#2 |
初级会员
注册日期: 2010-05-21
年龄: 37
帖子: 6
声望力: 0 ![]() |
![]()
补充一点,就是系统延时是1,而且我估计问题就出在延时环节上,希望高手解答
|
![]() |
![]() |
![]() |
#3 |
初级会员
注册日期: 2010-05-21
年龄: 37
帖子: 6
声望力: 0 ![]() |
![]()
怎么就没人来帮帮我呢
|
![]() |
![]() |
![]() |
#4 |
初级会员
注册日期: 2010-03-19
住址: 南京
年龄: 38
帖子: 1
声望力: 0 ![]() |
![]()
我也碰到了同样的问题!已经好几天了,看书,书上也没说明的,相当恼火呀!
|
![]() |
![]() |
![]() |
#5 |
初级会员
注册日期: 2010-05-21
年龄: 37
帖子: 6
声望力: 0 ![]() |
![]()
你把你的程序喝SIMULINK也发出来,能不能让我参考下???
|
![]() |
![]() |
![]() |
#6 |
高级会员
注册日期: 2008-09-14
年龄: 43
帖子: 351
声望力: 24 ![]() |
![]()
首先看采样时间是否一样 另外计算微分方程的方法不一样 结果肯定也不一样
__________________
qq604443022 |
![]() |
![]() |