API Reference

pole_placement.controllabilityTool.cli

Command-line interface for pole_placement.controllabilityTool.

The CLI supports two usage styles:

  1. Modern subcommand form:

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

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

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

pole_placement.controllabilityTool.cli.build_arg_parser()

Build the command-line parser.

Return type:

ArgumentParser

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

Build the command-line parser.

Return type:

ArgumentParser

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

Run the controllabilityTool command-line interface.

Parameters:

argv (list[str] | None)

Return type:

int

pole_placement.controllabilityTool.apis

class pole_placement.controllabilityTool.apis.RunRequest(json_path: 'Optional[str]' = None, A: 'Optional[str]' = None, B: 'Optional[str]' = None, C: 'Optional[str]' = None, D: 'Optional[str]' = None, discrete: 'bool' = False, horizon: 'Optional[int]' = None, tol: 'Optional[float]' = None, pbh: 'bool' = False, gram: 'bool' = False, finite_dt: 'Optional[int]' = None, finite_ct: 'Optional[float]' = None, minreal: 'bool' = False, symbolic: 'bool' = False, output_ctrb: 'bool' = False, save_output_csv: 'bool' = False, pretty: 'bool' = False, name: 'str' = 'ctrb', save_csv: 'bool' = False, save_json: 'bool' = False, save_gram: 'bool' = False, report: 'Optional[str]' = None, log: 'str' = 'INFO')[source]

Bases: object

Parameters:
  • json_path (str | None)

  • A (str | None)

  • B (str | None)

  • C (str | None)

  • D (str | None)

  • discrete (bool)

  • horizon (int | None)

  • tol (float | None)

  • pbh (bool)

  • gram (bool)

  • finite_dt (int | None)

  • finite_ct (float | None)

  • minreal (bool)

  • symbolic (bool)

  • output_ctrb (bool)

  • save_output_csv (bool)

  • pretty (bool)

  • name (str)

  • save_csv (bool)

  • save_json (bool)

  • save_gram (bool)

  • report (str | None)

  • log (str)

A: str | None = None
B: str | None = None
C: str | None = None
D: str | None = None
discrete: bool = False
finite_ct: float | None = None
finite_dt: int | None = None
gram: bool = False
horizon: int | None = None
json_path: str | None = None
log: str = 'INFO'
minreal: bool = False
name: str = 'ctrb'
output_ctrb: bool = False
pbh: bool = False
pretty: bool = False
report: str | None = None
save_csv: bool = False
save_gram: bool = False
save_json: bool = False
save_output_csv: bool = False
symbolic: bool = False
tol: float | None = None
class pole_placement.controllabilityTool.apis.RunResult(exit_code: 'int', summary_json: 'Optional[str]' = None)[source]

Bases: object

Parameters:
  • exit_code (int)

  • summary_json (str | None)

exit_code: int
summary_json: str | None = None

pole_placement.controllabilityTool.app

class pole_placement.controllabilityTool.app.ControllabilityApp[source]

Bases: object

run(req)[source]
Parameters:

req (RunRequest)

Return type:

RunResult

pole_placement.controllabilityTool.core

pole_placement.controllabilityTool.core.controllability_matrix(A, B, horizon=None)[source]
Parameters:
  • A (numpy.ndarray)

  • B (numpy.ndarray)

  • horizon (int | None)

Return type:

numpy.ndarray

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

  • B (numpy.ndarray)

  • T (float)

Return type:

numpy.ndarray

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

  • B (numpy.ndarray)

  • N (int)

Return type:

numpy.ndarray

pole_placement.controllabilityTool.core.gramian_controllability_ct(A, B)[source]
Parameters:
  • A (numpy.ndarray)

  • B (numpy.ndarray)

Return type:

numpy.ndarray | None

pole_placement.controllabilityTool.core.gramian_controllability_dt(A, B)[source]
Parameters:
  • A (numpy.ndarray)

  • B (numpy.ndarray)

Return type:

numpy.ndarray | None

pole_placement.controllabilityTool.core.minreal_controllable(A, B, tol=None)[source]
Parameters:
  • A (numpy.ndarray)

  • B (numpy.ndarray)

  • tol (float | None)

pole_placement.controllabilityTool.core.output_controllability_matrix(A, B, C, horizon=None, D=None)[source]
Parameters:
  • A (numpy.ndarray)

  • B (numpy.ndarray)

  • C (numpy.ndarray)

  • horizon (int | None)

  • D (numpy.ndarray | None)

Return type:

numpy.ndarray

pole_placement.controllabilityTool.core.pbh_controllable(A, B)[source]
Parameters:
  • A (numpy.ndarray)

  • B (numpy.ndarray)

Return type:

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

pole_placement.controllabilityTool.core.sympy_rank_ctrb(A, B, horizon)[source]
Parameters:
  • A (numpy.ndarray)

  • B (numpy.ndarray)

  • horizon (int | None)

Return type:

int | None

pole_placement.controllabilityTool.io

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

path (str)

Return type:

Tuple[numpy.ndarray, numpy.ndarray, bool, numpy.ndarray | None, numpy.ndarray | None]

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

s (str)

Return type:

numpy.ndarray

pole_placement.controllabilityTool.utils

pole_placement.controllabilityTool.utils.ensure_out_dir(path='out')[source]
Parameters:

path (str)

Return type:

None

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

  • tol (float | None)

Return type:

int

pole_placement.controllabilityTool.utils.real_if_close_for_control(X)[source]
Parameters:

X (numpy.ndarray)

Return type:

numpy.ndarray

pole_placement.controllabilityTool.utils.stable_ct(A)[source]
Parameters:

A (numpy.ndarray)

Return type:

bool

pole_placement.controllabilityTool.utils.stable_dt(A)[source]
Parameters:

A (numpy.ndarray)

Return type:

bool

pole_placement.controllabilityTool.utils.with_outdir(fn)[source]
Parameters:

fn (Callable[[...], Any])

Return type:

Callable[[…], Any]

pole_placement.controllabilityTool.design

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

  • width (int)

  • prec (int)

Return type:

str

pole_placement.controllabilityTool.design.write_csv(path, M)[source]
Parameters:
  • path (str)

  • M (numpy.ndarray)

Return type:

None

pole_placement.controllabilityTool.design.write_json(path, obj)[source]
Parameters:
  • path (str)

  • obj (Dict[str, Any])

Return type:

None

pole_placement.controllabilityTool.design.write_text(path, text)[source]
Parameters:
  • path (str)

  • text (str)

Return type:

None