Configuration Versions

After connecting to SOLIS, you are able to try versioning of your configurations. Creating multiple configuration versions may be useful to test what configuration works best for your spacecraft. SOLIS provides an easy way to create this versioning on the Configuration Manager page, but you are also able to set versions via automation as shown below.

Windows PowerShell

Make copy of default Version

On Component FOB_CtrlParms_Attitude_Standard, make a copy of the default Version and call the copy "Version1"

$version = $newConfig.GetComponentVersion("FOB_CtrlParms_Attitude_Standard"); # Get the current version of the Component (the default version)
$version1 = $version.Copy("Version1"); # Make copy of default version, call it Version1

Copy Version

Copy "Version1" and call the copy "Version2"

$version2 = $version1.Copy("Version2"); # Copy Version1 to make Version2

Change Version parameter value

Change the parameter B_ResetOnModeChange of "Version1" to 0.

$boolParam = $version1.GetParameter("B_ResetOnModeChange"); # Get parameter
$boolParam.Value = 0; # Change B_ResetOnModeChange parameter value to 0 (false)

Change the parameter V_LoopGain_ATC_kgm2 of "Version2" to (1000000, 1000000, 1000000).

This value is set to show that the attitude system becomes unstable, which is noticeable when the simulation is run with "Version2".

$vecParam = $version2.GetParameter("V_LoopGain_ATC_kgm2"); # Get parameter
$vecParam.Value.Value = 1000000,1000000,1000000; # Change V_LoopGain_ATC_kgm2 parameter value

Run the simulation

Run with "Version1" active and wait until it finishes.

$newConfig.SetActive($version1); # Set Version1 as the active version for Component FOB_CtrlParms_Attitude_Standard
$newConfig.Run(); # Run the simulation
$newConfig.WaitForSimulationEnd(); # Wait until it finishes

Rerun the simulation with "Version2" active and wait until it finishes.

$newConfig.SetActive($version2); # Set Version2 as the active version for Component FOB_CtrlParms_Attitude_Standard
$newConfig.Run(); # Run the simulation
$newConfig.WaitForSimulationEnd(); # Wait until it finishes
Python

Make copy of default Version

On Component FOB_CtrlParms_Attitude_Standard, make a copy of the default Version and call the copy "Version1"

version = newConfig.GetComponentVersion("FOB_CtrlParms_Attitude_Standard") # Get the current version of the Component (the default version)
version1 = version.Copy("Version1") # Make copy of default version, call it Version1

Copy Version

Copy "Version1" and call the copy "Version2"

version2 = version1.Copy("Version2") # Copy Version1 to make Version2

Change Version parameter value

Change the parameter B_ResetOnModeChange of "Version1" to 0.

boolParam = version1.GetParameter("B_ResetOnModeChange") # Get parameter
boolParam.Value = 0 # Change B_ResetOnModeChange parameter value to 0 (false)

Change the parameter V_LoopGain_ATC_kgm2 of "Version2" to (1000000, 1000000, 1000000).

This value is set to show that the attitude system becomes unstable, which is noticeable when the simulation is run with "Version2".

vecParam = version2.GetParameter("V_LoopGain_ATC_kgm2") # Get parameter
vecParam.Value.Value = Array[float]([1000000,1000000,1000000]) # Change V_LoopGain_ATC_kgm2 parameter value

Run the simulation

Run with "Version1" active and wait until it finishes.

newConfig.SetActive(version1) # Set Version1 as the active version for Component FOB_CtrlParms_Attitude_Standard
newConfig.Run() # Run the simulation
newConfig.WaitForSimulationEnd() # Wait until it finishes

Rerun the simulation with "Version2" active and wait until it finishes.

newConfig.SetActive(version2) # Set Version2 as the active version for Component FOB_CtrlParms_Attitude_Standard
newConfig.Run() # Run the simulation
newConfig.WaitForSimulationEnd() # Wait until it finishes
C#

Make copy of default Version

On Component FOB_CtrlParms_Attitude_Standard, make a copy of the default Version and call the copy "Version1"

var version = newConfig.GetComponentVersion("FOB_CtrlParms_Attitude_Standard"); // Get the current version of the Component (the default version)
var version1 = version.Copy("Version1"); // Make copy of default version, call it Version1

Copy Version

Copy "Version1" and call the copy "Version2"

var version2 = version1.Copy("Version2"); // Copy Version1 to make Version2

Change Version parameter value

Change the parameter B_ResetOnModeChange of "Version1" to 0.

var boolParam = (STKSolis.Automation.Client.Version.Parameter<int>)version1.GetParameter("B_ResetOnModeChange"); // Get parameter
boolParam.Value = 0; // Change B_ResetOnModeChange parameter value to 0 (false)

Change the parameter V_LoopGain_ATC_kgm2 of "Version2" to (1000000, 1000000, 1000000).

This value is set to show that the attitude system becomes unstable, which is noticeable when the simulation is run with "Version2".

var vecParam = (STKSolis.Automation.Client.Version.Parameter<Vector>)version2.GetParameter("V_LoopGain_ATC_kgm2"); // Get parameter
vecParam.Value.Value = new double[] { 1000000, 1000000, 1000000 }; // Change V_LoopGain_ATC_kgm2 parameter value

Run the simulation

Run with "Version1" active and wait until it finishes.

newConfig.SetActive(version1); // Set Version1 as the active version for Component FOB_CtrlParms_Attitude_Standard
newConfig.Run(); // Run the simulation
newConfig.WaitForSimulationEnd(); // Wait until it finishes

Rerun the simulation with "Version2" active and wait until it finishes.

newConfig.SetActive(version2); // Set Version2 as the active version for Component FOB_CtrlParms_Attitude_Standard
newConfig.Run(); // Run the simulation
newConfig.WaitForSimulationEnd(); // Wait until it finishes
MATLAB

Make copy of default Version

On Component FOB_CtrlParms_Attitude_Standard, make a copy of the default Version and call the copy "Version1"

version = newConfig.GetComponentVersion('FOB_CtrlParms_Attitude_Standard') % Get the current version of the Component (the default version)
version1 = version.Copy('Version1') % Make copy of default version, call it Version1

Copy Version

Copy "Version1" and call the copy "Version2"

version2 = version1.Copy('Version2') % Copy Version1 to make Version2

Change Version parameter value

Change the parameter B_ResetOnModeChange of "Version1" to 0.

boolParam = version1.GetParameter('B_ResetOnModeChange'); % Get parameter
boolParam.Value = 0; % Change B_ResetOnModeChange parameter value to 0 (false)

Change the parameter V_LoopGain_ATC_kgm2 of "Version2" to (1000000, 1000000, 1000000).

This value is set to show that the attitude system becomes unstable, which is noticeable when the simulation is run with "Version2".

vecParam = version2.GetParameter('V_LoopGain_ATC_kgm2'); % Get parameter
vecParam.Value.Value = [1000000 1000000 1000000]; % Change V_LoopGain_ATC_kgm2 parameter value

Run the simulation

Run with "Version1" active and wait until it finishes.

newConfig.SetActive(version1); % Set Version1 as the active version for Component FOB_CtrlParms_Attitude_Standard
newConfig.Run(); % Run the simulation
newConfig.WaitForSimulationEnd(); % Wait until it finishes

Rerun the simulation with "Version2" active and wait until it finishes.

newConfig.SetActive(version2); % Set Version2 as the active version for Component FOB_CtrlParms_Attitude_Standard
newConfig.Run(); % Run the simulation
newConfig.WaitForSimulationEnd(); % Wait until it finishes