Models¶
The Prognostics Model Package is distributed with a few pre-constructed models that can be used in simulation or prognostics (with the prog_algs package). These models are summarized in the table below with additional detail in the following sections.
Contents
Models Summary¶
Events |
End of Discharge (EOD) |
|
|
|
Inputs / Loading |
Current (i) |
Current (i) |
|
|
Outputs / Measurements |
Voltage (v), Temp °C (t) |
Voltage (v), Temp °C (t) |
|
|
Battery Model - Circuit¶
- class prog_models.models.BatteryCircuit(**kwargs)¶
Vectorized prognostics model for a battery, represented by an equivilant circuit model as described in the following paper: M. Daigle and S. Sankararaman, “Advanced Methods for Determining Prediction Uncertainty in Model-Based Prognostics with Application to Planetary Rovers,” Annual Conference of the Prognostics and Health Management Society 2013, pp. 262-274, New Orleans, LA, October 2013. https://papers.phmsociety.org/index.php/phmconf/article/view/2253
- Events: (1)
EOD: End of Discharge
- Inputs/Loading: (1)
i: Current draw on the battery
- States: (4)
- tb : Battery Temperature (°C)qb : Charge stored in Capacitor Cb of the equivalent circuit modelqcp : Charge stored in Capacitor Ccp of the equivalent circuit modelqcs : Charge stored in Capacitor Ccs of the equivalent circuit model
- Outputs: (2)
- t: Temperature of battery (°C)v: Voltage supplied by battery
- Keyword Arguments
process_noise (Optional, float or Dict[Srt, float]) – Process noise (applied at dx/next_state). Can be number (e.g., .2) applied to every state, a dictionary of values for each state (e.g., {‘x1’: 0.2, ‘x2’: 0.3}), or a function (x) -> x
process_noise_dist (Optional, String) – distribution for process noise (e.g., normal, uniform, triangular)
measurement_noise (Optional, float or Dict[Srt, float]) – Measurement noise (applied in output eqn). Can be number (e.g., .2) applied to every output, a dictionary of values for each output (e.g., {‘z1’: 0.2, ‘z2’: 0.3}), or a function (z) -> z
measurement_noise_dist (Optional, String) – distribution for measurement noise (e.g., normal, uniform, triangular)
V0 (float) – Nominal Battery Voltage
Rp (float) – Battery Parasitic Resistance
qMax (float) – Maximum Charge
CMax (float) – Maximum Capacity
VEOD (float) – End of Discharge Voltage Threshold
Cbp3 (Cb0, Cbp0, Cbp1, Cbp2,) – Battery Capacity Parameters
Ccp (Rs, Cs, Rcp0, Rcp1, Rcp2,) – R-C Pair Parameter
Ta (float) – Ambient Temperature
Jt (float) – Temperature parameter
ha (float) – Heat transfer coefficient, ambient
hcp (float) – Heat transfer coefficient parameter
hcs (float) – Heat transfer coefficient - surface
x0 (Dict[Str, float]) – Initial state
Note
This is quicker but also less accurate as the electrochemistry model. We recommend using the electrochemistry model, when possible.
Battery Model - Electro Chemistry¶
There are three different flavors of Electro Chemistry Battery Models distributed with the package, described below
End of Discharge¶
- class prog_models.models.BatteryElectroChemEOD(**kwargs)¶
Vectorized prognostics model for a battery, represented by an electrochemical equations as described in the following paper: M. Daigle and C. Kulkarni, “Electrochemistry-based Battery Modeling for Prognostics,” Annual Conference of the Prognostics and Health Management Society 2013, pp. 249-261, New Orleans, LA, October 2013. https://papers.phmsociety.org/index.php/phmconf/article/view/2252. This model predicts the end of discharge event.
The default model parameters included are for Li-ion batteries, specifically 18650-type cells. Experimental discharge curves for these cells can be downloaded from the Prognostics Center of Excellence Data Repository https://ti.arc.nasa.gov/tech/dash/groups/pcoe/prognostic-data-repository/.
- Events: (1)
EOD: End of Discharge
- Inputs/Loading: (1)
i: Current draw on the battery
- States: (8)
- tb: Battery temperature (K)Vo: Voltage Drops due to Solid-Phase Ohmic ResistancesVsn: Negative Surface Voltage (V)Vsp: Positive Surface Voltage (V)qnB: Amount of Negative Ions at the Battery BulkqnS: Amount of Negative Ions at the Battery SurfaceqpB: Amount of Positive Ions at the Battery BulkqpS: Amount of Positive Ions at the Battery Surface
- Outputs/Measurements: (2)
- t: Temperature of battery (°C)v: Voltage supplied by battery
- Keyword Arguments
process_noise (Optional, float or Dict[Srt, float]) – Process noise (applied at dx/next_state). Can be number (e.g., .2) applied to every state, a dictionary of values for each state (e.g., {‘x1’: 0.2, ‘x2’: 0.3}), or a function (x) -> x
process_noise_dist (Optional, String) – distribution for process noise (e.g., normal, uniform, triangular)
measurement_noise (Optional, float or Dict[Srt, float]) – Measurement noise (applied in output eqn). Can be number (e.g., .2) applied to every output, a dictionary of values for each output (e.g., {‘z1’: 0.2, ‘z2’: 0.3}), or a function (z) -> z
measurement_noise_dist (Optional, String) – distribution for measurement noise (e.g., normal, uniform, triangular)
qMobile (float) –
xnMax (float) – Maximum mole fraction (neg electrode)
xnMin (float) – Minimum mole fraction (neg electrode)
xpMax (float) – Maximum mole fraction (pos electrode)
xpMin (float) – Minimum mole fraction (pos electrode) - note xn + xp = 1
Ro (float) – for Ohmic drop (current collector resistances plus electrolyte resistance plus solid phase resistances at anode and cathode)
alpha (float) – anodic/cathodic electrochemical transfer coefficient
Sn (float) – Surface area (- electrode)
Sp (float) – Surface area (+ electrode)
kn (float) – lumped constant for BV (- electrode)
kp (float) – lumped constant for BV (+ electrode)
Vol (float) – total interior battery volume/2 (for computing concentrations)
VolSFraction (float) – fraction of total volume occupied by surface volume
tDiffusion (float) – diffusion time constant (increasing this causes decrease in diffusion rate)
to (float) – for Ohmic voltage
tsn (float) – for surface overpotential (neg)
tsp (float) – for surface overpotential (pos)
Ap (U0p,) – Redlich-Kister parameter (+ electrode)
An (U0n,) – Redlich-Kister parameter (- electrode)
VEOD (float) – End of Discharge Voltage Threshold
x0 (dict) – Initial state
End of Life (i.e., InsufficientCapacity)¶
- class prog_models.models.BatteryElectroChemEOL(**kwargs)¶
Vectorized prognostics model for a battery degredation, represented by an electrochemical model as described in the following paper: M. Daigle and C. Kulkarni, “End-of-discharge and End-of-life Prediction in Lithium-ion Batteries with Electrochemistry-based Aging Models,” AIAA SciTech Forum 2016, San Diego, CA. https://arc.aiaa.org/doi/pdf/10.2514/6.2016-2132
The default model parameters included are for Li-ion batteries, specifically 18650-type cells. Experimental discharge curves for these cells can be downloaded from the Prognostics Center of Excellence Data Repository https://ti.arc.nasa.gov/tech/dash/groups/pcoe/prognostic-data-repository/.
- Events: (1)
InsufficientCapacity: Insufficient battery capacity
- Inputs/Loading: (1)
i: Current draw on the battery
- States: (3)
- qMax: Maximum battery capacityRo : for Ohmic drop (current collector resistances plus electrolyte resistance plus solid phase resistances at anode and cathode)D : diffusion time constant (increasing this causes decrease in diffusion rate)
Outputs/Measurements: (0)
- Keyword Arguments
process_noise (Optional, float or Dict[Srt, float]) – Process noise (applied at dx/next_state). Can be number (e.g., .2) applied to every state, a dictionary of values for each state (e.g., {‘x1’: 0.2, ‘x2’: 0.3}), or a function (x) -> x
process_noise_dist (Optional, String) – distribution for process noise (e.g., normal, uniform, triangular)
measurement_noise (Optional, float or Dict[Srt, float]) – Measurement noise (applied in output eqn). Can be number (e.g., .2) applied to every output, a dictionary of values for each output (e.g., {‘z1’: 0.2, ‘z2’: 0.3}), or a function (z) -> z
measurement_noise_dist (Optional, String) – distribution for measurement noise (e.g., normal, uniform, triangular)
qMaxThreshold (float) – Threshold for qMax (for threshold_met and event_state), after which the InsufficientCapacity event has occured. Note: Battery manufacturers specify a threshold of 70-80% of qMax
wd (wq, wr,) – Wear rate for qMax, Ro, and D respectively
x0 (dict) – Initial state
End of Discharge, End of Life (i.e., InsufficientCapacity & EOD)¶
- prog_models.models.BatteryElectroChem¶
alias of
prog_models.models.battery_electrochem.BatteryElectroChemEODEOL
- class prog_models.models.BatteryElectroChemEODEOL(**kwargs)¶
Prognostics model for a battery degredation and discharge, represented by an electrochemical model as described in the following papers:
M. Daigle and C. Kulkarni, “End-of-discharge and End-of-life Prediction in Lithium-ion Batteries with Electrochemistry-based Aging Models,” AIAA SciTech Forum 2016, San Diego, CA. https://arc.aiaa.org/doi/pdf/10.2514/6.2016-2132
M. Daigle and C. Kulkarni, “Electrochemistry-based Battery Modeling for Prognostics,” Annual Conference of the Prognostics and Health Management Society 2013, pp. 249-261, New Orleans, LA, October 2013. https://papers.phmsociety.org/index.php/phmconf/article/view/2252
The default model parameters included are for Li-ion batteries, specifically 18650-type cells. Experimental discharge curves for these cells can be downloaded from the Prognostics Center of Excellence Data Repository https://ti.arc.nasa.gov/tech/dash/groups/pcoe/prognostic-data-repository/.
- Events: (2)
- EOD: End of DischargeInsufficientCapacity: Insufficient battery capacity
- Inputs/Loading: (1)
i: Current draw on the battery
- States: (11)
See BatteryElectroChemEOD, BatteryElectroChemEOL
- Outputs/Measurements: (2)
- t: Temperature of battery (°C)v: Voltage supplied by battery
Note
For keyword arguments, see BatteryElectroChemEOD, BatteryElectroChemEOL
Pump Model¶
There are two variants of the pump model based on if the wear parameters are estimated as part of the state. The models are described below
Pump Model (Base)¶
- class prog_models.models.CentrifugalPumpBase(**kwargs)¶
Prognostics model for a Centrifugal Pump as described in the following paper: M. Daigle and K. Goebel, “Model-based Prognostics with Concurrent Damage Progression Processes,” IEEE Transactions on Systems, Man, and Cybernetics: Systems, vol. 43, no. 4, pp. 535-546, May 2013. https://www.researchgate.net/publication/260652495_Model-Based_Prognostics_With_Concurrent_Damage_Progression_Processes
- Events (4)
- ImpellerWearFailure: Failure of the impeller due to wearPumpOilOverheat: Overheat of the pump oilRadialBearingOverheat: Overheat of the radial bearingThrustBearingOverheat: Overhead of the thrust bearing
- Inputs/Loading: (5)
- Tamb: Ambient Temperature (K)V: Voltagepdisch: Discharge Pressure (Pa)psuc: Suction Pressure (Pa)wsync: Syncronous Rotational Speed of Supply Voltage (rad/sec)
- States: (9)
- A: Impeller Area (m^2)Q: Flow Rate into Pump (m^3/s)To: Oil Temperature (K)Tr: Radial Bearing Temperature (K)Tt: Thrust Bearing Temperature (K)rRadial: Radial (thrust) Friction CoefficientrThrust: Rolling Friction Coefficientw: Rotational Velocity of Pump (rad/sec)QLeak: Leak Flow Rate (m^3/s)
- Outputs/Measurements: (5)
- Qout: Discharge Flow (m^3/s)To: Oil Temperature (K)Tr: Radial Bearing Temperature (K)Tt: Thrust Bearing Temperature (K)w: Rotational Velocity of Pump (rad/sec)
- Keyword Arguments
process_noise (Optional, float or Dict[Srt, float]) – Process noise (applied at dx/next_state). Can be number (e.g., .2) applied to every state, a dictionary of values for each state (e.g., {‘x1’: 0.2, ‘x2’: 0.3}), or a function (x) -> x
process_noise_dist (Optional, String) – distribution for process noise (e.g., normal, uniform, triangular)
measurement_noise (Optional, float or Dict[Srt, float]) – Measurement noise (applied in output eqn). Can be number (e.g., .2) applied to every output, a dictionary of values for each output (e.g., {‘z1’: 0.2, ‘z2’: 0.3}), or a function (z) -> z
measurement_noise_dist (Optional, String) – distribution for measurement noise (e.g., normal, uniform, triangular)
pAtm (float) – Atmospheric pressure
a2 (a0, a1,) – empirical coefficients for flow torque eqn
A (float) – impeller blade area
b (float) –
n (float) – Pole Phases
p (float) – Pole Pairs
I (float) – impeller/shaft/motor lumped inertia
r (float) – lumped friction parameter (minus bearing friction)
R2 (R1,) –
L1 (float) –
FluidI (float) – Pump fluid inertia
c (float) – Pump flow coefficient
cLeak (float) – Internal leak flow coefficient
ALeak (float) – Internal leak area
mcThrust (float) –
HThrust2 (HThrust1,) –
mcRadial (float) –
HRadial2 (HRadial1,) –
mcOil (float) –
HOil3 (HOil1, HOil2,) –
wThrust (wA, wRadial,) – Wear rates. See also CentrifugalPumpWithWear
lim (dict) – Parameter limits
x0 (dict) – Initial state
See also
Pump Model (With Wear)¶
- prog_models.models.CentrifugalPump¶
alias of
prog_models.models.centrifugal_pump.CentrifugalPumpWithWear
- class prog_models.models.CentrifugalPumpWithWear(**kwargs)¶
Prognostics model for a centrifugal pump with wear parameters as part of the model state. This is identical to CentrifugalPumpBase, only CentrifugalPumpBase has the wear params as parameters instead of states
This class implements a Centrifugal Pump model as described in the following paper: M. Daigle and K. Goebel, “Model-based Prognostics with Concurrent Damage Progression Processes,” IEEE Transactions on Systems, Man, and Cybernetics: Systems, vol. 43, no. 4, pp. 535-546, May 2013. https://www.researchgate.net/publication/260652495_Model-Based_Prognostics_With_Concurrent_Damage_Progression_Processes
- Events (4)
See CentrifugalPumpBase
- Inputs/Loading: (5)
See CentrifugalPumpBase
- States: (12)
- States from CentrifugalPumpBase +wA: Wear Rate for Impeller AreawRadial: Wear Rate for Radial (thrust) Friction CoefficientwRadial: Wear Rate for Rolling Friction Coefficient
- Outputs/Measurements: (5)
See CentrifugalPumpBase
- Model Configuration Parameters:
See CentrifugalPumpBase
See also
Pneumatic Valve¶
There are two variants of the valve model based on if the wear parameters are estimated as part of the state. The models are described below
Pneumatic Valve (Base)¶
- class prog_models.models.PneumaticValveBase(**kwargs)¶
Prognostics model for a Pneumatic Valve model as described in the following paper: M. Daigle and K. Goebel, “A Model-based Prognostics Approach Applied to Pneumatic Valves,” International Journal of Prognostics and Health Management, vol. 2, no. 2, August 2011. https://papers.phmsociety.org/index.php/ijphm/article/view/1359
- Events: (5)
- Bottom Leak: Failure due to a leak at the bottom pneumatic portTop Leak: Failure due to a leak at the top pneumatic portInternal Leak: Failure due to an internal leak at the seal surrounding the pistonSpring Failure: Failure due to spring weakening with useFriction Failure: Failure due to increase in friction along the piston with wear
- Inputs/Loading: (4)
- pL: Fluid pressure at the left side of the plug (Pa)pR: Fluid pressure at the right side of the plug (Pa)uBot: input pressure at the bottom pneumatic port (Pa)uTop: input pressure at the botton pneumatic port (Pa)
- States: (10)
- Aeb: Area of the leak at the bottom pneumatic portAet: Area of the leak at the top pneumatic portAi: Area of the internal leakk: Spring CoefficientmBot: Mass on bottom of piston (kg)mTop: Mass on top of the piston (kg)r: Friction Coefficientv: Velocity of the piston (m/s)x: Poisition of the piston (m)pDiff: Difference in pressure between the left and the right
- Outputs/Measurements: 6
- Q: FlowrateiB: Is the piston at the bottom (bool)iT: Is the piston at the top (bool)pB: Pressure at the bottom (Pa)pT: Pressure at the top (Pa)x: Position of piston (m)
- Keyword Arguments
process_noise (Optional, float or Dict[Srt, float]) – Process noise (applied at dx/next_state). Can be number (e.g., .2) applied to every state, a dictionary of values for each state (e.g., {‘x1’: 0.2, ‘x2’: 0.3}), or a function (x) -> x
process_noise_dist (Optional, String) – distribution for process noise (e.g., normal, uniform, triangular)
measurement_noise (Optional, float or Dict[Srt, float]) – Measurement noise (applied in output eqn). Can be number (e.g., .2) applied to every output, a dictionary of values for each output (e.g., {‘z1’: 0.2, ‘z2’: 0.3}), or a function (z) -> z
measurement_noise_dist (Optional, String) – distribution for measurement noise (e.g., normal, uniform, triangular)
g (float) – Acceleration due to gravity (m/s^2)
pAtm (float) – Atmospheric pressure (Pa)
m (float) – Plug mass (kg)
offsetX (float) – Spring offset distance (m)
Ls (float) – Stroke Length (m)
Ap (float) – Surface area of piston for gas contact (m^2)
Vbot0 (float) – Below piston “default” volume (m^3)
Vtop0 (float) – Above piston “default” volume (m^3)
indicatorTol (float) – tolerance bound for open/close indicators
pSupply (float) – Supply Pressure (Pa)
Av (float) – Surface area of plug end (m^2)
Cv (float) – flow coefficient assuming Cv of 1300 GPM
rhoL (float) – density of LH2 in kg/m^3
gas_mass (float) – Molar mass of supply gas (kg/mol)
gas_temp (float) – Temperature of supply gas (K)
gas_R (gas_gamma, gas_z,) – Supply gas parameters
Cb (At, Ct, Ab,) –
AbMax (float) – Max limit for state Aeb
AtMax (float) – Max limit for state Aet
AiMax (float) – Max limit for state Ai
kMin (float) – Min limit for state k
rMax (float) – Max limit for state r
x0 (Dict[str, float]) – Initial state
wb (float) – Wear parameter for bottom leak
wi (float) – Wear parameter for internal leak
wt (float) – Wear parameter for top leak
wk (float) – Wear parameter for spring
wr (float) – Wear parameter for friction
Note
Supply gas parameters (gas_mass, gas_temp, gas_gamme, gas_z, gas_R) are for Nitrogen by default
Pneumatic Valve (With Wear)¶
- prog_models.models.PneumaticValve¶
alias of
prog_models.models.pneumatic_valve.PneumaticValveWithWear
- class prog_models.models.PneumaticValveWithWear(**kwargs)¶
Prognostics model for a pneumatic valve with wear parameters as part of the model state. This is identical to PneumaticValveBase, only PneumaticValveBase has the wear params as parameters instead of states
This class implements a Pneumatic Valve model as described in the following paper: M. Daigle and K. Goebel, “A Model-based Prognostics Approach Applied to Pneumatic Valves,” International Journal of Prognostics and Health Management, vol. 2, no. 2, August 2011. https://www.phmsociety.org/node/602
- Events (4)
See PneumaticValveBase
- Inputs/Loading: (5)
See PneumaticValveBase
- States: (12)
States from PneumaticValveBase + wb, wi, wk, wr, wt
- Outputs/Measurements: (5)
See PneumaticValveBase
- Model Configuration Parameters:
See PneumaticValveBase