|
STAR
Cal STAR — firmware, DAQ server, and engine design
|
Classes | |
| class | DynamicsParams |
Functions | |
| np.ndarray | step (np.ndarray x, np.ndarray u, float dt, DynamicsParams params, float mdot_F, float mdot_O) |
| Tuple[np.ndarray, np.ndarray] | linearize (np.ndarray x, np.ndarray u, float dt, DynamicsParams params, float mdot_F, float mdot_O, float eps=1e-6) |
Variables | |
| int | IDX_P_COPV = 0 |
| int | IDX_P_REG = 1 |
| int | IDX_P_U_F = 2 |
| int | IDX_P_U_O = 3 |
| int | IDX_P_D_F = 4 |
| int | IDX_P_D_O = 5 |
| int | IDX_V_U_F = 6 |
| int | IDX_V_U_O = 7 |
| int | IDX_M_GAS_COPV = 8 |
| int | IDX_M_GAS_F = 9 |
| int | IDX_M_GAS_O = 10 |
| int | IDX_U_F = 0 |
| int | IDX_U_O = 1 |
| int | N_STATE = 11 |
| int | N_CONTROL = 2 |
Discrete-time dynamics model for robust DDP controller. State vector: x = [P_copv, P_reg, P_u_F, P_u_O, P_d_F, P_d_O, V_u_F, V_u_O, m_gas_copv, m_gas_F, m_gas_O] Control: u = [u_F, u_O] in [0, 1] Gas masses are tracked for proper mass conservation and blowdown physics.
| Tuple[np.ndarray, np.ndarray] engine.control.robust_ddp.dynamics.linearize | ( | np.ndarray | x, |
| np.ndarray | u, | ||
| float | dt, | ||
| DynamicsParams | params, | ||
| float | mdot_F, | ||
| float | mdot_O, | ||
| float | eps = 1e-6 ) |
Linearize dynamics via finite differences.
Computes A and B matrices such that:
x[k+1] ≈ A @ x[k] + B @ u[k] + c
Parameters:
-----------
x : np.ndarray, shape (N_STATE,)
State vector
u : np.ndarray, shape (N_CONTROL,)
Control vector
dt : float
Time step [s]
params : DynamicsParams
Dynamics parameters
mdot_F : float
Fuel mass flow rate [kg/s]
mdot_O : float
Oxidizer mass flow rate [kg/s]
eps : float
Finite difference step size
Returns:
--------
A : np.ndarray, shape (N_STATE, N_STATE)
State Jacobian matrix
B : np.ndarray, shape (N_STATE, N_CONTROL)
Control Jacobian matrix
Definition at line 797 of file dynamics.py.
References step().
| np.ndarray engine.control.robust_ddp.dynamics.step | ( | np.ndarray | x, |
| np.ndarray | u, | ||
| float | dt, | ||
| DynamicsParams | params, | ||
| float | mdot_F, | ||
| float | mdot_O ) |
Discrete-time dynamics step.
Parameters:
-----------
x : np.ndarray, shape (N_STATE,)
Current state: [P_copv, P_reg, P_u_F, P_u_O, P_d_F, P_d_O, V_u_F, V_u_O, m_gas_copv, m_gas_F, m_gas_O]
u : np.ndarray, shape (N_CONTROL,)
Control input: [u_F, u_O] in [0, 1]
dt : float
Time step [s]
params : DynamicsParams
Dynamics parameters
mdot_F : float
Fuel mass flow rate [kg/s] (from engine physics)
mdot_O : float
Oxidizer mass flow rate [kg/s] (from engine physics)
Returns:
--------
x_next : np.ndarray, shape (N_STATE,)
Next state
Definition at line 116 of file dynamics.py.
Referenced by linearize().
| int engine.control.robust_ddp.dynamics.IDX_M_GAS_COPV = 8 |
Definition at line 27 of file dynamics.py.
| int engine.control.robust_ddp.dynamics.IDX_M_GAS_F = 9 |
Definition at line 28 of file dynamics.py.
| int engine.control.robust_ddp.dynamics.IDX_M_GAS_O = 10 |
Definition at line 29 of file dynamics.py.
| int engine.control.robust_ddp.dynamics.IDX_P_COPV = 0 |
Definition at line 19 of file dynamics.py.
| int engine.control.robust_ddp.dynamics.IDX_P_D_F = 4 |
Definition at line 23 of file dynamics.py.
| int engine.control.robust_ddp.dynamics.IDX_P_D_O = 5 |
Definition at line 24 of file dynamics.py.
| int engine.control.robust_ddp.dynamics.IDX_P_REG = 1 |
Definition at line 20 of file dynamics.py.
| int engine.control.robust_ddp.dynamics.IDX_P_U_F = 2 |
Definition at line 21 of file dynamics.py.
| int engine.control.robust_ddp.dynamics.IDX_P_U_O = 3 |
Definition at line 22 of file dynamics.py.
| int engine.control.robust_ddp.dynamics.IDX_U_F = 0 |
Definition at line 32 of file dynamics.py.
| int engine.control.robust_ddp.dynamics.IDX_U_O = 1 |
Definition at line 33 of file dynamics.py.
| int engine.control.robust_ddp.dynamics.IDX_V_U_F = 6 |
Definition at line 25 of file dynamics.py.
| int engine.control.robust_ddp.dynamics.IDX_V_U_O = 7 |
Definition at line 26 of file dynamics.py.
| int engine.control.robust_ddp.dynamics.N_CONTROL = 2 |
Definition at line 36 of file dynamics.py.
| int engine.control.robust_ddp.dynamics.N_STATE = 11 |
Definition at line 35 of file dynamics.py.