API Reference

class control_systems.converterTool.app.ConverterApp(level: 'int | str' = 20)[source]
class ConverterEngine

Pure conversion and normalization logic (no plotting, no I/O).

static coeffs_from_tf(G) tuple[ndarray, ndarray]
static normalize(num, den) tuple[ndarray, ndarray]
ss_to_tf(ssm: SSModel)
tf_to_ss(tfm: TFModel) SSModel
eng: ConverterEngine
field(*, default_factory=<dataclasses._MISSING_TYPE object>, init=True, repr=True, hash=None, compare=True, metadata=None, kw_only=<dataclasses._MISSING_TYPE object>)

Return an object to identify dataclass fields.

default is the default value of the field. default_factory is a 0-argument function called to initialize a field’s value. If init is true, the field will be a parameter to the class’s __init__() function. If repr is true, the field will be included in the object’s repr(). If hash is true, the field will be included in the object’s hash(). If compare is true, the field will be used in comparison functions. metadata, if specified, must be a mapping which is stored but not otherwise examined by dataclass. If kw_only is true, the field will become a keyword-only parameter to __init__().

It is an error to specify both default and default_factory.

level: int | str
run(cfg: ConverterConfig) ConverterResult[source]
class control_systems.converterTool.apis.ConverterConfig(num: 'Optional[str]' = None, den: 'Optional[str]' = None, A: 'Optional[str]' = None, B: 'Optional[str]' = None, C: 'Optional[str]' = None, D: 'Optional[str]' = None, iu: 'int' = 0, tfinal: 'float' = 8.0, dt: 'float' = 0.001, sympy: 'bool' = False, no_plot: 'bool' = False, save_json: 'Optional[str]' = None)[source]
A: str | None
B: str | None
C: str | None
D: str | None
den: str | None
dt: float
iu: int
no_plot: bool
num: str | None
save_json: str | None
sympy: bool
tfinal: float
class control_systems.converterTool.apis.ConverterResult(mode: 'str', tf: 'Optional[ct.TransferFunction]' = None, ss: 'Optional[ct.StateSpace]' = None, pretty_tf: 'Optional[str]' = None, pretty_sympy: 'Optional[str]' = None)[source]
mode: str
pretty_sympy: str | None
pretty_tf: str | None
ss: StateSpace | None
tf: TransferFunction | None
control_systems.converterTool.apis.convert_ss_to_tf(A: ndarray, B: ndarray, C: ndarray, D: ndarray)[source]
control_systems.converterTool.apis.convert_tf_to_ss(num: ndarray, den: ndarray) SSModel[source]
class control_systems.converterTool.core.ConverterEngine[source]

Pure conversion and normalization logic (no plotting, no I/O).

static coeffs_from_tf(G) tuple[ndarray, ndarray][source]
static normalize(num, den) tuple[ndarray, ndarray][source]
ss_to_tf(ssm: SSModel)[source]
tf_to_ss(tfm: TFModel) SSModel[source]
class control_systems.converterTool.core.SSModel(A: 'np.ndarray', B: 'np.ndarray', C: 'np.ndarray', D: 'np.ndarray')[source]
A: ndarray
B: ndarray
C: ndarray
D: ndarray
to_ct() StateSpace[source]
class control_systems.converterTool.core.TFModel(num: 'np.ndarray', den: 'np.ndarray')[source]
den: ndarray
num: ndarray
to_ct() TransferFunction[source]
control_systems.converterTool.io.ensure_out_path(path: Path | None, default_name: str, suffix: str = '.json') Path[source]
control_systems.converterTool.io.parse_matrix(s: str | None) ndarray | None[source]
control_systems.converterTool.io.parse_vector(s: str | None) ndarray | None[source]
control_systems.converterTool.io.read_json(path: Path)[source]
control_systems.converterTool.io.write_json(obj, out_path: Path) Path[source]
class control_systems.converterTool.design.ConverterPretty[source]
static coeffs(G)[source]
static sympy_rat(G) str[source]
control_systems.converterTool.design.plot_step_ss(ssys, iu=0, tfinal=8.0, dt=0.001, title='Step response (SS)') None[source]
control_systems.converterTool.design.plot_step_tf(G, tfinal=8.0, dt=0.001, title='Step response (TF)') None[source]
control_systems.converterTool.design.pretty_tf_any(G) str[source]