日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MATLAB与STK互联搭建LEO卫星星座(connect方法)

發布時間:2024/3/26 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MATLAB与STK互联搭建LEO卫星星座(connect方法) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

軟件版本: STK 11.6/ MATALB R2018b
使用connect命令用MATLAB在STK中自動搭建LEO衛星星座系統,參考了https://zhuanlan.zhihu.com/p/68385977?utm_source=wechat_session
代碼都是逐句嘗試,進度超慢,而且使用connect命令來讀取STK里的信息很麻煩,之后會嘗試加上COM方法。

stkInit; conid = stkOpen(stkDefaultHost); % 設置場景大氣模型(雨衰) stkConnect(conid,'Environment','*','SetValue PropagationChannel.UseRainModel true'); stkConnect(conid,'Environment','*','SetValue PropagationChannel.RainModel ITU-R_P618-5'); stkConnect(conid,'Environment','*','SetValue PropagationChannel.RainModel.SurfaceTemperature 78.6 degC'); stkConnect(conid,'Environment','*','SetValue RainOutagePercent 0.03'); % 新建地面站 stkNewObj('/*','Facility','ChengDu'); stkConnect(conid,'SetPosition','*/Facility/ChengDu Geodetic', '30 104 0.0 MSL'); stkConnect(conid,'SetConstraint','*/Facility/ChengDu ElevationRate','Min 40'); stkNewObj('/*','Facility','Alaska'); stkConnect(conid,'SetPosition','*/Facility/Alaska Geodetic', '64.86 -147.85 0.0 MSL'); stkConnect(conid,'SetConstraint','*/Facility/Alaska ElevationRate','Min 40'); % 添加地面傳感器并設置傳感器參數 stkNewObj('*/Facility/ChengDu','Sensor','CHDU_Sen'); stkNewObj('*/Facility/Alaska','Sensor','Alaska_Sen'); stkConnect(conid,'Define','*/Facility/ChengDu/Sensor/CHDU_Sen','SimpleCone 20'); stkConnect(conid,'Define','*/Facility/Alaska/Sensor/Alaska_Sen','SimpleCone 20'); % 地面站發射機(Complex_Transmitter_Model/Phased_Array) strSetTrans =[ 'SetValue Model Complex_Transmitter_Model']; stkNewObj('*/Facility/ChengDu/Sensor/CHDU_Sen','Transmitter','ULXmtr_ChengDu'); stkConnect(conid,'Transmitter','*/Facility/ChengDu/Sensor/CHDU_Sen/Transmitter/ULXmtr_ChengDu',strSetTrans); stkConnect(conid,'Transmitter','*/Facility/ChengDu/Sensor/CHDU_Sen/Transmitter/ULXmtr_ChengDu','SetValue Model.AntennaControl.Antenna Phased_Array'); stkConnect(conid,'Transmitter','*/Facility/ChengDu/Sensor/CHDU_Sen/Transmitter/ULXmtr_ChengDu','SetValue Model.Frequency 28.5 GHz'); stkConnect(conid,'Transmitter','*/Facility/ChengDu/Sensor/CHDU_Sen/Transmitter/ULXmtr_ChengDu','SetValue Model.Power 18.12 dBW'); stkConnect(conid,'Transmitter','*/Facility/ChengDu/Sensor/CHDU_Sen/Transmitter/ULXmtr_ChengDu','SetValue Model.UseFilter true'); stkConnect(conid,'Transmitter','*/Facility/ChengDu/Sensor/CHDU_Sen/Transmitter/ULXmtr_ChengDu','Setvalue Model.Filter.LowerBandwidthLimit -0.25 GHz'); stkConnect(conid,'Transmitter','*/Facility/ChengDu/Sensor/CHDU_Sen/Transmitter/ULXmtr_ChengDu','Setvalue Model.Filter.UpperBandwidthLimit 0.25 GHz');stkNewObj('*/Facility/Alaska/Sensor/Alaska_Sen','Transmitter','ULXmtr_Alaska'); stkConnect(conid,'Transmitter','*/Facility/Alaska/Sensor/Alaska_Sen/Transmitter/ULXmtr_Alaska',strSetTrans); stkConnect(conid,'Transmitter','*/Facility/Alaska/Sensor/Alaska_Sen/Transmitter/ULXmtr_Alaska','SetValue Model.AntennaControl.Antenna Phased_Array'); stkConnect(conid,'Transmitter','*/Facility/Alaska/Sensor/Alaska_Sen/Transmitter/ULXmtr_Alaska','SetValue Model.Frequency 28.5 GHz'); stkConnect(conid,'Transmitter','*/Facility/Alaska/Sensor/Alaska_Sen/Transmitter/ULXmtr_Alaska','SetValue Model.Power 18.12 dBW'); stkConnect(conid,'Transmitter','*/Facility/Alaska/Sensor/Alaska_Sen/Transmitter/ULXmtr_Alaska','SetValue Model.UseFilter true'); stkConnect(conid,'Transmitter','*/Facility/Alaska/Sensor/Alaska_Sen/Transmitter/ULXmtr_Alaska','Setvalue Model.Filter.LowerBandwidthLimit -0.25 GHz'); stkConnect(conid,'Transmitter','*/Facility/Alaska/Sensor/Alaska_Sen/Transmitter/ULXmtr_Alaska','Setvalue Model.Filter.UpperBandwidthLimit 0.25 GHz'); % 新建衛星 % stkConnect(conid,'ImportTLEFile','*','"C:\Users\l\Documents\STK 11 (x64)\SpaceX_tle.tle" SSCNumber 44235 Autopropagate On'); % TLE文件導入 stkNewObj('/*','Satellite','SeedSat'); t_start=0; t_stop=24*3600; orbitEpoch=t_start; dt=60; a=6928.137*1000; e=0.0; i=53.0*pi/180; w=0*pi/180; Raan=160*pi/180; M=0*pi/180; stkSetPropClassical('*/Satellite/SeedSat','J4Perturbation','J2000',t_start,t_stop,dt,orbitEpoch,a,e,i,w,Raan,M); % 添加衛星傳感器并設置傳感器參數 stkNewObj('*/Satellite/SeedSat','Sensor','Sen'); strSetSensor = 'Conical 0 44.85 AngularRes 360.0'; stkConnect(conid,'Define','*/Satellite/SeedSat/Sensor/Sen',strSetSensor); % 衛星接收機(Complex_Receiver_Model/Phased_Array) stkNewObj('/*/Satellite/SeedSat/Sensor/Sen','Receiver','ULRcvr'); stkConnect(conid,'Receiver','*/Satellite/SeedSat/Sensor/Sen/Receiver/ULRcvr','SetValue Model Complex_Receiver_Model'); stkConnect(conid,'Receiver','*/Satellite/SeedSat/Sensor/Sen/Receiver/ULRcvr','SetValue Model.AntennaControl.Antenna Phased_Array'); % 衛星數字轉發器(Multibeam_Transmitter_Model/Phased_Array) stkNewObj('*/Satellite/SeedSat/Sensor/Sen','Transmitter','DLXmtr'); stkConnect(conid,'Transmitter','*/Satellite/SeedSat/Sensor/Sen/Transmitter/DLXmtr','SetValue Model Multibeam_Transmitter_Model'); stkConnect(conid,'Transmitter','*/Satellite/SeedSat/Sensor/Sen/Transmitter/DLXmtr','SetValue Model.Frequency 13.5 GHz'); stkConnect(conid,'Transmitter','*/Satellite/SeedSat/Sensor/Sen/Transmitter/DLXmtr','SetValue Model.UseFilter true'); stkConnect(conid,'Transmitter','*/Satellite/SeedSat/Sensor/Sen/Transmitter/DLXmtr','Setvalue Model.Filter.LowerBandwidthLimit -0.125 GHz'); stkConnect(conid,'Transmitter','*/Satellite/SeedSat/Sensor/Sen/Transmitter/DLXmtr','Setvalue Model.Filter.UpperBandwidthLimit 0.125 GHz'); NumBeams = 2; % 3 beams for k = 0:NumBeamsstkConnect(conid,'Transmitter','*/Satellite/SeedSat/Sensor/Sen/Transmitter/DLXmtr','AddItem Model.AntennaSystem.AntennaBeams'); end for k = 0:NumBeamsstrNumBeams = int2str(k);stkConnect(conid,'Transmitter','*/Satellite/SeedSat/Sensor/Sen/Transmitter/DLXmtr',['Setvalue Model.AntennaSystem.AntennaBeams[' int2str(i) '].Power 10 dBW']);stkConnect(conid,'Transmitter','*/Satellite/SeedSat/Sensor/Sen/Transmitter/DLXmtr',['Setvalue Model.AntennaSystem.AntennaBeams[' int2str(i) '].Frequency 13500000000 Hz']);stkConnect(conid,'Transmitter','*/Satellite/SeedSat/Sensor/Sen/Transmitter/DLXmtr',['Setvalue Model.AntennaSystem.AntennaBeams[' int2str(i) '].AntennaControl.Orientation.AzimuthAngle ' int2str(i*30) ' deg']);stkConnect(conid,'Transmitter','*/Satellite/SeedSat/Sensor/Sen/Transmitter/DLXmtr',['Setvalue Model.AntennaSystem.AntennaBeams[' int2str(i) '].AntennaControl.Orientation.ElevationAngle ' int2str(40+i*20) ' deg']); % ElevationAngle的取值為-90°~90°stkConnect(conid,'Transmitter','*/Satellite/SeedSat/Sensor/Sen/Transmitter/DLXmtr',['Setvalue Model.AntennaSystem.AntennaBeams[' int2str(i) '].AntennaControl.Orientation.AboutBoresight Hold']); end % 用戶接收機(MultiBeam) stkNewObj('*','Place','User1'); stkConnect(conid,'SetPosition','*/Place/User1 Geodetic', '40 120 0.0 MSL'); stkNewObj('*/Place/User1','Sensor','user1_Sen'); stkNewObj('/*/Place/User1/Sensor/user1_Sen','Receiver','DLRcvr_User1'); stkConnect(conid,'Receiver','*/Place/User1/Sensor/user1_Sen/Receiver/DLRcvr_User1','SetValue Model Multibeam_Receiver_Model'); stkConnect(conid,'Receiver','*/Place/User1/Sensor/user1_Sen/Receiver/DLRcvr_User1','AddItem Model.AntennaSystem.AntennaBeams'); stkConnect(conid,'Receiver','*/Place/User1/Sensor/user1_Sen/Receiver/DLRcvr_User1','AddItem Model.AntennaSystem.AntennaBeams'); % 3 beams for k = 0:NumBeamsstrNumBeams = int2str(k);stkConnect(conid,'Receiver','*/Place/User1/Sensor/user1_Sen/Receiver/DLRcvr_User1',['Setvalue Model.AntennaSystem.AntennaBeams[' int2str(i) '].Frequency 13500000000 Hz']);stkConnect(conid,'Receiver','*/Place/User1/Sensor/user1_Sen/Receiver/DLRcvr_User1',['Setvalue Model.AntennaSystem.AntennaBeams[' int2str(i) '].AntennaControl.Orientation.AzimuthAngle ' int2str(i*25) ' deg']);stkConnect(conid,'Receiver','*/Place/User1/Sensor/user1_Sen/Receiver/DLRcvr_User1',['Setvalue Model.AntennaSystem.AntennaBeams[' int2str(i) '].AntennaControl.Orientation.ElevationAngle ' int2str(40+i*20) ' deg']); % ElevationAngle的取值為-90°~90°stkConnect(conid,'Receiver','*/Place/User1/Sensor/user1_Sen/Receiver/DLRcvr_User1',['Setvalue Model.AntennaSystem.AntennaBeams[' int2str(i) '].AntennaControl.Orientation.AboutBoresight Hold']); end % 生成walker星座 disp('生成walker星座'); nPlan = 5; %平面數 nPerPlan = 8; % 每個平面衛星數 nRANNSpreed = 1; % STK生成的衛星名稱為strSeedSat_**##,**代表平面數,##代表平面內衛星數 strSeedSat = 'SeedSat'; nFormatPlan = 1; nFormatPerPlan = 1; strFormatPlan = ['%0' int2str(nFormatPlan) 'd']; strFormatPerPlan = ['%0' int2str(nFormatPerPlan) 'd']; % 創建星座,命名為MyConst strWalkerSet = ['Delta ' int2str(nPlan) ' ' int2str(nPerPlan) ' ' int2str(nRANNSpreed) ' 360.0 Yes ConstellationName MyConst']; stkConnect(conid,'Walker', ['*/Satellite/' strSeedSat],strWalkerSet); stkConnect(conid,'New','/ */Constellation','Cons2'); % 衛星接收機組成星座Cons2 stkConnect(conid,'New','/ */Constellation','Cons3'); % 衛星發射機組成星座Cons3 stkConnect(conid,'New','/ */Constellation','SatSen_Cons'); % 衛星發射機組成星座SatSen_Cons for i = 1:nPlanfor j = 1:nPerPlanstrStarName = [strSeedSat num2str(i,strFormatPlan) num2str(j,strFormatPerPlan)];strSatReceiveCommand = ['*/Constellation/Cons2 Add Satellite/' strStarName '/Sensor/Sen/Receiver/ULRcvr'];stkConnect(conid,'Chains',strSatReceiveCommand);strSatTransmitterCommand = ['*/Constellation/Cons3 Add Satellite/' strStarName '/Sensor/Sen/Transmitter/DLXmtr'];stkConnect(conid,'Chains',strSatTransmitterCommand);strSatSensorCommand = ['*/Constellation/SatSen_Cons Add Satellite/' strStarName '/Sensor/Sen'];stkConnect(conid,'Chains',strSatSensorCommand);end end stkConnect(conid,'Point','*/Facility/ChengDu/Sensor/CHDU_Sen','Targeted Tracking Constellation/Cons2'); stkConnect(conid,'Chains','*/Constellation/Cons4','Add Place/User1/Sensor/user1_Sen/Receiver/DLRcvr_User1'); stkClose(conid);

總結

以上是生活随笔為你收集整理的MATLAB与STK互联搭建LEO卫星星座(connect方法)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。