Takes the ubiquity system object and other optional inputs to verify the system is running at steady state. This also provides information that can be helpful in debugging systems not running at steady state.

## Usage

```
system_check_steady_state(
cfg,
parameters = NULL,
zero_rates = TRUE,
zero_bolus = TRUE,
output_times = seq(0, 100, 1),
offset_tol = .Machine$double.eps * 100,
derivative_tol = .Machine$double.eps * 100,
derivative_time = 0
)
```

## Arguments

- cfg
ubiquity system object

- parameters
optional set of parameters (

`NULL`

) to check at steady state (if set to`NULL`

then the parameters for the currently selected parameter set will be used)- zero_rates
Boolean value to control removing all rate inputs (

`TRUE`

)- zero_bolus
Boolean value to control removing all bolus inputs (

`TRUE`

)- output_times
sequence of output times to simulate for offset determination (

`seq(0,100,1)`

)- offset_tol
maximum percent offset to be considered zero (

`.Machine$double.eps*100`

)- derivative_tol
maximum derivative value to be considered zero (

`.Machine$double.eps*100`

)- derivative_time
time to evaluate derivatives to identify deviations (

`0`

), set to`NULL`

to skip derivative evaluation

## Value

List with the following names

`steady_state`

Boolean indicating weather the system was at steady state`states_derivative`

Derivatives that had values greater than the`derivative_tol`

`states_simulation`

States that had values greater than the`offset_tol`

`som`

Simulated output`derivatives`

Derivatives`states_derivative_NA_NaN`

States that had derivatives that evaluated as either NA or NaN`states_simulation_NA_NaN`

States with simulation values that had either NA or NaN`derivative_tc`

Data frame with the timecourse of states where the derivative was found to be greater than tolerance (states_derivative)