API Reference

state_space.stateSpaceTool.cli

Command-line interface for state_space.stateSpaceTool.

The CLI supports two usage styles:

  1. Modern subcommand form:

    python -m state_space.stateSpaceTool.cli run --example ogata_5_1
    
  2. Historical no-subcommand form:

    python -m state_space.stateSpaceTool.cli --example ogata_5_1
    

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

state_space.stateSpaceTool.cli.build_parser()[source]

Build the command-line parser.

Return type:

ArgumentParser

state_space.stateSpaceTool.cli.main(argv=None)[source]

Run the stateSpaceTool command-line interface.

Parameters:

argv (list[str] | None)

Return type:

int

state_space.stateSpaceTool.apis

class state_space.stateSpaceTool.apis.RunRequest(form: 'str' = 'auto', num: 'Optional[str]' = None, den: 'Optional[str]' = None, zeros: 'Optional[str]' = None, poles: 'Optional[str]' = None, gain: 'Optional[float]' = None, forms: 'str' = 'cont,obs,diag,jordan', realblocks: 'bool' = False, dt: 'float' = 1.0, latex: 'bool' = False, latex_out: 'Optional[str]' = None, json_out: 'Optional[str]' = None, check: 'str' = 'brief', quiet: 'bool' = False)[source]

Bases: object

Parameters:
  • form (str)

  • num (str | None)

  • den (str | None)

  • zeros (str | None)

  • poles (str | None)

  • gain (float | None)

  • forms (str)

  • realblocks (bool)

  • dt (float)

  • latex (bool)

  • latex_out (str | None)

  • json_out (str | None)

  • check (str)

  • quiet (bool)

check: str = 'brief'
den: str | None = None
dt: float = 1.0
form: str = 'auto'
forms: str = 'cont,obs,diag,jordan'
gain: float | None = None
json_out: str | None = None
latex: bool = False
latex_out: str | None = None
num: str | None = None
poles: str | None = None
quiet: bool = False
realblocks: bool = False
zeros: str | None = None
class state_space.stateSpaceTool.apis.RunResult(realizations: 'Dict[str, Dict[str, List[List[float]]]]', latex: 'Optional[str]' = None, check_log: 'Optional[str]' = None)[source]

Bases: object

Parameters:
  • realizations (Dict[str, Dict[str, List[List[float]]]])

  • latex (str | None)

  • check_log (str | None)

check_log: str | None = None
latex: str | None = None
realizations: Dict[str, Dict[str, List[List[float]]]]

state_space.stateSpaceTool.app

class state_space.stateSpaceTool.app.StateSpaceApp[source]

Bases: object

Orchestrates parsing, realizations, optional LaTeX and checks.

run(req)[source]
Parameters:

req (RunRequest)

Return type:

RunResult

state_space.stateSpaceTool.core

state_space.stateSpaceTool.core.controllable_canonical(b, a)[source]
Parameters:
  • b (Sequence[float])

  • a (Sequence[float])

Return type:

Tuple[numpy.typing.NDArray, numpy.typing.NDArray, numpy.typing.NDArray, numpy.typing.NDArray]

state_space.stateSpaceTool.core.jordan_or_diagonal(b, a)[source]
Parameters:
  • b (Sequence[float])

  • a (Sequence[float])

Return type:

Tuple[numpy.typing.NDArray, numpy.typing.NDArray, numpy.typing.NDArray, numpy.typing.NDArray, Dict[complex, int]]

state_space.stateSpaceTool.core.observable_canonical(b, a)[source]
Parameters:
  • b (Sequence[float])

  • a (Sequence[float])

Return type:

Tuple[numpy.typing.NDArray, numpy.typing.NDArray, numpy.typing.NDArray, numpy.typing.NDArray]

state_space.stateSpaceTool.core.realify_complex_pairs(A, B, C, D, multiplicities, quiet=False)[source]
Parameters:
  • A (numpy.typing.NDArray)

  • B (numpy.typing.NDArray)

  • C (numpy.typing.NDArray)

  • D (numpy.typing.NDArray)

  • multiplicities (Dict[complex, int])

  • quiet (bool)

Return type:

Tuple[numpy.typing.NDArray, numpy.typing.NDArray, numpy.typing.NDArray, numpy.typing.NDArray]

state_space.stateSpaceTool.io

state_space.stateSpaceTool.io.parse_poly(num, den, form, zeros, poles, gain)[source]
Return (b, a) for Ogata 5-6 layout:

H(z) = (b0 + b1 z^-1 + … + bn z^-n) / (1 + a1 z^-1 + … + an z^-n)

Parameters:
  • num (str | None)

  • den (str | None)

  • form (str)

  • zeros (str | None)

  • poles (str | None)

  • gain (float | None)

Return type:

Tuple[List[float], List[float]]

state_space.stateSpaceTool.io.polyz_to_zmin1(Nz, Dz)[source]
Parameters:
  • Nz (sympy.Expr)

  • Dz (sympy.Expr)

state_space.stateSpaceTool.utils

state_space.stateSpaceTool.utils.coeffs_desc_to_expr(coeffs, z)[source]
Parameters:
  • coeffs (Sequence[float])

  • z (sympy.Symbol)

Return type:

sympy.Expr

state_space.stateSpaceTool.utils.expr_to_poly(expr, z)[source]
Parameters:
  • expr (sympy.Expr)

  • z (sympy.Symbol)

Return type:

sympy.Poly

state_space.stateSpaceTool.utils.json_matrix(M, tol=1e-12)[source]
Parameters:
  • M (numpy.typing.NDArray)

  • tol (float)

state_space.stateSpaceTool.utils.sympy_matrix_from_numpy(M)[source]
Parameters:

M (numpy.typing.NDArray)

Return type:

sympy.Matrix

state_space.stateSpaceTool.utils.to_float_list(txt)[source]
Parameters:

txt (str | None)

Return type:

List[float]

state_space.stateSpaceTool.utils.to_real_if_close(M, tol=1e-12)[source]
Parameters:
  • M (numpy.typing.NDArray)

  • tol (float)

Return type:

numpy.typing.NDArray

state_space.stateSpaceTool.utils.zdomain_coeffs_from_ba(b, a)[source]
Parameters:
  • b (Sequence[float])

  • a (Sequence[float])

Return type:

Tuple[List[float], List[float]]

state_space.stateSpaceTool.design

state_space.stateSpaceTool.design.dump_realizations_json(path, obj)[source]
Parameters:
  • path (str)

  • obj (Dict[str, Dict[str, List[List[float]]]])

state_space.stateSpaceTool.design.latex_block(title, A, B, C, D)[source]
Parameters:
  • title (str)

  • A (numpy.typing.NDArray)

  • B (numpy.typing.NDArray)

  • C (numpy.typing.NDArray)

  • D (numpy.typing.NDArray)

Return type:

str

state_space.stateSpaceTool.design.latex_matrix(M)[source]
Parameters:

M (numpy.typing.NDArray)

Return type:

str

state_space.stateSpaceTool.design.latex_tf(b, a)[source]
Parameters:
  • b (Sequence[float])

  • a (Sequence[float])

Return type:

Tuple[str, str]

state_space.stateSpaceTool.design.normalize_tf(num, den)[source]
state_space.stateSpaceTool.design.pretty_ss_lines(A, B, C, D)[source]
Parameters:
  • A (numpy.typing.NDArray)

  • B (numpy.typing.NDArray)

  • C (numpy.typing.NDArray)

  • D (numpy.typing.NDArray)

Return type:

Tuple[str, str]

state_space.stateSpaceTool.design.pretty_tf_lines(b, a)[source]
Parameters:
  • b (Sequence[float])

  • a (Sequence[float])

Return type:

Tuple[str, str]

state_space.stateSpaceTool.design.s_one_line(expr)[source]
Parameters:

expr (sympy.Expr)

Return type:

str

state_space.stateSpaceTool.design.tf_brief_check(b, a, dt)[source]
Parameters:

dt (float)

Return type:

str