45 lines
1.4 KiB
Matlab
45 lines
1.4 KiB
Matlab
satSim = create_satellite_sim(satConfig, groundStation);
|
|
% viewer = satelliteScenarioViewer(satSim.sc);
|
|
|
|
sampleTimes = satConfig.startTime:seconds(satConfig.sampleTime):satConfig.stopTime;
|
|
distancesToSat = zeros(size(sampleTimes));
|
|
elevationAnglesToSat = zeros(size(sampleTimes));
|
|
|
|
progressStartText = "Starting ...";
|
|
f = waitbar(0, progressStartText, "Name", "Task 1");
|
|
|
|
progressTotal = numel(sampleTimes);
|
|
progressQueue = parallel.pool.DataQueue;
|
|
|
|
parfor_waitbar(f, progressTotal, progressStartText, true);
|
|
progressListener = afterEach(progressQueue, @(info) parfor_waitbar(f, progressTotal, info, false));
|
|
|
|
parfor idx = 1:numel(sampleTimes)
|
|
res = perform_access_analysis(satSim, sampleTimes(idx));
|
|
distancesToSat(idx) = res.distanceToSatellite;
|
|
elevationAnglesToSat(idx) = res.elevationAngleToSatellite;
|
|
send(progressQueue, sprintf("Index %d", idx));
|
|
end
|
|
|
|
delete(progressListener);
|
|
if ishandle(f)
|
|
close(f);
|
|
end
|
|
|
|
figure;
|
|
plot(sampleTimes, distancesToSat);
|
|
grid on;
|
|
xlabel("Time [s]");
|
|
ylabel("Distance to Satellite [m]");
|
|
title("Distance over time plot of satellite pass");
|
|
|
|
figure;
|
|
plot(sampleTimes, elevationAnglesToSat);
|
|
grid on;
|
|
xlabel("Time [s]");
|
|
ylabel("Elevation angle to satellite [degree]");
|
|
title("Elevation angle over time plot of satellite pass");
|
|
|
|
accessAnalysisResults.times = sampleTimes;
|
|
accessAnalysisResults.distances = distancesToSat;
|
|
accessAnalysisResults.elevationAngles = elevationAnglesToSat; |