导航原理大作业 哈工大.docx

上传人:b****4 文档编号:12037696 上传时间:2023-04-16 格式:DOCX 页数:14 大小:547.45KB
下载 相关 举报
导航原理大作业 哈工大.docx_第1页
第1页 / 共14页
导航原理大作业 哈工大.docx_第2页
第2页 / 共14页
导航原理大作业 哈工大.docx_第3页
第3页 / 共14页
导航原理大作业 哈工大.docx_第4页
第4页 / 共14页
导航原理大作业 哈工大.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

导航原理大作业 哈工大.docx

《导航原理大作业 哈工大.docx》由会员分享,可在线阅读,更多相关《导航原理大作业 哈工大.docx(14页珍藏版)》请在冰豆网上搜索。

导航原理大作业 哈工大.docx

导航原理大作业哈工大

 

导航原理作业(惯性导航部分)

 

姓名

班号

学号

成绩

批阅人

 

Taskdescription

AfighterequippedwithSINSisinitiallyatthepositionof35oNLand122oEL,stationaryonamotionlesscarrier.Threegyros,GX,GY,GZ,andthreeaccelerometers,AX,AY,AZ,areinstalledalongtheaxesXb,Yb,Zbofitsbodyframerespectively.

Case1:

stationaryonboardtest

Thebodyframeofthefighterinitiallycoincideswiththegeographicalframe,asshowninthefigure,withitspitchingaxisXbpointingtotheeast,rollingaxisYbtothenorth,andazimuthaxisZbupward.Thenthebodyofthefighterismadetorotatestepbysteprelativetothegeographicalframe:

(1)10oaroundXb

(2)30oaroundYb

(3)–50oaroundZb

Afterthat,thebodyofthefighterstopsrotating.Youarerequiredtocomputethefinaloutputsofthethreeaccelerometersonthefighter,usingbothdirectioncosinematrixandquaternionrespectively,andignoringthedeviceerrors.Itisknownthatthemagnitudeofgravityaccelerationisg=9.8m/s2.

Case2:

flightnavigation

Initially,thefighterisstationaryonthemotionlesscarrierwithitsboard25mabovethesealevel.Itspitchingandrollingaxesarebothinthelocalhorizon,anditsrollingaxisis45onorthbyeast(北偏东),parallelwiththerunwayonboard.Thenthefighteracceleratesalongtherunwayandtakesofffromthecarrier.

Theoutputsofthegyrosandaccelerometersarebothpulsenumbers.Eachgyropulseisanangularincrementof0.1arc-sec,andeachaccelerometerpulseis1e-6g,withg=9.8m/s2.Thegyrooutputfrequencyis10Hz,andtheaccelerometer’sis1Hz.Theoutputsofthegyrosandaccelerometerswithin5400sarestoredinMATLABdatafilesnamedgout.matandaout.mat,containingmatricesgmof54000×3andamof5400×3respectively.Theformatofthedataisasshowninthetables,with10rowsofeachmatrixselected.Eachrowrepresentstheoutputsofthetypeofsensorsateachsamplingtime.

TheEarthcanbeseenasanidealsphere,withradius6368.00kmandspinningrate

7.292×10-5rad/s,Theerrorsofthesensorsareignored,soistheeffectofheightonthemagnitudeofgravity.Theoutputsofthegyrosaretobeintegratedevery0.1s.Therotationofthegeographicalframeistobeupdatedevery1s,soarethevelocitiesandpositionsofthefighter.Youarerequiredto:

(1)computethefinalattitudequaternion,longitude,latitude,height,andeast,north,verticalvelocitiesofthefighter.

(2)computethetotalhorizontaldistancetraveledbythefighter.

(3)drawthelatitude-versus-longitudetrajectoryofthefighter,withhorizontallongitudeaxis.

(4)drawthecurveoftheheightofthefighter,withhorizontaltimeaxis.

AXAY

 

第一种情形:

正对导弹进行地面静态测试(导弹质心相对地面静止)。

初始时刻弹体坐标系和地理坐标系重合,如图所示,弹体的Xb轴指东,Yb轴指北,Zb轴指天。

此后弹体坐标系Xb-Yb-Zb相对地理坐标系的转动如下:

首先,弹体绕Zb(方位轴)转过10度;

接着,弹体绕Xb(俯仰轴)转过30度;

然后,弹体绕Yb(滚动轴)转过-50度;

最后弹体相对地面停止旋转。

请分别用方向余弦矩阵和四元数两种方法计算:

弹体经过三次旋转并停止之后,弹体上三个加速度计Ax,Ay,Az的输出。

取重力加速度的大小g=9.8m/s2。

解答:

(1)四元数法

开始时刻弹体上三个加速度计Ax,Ay,Az的输出为

(0,0,-g)=(0,0,-9.8).

由四元数的定义结合原题可以得到:

对于第一次旋转:

第二次旋转:

第三次旋转:

在四元数q1,q2和q3中,单位矢量都表示成了映像的形式,所以可按照下式合成:

由四元数的乘法规则在Matlab中编写如下四元数乘法计算程序:

function[q]=qmul(q1,q2)

lm=q1

(1);

p1=q1

(2);

p2=q1(3);

p3=q1(4);

ML=[lm-p1-p2-p3

p1lm-p3p2

p2p3lm-p1

p3-p2p1lm];

q=ML*q2;

编写新的Matlab程序用于计算四元数的逆:

function[qi]=qinv(q)

qn=norm(q);

q(2:

4)=-q(2:

4);

qi=q/qn^2;

方向余弦矩阵

%方向余弦阵

g0=[0;0;9.8];%初始加速度

c1=[100;0cos(10/180*pi)sin(10/180*pi);0-sin(10/180*pi)cos(10/180*pi)];%第一次绕xb旋转

c2=[cos(30/180*pi)0-sin(30/180*pi);010;sin(30/180*pi)0cos(30/180*pi)];%第二次绕yb旋转

c3=[cos(-50/180*pi)sin(-50/180*pi)0;-sin(-50/180*pi)cos(-50/180*pi)0;001];%第三次绕zb旋转

c=c3*c2*c1;%合并余弦阵

g=c*g0

写出如下主程序进行整体计算过程:

%四元数

g0=[0009.8]';%四元数表示初始加速度

q1=[cos(10/2/180*pi)sin(10/2/180*pi)00]';%四元数表示第一次转动

q2=[cos(30/2/180*pi)0sin(30/2/180*pi)0]';%四元数表示第二次转动

q3=[cos(-50/2/180*pi)00sin(-50/2/180*pi)]';%四元数表示第三次转动

q=qmul(qmul(q1,q2),q3);%合并三次转动

qni=qinv(q);%求四元数q的逆

g=qmul(qmul(qni,g0),q)

得到新的坐标系中重力的四元数表示:

g=

-0.0000

-4.4054

-2.6027

8.3581

因此,在经过三次旋转后,弹体上三个加速度计Ax,Ay,Az的输出分别为,

(2)方向余弦矩阵方法

由题可知,开始时刻弹体上三个加速度计Ax,Ay,Az的输出为

(0,0,-g)=(0,0,-9.8).

第一次旋转时弹体坐标系的改变得到首次旋转的方向余弦矩阵

第二次旋转时弹体坐标系的改变得到首次旋转的方向余弦矩阵

第三次旋转时弹体坐标系的改变得到首次旋转的方向余弦矩阵

因此,在经过三次旋转后,弹体上三个加速度计Ax,Ay,Az的输出,记作

可以表示为:

在经过三次旋转后,弹体上三个加速度计Ax,Ay,Az的输出分别为

分析:

对两种计算方法得到的结果进行对比,发现两组数据结果相同。

说明用这两种方法都可以进行正确的计算。

第二种情形:

导弹导航

程序设计

%初始化

we=7.292e-5;%地球自转角速度

Q=zeros(4,5401);%初始化四元数矩阵

Q(:

1)=[cos(45/2/180*pi);0;0;sin(45/2/180*pi)];%初始四元数

R=6368000;%地球半径

Longitude=zeros(1,5401);

Longitude

(1)=122;%初始经度

Latitude=zeros(1,5401);

Latitude

(1)=35;%初始纬度

h=zeros(1,5401);

h

(1)=25;%初始高度

g=9.8;%重力加速度

VE=zeros(1,5401);

VE

(1)=0;%初始东向速度

VN=zeros(1,5401);

VN

(1)=0;%初始北向速度

VT=zeros(1,5401);

VT

(1)=0;%初始垂直速度

t=0.1;%姿态计算周期

k=10;

T=k*t;%位、速计算周期

K=5400;

loadgout.mat;%数据读入

loadaout.mat;%数据读入

forN=1:

K%姿态子迭代

Q1=zeros(4,11);%用于1秒内四元数更新

Q1(:

1)=Q(:

N);%赋初值

forn=1:

k

w=0.1/3600/180*pi*gm((N-1)*10+n,:

);%角度增量

w=w';

normw=norm(w);%取二范数

%角度增量矩阵

W=[0,-w

(1),-w

(2),-w(3);

w

(1),0,w(3),-w

(2);

w

(2),-w(3),0,w

(1);

w(3),w

(2),-w

(1),0];%四阶近似

I=eye(4);

S=1/2-normw^2/48;

C=1-normw^2/8+normw^4/384;

Q1(:

n+1)=(C*I+S*W)*Q1(:

n);%四元数迭代

end

Q(:

N+1)=Q1(:

n+1);

%地理坐标系的转动角速度分量

WE=-VN(N)/R;

WN=VE(N)/R+we*cos(Latitude(N)/180*pi);

WT=VE(N)/R*tan(Latitude(N)/180*pi)+we*sin(Latitude(N)/180*pi);

%用地理坐标系的转动四元数修正载体姿态四元数

gama=[WE,WN,WT]'*T;

normgama=norm(gama);

n=gama/normgama;

Qg=[cos(normgama/2);sin(normgama/2)*n];%地理坐标系四元数

Q(:

N+1)=qmul(qinv(Qg),Q(:

N+1));%姿态四元数修正

%加速度计测得的比力

fx=1e-6*9.8*am(N,1);

fy=1e-6*9.8*am(N,2);

fz=1e-6*9.8*am(N,3);

fb=[fxfyfz]';%加速度计比力向量

%加速度计比力从载体坐标系到地里坐标系

f=qmul(Q(:

N+1),qmul([0;fb],qinv(Q(:

N+1))));

fe(N)=f

(2);fn(N)=f(3);ft(N)=f(4);

%计算载体的相对加速度

d_VE(N)=fe(N)+VE(N)*VN(N)/R*tan(Latitude(N)/180*pi)-(VE(N)/R+2*we*cos(Latitude(N)/180*pi))*VT(N)+2*VN(N)*we*sin(Latitude(N)/180*pi);

d_VN(N)=fn(N)-2*VE(N)*we*sin(Latitude(N)/180*pi)-VE(N)*VE(N)/R*tan(Latitude(N)/180*pi)-VN(N)*VT(N)/R;

d_VT(N)=ft(N)+2*VE(N)*we*cos(Latitude(N)/180*pi)+(VE(N)^2+VN(N)^2)/R-g;

%积分计算载体的相对速度

VE(N+1)=d_VE(N)*T+VE(N);

VN(N+1)=d_VN(N)*T+VN(N);

VT(N+1)=d_VT(N)*T+VT(N);

%位置更新

Longitude(N+1)=VE(N)/(R*cos(Latitude(N)/180*pi))*T/pi*180+Longitude(N);

Latitude(N+1)=VN(N)/R*T/pi*180+Latitude(N);

h(N+1)=VT(N)*T+h(N);

end

%画经纬度曲线

figure

(1)

xlabel('经度/度')

ylabel('纬度/度')

holdon

plot(Longitude,Latitude);

%画高度曲线

figure

(2)

xlabel('时间/秒')

ylabel('高度/米')

holdon

plot([0:

5400],h);

%显示200秒弹体到达的经纬度和高度

Longitude=Longitude(5401)

Latitude=Latitude(5401)

Height=h(5401)

%显示200秒后弹体到达的东向速度和北向速度

VE=VE(5401)

VN=VN(5401)

%显示200秒后弹体相对当地地理坐标系的姿态四元数

Quaternion=Q(:

5401)

运行结果:

Longitude=122.8785

Latitude=35.0691

Height=-604.1142

Distance=2.3820e+006

VE=-393.4743

VN=268.0711

VT=-5.4673

Quaternion=

-0.8750

-0.0054

-0.0023

-0.4841

解答:

(1)结果:

弹体经纬度——东经122.8757度,北纬35.0691度,飞行高度为

,东向速度

,北向速度

,垂直速度

(2)totalhorizontaldistancetraveledbythefighter

Distance=2.3820e+006,即2382公里。

(3)latitude-versus-longitudetrajectoryofthefighter

(4)thecurveoftheheightofthefighter

对导弹高度图形的分析

在0~2000秒的时间内,导弹的高度随时间的变化呈先上升而后波动趋势,最高达到约9000米;在2000~3500秒的时间内,导弹的高度随时间上升幅度较小且比较稳定;随后在3500~4500秒内其高度发生了一次较为剧烈的波动,最高达到了18000米,随后又下降至低于2000米;4500秒之后,其高度经过两次波动后达到最低点约为-600米,这时的状态很可能是在水下。

遇到的问题及体会:

这次的作业,让我对方向余弦矩阵和四元数法有了更系统和全面的了解,重新复习了老师上课时讲授的知识,同时也了解到了它们在工程实际中应用的方法。

在解决问题的过程中,对于我而言最大的难题在于编程。

由于对matlab的使用十分不熟练,所以请教了一些同学,也上网搜索到一些关于matlab的教程,这个过程对于我而言远远比一个结果来得更加有意义。

在程序方面,很诚实的说,这个程序并不是我一个人的劳动成果,而是和班里几个同学共同商量得出的结果,请老师多多谅解。

其次是对于老师所给的迭代计算流程图,开始我并不太理解其含义,也并不明白应该如何代入数据。

也是通过看相关书籍,结合老师上课讲的,以及和同学们之间的互相交流,最终才完成了本次作业。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 信息与通信

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1