运用matlab解决如下问题?
根据侦察,发现离我军大炮阵地水平距离10km的前方有一敌军的坦克群,现欲发射炮弹摧毁敌军坦克群。问题可简化为单门大炮对移动坦克的精确射击问题.假设炮弹发射速度可控制在0....
根据侦察,发现离我军大炮阵地水平距离 10km 的前方有一敌军的坦克群, 现欲发射炮弹摧
毁敌军坦克群。问题可简化为单门大炮对移动坦克的精确射击问题.假设炮弹发射速度可控
制在 0.2km/s 至 0.6km/s 之间. 在上述假设下,研究下列问题:
(1) 假定坦克在大炮前方 10km 处静止不动,炮弹发射的初速度为 0.32km/s, 请确
定发射角击中坦克,并画出炮弹运行动态轨迹图.
(2) 假定坦克在大炮前方 10km 处以每小时 50km 向大炮方向前进, 此时应如何
选择发射速度和角度,能够在最短时间内摧毁敌军坦克?
要求写出matlab代码。 展开
毁敌军坦克群。问题可简化为单门大炮对移动坦克的精确射击问题.假设炮弹发射速度可控
制在 0.2km/s 至 0.6km/s 之间. 在上述假设下,研究下列问题:
(1) 假定坦克在大炮前方 10km 处静止不动,炮弹发射的初速度为 0.32km/s, 请确
定发射角击中坦克,并画出炮弹运行动态轨迹图.
(2) 假定坦克在大炮前方 10km 处以每小时 50km 向大炮方向前进, 此时应如何
选择发射速度和角度,能够在最短时间内摧毁敌军坦克?
要求写出matlab代码。 展开
1个回答
展开全部
题主的第一问,即炮弹运动轨迹问题,可以这样来处理:
1、根据炮弹运动轨迹的参数方程:
x=v0*t*cosα
y=v0*t*sinα-0.5*g*t^2
消去t,求得 y(x)的表达式,即
y=x*tan(alpha)-0.5*g*(x/(v0*cos(alpha)))^2;
2、根据已知条件,
v0=0.32e3; %km/s
x=10e3; %km
使用vpasolve函数,求出alpha(发射角),即
alpha=vpasolve(y==0,[0,+inf]); %36.668°
3、利用x的参数方程,求得发射炮弹达到10km处的时间tm,即
tm=x/(v0*cos(alpha))
4、使用linspace函数,将t【t0,tm】分割成若干个等份,如50等份
t=linspace(t0,tm,50);
5、计算t对应的x、y值
6、使用plot函数,绘制炮弹运行动态轨迹图,即
plot(x,y)
xlabel('x(t)'),ylabel('y(t)')
7、完善上述代码,运行后得到如下运行动态轨迹图
更多追问追答
追问
那么一开始是否是要将t和alpha作为变量?可以放出完善后的代码吗?我在将t和alpha作为变量输入后依旧无法通过plot函数输出图像。
追答
一开始只有alpha作为变量,用y=x*tan(alpha)-0.5*g*(x/(v0*cos(alpha)))^2;求出alpha
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询