API Reference

state_space_design.observerStatePlotTool.cli

state_space_design.observerStatePlotTool.cli.build_parser()[source]
Return type:

ArgumentParser

state_space_design.observerStatePlotTool.cli.main(argv=None)[source]
Parameters:

argv (list[str] | None)

Return type:

int

state_space_design.observerStatePlotTool.apis

class state_space_design.observerStatePlotTool.apis.PlotRequest(data_path: 'str', what: 'str' = 'auto', backend: 'str' = 'both', subplots: 'bool' = False, save_png: 'Optional[str]' = None, save_html: 'Optional[str]' = None, save_csv: 'Optional[str]' = None, no_show: 'bool' = False, simulate: 'SimulateOptions' = <factory>)[source]

Bases: object

Parameters:
  • data_path (str)

  • what (str)

  • backend (str)

  • subplots (bool)

  • save_png (str | None)

  • save_html (str | None)

  • save_csv (str | None)

  • no_show (bool)

  • simulate (SimulateOptions)

backend: str = 'both'
data_path: str
no_show: bool = False
save_csv: str | None = None
save_html: str | None = None
save_png: str | None = None
simulate: SimulateOptions
subplots: bool = False
what: str = 'auto'
class state_space_design.observerStatePlotTool.apis.PlotResponse(csv_path: 'Optional[str]', png_path: 'Optional[str]', html_path: 'Optional[str]')[source]

Bases: object

Parameters:
  • csv_path (str | None)

  • png_path (str | None)

  • html_path (str | None)

csv_path: str | None
html_path: str | None
png_path: str | None
class state_space_design.observerStatePlotTool.apis.SimulateOptions(enabled: 'bool' = False, t: 'str' = '0:0.01:4', x0: 'Optional[str]' = None, e0: 'Optional[str]' = None)[source]

Bases: object

Parameters:
  • enabled (bool)

  • t (str)

  • x0 (str | None)

  • e0 (str | None)

e0: str | None = None
enabled: bool = False
t: str = '0:0.01:4'
x0: str | None = None

state_space_design.observerStatePlotTool.app

class state_space_design.observerStatePlotTool.app.ObserverStatePlotApp[source]

Bases: object

run(req)[source]
Parameters:

req (PlotRequest)

Return type:

PlotResponse

state_space_design.observerStatePlotTool.core

class state_space_design.observerStatePlotTool.core.ObserverStateProcessor[source]

Bases: object

choose_series(want, X, E, y, u)[source]

Build (labels, series) in the order requested by ‘want’. Supports MIMO y (multiple rows) and ensures 2D → 1D flattening per series.

Parameters:

want (List[str])

Return type:

tuple[list[str], list[ndarray]]

load_or_simulate(payload, simulate, t_spec, x0_spec, e0_spec)[source]

Use a present simulation (if a dict) unless –simulate_if_missing requested, otherwise simulate from A_augmented.

Parameters:
  • payload (Dict[str, Any])

  • simulate (bool)

  • t_spec (str)

  • x0_spec (str | None)

  • e0_spec (str | None)

Return type:

SimulationBundle

reconstruct_u_y_if_missing(payload, t, X, E)[source]

Robustly reconstruct u = -K(x-e) and y = Cx if they’re missing. Tolerates JSONs with “simulation”: null by treating it like {}.

Parameters:
  • payload (Dict[str, Any])

  • t (ndarray)

  • X (ndarray | None)

  • E (ndarray | None)

Return type:

Tuple[ndarray | None, ndarray | None]

simulate_if_missing(payload, T, x0, e0)[source]

Simulate ż = A_aug z with z=[x; e] using fixed-step discretization via expm. Reconstruct u,y when possible from K and C.

Parameters:
  • payload (Dict[str, Any])

  • T (ndarray)

  • x0 (ndarray)

  • e0 (ndarray)

Return type:

SimulationBundle

class state_space_design.observerStatePlotTool.core.SimulationBundle(t: 'np.ndarray', X: 'Optional[np.ndarray]', E: 'Optional[np.ndarray]', u: 'Optional[np.ndarray]', y: 'Optional[np.ndarray]')[source]

Bases: object

Parameters:
  • t (ndarray)

  • X (ndarray | None)

  • E (ndarray | None)

  • u (ndarray | None)

  • y (ndarray | None)

E: ndarray | None
X: ndarray | None
t: ndarray
u: ndarray | None
y: ndarray | None

state_space_design.observerStatePlotTool.io

class state_space_design.observerStatePlotTool.io.CSVWriter(header: 'Optional[List[str]]' = None)[source]

Bases: object

Parameters:

header (List[str] | None)

header: List[str] | None = None
write(path, t, series, labels)[source]
Parameters:
  • path (str)

  • t (ndarray)

  • series (List[ndarray])

  • labels (List[str])

Return type:

str

class state_space_design.observerStatePlotTool.io.JSONLoader[source]

Bases: object

Load observer/controller JSON payloads.

load(path)[source]
Parameters:

path (str)

Return type:

Dict[str, Any]

state_space_design.observerStatePlotTool.utils

state_space_design.observerStatePlotTool.utils.ensure_dirs()[source]
state_space_design.observerStatePlotTool.utils.ensure_out_path(name, default_name)[source]

If ‘name’ is None or base-only, place it under the package OUT_DIR.

Parameters:
  • name (str | None)

  • default_name (str)

Return type:

str

state_space_design.observerStatePlotTool.utils.parse_time(s)[source]

Parse ‘t0:dt:tf’ or ‘0 0.1 … 4’ into a numpy array.

Parameters:

s (str)

Return type:

ndarray

state_space_design.observerStatePlotTool.utils.parse_vec_real(s, n, default_first_one=True)[source]

Parse ‘1 0 0’ (or ‘1,0,0’) into a real vector of length n. If s is None and default_first_one is True, returns e1. Else zeros.

Parameters:
  • s (str | None)

  • n (int)

  • default_first_one (bool)

Return type:

ndarray

state_space_design.observerStatePlotTool.utils.safe_series(name, arr)[source]
Parameters:

name (str)

Return type:

ndarray | None

state_space_design.observerStatePlotTool.utils.series_labels(prefix, n)[source]
Parameters:
  • prefix (str)

  • n (int)

Return type:

List[str]

state_space_design.observerStatePlotTool.utils.to2d(arr)[source]

Ensure 2D (n, N).

Parameters:

arr (ndarray)

Return type:

ndarray