API Reference

transient_analysis.icTool.cli

transient_analysis.icTool.app

class transient_analysis.icTool.app.IcToolApp(base_dir=None)[source]

Bases: object

High-level orchestrator with conventional in/out directories.

Parameters:

base_dir (Path | None)

in_dir: Path
out_dir: Path
run_case1(A, x0, T, *, save=False)[source]
Parameters:
  • A (ndarray)

  • x0 (ndarray)

  • T (ndarray)

  • save (bool)

run_case2(A, C, x0, T, *, save=False)[source]
Parameters:
  • A (ndarray)

  • C (ndarray)

  • x0 (ndarray)

  • T (ndarray)

  • save (bool)

run_compare1(A, x0, T, *, save=False)[source]
Parameters:
  • A (ndarray)

  • x0 (ndarray)

  • T (ndarray)

  • save (bool)

run_compare2(A, C, x0, T, *, save=False)[source]
Parameters:
  • A (ndarray)

  • C (ndarray)

  • x0 (ndarray)

  • T (ndarray)

  • save (bool)

run_tf_step_generic(num_ic, den, T, *, save=False, save_json=False, basename='tf_step')[source]
Parameters:
  • num_ic (ndarray)

  • den (ndarray)

  • T (ndarray)

  • save (bool)

  • save_json (bool)

  • basename (str)

run_tf_step_ogata(m, b, k, x0, v0, T, *, save=False, save_json=False, overlay_analytic=False, basename='tf_step_ogata')[source]
Parameters:
  • m (float)

  • b (float)

  • k (float)

  • x0 (float)

  • v0 (float)

  • T (ndarray)

  • save (bool)

  • save_json (bool)

  • overlay_analytic (bool)

  • basename (str)

transient_analysis.icTool.utils

class transient_analysis.icTool.utils.CaseResult(T, Y, label_rows)[source]

Bases: object

Container for a single IC computation (direct or step-equivalent).

Parameters:
  • T (ndarray)

  • Y (ndarray)

  • label_rows (tuple[str, ...])

T: ndarray
Y: ndarray
label_rows: tuple[str, ...]
to_dict()[source]
Return type:

dict

class transient_analysis.icTool.utils.CompareResult(direct, step_equiv)[source]

Bases: object

Paired result for direct vs step-equivalent calculations.

Parameters:
direct: CaseResult
step_equiv: CaseResult
to_json(path)[source]
Parameters:

path (Path)

Return type:

Path

transient_analysis.icTool.utils.ensure_dir(p)[source]
Parameters:

p (Path)

Return type:

Path

transient_analysis.icTool.utils.forced_response_safe(sys, T, U)[source]

Call control.forced_response and return (T, Y) with Y shape (m, N).

Parameters:
  • sys (StateSpace)

  • T (ndarray)

  • U (ndarray)

Return type:

tuple[ndarray, ndarray]

transient_analysis.icTool.utils.initial_response_safe(sys, T, X0)[source]

Call control.initial_response and return (T, Y) with Y shape (m, N), where m is the number of outputs. Works across python-control versions that return (T, y) or a ResponseData-like object.

Parameters:
  • sys (StateSpace)

  • T (ndarray)

  • X0 (ndarray)

Return type:

tuple[ndarray, ndarray]

transient_analysis.icTool.utils.parse_matrix(s)[source]

Accept ‘row1; row2’ with spaces or commas; return 2-D float array. Example: “0 1; -6 -5” or “[0, 1; -6, -5]”.

Parameters:

s (str)

Return type:

ndarray

transient_analysis.icTool.utils.parse_poly(s)[source]

Parse TF polynomial coefficients in descending powers. Accepts forms like ‘1 3 2’, ‘1,3,2’, or ‘[1, 3, 2]’. Returns a 1-D float array.

Parameters:

s (str)

Return type:

ndarray

transient_analysis.icTool.utils.parse_vector(s)[source]

Accept ‘a b c’, ‘a,b,c’, ‘a; b’ or bracketed; return 1-D float array. Robust to extra whitespace; raises ValueError on empty.

Parameters:

s (str)

Return type:

ndarray

transient_analysis.icTool.utils.safe_ss(A, B, C, D)[source]

Wrapper around control.ss that normalizes input types and shapes.

Parameters:
  • A (ndarray)

  • B (ndarray)

  • C (ndarray)

  • D (ndarray)

Return type:

StateSpace

transient_analysis.icTool.utils.time_grid(tfinal, dt)[source]
Parameters:
  • tfinal (float)

  • dt (float)

Return type:

ndarray

transient_analysis.icTool.apis

class transient_analysis.icTool.apis.ApiResponse(ok: 'bool', data: 'Dict[str, Any]', msg: 'str' = '')[source]

Bases: object

Parameters:
  • ok (bool)

  • data (Dict[str, Any])

  • msg (str)

data: Dict[str, Any]
msg: str
ok: bool
class transient_analysis.icTool.apis.Compare1Req(*, A, x0, tfinal, dt)[source]

Bases: BaseModel

Parameters:
  • A (list[list[float]])

  • x0 (list[float])

  • tfinal (float)

  • dt (float)

A: list[list[float]]
dt: float
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

tfinal: float
x0: list[float]
class transient_analysis.icTool.apis.Compare2Req(*, A, C, x0, tfinal, dt)[source]

Bases: BaseModel

Parameters:
  • A (list[list[float]])

  • C (list[list[float]])

  • x0 (list[float])

  • tfinal (float)

  • dt (float)

A: list[list[float]]
C: list[list[float]]
dt: float
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

tfinal: float
x0: list[float]
class transient_analysis.icTool.apis.TfGenericReq(*, num_ic, den, tfinal, dt)[source]

Bases: BaseModel

Parameters:
  • num_ic (list[float])

  • den (list[float])

  • tfinal (float)

  • dt (float)

den: list[float]
dt: float
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

num_ic: list[float]
tfinal: float
class transient_analysis.icTool.apis.TfOgataReq(*, m, b, k, x0, v0, tfinal, dt)[source]

Bases: BaseModel

Parameters:
  • m (float)

  • b (float)

  • k (float)

  • x0 (float)

  • v0 (float)

  • tfinal (float)

  • dt (float)

b: float
dt: float
k: float
m: float
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

tfinal: float
v0: float
x0: float
transient_analysis.icTool.apis.case1_api(A, x0, *, tfinal, dt)[source]
Parameters:
  • A (ndarray)

  • x0 (ndarray)

  • tfinal (float)

  • dt (float)

Return type:

ApiResponse

transient_analysis.icTool.apis.case2_api(A, C, x0, *, tfinal, dt)[source]
Parameters:
  • A (ndarray)

  • C (ndarray)

  • x0 (ndarray)

  • tfinal (float)

  • dt (float)

Return type:

ApiResponse

transient_analysis.icTool.apis.compare1_api(A, x0, *, tfinal, dt)[source]
Parameters:
  • A (ndarray)

  • x0 (ndarray)

  • tfinal (float)

  • dt (float)

Return type:

ApiResponse

transient_analysis.icTool.apis.compare2_api(A, C, x0, *, tfinal, dt)[source]
Parameters:
  • A (ndarray)

  • C (ndarray)

  • x0 (ndarray)

  • tfinal (float)

  • dt (float)

Return type:

ApiResponse

transient_analysis.icTool.apis.get_http_app()[source]
transient_analysis.icTool.apis.tf_step_api_from_mbk(m, b, k, x0, v0, *, tfinal, dt)[source]

Build G_ic(s) from (m,b,k,x0,v0) using Ogata’s step-equivalence and return its unit-step response y(t) over [0, tfinal] with step dt.

Parameters:
  • m (float)

  • b (float)

  • k (float)

  • x0 (float)

  • v0 (float)

  • tfinal (float)

  • dt (float)

Return type:

ApiResponse

transient_analysis.icTool.apis.tf_step_api_generic(num_ic, den, *, tfinal, dt)[source]

Given G_ic(s) explicitly via (num_ic, den), return the unit-step response y(t) over [0, tfinal] with step dt.

Parameters:
  • num_ic (ndarray)

  • den (ndarray)

  • tfinal (float)

  • dt (float)

Return type:

ApiResponse

transient_analysis.icTool.core

class transient_analysis.icTool.core.ICProblem(A, x0, C=None)[source]

Bases: object

Problem data for response to initial conditions.

Parameters:
  • A (ndarray (n,n)) – State matrix.

  • x0 (ndarray (n,)) – Initial state.

  • C (ndarray (m,n), optional) – Output map for Case 2. For Case 1, C is ignored and I is used.

A: ndarray
C: ndarray | None
x0: ndarray
class transient_analysis.icTool.core.ICSolver(pb)[source]

Bases: object

Compute responses to initial conditions (Case 1 and Case 2).

Shapes: all outputs are normalized to (rows, N) arrays.

Parameters:

pb (ICProblem)

case1_direct(**k)
case1_step_equiv(**k)
case2_direct(**k)
case2_step_equiv(**k)
compare1(T)[source]
Parameters:

T (ndarray)

Return type:

CompareResult

compare2(T)[source]
Parameters:

T (ndarray)

Return type:

CompareResult

transient_analysis.icTool.design

class transient_analysis.icTool.design.IcDesigns[source]

Bases: object

Small preset library for demos and tests.

static second_order_example()[source]
static third_order_output_example()[source]

transient_analysis.icTool.io

transient_analysis.icTool.io.dump_json(path, obj)[source]
Parameters:
  • path (Path)

  • obj (dict)

Return type:

Path

transient_analysis.icTool.io.load_matrix_from_txt(path)[source]
Parameters:

path (Path)

Return type:

ndarray

transient_analysis.icTool.io.load_vector_from_txt(path)[source]
Parameters:

path (Path)

Return type:

ndarray