API Reference

Application Layer

class frequency_response.experimentTool.app.ExperimentApp(root: 'Path', delay_method: 'str' = 'frd', pade_order: 'int' = 6)[source]
Parameters:
  • root (Path)

  • delay_method (str)

  • pade_order (int)

delay_method: str
property in_dir: Path
property out_dir: Path
pade_order: int
preset()[source]
Return type:

ModelSpec

root: Path
run(spec, *, wmin, wmax, npts)[source]
Parameters:
  • spec (ModelSpec)

  • wmin (float)

  • wmax (float)

  • npts (int)

Return type:

dict

synth_csv(spec, *, wmin, wmax, npts, csv_out, noise_db=0.0, noise_deg=0.0)[source]
Parameters:
  • spec (ModelSpec)

  • wmin (float)

  • wmax (float)

  • npts (int)

  • csv_out (str)

  • noise_db (float)

  • noise_deg (float)

Return type:

str

Public API / Service Layer

class frequency_response.experimentTool.apis.ExperimentService(delay_method: 'str' = 'frd', pade_order: 'int' = 6)[source]
Parameters:
  • delay_method (str)

  • pade_order (int)

bode_for(spec, wmin, wmax, npts)[source]
Parameters:
  • spec (ModelSpec)

  • wmin (float)

  • wmax (float)

  • npts (int)

delay_method: str
fit_from_csv(csv_path, *, refine=False)[source]
Parameters:
  • csv_path (str)

  • refine (bool)

Return type:

tuple[ModelSpec, dict]

pade_order: int
frequency_response.experimentTool.apis.fit_simple_from_csv(csv_path, diag)[source]
Parameters:
  • csv_path (str)

  • diag (Dict)

Return type:

ModelSpec

frequency_response.experimentTool.apis.refine_fit(spec, data, delay_method, diag)[source]
Parameters:
  • spec (ModelSpec)

  • data (Dict[str, ndarray])

  • delay_method (str)

  • diag (Dict)

Return type:

ModelSpec

Model Design Helpers

class frequency_response.experimentTool.design.ModelSpec(K=1.0, lam=0, zeros=None, poles1=None, wns=None, zetas=None, delay=0.0)[source]

Structured model definition for identification tasks.

G(s) = K Π (1 + s/ωz) / [ s^λ Π (1 + s/ωp) Π (1 + 2ζ s/ωn + (s/ωn)^2) ] with an optional transport lag T (handled outside via FRD or Padé).

Parameters:
  • K (float)

  • lam (int)

  • zeros (List[float] | None)

  • poles1 (List[float] | None)

  • wns (List[float] | None)

  • zetas (List[float] | None)

  • delay (float)

K: float
as_dict()[source]
Return type:

dict

clean()[source]
Return type:

None

delay: float
lam: int
poles1: List[float] | None
wns: List[float] | None
zeros: List[float] | None
zetas: List[float] | None
frequency_response.experimentTool.design.ogata_7_25()[source]

Ogata Example 7-25 canonical preset.

Return type:

ModelSpec

I/O Helpers

frequency_response.experimentTool.io.export_summary(path_prefix, spec, sys_for_freq, delay_method, pade_order, diagnostics)[source]

JSON-safe export. Ensures all arrays are converted to plain lists. Poles/zeros are exported as [real, imag] pairs via np2list.

Parameters:
  • path_prefix (str)

  • spec (ModelSpec)

  • delay_method (str)

  • pade_order (int | None)

  • diagnostics (dict | None)

Return type:

str

frequency_response.experimentTool.io.make_synth_csv(spec, wmin, wmax, npts, path, delay_method, noise_db, noise_deg)[source]
Parameters:
  • spec (ModelSpec)

  • wmin (float)

  • wmax (float)

  • npts (int)

  • path (str)

  • delay_method (str)

  • noise_db (float)

  • noise_deg (float)

Return type:

str

frequency_response.experimentTool.io.read_csv(csv_path)[source]
Parameters:

csv_path (str)

Return type:

Dict[str, ndarray]

frequency_response.experimentTool.io.save_bode_csv(path_prefix, bode)[source]
Parameters:

path_prefix (str)

Return type:

str

Utilities

frequency_response.experimentTool.utils.ensure_dir(p)[source]
Parameters:

p (str | Path)

Return type:

str

frequency_response.experimentTool.utils.ensure_in_dir(pkg_root)[source]
Parameters:

pkg_root (str | Path)

Return type:

str

frequency_response.experimentTool.utils.ensure_out_dir(pkg_root)[source]
Parameters:

pkg_root (str | Path)

Return type:

str

frequency_response.experimentTool.utils.info(msg)[source]
Parameters:

msg (str)

Return type:

None

frequency_response.experimentTool.utils.np2list(x)[source]
frequency_response.experimentTool.utils.set_verbose(flag)[source]
Parameters:

flag (bool)

Return type:

None

Plotting Tools

frequency_response.experimentTool.tools.plot_mpl.plot_bode_mpl(bode, *, spec, title, path_prefix, overlay=None, markers=True, nmarkers=40, vlines=True)[source]
Parameters:
  • spec (ModelSpec)

  • title (str)

  • path_prefix (str)

Return type:

str

frequency_response.experimentTool.tools.plot_plotly.plot_bode_plotly(bode, *, spec, title, path_prefix, overlay=None, markers=True, nmarkers=40, vlines=True)[source]
Parameters:
  • spec (ModelSpec)

  • title (str)

  • path_prefix (str)

Return type:

str