How do I use SatelliteScenario Groundstation objects inside of a Parallel Computing Toolbox parfor loop

조회 수: 3 (최근 30일)
I would like to compute access for a groundstation with multiple constellations using the Parallel Computing Toolbox. However, this simple example is not working. What am I doing wrong?
parfor idx = 1:2
startTime = datetime("today");
stopTime = startTime + days(1);
sampleTime = 60;
aScenario = satelliteScenario(startTime, stopTime, sampleTime);
aGroundstation = aScenario.groundStation(0, 0);
end
Here's the error I am getting:
>> SimpleTest
Error using matlabshared.satellitescenario.GroundStation
Invalid default value for property 'ColorConverter' in class 'matlabshared.satellitescenario.ScenarioGraphic':
Error defining property 'ConvertedColor' of class 'matlabshared.satellitescenario.internal.ColorConverter'. Class named
'matlab.graphics.datatype.RGBColor' is undefined or does not support property validation.
Error in satelliteScenario/groundStation
Error in SimpleTest (line 1)
parfor idx = 1:2
Thank you!
  댓글 수: 1
KRALFALLAH Mansour
KRALFALLAH Mansour 2022년 4월 24일
Hello everyone,
I use Matlab 2020a, pls could you tell me in which version can I find the aerospace blocksets toolbox which countains the Spacecraft and orbit propagator blocksets.
Thank you in advance.

댓글을 달려면 로그인하십시오.

채택된 답변

Edric Ellis
Edric Ellis 2021년 10월 15일
Thanks for reporting this problem. You can work around this for now like so:
fetchOutputs(parfevalOnAll(@() delete(figure), 0));
  댓글 수: 3
Edric Ellis
Edric Ellis 2021년 10월 15일
Just run that line after you open your pool, and before you run the parfor loop, like this:
% Explicitly create the parallel pool, if necessary
if isempty(gcp('nocreate'))
parpool();
% Work around problems by creating and immediately deleting a figure
fetchOutputs(parfevalOnAll(@() delete(figure), 0));
end
% Run stuff in parfor
parfor idx = 1:2
startTime = datetime("today");
stopTime = startTime + days(1);
sampleTime = 60;
aScenario = satelliteScenario(startTime, stopTime, sampleTime);
aGroundstation = aScenario.groundStation(0, 0);
end

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Get Started with Aerospace Blockset에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by