代碼片段和文件信息
function?myjob()
clcclear
tic
indata
z=15;
n=8;
h=0.01;
Y=[0?20?z?0?z?0?0?0];??%初始值
fid=fopen(‘result.txt‘‘w‘);
%將數(shù)據(jù)寫入文本文件
for?i=1:n
????fprintf(fid‘%8.4f?‘Y(i));
end
old4=YFZ(Y);
Y=RK(nhY);
%write
for?i=1:n
????fprintf(fid‘%8.4f?‘Y(i));
end
old3=YFZ(Y);
Y=RK(nhY);
%write
for?i=1:n
????fprintf(fid‘%8.4f?‘Y(i));
end
old2=YFZ(Y);
Y=RK(nhY);
%write
for?i=1:n
????fprintf(fid‘%8.4f?‘Y(i));
end
old1=YFZ(Y);
while?Y(7)>=0
????[Yold1old2old3old4]=ADM(Yhold1old2old3old4);
????%write
????for?i=1:n
????????fprintf(fid‘%8.4f?‘Y(i));
????end
end
fclose(fid);
Y
Y(1)
%結(jié)果處理
load?result.txt
s=size(result2);
da=reshape(result8s/8);
da=da‘;
plot(da(:6)da(:7))title(‘彈道曲線‘)xlabel(‘x/m‘)ylabel(‘y/m‘)
figure
plot(da(:1)da(:2))title(‘速度曲線‘)xlabel(‘t/s‘)ylabel(‘V/(m/s)‘)
a=da(:5)-da(:3);
figure
plot(da(:1)a)title(‘攻角曲線‘)xlabel(‘t/s‘)ylabel(‘a(chǎn)/rad‘)
toc
%阿當姆斯預估校正法
function?[Yold1old2old3old4]=ADM(Yhold1old2old3old4)
y=Y+h*(55*old1-59*old2+37*old3-9*old4)/24;
f=YFZ(y);
Y=Y+h*(9*f+19*old1-5*old2+old3)/24;
old4=old3;
old3=old2;
old2=old1;
old1=YFZ(Y);
%四階龍格庫塔法
function?Y=RK(nhY)
b=[h/2?h/2?h?h];
dy=YFZ(Y);
oldy=Y;
Y1=[];
for?j=1:3
????for?i=1:n
????????Y1(i)=oldy(i)+b(j)*dy(i);
????????Y(i)=Y(i)+b(j+1)*dy(i)/3;
????end
????dy=YFZ(Y1);
end
Y=Y+b(1)*dy/3;
%右端項函數(shù)
function?dy=YFZ(Y)
ts=3.6;
tf=ts+0.5;
T=273.5+20;
Ma=Y(2)/(20*sqrt(T));
m0=819.06;
S=0.308;
D=0.36;
RHO=1.225;
g=9.8;
q=RHO*Y(2)*Y(2)/2;
if?Y(1) ????mro=0;
else
????mro=152;
end
if?Y(1) ????P=76930;
????mc=28.224;
elseif?Y(1)>=ts?&&?Y(1) ????P=0;
????mc=0;
elseif?Y(1)>=tf?&&?Y(1)<145.15
????P=2270;
????mc=1.094;
else?
????P=0;
????mc=0;
end
m=m0-mro-Y(8);
a=Y(5)-Y(3);
%插值子程序的調(diào)用:cx、cya、mza、mzw、Jz
[cxcyamzamzwJz]=inter(Y(1)Maatf);
dy(1)=1;
dy(2)=P*cos(a/57.3)/m-cx*q*S/m-g*sin(Y(3)/57.3);
dy(3)=57.3*(P*sin(a/57.3)+cya*a*q*S-m*g*cos(Y(3)/57.3))/(m*Y(2));
dy(4)=57.3*(mza*a+mzw*Y(4)*D/(57.3*2*Y(2)))*q*S*D/Jz;
dy(5)=Y(4);
dy(6)=Y(2)*cos(Y(3)/57.3);
dy(7)=Y(2)*sin(Y(3)/57.3);
dy(8)=mc;
%插值子程序
function?[cxcyamzamzwJz]=inter(tMaatf)
load?data;
A=[0?1?2?3?4?5?6];
MC=[0.0?0.1?0.3?0.5?0.7?0.8?0.9?0.95];
T=[4.1?28.08?56.29?90.14?145.15];
MM=[0.7?0.75?0.8?0.85?0.9?0.95?1.00];
MCA=[0?1?2?3?4?6?8];
if?t ????Jz=interpt(da7(1:41)da7(1:42)t);
????Jz=Jz*9.8;
????cya=interpt(da1(:1)da1(:2)Ma);
????mza=interpt(da1(:1)da1(:3)Ma);
????mzw=interpt(da1(:1)da1(:4)Ma);
????cx=interpt2(AMCda2aMa);
else
????Jz=interpt(da7(5:101)da7(5:102)t);
????Jz=Jz*9.8;
????cya=interpt(da3(:1)da3(:2)Ma);
????mza=interpt2(TMMda4tMa);
????mzw=interpt2(TMMda5tMa);
????cx=interpt2(MCAMMda6aMa);
end
%一維線性插值
function?b=interpt(xya);
if(a>=x(1)&&a<=x(end))
???for?i=1:length(x)
???????if(a>=x(i)&&a<=x(i+1))
???????????k=i;
????
- 上一篇:灰度共生矩陣特征值不錯的算法
- 下一篇:ROC曲線 matlab實現(xiàn)
評論
共有 條評論
相關資源
- matlab_OFDM調(diào)制解調(diào)(來自劍橋大學)
- Matlab路面裂縫識別69319
- 高靈敏度GPS接收機MATLAB仿真,附捕獲
- 基于MATLAB的質(zhì)點彈道計算與外彈道優(yōu)
- 陣列天線的matlab仿真
- MATLAB 經(jīng)典程序源代碼大全
- MATLAB小波軟閾值去噪代碼33473
- 天線陣的波束形成在MATLAB仿真程序及
- 非線性SVM算法-matlab實現(xiàn)
- 《MATLAB 智能算法超級學習手冊》-程序
- 組合導航matlab程序
- 讀取txt文件內(nèi)容matlab代碼實現(xiàn)
- Matlab實現(xiàn)基于相關的模板匹配程序
- matlab優(yōu)化工具箱講解
- 基于MATLAB的快速傅里葉變換
- 光纖傳輸中的分布傅立葉算法matlab實
- 基于matlab的圖像處理源程序
- matlab 橢圓擬合程序
- 算術編碼解碼matlab源代碼
- optical_flow 光流法 matlab 實現(xiàn)程序
- 引導圖像濾波器 Matlab實現(xiàn)
- 分形幾何中一些經(jīng)典圖形的Matlab畫法
- OFDM系統(tǒng)MATLAB仿真代碼
- SVM工具箱(matlab中運行)
- 圖像小波變換MatLab源代碼
- LU分解的MATLAB實現(xiàn)
- 岡薩雷斯數(shù)字圖像處理matlab版(第三
- 替代數(shù)據(jù)法的matlab程序
- 用matlab實現(xiàn)的多站定位系統(tǒng)性能仿真
- 通過不同方法進行粗糙集屬性約簡m