API Reference

state_space_design.gainMatrixTool.cli

state_space_design.gainMatrixTool.cli.build_parser()[source]
Return type:

ArgumentParser

state_space_design.gainMatrixTool.cli.main(argv=None)[source]
Parameters:

argv (list[str] | None)

Return type:

int

state_space_design.gainMatrixTool.app

class state_space_design.gainMatrixTool.app.GainMatrixApp(api: 'GainMatrixAPI')[source]

Bases: object

Parameters:

api (GainMatrixAPI)

api: GainMatrixAPI
configure_logging(log_path, verbose)[source]
Parameters:
  • log_path (str | None)

  • verbose (bool)

classmethod default()[source]
run_batch(csv, yaml, export_dir, verify, pretty)[source]
Parameters:
  • csv (str | None)

  • yaml (str | None)

  • export_dir (str)

  • verify (bool)

  • pretty (bool)

run_single(**kwargs)[source]

state_space_design.gainMatrixTool.apis

class state_space_design.gainMatrixTool.apis.GainMatrixAPI(design, io_reader, exporter)[source]

Bases: object

Public API surface for app/tests/CLI.

Parameters:
batch(cases, export_dir, verify, pretty)[source]
Parameters:
  • export_dir (str)

  • verify (bool)

  • pretty (bool)

classmethod default()[source]
design: DesignService
exporter: JsonExporter
io_reader: BatchReader
single(**kwargs)[source]
Return type:

Dict[str, Any]

state_space_design.gainMatrixTool.core

class state_space_design.gainMatrixTool.core.GainMatrixDesigner[source]

Bases: object

Core design engine for state feedback (K), observer (L), and servo (kI).

design_K(A, B, poles, method='auto', verify=False, pretty=False)[source]
Parameters:
  • A (ndarray)

  • B (ndarray)

  • poles (list)

  • method (str)

  • verify (bool)

  • pretty (bool)

Return type:

GainMatrixResult

design_KI(A, B, C, poles, method='auto', verify=False, pretty=False)[source]
Parameters:
  • A (ndarray)

  • B (ndarray)

  • C (ndarray)

  • poles (list)

  • method (str)

  • verify (bool)

  • pretty (bool)

Return type:

GainMatrixResult

design_L(A, C, poles, method='auto', verify=False, pretty=False)[source]
Parameters:
  • A (ndarray)

  • C (ndarray)

  • poles (list)

  • method (str)

  • verify (bool)

  • pretty (bool)

Return type:

GainMatrixResult

class state_space_design.gainMatrixTool.core.GainMatrixRequest(mode: 'str', A: 'np.ndarray', B: 'Optional[np.ndarray]' = None, C: 'Optional[np.ndarray]' = None, poles: 'Optional[list]' = None, method: 'str' = 'auto', verify: 'bool' = False, pretty: 'bool' = False)[source]

Bases: object

Parameters:
  • mode (str)

  • A (ndarray)

  • B (ndarray | None)

  • C (ndarray | None)

  • poles (list | None)

  • method (str)

  • verify (bool)

  • pretty (bool)

A: ndarray
B: ndarray | None = None
C: ndarray | None = None
method: str = 'auto'
mode: str
poles: list | None = None
pretty: bool = False
verify: bool = False
class state_space_design.gainMatrixTool.core.GainMatrixResult(payload: 'dict')[source]

Bases: object

Parameters:

payload (dict)

payload: dict
state_space_design.gainMatrixTool.core.almost_controllable_canonical(A, tol=1e-09)[source]
Parameters:
  • A (ndarray)

  • tol (float)

Return type:

bool

state_space_design.gainMatrixTool.core.choose_method(A, B, method)[source]
Parameters:
  • A (ndarray)

  • B (ndarray)

  • method (str)

Return type:

str

state_space_design.gainMatrixTool.core.companion_coef_difference_K(A, B, poles)[source]
Parameters:
  • A (ndarray)

  • B (ndarray)

  • poles (list)

Return type:

ndarray

state_space_design.gainMatrixTool.core.is_controllable(A, B)[source]
Parameters:
  • A (ndarray)

  • B (ndarray)

Return type:

Tuple[bool, int]

state_space_design.gainMatrixTool.core.is_observable(A, C)[source]
Parameters:
  • A (ndarray)

  • C (ndarray)

Return type:

Tuple[bool, int]

state_space_design.gainMatrixTool.core.parse_matrix(s, dtype=<class 'float'>)[source]
Parameters:

s (str)

Return type:

ndarray

state_space_design.gainMatrixTool.core.parse_poles_arg(poles_arg)[source]
Return type:

list

state_space_design.gainMatrixTool.core.parse_vector(s)[source]
Parameters:

s (str)

Return type:

ndarray

state_space_design.gainMatrixTool.core.place_gain(A, B, poles, method)[source]
Parameters:
  • A (ndarray)

  • B (ndarray)

  • poles (list)

  • method (str)

Return type:

ndarray

state_space_design.gainMatrixTool.core.verify_poles(M, desired)[source]
Parameters:
  • M (ndarray)

  • desired (list)

state_space_design.gainMatrixTool.design

class state_space_design.gainMatrixTool.design.DesignService(designer)[source]

Bases: object

High-level service orchestrating single-case gain designs.

Parameters:

designer (GainMatrixDesigner)

designer: GainMatrixDesigner
run_single(mode, A, B, C, poles, method, verify, pretty)[source]
Parameters:
  • mode (str)

  • A (str)

  • B (str | None)

  • C (str | None)

  • method (str)

  • verify (bool)

  • pretty (bool)

Return type:

Dict[str, Any]

state_space_design.gainMatrixTool.io

class state_space_design.gainMatrixTool.io.BatchReader[source]

Bases: object

from_csv(path)[source]
Parameters:

path (str)

Return type:

List[Dict[str, Any]]

from_yaml(path)[source]
Parameters:

path (str)

Return type:

List[Dict[str, Any]]

class state_space_design.gainMatrixTool.io.JsonExporter[source]

Bases: object

export(payload, path)[source]
Parameters:
  • payload (dict)

  • path (str)

state_space_design.gainMatrixTool.utils

state_space_design.gainMatrixTool.utils.pretty_matrix(M, digits=6)[source]
Parameters:
  • M (ndarray)

  • digits (int)

Return type:

str

state_space_design.gainMatrixTool.utils.timed(fn)[source]

Decorator: log runtime if logging is configured.

state_space_design.gainMatrixTool.utils.to_jsonable(x)[source]