API Reference¶
pole_placement.transformationTool.cli¶
Command-line interface for pole_placement.transformationTool.
The CLI supports two usage styles:
Modern subcommand form:
python -m pole_placement.transformationTool.cli run --json in/system.json --to-ccf
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.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.io¶
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.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