这个例子演示了如何建立一个地面站和卫星星座上的锥形传感器之间的访问分析。地面站和锥形传感器属于卫星据说访问另一个如果地面站在锥形传感器的视场和锥形传感器的仰角对地面站大于或等于后者的最低仰角。该方案包括一个由40颗近地轨道卫星组成的星座和一个地理位置。每颗卫星都有一个90度视场的照相机。整个卫星星座的任务是拍摄位于北纬42.3001度和西经71.3504度的地理位置。这些照片需要在2020年5月12日下午1时(国际标准时间)至2020年5月12日下午7时(国际标准时间)期间拍摄,此时场地被太阳充分照明。为了在最小的大气失真的情况下拍摄到高质量的图片,卫星相对于该地点的仰角应至少为30度(请注意30度是为了说明目的而任意选择的)。在这6小时的间隔期间,需要确定每颗卫星可以拍摄该地点的时间。还需要确定在这段时间内,至少有一颗卫星的摄像机可以看到该地点的时间百分比。这个百分比的数量称为系统范围的访问百分比。
使用创建一个卫星场景satelliteScenario
.使用datetime
设置开始时间为12-May-2020下午1:00:00 UTC,停止时间为12-May-2020下午7:00:00 UTC。将模拟示例时间设置为30秒。
开始时间= datetime(2020、5、12、13日,0,0);stopTime = startTime + hours(6);sampleTime = 30;%秒sc = satelliteScenario(开始时间、stopTime sampleTime)
sc =卫星场景与属性:StartTime: 12-May-2020 13:00:00 StopTime: 12-May-2020 19:00:00 SampleTime: 30观众:[0×0 matlabshared.卫星场景。卫星:[1×0 matlabshared.卫星场景。地面站:[1×0 matlabshared.satellitescenario.]GroundStation]汽车展:1
使用卫星
从TLE文件向场景中添加卫星leoSatelliteConstellation.tle
.TLE文件定义了40颗普通卫星在近圆低地球轨道上的平均轨道参数,其高度和倾角分别约为500公里和55度。
tleFile =“leoSatelliteConstellation.tle”;tleFile坐=卫星(sc)
卫星阵列具有属性:名称ID圆锥传感器Gimbals发射器接收器访问地面轨道轨道传播器markcolor marksize ShowLabel LabelFontColor LabelFontSize
使用conicalSensor
给每个卫星加一个锥形传感器。这些锥形传感器代表摄像头。指定他们MaxViewAngle
为90度,这定义了视场。
为null = 1: null = 1;名称+“相机”;conicalSensor(坐(idx),“名称”、名称、“MaxViewAngle”, 90);结束找回相机凸轮= [sat.ConicalSensors]
cam = 1x40圆锥传感器阵列属性:Name ID MountingLocation MountingAngles MaxViewAngle访问FieldOfView
使用groundStation
增加一个地面站,它代表要拍摄的地理位置。指定其MinElevationAngle
30度。如果不指定经纬度,则默认为北纬42.3001度,西经71.3504度。
name =“地理网站”;minElevationAngle = 30;%度geoSite = groundStation (sc,...“名称”、名称、...“MinElevationAngle”minElevationAngle)
geoSite =地站属性:名称:地理站点ID: 81纬度:42.3度经度:-71.35度海拔:0米MinElevationAngle: 30度ConicalSensors: [1x0 matlabshare .satellitescenario.]Gimbals: [1x0 matlabshared.卫星场景。发射器:[1x0 satcom.卫星场景。接收器:[1x0 satcom.卫星场景。访问:[1x0 matlabshared.卫星场景。Access] markcolor: [0 1 1] marksize: 10 ShowLabel: true LabelFontColor: [0 1 1] LabelFontSize: 15
使用访问
在每个摄像头和地理位置之间添加访问分析。访问分析将用于确定每台相机何时可以拍摄该地点。
为idx = 1:numel(cam) access(cam(idx),geoSite);结束%获取访问分析对象ac = [cam.Accesses];%访问分析对象属性交流(1)
ans =访问属性:Sequence: [41 81] LineWidth: 1 lineccolor: [0.5 0 1]
使用satelliteScenarioViewer
发射卫星场景查看器并将场景可视化。
v = satelliteScenarioViewer (sc);
查看器可以作为场景已正确设置的可视化确认。紫色的线表示四号卫星上的摄像头和地理位置上的摄像头可以相互访问。这意味着该地理位置在相机的视野范围内,相机相对于该地点的仰角大于或等于30度。对于本场景的目的,这意味着相机可以成功地拍摄站点。
使用fieldOfView
可视化4号卫星上每个摄像头的视场。
fov = fieldOfView (cam([凸轮。名称]= =“卫星相机4”))
fov = FieldOfView with properties: LineWidth: 1 LineColor: [0 1 0] VisibilityMode: 'inherit'
轮廓线内的地理位置的存在是一个视觉上的确认,它是在4号卫星上的相机的视野内。
使用隐藏
隐藏卫星轨道,使图像更加清晰。
隐藏([sat.Orbit]);
将访问可视化的颜色更改为绿色。
为Idx = 1:numel(ac) ac(Idx)LineColor =“绿色”;结束
使用accessIntervals
确定每个摄像头与地理位置之间的访问时间。这是相机可以拍摄现场的时候。
accessIntervals (ac)
ans =30×8表源目标IntervalNumber开始时间EndTime时间StartOrbit EndOrbit _____________________ ___________________ ______________ ____________________ ____________________ ________ __________ ________ " 卫星1照相机”“地理网站“1 12 - 2020年5月——13:36:00 12 - 210年5月- 2020年13:39:30 1 1”卫星1照相机”“地理网站”212-May-2020 13:28:30 12-May-2020 13:34:30 240 1 1 "Satellite 4 Camera" "Geographical Site" 1 12-May-2020 13:28:30 12-May-2020 13:34:30 240 1 1 "Satellite 4 Camera" "Geographical Site" 112-May-2020 16:28:30 12-May-2020 16:33:00 270 33 "Satellite 6 Camera" "Geographical Site" 1 12-May-2020 16:05:30 12-May-2020 17:09:30 240 33 "Satellite 7 Camera" "Geographical Site" 1 12-May-2020 16:20:00 12-May-2020 16:24:30 270 2"Satellite 8 Camera" "Geographical Site" 1 12-May-2020 15:18:00 12-May-2020 15:20:00 120 2 2 "Satellite 8 Camera" "Geographical Site" 2 12-May-2020 17:03:30 12-May-2020 17:07:00 210 3 3 "Satellite 9 Camera" "Geographical Site" 1 12-May-2020 17:55:30 12-May-2020 17:57:00 90 3 3 "Satellite 10 Camera" "Geographical Site" 1 12-May-2020 18:44:30 12-May-2020 18:49:00 270 4 4 "Satellite 11 Camera" "Geographical Site" 1 12-May-2020 18:39:30 12-May-2020 18:44:00 270 4 4 "Satellite 12 Camera" "Geographical Site" 1 12-May-2020 17:58:00 12-May-2020 18:01:00 180 3 3 "Satellite 29 Camera" "Geographical Site" 1 12-May-2020 13:09:30 12-May-2020 13:13:30 240 1 1 ⋮
上表包含了一个给定的相机可以拍摄场地的每个间隔的开始和结束时间。每个间隔的持续时间将以秒为单位报告。StartOrbit和EndOrbit是当访问开始和结束时相机所连接的卫星的轨道计数。计数从场景开始时间开始。
使用玩
将场景从开始时间到停止时间的模拟可视化。可以看出,每当相机可以拍摄地理位置时,绿线就会出现。
玩(sc);
除了确定每个相机可以拍摄地理站点的时间外,还需要确定系统范围的访问百分比,即从场景开始时间到至少一颗卫星可以拍摄站点的停止时间的百分比。计算方法如下:
对于每个摄像头,计算访问状态历史站点使用accessStatus
.对于给定的摄像机,这是一个逻辑行向量,向量中的每个元素表示对应于给定时间样本的访问状态。的值真正的
表明摄像机可以拍摄该地点在该特定时间样本。
执行逻辑或
在所有这些行向量上对应每个摄像机对站点的访问。这将产生一个逻辑的单行向量,其中,如果至少有一个摄像机可以在一个场景样本时间为30秒的时间内,在相应的时间样本中拍摄场地,则给定元素为真。
计算值为的向量中元素的数量真正的
.将这个数值乘以30秒的采样时间,以确定当至少有一台相机可以拍摄该站点时的总时间(秒)。
将这个数量除以6小时的场景持续时间,然后乘以100,就得到系统范围的访问百分比。
为id = 1:numel(ac) [s,time] = accessStatus(ac(idx));如果idx = = 1%在第一次迭代中初始化系统范围的访问状态向量systemWideAccessStatus = s;其他的%通过执行逻辑或更新系统范围的访问状态向量%,其访问状态为当前摄像头站点访问%的分析systemWideAccessStatus =或(systemWideAccessStatus s);结束结束
使用情节
绘制系统范围内的访问状态与时间的关系图。
情节(时间、systemWideAccessStatus“线宽”2);网格在;包含(“时间”);ylabel (“系统范围的访问状态”);
当系统范围的访问状态为1时(真正的
),至少有一台相机可以拍摄该网站。
使用nnz
确定中元素的数量systemWideAccessStatus
的值是真正的
.
n = nnz (systemWideAccessStatus)
n = 203
确定至少有一台相机可以拍摄场地的总时间。这是通过乘以的数量来实现的真正的
元素由场景的示例时间决定。
systemWideAccessDuration = n * sc。SampleTime%秒
systemWideAccessDuration = 6090
使用秒
计算场景总时长。
scenarioDuration =秒(sc。StopTime - sc.StartTime)
scenarioDuration = 21600
计算系统访问百分比。
systemWideAccessPercentage = (systemWideAccessDuration / scenarioDuration) * 100
systemWideAccessPercentage = 28.1944
卫星的默认姿态是这样的:它们的偏航轴直接指向最低点(即卫星正下方的地球上的点)。由于相机默认与偏航轴对齐,它们也指向垂直向下。因此,在相机的仰角低于30度之前,地理位置就超出了相机的视野范围。因此,累计访问百分比受到相机视场的限制。
相反,如果相机总是指向那个地理位置,那么只要地球不挡住视线,后者就总是在相机的视野之内。因此,全系统的访问百分比现在将受到MinElevationAngle
而不是摄像机的视野。在前一种情况下,当场地进入和离开摄像机的视野时,访问间隔开始和结束。它在相机仰角超过30度后进入视场,在它的仰角低于30度之前离开视场。然而,如果摄像机一直指向场地,则进入间隔将在仰角超过30度时开始,在仰角低于30度时结束,从而增加间隔的持续时间。因此,整个系统的访问百分比也将增加。
由于照相机被严格地固定在卫星上,每颗卫星都需要沿着其轨道不断地调整方向,以便其偏航轴跟踪地理位置。当相机与偏航轴对齐时,它们也会指向现场。使用pointAt
使每个卫星的偏航轴跟踪地理位置。
为idx = 1:numel(sat) pointAt(sat(idx),geoSite);结束
重新计算系统范围的访问百分比。
%计算全系统访问状态为id = 1:numel(ac) [s,time] = accessStatus(ac(idx));如果idx = = 1%在第一次迭代中初始化系统范围的访问状态向量systemWideAccessStatus = s;其他的%通过执行逻辑或更新系统范围的访问状态向量%与当前相机-网站组合的访问状态systemWideAccessStatus =或(systemWideAccessStatus s);结束结束%计算系统访问百分比n = nnz (systemWideAccessStatus);systemWideAccessDuration = n * sc.SampleTime;systemWideAccessPercentageWithTracking = (systemWideAccessDuration / scenarioDuration) * 100
systemWideAccessPercentageWithTracking = 38.3333
整个系统的访问百分比提高了约36%。这是摄像机不断指向地理位置的结果。这可以通过使用玩
一次。
玩(sc)
视场轮廓不再是圆形的,因为相机不再直指向下,因为它正在跟踪地理位置。
这个例子演示了如何确定星座中卫星上的相机可以拍摄地理位置的时间。摄像机使用锥形传感器建模,并使用访问分析来计算摄像机拍摄场地的时间。此外,还计算了全系统访问百分比,以确定在6小时内至少有一颗卫星可以拍摄该站点的时间百分比。可以看出,这些结果取决于相机指向的方向。
这些结果也是一个函数:
卫星轨道
MinElevationAngle
地理位置的
安装位置和相机相对于卫星的位置
视场(MaxViewAngle
),如果它们不是连续地指向地理位置
根据您的需求修改上述参数,并观察它们对访问间隔和系统访问百分比的影响。通过使用开普勒轨道元素来明确指定卫星的轨道,可以改变卫星的轨道卫星
.此外,摄像头可以安装在平衡环
它可以独立于卫星进行旋转。通过这种方式,卫星可以垂直向下(默认行为),而gimbals可以配置,以便相机独立跟踪地理位置。