![]() |
求助:自己编的m文件有错误。。。不知错在哪里
下面是我编的一段程序,自己编写的龙格库塔算法。。。主要是一个控制算法对一个非线性对象进行控制。。。但是仿真总是出错,找了一个下午也不知道错误在哪里。。。
哪位大侠帮帮忙。。。 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 |
回复: 求助:自己编的m文件有错误。。。不知错在哪里
你得对象是什么 看了好象是f 怎么又没有输入
|
所有时间均为北京时间。现在的时间是 12:37。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.