STK与Matlab的接口及其在复杂航天任务仿真分析中的应用课件.ppt

上传人:牧羊曲112 文档编号:3726756 上传时间:2023-03-17 格式:PPT 页数:56 大小:689.50KB
返回 下载 相关 举报
STK与Matlab的接口及其在复杂航天任务仿真分析中的应用课件.ppt_第1页
第1页 / 共56页
STK与Matlab的接口及其在复杂航天任务仿真分析中的应用课件.ppt_第2页
第2页 / 共56页
STK与Matlab的接口及其在复杂航天任务仿真分析中的应用课件.ppt_第3页
第3页 / 共56页
STK与Matlab的接口及其在复杂航天任务仿真分析中的应用课件.ppt_第4页
第4页 / 共56页
STK与Matlab的接口及其在复杂航天任务仿真分析中的应用课件.ppt_第5页
第5页 / 共56页
点击查看更多>>
资源描述

《STK与Matlab的接口及其在复杂航天任务仿真分析中的应用课件.ppt》由会员分享,可在线阅读,更多相关《STK与Matlab的接口及其在复杂航天任务仿真分析中的应用课件.ppt(56页珍藏版)》请在三一办公上搜索。

1、STK 与 Matlab 的接口及其在复杂航天任务仿真分析中的应用,STK实验室二零一一年 八月,主要内容,1 STK与Matlab接口简介,2 在复杂航天任务仿真分析中的应用,使用STK与Matlab接口应用场合与必要性,STK与Matlab互联的设置与接口函数库,常用接口函数的使用,循环星座对地观测特性分析,循环+嵌套迭代交会对接对远距离导引精度分析,迭代交会对接目标飞行器调相分析,1 STK与Matlab接口简介必要性,STK与Matlab互联两个强大成熟商业软件的强强联合,1 STK与Matlab接口简介必要性,有效的工程应用例子交会对接远距离导引精度论证,1 STK与Matlab接口

2、简介必要性,远距离导引精度仿真分析流程图,1 STK与Matlab接口简介必要性,应用效果,高效(快),建模与修改快捷,可靠(好),辅助实现关键技术环节突破,高效+可靠-技术优势-话语权-地位,1 STK与Matlab接口简介互联与接口函数,STK与Matlab互联的初始设置,参考STK在计算机仿真中的应用,-复制文件“agiCleanPath.m”、“agiInit.m”和“stkInit.m”到指定目录,-在Matlab中运行指令“stkinit”,-选择M文件的位置,-选择Mex文件的位置,-选择默认的其他设置,1 STK与Matlab接口简介互联与接口函数,接口函数,1 STK与Mat

3、lab接口简介互联与接口函数,1 STK与Matlab接口简介互联与接口函数,1 STK与Matlab接口简介常用接口函数,1)初始化需要的接口函数,stkinit 完成STK和Matlab的互联和初始化,conid=stkOpen(stkDefaultHost);返回互联成功的主机端口的连接句柄,2)初始窗口管理,if stkValidScen=1 stkUnload(/*)end 如果已经有打开的场景,则关闭场景。,1 STK与Matlab接口简介常用接口函数,也可以通过交互提示进行窗口管理,如:scen_open=stkValidScen;if scen_open=1 rtn=quest

4、dlg(Close the current scenario?);if strcmp(rtn,Yes)stkClose(conid)return else stkUnload(/*)endend 如果已经有打开的场景,则弹出提示对话框,询问是否要关闭现有场景。,1 STK与Matlab接口简介常用接口函数,3)建立场景,stkNewObj(/,Scenario,场景名称);建立给定名称的场景。stkSetTimePeriod(10 Apr 2003 00:00:00.0,12 Apr 2003 00:00:00.0,GREGUTC);设置场景的起止时间和采用的时间系统。,stkSetEpoch

5、(10 Apr 2003 00:00:00.0,GREGUTC);设置场景的历元。注:在STK输出的各类报告中,时间起点将以该历元作为时间零点。,1 STK与Matlab接口简介常用接口函数,stkSyncEpoch;同步aeroToolbox和STK场景历元。注:aeroToolbox函数库包含“安装盘:Program FilesAGISTKMatlab”目录下各种atb开头的内部函数,可以与STK场景历元保持独立。STK场景时间发生改变时,通过调用该语句可保持二者时间同步。rtn=stkConnect(conid,Animate,Scenario/场景名称,SetValues 10 Apr

6、 2003 00:00:00.0 60 0.1);rtn=stkConnect(conid,Animate,Scenario/场景名称,Reset);设置STK场景动画历元。,1 STK与Matlab接口简介常用接口函数,4)建立航天器,stkNewObj(*/,Satellite,航天器名称);建立卫星。,最基础最常用的接口函数:stkSetPropClassical,语法:stkSetPropClassical(objPath,propagator,coordSystem,tStart,tStop,dt,orbitEpoch,semimajorAxis,eccentricity,incli

7、nation,argOfPerigee,RAAN,meanAnomaly,coordEpoch),1 STK与Matlab接口简介常用接口函数,objPath 有效路径。Propagator 选用的动力学模型,可选择为 TwoBody,J2Perturbation,J4Perturbation,HPOP or PODS,分别表示“二体”、“J2摄动”、“J4摄动”、“HPOP模型”或“PODS模型”,区分大小写。coordSystem 选用的坐标系,可选择为 Fixed,J2000,MeanOfDate,MeanOfEpoch,TrueOfDate,TrueOfEpoch,B1950,TEME

8、OfDate,TEMEOfEpoch,AlignmentAtEpoch,区分大小写。tStart,tStop 起止时刻,以相对于历元时刻的秒为单位。dt 积分步长,以秒为单位。orbitEpoch 轨道历元。,1 STK与Matlab接口简介常用接口函数,semimajorAxis,eccentricity,inclination,argOfPerigee,RAAN,meanAnomaly 6个轨道根数。其中,若坐标系选为AlignmentAtEpoch,RAAN为升交点地理经度,若坐标系选为J2000,RAAN为升交点赤经。coordEpoch 坐标历元,所有.OfEpoch 选项均需提供对

9、应的坐标历元。,同样重要的接口函数:stkSetPropCart,语法:stkSetPropCart(objPath,propagator,coordSystem,tStart,tStop,dt,orbitEpoch,pos,vel,coordEpoch),1 STK与Matlab接口简介常用接口函数,若动力学模型选为“HPOP模型”,则还需要通过stkConnect函数设置各种力模型参数。,第一类:“HPOP force model”设置重力、第三体引力、太阳光压、固体潮、海潮、辐射压参数。,第二类:“HPOP drag model”设置大气密度模型及参数。,1 STK与Matlab接口简介

10、常用接口函数,第一类:“HPOP force model”,语法:HPOP Force ForceModel,其中,中的参数表示需要用户根据具体目录安装或参数使用情况设置的,中的参数表示STK固有的关键字,例如:stkConnect(conid,HPOP,Scenario/场景名/Satellite/航天器名,Force SolarRad Off)其中,为 Scenario/场景名/Satellite/航天器名,ForceModel为 SolarRad,为 Off。,1 STK与Matlab接口简介常用接口函数,ForceModel 和 的可选参数如表所示。,1 STK与Matlab接口简介常

11、用接口函数,stkConnect(conid,HPOP,Scenario/场景名称/Satellite/航天器名称,Force Gravity C:Program FilesAGISTKSTKDataCentralBodiesEarthJGM3.grv 8 8);stkConnect(conid,HPOP,Scenario/场景名称/Satellite/航天器名称,Force SolarRad Off);stkConnect(conid,HPOP,Scenario/场景名称/Satellite/航天器名称,Force ThirdBodyGravity Sun Off);stkConnect(c

12、onid,HPOP,Scenario/场景名称/Satellite/航天器名称,Force ThirdBodyGravity Moon Off);,1 STK与Matlab接口简介常用接口函数,第二类:“HPOP drag model”,语法:HPOP Drag DragState AtmDensModel,其中,与中的参数的含义不变。DragState 设置为On或Off。设置为Off则不需要输入其他参数。设置为On时,为-10.010.0之间的实数,为0.09999.0之间的实数,AtmDensModel的有效输入值和相应的输入值见表所示。,1 STK与Matlab接口简介常用接口函数,1

13、 STK与Matlab接口简介常用接口函数,例如:stkConnect(conid,HPOP,Scenario/场景名称/Satellite/航天器名称,Drag On 2.2 0.0022 NRLMSISE 2000 Manual 150 150 2.667);stkConnect(conid,HPOP,Scenario/场景名称/Satellite/航天器名称,Drag On 2.0 0.0022 NRLMSISE 2000 File C:Program FilesAGISTKDynamicEarthDatastkFluxGeoMag.fxm);,1 STK与Matlab接口简介常用接口函

14、数,5)建立地面站,stkNewObj(*/,Facility,测站名称)建立地面站。stkSetFacPosLLA(Scenario/场景名称/Facility/测站名称,phi;namda;h)设置地面站的经度、纬度和高度。stkConnect(conid,SetConstraint,Scenario/场景名称/Facility/测站名称,ElevationAngle Min 最低仰角值)设置地面站的最低仰角。stkConnect(conid,SetConstraint,Scenario/场景名称/Facility/测站名称,Range Max 最大探测距离值);设置地面站的最大探测距离。

15、,1 STK与Matlab接口简介常用接口函数,6)输出计算结果,stkPropagate(*/Satellite/航天器名称,t_start,t_stop)T,r,v,cb=stkEphemerisCBI(Scenario/场景名称/Satellite/航天器名称,dt,t_start,t_stop)运行航天器并输出给定起止时间内的惯性坐标系位置和速度。注:输出航天器位置、速度之前必须运行stkPropagate函数,否则力模型参数设置不生效。interval=stkAccess(Scenario/场景名称/Satellite/航天器名称,Scenario/场景名称/Facility/测站名

16、称)输出航天器相对于测站的可见时间段。,1 STK与Matlab接口简介常用接口函数,7)关闭STK和Matlab连接,采用接口函数输出的数据上虽然不如手工设置时形式多样,但因为可以在Matlab环境下通过编程进行数据处理,依然可以获得多种需要的计算结果,并且可实现手工设置无法完成的循环计算和多重迭代功能。上述1)6)过程为利用STK/Matlab接口进行计算分析的常用或基本函数。,stkClose(conid)注:STK和Matlab最多同时可创建2个连接,因此每次程序运行结束通常需要关闭连接,以免下次运行重新建立连接时个数超过限制。,2 在复杂航天任务分析中的应用循环,循环星座对地观测特性

17、分析,设某一对地观测卫星星座含多颗星,各星之间通过保持一定的几何构型,实现对某一特定区域的重点观测。在系统设计阶段,需要分析对某种给定的构型,星座对某一特定区域进行观测时,各星观测该区域的 时间间隔特性,如该特定区域重访时间间隔平均值、最大值等。对某一给定点,通过手工设置STK中各类参数可计算和输出星座中各星访问该地点的时间间隔,但对于某一给定区域,需要在该区域内密集采样,采用手工输入输出方式已不再可能,因此需要通过Matlab作为计算引擎调用STK循环计算。以下给出计算过程和结果。,2 在复杂航天任务分析中的应用循环,1)初始化并关闭所有打开的窗口,%初始化stkinitremMachine

18、=stkDefaultHost;%关闭所有打开的窗口delete(get(0,chiSatren);conid=stkOpen(remMachine);scen_open=stkValidScen;if scen_open=1 stkUnload(/*)end,2 在复杂航天任务分析中的应用循环,2)建立场景、航天器和测站,%建立场景并设置场景属性stkNewObj(/,Scenario,RemoteSensor);stkSetTimePeriod(1 Jan 2010 00:00:00.0,5 Jan 2010 00:00:0.0,GREGUTC);stkSetEpoch(1 Jan 201

19、0 00:00:00.0,GREGUTC);stkSyncEpoch;rtn=stkConnect(conid,Animate,Scenario/RemoteSensor,SetValues 1 Jan 2010 00:00:00.0 60 0.1);rtn=stkConnect(conid,Animate,Scenario/RemoteSensor,Reset);%建立航天器和测站stkNewObj(*/,Satellite,Sat1);stkNewObj(*/,Satellite,Sat2);stkNewObj(*/,Satellite,Sat3);stkNewObj(*/,Satelli

20、te,Sat4);stkNewObj(*/,Facility,Station);,2 在复杂航天任务分析中的应用循环,3)设置星座中各卫星的属性,t_start=0;t_stop=4*(24*3600);dt=60;orbitEpoch=t_start;a_sat=7000*1000;e_sat=0;i_sat=60;w_sat=0;Raan_sat=0;M_sat=0;stkSetPropClassical(*/Satellite/Sat1,J2Perturbation,J2000,t_start,t_stop,dt,orbitEpoch,a_sat,e_sat,i_sat,w_sat,Ra

21、an_sat,M_sat);stkPropagate(*/Satellite/Sat1,t_start,t_stop)stkSetPropClassical(*/Satellite/Sat2,J2Perturbation,J2000,t_start,t_stop,dt,orbitEpoch,a_sat,e_sat,i_sat,w_sat,Raan_sat+pi/4,M_sat+pi);stkPropagate(*/Satellite/Sat2,t_start,t_stop)stkSetPropClassical(*/Satellite/Sat3,J2Perturbation,J2000,t_s

22、tart,t_stop,dt,orbitEpoch,a_sat,e_sat,i_sat,w_sat,Raan_sat+pi/2,M_sat+2*pi);stkPropagate(*/Satellite/Sat3,t_start,t_stop)stkSetPropClassical(*/Satellite/Sat4,J2Perturbation,J2000,t_start,t_stop,dt,orbitEpoch,a_sat,e_sat,i_sat,w_sat,Raan_sat+3*pi/4,M_sat+pi);stkPropagate(*/Satellite/Sat4,t_start,t_st

23、op),2 在复杂航天任务分析中的应用循环,4)循环计算区域内各点的重访时间间隔及最大值,namda_min=0;namda_max=2*pi;n_namda=40;deta_namda=(namda_max-namda_min)/n_namda;phi_min=-60*pi/180;phi_max=60*pi/180;n_phi=30;deta_phi=(phi_max-phi_min)/n_phi;for i=1:n_namda+1 for j=1:n_phi+1 remain=(n_namda+1)*(n_phi+1)-(i-1)*(n_phi+1)-j namda=namda_min+

24、(i-1)*deta_namda;X(i,j)=namda*180/pi;phi=phi_min+(j-1)*deta_phi;Y(i,j)=phi*180/pi;stkSetFacPosLLA(Scenario/RemoteSensor/Facility/Station,phi;namda;0);,2 在复杂航天任务分析中的应用循环,stkConnect(conid,SetConstraint,Scenario/RemoteSensor/Facility/Station,ElevationAngle Min 56.8164);interval1=stkAccess(Scenario/Remo

25、teSensor/Satellite/Sat1,Scenario/RemoteSensor/Facility/Station);interval2=stkAccess(Scenario/RemoteSensor/Satellite/Sat2,Scenario/RemoteSensor/Facility/Station);interval3=stkAccess(Scenario/RemoteSensor/Satellite/Sat3,Scenario/RemoteSensor/Facility/Station);interval4=stkAccess(Scenario/RemoteSensor/

26、Satellite/Sat4,Scenario/RemoteSensor/Facility/Station);,2 在复杂航天任务分析中的应用循环,if size(interval1)=0 0 end endend,2 在复杂航天任务分析中的应用循环,5)绘制计算结果并关闭连接,save(mat)set(gcf,color,1,1,1)figuresurf(X,Y,Z)xlabel(namda/deg)ylabel(phi/deg)stkClose(conid),2 在复杂航天任务分析中的应用迭代,迭代交会对接目标飞行器调相分析,交会对接任务中,目标飞行器在飞船入轨前23个月先行入轨,目标飞行

27、器入轨后在一天时间内通过两次变轨进入某一高度的近圆轨道,之后通过大气衰减和主动变轨,使23个月后飞船入轨时刻目标飞行器轨道的相位、高度和偏心率满足要求。在任务分析阶段,需要根据给定的空间环境设计目标飞行器的圆化轨道高度,在后续23个月的时间内尽可能通过大气衰减作用满足各种终端约束条件,减少主动变轨的能量消耗。,第4圈变轨,第13圈变轨,2 在复杂航天任务分析中的应用迭代,为了重点说明STK/Matlab接口的使用,对上述设计进行简化,假定不进行调整相位、高度和偏心率的变轨,设计过程简化为迭代搜索满足飞船入轨时刻相位约束条件的目标飞行器圆化轨道的高度,为单层迭代过程。需要补充说明的是,在STK中

28、尽管Astrogator模式可实现一定功能的迭代,但在Astrogator模式下空间环境参数无法根据需要进行设置,并且难以设定某些特殊的约束条件,这种情况下可以利用Matlab的编程能力通过STK/Matlab接口实现迭代求解。以下给出计算过程。,2 在复杂航天任务分析中的应用迭代,1)初始化和并关闭所有打开的窗口,与前述过程相同,不再重复。2)建立场景和航天器目标飞行器入轨后,在第4圈近地点变轨抬高远地点高度,在第13圈远地点变轨进入圆轨道,之后进入大气衰减自由飞行阶段。以下建立场景后,再建立3个航天器分别用于不同阶段的轨道预报。stkNewObj(/,Scenario,GM);stkSet

29、TimePeriod(6 Sep 2011 2:11:53,6 Dec 2011 2:11:53,GREGUTC);stkSetEpoch(6 Sep 2011 2:11:53,GREGUTC);stkSyncEpoch;rtn=stkConnect(conid,Animate,Scenario/GM,SetValues 6 Sep 2011 2:11:53 60 0.1);rtn=stkConnect(conid,Animate,Scenario/GM,Reset);stkNewObj(*/,Satellite,MB_1);stkNewObj(*/,Satellite,MB_2);stkNe

30、wObj(*/,Satellite,MB_3);,2 在复杂航天任务分析中的应用迭代,3)外推至第4圈近地点,%设置J2000坐标系中初始轨道根数t_start_1=0;t_stop_1=0.187*(24*3600);dt=60;orbitEpoch=t_start_1;coordEpoch=t_start_1;a_MB=6645999;e_MB=0.01129;i_MB=42.747;w_MB=124.342;Raan_MB=7.309;M_MB=0;,2 在复杂航天任务分析中的应用迭代,%选用HPOP模型,设置大气密度模型、重力场模型、光压和第三体摄动模型。stkSetPropClass

31、ical(*/Satellite/MB_1,HPOP,AlignmentAtEpoch,t_start_1,t_stop_1,dt,orbitEpoch,a_MB,e_MB,i_MB,w_MB,Raan_MB,M_MB,coordEpoch);stkConnect(conid,HPOP,Scenario/GM/Satellite/MB_1,Drag On 2.2 0.0039 NRLMSISE 2000 Manual 150 150 2.667);stkConnect(conid,HPOP,Scenario/GM/Satellite/MB_1,Force Gravity C:Program F

32、ilesAGISTKSTKDataCentralBodiesEarthJGM3.grv 8 8);stkConnect(conid,HPOP,Scenario/GM/Satellite/MB_1,Force SolarRad Off);stkConnect(conid,HPOP,Scenario/GM/Satellite/MB_1,Force ThirdBodyGravity Sun Off);stkConnect(conid,HPOP,Scenario/GM/Satellite/MB_1,Force ThirdBodyGravity Moon Off);stkPropagate(*/Sate

33、llite/MB_1,t_start_1,t_stop_1)T_MB_1,r_MB_1,v_MB_1,cb=stkEphemerisCBI(Scenario/GM/Satellite/MB_1,dt,t_start_1,t_stop_1);,2 在复杂航天任务分析中的应用迭代,4)迭代求解第4圈近地点变轨速度增量(或求解圆化轨道高度),%采用牛顿迭代法求解,约束条件为第89天目标飞行器轨道面与飞船入轨点共面时刻的相位在11410 范围内。deta_v_2=9;error=100;while abs(error)1 Cal_remain;index_RG=find(T_interp89);err

34、or=beta_interp(index_RG(1)-114 deta_v_2=deta_v_2+error/3600;End 其中,Cal_ remain为需要循环计算的用户自定义子函数,用于计算给定一个第4圈近地点变轨速度增量后,从第4圈近地点变轨外推至第13圈远地点并进行轨道圆化变轨后的轨道,轨道外推一直到第89天目标飞行器轨道面与飞船入轨点共面时刻。输出结果外共面时刻的相位。,2 在复杂航天任务分析中的应用迭代,Cal_ remain子函数为:%第4圈变轨外推至第13圈变轨 pos_2=r_MB_1(:,length(r_MB_1);vel_2=v_MB_1(:,length(v_MB

35、_1);ix=vel_2/norm(vel_2);ir=pos_2/norm(pos_2);iz=CrossProduct(ir,ix)/norm(CrossProduct(ir,ix);iy=CrossProduct(ix,iz);thita_2=0;vel_2=vel_2+deta_v_2*(cos(thita_2)*ix+sin(thita_2)*iy);t_start_2=t_stop_1;t_stop_2=0.782*(24*3600);dt=60;orbitEpoch=t_start_2;stkSetPropCart(*/Satellite/MB_2,HPOP,J2000,t_st

36、art_2,t_stop_2,dt,orbitEpoch,pos_2,vel_2)stkConnect(conid,HPOP,Scenario/GM/Satellite/MB_2,Drag On 2.2 0.0039 NRLMSISE 2000 Manual 150 150 2.667);stkConnect(conid,HPOP,Scenario/GM/Satellite/MB_2,Force Gravity C:Program FilesAGISTKSTKDataCentralBodiesEarthJGM3.grv 8 8);,2 在复杂航天任务分析中的应用迭代,stkConnect(co

37、nid,HPOP,Scenario/GM/Satellite/MB_2,Force SolarRad Off);stkConnect(conid,HPOP,Scenario/GM/Satellite/MB_2,Force ThirdBodyGravity Sun Off);stkConnect(conid,HPOP,Scenario/GM/Satellite/MB_2,Force ThirdBodyGravity Moon Off);stkPropagate(*/Satellite/MB_2,t_start_2,t_stop_2)T_MB_2,r_MB_2,v_MB_2,cb=stkEphem

38、erisCBI(Scenario/GM/Satellite/MB_2,dt,t_start_2,t_stop_2);,%第13圈变轨外推至飞船入轨时刻pos_3=r_MB_2(:,length(r_MB_2);vel_3=v_MB_2(:,length(v_MB_2);u_e=3.986005e+014;ix=vel_3/norm(vel_3);ir=pos_3/norm(pos_3);iz=CrossProduct(ir,ix)/norm(CrossProduct(ir,ix);iy=CrossProduct(ix,iz);it=CrossProduct(iz,ir);vel_3=sqrt(

39、u_e/norm(pos_3)*it;,2 在复杂航天任务分析中的应用迭代,t_start_3=T_MB_2(length(T_MB_2);t_stop_3=92*(24*3600);dt=60;orbitEpoch=t_start_3;stkSetPropCart(*/Satellite/MB_3,HPOP,J2000,t_start_3,t_stop_3,dt,orbitEpoch,pos_3,vel_3)stkConnect(conid,HPOP,Scenario/GM/Satellite/MB_3,Drag On 2.2 0.0039 NRLMSISE 2000 Manual 150

40、150 2.667);stkConnect(conid,HPOP,Scenario/GM/Satellite/MB_3,Force Gravity C:Program FilesAGISTKSTKDataCentralBodiesEarthJGM3.grv 8 8);stkConnect(conid,HPOP,Scenario/GM/Satellite/MB_3,Force SolarRad Off);stkConnect(conid,HPOP,Scenario/GM/Satellite/MB_3,Force ThirdBodyGravity Sun Off);stkConnect(conid

41、,HPOP,Scenario/GM/Satellite/MB_3,Force ThirdBodyGravity Moon Off);stkPropagate(*/Satellite/MB_3,t_start_3,t_stop_3)T_MB_3,r_MB_3,v_MB_3,cb=stkEphemerisCBI(Scenario/GM/Satellite/MB_3,dt,t_start_3,t_stop_3);,2 在复杂航天任务分析中的应用迭代,%计算共面时刻相位T_MB_all=T_MB_1,T_MB_2(2:length(T_MB_2),T_MB_3(2:length(T_MB_3)/(24

42、*3600);R_MB_all=r_MB_1,r_MB_2(:,2:length(r_MB_2),r_MB_3(:,2:length(r_MB_3);V_MB_all=v_MB_1,v_MB_2(:,2:length(v_MB_2),v_MB_3(:,2:length(v_MB_3);data_RGD=load(data_pos_RGD.m);%读入入轨点在惯性系中的位置。T_RGD_all=data_RGD(:,1);r_RGD_all=data_RGD(:,2:4);step_window=1/60/24;t_start=0;t_end=92;T=t_start:step_window:t

43、_end;index1=find(T_MB_allt_start,2 在复杂航天任务分析中的应用迭代,j=1;for i=1:length(T)AngMomentum_MB=CrossProduct(R_MB(i,:),V_MB(i,:)/norm(CrossProduct(R_MB(i,:),V_MB(i,:);alpha(i)=acos(Dotproduct(R_RGD(i,:)/norm(R_RGD(i,:),AngMomentum_MB)*180/pi;beta(i)=acos(Dotproduct(R_RGD(i,:)/norm(R_RGD(i,:),R_MB(i,:)/norm(R

44、_MB(i,:)*180/pi;if DotProduct(CrossProduct(R_RGD(i,:),R_MB(i,:),AngMomentum_MB)1 endend,2 在复杂航天任务分析中的应用迭代,5)绘制计算结果并关闭连接,%迭代收敛后,将迭代结果对应的轨道主要特征绘制出来。set(gcf,color,1,1,1)subplot(2,1,1)hold on;plot(T_interp,beta_interp,k.,T_interp,beta_interp,k);hold on;plot(0 t_end,104,104,r,0 t_end,114,114,g,0 t_end,12

45、4,124,r)axis(0,t_end,-180,180)subplot(2,1,2)h=(sqrt(R_MB_all(:,1).2+R_MB_all(:,2).2+R_MB_all(:,3).2)-6378140)/1000;plot(T_MB_all,h,k);hold on;plot(0 t_end,332,332,g,LineWidth,2)axis(0,t_end,300,400)hold on;stkClose(conid),2 在复杂航天任务分析中的应用迭代,2 在复杂航天任务分析中的应用循环+嵌套迭代,循环+嵌套迭代交会对接对远距离导引精度分析,2 在复杂航天任务分析中的应用

46、循环+嵌套迭代,远距离导引的终端约束为:在给定时刻,飞船与目标飞行器共面,处于比目标飞行器轨道略低的近圆轨道上,且相对目标飞行器相位满足要求。上述约束条件的数学描述即为给定时刻飞船相对于目标飞行器的相对位置和相对速度满足给定要求(标称值及误差范围)。可用于规划的变量即为各次变轨的时刻及变轨速度增量。为减少可变因素并简化工程实施,变轨时刻通常选择在近地点或远地点,变轨速度增量限定为水平方向(轨道面修正除外)。由于各次变轨均会对终点状态产生影响,因此每次变轨规划都是后续剩余变轨规划变量的统一综合规划。,2 在复杂航天任务分析中的应用循环+嵌套迭代,远距离导引精度分析具体计算过程可分为两个层次的循环

47、或迭代:最外层循环为误差样本空间中循环多次采样进行仿真计算,对于每一次采样,在得到一组各误差源的具体采样误差值后,加到相应环节进行仿真计算,多次采样计算结束后进行统计分析;向内第二层循环为各次变轨控制量的迭代计算,属于多变量规划问题,规划的目标量为远距离导引终点飞船相对于目标飞行器的相对位置和速度状态,规划变量的数量和内容在各次变轨规划时各不相同,第一次变轨前规划时,可用于规划的变量有6个,规划目标6个,可得到唯一解;第二次规划时可用的规划变量有7个,规划目标6个,存在两种规划方案;第三次和第四次规划变量和规划目标均为4个,同样是唯一解;第五次规划变量只有2个,规划目标4个,需要通过加权对规划

48、目标进行取舍。通常情况下为了避免嵌套迭代减少循环层次,采用各规划变量同时规划的方式,但对于第二次规划,由于轨道面内控制与轨道面法向控制不相关,只能先规划轨道面内的控制,再规划轨道面法向控制。,2 在复杂航天任务分析中的应用循环+嵌套迭代,2 在复杂航天任务分析中的应用循环+嵌套迭代,1)初始化并关闭所有打开的窗口,同前。,2)建立场景和航天器,stkNewObj(/,Scenario,LongRangeGuidance);stkSetTimePeriod(10 Apr 2003 00:00:00.0,12 Apr 2003 00:00:00.0,GREGUTC);stkSetEpoch(10

49、Apr 2003 00:00:00.0,GREGUTC);stkSyncEpoch;rtn=stkConnect(conid,Animate,Scenario/LongRangeGuidance,SetValues 10 Apr 2003 00:00:00.0 60 0.1);rtn=stkConnect(conid,Animate,Scenario/LongRangeGuidance,Reset);stkNewObj(*/,Satellite,sat);注:因远距离导引过程分段过多,不宜每段定义一个航天器,而是采用定义一个航天器进行轨道计算,再将计算结果针对不同分段用不同变量名保存的方式。,

50、2 在复杂航天任务分析中的应用循环+嵌套迭代,3)设置航天器基本参数,u_e=3.986005e+014;a_temp=xx;e_temp=xx;i_temp=xx;w_temp=xx;Raan_temp=xx;M_temp=xx;t_start_temp=0;t_stop_temp=60;orbitEpoch_temp=t_start_temp;dt=60;stkSetPropClassical(*/Satellite/sat,HPOP,J2000,t_start_temp,t_start_temp+dt,dt,orbitEpoch_temp,a_temp,e_temp,i_temp,w_t

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号