API Reference

state_space_analysis.stateSolnTool.cli

state_space_analysis.stateSolnTool.cli.build_parser()[source]
Return type:

ArgumentParser

state_space_analysis.stateSolnTool.cli.main(argv=None)[source]
Parameters:

argv (list[str] | None)

Return type:

int

state_space_analysis.stateSolnTool.apis

class state_space_analysis.stateSolnTool.apis.SolveRequest(tf: 'Optional[str]' = None, num: 'Optional[str]' = None, den: 'Optional[str]' = None, example: 'Optional[str]' = None, canonical: 'str' = 'controllable', u: 'str' = '1', x0: 'Optional[str]' = None, t0: 'float' = 0.0, eval_time: 'Optional[float]' = None, numeric: 'bool' = False, digits: 'int' = 8, pretty: 'bool' = False, export_json: 'Optional[str]' = None, verify: 'bool' = False, tol: 'float' = 1e-09, log_level: 'str' = 'INFO')[source]

Bases: object

Parameters:
  • tf (str | None)

  • num (str | None)

  • den (str | None)

  • example (str | None)

  • canonical (str)

  • u (str)

  • x0 (str | None)

  • t0 (float)

  • eval_time (float | None)

  • numeric (bool)

  • digits (int)

  • pretty (bool)

  • export_json (str | None)

  • verify (bool)

  • tol (float)

  • log_level (str)

canonical: str = 'controllable'
den: str | None = None
digits: int = 8
eval_time: float | None = None
example: str | None = None
export_json: str | None = None
log_level: str = 'INFO'
num: str | None = None
numeric: bool = False
pretty: bool = False
t0: float = 0.0
tf: str | None = None
tol: float = 1e-09
u: str = '1'
verify: bool = False
x0: str | None = None
class state_space_analysis.stateSolnTool.apis.SolveResponse(A: 'str', B: 'str', Phi: 'str', x_hom: 'str', x_part: 'str', x: 'str', verification: 'Optional[str]' = None)[source]

Bases: object

Parameters:
  • A (str)

  • B (str)

  • Phi (str)

  • x_hom (str)

  • x_part (str)

  • x (str)

  • verification (str | None)

A: str
B: str
Phi: str
verification: str | None = None
x: str
x_hom: str
x_part: str

state_space_analysis.stateSolnTool.app

class state_space_analysis.stateSolnTool.app.StateSolnApp(canonical='controllable')[source]

Bases: object

Parameters:

canonical (str)

DEFAULT_OUTDIR = 'state_space_analysis/stateSolnTool/out'
static configure_logging(level='INFO')[source]
Parameters:

level (str)

run(**kwargs)[source]

state_space_analysis.stateSolnTool.core

class state_space_analysis.stateSolnTool.core.Realization(A: 'sp.Matrix', B: 'sp.Matrix')[source]

Bases: object

Parameters:
  • A (MutableDenseMatrix)

  • B (MutableDenseMatrix)

A: MutableDenseMatrix
B: MutableDenseMatrix
class state_space_analysis.stateSolnTool.core.RealizationFactory[source]

Bases: object

static controllable(num_desc, den_desc)[source]
Return type:

Realization

static diagonal(den_desc)[source]
Return type:

Realization | None

static jordan(A, B)[source]
Parameters:
  • A (MutableDenseMatrix)

  • B (MutableDenseMatrix)

Return type:

Realization

static observable(Ac)[source]
Parameters:

Ac (MutableDenseMatrix)

Return type:

Realization

class state_space_analysis.stateSolnTool.core.SolutionVerifier[source]

Bases: object

static verify(A, B, u_expr, x0, x_t, t0, tol=1e-09)[source]
Parameters:
  • A (MutableDenseMatrix)

  • B (MutableDenseMatrix)

  • u_expr (Expr)

  • x0 (MutableDenseMatrix)

  • x_t (MutableDenseMatrix)

  • t0 (float)

  • tol (float)

Return type:

Tuple[bool, str]

class state_space_analysis.stateSolnTool.core.StateSolnEngine(canonical='controllable')[source]

Bases: object

Parameters:

canonical (str)

EXAMPLES = {'ogata_9_1': '(s+3)/(s**2+3*s+2)'}
parse_tf(tf, num, den, example)[source]
Parameters:
  • tf (str | None)

  • num (str | None)

  • den (str | None)

  • example (str | None)

run(*, tf=None, num=None, den=None, example=None, u='1', x0=None, t0=0.0, eval_time=None, numeric=False, digits=8, pretty=False, verify=False, tol=1e-09, export_json=None)[source]
Parameters:

export_json (str | None)

class state_space_analysis.stateSolnTool.core.StateSolver(realization, t0=0.0)[source]

Bases: object

Parameters:
static phi(A, t)[source]
Parameters:
  • A (MutableDenseMatrix)

  • t (Symbol)

Return type:

MutableDenseMatrix

solve(u_expr, x0)[source]
Parameters:
  • u_expr (Expr)

  • x0 (MutableDenseMatrix)

Return type:

Tuple[MutableDenseMatrix, MutableDenseMatrix, MutableDenseMatrix, MutableDenseMatrix]

state_space_analysis.stateSolnTool.io

state_space_analysis.stateSolnTool.io.coeffs_asc(desc, n)[source]

Return ascending [a0 … a_{n-1}] padded/truncated to length n.

Parameters:
  • desc (List[Expr])

  • n (int)

Return type:

List[Expr]

state_space_analysis.stateSolnTool.io.ensure_proper(num_desc, den_desc)[source]

If degN==degD, do long division to extract D (constant feedthrough).

Parameters:
  • num_desc (List[Expr])

  • den_desc (List[Expr])

Return type:

Tuple[List[Expr], List[Expr], Expr]

state_space_analysis.stateSolnTool.io.normalize_monic(num_desc, den_desc)[source]

Make denominator monic.

Parameters:
  • num_desc (List[Expr])

  • den_desc (List[Expr])

Return type:

Tuple[List[Expr], List[Expr]]

state_space_analysis.stateSolnTool.io.parse_poly(arg)[source]

CSV ‘1,3,2’ or poly string ‘s^2+3*s+2’ → coeffs (descending powers, exact).

Parameters:

arg (str | List[float])

Return type:

List[Expr]

state_space_analysis.stateSolnTool.io.parse_tf_string(tf_str)[source]
Parameters:

tf_str (str)

Return type:

Tuple[List[Expr], List[Expr]]

state_space_analysis.stateSolnTool.io.parse_vec_csv(txt, n)[source]
Parameters:
  • txt (str | None)

  • n (int)

Return type:

MutableDenseMatrix

state_space_analysis.stateSolnTool.io.save_json(path, payload)[source]
Parameters:
  • path (str)

  • payload (dict)

Return type:

None

state_space_analysis.stateSolnTool.utils

state_space_analysis.stateSolnTool.utils.is_square_free(poly)[source]
Parameters:

poly (Poly)

Return type:

bool

state_space_analysis.stateSolnTool.utils.pretty_matrix(M)[source]
Return type:

str

state_space_analysis.stateSolnTool.utils.sym_s()[source]
Return type:

Symbol

state_space_analysis.stateSolnTool.utils.sym_t()[source]
Return type:

Symbol

state_space_analysis.stateSolnTool.utils.timing(fn)[source]
state_space_analysis.stateSolnTool.utils.to_expr_s(s_txt)[source]
Parameters:

s_txt (str)

Return type:

Expr

state_space_analysis.stateSolnTool.utils.to_expr_t(t_txt)[source]
Parameters:

t_txt (str)

Return type:

Expr

state_space_analysis.stateSolnTool.utils.to_numeric(M, digits=8)[source]
Parameters:

digits (int)