post_processing
propagate_trajectory_results(params: dict, settings: Config, result: OptimizationResults, propagation_solver: callable, dynamics_discrete: Optional[Callable] = None, algebraic_prop: Optional[dict] = None, discretizer: Optional[Discretizer] = None) -> OptimizationResults
¶
Propagate the optimal trajectory and compute additional results.
This function takes the optimal control solution and propagates it through the nonlinear dynamics to compute the actual state trajectory and other metrics.
When states_prop includes propagation-only states (e.g. via dynamics_prop /
states_prop), x_full has shape (n_times, n_prop_states) with
n_prop_states > n_opt_states. The discrete dynamics and cost use only the
optimization-state portion; propagation-only states are preserved from the last
propagated step and included in trajectory.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
params
|
dict
|
System parameters. |
required |
settings
|
Config
|
Configuration settings. |
required |
result
|
OptimizationResults
|
Optimization results object. |
required |
propagation_solver
|
callable
|
Function for propagating the system state. |
required |
dynamics_discrete
|
callable
|
Discrete dynamics map used to apply node-wise impulsive/discrete updates before continuous propagation. |
None
|
algebraic_prop
|
dict
|
Dictionary mapping output names to vmapped JAX functions. |
None
|
discretizer
|
Optional[Discretizer]
|
Discretizer instance (used for |
None
|
Returns:
| Name | Type | Description |
|---|---|---|
OptimizationResults |
OptimizationResults
|
Updated results object containing: - t_full: Full time vector - x_full: Full state trajectory - u_full: Full control trajectory - cost: Computed cost - ctcs_violation: CTCS constraint violation - trajectory: Dict containing each variables values at full propagation fidelity |
Source code in openscvx/propagation/post_processing.py
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 | |