API Reference

pole_placement.observabilityTool.cli

Command-line interface for pole_placement.observabilityTool.

The CLI supports two usage styles:

  1. Modern subcommand form:

    python -m pole_placement.observabilityTool.cli run --json in/system.json --pretty
    
  2. Historical no-subcommand form:

    python -m pole_placement.observabilityTool.cli --json in/system.json --pretty
    

It also includes a sphinx-skel helper for generating a conservative, GitHub Pages friendly Sphinx documentation skeleton.

pole_placement.observabilityTool.cli.build_arg_parser()

Build the command-line parser.

Return type:

ArgumentParser

pole_placement.observabilityTool.cli.build_parser()[source]

Build the command-line parser.

Return type:

ArgumentParser

pole_placement.observabilityTool.cli.main(argv=None)[source]

Run the observabilityTool command-line interface.

Parameters:

argv (list[str] | None)

Return type:

int

pole_placement.observabilityTool.apis

class pole_placement.observabilityTool.apis.RunRequest(json_in: 'Optional[str]' = None, A: 'Optional[str]' = None, C: 'Optional[str]' = None, discrete: 'bool' = False, horizon: 'Optional[int]' = None, tol: 'Optional[float]' = None, do_pbh: 'bool' = False, do_gram: 'bool' = False, finite_dt: 'Optional[int]' = None, finite_ct: 'Optional[float]' = None, do_minreal: 'bool' = False, symbolic: 'bool' = False, pretty: 'bool' = False, name: 'str' = 'obsv', save_csv: 'bool' = False, save_gram: 'bool' = False, save_json: 'bool' = False, report: 'Optional[str]' = None)[source]

Bases: object

Parameters:
  • json_in (str | None)

  • A (str | None)

  • C (str | None)

  • discrete (bool)

  • horizon (int | None)

  • tol (float | None)

  • do_pbh (bool)

  • do_gram (bool)

  • finite_dt (int | None)

  • finite_ct (float | None)

  • do_minreal (bool)

  • symbolic (bool)

  • pretty (bool)

  • name (str)

  • save_csv (bool)

  • save_gram (bool)

  • save_json (bool)

  • report (str | None)

A: str | None = None
C: str | None = None
discrete: bool = False
do_gram: bool = False
do_minreal: bool = False
do_pbh: bool = False
finite_ct: float | None = None
finite_dt: int | None = None
horizon: int | None = None
json_in: str | None = None
name: str = 'obsv'
pretty: bool = False
report: str | None = None
save_csv: bool = False
save_gram: bool = False
save_json: bool = False
symbolic: bool = False
tol: float | None = None
class pole_placement.observabilityTool.apis.RunResult(exit_code: 'int', summary_json: 'Optional[str]' = None, files_written: 'List[str]' = <factory>, stdout: 'Optional[str]' = None)[source]

Bases: object

Parameters:
  • exit_code (int)

  • summary_json (str | None)

  • files_written (List[str])

  • stdout (str | None)

exit_code: int
files_written: List[str]
stdout: str | None = None
summary_json: str | None = None

pole_placement.observabilityTool.app

class pole_placement.observabilityTool.app.ObservabilityApp[source]

Bases: object

run(req)[source]
Parameters:

req (RunRequest)

Return type:

RunResult

pole_placement.observabilityTool.core

pole_placement.observabilityTool.core.finite_gramian_ct(A, C, T)[source]
Parameters:
  • A (numpy.ndarray)

  • C (numpy.ndarray)

  • T (float)

Return type:

numpy.ndarray

pole_placement.observabilityTool.core.finite_gramian_dt(A, C, N)[source]
Parameters:
  • A (numpy.ndarray)

  • C (numpy.ndarray)

  • N (int)

Return type:

numpy.ndarray

pole_placement.observabilityTool.core.gramian_observability_ct(A, C)[source]
Parameters:
  • A (numpy.ndarray)

  • C (numpy.ndarray)

Return type:

numpy.ndarray | None

pole_placement.observabilityTool.core.gramian_observability_dt(A, C)[source]
Parameters:
  • A (numpy.ndarray)

  • C (numpy.ndarray)

Return type:

numpy.ndarray | None

pole_placement.observabilityTool.core.minreal_observable(A, C, tol=None)[source]
Parameters:
  • A (numpy.ndarray)

  • C (numpy.ndarray)

  • tol (float | None)

pole_placement.observabilityTool.core.observability_matrix(A, C, horizon=None)[source]
Parameters:
  • A (numpy.ndarray)

  • C (numpy.ndarray)

  • horizon (int | None)

Return type:

numpy.ndarray

pole_placement.observabilityTool.core.pbh_observable(A, C)[source]
Parameters:
  • A (numpy.ndarray)

  • C (numpy.ndarray)

Return type:

Tuple[bool, List[Dict[str, Any]]]

pole_placement.observabilityTool.core.rank_numeric(M, tol=None)[source]
Parameters:
  • M (numpy.ndarray)

  • tol (float | None)

Return type:

int

pole_placement.observabilityTool.core.stable_ct(A)[source]
Parameters:

A (numpy.ndarray)

Return type:

bool

pole_placement.observabilityTool.core.stable_dt(A)[source]
Parameters:

A (numpy.ndarray)

Return type:

bool

pole_placement.observabilityTool.io

pole_placement.observabilityTool.io.load_from_json(path)[source]
Parameters:

path (str)

pole_placement.observabilityTool.io.parse_matrix_string(s)[source]
Parameters:

s (str)

Return type:

numpy.ndarray

pole_placement.observabilityTool.io.save_json(path, obj)[source]
Parameters:
  • path (str)

  • obj (Dict[str, Any])

Return type:

None

pole_placement.observabilityTool.utils

pole_placement.observabilityTool.utils.ensure_dir(path)[source]
Parameters:

path (str)

Return type:

None

pole_placement.observabilityTool.utils.pkg_outdir()[source]
Return type:

str

pole_placement.observabilityTool.utils.timed(fn)[source]
Parameters:

fn (Callable)

pole_placement.observabilityTool.design

pole_placement.observabilityTool.design.capture_pretty_text(**kwargs)[source]
Return type:

str

pole_placement.observabilityTool.design.fmt_mat(M, width=10, prec=6)[source]
Parameters:
  • M (numpy.ndarray)

  • width (int)

  • prec (int)

Return type:

str

pole_placement.observabilityTool.design.write_report(path, content)[source]
Parameters:
  • path (str)

  • content (str)

Return type:

None