API Reference

pole_placement.transformationTool.cli

Command-line interface for pole_placement.transformationTool.

The CLI supports two usage styles:

  1. Modern subcommand form:

    python -m pole_placement.transformationTool.cli run --json in/system.json --to-ccf
    
  2. Historical no-subcommand form:

    python -m pole_placement.transformationTool.cli --json in/system.json --to-ccf
    

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

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

Build the command-line parser.

Return type:

ArgumentParser

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

Run the transformationTool command-line interface.

Parameters:

argv (list[str] | None)

Return type:

int

pole_placement.transformationTool.apis

class pole_placement.transformationTool.apis.RunRequest(A: 'Optional[np.ndarray]' = None, B: 'Optional[np.ndarray]' = None, C: 'Optional[np.ndarray]' = None, D: 'Optional[np.ndarray]' = None, json_in: 'Optional[str]' = None, to_ccf: 'bool' = False, to_ocf: 'bool' = False, to_diag: 'bool' = False, to_jordan: 'bool' = False, show_tf: 'bool' = False, check_invariance: 'bool' = False, pretty: 'bool' = False, name: 'str' = 'transform', save_json: 'bool' = False, save_csv: 'bool' = False)[source]

Bases: object

Parameters:
  • A (numpy.ndarray | None)

  • B (numpy.ndarray | None)

  • C (numpy.ndarray | None)

  • D (numpy.ndarray | None)

  • json_in (str | None)

  • to_ccf (bool)

  • to_ocf (bool)

  • to_diag (bool)

  • to_jordan (bool)

  • show_tf (bool)

  • check_invariance (bool)

  • pretty (bool)

  • name (str)

  • save_json (bool)

  • save_csv (bool)

A: numpy.ndarray | None = None
B: numpy.ndarray | None = None
C: numpy.ndarray | None = None
D: numpy.ndarray | None = None
check_invariance: bool = False
json_in: str | None = None
name: str = 'transform'
pretty: bool = False
save_csv: bool = False
save_json: bool = False
show_tf: bool = False
to_ccf: bool = False
to_diag: bool = False
to_jordan: bool = False
to_ocf: bool = False
class pole_placement.transformationTool.apis.TransformResult(name: 'str', form: 'str', eigvals: 'List[complex]', T: 'Optional[np.ndarray]', Ahat: 'np.ndarray', Bhat: 'Optional[np.ndarray]', Chat: 'Optional[np.ndarray]', Dhat: 'Optional[np.ndarray]', a_coeffs: 'Optional[List[complex]]' = None, b_coeffs: 'Optional[List[complex]]' = None, rank_ctrb_before: 'Optional[int]' = None, rank_ctrb_after: 'Optional[int]' = None, rank_obsv_before: 'Optional[int]' = None, rank_obsv_after: 'Optional[int]' = None)[source]

Bases: object

Parameters:
  • name (str)

  • form (str)

  • eigvals (List[complex])

  • T (numpy.ndarray | None)

  • Ahat (numpy.ndarray)

  • Bhat (numpy.ndarray | None)

  • Chat (numpy.ndarray | None)

  • Dhat (numpy.ndarray | None)

  • a_coeffs (List[complex] | None)

  • b_coeffs (List[complex] | None)

  • rank_ctrb_before (int | None)

  • rank_ctrb_after (int | None)

  • rank_obsv_before (int | None)

  • rank_obsv_after (int | None)

Ahat: numpy.ndarray
Bhat: numpy.ndarray | None
Chat: numpy.ndarray | None
Dhat: numpy.ndarray | None
T: numpy.ndarray | None
a_coeffs: List[complex] | None = None
b_coeffs: List[complex] | None = None
eigvals: List[complex]
form: str
name: str
rank_ctrb_after: int | None = None
rank_ctrb_before: int | None = None
rank_obsv_after: int | None = None
rank_obsv_before: int | None = None

pole_placement.transformationTool.app

class pole_placement.transformationTool.app.TransformationApp[source]

Bases: object

run(req)[source]
Parameters:

req (RunRequest)

Return type:

List[TransformResult]

pole_placement.transformationTool.core

pole_placement.transformationTool.core.W_from_a(a)[source]
Parameters:

a (numpy.ndarray)

Return type:

numpy.ndarray

pole_placement.transformationTool.core.charpoly_coeffs(A)[source]
Parameters:

A (numpy.ndarray)

Return type:

numpy.ndarray

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

  • B (numpy.ndarray)

Return type:

numpy.ndarray

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

  • C (numpy.ndarray)

Return type:

numpy.ndarray

pole_placement.transformationTool.core.realify_if_close(M, tol=1e-14)[source]
Parameters:
  • M (numpy.ndarray | None)

  • tol (float)

Return type:

numpy.ndarray | None

pole_placement.transformationTool.core.siso_tf_coeffs(A, B, C, D)[source]
Parameters:
  • A (numpy.ndarray)

  • B (numpy.ndarray)

  • C (numpy.ndarray)

  • D (numpy.ndarray | None)

pole_placement.transformationTool.core.to_ccf(A, B, C, D)[source]
Parameters:
  • A (numpy.ndarray)

  • B (numpy.ndarray)

  • C (numpy.ndarray | None)

  • D (numpy.ndarray | None)

pole_placement.transformationTool.core.to_diag(A, B, C, D, tol=1e-08)[source]
Parameters:
  • A (numpy.ndarray)

  • B (numpy.ndarray | None)

  • C (numpy.ndarray | None)

  • D (numpy.ndarray | None)

pole_placement.transformationTool.core.to_jordan_sympy(A, B, C, D)[source]
Parameters:
  • A (numpy.ndarray)

  • B (numpy.ndarray | None)

  • C (numpy.ndarray | None)

  • D (numpy.ndarray | None)

pole_placement.transformationTool.core.to_ocf(A, B, C, D)[source]
Parameters:
  • A (numpy.ndarray)

  • B (numpy.ndarray | None)

  • C (numpy.ndarray)

  • D (numpy.ndarray | None)

pole_placement.transformationTool.io

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

path (str)

Return type:

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

pole_placement.transformationTool.io.parse_matrix(text)[source]
Parameters:

text (str | None)

Return type:

numpy.ndarray | None

pole_placement.transformationTool.utils

pole_placement.transformationTool.utils.cached(fn)[source]

Simple memoization decorator for pure helpers.

pole_placement.transformationTool.utils.dump_json(obj, basename)[source]
Parameters:
  • obj (dict)

  • basename (str)

pole_placement.transformationTool.utils.ensure_outdir()[source]
pole_placement.transformationTool.utils.numpy_json(obj)[source]
Parameters:

obj (Any)

Return type:

Any

pole_placement.transformationTool.utils.pretty_mat(M, w=12, p=6)[source]
Parameters:
  • M (numpy.ndarray)

  • w (int)

  • p (int)

Return type:

str

pole_placement.transformationTool.utils.save_csv_bundle(mats, basename)[source]
Parameters:
  • mats (dict)

  • basename (str)

pole_placement.transformationTool.utils.save_csv_matrix(M, path)[source]
Parameters:
  • M (numpy.ndarray)

  • path (str)

pole_placement.transformationTool.design

pole_placement.transformationTool.design.export_bundle(name, T, Ahat, Bhat, Chat, Dhat, save_json, save_csv)[source]
Parameters:
  • name (str)

  • save_json (bool)

  • save_csv (bool)

pole_placement.transformationTool.design.print_header(title)[source]
Parameters:

title (str)

pole_placement.transformationTool.design.show_matrix_block(Ahat, Bhat, Chat, Dhat, pretty)[source]
Parameters:

pretty (bool)