用matlab解下列方程组(含积分) 140
Q=7500/2490;
问题是求解Tx和Ty还有t
要给源码 matlab源码 其他用计算机软件的方法解出来也可以,要源码
a=1.63 展开
从原理上说,Tx、Ty应该可以是随时间变化的函数,但那样就成了一个泛函问题。如果Tx、Ty取常数值方程有解,而且没有其它要求,当然应该使用常数解。
现在假设Tx、Ty为常数,可以使用fsolve求解:
m = 2400;
Q = 7500/2490;
a = 1.63;
% Tx = x1, Ty = x2, t = x3
f = @(x) [quadl(@(t)x(1)./(m-Q*t),0,x(3))-1692;
quadl(@(t)x(2)./(m-Q*t)-a,0,x(3))-57;
sqrt(x(1)^2+x(2)^2)-7500];
x = fsolve(f,[5304,5304,700]);
fprintf('Tx = %.2f\nTy = %.2f\nt = %.2f\n',x)
得到的结果:
Tx = 6876.27
Ty = 2994.48
t = 417.07
我不挂Q,有问题请直接追问,或者通过私信问。
初始条件,结束条件 也没有给清楚
你的两个微分方程应该是关于两个速度 Vx Vy的,
他们的导数就是加速度,其实就是两个方向的牛顿方程
dVx F Vx
---- = -------- ------ (1)
dt m-Q*t V
dVy F Vy
---- = -------- ------ - a (2)
dt m-Q*t V
其中 V = sqrt(Vx^2+Vy^2) 是速度总值
然后就是要给出 边界上的条件和约束
例如Vx(0) Vy(0) 的值(初始两个方向的速度)
最后时刻应该满足的条件
这些条件,参数你都要给齐 ,而且注意参数的单位,最后都用标准国际单位
这样才能够正确的得到解
Vx(0)=1692;
Vy(0)=0;
最终条件就是
在y方向行走了12000m的时候,V速度总值约为57m/S (这里不要求精确 差不多就好)
你的数学模型,将球面看成平面,不够精确
还是用向心力场,使用极坐标描述的运动方程好一点
极坐标下制动力分为Tr径向和Tt垂直径向两个分量,
稍微与直角坐标的Tx,Ty有点差别
Tr和Ty不是简单的常数,也不是简单地与运动方向相反
我试过这两种情况都不能满足末态的降低12km时速度降为57m/s的条件
实际上,如果Tr方向的制动不够,很快就会降到12km
但这个时候速度还远远高于57m/s
但是一开始r方向会因为有离心力会向外跑
开始的时候需要很大的Tt制动力力减速
而不能有较大的Tr方向的制动力
所以制动力的作用方向应该是随时间变化的
开始几乎都是Tt方向制动,后来要增加Tr方向制动
这里我用了一个个简单的策略
而设计径向的制动力随着径向速度增加而线性增加,比例系数是k
制动力角度u=-k(dr/dt),那么Tr=Fsin(u) Tt=Fcos(u)
也就是r方向下落速度越快,就r方向提供更多制动力
问题就可以归纳为以下的微分方程,以及参数,初始条件,末态约束
要求符合条件的制动时间t 和 制动力Tr,Tt,还有r,theta等随时间的变化
由于字数限制,程序代码贴不上来,先show一下结果
结果表示过程控制比例量k取5.8976e-3时,能够最接近要求
到达高度1740km(下降12km)
需要时间约395s
这时候速度降低为 57.32 m/s (Vr= 46.84m/s, Vt=33.05m/s)
消耗燃料约1190kg
还有以下各个量随时间的变化,和制动轨道的轨迹见下图