巨型星座try5(仿真并生成报告)

导入文件

stkLoadObj('D:\STK_Job\Try2\big_star.sc');

建立仿真链路(单卫星单测站)

%% 生成chain
stkNewObj('Scenario/big_star','Chain','Chain1');
conID = stkOpen(stkDefaultHost);
stkConnect(conID,'Chains','*/Chain/Chain1','add */Satellite/ggg');%一次加一个
stkConnect(conID,'Chains','*/Chain/Chain1','add */Facility/GroundStation/Sensor/ccc');

得出时间report

%%  ReportCreate 生成report文件
objPath = 'Scenario/big_star/Chain/Chain1';
rptStyle = 'Time Ordered Access';%'Access Data';
[secData,secNames] = stkReport(objPath, rptStyle);
secData

问题心得

  1. 如何画出捕获时间图像
  2. 如何MATLAB将report导出为TXT或其他
  3. 报告结果访问:
 	scen_open = stkValidScen;
if scen_open == 1
   
    [data1,name1]=stkReport('*/Satellite/GEO','Fixed Position Velocity');%获取卫星GEO的位置和速度信息
    T=stkFindData(data1{1},'Time'); %获取T
    x_sat=stkFindData(data1{1},'x');% 获取单位是m
    y_sat=stkFindData(data1{1},'y');
    z_sat=stkFindData(data1{1},'z');
    vx_sat=stkFindData(data1{1},'vx');
    vy_sat=stkFindData(data1{1},'vy');
    vz_sat=stkFindData(data1{1},'vz');

    
    [data2,name2]=stkReport('*/Satellite/GEO/Sensor/Sensor1','Boresight Intersection');%获取波束中心的位置信息
    Latitude_Sensor_Center=stkFindData(data2{1},'Latitude');%单位是弧度
    Longitude_Sensor_Center=stkFindData(data2{1},'Longitude');
    
    [data3,name3]=stkReport('*/Aircraft/Aircraft1','ECF Position Velocity 60 sec');%获取飞行器的位置和速度信息
    % 注意:“ECF Position Velocity 60 sec”需要在STK中额外设置添加
    x_flight=stkFindData(data3{1},'x');% 获取单位是m
    y_flight=stkFindData(data3{1},'y');
    z_flight=stkFindData(data3{1},'z');
    vx_flight=stkFindData(data3{1},'vx');
    vy_flight=stkFindData(data3{1},'vy');
    vz_flight=stkFindData(data3{1},'vz');
    %————————————————————————————————————————————————STK中获取参数;↑
    
    Length_of_flight = length(vz_flight); % 飞行器的数据长度,最后一组没有取在整数时间
    Length_calculate = Length_of_flight-1; % 实际计算的数据长度 要减去一组
    
    x_sat_2 = x_sat(1:Length_of_flight);
    y_sat_2 = y_sat(1:Length_of_flight);
    z_sat_2 = z_sat(1:Length_of_flight);
    vx_sat_2 = vx_sat(1:Length_of_flight);
    vy_sat_2 = vy_sat(1:Length_of_flight);
    vz_sat_2 = vz_sat(1:Length_of_flight);
  % 卫星 速度位置
    
    Latitude_Sensor_Center_2 = Latitude_Sensor_Center(1:Length_of_flight);
    Longitude_Sensor_Center_2 = Longitude_Sensor_Center(1:Length_of_flight);
    x_Sensor_Center_2 = zeros(Length_of_flight,1);
    y_Sensor_Center_2 = zeros(Length_of_flight,1);
    z_Sensor_Center_2 = zeros(Length_of_flight,1);
    for j = 1:Length_of_flight
    x_Sensor_Center_2(j) = ((a_1*cos(Longitude_Sensor_Center_2(j)))/((1+(1-squ_e)*((tan(Latitude_Sensor_Center_2(j)))^2))^0.5))*1000;
    y_Sensor_Center_2(j) = ((a_1*sin(Longitude_Sensor_Center_2(j)))/((1+(1-squ_e)*((tan(Latitude_Sensor_Center_2(j)))^2))^0.5))*1000;
    z_Sensor_Center_2(j) = (a_1*(1-squ_e)*sin(Latitude_Sensor_Center_2(j)))/((1-squ_e*((sin(Latitude_Sensor_Center_2(j)))^2))^0.5)*1000;
    end
  % 波束中心点位置
    
    x_flight_2 = x_flight(1:Length_of_flight);
    y_flight_2 = y_flight(1:Length_of_flight);
    z_flight_2 = z_flight(1:Length_of_flight);
    vx_flight_2 = vx_flight(1:Length_of_flight);
    vy_flight_2 = vy_flight(1:Length_of_flight);
    vz_flight_2 = vz_flight(1:Length_of_flight);
     %飞机 速度位置
    
    %————————————————————————————————————————————————————计算TDOA/FDOA ↓
    FDOA = zeros(Length_of_flight,1);
    TDOA = zeros(Length_of_flight,1);
    for j = 1:Length_of_flight
    A1 = [x_sat_2(j) y_sat_2(j) z_sat_2(j)];
    B1 = [vx_sat_2(j) vy_sat_2(j) vz_sat_2(j)];
    S1 = [x_Sensor_Center_2(j) y_Sensor_Center_2(j) z_Sensor_Center_2(j)];
    delta_v_1 = norm(B1);
    R1 = S1-A1;
    delta_R1 = norm(R1);
    cos_alpha_1 =  (R1(1)*B1(1)+R1(2)*B1(2)+R1(3)*B1(3))/(delta_R1*delta_v_1);
    delta_f_1 = (F*delta_v_1*cos_alpha_1)/c_0;
    delay_1 = delta_R1/c_0;
    
    A2 = [x_flight_2(j) y_flight_2(j) z_flight_2(j)];
    B2 = [vx_flight_2(j) vy_flight_2(j) vz_flight_2(j)];
    delta_v_2 = norm(B2-B1);
    R2 = A2-A1;
    delta_R2 = norm(R2);
    V2 = B1-B2;
    cos_alpha_2 = (R2(1)*V2(1)+R2(2)*V2(2)+R2(3)*V2(3))/(delta_R2*delta_v_2);
    delta_f_2 = (F*delta_v_2*cos_alpha_2)/c_0;
    delay_2 = delta_R2/c_0;
    
    FDOA(j) = delta_f_2 - delta_f_1; %飞机的多普勒-波束中心多普勒
    TDOA(j) = delay_2 - delay_1; %飞机时延-波束中心时延
    end

end
stkClose(conid);
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值