"""Process identification subpackage. Turns recorded experiment data into the process models that tuners consume. v1 scope (see ``docs/design/03_tuning_methods.md``, section "Identification front-ends") is open-loop **step-response** fitting: ``pidtune.identification.step_response`` :class:`~pidtune.identification.step_response.StepResponseData` (the validated input record), :class:`~pidtune.identification.step_response.FitMethod`, :class:`~pidtune.identification.step_response.FitResult`, and the fitting entry points :func:`~pidtune.identification.step_response.fit_fopdt` / :func:`~pidtune.identification.step_response.fit_sopdt`. Relay-experiment identification lives with its tuner in :mod:`pidtune.tuners.relay` because the experiment and the rule are inseparable there; frequency-domain identification is a post-v1 roadmap item (``docs/design/06_roadmap.md``). Fitting functions are **API stubs** in this milestone; the data records and their validation are final. """ from __future__ import annotations from .step_response import ( FitMethod, FitResult, StepResponseData, fit_fopdt, fit_sopdt, ) __all__ = [ "StepResponseData", "FitMethod", "FitResult", "fit_fopdt", "fit_sopdt", ]