nPlateModel#
- class nPlateModel(plates_config_path: str)#
Bases:
objectDefines a flat plate model used to represent the spacecraft structure for calculating solar radiation pressure acting on it.
The SRP force on a single plate of area \(A\) with reflectivity coefficient \(C_r\), illuminated at angle of incidence \(\theta\) from the sun, is
\[\mathbf{F}_{SRP} = \frac{P_{sun}\,A\cos\theta}{c} \bigl[(1 - C_r)\,\hat{\ell} + 2C_r\cos\theta\,\hat{n}\bigr]\]where \(P_{sun}\) is the solar radiation pressure at 1 AU, \(c\) is the speed of light, \(\hat{\ell}\) is the unit sun-direction vector, and \(\hat{n}\) is the outward plate normal. The total SRP force on the spacecraft is the vector sum over all illuminated plates.
- Parameters:
plates_config_path (
str) – Path to a JSON file containing all necessary information to configure the N-plate model. See Notes section for more information on configuration file formatting.
See also
scarabaeus.SpacecraftAssign an nPlateModel to a craft.
scarabaeus.nPlateSRPCalculate solar radiation pressure.
Notes
The N-plate model requires a JSON file with the following properties:
names: an array of strings defining the name of each plate in the configuration.areas: an array of numbers defining the area, in square kilometers, of each plate in the configuration.ref coeffs: an array of numbers defining the reflectivity coefficient of each plate in the configuration.abs coeffs: an array of numbers defining the absorption coefficient of each plate in the configuration.dref coeffs: an array of numbers defining the diffuse reflection coefficient of each plate in the configuration.sref coeffs: an array of numbers defining the specular reflection coefficient of each plate in the configuration.normal vectors: an array of numerical 3-element arrays defining the components of the normal vector (u vector) for each plate in the configuration. For CK frames, the array defines the normal vector to be rotated by the quaternion derived from its respective C-kernel.types: an array of strings where"Fixed"defines a static plate."CK"defines a time-variant plate with associated reference frame defined by a SPICE C-matrix kernel.
ids: an array of integers and/or nulls, wherea null defines a Fixed plate — it has no NAIF integer code.
an integer defines the NAIF ID of a CK plate.
Note
The
abs,dref, andsrefmust sum to unity for each plate.Following this format, an example plate configuration file looks like:
{ "names" : ["plusX" , "minusX" , "SA1" ], "areas" : [10 , 10 , 10 ], "ref coeffs" : [1.5 , 1.5 , 1.1 ], "abs coeffs" : [0.33 , 0.33 , 0.33 ], "dref coeffs" : [0.33 , 0.33 , 0.33 ], "sref coeffs" : [0.34 , 0.34 , 0.34 ], "normal vectors" : [[1, 0, 0], [-1, 0, 0], [1, 0, 0]], "types" : ["Fixed" , "Fixed" , "CK" ], "ids" : [null , null , -64001 ] }
References
- Attributes:
abs_ref_coeffsThe absorption coefficients of each plate in the N-plate model.
areasThe surface are of each plate in the N-plate model.
diff_ref_coeffsThe diffuse reflection coefficients of each plate in the N-plate model.
namesThe names of each panel defined in the N-plate model.
normalsThe normal vectors of each plate in the N-plate model.
plate_idsThe NAIF integer code for each plate in the N-plate model.
plate_typesThe type of each plate in the N-plate model.
ref_coeffsThe reflectivity coefficients of each plate in the N-plate model.
spec_ref_coeffsThe specular reflection coefficients of each plate in the N-plate model.
Methods
get_all_normals(epoch, sc_id)Queries the normal vectors of each panel in the N-plate model at a given epoch.
- get_all_normals(epoch, sc_id: int)#
Queries the normal vectors of each panel in the N-plate model at a given epoch.
- Parameters:
epoch (
EpochArray) – The epoch at which to query the C-kernel in ephemeris time (TDB) for all CK type panels in the model.sc_id (
int) – NAIF spacecraft ID code for the craft C-kernel plates are attached to. Required to convert to encoded SCLK ticks.
- Returns:
normals – A list of normals for each panel in the model.
- Return type:
- property abs_ref_coeffs: list[float]#
The absorption coefficients of each plate in the N-plate model.
- property areas: list[ArrayWUnits]#
The surface are of each plate in the N-plate model. Expressed in units of \(km^2\).
- property diff_ref_coeffs: list[float]#
The diffuse reflection coefficients of each plate in the N-plate model.
- property plate_ids: list[int | None]#
The NAIF integer code for each plate in the N-plate model. Fixed type plates have no associated ID, therefore all plate ID’s of the respective type are
None. All CK type plate ID’s are given asint.