API Reference

state_space_design.robustTool.cli

state_space_design.robustTool.cli.build_parser()[source]

Build the command line parser.

Return type:

ArgumentParser

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

argv (list[str] | None)

Return type:

int

state_space_design.robustTool.apis

class state_space_design.robustTool.apis.RunRequest(num: 'str', den: 'str', pid: 'Optional[str]' = None, K_num: 'Optional[str]' = None, K_den: 'Optional[str]' = None, Wm_num: 'Optional[str]' = None, Wm_den: 'Optional[str]' = None, Ws_num: 'Optional[str]' = None, Ws_den: 'Optional[str]' = None, Wa_num: 'Optional[str]' = None, Wa_den: 'Optional[str]' = None, wmin: 'float' = 0.01, wmax: 'float' = 100.0, npts: 'int' = 400, step: 'bool' = False, tfinal: 'float' = 8.0, dt: 'float' = 0.01, plots: 'str' = 'mpl', export_json: 'Optional[str]' = None, loglevel: 'str' = 'INFO')[source]

Bases: object

Parameters:
  • num (str)

  • den (str)

  • pid (str | None)

  • K_num (str | None)

  • K_den (str | None)

  • Wm_num (str | None)

  • Wm_den (str | None)

  • Ws_num (str | None)

  • Ws_den (str | None)

  • Wa_num (str | None)

  • Wa_den (str | None)

  • wmin (float)

  • wmax (float)

  • npts (int)

  • step (bool)

  • tfinal (float)

  • dt (float)

  • plots (str)

  • export_json (str | None)

  • loglevel (str)

K_den: str | None = None
K_num: str | None = None
Wa_den: str | None = None
Wa_num: str | None = None
Wm_den: str | None = None
Wm_num: str | None = None
Ws_den: str | None = None
Ws_num: str | None = None
den: str
dt: float = 0.01
export_json: str | None = None
loglevel: str = 'INFO'
npts: int = 400
num: str
pid: str | None = None
plots: str = 'mpl'
step: bool = False
tfinal: float = 8.0
to_dict()[source]
Return type:

Dict[str, Any]

wmax: float = 100.0
wmin: float = 0.01
class state_space_design.robustTool.apis.RunResult(info: 'Dict[str, Any]' = <factory>, metrics: 'Dict[str, SweepMetric]' = <factory>, step_time: 'Optional[List[float]]' = None, step_y: 'Optional[List[float]]' = None, step_u: 'Optional[List[float]]' = None)[source]

Bases: object

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

  • metrics (Dict[str, SweepMetric])

  • step_time (List[float] | None)

  • step_y (List[float] | None)

  • step_u (List[float] | None)

info: Dict[str, Any]
metrics: Dict[str, SweepMetric]
step_time: List[float] | None = None
step_u: List[float] | None = None
step_y: List[float] | None = None
to_jsonable()[source]
Return type:

Dict[str, Any]

class state_space_design.robustTool.apis.SweepMetric(gamma: 'Optional[float]' = None, w_peak: 'Optional[float]' = None, ok: 'Optional[bool]' = None, error: 'Optional[str]' = None)[source]

Bases: object

Parameters:
  • gamma (float | None)

  • w_peak (float | None)

  • ok (bool | None)

  • error (str | None)

error: str | None = None
gamma: float | None = None
ok: bool | None = None
w_peak: float | None = None

state_space_design.robustTool.app

class state_space_design.robustTool.app.RobustApp(logger=None)[source]

Bases: object

Parameters:

logger (str | None)

run(req)[source]
Parameters:

req (RunRequest)

Return type:

RunResult

state_space_design.robustTool.io

state_space_design.robustTool.io.ensure_out_dir(path=None)[source]
Parameters:

path (str | None)

Return type:

str

state_space_design.robustTool.io.save_json(obj, relpath)[source]
Parameters:
  • obj (Dict[str, Any])

  • relpath (str)

Return type:

str

state_space_design.robustTool.core

class state_space_design.robustTool.core.Controller(pid: 'Optional[str]' = None, K_num: 'Optional[str]' = None, K_den: 'Optional[str]' = None)[source]

Bases: object

Parameters:
  • pid (str | None)

  • K_num (str | None)

  • K_den (str | None)

K_den: str | None = None
K_num: str | None = None
pid: str | None = None
tf()[source]
Return type:

TransferFunction

class state_space_design.robustTool.core.FrequencyTools[source]

Bases: object

static bode_mag_phase(sys, w)[source]
Parameters:

w (ndarray)

static evalfr_grid(sys, omega)[source]
Parameters:

omega (ndarray)

Return type:

ndarray

static hinf_sweep(sys, wmin, wmax, npts=400)[source]
Parameters:
  • wmin (float)

  • wmax (float)

  • npts (int)

static sigma_max_over_w(sys, w)[source]
Parameters:

w (ndarray)

Return type:

ndarray

class state_space_design.robustTool.core.LoopBuilder[source]

Bases: object

static loops(G, K)[source]
Parameters:
  • G (TransferFunction)

  • K (TransferFunction)

class state_space_design.robustTool.core.Plant(num: 'str', den: 'str')[source]

Bases: object

Parameters:
  • num (str)

  • den (str)

den: str
num: str
tf()[source]
Return type:

TransferFunction

class state_space_design.robustTool.core.Weights(Wm_num: 'Optional[str]' = None, Wm_den: 'Optional[str]' = None, Ws_num: 'Optional[str]' = None, Ws_den: 'Optional[str]' = None, Wa_num: 'Optional[str]' = None, Wa_den: 'Optional[str]' = None)[source]

Bases: object

Parameters:
  • Wm_num (str | None)

  • Wm_den (str | None)

  • Ws_num (str | None)

  • Ws_den (str | None)

  • Wa_num (str | None)

  • Wa_den (str | None)

Wa_den: str | None = None
Wa_num: str | None = None
Wm_den: str | None = None
Wm_num: str | None = None
Ws_den: str | None = None
Ws_num: str | None = None
get()[source]
Return type:

Tuple[TransferFunction, TransferFunction, TransferFunction | None]

state_space_design.robustTool.design

class state_space_design.robustTool.design.RobustAnalyzer(req: 'RunRequest', plant: 'Plant', ctrl: 'Controller', weights: 'Weights')[source]

Bases: object

Parameters:
build()[source]
ctrl: Controller
plant: Plant
req: RunRequest
run()[source]
Return type:

RunResult

weights: Weights

state_space_design.robustTool.utils

state_space_design.robustTool.utils.log_calls(logger=None, *, ok_level=10, fail_level=10)[source]

Decorator that logs function entry/exit and elapsed time.

  • On entry: logs arguments at DEBUG.

  • On success: logs elapsed time at ok_level (default DEBUG).

  • On failure: logs elapsed time + exception at DEBUG with traceback (default fail_level = DEBUG) and re-raises. This avoids noisy ERROR logs in test output while keeping full trace.

Parameters:
  • logger (logging.Logger | None) – If provided, use this logger; otherwise use module logger.

  • ok_level (int) – Logging level for successful return (default: DEBUG).

  • fail_level (int) – Logging level for failure path (default: DEBUG).

Returns:

Wrapped function with logging.

Return type:

Callable

state_space_design.robustTool.utils.parse_vec(s)[source]

Convert a string like “1, 2 3” into a list of floats [1.0, 2.0, 3.0]. - Accepts commas and/or whitespace as separators. - Returns [] for None or empty strings. - Ignores empty tokens safely.

Parameters:

s (str | None)

Return type:

list[float]