哪位高手有matlabd道仿真程序

哪位高手有matlabd道仿真程序,第1张

第一个例子

导d仿真Matlab源代码(missile simulation)

http://www.matlabsky.com/thread-284-1-1.html

第二例子

%by dynamic

%see also http://www.matlabsky.com

%2009.2.18

%比例导引理想d道仿真Matlab代码

%给出了比例导引法的差分方程, 采用Matlab语言, 对比例导引法的导d理想d道进行了三维数据仿真, 绘制出三维理想d道。随导d与目标参数变化情况, 对理想d道的特性进行了分析。

clear all

clc

clear

tt=0.1

sm=0.6*tt

st=0.42*tt

x(1)=0y(1)=0z(1)=0

pmr(:,1)=[x(1)y(1)z(1)]

ptr(:,1)=[25510]

m=3

q(1)=0

o(1)=0

a(1)=0

for(k=2:600)

ptr(:,k)=[25-0.42*cos(pi/6)*tt*k510+0.42*sin(pi/6)*k*tt]

r(k-1)=sqrt((ptr(1,k-1)-pmr(1,k-1))^2+(ptr(2,k-1)-pmr(2,k-1))^2+(ptr(3,k-1)-pmr(3,k-1))^2)

c=sqrt((ptr(1,k)-pmr(1,k-1))^2+(ptr(2,k)-pmr(2,k-1))^2+(ptr(3,k)-pmr(3,k-1))^2)

b=acos((r(k-1)^2+st^2-c^2)/(2*r(k-1)*st))

dq=acos((r(k-1)^2-st^2+c^2)/(2*r(k-1)*c))

if abs(imag(b))>0

b=0.0000001

end

if abs(imag(dq))>0

dq=0.0000001

end

q(k)=q(k-1)+dq

o(k)=o(k-1)+m*dq

a(k)=o(k)-q(k)

c1=r(k-1)*sin(b)/sin(a(k)+b)

c2=r(k-1)*sin(a(k))/sin(a(k)+b)

c3=sqrt((c1-sm)^2+(c2-st)^2+2*(c1-sm)*(c2-st)*cos(a(k)+b))

dq=a(k)-acos(((c1-sm)^2+c3^2-(c2-st)^2)/(2*(c1-sm)*c3))

if abs(imag(dq))>0

dq=0.0000001

end

q(k)=q(k-1)+dq

o(k)=o(k-1)+m*dq

a(k)=o(k)-q(k)

c1=r(k-1)*sin(b)/sin(a(k)+b)

c2=r(k-1)*sin(a(k))/sin(a(k)+b)

c3=sqrt((c1-sm)^2+(c2-st)^2+2*(c1-sm)*(c2-st)*cos(a(k)+b))

dq=a(k)-acos(((c1-sm)^2+c3^2-(c2-st)^2)/(2*(c1-sm)*c3))

if abs(imag(dq))>0

dq=0.0000001

end

q(k)=q(k-1)+dq

o(k)=o(k-1)+m*dq

a(k)=o(k)-q(k)

c1=r(k-1)*sin(b)/sin(a(k)+b)

c2=r(k-1)*sin(a(k))/sin(a(k)+b)

c3=sqrt((c1-sm)^2+(c2-st)^2+2*(c1-sm)*(c2-st)*cos(a(k)+b))

x1(k)=ptr(1,k-1)+c2/st*(ptr(1,k)-ptr(1,k-1))

y1(k)=ptr(2,k-1)+c2/st*(ptr(2,k)-ptr(2,k-1))

z1(k)=ptr(3,k-1)+c2/st*(ptr(3,k)-ptr(3,k-1))

x(k)=pmr(1,k-1)+sm/c1*(x1(k)-pmr(1,k-1))

y(k)=pmr(2,k-1)+sm/c1*(y1(k)-pmr(2,k-1))

z(k)=pmr(3,k-1)+sm/c1*(z1(k)-pmr(3,k-1))

pmr(:,k)=[x(k)y(k)z(k)]

r(k)=sqrt((ptr(1,k)-pmr(1,k))^2+(ptr(2,k)-pmr(2,k))^2+(ptr(3,k)-pmr(3,k))^2)

if r(k)<0.06

break

end

end

sprintf('遭遇时间:%3.1f',0.1*k)

figure(1)

plot3(pmr(1,1:k),pmr(2,1:k),pmr(3,1:k),'k',ptr(1,:),ptr(2,:),ptr(3,:))

axis([0 25 0 5 0 25])

text(x(80),y(80),z(80),'\leftarrow 比例导引')

grid on

水下发射d道导d时,潜艇一般在水下30米深度,以2节左右的速度航行,导d置于发射筒内,发射筒垂直装于潜艇中部,有的在耐压壳体内部,有的则位于耐压壳体与非耐压壳体之间,一般每艇携12枚~24枚导d。在30米水深时,发射筒盖外承受约3个大气压的水压。因此,要想打开筒盖十分费力,必须先用高压气进行筒内增压,使筒内外压力大致相等后,便可轻易开启筒盖。为了防止开盖时大量海水涌入导d发射筒,筒口上特意安装了一层水密隔膜。

发射时,导d发射筒上盖打开,由于发射管内是一种水密和气密结构,且经过充气和填注少量海水,与大海海水压力相等,不存在压力差,海水也就进不来,筒内气体也不会溢出水面。接到发射指令后,电爆管起爆,点燃燃气发生器,使其产生的高温高压气体从发射筒底部喷人筒内,在反作用力的推动下,导d将穿透水密隔膜径直向上推出筒外。出筒后的导d在第1级火箭的助推下直冲云霄,大约飞行二三十千米之后,第2级火箭进行接力助推,然后将导d推向外层空间,按预定d道飞行后,再入大气层对目标实施攻击。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12048618.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-20
下一篇2023-05-20

发表评论

登录后才能评论

评论列表(0条)

    保存