Skip to content

steady_state_detection

steady_state_detection ¤

SteadyStateDetectionEvents ¤

SteadyStateDetectionEvents(
    dataframe: DataFrame,
    signal_uuid: str,
    *,
    event_uuid: str = "eng:steady_state",
    value_column: str = "value_double",
    time_column: str = "systime"
)

Bases: Base

Engineering: Steady-State Detection

Identify when a process signal has settled into a steady operating state (low variance, no trend) versus transient/dynamic periods.

Methods: - detect_steady_state: Intervals where rolling std stays below threshold. - detect_transient_periods: Inverse — intervals where signal is changing. - steady_state_statistics: Summary of steady vs transient time. - steady_state_value_bands: Operating band (mean +/- std) per steady interval.

detect_steady_state ¤

detect_steady_state(
    window: str = "5m",
    std_threshold: float = 1.0,
    min_duration: str = "10m",
) -> pd.DataFrame

Detect intervals where signal is in steady state.

Parameters:

Name Type Description Default
window str

Rolling window for std computation.

'5m'
std_threshold float

Maximum rolling std to consider steady.

1.0
min_duration str

Minimum duration of a steady interval.

'10m'

Returns:

Type Description
DataFrame

DataFrame with columns: start, end, uuid, is_delta,

DataFrame

mean_value, std_value, duration_seconds.

detect_transient_periods ¤

detect_transient_periods(
    window: str = "5m", std_threshold: float = 1.0
) -> pd.DataFrame

Detect intervals where signal is in transient/dynamic state.

Parameters:

Name Type Description Default
window str

Rolling window for std computation.

'5m'
std_threshold float

Minimum rolling std to consider transient.

1.0

Returns:

Type Description
DataFrame

DataFrame with columns: start, end, uuid, is_delta,

DataFrame

max_std, duration_seconds.

steady_state_statistics ¤

steady_state_statistics(
    window: str = "5m",
    std_threshold: float = 1.0,
    min_duration: str = "10m",
) -> Dict[str, Any]

Summary statistics of steady vs transient time.

Returns:

Type Description
Dict[str, Any]

Dict with: total_steady_seconds, total_transient_seconds,

Dict[str, Any]

steady_pct, num_steady_periods, avg_steady_duration_seconds.

steady_state_value_bands ¤

steady_state_value_bands(
    window: str = "5m",
    std_threshold: float = 1.0,
    min_duration: str = "10m",
) -> pd.DataFrame

Operating band (mean +/- std) for each steady-state interval.

Returns:

Type Description
DataFrame

DataFrame with columns: start, end, mean_value, lower_band,

DataFrame

upper_band, duration_seconds.