Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2008-12-15
年龄: 40
帖子: 3
声望力: 0 ![]() |
![]()
下面是我编的一段程序,自己编写的龙格库塔算法。。。主要是一个控制算法对一个非线性对象进行控制。。。但是仿真总是出错,找了一个下午也不知道错误在哪里。。。
哪位大侠帮帮忙。。。 clear; v=10;u=1;f=10;kq1=0.1820;kq2=0.1886;v01=30.48;v02=55.33;b=4000e2;m=2200;A1=3.1416;A2=1.6567;t=0.01;kv=1;be=3.9e5;p0=0.5;ps=315000000;f=100000;%parameters x1(1)=0; x2(1)=0;x3(1)=p0;x4(1)=0;f(1)=0;g(1)=0;df(1)=0;dg(1)=0;%initial value h=0.01;%stepsize for i=1:500 x1n=x1(i);x2n=x2(i);x3n=x3(i);x4n=x4(i);fn=f(i);gn=g(i);dfn=df(i);dgn=g(i); i=i+1; k1=x2n; l1=(A1*x3n-b*x2n-f)/m; p1=(-A1*x2n+sqrt(ps-x3n)*x4n*kq1)*be/(v01+A1*x1n); n1=(-x4n+kv*u)/t; k2=x2n+0.5*l1*h; l2=(-b*(x2n+0.5*l1*h)+A1*(x3n+0.5*p1*h)-f)/m; p2=(-A1*(x2n+0.5*l1*h)+sqrt(ps-(x3n+0.5*h*p1))*(x4n+0.5*n1*h)*kq1)*be/(v01+A1*(x1n+0.5*k1*h)); n2=(-(x4n+0.5*n1*h)+kv*u)/t; k3=x2n+0.5*l2*h; l3=(-b*(x2n+0.5*l2*h)+A1*(x3n+0.5*p2*h)-f)/m; p3=(-A1*(x2n+0.5*l2*h)+sqrt(ps-(x3n+0.5*h*p2))*(x4n+0.5*n2*h)*kq1)*be/(v01+A1*(x1n+0.5*k2*h)); n3=(-(x4n+0.5*n2*h)+kv*u)/t; k4=x2n+l3*h; l4=(-b*(x2n+l3*h)+A1*(x3n+p3*h)-f)/m; p4=(-A1*(x2n+l3*h)+sqrt(ps-(x3n+h*p3))*(x4n+n3*h)*kq1)*be/(v01+A1*(x1n+k3*h)); n4=(-(x4n+0.5*n3*h)+kv*u)/t; x1(i)=x1n+h*(k1+2*k2+2*k3+k4)/6; x2(i)=x2n+h*(l1+2*l2+2*l3+l4)/6; x3(i)=x3n+h*(p1+2*p2+2*p3+p4)/6; x4(i)=x4n+h*(n1+2*n2+2*n3+n4)/6; f(i)=(m*v+(b-m)*x2(i)+f)/A1; df(i)=(f(i)-fn)/h; g(i)=((v01+A1*x1(i))*(df(i)+f(i)-x3(i))+A1*be*x2(i))/(kq1*be*sqrt(ps-x3(i))); dg(i)=(g(i)-gn)/h; u=(t*dg(i)+t*g(i)+(1-t)*x4(i))/kv; %u=0.1*(10-x2(i)); %%x7(i)=u;u=15000*(10-x2(i))+20000*(x2(i)-x2n)/h; %x7(i)=u; if x3(i)>314000000; x3(i)=314000000; end %u=15*(10-x2(i)); end |
![]() |
![]() |
![]() |
#2 |
初级会员
注册日期: 2008-12-15
年龄: 40
帖子: 3
声望力: 0 ![]() |
![]()
忘高手帮我一下,万分感谢。。。。
|
![]() |
![]() |
![]() |
#3 |
初级会员
注册日期: 2008-10-14
年龄: 45
帖子: 20
声望力: 17 ![]() |
![]()
i=i+1,这个在matlab编程里很少看到
|
![]() |
![]() |
![]() |
#4 |
初级会员
注册日期: 2008-12-19
年龄: 41
帖子: 3
声望力: 0 ![]() |
![]()
楼主说清楚啊,仿真总是出错什么意思,是仿真无法进行总有个提示吧。通着看你的文件没什么问题,是结果不正确还是不能进行仿真
|
![]() |
![]() |
![]() |
#5 |
初级会员
注册日期: 2008-10-12
年龄: 40
帖子: 4
声望力: 0 ![]() |
![]()
怎么看着 i=i+1; 像编的的C程序一样
|
![]() |
![]() |
![]() |
#6 |
初级会员
注册日期: 2008-03-09
年龄: 50
帖子: 6
声望力: 0 ![]() |
![]() |
![]() |
![]() |
![]() |
|
|
![]() |
||||
主题 | 主题作者 | 版面 | 回复 | 最后发表 |
[求助]matlab图像格式转化 | matlab的风 | MATLAB论坛 | 1 | 2009-04-03 10:16 |
[分享]研究生必读 | guofeng0108 | MATLAB论坛 | 2 | 2008-12-12 19:38 |
GM(1,1) | lvlianggan | MATLAB论坛 | 2 | 2008-11-07 22:52 |
Simplify Instrument Communication: Using Instrument Drivers with the Instrument Contr | TechnicalArticles | MATLAB技术文章 | 0 | 2008-01-06 16:32 |